@payloadcms/db-mongodb 3.0.0-alpha.41 → 3.0.0-alpha.42
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.js +1 -1
- package/dist/connect.js.map +1 -0
- package/dist/create.js +1 -1
- package/dist/create.js.map +1 -0
- package/dist/createGlobal.js +1 -1
- package/dist/createGlobal.js.map +1 -0
- package/dist/createGlobalVersion.js +1 -1
- package/dist/createGlobalVersion.js.map +1 -0
- package/dist/createMigration.js +1 -1
- package/dist/createMigration.js.map +1 -0
- package/dist/createVersion.js +1 -1
- package/dist/createVersion.js.map +1 -0
- package/dist/deleteMany.js +1 -1
- package/dist/deleteMany.js.map +1 -0
- package/dist/deleteOne.js +1 -1
- package/dist/deleteOne.js.map +1 -0
- package/dist/deleteVersions.js +1 -1
- package/dist/deleteVersions.js.map +1 -0
- package/dist/destroy.js +1 -1
- package/dist/destroy.js.map +1 -0
- package/dist/find.js +1 -1
- package/dist/find.js.map +1 -0
- package/dist/findGlobal.js +1 -1
- package/dist/findGlobal.js.map +1 -0
- package/dist/findGlobalVersions.js +1 -1
- package/dist/findGlobalVersions.js.map +1 -0
- package/dist/findOne.js +1 -1
- package/dist/findOne.js.map +1 -0
- package/dist/findVersions.js +1 -1
- package/dist/findVersions.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -0
- package/dist/init.js +1 -1
- package/dist/init.js.map +1 -0
- package/dist/migrateFresh.js +1 -1
- package/dist/migrateFresh.js.map +1 -0
- package/dist/models/buildCollectionSchema.js +1 -1
- package/dist/models/buildCollectionSchema.js.map +1 -0
- package/dist/models/buildGlobalModel.js +1 -1
- package/dist/models/buildGlobalModel.js.map +1 -0
- package/dist/models/buildSchema.js +1 -1
- package/dist/models/buildSchema.js.map +1 -0
- package/dist/queries/buildAndOrConditions.js +1 -1
- package/dist/queries/buildAndOrConditions.js.map +1 -0
- package/dist/queries/buildQuery.js +1 -1
- package/dist/queries/buildQuery.js.map +1 -0
- package/dist/queries/buildSearchParams.js +1 -1
- package/dist/queries/buildSearchParams.js.map +1 -0
- package/dist/queries/buildSortParam.js +1 -1
- package/dist/queries/buildSortParam.js.map +1 -0
- package/dist/queries/getLocalizedSortProperty.js +1 -1
- package/dist/queries/getLocalizedSortProperty.js.map +1 -0
- package/dist/queries/getLocalizedSortProperty.spec.js +1 -1
- package/dist/queries/getLocalizedSortProperty.spec.js.map +1 -0
- package/dist/queries/mock.js +1 -1
- package/dist/queries/mock.js.map +1 -0
- package/dist/queries/operatorMap.js +1 -1
- package/dist/queries/operatorMap.js.map +1 -0
- package/dist/queries/parseParams.js +1 -1
- package/dist/queries/parseParams.js.map +1 -0
- package/dist/queries/sanitizeQueryValue.js +1 -1
- package/dist/queries/sanitizeQueryValue.js.map +1 -0
- package/dist/queryDrafts.js +1 -1
- package/dist/queryDrafts.js.map +1 -0
- package/dist/testCredentials.js +1 -1
- package/dist/testCredentials.js.map +1 -0
- package/dist/transactions/beginTransaction.js +1 -1
- package/dist/transactions/beginTransaction.js.map +1 -0
- package/dist/transactions/commitTransaction.js +1 -1
- package/dist/transactions/commitTransaction.js.map +1 -0
- package/dist/transactions/rollbackTransaction.js +1 -1
- package/dist/transactions/rollbackTransaction.js.map +1 -0
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -0
- package/dist/updateGlobal.js +1 -1
- package/dist/updateGlobal.js.map +1 -0
- package/dist/updateGlobalVersion.js +1 -1
- package/dist/updateGlobalVersion.js.map +1 -0
- package/dist/updateOne.js +1 -1
- package/dist/updateOne.js.map +1 -0
- package/dist/updateVersion.js +1 -1
- package/dist/updateVersion.js.map +1 -0
- package/dist/utilities/handleError.js +1 -1
- package/dist/utilities/handleError.js.map +1 -0
- package/dist/utilities/sanitizeInternalFields.js +1 -1
- package/dist/utilities/sanitizeInternalFields.js.map +1 -0
- package/dist/withSession.js +1 -1
- package/dist/withSession.js.map +1 -0
- package/package.json +3 -3
|
@@ -427,4 +427,4 @@ const fieldToSchemaMap = {
|
|
|
427
427
|
};
|
|
428
428
|
export default buildSchema;
|
|
429
429
|
|
|
430
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbHMvYnVpbGRTY2hlbWEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlLWJlZm9yZS1kZWZpbmUgKi9cbmltcG9ydCB0eXBlIHsgSW5kZXhPcHRpb25zLCBTY2hlbWEsIFNjaGVtYU9wdGlvbnMsIFNjaGVtYVR5cGVPcHRpb25zIH0gZnJvbSAnbW9uZ29vc2UnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbmZpZywgU2FuaXRpemVkTG9jYWxpemF0aW9uQ29uZmlnIH0gZnJvbSAncGF5bG9hZC9jb25maWcnXG5pbXBvcnQgdHlwZSB7XG4gIEFycmF5RmllbGQsXG4gIEJsb2NrLFxuICBCbG9ja0ZpZWxkLFxuICBDaGVja2JveEZpZWxkLFxuICBDb2RlRmllbGQsXG4gIENvbGxhcHNpYmxlRmllbGQsXG4gIERhdGVGaWVsZCxcbiAgRW1haWxGaWVsZCxcbiAgRmllbGQsXG4gIEZpZWxkQWZmZWN0aW5nRGF0YSxcbiAgR3JvdXBGaWVsZCxcbiAgSlNPTkZpZWxkLFxuICBOb25QcmVzZW50YXRpb25hbEZpZWxkLFxuICBOdW1iZXJGaWVsZCxcbiAgUG9pbnRGaWVsZCxcbiAgUmFkaW9GaWVsZCxcbiAgUmVsYXRpb25zaGlwRmllbGQsXG4gIFJpY2hUZXh0RmllbGQsXG4gIFJvd0ZpZWxkLFxuICBTZWxlY3RGaWVsZCxcbiAgVGFiLFxuICBUYWJzRmllbGQsXG4gIFRleHRGaWVsZCxcbiAgVGV4dGFyZWFGaWVsZCxcbiAgVXBsb2FkRmllbGQsXG59IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCBtb25nb29zZSBmcm9tICdtb25nb29zZSdcbmltcG9ydCB7XG4gIGZpZWxkQWZmZWN0c0RhdGEsXG4gIGZpZWxkSXNMb2NhbGl6ZWQsXG4gIGZpZWxkSXNQcmVzZW50YXRpb25hbE9ubHksXG4gIHRhYkhhc05hbWUsXG59IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmV4cG9ydCB0eXBlIEJ1aWxkU2NoZW1hT3B0aW9ucyA9IHtcbiAgYWxsb3dJREZpZWxkPzogYm9vbGVhblxuICBkaXNhYmxlVW5pcXVlPzogYm9vbGVhblxuICBkcmFmdHNFbmFibGVkPzogYm9vbGVhblxuICBpbmRleFNvcnRhYmxlRmllbGRzPzogYm9vbGVhblxuICBvcHRpb25zPzogU2NoZW1hT3B0aW9uc1xufVxuXG50eXBlIEZpZWxkU2NoZW1hR2VuZXJhdG9yID0gKFxuICBmaWVsZDogRmllbGQsXG4gIHNjaGVtYTogU2NoZW1hLFxuICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4pID0+IHZvaWRcblxuY29uc3QgZm9ybWF0QmFzZVNjaGVtYSA9IChmaWVsZDogRmllbGRBZmZlY3RpbmdEYXRhLCBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucykgPT4ge1xuICBjb25zdCB7IGRpc2FibGVVbmlxdWUsIGRyYWZ0c0VuYWJsZWQsIGluZGV4U29ydGFibGVGaWVsZHMgfSA9IGJ1aWxkU2NoZW1hT3B0aW9uc1xuICBjb25zdCBzY2hlbWE6IFNjaGVtYVR5cGVPcHRpb25zPHVua25vd24+ID0ge1xuICAgIGluZGV4OiBmaWVsZC5pbmRleCB8fCAoIWRpc2FibGVVbmlxdWUgJiYgZmllbGQudW5pcXVlKSB8fCBpbmRleFNvcnRhYmxlRmllbGRzIHx8IGZhbHNlLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICB1bmlxdWU6ICghZGlzYWJsZVVuaXF1ZSAmJiBmaWVsZC51bmlxdWUpIHx8IGZhbHNlLFxuICB9XG5cbiAgaWYgKFxuICAgIHNjaGVtYS51bmlxdWUgJiZcbiAgICAoZmllbGQubG9jYWxpemVkIHx8XG4gICAgICBkcmFmdHNFbmFibGVkIHx8XG4gICAgICAoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiZcbiAgICAgICAgZmllbGQudHlwZSAhPT0gJ2dyb3VwJyAmJlxuICAgICAgICBmaWVsZC50eXBlICE9PSAndGFiJyAmJlxuICAgICAgICBmaWVsZC5yZXF1aXJlZCAhPT0gdHJ1ZSkpXG4gICkge1xuICAgIHNjaGVtYS5zcGFyc2UgPSB0cnVlXG4gIH1cblxuICBpZiAoZmllbGQuaGlkZGVuKSB7XG4gICAgc2NoZW1hLmhpZGRlbiA9IHRydWVcbiAgfVxuXG4gIHJldHVybiBzY2hlbWFcbn1cblxuY29uc3QgbG9jYWxpemVTY2hlbWEgPSAoXG4gIGVudGl0eTogTm9uUHJlc2VudGF0aW9uYWxGaWVsZCB8IFRhYixcbiAgc2NoZW1hLFxuICBsb2NhbGl6YXRpb246IFNhbml0aXplZExvY2FsaXphdGlvbkNvbmZpZyB8IGZhbHNlLFxuKSA9PiB7XG4gIGlmIChmaWVsZElzTG9jYWxpemVkKGVudGl0eSkgJiYgbG9jYWxpemF0aW9uICYmIEFycmF5LmlzQXJyYXkobG9jYWxpemF0aW9uLmxvY2FsZXMpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IGxvY2FsaXphdGlvbi5sb2NhbGVDb2Rlcy5yZWR1Y2UoXG4gICAgICAgIChsb2NhbGVTY2hlbWEsIGxvY2FsZSkgPT4gKHtcbiAgICAgICAgICAuLi5sb2NhbGVTY2hlbWEsXG4gICAgICAgICAgW2xvY2FsZV06IHNjaGVtYSxcbiAgICAgICAgfSksXG4gICAgICAgIHtcbiAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgKSxcbiAgICAgIGxvY2FsaXplZDogdHJ1ZSxcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHNjaGVtYVxufVxuXG5jb25zdCBidWlsZFNjaGVtYSA9IChcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gIGNvbmZpZ0ZpZWxkczogRmllbGRbXSxcbiAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMgPSB7fSxcbik6IFNjaGVtYSA9PiB7XG4gIGNvbnN0IHsgYWxsb3dJREZpZWxkLCBvcHRpb25zIH0gPSBidWlsZFNjaGVtYU9wdGlvbnNcbiAgbGV0IGZpZWxkcyA9IHt9XG5cbiAgbGV0IHNjaGVtYUZpZWxkcyA9IGNvbmZpZ0ZpZWxkc1xuXG4gIGlmICghYWxsb3dJREZpZWxkKSB7XG4gICAgY29uc3QgaWRGaWVsZCA9IHNjaGVtYUZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gJ2lkJylcbiAgICBpZiAoaWRGaWVsZCkge1xuICAgICAgZmllbGRzID0ge1xuICAgICAgICBfaWQ6IGlkRmllbGQudHlwZSA9PT0gJ251bWJlcicgPyBOdW1iZXIgOiBTdHJpbmcsXG4gICAgICB9XG4gICAgICBzY2hlbWFGaWVsZHMgPSBzY2hlbWFGaWVsZHMuZmlsdGVyKFxuICAgICAgICAoZmllbGQpID0+ICEoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gJ2lkJyksXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc2NoZW1hID0gbmV3IG1vbmdvb3NlLlNjaGVtYShmaWVsZHMsIG9wdGlvbnMpXG5cbiAgc2NoZW1hRmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgaWYgKCFmaWVsZElzUHJlc2VudGF0aW9uYWxPbmx5KGZpZWxkKSkge1xuICAgICAgY29uc3QgYWRkRmllbGRTY2hlbWE6IEZpZWxkU2NoZW1hR2VuZXJhdG9yID0gZmllbGRUb1NjaGVtYU1hcFtmaWVsZC50eXBlXVxuXG4gICAgICBpZiAoYWRkRmllbGRTY2hlbWEpIHtcbiAgICAgICAgYWRkRmllbGRTY2hlbWEoZmllbGQsIHNjaGVtYSwgY29uZmlnLCBidWlsZFNjaGVtYU9wdGlvbnMpXG4gICAgICB9XG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBzY2hlbWFcbn1cblxuY29uc3QgZmllbGRUb1NjaGVtYU1hcDogUmVjb3JkPHN0cmluZywgRmllbGRTY2hlbWFHZW5lcmF0b3I+ID0ge1xuICBhcnJheTogKFxuICAgIGZpZWxkOiBBcnJheUZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIHR5cGU6IFtcbiAgICAgICAgYnVpbGRTY2hlbWEoY29uZmlnLCBmaWVsZC5maWVsZHMsIHtcbiAgICAgICAgICBhbGxvd0lERmllbGQ6IHRydWUsXG4gICAgICAgICAgZGlzYWJsZVVuaXF1ZTogYnVpbGRTY2hlbWFPcHRpb25zLmRpc2FibGVVbmlxdWUsXG4gICAgICAgICAgZHJhZnRzRW5hYmxlZDogYnVpbGRTY2hlbWFPcHRpb25zLmRyYWZ0c0VuYWJsZWQsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgX2lkOiBmYWxzZSxcbiAgICAgICAgICAgIGlkOiBmYWxzZSxcbiAgICAgICAgICAgIG1pbmltaXplOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgICBkZWZhdWx0OiB1bmRlZmluZWQsXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBibG9ja3M6IChcbiAgICBmaWVsZDogQmxvY2tGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgZmllbGRTY2hlbWEgPSB7XG4gICAgICB0eXBlOiBbbmV3IG1vbmdvb3NlLlNjaGVtYSh7fSwgeyBfaWQ6IGZhbHNlLCBkaXNjcmltaW5hdG9yS2V5OiAnYmxvY2tUeXBlJyB9KV0sXG4gICAgICBkZWZhdWx0OiB1bmRlZmluZWQsXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBmaWVsZFNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcblxuICAgIGZpZWxkLmJsb2Nrcy5mb3JFYWNoKChibG9ja0l0ZW06IEJsb2NrKSA9PiB7XG4gICAgICBjb25zdCBibG9ja1NjaGVtYSA9IG5ldyBtb25nb29zZS5TY2hlbWEoe30sIHsgX2lkOiBmYWxzZSwgaWQ6IGZhbHNlIH0pXG5cbiAgICAgIGJsb2NrSXRlbS5maWVsZHMuZm9yRWFjaCgoYmxvY2tGaWVsZCkgPT4ge1xuICAgICAgICBjb25zdCBhZGRGaWVsZFNjaGVtYTogRmllbGRTY2hlbWFHZW5lcmF0b3IgPSBmaWVsZFRvU2NoZW1hTWFwW2Jsb2NrRmllbGQudHlwZV1cbiAgICAgICAgaWYgKGFkZEZpZWxkU2NoZW1hKSB7XG4gICAgICAgICAgYWRkRmllbGRTY2hlbWEoYmxvY2tGaWVsZCwgYmxvY2tTY2hlbWEsIGNvbmZpZywgYnVpbGRTY2hlbWFPcHRpb25zKVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICBpZiAoZmllbGQubG9jYWxpemVkICYmIGNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgICAgY29uZmlnLmxvY2FsaXphdGlvbi5sb2NhbGVDb2Rlcy5mb3JFYWNoKChsb2NhbGVDb2RlKSA9PiB7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgUG9zc2libGUgaW5jb3JyZWN0IHR5cGluZyBpbiBtb25nb29zZSB0eXBlcywgdGhpcyB3b3Jrc1xuICAgICAgICAgIHNjaGVtYS5wYXRoKGAke2ZpZWxkLm5hbWV9LiR7bG9jYWxlQ29kZX1gKS5kaXNjcmltaW5hdG9yKGJsb2NrSXRlbS5zbHVnLCBibG9ja1NjaGVtYSlcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBQb3NzaWJsZSBpbmNvcnJlY3QgdHlwaW5nIGluIG1vbmdvb3NlIHR5cGVzLCB0aGlzIHdvcmtzXG4gICAgICAgIHNjaGVtYS5wYXRoKGZpZWxkLm5hbWUpLmRpc2NyaW1pbmF0b3IoYmxvY2tJdGVtLnNsdWcsIGJsb2NrU2NoZW1hKVxuICAgICAgfVxuICAgIH0pXG4gIH0sXG4gIGNoZWNrYm94OiAoXG4gICAgZmllbGQ6IENoZWNrYm94RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7IC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksIHR5cGU6IEJvb2xlYW4gfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBjb2RlOiAoXG4gICAgZmllbGQ6IENvZGVGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHsgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSwgdHlwZTogU3RyaW5nIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgY29sbGFwc2libGU6IChcbiAgICBmaWVsZDogQ29sbGFwc2libGVGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgZmllbGQuZmllbGRzLmZvckVhY2goKHN1YkZpZWxkOiBGaWVsZCkgPT4ge1xuICAgICAgY29uc3QgYWRkRmllbGRTY2hlbWE6IEZpZWxkU2NoZW1hR2VuZXJhdG9yID0gZmllbGRUb1NjaGVtYU1hcFtzdWJGaWVsZC50eXBlXVxuXG4gICAgICBpZiAoYWRkRmllbGRTY2hlbWEpIHtcbiAgICAgICAgYWRkRmllbGRTY2hlbWEoc3ViRmllbGQsIHNjaGVtYSwgY29uZmlnLCBidWlsZFNjaGVtYU9wdGlvbnMpXG4gICAgICB9XG4gICAgfSlcbiAgfSxcbiAgZGF0ZTogKFxuICAgIGZpZWxkOiBEYXRlRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7IC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksIHR5cGU6IERhdGUgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBlbWFpbDogKFxuICAgIGZpZWxkOiBFbWFpbEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0geyAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLCB0eXBlOiBTdHJpbmcgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBncm91cDogKFxuICAgIGZpZWxkOiBHcm91cEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBmb3JtYXR0ZWRCYXNlU2NoZW1hID0gZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKVxuXG4gICAgLy8gY2FycnkgaW5kZXhTb3J0YWJsZUZpZWxkcyB0aHJvdWdoIHRvIHZlcnNpb25zIGlmIGRyYWZ0cyBlbmFibGVkXG4gICAgY29uc3QgaW5kZXhTb3J0YWJsZUZpZWxkcyA9XG4gICAgICBidWlsZFNjaGVtYU9wdGlvbnMuaW5kZXhTb3J0YWJsZUZpZWxkcyAmJlxuICAgICAgZmllbGQubmFtZSA9PT0gJ3ZlcnNpb24nICYmXG4gICAgICBidWlsZFNjaGVtYU9wdGlvbnMuZHJhZnRzRW5hYmxlZFxuXG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdHRlZEJhc2VTY2hlbWEsXG4gICAgICB0eXBlOiBidWlsZFNjaGVtYShjb25maWcsIGZpZWxkLmZpZWxkcywge1xuICAgICAgICBkaXNhYmxlVW5pcXVlOiBidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgZHJhZnRzRW5hYmxlZDogYnVpbGRTY2hlbWFPcHRpb25zLmRyYWZ0c0VuYWJsZWQsXG4gICAgICAgIGluZGV4U29ydGFibGVGaWVsZHMsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICAgIGlkOiBmYWxzZSxcbiAgICAgICAgICBtaW5pbWl6ZTogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIGpzb246IChcbiAgICBmaWVsZDogSlNPTkZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIHR5cGU6IG1vbmdvb3NlLlNjaGVtYS5UeXBlcy5NaXhlZCxcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIG51bWJlcjogKFxuICAgIGZpZWxkOiBOdW1iZXJGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICB0eXBlOiBmaWVsZC5oYXNNYW55ID8gW051bWJlcl0gOiBOdW1iZXIsXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBwb2ludDogKFxuICAgIGZpZWxkOiBQb2ludEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hOiBTY2hlbWFUeXBlT3B0aW9uczx1bmtub3duPiA9IHtcbiAgICAgIHR5cGU6IHtcbiAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICBlbnVtOiBbJ1BvaW50J10sXG4gICAgICB9LFxuICAgICAgY29vcmRpbmF0ZXM6IHtcbiAgICAgICAgdHlwZTogW051bWJlcl0sXG4gICAgICAgIGRlZmF1bHQ6IGZpZWxkLmRlZmF1bHRWYWx1ZSB8fCB1bmRlZmluZWQsXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgfVxuICAgIGlmIChidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSAmJiBmaWVsZC51bmlxdWUgJiYgZmllbGQubG9jYWxpemVkKSB7XG4gICAgICBiYXNlU2NoZW1hLmNvb3JkaW5hdGVzLnNwYXJzZSA9IHRydWVcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG5cbiAgICBpZiAoZmllbGQuaW5kZXggPT09IHRydWUgfHwgZmllbGQuaW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgaW5kZXhPcHRpb25zOiBJbmRleE9wdGlvbnMgPSB7fVxuICAgICAgaWYgKCFidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSAmJiBmaWVsZC51bmlxdWUpIHtcbiAgICAgICAgaW5kZXhPcHRpb25zLnNwYXJzZSA9IHRydWVcbiAgICAgICAgaW5kZXhPcHRpb25zLnVuaXF1ZSA9IHRydWVcbiAgICAgIH1cbiAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQgJiYgY29uZmlnLmxvY2FsaXphdGlvbikge1xuICAgICAgICBjb25maWcubG9jYWxpemF0aW9uLmxvY2FsZXMuZm9yRWFjaCgobG9jYWxlKSA9PiB7XG4gICAgICAgICAgc2NoZW1hLmluZGV4KHsgW2Ake2ZpZWxkLm5hbWV9LiR7bG9jYWxlfWBdOiAnMmRzcGhlcmUnIH0sIGluZGV4T3B0aW9ucylcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNjaGVtYS5pbmRleCh7IFtmaWVsZC5uYW1lXTogJzJkc3BoZXJlJyB9LCBpbmRleE9wdGlvbnMpXG4gICAgICB9XG4gICAgfVxuICB9LFxuICByYWRpbzogKFxuICAgIGZpZWxkOiBSYWRpb0ZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgIGVudW06IGZpZWxkLm9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb24gPT09ICdvYmplY3QnKSByZXR1cm4gb3B0aW9uLnZhbHVlXG4gICAgICAgIHJldHVybiBvcHRpb25cbiAgICAgIH0pLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgcmVsYXRpb25zaGlwOiAoXG4gICAgZmllbGQ6IFJlbGF0aW9uc2hpcEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApID0+IHtcbiAgICBjb25zdCBoYXNNYW55UmVsYXRpb25zID0gQXJyYXkuaXNBcnJheShmaWVsZC5yZWxhdGlvblRvKVxuICAgIGxldCBzY2hlbWFUb1JldHVybjogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9XG5cbiAgICBpZiAoZmllbGQubG9jYWxpemVkICYmIGNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICB0eXBlOiBjb25maWcubG9jYWxpemF0aW9uLmxvY2FsZUNvZGVzLnJlZHVjZSgobG9jYWxlcywgbG9jYWxlKSA9PiB7XG4gICAgICAgICAgbGV0IGxvY2FsZVNjaGVtYTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9XG5cbiAgICAgICAgICBpZiAoaGFzTWFueVJlbGF0aW9ucykge1xuICAgICAgICAgICAgbG9jYWxlU2NoZW1hID0ge1xuICAgICAgICAgICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICB0eXBlOiBtb25nb29zZS5TY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgICAgICAgIHJlbGF0aW9uVG86IHsgdHlwZTogU3RyaW5nLCBlbnVtOiBmaWVsZC5yZWxhdGlvblRvIH0sXG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgICAgICAgICAgIHJlZlBhdGg6IGAke2ZpZWxkLm5hbWV9LiR7bG9jYWxlfS5yZWxhdGlvblRvYCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbG9jYWxlU2NoZW1hID0ge1xuICAgICAgICAgICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgICAgICAgICB0eXBlOiBtb25nb29zZS5TY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgICAgICAgIHJlZjogZmllbGQucmVsYXRpb25UbyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4ubG9jYWxlcyxcbiAgICAgICAgICAgIFtsb2NhbGVdOiBmaWVsZC5oYXNNYW55ID8geyB0eXBlOiBbbG9jYWxlU2NoZW1hXSwgZGVmYXVsdDogdW5kZWZpbmVkIH0gOiBsb2NhbGVTY2hlbWEsXG4gICAgICAgICAgfVxuICAgICAgICB9LCB7fSksXG4gICAgICAgIGxvY2FsaXplZDogdHJ1ZSxcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGhhc01hbnlSZWxhdGlvbnMpIHtcbiAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICB0eXBlOiBtb25nb29zZS5TY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgIHJlbGF0aW9uVG86IHsgdHlwZTogU3RyaW5nLCBlbnVtOiBmaWVsZC5yZWxhdGlvblRvIH0sXG4gICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgICAgIHJlZlBhdGg6IGAke2ZpZWxkLm5hbWV9LnJlbGF0aW9uVG9gLFxuICAgICAgICB9LFxuICAgICAgfVxuXG4gICAgICBpZiAoZmllbGQuaGFzTWFueSkge1xuICAgICAgICBzY2hlbWFUb1JldHVybiA9IHtcbiAgICAgICAgICB0eXBlOiBbc2NoZW1hVG9SZXR1cm5dLFxuICAgICAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZCxcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzY2hlbWFUb1JldHVybiA9IHtcbiAgICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgICByZWY6IGZpZWxkLnJlbGF0aW9uVG8sXG4gICAgICB9XG5cbiAgICAgIGlmIChmaWVsZC5oYXNNYW55KSB7XG4gICAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICAgIHR5cGU6IFtzY2hlbWFUb1JldHVybl0sXG4gICAgICAgICAgZGVmYXVsdDogdW5kZWZpbmVkLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IHNjaGVtYVRvUmV0dXJuLFxuICAgIH0pXG4gIH0sXG4gIHJpY2hUZXh0OiAoXG4gICAgZmllbGQ6IFJpY2hUZXh0RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgcm93OiAoXG4gICAgZmllbGQ6IFJvd0ZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBmaWVsZC5maWVsZHMuZm9yRWFjaCgoc3ViRmllbGQ6IEZpZWxkKSA9PiB7XG4gICAgICBjb25zdCBhZGRGaWVsZFNjaGVtYTogRmllbGRTY2hlbWFHZW5lcmF0b3IgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG5cbiAgICAgIGlmIChhZGRGaWVsZFNjaGVtYSkge1xuICAgICAgICBhZGRGaWVsZFNjaGVtYShzdWJGaWVsZCwgc2NoZW1hLCBjb25maWcsIGJ1aWxkU2NoZW1hT3B0aW9ucylcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuICBzZWxlY3Q6IChcbiAgICBmaWVsZDogU2VsZWN0RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgZW51bTogZmllbGQub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbiA9PT0gJ29iamVjdCcpIHJldHVybiBvcHRpb24udmFsdWVcbiAgICAgICAgcmV0dXJuIG9wdGlvblxuICAgICAgfSksXG4gICAgfVxuXG4gICAgaWYgKGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkIHx8ICFmaWVsZC5yZXF1aXJlZCkge1xuICAgICAgYmFzZVNjaGVtYS5lbnVtLnB1c2gobnVsbClcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoXG4gICAgICAgIGZpZWxkLFxuICAgICAgICBmaWVsZC5oYXNNYW55ID8gW2Jhc2VTY2hlbWFdIDogYmFzZVNjaGVtYSxcbiAgICAgICAgY29uZmlnLmxvY2FsaXphdGlvbixcbiAgICAgICksXG4gICAgfSlcbiAgfSxcbiAgdGFiczogKFxuICAgIGZpZWxkOiBUYWJzRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGZpZWxkLnRhYnMuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICBpZiAodGFiSGFzTmFtZSh0YWIpKSB7XG4gICAgICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAgICAgdHlwZTogYnVpbGRTY2hlbWEoY29uZmlnLCB0YWIuZmllbGRzLCB7XG4gICAgICAgICAgICBkaXNhYmxlVW5pcXVlOiBidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgICAgIGRyYWZ0c0VuYWJsZWQ6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkLFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICBpZDogZmFsc2UsXG4gICAgICAgICAgICAgIG1pbmltaXplOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIH1cblxuICAgICAgICBzY2hlbWEuYWRkKHtcbiAgICAgICAgICBbdGFiLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYSh0YWIsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGFiLmZpZWxkcy5mb3JFYWNoKChzdWJGaWVsZDogRmllbGQpID0+IHtcbiAgICAgICAgICBjb25zdCBhZGRGaWVsZFNjaGVtYTogRmllbGRTY2hlbWFHZW5lcmF0b3IgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG5cbiAgICAgICAgICBpZiAoYWRkRmllbGRTY2hlbWEpIHtcbiAgICAgICAgICAgIGFkZEZpZWxkU2NoZW1hKHN1YkZpZWxkLCBzY2hlbWEsIGNvbmZpZywgYnVpbGRTY2hlbWFPcHRpb25zKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuICB0ZXh0OiAoXG4gICAgZmllbGQ6IFRleHRGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICB0eXBlOiBmaWVsZC5oYXNNYW55ID8gW1N0cmluZ10gOiBTdHJpbmcsXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICB0ZXh0YXJlYTogKFxuICAgIGZpZWxkOiBUZXh0YXJlYUZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0geyAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLCB0eXBlOiBTdHJpbmcgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICB1cGxvYWQ6IChcbiAgICBmaWVsZDogVXBsb2FkRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgcmVmOiBmaWVsZC5yZWxhdGlvblRvLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbn1cblxuZXhwb3J0IGRlZmF1bHQgYnVpbGRTY2hlbWFcbiJdLCJuYW1lcyI6WyJtb25nb29zZSIsImZpZWxkQWZmZWN0c0RhdGEiLCJmaWVsZElzTG9jYWxpemVkIiwiZmllbGRJc1ByZXNlbnRhdGlvbmFsT25seSIsInRhYkhhc05hbWUiLCJmb3JtYXRCYXNlU2NoZW1hIiwiZmllbGQiLCJidWlsZFNjaGVtYU9wdGlvbnMiLCJkaXNhYmxlVW5pcXVlIiwiZHJhZnRzRW5hYmxlZCIsImluZGV4U29ydGFibGVGaWVsZHMiLCJzY2hlbWEiLCJpbmRleCIsInVuaXF1ZSIsInJlcXVpcmVkIiwibG9jYWxpemVkIiwidHlwZSIsInNwYXJzZSIsImhpZGRlbiIsImxvY2FsaXplU2NoZW1hIiwiZW50aXR5IiwibG9jYWxpemF0aW9uIiwiQXJyYXkiLCJpc0FycmF5IiwibG9jYWxlcyIsImxvY2FsZUNvZGVzIiwicmVkdWNlIiwibG9jYWxlU2NoZW1hIiwibG9jYWxlIiwiX2lkIiwiYnVpbGRTY2hlbWEiLCJjb25maWciLCJjb25maWdGaWVsZHMiLCJhbGxvd0lERmllbGQiLCJvcHRpb25zIiwiZmllbGRzIiwic2NoZW1hRmllbGRzIiwiaWRGaWVsZCIsImZpbmQiLCJuYW1lIiwiTnVtYmVyIiwiU3RyaW5nIiwiZmlsdGVyIiwiU2NoZW1hIiwiZm9yRWFjaCIsImFkZEZpZWxkU2NoZW1hIiwiZmllbGRUb1NjaGVtYU1hcCIsImFycmF5IiwiYmFzZVNjaGVtYSIsImlkIiwibWluaW1pemUiLCJkZWZhdWx0IiwidW5kZWZpbmVkIiwiYWRkIiwiYmxvY2tzIiwiZmllbGRTY2hlbWEiLCJkaXNjcmltaW5hdG9yS2V5IiwiYmxvY2tJdGVtIiwiYmxvY2tTY2hlbWEiLCJibG9ja0ZpZWxkIiwibG9jYWxlQ29kZSIsInBhdGgiLCJkaXNjcmltaW5hdG9yIiwic2x1ZyIsImNoZWNrYm94IiwiQm9vbGVhbiIsImNvZGUiLCJjb2xsYXBzaWJsZSIsInN1YkZpZWxkIiwiZGF0ZSIsIkRhdGUiLCJlbWFpbCIsImdyb3VwIiwiZm9ybWF0dGVkQmFzZVNjaGVtYSIsImpzb24iLCJUeXBlcyIsIk1peGVkIiwibnVtYmVyIiwiaGFzTWFueSIsInBvaW50IiwiZW51bSIsImNvb3JkaW5hdGVzIiwiZGVmYXVsdFZhbHVlIiwiaW5kZXhPcHRpb25zIiwicmFkaW8iLCJtYXAiLCJvcHRpb24iLCJ2YWx1ZSIsInJlbGF0aW9uc2hpcCIsImhhc01hbnlSZWxhdGlvbnMiLCJyZWxhdGlvblRvIiwic2NoZW1hVG9SZXR1cm4iLCJyZWZQYXRoIiwicmVmIiwicmljaFRleHQiLCJyb3ciLCJzZWxlY3QiLCJwdXNoIiwidGFicyIsInRhYiIsInRleHQiLCJ0ZXh0YXJlYSIsInVwbG9hZCJdLCJtYXBwaW5ncyI6IkFBQUEsb0RBQW9ELEdBQ3BELHlDQUF5QyxHQUN6QywwREFBMEQsR0ErQjFELE9BQU9BLGNBQWMsV0FBVTtBQUMvQixTQUNFQyxnQkFBZ0IsRUFDaEJDLGdCQUFnQixFQUNoQkMseUJBQXlCLEVBQ3pCQyxVQUFVLFFBQ0wsZ0JBQWU7QUFpQnRCLE1BQU1DLG1CQUFtQixDQUFDQyxPQUEyQkM7SUFDbkQsTUFBTSxFQUFFQyxhQUFhLEVBQUVDLGFBQWEsRUFBRUMsbUJBQW1CLEVBQUUsR0FBR0g7SUFDOUQsTUFBTUksU0FBcUM7UUFDekNDLE9BQU9OLE1BQU1NLEtBQUssSUFBSyxDQUFDSixpQkFBaUJGLE1BQU1PLE1BQU0sSUFBS0gsdUJBQXVCO1FBQ2pGSSxVQUFVO1FBQ1ZELFFBQVEsQUFBQyxDQUFDTCxpQkFBaUJGLE1BQU1PLE1BQU0sSUFBSztJQUM5QztJQUVBLElBQ0VGLE9BQU9FLE1BQU0sSUFDWlAsQ0FBQUEsTUFBTVMsU0FBUyxJQUNkTixpQkFDQ1IsaUJBQWlCSyxVQUNoQkEsTUFBTVUsSUFBSSxLQUFLLFdBQ2ZWLE1BQU1VLElBQUksS0FBSyxTQUNmVixNQUFNUSxRQUFRLEtBQUssSUFBSSxHQUMzQjtRQUNBSCxPQUFPTSxNQUFNLEdBQUc7SUFDbEI7SUFFQSxJQUFJWCxNQUFNWSxNQUFNLEVBQUU7UUFDaEJQLE9BQU9PLE1BQU0sR0FBRztJQUNsQjtJQUVBLE9BQU9QO0FBQ1Q7QUFFQSxNQUFNUSxpQkFBaUIsQ0FDckJDLFFBQ0FULFFB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
|
|
430
|
+
//# sourceMappingURL=buildSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/models/buildSchema.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\n/* eslint-disable class-methods-use-this */\n/* eslint-disable @typescript-eslint/no-use-before-define */\nimport type { IndexOptions, Schema, SchemaOptions, SchemaTypeOptions } from 'mongoose'\nimport type { SanitizedConfig, SanitizedLocalizationConfig } from 'payload/config'\nimport type {\n ArrayField,\n Block,\n BlockField,\n CheckboxField,\n CodeField,\n CollapsibleField,\n DateField,\n EmailField,\n Field,\n FieldAffectingData,\n GroupField,\n JSONField,\n NonPresentationalField,\n NumberField,\n PointField,\n RadioField,\n RelationshipField,\n RichTextField,\n RowField,\n SelectField,\n Tab,\n TabsField,\n TextField,\n TextareaField,\n UploadField,\n} from 'payload/types'\n\nimport mongoose from 'mongoose'\nimport {\n fieldAffectsData,\n fieldIsLocalized,\n fieldIsPresentationalOnly,\n tabHasName,\n} from 'payload/types'\n\nexport type BuildSchemaOptions = {\n allowIDField?: boolean\n disableUnique?: boolean\n draftsEnabled?: boolean\n indexSortableFields?: boolean\n options?: SchemaOptions\n}\n\ntype FieldSchemaGenerator = (\n field: Field,\n schema: Schema,\n config: SanitizedConfig,\n buildSchemaOptions: BuildSchemaOptions,\n) => void\n\nconst formatBaseSchema = (field: FieldAffectingData, buildSchemaOptions: BuildSchemaOptions) => {\n const { disableUnique, draftsEnabled, indexSortableFields } = buildSchemaOptions\n const schema: SchemaTypeOptions<unknown> = {\n index: field.index || (!disableUnique && field.unique) || indexSortableFields || false,\n required: false,\n unique: (!disableUnique && field.unique) || false,\n }\n\n if (\n schema.unique &&\n (field.localized ||\n draftsEnabled ||\n (fieldAffectsData(field) &&\n field.type !== 'group' &&\n field.type !== 'tab' &&\n field.required !== true))\n ) {\n schema.sparse = true\n }\n\n if (field.hidden) {\n schema.hidden = true\n }\n\n return schema\n}\n\nconst localizeSchema = (\n entity: NonPresentationalField | Tab,\n schema,\n localization: SanitizedLocalizationConfig | false,\n) => {\n if (fieldIsLocalized(entity) && localization && Array.isArray(localization.locales)) {\n return {\n type: localization.localeCodes.reduce(\n (localeSchema, locale) => ({\n ...localeSchema,\n [locale]: schema,\n }),\n {\n _id: false,\n },\n ),\n localized: true,\n }\n }\n return schema\n}\n\nconst buildSchema = (\n config: SanitizedConfig,\n configFields: Field[],\n buildSchemaOptions: BuildSchemaOptions = {},\n): Schema => {\n const { allowIDField, options } = buildSchemaOptions\n let fields = {}\n\n let schemaFields = configFields\n\n if (!allowIDField) {\n const idField = schemaFields.find((field) => fieldAffectsData(field) && field.name === 'id')\n if (idField) {\n fields = {\n _id: idField.type === 'number' ? Number : String,\n }\n schemaFields = schemaFields.filter(\n (field) => !(fieldAffectsData(field) && field.name === 'id'),\n )\n }\n }\n\n const schema = new mongoose.Schema(fields, options)\n\n schemaFields.forEach((field) => {\n if (!fieldIsPresentationalOnly(field)) {\n const addFieldSchema: FieldSchemaGenerator = fieldToSchemaMap[field.type]\n\n if (addFieldSchema) {\n addFieldSchema(field, schema, config, buildSchemaOptions)\n }\n }\n })\n\n return schema\n}\n\nconst fieldToSchemaMap: Record<string, FieldSchemaGenerator> = {\n array: (\n field: ArrayField,\n schema: Schema,\n config: SanitizedConfig,\n buildSchemaOptions: BuildSchemaOptions,\n ) => {\n const baseSchema = {\n ...formatBaseSchema(field, buildSchemaOptions),\n type: [\n buildSchema(config, field.fields, {\n allowIDField: true,\n disableUnique: buildSchemaOptions.disableUnique,\n draftsEnabled: buildSchemaOptions.draftsEnabled,\n options: {\n _id: false,\n id: false,\n minimize: false,\n },\n }),\n ],\n default: undefined,\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, config.localization),\n })\n },\n blocks: (\n field: BlockField,\n schema: Schema,\n config: SanitizedConfig,\n buildSchemaOptions: BuildSchemaOptions,\n ): void => {\n const fieldSchema = {\n type: [new mongoose.Schema({}, { _id: false, discriminatorKey: 'blockType' })],\n default: undefined,\n }\n\n schema.add({\n [field.name]: localizeSchema(field, fieldSchema, config.localization),\n })\n\n field.blocks.forEach((blockItem: Block) => {\n const blockSchema = new mongoose.Schema({}, { _id: false, id: false })\n\n blockItem.fields.forEach((blockField) => {\n const addFieldSchema: FieldSchemaGenerator = fieldToSchemaMap[blockField.type]\n if (addFieldSchema) {\n addFieldSchema(blockField, blockSchema, config, buildSchemaOptions)\n }\n })\n\n if (field.localized && config.localization) {\n config.localization.localeCodes.forEach((localeCode) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error Possible incorrect typing in mongoose types, this works\n schema.path(`${field.name}.${localeCode}`).discriminator(blockItem.slug, blockSchema)\n })\n } else {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error Possible incorrect typing in mongoose types, this works\n schema.path(field.name).discriminator(blockItem.slug, blockSchema)\n }\n })\n },\n checkbox: (\n field: CheckboxField,\n schema: Schema,\n config: SanitizedConfig,\n buildSchemaOptions: BuildSchemaOptions,\n ): void => {\n const baseSchema = { ...formatBaseSchema(field, buildSchemaOptions), type: Boolean }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, config.localization),\n })\n },\n code: (\n field: CodeField,\n schema: Schema,\n config: SanitizedConfig,\n buildSchemaOptions: BuildSchemaOptions,\n ): void => {\n const baseSchema = { ...formatBaseSchema(field, buildSchemaOptions), type: String }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, config.localization),\n })\n },\n collapsible: (\n field: CollapsibleField,\n schema: Schema,\n config: SanitizedConfig,\n buildSchemaOptions: BuildSchemaOptions,\n ): void => {\n field.fields.forEach((subField: Field) => {\n const addFieldSchema: FieldSchemaGenerator = fieldToSchemaMap[subField.type]\n\n if (addFieldSchema) {\n addFieldSchema(subField, schema, config, buildSchemaOptions)\n }\n })\n },\n date: (\n field: DateField,\n schema: Schema,\n config: SanitizedConfig,\n buildSchemaOptions: BuildSchemaOptions,\n ): void => {\n const baseSchema = { ...formatBaseSchema(field, buildSchemaOptions), type: Date }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, config.localization),\n })\n },\n email: (\n field: EmailField,\n schema: Schema,\n config: SanitizedConfig,\n buildSchemaOptions: BuildSchemaOptions,\n ): void => {\n const baseSchema = { ...formatBaseSchema(field, buildSchemaOptions), type: String }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, config.localization),\n })\n },\n group: (\n field: GroupField,\n schema: Schema,\n config: SanitizedConfig,\n buildSchemaOptions: BuildSchemaOptions,\n ): void => {\n const formattedBaseSchema = formatBaseSchema(field, buildSchemaOptions)\n\n // carry indexSortableFields through to versions if drafts enabled\n const indexSortableFields =\n buildSchemaOptions.indexSortableFields &&\n field.name === 'version' &&\n buildSchemaOptions.draftsEnabled\n\n const baseSchema = {\n ...formattedBaseSchema,\n type: buildSchema(config, field.fields, {\n disableUnique: buildSchemaOptions.disableUnique,\n draftsEnabled: buildSchemaOptions.draftsEnabled,\n indexSortableFields,\n options: {\n _id: false,\n id: false,\n minimize: false,\n },\n }),\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, config.localization),\n })\n },\n json: (\n field: JSONField,\n schema: Schema,\n config: SanitizedConfig,\n buildSchemaOptions: BuildSchemaOptions,\n ): void => {\n const baseSchema = {\n ...formatBaseSchema(field, buildSchemaOptions),\n type: mongoose.Schema.Types.Mixed,\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, config.localization),\n })\n },\n number: (\n field: NumberField,\n schema: Schema,\n config: SanitizedConfig,\n buildSchemaOptions: BuildSchemaOptions,\n ): void => {\n const baseSchema = {\n ...formatBaseSchema(field, buildSchemaOptions),\n type: field.hasMany ? [Number] : Number,\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, config.localization),\n })\n },\n point: (\n field: PointField,\n schema: Schema,\n config: SanitizedConfig,\n buildSchemaOptions: BuildSchemaOptions,\n ): void => {\n const baseSchema: SchemaTypeOptions<unknown> = {\n type: {\n type: String,\n enum: ['Point'],\n },\n coordinates: {\n type: [Number],\n default: field.defaultValue || undefined,\n required: false,\n },\n }\n if (buildSchemaOptions.disableUnique && field.unique && field.localized) {\n baseSchema.coordinates.sparse = true\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, config.localization),\n })\n\n if (field.index === true || field.index === undefined) {\n const indexOptions: IndexOptions = {}\n if (!buildSchemaOptions.disableUnique && field.unique) {\n indexOptions.sparse = true\n indexOptions.unique = true\n }\n if (field.localized && config.localization) {\n config.localization.locales.forEach((locale) => {\n schema.index({ [`${field.name}.${locale}`]: '2dsphere' }, indexOptions)\n })\n } else {\n schema.index({ [field.name]: '2dsphere' }, indexOptions)\n }\n }\n },\n radio: (\n field: RadioField,\n schema: Schema,\n config: SanitizedConfig,\n buildSchemaOptions: BuildSchemaOptions,\n ): void => {\n const baseSchema = {\n ...formatBaseSchema(field, buildSchemaOptions),\n type: String,\n enum: field.options.map((option) => {\n if (typeof option === 'object') return option.value\n return option\n }),\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, config.localization),\n })\n },\n relationship: (\n field: RelationshipField,\n schema: Schema,\n config: SanitizedConfig,\n buildSchemaOptions: BuildSchemaOptions,\n ) => {\n const hasManyRelations = Array.isArray(field.relationTo)\n let schemaToReturn: { [key: string]: any } = {}\n\n if (field.localized && config.localization) {\n schemaToReturn = {\n type: config.localization.localeCodes.reduce((locales, locale) => {\n let localeSchema: { [key: string]: any } = {}\n\n if (hasManyRelations) {\n localeSchema = {\n ...formatBaseSchema(field, buildSchemaOptions),\n _id: false,\n type: mongoose.Schema.Types.Mixed,\n relationTo: { type: String, enum: field.relationTo },\n value: {\n type: mongoose.Schema.Types.Mixed,\n refPath: `${field.name}.${locale}.relationTo`,\n },\n }\n } else {\n localeSchema = {\n ...formatBaseSchema(field, buildSchemaOptions),\n type: mongoose.Schema.Types.Mixed,\n ref: field.relationTo,\n }\n }\n\n return {\n ...locales,\n [locale]: field.hasMany ? { type: [localeSchema], default: undefined } : localeSchema,\n }\n }, {}),\n localized: true,\n }\n } else if (hasManyRelations) {\n schemaToReturn = {\n ...formatBaseSchema(field, buildSchemaOptions),\n _id: false,\n type: mongoose.Schema.Types.Mixed,\n relationTo: { type: String, enum: field.relationTo },\n value: {\n type: mongoose.Schema.Types.Mixed,\n refPath: `${field.name}.relationTo`,\n },\n }\n\n if (field.hasMany) {\n schemaToReturn = {\n type: [schemaToReturn],\n default: undefined,\n }\n }\n } else {\n schemaToReturn = {\n ...formatBaseSchema(field, buildSchemaOptions),\n type: mongoose.Schema.Types.Mixed,\n ref: field.relationTo,\n }\n\n if (field.hasMany) {\n schemaToReturn = {\n type: [schemaToReturn],\n default: undefined,\n }\n }\n }\n\n schema.add({\n [field.name]: schemaToReturn,\n })\n },\n richText: (\n field: RichTextField,\n schema: Schema,\n config: SanitizedConfig,\n buildSchemaOptions: BuildSchemaOptions,\n ): void => {\n const baseSchema = {\n ...formatBaseSchema(field, buildSchemaOptions),\n type: mongoose.Schema.Types.Mixed,\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, config.localization),\n })\n },\n row: (\n field: RowField,\n schema: Schema,\n config: SanitizedConfig,\n buildSchemaOptions: BuildSchemaOptions,\n ): void => {\n field.fields.forEach((subField: Field) => {\n const addFieldSchema: FieldSchemaGenerator = fieldToSchemaMap[subField.type]\n\n if (addFieldSchema) {\n addFieldSchema(subField, schema, config, buildSchemaOptions)\n }\n })\n },\n select: (\n field: SelectField,\n schema: Schema,\n config: SanitizedConfig,\n buildSchemaOptions: BuildSchemaOptions,\n ): void => {\n const baseSchema = {\n ...formatBaseSchema(field, buildSchemaOptions),\n type: String,\n enum: field.options.map((option) => {\n if (typeof option === 'object') return option.value\n return option\n }),\n }\n\n if (buildSchemaOptions.draftsEnabled || !field.required) {\n baseSchema.enum.push(null)\n }\n\n schema.add({\n [field.name]: localizeSchema(\n field,\n field.hasMany ? [baseSchema] : baseSchema,\n config.localization,\n ),\n })\n },\n tabs: (\n field: TabsField,\n schema: Schema,\n config: SanitizedConfig,\n buildSchemaOptions: BuildSchemaOptions,\n ): void => {\n field.tabs.forEach((tab) => {\n if (tabHasName(tab)) {\n const baseSchema = {\n type: buildSchema(config, tab.fields, {\n disableUnique: buildSchemaOptions.disableUnique,\n draftsEnabled: buildSchemaOptions.draftsEnabled,\n options: {\n _id: false,\n id: false,\n minimize: false,\n },\n }),\n }\n\n schema.add({\n [tab.name]: localizeSchema(tab, baseSchema, config.localization),\n })\n } else {\n tab.fields.forEach((subField: Field) => {\n const addFieldSchema: FieldSchemaGenerator = fieldToSchemaMap[subField.type]\n\n if (addFieldSchema) {\n addFieldSchema(subField, schema, config, buildSchemaOptions)\n }\n })\n }\n })\n },\n text: (\n field: TextField,\n schema: Schema,\n config: SanitizedConfig,\n buildSchemaOptions: BuildSchemaOptions,\n ): void => {\n const baseSchema = {\n ...formatBaseSchema(field, buildSchemaOptions),\n type: field.hasMany ? [String] : String,\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, config.localization),\n })\n },\n textarea: (\n field: TextareaField,\n schema: Schema,\n config: SanitizedConfig,\n buildSchemaOptions: BuildSchemaOptions,\n ): void => {\n const baseSchema = { ...formatBaseSchema(field, buildSchemaOptions), type: String }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, config.localization),\n })\n },\n upload: (\n field: UploadField,\n schema: Schema,\n config: SanitizedConfig,\n buildSchemaOptions: BuildSchemaOptions,\n ): void => {\n const baseSchema = {\n ...formatBaseSchema(field, buildSchemaOptions),\n type: mongoose.Schema.Types.Mixed,\n ref: field.relationTo,\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, config.localization),\n })\n },\n}\n\nexport default buildSchema\n"],"names":["mongoose","fieldAffectsData","fieldIsLocalized","fieldIsPresentationalOnly","tabHasName","formatBaseSchema","field","buildSchemaOptions","disableUnique","draftsEnabled","indexSortableFields","schema","index","unique","required","localized","type","sparse","hidden","localizeSchema","entity","localization","Array","isArray","locales","localeCodes","reduce","localeSchema","locale","_id","buildSchema","config","configFields","allowIDField","options","fields","schemaFields","idField","find","name","Number","String","filter","Schema","forEach","addFieldSchema","fieldToSchemaMap","array","baseSchema","id","minimize","default","undefined","add","blocks","fieldSchema","discriminatorKey","blockItem","blockSchema","blockField","localeCode","path","discriminator","slug","checkbox","Boolean","code","collapsible","subField","date","Date","email","group","formattedBaseSchema","json","Types","Mixed","number","hasMany","point","enum","coordinates","defaultValue","indexOptions","radio","map","option","value","relationship","hasManyRelations","relationTo","schemaToReturn","refPath","ref","richText","row","select","push","tabs","tab","text","textarea","upload"],"mappings":"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"}
|
|
@@ -24,4 +24,4 @@ export async function buildAndOrConditions({ collectionSlug, fields, globalSlug,
|
|
|
24
24
|
return completedConditions;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
//# sourceMappingURL=
|
|
27
|
+
//# sourceMappingURL=buildAndOrConditions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/queries/buildAndOrConditions.ts"],"sourcesContent":["import type { Payload } from 'payload'\nimport type { Field, Where } from 'payload/types'\n\nimport { parseParams } from './parseParams.js'\n\nexport async function buildAndOrConditions({\n collectionSlug,\n fields,\n globalSlug,\n locale,\n payload,\n where,\n}: {\n collectionSlug?: string\n fields: Field[]\n globalSlug?: string\n locale?: string\n payload: Payload\n where: Where[]\n}): Promise<Record<string, unknown>[]> {\n const completedConditions = []\n // Loop over all AND / OR operations and add them to the AND / OR query param\n // Operations should come through as an array\n // eslint-disable-next-line no-restricted-syntax\n for (const condition of where) {\n // If the operation is properly formatted as an object\n if (typeof condition === 'object') {\n // eslint-disable-next-line no-await-in-loop\n const result = await parseParams({\n collectionSlug,\n fields,\n globalSlug,\n locale,\n payload,\n where: condition,\n })\n if (Object.keys(result).length > 0) {\n completedConditions.push(result)\n }\n }\n }\n return completedConditions\n}\n"],"names":["parseParams","buildAndOrConditions","collectionSlug","fields","globalSlug","locale","payload","where","completedConditions","condition","result","Object","keys","length","push"],"mappings":"AAGA,SAASA,WAAW,QAAQ,mBAAkB;AAE9C,OAAO,eAAeC,qBAAqB,EACzCC,cAAc,EACdC,MAAM,EACNC,UAAU,EACVC,MAAM,EACNC,OAAO,EACPC,KAAK,EAQN;IACC,MAAMC,sBAAsB,EAAE;IAC9B,6EAA6E;IAC7E,6CAA6C;IAC7C,gDAAgD;IAChD,KAAK,MAAMC,aAAaF,MAAO;QAC7B,sDAAsD;QACtD,IAAI,OAAOE,cAAc,UAAU;YACjC,4CAA4C;YAC5C,MAAMC,SAAS,MAAMV,YAAY;gBAC/BE;gBACAC;gBACAC;gBACAC;gBACAC;gBACAC,OAAOE;YACT;YACA,IAAIE,OAAOC,IAAI,CAACF,QAAQG,MAAM,GAAG,GAAG;gBAClCL,oBAAoBM,IAAI,CAACJ;YAC3B;QACF;IACF;IACA,OAAOF;AACT"}
|
|
@@ -36,4 +36,4 @@ const getBuildQueryPlugin = ({ collectionSlug, versionsFields } = {})=>{
|
|
|
36
36
|
};
|
|
37
37
|
export default getBuildQueryPlugin;
|
|
38
38
|
|
|
39
|
-
//# sourceMappingURL=
|
|
39
|
+
//# sourceMappingURL=buildQuery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/queries/buildQuery.ts"],"sourcesContent":["import type { Payload } from 'payload'\nimport type { Field, Where } from 'payload/types'\n\nimport { QueryError } from 'payload/errors'\n\nimport { parseParams } from './parseParams.js'\n\ntype GetBuildQueryPluginArgs = {\n collectionSlug?: string\n versionsFields?: Field[]\n}\n\nexport type BuildQueryArgs = {\n globalSlug?: string\n locale?: string\n payload: Payload\n where: Where\n}\n\n// This plugin asynchronously builds a list of Mongoose query constraints\n// which can then be used in subsequent Mongoose queries.\nconst getBuildQueryPlugin = ({ collectionSlug, versionsFields }: GetBuildQueryPluginArgs = {}) => {\n return function buildQueryPlugin(schema) {\n const modifiedSchema = schema\n async function buildQuery({\n globalSlug,\n locale,\n payload,\n where,\n }: BuildQueryArgs): Promise<Record<string, unknown>> {\n let fields = versionsFields\n if (!fields) {\n if (globalSlug) {\n const globalConfig = payload.globals.config.find(({ slug }) => slug === globalSlug)\n fields = globalConfig.fields\n }\n if (collectionSlug) {\n const collectionConfig = payload.collections[collectionSlug].config\n fields = collectionConfig.fields\n }\n }\n const errors = []\n const result = await parseParams({\n collectionSlug,\n fields,\n globalSlug,\n locale,\n payload,\n where,\n })\n\n if (errors.length > 0) {\n throw new QueryError(errors)\n }\n\n return result\n }\n modifiedSchema.statics.buildQuery = buildQuery\n }\n}\n\nexport default getBuildQueryPlugin\n"],"names":["QueryError","parseParams","getBuildQueryPlugin","collectionSlug","versionsFields","buildQueryPlugin","schema","modifiedSchema","buildQuery","globalSlug","locale","payload","where","fields","globalConfig","globals","config","find","slug","collectionConfig","collections","errors","result","length","statics"],"mappings":"AAGA,SAASA,UAAU,QAAQ,iBAAgB;AAE3C,SAASC,WAAW,QAAQ,mBAAkB;AAc9C,yEAAyE;AACzE,yDAAyD;AACzD,MAAMC,sBAAsB,CAAC,EAAEC,cAAc,EAAEC,cAAc,EAA2B,GAAG,CAAC,CAAC;IAC3F,OAAO,SAASC,iBAAiBC,MAAM;QACrC,MAAMC,iBAAiBD;QACvB,eAAeE,WAAW,EACxBC,UAAU,EACVC,MAAM,EACNC,OAAO,EACPC,KAAK,EACU;YACf,IAAIC,SAAST;YACb,IAAI,CAACS,QAAQ;gBACX,IAAIJ,YAAY;oBACd,MAAMK,eAAeH,QAAQI,OAAO,CAACC,MAAM,CAACC,IAAI,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA,SAAST;oBACxEI,SAASC,aAAaD,MAAM;gBAC9B;gBACA,IAAIV,gBAAgB;oBAClB,MAAMgB,mBAAmBR,QAAQS,WAAW,CAACjB,eAAe,CAACa,MAAM;oBACnEH,SAASM,iBAAiBN,MAAM;gBAClC;YACF;YACA,MAAMQ,SAAS,EAAE;YACjB,MAAMC,SAAS,MAAMrB,YAAY;gBAC/BE;gBACAU;gBACAJ;gBACAC;gBACAC;gBACAC;YACF;YAEA,IAAIS,OAAOE,MAAM,GAAG,GAAG;gBACrB,MAAM,IAAIvB,WAAWqB;YACvB;YAEA,OAAOC;QACT;QACAf,eAAeiB,OAAO,CAAChB,UAAU,GAAGA;IACtC;AACF;AAEA,eAAeN,oBAAmB"}
|
|
@@ -208,4 +208,4 @@ const subQueryOptions = {
|
|
|
208
208
|
return undefined;
|
|
209
209
|
}
|
|
210
210
|
|
|
211
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL2J1aWxkU2VhcmNoUGFyYW1zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGF5bG9hZCB9IGZyb20gJ3BheWxvYWQnXG5pbXBvcnQgdHlwZSB7IFBhdGhUb1F1ZXJ5IH0gZnJvbSAncGF5bG9hZC9kYXRhYmFzZSdcbmltcG9ydCB0eXBlIHsgRmllbGQgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBPcGVyYXRvciB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCBPYmplY3RJZEltcG9ydCBmcm9tICdic29uLW9iamVjdGlkJ1xuaW1wb3J0IG1vbmdvb3NlIGZyb20gJ21vbmdvb3NlJ1xuaW1wb3J0IHsgZ2V0TG9jYWxpemVkUGF0aHMgfSBmcm9tICdwYXlsb2FkL2RhdGFiYXNlJ1xuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5pbXBvcnQgeyB2YWxpZE9wZXJhdG9ycyB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB0eXBlIHsgTW9uZ29vc2VBZGFwdGVyIH0gZnJvbSAnLi4vaW5kZXguanMnXG5cbmltcG9ydCB7IG9wZXJhdG9yTWFwIH0gZnJvbSAnLi9vcGVyYXRvck1hcC5qcydcbmltcG9ydCB7IHNhbml0aXplUXVlcnlWYWx1ZSB9IGZyb20gJy4vc2FuaXRpemVRdWVyeVZhbHVlLmpzJ1xuXG5jb25zdCBPYmplY3RJZCA9IChPYmplY3RJZEltcG9ydC5kZWZhdWx0IHx8XG4gIE9iamVjdElkSW1wb3J0KSBhcyB1bmtub3duIGFzIHR5cGVvZiBPYmplY3RJZEltcG9ydC5kZWZhdWx0XG5cbnR5cGUgU2VhcmNoUGFyYW0gPSB7XG4gIHBhdGg/OiBzdHJpbmdcbiAgcmF3UXVlcnk/OiB1bmtub3duXG4gIHZhbHVlPzogdW5rbm93blxufVxuXG5jb25zdCBzdWJRdWVyeU9wdGlvbnMgPSB7XG4gIGxlYW46IHRydWUsXG4gIGxpbWl0OiA1MCxcbn1cblxuLyoqXG4gKiBDb252ZXJ0IHRoZSBQYXlsb2FkIGtleSAvIHZhbHVlIC8gb3BlcmF0b3IgaW50byBhIE1vbmdvREIgcXVlcnlcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkU2VhcmNoUGFyYW0oe1xuICBjb2xsZWN0aW9uU2x1ZyxcbiAgZmllbGRzLFxuICBnbG9iYWxTbHVnLFxuICBpbmNvbWluZ1BhdGgsXG4gIGxvY2FsZSxcbiAgb3BlcmF0b3IsXG4gIHBheWxvYWQsXG4gIHZhbCxcbn06IHtcbiAgY29sbGVjdGlvblNsdWc/OiBzdHJpbmdcbiAgZmllbGRzOiBGaWVsZFtdXG4gIGdsb2JhbFNsdWc/OiBzdHJpbmdcbiAgaW5jb21pbmdQYXRoOiBzdHJpbmdcbiAgbG9jYWxlPzogc3RyaW5nXG4gIG9wZXJhdG9yOiBzdHJpbmdcbiAgcGF5bG9hZDogUGF5bG9hZFxuICB2YWw6IHVua25vd25cbn0pOiBQcm9taXNlPFNlYXJjaFBhcmFtPiB7XG4gIC8vIFJlcGxhY2UgR3JhcGhRTCBuZXN0ZWQgZmllbGQgZG91YmxlIHVuZGVyc2NvcmUgZm9ybWF0dGluZ1xuICBsZXQgc2FuaXRpemVkUGF0aCA9IGluY29taW5nUGF0aC5yZXBsYWNlKC9fXy9nLCAnLicpXG4gIGlmIChzYW5pdGl6ZWRQYXRoID09PSAnaWQnKSBzYW5pdGl6ZWRQYXRoID0gJ19pZCdcblxuICBsZXQgcGF0aHM6IFBhdGhUb1F1ZXJ5W10gPSBbXVxuXG4gIGxldCBoYXNDdXN0b21JRCA9IGZhbHNlXG5cbiAgaWYgKHNhbml0aXplZFBhdGggPT09ICdfaWQnKSB7XG4gICAgY29uc3QgY3VzdG9tSURmaWVsZCA9IHBheWxvYWQuY29sbGVjdGlvbnNbY29sbGVjdGlvblNsdWddPy5jb25maWcuZmllbGRzLmZpbmQoXG4gICAgICAoZmllbGQpID0+IGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcsXG4gICAgKVxuXG4gICAgbGV0IGlkRmllbGRUeXBlOiAnbnVtYmVyJyB8ICd0ZXh0JyA9ICd0ZXh0J1xuXG4gICAgaWYgKGN1c3RvbUlEZmllbGQpIHtcbiAgICAgIGlmIChjdXN0b21JRGZpZWxkPy50eXBlID09PSAndGV4dCcgfHwgY3VzdG9tSURmaWVsZD8udHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgaWRGaWVsZFR5cGUgPSBjdXN0b21JRGZpZWxkLnR5cGVcbiAgICAgIH1cblxuICAgICAgaGFzQ3VzdG9tSUQgPSB0cnVlXG4gICAgfVxuXG4gICAgcGF0aHMucHVzaCh7XG4gICAgICBjb2xsZWN0aW9uU2x1ZyxcbiAgICAgIGNvbXBsZXRlOiB0cnVlLFxuICAgICAgZmllbGQ6IHtcbiAgICAgICAgbmFtZTogJ2lkJyxcbiAgICAgICAgdHlwZTogaWRGaWVsZFR5cGUsXG4gICAgICB9IGFzIEZpZWxkLFxuICAgICAgcGF0aDogJ19pZCcsXG4gICAgfSlcbiAgfSBlbHNlIHtcbiAgICBwYXRocyA9IGF3YWl0IGdldExvY2FsaXplZFBhdGhzKHtcbiAgICAgIGNvbGxlY3Rpb25TbHVnLFxuICAgICAgZmllbGRzLFxuICAgICAgZ2xvYmFsU2x1ZyxcbiAgICAgIGluY29taW5nUGF0aDogc2FuaXRpemVkUGF0aCxcbiAgICAgIGxvY2FsZSxcbiAgICAgIHBheWxvYWQsXG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IFt7IGZpZWxkLCBwYXRoIH1dID0gcGF0aHNcblxuICBpZiAocGF0aCkge1xuICAgIGNvbnN0IHtcbiAgICAgIG9wZXJhdG9yOiBmb3JtYXR0ZWRPcGVyYXRvcixcbiAgICAgIHJhd1F1ZXJ5LFxuICAgICAgdmFsOiBmb3JtYXR0ZWRWYWx1ZSxcbiAgICB9ID0gc2FuaXRpemVRdWVyeVZhbHVlKHtcbiAgICAgIGZpZWxkLFxuICAgICAgaGFzQ3VzdG9tSUQsXG4gICAgICBvcGVyYXRvcixcbiAgICAgIHBhdGgsXG4gICAgICB2YWwsXG4gICAgfSlcblxuICAgIGlmIChyYXdRdWVyeSkgcmV0dXJuIHsgdmFsdWU6IHJhd1F1ZXJ5IH1cblxuICAgIC8vIElmIHRoZXJlIGFyZSBtdWx0aXBsZSBjb2xsZWN0aW9ucyB0byBzZWFyY2ggdGhyb3VnaCxcbiAgICAvLyBSZWN1cnNpdmVseSBidWlsZCB1cCBhIGxpc3Qgb2YgcXVlcnkgY29uc3RyYWludHNcbiAgICBpZiAocGF0aHMubGVuZ3RoID4gMSkge1xuICAgICAgLy8gUmVtb3ZlIHRvcCBjb2xsZWN0aW9uIGFuZCByZXZlcnNlIGFycmF5XG4gICAgICAvLyB0byB3b3JrIGJhY2t3YXJkcyBmcm9tIHRvcFxuICAgICAgY29uc3QgcGF0aHNUb1F1ZXJ5ID0gcGF0aHMuc2xpY2UoMSkucmV2ZXJzZSgpXG5cbiAgICAgIGNvbnN0IGluaXRpYWxSZWxhdGlvbnNoaXBRdWVyeSA9IHtcbiAgICAgICAgdmFsdWU6IHt9LFxuICAgICAgfSBhcyBTZWFyY2hQYXJhbVxuXG4gICAgICBjb25zdCByZWxhdGlvbnNoaXBRdWVyeSA9IGF3YWl0IHBhdGhzVG9RdWVyeS5yZWR1Y2UoXG4gICAgICAgIGFzeW5jIChwcmlvclF1ZXJ5LCB7IGNvbGxlY3Rpb25TbHVnOiBzbHVnLCBwYXRoOiBzdWJQYXRoIH0sIGkpID0+IHtcbiAgICAgICAgICBjb25zdCBwcmlvclF1ZXJ5UmVzdWx0ID0gYXdhaXQgcHJpb3JRdWVyeVxuXG4gICAgICAgICAgY29uc3QgU3ViTW9kZWwgPSAocGF5bG9hZC5kYiBhcyBNb25nb29zZUFkYXB0ZXIpLmNvbGxlY3Rpb25zW3NsdWddXG5cbiAgICAgICAgICAvLyBPbiB0aGUgXCJkZWVwZXN0XCIgY29sbGVjdGlvbixcbiAgICAgICAgICAvLyBTZWFyY2ggb24gdGhlIHZhbHVlIHBhc3NlZCB0aHJvdWdoIHRoZSBxdWVyeVxuICAgICAgICAgIGlmIChpID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBzdWJRdWVyeSA9IGF3YWl0IFN1Yk1vZGVsLmJ1aWxkUXVlcnkoe1xuICAgICAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgICAgIHBheWxvYWQsXG4gICAgICAgICAgICAgIHdoZXJlOiB7XG4gICAgICAgICAgICAgICAgW3N1YlBhdGhdOiB7XG4gICAgICAgICAgICAgICAgICBbZm9ybWF0dGVkT3BlcmF0b3JdOiB2YWwsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IFN1Yk1vZGVsLmZpbmQoc3ViUXVlcnksIHN1YlF1ZXJ5T3B0aW9ucylcblxuICAgICAgICAgICAgY29uc3QgJGluOiB1bmtub3duW10gPSBbXVxuXG4gICAgICAgICAgICByZXN1bHQuZm9yRWFjaCgoZG9jKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHN0cmluZ0lEID0gZG9jLl9pZC50b1N0cmluZygpXG4gICAgICAgICAgICAgICRpbi5wdXNoKHN0cmluZ0lEKVxuXG4gICAgICAgICAgICAgIGlmIChtb25nb29zZS5UeXBlcy5PYmplY3RJZC5pc1ZhbGlkKHN0cmluZ0lEKSkge1xuICAgICAgICAgICAgICAgICRpbi5wdXNoKGRvYy5faWQpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGlmIChwYXRoc1RvUXVlcnkubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgICB2YWx1ZTogeyAkaW4gfSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBuZXh0U3ViUGF0aCA9IHBhdGhzVG9RdWVyeVtpICsgMV0ucGF0aFxuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICB2YWx1ZTogeyBbbmV4dFN1YlBhdGhdOiB7ICRpbiB9IH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3Qgc3ViUXVlcnkgPSBwcmlvclF1ZXJ5UmVzdWx0LnZhbHVlXG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgU3ViTW9kZWwuZmluZChzdWJRdWVyeSwgc3ViUXVlcnlPcHRpb25zKVxuXG4gICAgICAgICAgY29uc3QgJGluID0gcmVzdWx0Lm1hcCgoZG9jKSA9PiBkb2MuX2lkLnRvU3RyaW5nKCkpXG5cbiAgICAgICAgICAvLyBJZiBpdCBpcyB0aGUgbGFzdCByZWN1cnNpb25cbiAgICAgICAgICAvLyB0aGVuIHBhc3MgdGhyb3VnaCB0aGUgc2VhcmNoIHBhcmFtXG4gICAgICAgICAgaWYgKGkgKyAxID09PSBwYXRoc1RvUXVlcnkubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICB2YWx1ZTogeyAkaW4gfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgX2lkOiB7ICRpbiB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFByb21pc2UucmVzb2x2ZShpbml0aWFsUmVsYXRpb25zaGlwUXVlcnkpLFxuICAgICAgKVxuXG4gICAgICByZXR1cm4gcmVsYXRpb25zaGlwUXVlcnlcbiAgICB9XG5cbiAgICBpZiAoZm9ybWF0dGVkT3BlcmF0b3IgJiYgdmFsaWRPcGVyYXRvcnMuaW5jbHVkZXMoZm9ybWF0dGVkT3BlcmF0b3IgYXMgT3BlcmF0b3IpKSB7XG4gICAgICBjb25zdCBvcGVyYXRvcktleSA9IG9wZXJhdG9yTWFwW2Zvcm1hdHRlZE9wZXJhdG9yXVxuXG4gICAgICBpZiAoZmllbGQudHlwZSA9PT0gJ3JlbGF0aW9uc2hpcCcgfHwgZmllbGQudHlwZSA9PT0gJ3VwbG9hZCcpIHtcbiAgICAgICAgbGV0IGhhc051bWJlcklEUmVsYXRpb25cblxuICAgICAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICRvcjogW3sgW3BhdGhdOiB7IFtvcGVyYXRvcktleV06IGZvcm1hdHRlZFZhbHVlIH0gfV0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgZm9ybWF0dGVkVmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgaWYgKG1vbmdvb3NlLlR5cGVzLk9iamVjdElkLmlzVmFsaWQoZm9ybWF0dGVkVmFsdWUpKSB7XG4gICAgICAgICAgICByZXN1bHQudmFsdWUuJG9yLnB1c2goe1xuICAgICAgICAgICAgICBbcGF0aF06IHsgW29wZXJhdG9yS2V5XTogbmV3IE9iamVjdElkKGZvcm1hdHRlZFZhbHVlKSB9LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgOyhBcnJheS5pc0FycmF5KGZpZWxkLnJlbGF0aW9uVG8pID8gZmllbGQucmVsYXRpb25UbyA6IFtmaWVsZC5yZWxhdGlvblRvXSkuZm9yRWFjaChcbiAgICAgICAgICAgICAgKHJlbGF0aW9uVG8pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpc1JlbGF0ZWRUb0N1c3RvbU51bWJlcklEID0gcGF5bG9hZC5jb2xsZWN0aW9uc1tcbiAgICAgICAgICAgICAgICAgIHJlbGF0aW9uVG9cbiAgICAgICAgICAgICAgICBdPy5jb25maWc/LmZpZWxkcy5maW5kKChyZWxhdGVkRmllbGQpID0+IHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkQWZmZWN0c0RhdGEocmVsYXRlZEZpZWxkKSAmJlxuICAgICAgICAgICAgICAgICAgICByZWxhdGVkRmllbGQubmFtZSA9PT0gJ2lkJyAmJlxuICAgICAgICAgICAgICAgICAgICByZWxhdGVkRmllbGQudHlwZSA9PT0gJ251bWJlcidcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgICAgaWYgKGlzUmVsYXRlZFRvQ3VzdG9tTnVtYmVySUQpIHtcbiAgICAgICAgICAgICAgICAgIGlmIChpc1JlbGF0ZWRUb0N1c3RvbU51bWJlcklELnR5cGUgPT09ICdudW1iZXInKSBoYXNOdW1iZXJJRFJlbGF0aW9uID0gdHJ1ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIClcblxuICAgICAgICAgICAgaWYgKGhhc051bWJlcklEUmVsYXRpb24pXG4gICAgICAgICAgICAgIHJlc3VsdC52YWx1ZS4kb3IucHVzaCh7IFtwYXRoXTogeyBbb3BlcmF0b3JLZXldOiBwYXJzZUZsb2F0KGZvcm1hdHRlZFZhbHVlKSB9IH0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlc3VsdC52YWx1ZS4kb3IubGVuZ3RoID4gMSkge1xuICAgICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoZm9ybWF0dGVkT3BlcmF0b3IgPT09ICdsaWtlJyAmJiB0eXBlb2YgZm9ybWF0dGVkVmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnN0IHdvcmRzID0gZm9ybWF0dGVkVmFsdWUuc3BsaXQoJyAnKVxuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgJGFuZDogd29yZHMubWFwKCh3b3JkKSA9PiAoe1xuICAgICAgICAgICAgICBbcGF0aF06IHtcbiAgICAgICAgICAgICAgICAkb3B0aW9uczogJ2knLFxuICAgICAgICAgICAgICAgICRyZWdleDogd29yZC5yZXBsYWNlKC9bXFxcXF4kKis/LigpfFtcXF17fV0vZywgJ1xcXFwkJicpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0XG4gICAgICB9XG5cbiAgICAgIC8vIFNvbWUgb3BlcmF0b3JzIGxpa2UgJ25lYXInIG5lZWQgdG8gZGVmaW5lIGEgZnVsbCBxdWVyeVxuICAgICAgLy8gc28gaWYgdGhlcmUgaXMgbm8gb3BlcmF0b3Iga2V5LCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgICAgIGlmICghb3BlcmF0b3JLZXkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIHZhbHVlOiBmb3JtYXR0ZWRWYWx1ZSxcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBwYXRoLFxuICAgICAgICB2YWx1ZTogeyBbb3BlcmF0b3JLZXldOiBmb3JtYXR0ZWRWYWx1ZSB9LFxuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkXG59XG4iXSwibmFtZXMiOlsiT2JqZWN0SWRJbXBvcnQiLCJtb25nb29zZSIsImdldExvY2FsaXplZFBhdGhzIiwiZmllbGRBZmZlY3RzRGF0YSIsInZhbGlkT3BlcmF0b3JzIiwib3BlcmF0b3JNYXAiLCJzYW5pdGl6ZVF1ZXJ5VmFsdWUiLCJPYmplY3RJZCIsImRlZmF1bHQiLCJzdWJRdWVyeU9wdGlvbnMiLCJsZWFuIiwibGltaXQiLCJidWlsZFNlYXJjaFBhcmFtIiwiY29sbGVjdGlvblNsdWciLCJmaWVsZHMiLCJnbG9iYWxTbHVnIiwiaW5jb21pbmdQYXRoIiwibG9jYWxlIiwib3BlcmF0b3IiLCJwYXlsb2FkIiwidmFsIiwic2FuaXRpemVkUGF0aCIsInJlcGxhY2UiLCJwYXRocyIsImhhc0N1c3RvbUlEIiwiY3VzdG9tSURmaWVsZCIsImNvbGxlY3Rpb25zIiwiY29uZmlnIiwiZmluZCIsImZpZWxkIiwibmFtZSIsImlkRmllbGRUeXBlIiwidHlwZSIsInB1c2giLCJjb21wbGV0ZSIsInBhdGgiLCJmb3JtYXR0ZWRPcGVyYXRvciIsInJhd1F1ZXJ5IiwiZm9ybWF0dGVkVmFsdWUiLCJ2YWx1ZSIsImxlbmd0aCIsInBhdGhzVG9RdWVyeSIsInNsaWNlIiwicmV2ZXJzZSIsImluaXRpYWxSZWxhdGlvbnNoaXBRdWVyeSIsInJlbGF0aW9uc2hpcFF1ZXJ5IiwicmVkdWNlIiwicHJpb3JRdWVyeSIsInNsdWciLCJzdWJQYXRoIiwiaSIsInByaW9yUXVlcnlSZXN1bHQiLCJTdWJNb2RlbCIsImRiIiwic3ViUXVlcnkiLCJidWlsZFF1ZXJ5Iiwid2hlcmUiLCJyZXN1bHQiLCIkaW4iLCJmb3JFYWNoIiwiZG9jIiwic3RyaW5nSUQiLCJfaWQiLCJ0b1N0cmluZyIsIlR5cGVzIiwiaXNWYWxpZCIsIm5leHRTdWJQYXRoIiwibWFwIiwiUHJvbWlzZSIsInJlc29sdmUiLCJpbmNsdWRlcyIsIm9wZXJhdG9yS2V5IiwiaGFzTnVtYmVySURSZWxhdGlvbiIsIiRvciIsIkFycmF5IiwiaXNBcnJheSIsInJlbGF0aW9uVG8iLCJpc1JlbGF0ZWRUb0N1c3RvbU51bWJlcklEIiwicmVsYXRlZEZpZWxkIiwicGFyc2VGbG9hdCIsIndvcmRzIiwic3BsaXQiLCIkYW5kIiwid29yZCIsIiRvcHRpb25zIiwiJHJlZ2V4IiwidW5kZWZpbmVkIl0sIm1hcHBpbmdzIjoiQUFLQSxPQUFPQSxvQkFBb0IsZ0JBQWU7QUFDMUMsT0FBT0MsY0FBYyxXQUFVO0FBQy9CLFNBQVNDLGlCQUFpQixRQUFRLG1CQUFrQjtBQUNwRCxTQUFTQyxnQkFBZ0IsUUFBUSxnQkFBZTtBQUNoRCxTQUFTQyxjQUFjLFFBQVEsZ0JBQWU7QUFJOUMsU0FBU0MsV0FBVyxRQUFRLG1CQUFrQjtBQUM5QyxTQUFTQyxrQkFBa0IsUUFBUSwwQkFBeUI7QUFFNUQsTUFBTUMsV0FBWVAsZUFBZVEsT0FBTyxJQUN0Q1I7QUFRRixNQUFNUyxrQkFBa0I7SUFDdEJDLE1BQU07SUFDTkMsT0FBTztBQUNUO0FBRUE7O0NBRUMsR0FDRCxPQUFPLGVBQWVDLGlCQUFpQixFQUNyQ0MsY0FBYyxFQUNkQyxNQUFNLEVBQ05DLFVBQVUsRUFDVkMsWUFBWSxFQUNaQyxNQUFNLEVBQ05DLFFBQVEsRUFDUkMsT0FBTyxFQUNQQyxHQUFHLEVBVUo7SUFDQyw0REFBNEQ7SUFD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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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"}
|
|
@@ -29,4 +29,4 @@ export const buildSortParam = ({ config, fields, locale, sort, timestamps })=>{
|
|
|
29
29
|
};
|
|
30
30
|
};
|
|
31
31
|
|
|
32
|
-
//# sourceMappingURL=
|
|
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"}
|
|
@@ -63,4 +63,4 @@ export const getLocalizedSortProperty = ({ config, fields: incomingFields, local
|
|
|
63
63
|
return incomingSegments.join('.');
|
|
64
64
|
};
|
|
65
65
|
|
|
66
|
-
//# sourceMappingURL=
|
|
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"}
|
|
@@ -188,4 +188,4 @@ describe('get localized sort property', ()=>{
|
|
|
188
188
|
});
|
|
189
189
|
});
|
|
190
190
|
|
|
191
|
-
//# sourceMappingURL=
|
|
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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"}
|
package/dist/queries/mock.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=mock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/queries/mock.js"],"names":[],"mappings":""}
|
|
@@ -14,4 +14,4 @@ export const operatorMap = {
|
|
|
14
14
|
within: '$geoWithin'
|
|
15
15
|
};
|
|
16
16
|
|
|
17
|
-
//# sourceMappingURL=
|
|
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"}
|
|
@@ -62,4 +62,4 @@ export async function parseParams({ collectionSlug, fields, globalSlug, locale,
|
|
|
62
62
|
return result;
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
//# sourceMappingURL=
|
|
65
|
+
//# sourceMappingURL=parseParams.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/queries/parseParams.ts"],"sourcesContent":["/* eslint-disable no-restricted-syntax */\n/* eslint-disable no-await-in-loop */\nimport type { FilterQuery } from 'mongoose'\nimport type { Payload } from 'payload'\nimport type { Operator, Where } from 'payload/types'\nimport type { Field } from 'payload/types'\n\nimport deepmerge from 'deepmerge'\nimport { validOperators } from 'payload/types'\nimport { combineMerge } from 'payload/utilities'\n\nimport { buildAndOrConditions } from './buildAndOrConditions.js'\nimport { buildSearchParam } from './buildSearchParams.js'\n\nexport async function parseParams({\n collectionSlug,\n fields,\n globalSlug,\n locale,\n payload,\n where,\n}: {\n collectionSlug?: string\n fields: Field[]\n globalSlug?: string\n locale: string\n payload: Payload\n where: Where\n}): Promise<Record<string, unknown>> {\n let result = {} as FilterQuery<any>\n\n if (typeof where === 'object') {\n // We need to determine if the whereKey is an AND, OR, or a schema path\n for (const relationOrPath of Object.keys(where)) {\n const condition = where[relationOrPath]\n let conditionOperator: '$and' | '$or'\n if (relationOrPath.toLowerCase() === 'and') {\n conditionOperator = '$and'\n } else if (relationOrPath.toLowerCase() === 'or') {\n conditionOperator = '$or'\n }\n if (Array.isArray(condition)) {\n const builtConditions = await buildAndOrConditions({\n collectionSlug,\n fields,\n globalSlug,\n locale,\n payload,\n where: condition,\n })\n if (builtConditions.length > 0) result[conditionOperator] = builtConditions\n } else {\n // It's a path - and there can be multiple comparisons on a single path.\n // For example - title like 'test' and title not equal to 'tester'\n // So we need to loop on keys again here to handle each operator independently\n const pathOperators = where[relationOrPath]\n if (typeof pathOperators === 'object') {\n for (const operator of Object.keys(pathOperators)) {\n if (validOperators.includes(operator as Operator)) {\n const searchParam = await buildSearchParam({\n collectionSlug,\n fields,\n globalSlug,\n incomingPath: relationOrPath,\n locale,\n operator,\n payload,\n val: pathOperators[operator],\n })\n\n if (searchParam?.value && searchParam?.path) {\n result = {\n ...result,\n [searchParam.path]: searchParam.value,\n }\n } else if (typeof searchParam?.value === 'object') {\n result = deepmerge(result, searchParam.value, { arrayMerge: combineMerge })\n }\n }\n }\n }\n }\n }\n }\n\n return result\n}\n"],"names":["deepmerge","validOperators","combineMerge","buildAndOrConditions","buildSearchParam","parseParams","collectionSlug","fields","globalSlug","locale","payload","where","result","relationOrPath","Object","keys","condition","conditionOperator","toLowerCase","Array","isArray","builtConditions","length","pathOperators","operator","includes","searchParam","incomingPath","val","value","path","arrayMerge"],"mappings":"AAAA,uCAAuC,GACvC,mCAAmC,GAMnC,OAAOA,eAAe,YAAW;AACjC,SAASC,cAAc,QAAQ,gBAAe;AAC9C,SAASC,YAAY,QAAQ,oBAAmB;AAEhD,SAASC,oBAAoB,QAAQ,4BAA2B;AAChE,SAASC,gBAAgB,QAAQ,yBAAwB;AAEzD,OAAO,eAAeC,YAAY,EAChCC,cAAc,EACdC,MAAM,EACNC,UAAU,EACVC,MAAM,EACNC,OAAO,EACPC,KAAK,EAQN;IACC,IAAIC,SAAS,CAAC;IAEd,IAAI,OAAOD,UAAU,UAAU;QAC7B,uEAAuE;QACvE,KAAK,MAAME,kBAAkBC,OAAOC,IAAI,CAACJ,OAAQ;YAC/C,MAAMK,YAAYL,KAAK,CAACE,eAAe;YACvC,IAAII;YACJ,IAAIJ,eAAeK,WAAW,OAAO,OAAO;gBAC1CD,oBAAoB;YACtB,OAAO,IAAIJ,eAAeK,WAAW,OAAO,MAAM;gBAChDD,oBAAoB;YACtB;YACA,IAAIE,MAAMC,OAAO,CAACJ,YAAY;gBAC5B,MAAMK,kBAAkB,MAAMlB,qBAAqB;oBACjDG;oBACAC;oBACAC;oBACAC;oBACAC;oBACAC,OAAOK;gBACT;gBACA,IAAIK,gBAAgBC,MAAM,GAAG,GAAGV,MAAM,CAACK,kBAAkB,GAAGI;YAC9D,OAAO;gBACL,wEAAwE;gBACxE,kEAAkE;gBAClE,8EAA8E;gBAC9E,MAAME,gBAAgBZ,KAAK,CAACE,eAAe;gBAC3C,IAAI,OAAOU,kBAAkB,UAAU;oBACrC,KAAK,MAAMC,YAAYV,OAAOC,IAAI,CAACQ,eAAgB;wBACjD,IAAItB,eAAewB,QAAQ,CAACD,WAAuB;4BACjD,MAAME,cAAc,MAAMtB,iBAAiB;gCACzCE;gCACAC;gCACAC;gCACAmB,cAAcd;gCACdJ;gCACAe;gCACAd;gCACAkB,KAAKL,aAAa,CAACC,SAAS;4BAC9B;4BAEA,IAAIE,aAAaG,SAASH,aAAaI,MAAM;gCAC3ClB,SAAS;oCACP,GAAGA,MAAM;oCACT,CAACc,YAAYI,IAAI,CAAC,EAAEJ,YAAYG,KAAK;gCACvC;4BACF,OAAO,IAAI,OAAOH,aAAaG,UAAU,UAAU;gCACjDjB,SAASZ,UAAUY,QAAQc,YAAYG,KAAK,EAAE;oCAAEE,YAAY7B;gCAAa;4BAC3E;wBACF;oBACF;gBACF;YACF;QACF;IACF;IAEA,OAAOU;AACT"}
|
|
@@ -184,4 +184,4 @@ export const sanitizeQueryValue = ({ field, hasCustomID, operator, path, val })=
|
|
|
184
184
|
};
|
|
185
185
|
};
|
|
186
186
|
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL3Nhbml0aXplUXVlcnlWYWx1ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZpZWxkLCBUYWJBc0ZpZWxkIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IG1vbmdvb3NlIGZyb20gJ21vbmdvb3NlJ1xuaW1wb3J0IHsgY3JlYXRlQXJyYXlGcm9tQ29tbWFEZWxpbmVhdGVkIH0gZnJvbSAncGF5bG9hZC91dGlsaXRpZXMnXG5cbnR5cGUgU2FuaXRpemVRdWVyeVZhbHVlQXJncyA9IHtcbiAgZmllbGQ6IEZpZWxkIHwgVGFiQXNGaWVsZFxuICBoYXNDdXN0b21JRDogYm9vbGVhblxuICBvcGVyYXRvcjogc3RyaW5nXG4gIHBhdGg6IHN0cmluZ1xuICB2YWw6IGFueVxufVxuXG5leHBvcnQgY29uc3Qgc2FuaXRpemVRdWVyeVZhbHVlID0gKHtcbiAgZmllbGQsXG4gIGhhc0N1c3RvbUlELFxuICBvcGVyYXRvcixcbiAgcGF0aCxcbiAgdmFsLFxufTogU2FuaXRpemVRdWVyeVZhbHVlQXJncyk6IHtcbiAgb3BlcmF0b3I/OiBzdHJpbmdcbiAgcmF3UXVlcnk/OiB1bmtub3duXG4gIHZhbD86IHVua25vd25cbn0gPT4ge1xuICBsZXQgZm9ybWF0dGVkVmFsdWUgPSB2YWxcbiAgbGV0IGZvcm1hdHRlZE9wZXJhdG9yID0gb3BlcmF0b3JcblxuICAvLyBEaXNyZWdhcmQgaW52YWxpZCBfaWRzXG4gIGlmIChwYXRoID09PSAnX2lkJyAmJiB0eXBlb2YgdmFsID09PSAnc3RyaW5nJyAmJiB2YWwuc3BsaXQoJywnKS5sZW5ndGggPT09IDEpIHtcbiAgICBpZiAoIWhhc0N1c3RvbUlEKSB7XG4gICAgICBjb25zdCBpc1ZhbGlkID0gbW9uZ29vc2UuVHlwZXMuT2JqZWN0SWQuaXNWYWxpZCh2YWwpXG5cbiAgICAgIGlmICghaXNWYWxpZCkge1xuICAgICAgICByZXR1cm4geyBvcGVyYXRvcjogZm9ybWF0dGVkT3BlcmF0b3IsIHZhbDogdW5kZWZpbmVkIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZmllbGQudHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIGNvbnN0IHBhcnNlZE51bWJlciA9IHBhcnNlRmxvYXQodmFsKVxuXG4gICAgICBpZiAoTnVtYmVyLmlzTmFOKHBhcnNlZE51bWJlcikpIHtcbiAgICAgICAgcmV0dXJuIHsgb3BlcmF0b3I6IGZvcm1hdHRlZE9wZXJhdG9yLCB2YWw6IHVuZGVmaW5lZCB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQ2FzdCBpbmNvbWluZyB2YWx1ZXMgYXMgcHJvcGVyIHNlYXJjaGFibGUgdHlwZXNcbiAgaWYgKGZpZWxkLnR5cGUgPT09ICdjaGVja2JveCcgJiYgdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAodmFsLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJykgZm9ybWF0dGVkVmFsdWUgPSB0cnVlXG4gICAgaWYgKHZhbC50b0xvd2VyQ2FzZSgpID09PSAnZmFsc2UnKSBmb3JtYXR0ZWRWYWx1ZSA9IGZhbHNlXG4gIH1cblxuICBpZiAoWydhbGwnLCAnaW4nLCAnbm90X2luJ10uaW5jbHVkZXMob3BlcmF0b3IpICYmIHR5cGVvZiBmb3JtYXR0ZWRWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICBmb3JtYXR0ZWRWYWx1ZSA9IGNyZWF0ZUFycmF5RnJvbUNvbW1hRGVsaW5lYXRlZChmb3JtYXR0ZWRWYWx1ZSlcblxuICAgIGlmIChmaWVsZC50eXBlID09PSAnbnVtYmVyJykge1xuICAgICAgZm9ybWF0dGVkVmFsdWUgPSBmb3JtYXR0ZWRWYWx1ZS5tYXAoKGFycmF5VmFsKSA9PiBwYXJzZUZsb2F0KGFycmF5VmFsKSlcbiAgICB9XG4gIH1cblxuICBpZiAoZmllbGQudHlwZSA9PT0gJ251bWJlcicgJiYgdHlwZW9mIGZvcm1hdHRlZFZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIGZvcm1hdHRlZFZhbHVlID0gTnVtYmVyKHZhbClcbiAgfVxuXG4gIGlmIChmaWVsZC50eXBlID09PSAnZGF0ZScgJiYgdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICBmb3JtYXR0ZWRWYWx1ZSA9IG5ldyBEYXRlKHZhbClcbiAgICBpZiAoTnVtYmVyLmlzTmFOKERhdGUucGFyc2UoZm9ybWF0dGVkVmFsdWUpKSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cbiAgfVxuXG4gIGlmIChbJ3JlbGF0aW9uc2hpcCcsICd1cGxvYWQnXS5pbmNsdWRlcyhmaWVsZC50eXBlKSkge1xuICAgIGlmICh2YWwgPT09ICdudWxsJykge1xuICAgICAgZm9ybWF0dGVkVmFsdWUgPSBudWxsXG4gICAgfVxuXG4gICAgLy8gT2JqZWN0IGVxdWFsaXR5IHJlcXVpcmVzIHRoZSB2YWx1ZSB0byBiZSB0aGUgZmlyc3Qga2V5IGluIHRoZSBvYmplY3QgdGhhdCBpcyBiZWluZyBxdWVyaWVkLlxuICAgIGlmIChcbiAgICAgIG9wZXJhdG9yID09PSAnZXF1YWxzJyAmJlxuICAgICAgZm9ybWF0dGVkVmFsdWUgJiZcbiAgICAgIHR5cGVvZiBmb3JtYXR0ZWRWYWx1ZSA9PT0gJ29iamVjdCcgJiZcbiAgICAgIGZvcm1hdHRlZFZhbHVlLnZhbHVlICYmXG4gICAgICBmb3JtYXR0ZWRWYWx1ZS5yZWxhdGlvblRvXG4gICAgKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByYXdRdWVyeToge1xuICAgICAgICAgICRhbmQ6IFtcbiAgICAgICAgICAgIHsgW2Ake3BhdGh9LnZhbHVlYF06IHsgJGVxOiBmb3JtYXR0ZWRWYWx1ZS52YWx1ZSB9IH0sXG4gICAgICAgICAgICB7IFtgJHtwYXRofS5yZWxhdGlvblRvYF06IHsgJGVxOiBmb3JtYXR0ZWRWYWx1ZS5yZWxhdGlvblRvIH0gfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChvcGVyYXRvciA9PT0gJ2luJyAmJiBBcnJheS5pc0FycmF5KGZvcm1hdHRlZFZhbHVlKSkge1xuICAgICAgZm9ybWF0dGVkVmFsdWUgPSBmb3JtYXR0ZWRWYWx1ZS5yZWR1Y2UoKGZvcm1hdHRlZFZhbHVlcywgaW5WYWwpID0+IHtcbiAgICAgICAgY29uc3QgbmV3VmFsdWVzID0gW2luVmFsXVxuICAgICAgICBpZiAobW9uZ29vc2UuVHlwZXMuT2JqZWN0SWQuaXNWYWxpZChpblZhbCkpXG4gICAgICAgICAgbmV3VmFsdWVzLnB1c2gobmV3IG1vbmdvb3NlLlR5cGVzLk9iamVjdElkKGluVmFsKSlcblxuICAgICAgICBjb25zdCBwYXJzZWROdW1iZXIgPSBwYXJzZUZsb2F0KGluVmFsKVxuICAgICAgICBpZiAoIU51bWJlci5pc05hTihwYXJzZWROdW1iZXIpKSBuZXdWYWx1ZXMucHVzaChwYXJzZWROdW1iZXIpXG5cbiAgICAgICAgcmV0dXJuIFsuLi5mb3JtYXR0ZWRWYWx1ZXMsIC4uLm5ld1ZhbHVlc11cbiAgICAgIH0sIFtdKVxuICAgIH1cbiAgfVxuXG4gIC8vIFNldCB1cCBzcGVjaWZpYyBmb3JtYXR0aW5nIG5lY2Vzc2FyeSBieSBvcGVyYXRvcnNcblxuICBpZiAob3BlcmF0b3IgPT09ICduZWFyJykge1xuICAgIGxldCBsbmdcbiAgICBsZXQgbGF0XG4gICAgbGV0IG1heERpc3RhbmNlXG4gICAgbGV0IG1pbkRpc3RhbmNlXG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShmb3JtYXR0ZWRWYWx1ZSkpIHtcbiAgICAgIDtbbG5nLCBsYXQsIG1heERpc3RhbmNlLCBtaW5EaXN0YW5jZV0gPSBmb3JtYXR0ZWRWYWx1ZVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgZm9ybWF0dGVkVmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICA7W2xuZywgbGF0LCBtYXhEaXN0YW5jZSwgbWluRGlzdGFuY2VdID0gY3JlYXRlQXJyYXlGcm9tQ29tbWFEZWxpbmVhdGVkKGZvcm1hdHRlZFZhbHVlKVxuICAgIH1cblxuICAgIGlmIChsbmcgPT0gbnVsbCB8fCBsYXQgPT0gbnVsbCB8fCAobWF4RGlzdGFuY2UgPT0gbnVsbCAmJiBtaW5EaXN0YW5jZSA9PSBudWxsKSkge1xuICAgICAgZm9ybWF0dGVkVmFsdWUgPSB1bmRlZmluZWRcbiAgICB9IGVsc2Uge1xuICAgICAgZm9ybWF0dGVkVmFsdWUgPSB7XG4gICAgICAgICRnZW9tZXRyeTogeyB0eXBlOiAnUG9pbnQnLCBjb29yZGluYXRlczogW3BhcnNlRmxvYXQobG5nKSwgcGFyc2VGbG9hdChsYXQpXSB9LFxuICAgICAgfVxuXG4gICAgICBpZiAobWF4RGlzdGFuY2UpIGZvcm1hdHRlZFZhbHVlLiRtYXhEaXN0YW5jZSA9IHBhcnNlRmxvYXQobWF4RGlzdGFuY2UpXG4gICAgICBpZiAobWluRGlzdGFuY2UpIGZvcm1hdHRlZFZhbHVlLiRtaW5EaXN0YW5jZSA9IHBhcnNlRmxvYXQobWluRGlzdGFuY2UpXG4gICAgfVxuICB9XG5cbiAgaWYgKG9wZXJhdG9yID09PSAnd2l0aGluJyB8fCBvcGVyYXRvciA9PT0gJ2ludGVyc2VjdHMnKSB7XG4gICAgZm9ybWF0dGVkVmFsdWUgPSB7XG4gICAgICAkZ2VvbWV0cnk6IGZvcm1hdHRlZFZhbHVlLFxuICAgIH1cbiAgfVxuXG4gIGlmIChwYXRoICE9PSAnX2lkJyB8fCAocGF0aCA9PT0gJ19pZCcgJiYgaGFzQ3VzdG9tSUQgJiYgZmllbGQudHlwZSA9PT0gJ3RleHQnKSkge1xuICAgIGlmIChvcGVyYXRvciA9PT0gJ2NvbnRhaW5zJykge1xuICAgICAgZm9ybWF0dGVkVmFsdWUgPSB7ICRvcHRpb25zOiAnaScsICRyZWdleDogZm9ybWF0dGVkVmFsdWUgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChcbiAgICAocGF0aCA9PT0gJ19pZCcgfHwgcGF0aCA9PT0gJ3BhcmVudCcpICYmXG4gICAgb3BlcmF0b3IgPT09ICdsaWtlJyAmJlxuICAgIGZvcm1hdHRlZFZhbHVlLmxlbmd0aCA9PT0gMjQgJiZcbiAgICAhaGFzQ3VzdG9tSURcbiAgKSB7XG4gICAgZm9ybWF0dGVkT3BlcmF0b3IgPSAnZXF1YWxzJ1xuICB9XG5cbiAgaWYgKG9wZXJhdG9yID09PSAnZXhpc3RzJykge1xuICAgIGZvcm1hdHRlZFZhbHVlID0gZm9ybWF0dGVkVmFsdWUgPT09ICd0cnVlJyB8fCBmb3JtYXR0ZWRWYWx1ZSA9PT0gdHJ1ZVxuXG4gICAgLy8gQ2xlYXJhYmxlIGZpZWxkc1xuICAgIGlmIChbJ3JlbGF0aW9uc2hpcCcsICdzZWxlY3QnLCAndXBsb2FkJ10uaW5jbHVkZXMoZmllbGQudHlwZSkpIHtcbiAgICAgIGlmIChmb3JtYXR0ZWRWYWx1ZSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJhd1F1ZXJ5OiB7XG4gICAgICAgICAgICAkYW5kOiBbeyBbcGF0aF06IHsgJGV4aXN0czogdHJ1ZSB9IH0sIHsgW3BhdGhdOiB7ICRuZTogbnVsbCB9IH1dLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmF3UXVlcnk6IHtcbiAgICAgICAgICAgICRvcjogW3sgW3BhdGhdOiB7ICRleGlzdHM6IGZhbHNlIH0gfSwgeyBbcGF0aF06IHsgJGVxOiBudWxsIH0gfV0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7IG9wZXJhdG9yOiBmb3JtYXR0ZWRPcGVyYXRvciwgdmFsOiBmb3JtYXR0ZWRWYWx1ZSB9XG59XG4iXSwibmFtZXMiOlsibW9uZ29vc2UiLCJjcmVhdGVBcnJheUZyb21Db21tYURlbGluZWF0ZWQiLCJzYW5pdGl6ZVF1ZXJ5VmFsdWUiLCJmaWVsZCIsImhhc0N1c3RvbUlEIiwib3BlcmF0b3IiLCJwYXRoIiwidmFsIiwiZm9ybWF0dGVkVmFsdWUiLCJmb3JtYXR0ZWRPcGVyYXRvciIsInNwbGl0IiwibGVuZ3RoIiwiaXNWYWxpZCIsIlR5cGVzIiwiT2JqZWN0SWQiLCJ1bmRlZmluZWQiLCJ0eXBlIiwicGFyc2VkTnVtYmVyIiwicGFyc2VGbG9hdCIsIk51bWJlciIsImlzTmFOIiwidG9Mb3dlckNhc2UiLCJpbmNsdWRlcyIsIm1hcCIsImFycmF5VmFsIiwiRGF0ZSIsInBhcnNlIiwidmFsdWUiLCJyZWxhdGlvblRvIiwicmF3UXVlcnkiLCIkYW5kIiwiJGVxIiwiQXJyYXkiLCJpc0FycmF5IiwicmVkdWNlIiwiZm9ybWF0dGVkVmFsdWVzIiwiaW5WYWwiLCJuZXdWYWx1ZXMiLCJwdXNoIiwibG5nIiwibGF0IiwibWF4RGlzdGFuY2UiLCJtaW5EaXN0YW5jZSIsIiRnZW9tZXRyeSIsImNvb3JkaW5hdGVzIiwiJG1heERpc3RhbmNlIiwiJG1pbkRpc3RhbmNlIiwiJG9wdGlvbnMiLCIkcmVnZXgiLCIkZXhpc3RzIiwiJG5lIiwiJG9yIl0sIm1hcHBpbmdzIjoiQUFFQSxPQUFPQSxjQUFjLFdBQVU7QUFDL0IsU0FBU0MsOEJBQThCLFFBQVEsb0JBQW1CO0FBVWxFLE9BQU8sTUFBTUMscUJBQXFCLENBQUMsRUFDakNDLEtBQUssRUFDTEMsV0FBVyxFQUNYQyxRQUFRLEVBQ1JDLElBQUksRUFDSkMsR0FBRyxFQUNvQjtJQUt2QixJQUFJQyxpQkFBaUJEO0lBQ3JCLElBQUlFLG9CQUFvQko7SUFFeEIseUJBQXlCO0lBQ3pCLElBQUlDLFNBQVMsU0FBUyxPQUFPQyxRQUFRLFlBQVlBLElBQUlHLEtBQUssQ0FBQyxLQUFLQyxNQUFNLEtBQUssR0FBRztRQUM1RSxJQUFJLENBQUNQLGFBQWE7WUFDaEIsTUFBTVEsVUFBVVosU0FBU2EsS0FBSyxDQUFDQyxRQUFRLENBQUNGLE9BQU8sQ0FBQ0w7WUFFaEQsSUFBSSxDQUFDSyxTQUFTO2dCQUNaLE9BQU87b0JBQUVQLFVBQVVJO29CQUFtQkYsS0FBS1E7Z0JBQVU7WUFDdkQ7UUFDRjtRQUVBLElBQUlaLE1BQU1hLElBQUksS0FBSyxVQUFVO1lBQzNCLE1BQU1DLGVBQWVDLFdBQVdYO1lBRWhDLElBQUlZLE9BQU9DLEtBQUssQ0FBQ0gsZUFBZTtnQkFDOUIsT0FBTztvQkFBRVosVUFBVUk7b0JBQW1CRixLQUFLUTtnQkFBVTtZQUN2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
|
|
187
|
+
//# sourceMappingURL=sanitizeQueryValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/queries/sanitizeQueryValue.ts"],"sourcesContent":["import type { Field, TabAsField } from 'payload/types'\n\nimport mongoose from 'mongoose'\nimport { createArrayFromCommaDelineated } from 'payload/utilities'\n\ntype SanitizeQueryValueArgs = {\n field: Field | TabAsField\n hasCustomID: boolean\n operator: string\n path: string\n val: any\n}\n\nexport const sanitizeQueryValue = ({\n field,\n hasCustomID,\n operator,\n path,\n val,\n}: SanitizeQueryValueArgs): {\n operator?: string\n rawQuery?: unknown\n val?: unknown\n} => {\n let formattedValue = val\n let formattedOperator = operator\n\n // Disregard invalid _ids\n if (path === '_id' && typeof val === 'string' && val.split(',').length === 1) {\n if (!hasCustomID) {\n const isValid = mongoose.Types.ObjectId.isValid(val)\n\n if (!isValid) {\n return { operator: formattedOperator, val: undefined }\n }\n }\n\n if (field.type === 'number') {\n const parsedNumber = parseFloat(val)\n\n if (Number.isNaN(parsedNumber)) {\n return { operator: formattedOperator, val: undefined }\n }\n }\n }\n\n // Cast incoming values as proper searchable types\n if (field.type === 'checkbox' && typeof val === 'string') {\n if (val.toLowerCase() === 'true') formattedValue = true\n if (val.toLowerCase() === 'false') formattedValue = false\n }\n\n if (['all', 'in', 'not_in'].includes(operator) && typeof formattedValue === 'string') {\n formattedValue = createArrayFromCommaDelineated(formattedValue)\n\n if (field.type === 'number') {\n formattedValue = formattedValue.map((arrayVal) => parseFloat(arrayVal))\n }\n }\n\n if (field.type === 'number' && typeof formattedValue === 'string') {\n formattedValue = Number(val)\n }\n\n if (field.type === 'date' && typeof val === 'string') {\n formattedValue = new Date(val)\n if (Number.isNaN(Date.parse(formattedValue))) {\n return undefined\n }\n }\n\n if (['relationship', 'upload'].includes(field.type)) {\n if (val === 'null') {\n formattedValue = null\n }\n\n // Object equality requires the value to be the first key in the object that is being queried.\n if (\n operator === 'equals' &&\n formattedValue &&\n typeof formattedValue === 'object' &&\n formattedValue.value &&\n formattedValue.relationTo\n ) {\n return {\n rawQuery: {\n $and: [\n { [`${path}.value`]: { $eq: formattedValue.value } },\n { [`${path}.relationTo`]: { $eq: formattedValue.relationTo } },\n ],\n },\n }\n }\n\n if (operator === 'in' && Array.isArray(formattedValue)) {\n formattedValue = formattedValue.reduce((formattedValues, inVal) => {\n const newValues = [inVal]\n if (mongoose.Types.ObjectId.isValid(inVal))\n newValues.push(new mongoose.Types.ObjectId(inVal))\n\n const parsedNumber = parseFloat(inVal)\n if (!Number.isNaN(parsedNumber)) newValues.push(parsedNumber)\n\n return [...formattedValues, ...newValues]\n }, [])\n }\n }\n\n // Set up specific formatting necessary by operators\n\n if (operator === 'near') {\n let lng\n let lat\n let maxDistance\n let minDistance\n\n if (Array.isArray(formattedValue)) {\n ;[lng, lat, maxDistance, minDistance] = formattedValue\n }\n\n if (typeof formattedValue === 'string') {\n ;[lng, lat, maxDistance, minDistance] = createArrayFromCommaDelineated(formattedValue)\n }\n\n if (lng == null || lat == null || (maxDistance == null && minDistance == null)) {\n formattedValue = undefined\n } else {\n formattedValue = {\n $geometry: { type: 'Point', coordinates: [parseFloat(lng), parseFloat(lat)] },\n }\n\n if (maxDistance) formattedValue.$maxDistance = parseFloat(maxDistance)\n if (minDistance) formattedValue.$minDistance = parseFloat(minDistance)\n }\n }\n\n if (operator === 'within' || operator === 'intersects') {\n formattedValue = {\n $geometry: formattedValue,\n }\n }\n\n if (path !== '_id' || (path === '_id' && hasCustomID && field.type === 'text')) {\n if (operator === 'contains') {\n formattedValue = { $options: 'i', $regex: formattedValue }\n }\n }\n\n if (\n (path === '_id' || path === 'parent') &&\n operator === 'like' &&\n formattedValue.length === 24 &&\n !hasCustomID\n ) {\n formattedOperator = 'equals'\n }\n\n if (operator === 'exists') {\n formattedValue = formattedValue === 'true' || formattedValue === true\n\n // Clearable fields\n if (['relationship', 'select', 'upload'].includes(field.type)) {\n if (formattedValue) {\n return {\n rawQuery: {\n $and: [{ [path]: { $exists: true } }, { [path]: { $ne: null } }],\n },\n }\n } else {\n return {\n rawQuery: {\n $or: [{ [path]: { $exists: false } }, { [path]: { $eq: null } }],\n },\n }\n }\n }\n }\n\n return { operator: formattedOperator, val: formattedValue }\n}\n"],"names":["mongoose","createArrayFromCommaDelineated","sanitizeQueryValue","field","hasCustomID","operator","path","val","formattedValue","formattedOperator","split","length","isValid","Types","ObjectId","undefined","type","parsedNumber","parseFloat","Number","isNaN","toLowerCase","includes","map","arrayVal","Date","parse","value","relationTo","rawQuery","$and","$eq","Array","isArray","reduce","formattedValues","inVal","newValues","push","lng","lat","maxDistance","minDistance","$geometry","coordinates","$maxDistance","$minDistance","$options","$regex","$exists","$ne","$or"],"mappings":"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"}
|
package/dist/queryDrafts.js
CHANGED
|
@@ -79,4 +79,4 @@ export const queryDrafts = async function queryDrafts({ collection, limit, local
|
|
|
79
79
|
};
|
|
80
80
|
};
|
|
81
81
|
|
|
82
|
-
//# sourceMappingURL=
|
|
82
|
+
//# sourceMappingURL=queryDrafts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/queryDrafts.ts"],"sourcesContent":["import type { PaginateOptions } from 'mongoose'\nimport type { QueryDrafts } from 'payload/database'\nimport type { PayloadRequest } from 'payload/types'\n\nimport { combineQueries, flattenWhereToOperators } from 'payload/database'\n\nimport type { MongooseAdapter } from './index.js'\n\nimport { buildSortParam } from './queries/buildSortParam.js'\nimport sanitizeInternalFields from './utilities/sanitizeInternalFields.js'\nimport { withSession } from './withSession.js'\n\nexport const queryDrafts: QueryDrafts = async function queryDrafts(\n this: MongooseAdapter,\n { collection, limit, locale, page, pagination, req = {} as PayloadRequest, sort: sortArg, where },\n) {\n const VersionModel = this.versions[collection]\n const collectionConfig = this.payload.collections[collection].config\n const options = withSession(this, req.transactionID)\n\n let hasNearConstraint\n let sort\n\n if (where) {\n const constraints = flattenWhereToOperators(where)\n hasNearConstraint = constraints.some((prop) => Object.keys(prop).some((key) => key === 'near'))\n }\n\n if (!hasNearConstraint) {\n sort = buildSortParam({\n config: this.payload.config,\n fields: collectionConfig.fields,\n locale,\n sort: sortArg || collectionConfig.defaultSort,\n timestamps: true,\n })\n }\n\n const combinedWhere = combineQueries({ latest: { equals: true } }, where)\n\n const versionQuery = await VersionModel.buildQuery({\n locale,\n payload: this.payload,\n where: combinedWhere,\n })\n\n // useEstimatedCount is faster, but not accurate, as it ignores any filters. It is thus set to true if there are no filters.\n const useEstimatedCount =\n hasNearConstraint || !versionQuery || Object.keys(versionQuery).length === 0\n const paginationOptions: PaginateOptions = {\n forceCountFn: hasNearConstraint,\n lean: true,\n leanWithId: true,\n options,\n page,\n pagination,\n sort,\n useEstimatedCount,\n }\n\n if (\n !useEstimatedCount &&\n Object.keys(versionQuery).length === 0 &&\n this.disableIndexHints !== true\n ) {\n // Improve the performance of the countDocuments query which is used if useEstimatedCount is set to false by adding\n // a hint. By default, if no hint is provided, MongoDB does not use an indexed field to count the returned documents,\n // which makes queries very slow. This only happens when no query (filter) is provided. If one is provided, it uses\n // the correct indexed field\n paginationOptions.useCustomCountFn = () => {\n return Promise.resolve(\n VersionModel.countDocuments(versionQuery, {\n hint: { _id: 1 },\n }),\n )\n }\n }\n\n if (limit > 0) {\n paginationOptions.limit = limit\n // limit must also be set here, it's ignored when pagination is false\n paginationOptions.options.limit = limit\n }\n\n const result = await VersionModel.paginate(versionQuery, paginationOptions)\n const docs = JSON.parse(JSON.stringify(result.docs))\n\n return {\n ...result,\n docs: docs.map((doc) => {\n // eslint-disable-next-line no-param-reassign\n doc = {\n _id: doc.parent,\n id: doc.parent,\n ...doc.version,\n createdAt: doc.createdAt,\n updatedAt: doc.updatedAt,\n }\n\n return sanitizeInternalFields(doc)\n }),\n }\n}\n"],"names":["combineQueries","flattenWhereToOperators","buildSortParam","sanitizeInternalFields","withSession","queryDrafts","collection","limit","locale","page","pagination","req","sort","sortArg","where","VersionModel","versions","collectionConfig","payload","collections","config","options","transactionID","hasNearConstraint","constraints","some","prop","Object","keys","key","fields","defaultSort","timestamps","combinedWhere","latest","equals","versionQuery","buildQuery","useEstimatedCount","length","paginationOptions","forceCountFn","lean","leanWithId","disableIndexHints","useCustomCountFn","Promise","resolve","countDocuments","hint","_id","result","paginate","docs","JSON","parse","stringify","map","doc","parent","id","version","createdAt","updatedAt"],"mappings":"AAIA,SAASA,cAAc,EAAEC,uBAAuB,QAAQ,mBAAkB;AAI1E,SAASC,cAAc,QAAQ,8BAA6B;AAC5D,OAAOC,4BAA4B,wCAAuC;AAC1E,SAASC,WAAW,QAAQ,mBAAkB;AAE9C,OAAO,MAAMC,cAA2B,eAAeA,YAErD,EAAEC,UAAU,EAAEC,KAAK,EAAEC,MAAM,EAAEC,IAAI,EAAEC,UAAU,EAAEC,MAAM,CAAC,CAAmB,EAAEC,MAAMC,OAAO,EAAEC,KAAK,EAAE;IAEjG,MAAMC,eAAe,IAAI,CAACC,QAAQ,CAACV,WAAW;IAC9C,MAAMW,mBAAmB,IAAI,CAACC,OAAO,CAACC,WAAW,CAACb,WAAW,CAACc,MAAM;IACpE,MAAMC,UAAUjB,YAAY,IAAI,EAAEO,IAAIW,aAAa;IAEnD,IAAIC;IACJ,IAAIX;IAEJ,IAAIE,OAAO;QACT,MAAMU,cAAcvB,wBAAwBa;QAC5CS,oBAAoBC,YAAYC,IAAI,CAAC,CAACC,OAASC,OAAOC,IAAI,CAACF,MAAMD,IAAI,CAAC,CAACI,MAAQA,QAAQ;IACzF;IAEA,IAAI,CAACN,mBAAmB;QACtBX,OAAOV,eAAe;YACpBkB,QAAQ,IAAI,CAACF,OAAO,CAACE,MAAM;YAC3BU,QAAQb,iBAAiBa,MAAM;YAC/BtB;YACAI,MAAMC,WAAWI,iBAAiBc,WAAW;YAC7CC,YAAY;QACd;IACF;IAEA,MAAMC,gBAAgBjC,eAAe;QAAEkC,QAAQ;YAAEC,QAAQ;QAAK;IAAE,GAAGrB;IAEnE,MAAMsB,eAAe,MAAMrB,aAAasB,UAAU,CAAC;QACjD7B;QACAU,SAAS,IAAI,CAACA,OAAO;QACrBJ,OAAOmB;IACT;IAEA,4HAA4H;IAC5H,MAAMK,oBACJf,qBAAqB,CAACa,gBAAgBT,OAAOC,IAAI,CAACQ,cAAcG,MAAM,KAAK;IAC7E,MAAMC,oBAAqC;QACzCC,cAAclB;QACdmB,MAAM;QACNC,YAAY;QACZtB;QACAZ;QACAC;QACAE;QACA0B;IACF;IAEA,IACE,CAACA,qBACDX,OAAOC,IAAI,CAACQ,cAAcG,MAAM,KAAK,KACrC,IAAI,CAACK,iBAAiB,KAAK,MAC3B;QACA,mHAAmH;QACnH,qHAAqH;QACrH,mHAAmH;QACnH,4BAA4B;QAC5BJ,kBAAkBK,gBAAgB,GAAG;YACnC,OAAOC,QAAQC,OAAO,CACpBhC,aAAaiC,cAAc,CAACZ,cAAc;gBACxCa,MAAM;oBAAEC,KAAK;gBAAE;YACjB;QAEJ;IACF;IAEA,IAAI3C,QAAQ,GAAG;QACbiC,kBAAkBjC,KAAK,GAAGA;QAC1B,qEAAqE;QACrEiC,kBAAkBnB,OAAO,CAACd,KAAK,GAAGA;IACpC;IAEA,MAAM4C,SAAS,MAAMpC,aAAaqC,QAAQ,CAAChB,cAAcI;IACzD,MAAMa,OAAOC,KAAKC,KAAK,CAACD,KAAKE,SAAS,CAACL,OAAOE,IAAI;IAElD,OAAO;QACL,GAAGF,MAAM;QACTE,MAAMA,KAAKI,GAAG,CAAC,CAACC;YACd,6CAA6C;YAC7CA,MAAM;gBACJR,KAAKQ,IAAIC,MAAM;gBACfC,IAAIF,IAAIC,MAAM;gBACd,GAAGD,IAAIG,OAAO;gBACdC,WAAWJ,IAAII,SAAS;gBACxBC,WAAWL,IAAIK,SAAS;YAC1B;YAEA,OAAO5D,uBAAuBuD;QAChC;IACF;AACF,EAAC"}
|
package/dist/testCredentials.js
CHANGED
|
@@ -6,4 +6,4 @@ export const connection = {
|
|
|
6
6
|
url: 'mongodb://127.0.0.1'
|
|
7
7
|
};
|
|
8
8
|
|
|
9
|
-
//# sourceMappingURL=
|
|
9
|
+
//# sourceMappingURL=testCredentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/testCredentials.ts"],"sourcesContent":["export const email = 'test@test.com'\nexport const password = 'test123'\nexport const connection = {\n name: 'payloadmemory',\n port: 27018,\n url: 'mongodb://127.0.0.1',\n}\n"],"names":["email","password","connection","name","port","url"],"mappings":"AAAA,OAAO,MAAMA,QAAQ,gBAAe;AACpC,OAAO,MAAMC,WAAW,UAAS;AACjC,OAAO,MAAMC,aAAa;IACxBC,MAAM;IACNC,MAAM;IACNC,KAAK;AACP,EAAC"}
|