@payloadcms/db-mongodb 3.0.0-alpha.8 → 3.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/README.md +0 -2
  2. package/dist/connect.d.ts.map +1 -1
  3. package/dist/connect.js +20 -25
  4. package/dist/connect.js.map +1 -0
  5. package/dist/create.js +6 -21
  6. package/dist/create.js.map +1 -0
  7. package/dist/createGlobal.js +6 -21
  8. package/dist/createGlobal.js.map +1 -0
  9. package/dist/createGlobalVersion.js +4 -14
  10. package/dist/createGlobalVersion.js.map +1 -0
  11. package/dist/createMigration.d.ts.map +1 -1
  12. package/dist/createMigration.js +15 -25
  13. package/dist/createMigration.js.map +1 -0
  14. package/dist/createVersion.js +4 -14
  15. package/dist/createVersion.js.map +1 -0
  16. package/dist/deleteMany.js +4 -14
  17. package/dist/deleteMany.js.map +1 -0
  18. package/dist/deleteOne.js +6 -21
  19. package/dist/deleteOne.js.map +1 -0
  20. package/dist/deleteVersions.js +4 -14
  21. package/dist/deleteVersions.js.map +1 -0
  22. package/dist/destroy.js +5 -21
  23. package/dist/destroy.js.map +1 -0
  24. package/dist/find.js +10 -25
  25. package/dist/find.js.map +1 -0
  26. package/dist/findGlobal.js +8 -23
  27. package/dist/findGlobal.js.map +1 -0
  28. package/dist/findGlobalVersions.js +12 -27
  29. package/dist/findGlobalVersions.js.map +1 -0
  30. package/dist/findOne.js +6 -21
  31. package/dist/findOne.js.map +1 -0
  32. package/dist/findVersions.js +10 -25
  33. package/dist/findVersions.js.map +1 -0
  34. package/dist/index.d.ts +36 -7
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +65 -80
  37. package/dist/index.js.map +1 -0
  38. package/dist/init.d.ts.map +1 -1
  39. package/dist/init.js +33 -39
  40. package/dist/init.js.map +1 -0
  41. package/dist/migrateFresh.d.ts +1 -1
  42. package/dist/migrateFresh.d.ts.map +1 -1
  43. package/dist/migrateFresh.js +13 -26
  44. package/dist/migrateFresh.js.map +1 -0
  45. package/dist/models/buildCollectionSchema.d.ts +25 -0
  46. package/dist/models/buildCollectionSchema.d.ts.map +1 -1
  47. package/dist/models/buildCollectionSchema.js +8 -23
  48. package/dist/models/buildCollectionSchema.js.map +1 -0
  49. package/dist/models/buildGlobalModel.d.ts +1 -1
  50. package/dist/models/buildGlobalModel.d.ts.map +1 -1
  51. package/dist/models/buildGlobalModel.js +9 -24
  52. package/dist/models/buildGlobalModel.js.map +1 -0
  53. package/dist/models/buildSchema.d.ts +26 -2
  54. package/dist/models/buildSchema.d.ts.map +1 -1
  55. package/dist/models/buildSchema.js +23 -33
  56. package/dist/models/buildSchema.js.map +1 -0
  57. package/dist/queries/buildAndOrConditions.js +4 -14
  58. package/dist/queries/buildAndOrConditions.js.map +1 -0
  59. package/dist/queries/buildQuery.js +6 -16
  60. package/dist/queries/buildQuery.js.map +1 -0
  61. package/dist/queries/buildSearchParams.d.ts.map +1 -1
  62. package/dist/queries/buildSearchParams.js +21 -32
  63. package/dist/queries/buildSearchParams.js.map +1 -0
  64. package/dist/queries/buildSortParam.d.ts +25 -0
  65. package/dist/queries/buildSortParam.d.ts.map +1 -1
  66. package/dist/queries/buildSortParam.js +4 -14
  67. package/dist/queries/buildSortParam.js.map +1 -0
  68. package/dist/queries/getLocalizedSortProperty.js +8 -18
  69. package/dist/queries/getLocalizedSortProperty.js.map +1 -0
  70. package/dist/queries/getLocalizedSortProperty.spec.js +19 -23
  71. package/dist/queries/getLocalizedSortProperty.spec.js.map +1 -0
  72. package/dist/queries/mock.js +1 -2
  73. package/dist/queries/mock.js.map +1 -0
  74. package/dist/queries/operatorMap.js +2 -12
  75. package/dist/queries/operatorMap.js.map +1 -0
  76. package/dist/queries/parseParams.js +12 -27
  77. package/dist/queries/parseParams.js.map +1 -0
  78. package/dist/queries/sanitizeQueryValue.d.ts.map +1 -1
  79. package/dist/queries/sanitizeQueryValue.js +9 -24
  80. package/dist/queries/sanitizeQueryValue.js.map +1 -0
  81. package/dist/queryDrafts.js +11 -26
  82. package/dist/queryDrafts.js.map +1 -0
  83. package/dist/testCredentials.js +4 -25
  84. package/dist/testCredentials.js.map +1 -0
  85. package/dist/transactions/beginTransaction.js +6 -16
  86. package/dist/transactions/beginTransaction.js.map +1 -0
  87. package/dist/transactions/commitTransaction.js +2 -12
  88. package/dist/transactions/commitTransaction.js.map +1 -0
  89. package/dist/transactions/rollbackTransaction.js +2 -12
  90. package/dist/transactions/rollbackTransaction.js.map +1 -0
  91. package/dist/types.d.ts +26 -1
  92. package/dist/types.d.ts.map +1 -1
  93. package/dist/types.js +2 -5
  94. package/dist/types.js.map +1 -0
  95. package/dist/updateGlobal.js +6 -21
  96. package/dist/updateGlobal.js.map +1 -0
  97. package/dist/updateGlobalVersion.d.ts +1 -1
  98. package/dist/updateGlobalVersion.d.ts.map +1 -1
  99. package/dist/updateGlobalVersion.js +4 -14
  100. package/dist/updateGlobalVersion.js.map +1 -0
  101. package/dist/updateOne.d.ts.map +1 -1
  102. package/dist/updateOne.js +8 -23
  103. package/dist/updateOne.js.map +1 -0
  104. package/dist/updateVersion.js +4 -14
  105. package/dist/updateVersion.js.map +1 -0
  106. package/dist/utilities/getDBName.d.ts +19 -0
  107. package/dist/utilities/getDBName.d.ts.map +1 -0
  108. package/dist/utilities/getDBName.js +19 -0
  109. package/dist/utilities/getDBName.js.map +1 -0
  110. package/dist/utilities/handleError.js +6 -21
  111. package/dist/utilities/handleError.js.map +1 -0
  112. package/dist/utilities/sanitizeInternalFields.d.ts.map +1 -1
  113. package/dist/utilities/sanitizeInternalFields.js +2 -12
  114. package/dist/utilities/sanitizeInternalFields.js.map +1 -0
  115. package/dist/withSession.d.ts +26 -1
  116. package/dist/withSession.d.ts.map +1 -1
  117. package/dist/withSession.js +5 -12
  118. package/dist/withSession.js.map +1 -0
  119. package/package.json +17 -9
  120. package/src/index.ts +198 -0
@@ -1,32 +1,17 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "buildGlobalModel", {
6
- enumerable: true,
7
- get: function() {
8
- return buildGlobalModel;
9
- }
10
- });
11
- const _mongoose = /*#__PURE__*/ _interop_require_default(require("mongoose"));
12
- const _buildQuery = /*#__PURE__*/ _interop_require_default(require("../queries/buildQuery"));
13
- const _buildSchema = /*#__PURE__*/ _interop_require_default(require("./buildSchema"));
14
- function _interop_require_default(obj) {
15
- return obj && obj.__esModule ? obj : {
16
- default: obj
17
- };
18
- }
19
- const buildGlobalModel = (config)=>{
1
+ import mongoose from 'mongoose';
2
+ import getBuildQueryPlugin from '../queries/buildQuery.js';
3
+ import buildSchema from './buildSchema.js';
4
+ export const buildGlobalModel = (config)=>{
20
5
  if (config.globals && config.globals.length > 0) {
21
- const globalsSchema = new _mongoose.default.Schema({}, {
6
+ const globalsSchema = new mongoose.Schema({}, {
22
7
  discriminatorKey: 'globalType',
23
8
  minimize: false,
24
9
  timestamps: true
25
10
  });
26
- globalsSchema.plugin((0, _buildQuery.default)());
27
- const Globals = _mongoose.default.model('globals', globalsSchema, 'globals');
11
+ globalsSchema.plugin(getBuildQueryPlugin());
12
+ const Globals = mongoose.model('globals', globalsSchema, 'globals');
28
13
  Object.values(config.globals).forEach((globalConfig)=>{
29
- const globalSchema = (0, _buildSchema.default)(config, globalConfig.fields, {
14
+ const globalSchema = buildSchema(config, globalConfig.fields, {
30
15
  options: {
31
16
  minimize: false
32
17
  }
@@ -38,4 +23,4 @@ const buildGlobalModel = (config)=>{
38
23
  return null;
39
24
  };
40
25
 
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbHMvYnVpbGRHbG9iYWxNb2RlbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbmZpZyB9IGZyb20gJ3BheWxvYWQvY29uZmlnJ1xuXG5pbXBvcnQgbW9uZ29vc2UgZnJvbSAnbW9uZ29vc2UnXG5cbmltcG9ydCB0eXBlIHsgR2xvYmFsTW9kZWwgfSBmcm9tICcuLi90eXBlcydcblxuaW1wb3J0IGdldEJ1aWxkUXVlcnlQbHVnaW4gZnJvbSAnLi4vcXVlcmllcy9idWlsZFF1ZXJ5J1xuaW1wb3J0IGJ1aWxkU2NoZW1hIGZyb20gJy4vYnVpbGRTY2hlbWEnXG5cbmV4cG9ydCBjb25zdCBidWlsZEdsb2JhbE1vZGVsID0gKGNvbmZpZzogU2FuaXRpemVkQ29uZmlnKTogR2xvYmFsTW9kZWwgfCBudWxsID0+IHtcbiAgaWYgKGNvbmZpZy5nbG9iYWxzICYmIGNvbmZpZy5nbG9iYWxzLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCBnbG9iYWxzU2NoZW1hID0gbmV3IG1vbmdvb3NlLlNjaGVtYShcbiAgICAgIHt9LFxuICAgICAgeyBkaXNjcmltaW5hdG9yS2V5OiAnZ2xvYmFsVHlwZScsIG1pbmltaXplOiBmYWxzZSwgdGltZXN0YW1wczogdHJ1ZSB9LFxuICAgIClcblxuICAgIGdsb2JhbHNTY2hlbWEucGx1Z2luKGdldEJ1aWxkUXVlcnlQbHVnaW4oKSlcblxuICAgIGNvbnN0IEdsb2JhbHMgPSBtb25nb29zZS5tb2RlbCgnZ2xvYmFscycsIGdsb2JhbHNTY2hlbWEsICdnbG9iYWxzJykgYXMgdW5rbm93biBhcyBHbG9iYWxNb2RlbFxuXG4gICAgT2JqZWN0LnZhbHVlcyhjb25maWcuZ2xvYmFscykuZm9yRWFjaCgoZ2xvYmFsQ29uZmlnKSA9PiB7XG4gICAgICBjb25zdCBnbG9iYWxTY2hlbWEgPSBidWlsZFNjaGVtYShjb25maWcsIGdsb2JhbENvbmZpZy5maWVsZHMsIHtcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIG1pbmltaXplOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgICBHbG9iYWxzLmRpc2NyaW1pbmF0b3IoZ2xvYmFsQ29uZmlnLnNsdWcsIGdsb2JhbFNjaGVtYSlcbiAgICB9KVxuXG4gICAgcmV0dXJuIEdsb2JhbHNcbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG4iXSwibmFtZXMiOlsiYnVpbGRHbG9iYWxNb2RlbCIsImNvbmZpZyIsImdsb2JhbHMiLCJsZW5ndGgiLCJnbG9iYWxzU2NoZW1hIiwibW9uZ29vc2UiLCJTY2hlbWEiLCJkaXNjcmltaW5hdG9yS2V5IiwibWluaW1pemUiLCJ0aW1lc3RhbXBzIiwicGx1Z2luIiwiZ2V0QnVpbGRRdWVyeVBsdWdpbiIsIkdsb2JhbHMiLCJtb2RlbCIsIk9iamVjdCIsInZhbHVlcyIsImZvckVhY2giLCJnbG9iYWxDb25maWciLCJnbG9iYWxTY2hlbWEiLCJidWlsZFNjaGVtYSIsImZpZWxkcyIsIm9wdGlvbnMiLCJkaXNjcmltaW5hdG9yIiwic2x1ZyJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFTYUE7OztlQUFBQTs7O2lFQVBRO21FQUlXO29FQUNSOzs7Ozs7QUFFakIsTUFBTUEsbUJBQW1CLENBQUNDO0lBQy9CLElBQUlBLE9BQU9DLE9BQU8sSUFBSUQsT0FBT0MsT0FBTyxDQUFDQyxNQUFNLEdBQUcsR0FBRztRQUMvQyxNQUFNQyxnQkFBZ0IsSUFBSUMsaUJBQVEsQ0FBQ0MsTUFBTSxDQUN2QyxDQUFDLEdBQ0Q7WUFBRUMsa0JBQWtCO1lBQWNDLFVBQVU7WUFBT0MsWUFBWTtRQUFLO1FBR3RFTCxjQUFjTSxNQUFNLENBQUNDLElBQUFBLG1CQUFtQjtRQUV4QyxNQUFNQyxVQUFVUCxpQkFBUSxDQUFDUSxLQUFLLENBQUMsV0FBV1QsZUFBZTtRQUV6RFUsT0FBT0MsTUFBTSxDQUFDZCxPQUFPQyxPQUFPLEVBQUVjLE9BQU8sQ0FBQyxDQUFDQztZQUNyQyxNQUFNQyxlQUFlQyxJQUFBQSxvQkFBVyxFQUFDbEIsUUFBUWdCLGFBQWFHLE1BQU0sRUFBRTtnQkFDNURDLFNBQVM7b0JBQ1BiLFVBQVU7Z0JBQ1o7WUFDRjtZQUNBSSxRQUFRVSxhQUFhLENBQUNMLGFBQWFNLElBQUksRUFBRUw7UUFDM0M7UUFFQSxPQUFPTjtJQUNUO0lBRUEsT0FBTztBQUNUIn0=
26
+ //# sourceMappingURL=buildGlobalModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/models/buildGlobalModel.ts"],"sourcesContent":["import type { SanitizedConfig } from 'payload/config'\n\nimport mongoose from 'mongoose'\n\nimport type { GlobalModel } from '../types.js'\n\nimport getBuildQueryPlugin from '../queries/buildQuery.js'\nimport buildSchema from './buildSchema.js'\n\nexport const buildGlobalModel = (config: SanitizedConfig): GlobalModel | null => {\n if (config.globals && config.globals.length > 0) {\n const globalsSchema = new mongoose.Schema(\n {},\n { discriminatorKey: 'globalType', minimize: false, timestamps: true },\n )\n\n globalsSchema.plugin(getBuildQueryPlugin())\n\n const Globals = mongoose.model('globals', globalsSchema, 'globals') as unknown as GlobalModel\n\n Object.values(config.globals).forEach((globalConfig) => {\n const globalSchema = buildSchema(config, globalConfig.fields, {\n options: {\n minimize: false,\n },\n })\n Globals.discriminator(globalConfig.slug, globalSchema)\n })\n\n return Globals\n }\n\n return null\n}\n"],"names":["mongoose","getBuildQueryPlugin","buildSchema","buildGlobalModel","config","globals","length","globalsSchema","Schema","discriminatorKey","minimize","timestamps","plugin","Globals","model","Object","values","forEach","globalConfig","globalSchema","fields","options","discriminator","slug"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,OAAOA,cAAc,WAAU;AAI/B,OAAOC,yBAAyB,2BAA0B;AAC1D,OAAOC,iBAAiB,mBAAkB;AAE1C,OAAO,MAAMC,mBAAmB,CAACC;IAC/B,IAAIA,OAAOC,OAAO,IAAID,OAAOC,OAAO,CAACC,MAAM,GAAG,GAAG;QAC/C,MAAMC,gBAAgB,IAAIP,SAASQ,MAAM,CACvC,CAAC,GACD;YAAEC,kBAAkB;YAAcC,UAAU;YAAOC,YAAY;QAAK;QAGtEJ,cAAcK,MAAM,CAACX;QAErB,MAAMY,UAAUb,SAASc,KAAK,CAAC,WAAWP,eAAe;QAEzDQ,OAAOC,MAAM,CAACZ,OAAOC,OAAO,EAAEY,OAAO,CAAC,CAACC;YACrC,MAAMC,eAAejB,YAAYE,QAAQc,aAAaE,MAAM,EAAE;gBAC5DC,SAAS;oBACPX,UAAU;gBACZ;YACF;YACAG,QAAQS,aAAa,CAACJ,aAAaK,IAAI,EAAEJ;QAC3C;QAEA,OAAON;IACT;IAEA,OAAO;AACT,EAAC"}
@@ -1,7 +1,31 @@
1
- import type { SchemaOptions } from 'mongoose';
1
+ /// <reference types="mongoose/types/aggregate.js" />
2
+ /// <reference types="mongoose/types/callback.js" />
3
+ /// <reference types="mongoose/types/collection.js" />
4
+ /// <reference types="mongoose/types/connection.js" />
5
+ /// <reference types="mongoose/types/cursor.js" />
6
+ /// <reference types="mongoose/types/document.js" />
7
+ /// <reference types="mongoose/types/error.js" />
8
+ /// <reference types="mongoose/types/expressions.js" />
9
+ /// <reference types="mongoose/types/helpers.js" />
10
+ /// <reference types="mongoose/types/middlewares.js" />
11
+ /// <reference types="mongoose/types/indexes.js" />
12
+ /// <reference types="mongoose/types/models.js" />
13
+ /// <reference types="mongoose/types/mongooseoptions.js" />
14
+ /// <reference types="mongoose/types/pipelinestage.js" />
15
+ /// <reference types="mongoose/types/populate.js" />
16
+ /// <reference types="mongoose/types/query.js" />
17
+ /// <reference types="mongoose/types/schemaoptions.js" />
18
+ /// <reference types="mongoose/types/schematypes.js" />
19
+ /// <reference types="mongoose/types/session.js" />
20
+ /// <reference types="mongoose/types/types.js" />
21
+ /// <reference types="mongoose/types/utility.js" />
22
+ /// <reference types="mongoose/types/validation.js" />
23
+ /// <reference types="mongoose/types/virtuals.js" />
24
+ /// <reference types="mongoose/types/inferschematype.js" />
25
+ /// <reference types="mongoose-paginate-v2" />
26
+ import type { Schema, SchemaOptions } from 'mongoose';
2
27
  import type { SanitizedConfig } from 'payload/config';
3
28
  import type { Field } from 'payload/types';
4
- import { Schema } from 'mongoose';
5
29
  export type BuildSchemaOptions = {
6
30
  allowIDField?: boolean;
7
31
  disableUnique?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"buildSchema.d.ts","sourceRoot":"","sources":["../../src/models/buildSchema.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAgB,aAAa,EAAqB,MAAM,UAAU,CAAA;AAC9E,OAAO,KAAK,EAAE,eAAe,EAA+B,MAAM,gBAAgB,CAAA;AAClF,OAAO,KAAK,EASV,KAAK,EAiBN,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAQjC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,OAAO,CAAC,EAAE,aAAa,CAAA;CACxB,CAAA;AA0DD,QAAA,MAAM,WAAW,WACP,eAAe,gBACT,KAAK,EAAE,uBACD,kBAAkB,KACrC,MA+BF,CAAA;AAycD,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"buildSchema.d.ts","sourceRoot":"","sources":["../../src/models/buildSchema.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAGA,OAAO,KAAK,EAAgB,MAAM,EAAE,aAAa,EAAqB,MAAM,UAAU,CAAA;AACtF,OAAO,KAAK,EAAE,eAAe,EAA+B,MAAM,gBAAgB,CAAA;AAClF,OAAO,KAAK,EASV,KAAK,EAiBN,MAAM,eAAe,CAAA;AAUtB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,OAAO,CAAC,EAAE,aAAa,CAAA;CACxB,CAAA;AA0DD,QAAA,MAAM,WAAW,WACP,eAAe,gBACT,KAAK,EAAE,uBACD,kBAAkB,KACrC,MA+BF,CAAA;AA+cD,eAAe,WAAW,CAAA"}
@@ -1,15 +1,5 @@
1
- /* eslint-disable @typescript-eslint/ban-ts-comment */ /* eslint-disable class-methods-use-this */ /* eslint-disable @typescript-eslint/no-use-before-define */ /* eslint-disable no-use-before-define */ "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return _default;
9
- }
10
- });
11
- const _mongoose = require("mongoose");
12
- const _types = require("payload/types");
1
+ /* eslint-disable @typescript-eslint/ban-ts-comment */ /* eslint-disable class-methods-use-this */ /* eslint-disable @typescript-eslint/no-use-before-define */ import mongoose from 'mongoose';
2
+ import { fieldAffectsData, fieldIsLocalized, fieldIsPresentationalOnly, tabHasName } from 'payload/types';
13
3
  const formatBaseSchema = (field, buildSchemaOptions)=>{
14
4
  const { disableUnique, draftsEnabled, indexSortableFields } = buildSchemaOptions;
15
5
  const schema = {
@@ -17,7 +7,7 @@ const formatBaseSchema = (field, buildSchemaOptions)=>{
17
7
  required: false,
18
8
  unique: !disableUnique && field.unique || false
19
9
  };
20
- if (schema.unique && (field.localized || draftsEnabled || (0, _types.fieldAffectsData)(field) && field.type !== 'group' && field.type !== 'tab' && field.required !== true)) {
10
+ if (schema.unique && (field.localized || draftsEnabled || fieldAffectsData(field) && field.type !== 'group' && field.type !== 'tab' && field.required !== true)) {
21
11
  schema.sparse = true;
22
12
  }
23
13
  if (field.hidden) {
@@ -26,7 +16,7 @@ const formatBaseSchema = (field, buildSchemaOptions)=>{
26
16
  return schema;
27
17
  };
28
18
  const localizeSchema = (entity, schema, localization)=>{
29
- if ((0, _types.fieldIsLocalized)(entity) && localization && Array.isArray(localization.locales)) {
19
+ if (fieldIsLocalized(entity) && localization && Array.isArray(localization.locales)) {
30
20
  return {
31
21
  type: localization.localeCodes.reduce((localeSchema, locale)=>({
32
22
  ...localeSchema,
@@ -44,17 +34,17 @@ const buildSchema = (config, configFields, buildSchemaOptions = {})=>{
44
34
  let fields = {};
45
35
  let schemaFields = configFields;
46
36
  if (!allowIDField) {
47
- const idField = schemaFields.find((field)=>(0, _types.fieldAffectsData)(field) && field.name === 'id');
37
+ const idField = schemaFields.find((field)=>fieldAffectsData(field) && field.name === 'id');
48
38
  if (idField) {
49
39
  fields = {
50
40
  _id: idField.type === 'number' ? Number : String
51
41
  };
52
- schemaFields = schemaFields.filter((field)=>!((0, _types.fieldAffectsData)(field) && field.name === 'id'));
42
+ schemaFields = schemaFields.filter((field)=>!(fieldAffectsData(field) && field.name === 'id'));
53
43
  }
54
44
  }
55
- const schema = new _mongoose.Schema(fields, options);
45
+ const schema = new mongoose.Schema(fields, options);
56
46
  schemaFields.forEach((field)=>{
57
- if (!(0, _types.fieldIsPresentationalOnly)(field)) {
47
+ if (!fieldIsPresentationalOnly(field)) {
58
48
  const addFieldSchema = fieldToSchemaMap[field.type];
59
49
  if (addFieldSchema) {
60
50
  addFieldSchema(field, schema, config, buildSchemaOptions);
@@ -88,7 +78,7 @@ const fieldToSchemaMap = {
88
78
  blocks: (field, schema, config, buildSchemaOptions)=>{
89
79
  const fieldSchema = {
90
80
  type: [
91
- new _mongoose.Schema({}, {
81
+ new mongoose.Schema({}, {
92
82
  _id: false,
93
83
  discriminatorKey: 'blockType'
94
84
  })
@@ -99,7 +89,7 @@ const fieldToSchemaMap = {
99
89
  [field.name]: localizeSchema(field, fieldSchema, config.localization)
100
90
  });
101
91
  field.blocks.forEach((blockItem)=>{
102
- const blockSchema = new _mongoose.Schema({}, {
92
+ const blockSchema = new mongoose.Schema({}, {
103
93
  _id: false,
104
94
  id: false
105
95
  });
@@ -190,7 +180,7 @@ const fieldToSchemaMap = {
190
180
  json: (field, schema, config, buildSchemaOptions)=>{
191
181
  const baseSchema = {
192
182
  ...formatBaseSchema(field, buildSchemaOptions),
193
- type: _mongoose.Schema.Types.Mixed
183
+ type: mongoose.Schema.Types.Mixed
194
184
  };
195
185
  schema.add({
196
186
  [field.name]: localizeSchema(field, baseSchema, config.localization)
@@ -238,7 +228,7 @@ const fieldToSchemaMap = {
238
228
  if (field.localized && config.localization) {
239
229
  config.localization.locales.forEach((locale)=>{
240
230
  schema.index({
241
- [`${field.name}.${locale}`]: '2dsphere'
231
+ [`${field.name}.${locale.code}`]: '2dsphere'
242
232
  }, indexOptions);
243
233
  });
244
234
  } else {
@@ -272,20 +262,20 @@ const fieldToSchemaMap = {
272
262
  localeSchema = {
273
263
  ...formatBaseSchema(field, buildSchemaOptions),
274
264
  _id: false,
275
- type: _mongoose.Schema.Types.Mixed,
265
+ type: mongoose.Schema.Types.Mixed,
276
266
  relationTo: {
277
267
  type: String,
278
268
  enum: field.relationTo
279
269
  },
280
270
  value: {
281
- type: _mongoose.Schema.Types.Mixed,
271
+ type: mongoose.Schema.Types.Mixed,
282
272
  refPath: `${field.name}.${locale}.relationTo`
283
273
  }
284
274
  };
285
275
  } else {
286
276
  localeSchema = {
287
277
  ...formatBaseSchema(field, buildSchemaOptions),
288
- type: _mongoose.Schema.Types.Mixed,
278
+ type: mongoose.Schema.Types.Mixed,
289
279
  ref: field.relationTo
290
280
  };
291
281
  }
@@ -305,13 +295,13 @@ const fieldToSchemaMap = {
305
295
  schemaToReturn = {
306
296
  ...formatBaseSchema(field, buildSchemaOptions),
307
297
  _id: false,
308
- type: _mongoose.Schema.Types.Mixed,
298
+ type: mongoose.Schema.Types.Mixed,
309
299
  relationTo: {
310
300
  type: String,
311
301
  enum: field.relationTo
312
302
  },
313
303
  value: {
314
- type: _mongoose.Schema.Types.Mixed,
304
+ type: mongoose.Schema.Types.Mixed,
315
305
  refPath: `${field.name}.relationTo`
316
306
  }
317
307
  };
@@ -326,7 +316,7 @@ const fieldToSchemaMap = {
326
316
  } else {
327
317
  schemaToReturn = {
328
318
  ...formatBaseSchema(field, buildSchemaOptions),
329
- type: _mongoose.Schema.Types.Mixed,
319
+ type: mongoose.Schema.Types.Mixed,
330
320
  ref: field.relationTo
331
321
  };
332
322
  if (field.hasMany) {
@@ -345,7 +335,7 @@ const fieldToSchemaMap = {
345
335
  richText: (field, schema, config, buildSchemaOptions)=>{
346
336
  const baseSchema = {
347
337
  ...formatBaseSchema(field, buildSchemaOptions),
348
- type: _mongoose.Schema.Types.Mixed
338
+ type: mongoose.Schema.Types.Mixed
349
339
  };
350
340
  schema.add({
351
341
  [field.name]: localizeSchema(field, baseSchema, config.localization)
@@ -379,7 +369,7 @@ const fieldToSchemaMap = {
379
369
  },
380
370
  tabs: (field, schema, config, buildSchemaOptions)=>{
381
371
  field.tabs.forEach((tab)=>{
382
- if ((0, _types.tabHasName)(tab)) {
372
+ if (tabHasName(tab)) {
383
373
  const baseSchema = {
384
374
  type: buildSchema(config, tab.fields, {
385
375
  disableUnique: buildSchemaOptions.disableUnique,
@@ -427,7 +417,7 @@ const fieldToSchemaMap = {
427
417
  upload: (field, schema, config, buildSchemaOptions)=>{
428
418
  const baseSchema = {
429
419
  ...formatBaseSchema(field, buildSchemaOptions),
430
- type: _mongoose.Schema.Types.Mixed,
420
+ type: mongoose.Schema.Types.Mixed,
431
421
  ref: field.relationTo
432
422
  };
433
423
  schema.add({
@@ -435,6 +425,6 @@ const fieldToSchemaMap = {
435
425
  });
436
426
  }
437
427
  };
438
- const _default = buildSchema;
428
+ export default buildSchema;
439
429
 
440
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbHMvYnVpbGRTY2hlbWEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlLWJlZm9yZS1kZWZpbmUgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVzZS1iZWZvcmUtZGVmaW5lICovXG5pbXBvcnQgdHlwZSB7IEluZGV4T3B0aW9ucywgU2NoZW1hT3B0aW9ucywgU2NoZW1hVHlwZU9wdGlvbnMgfSBmcm9tICdtb25nb29zZSdcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29uZmlnLCBTYW5pdGl6ZWRMb2NhbGl6YXRpb25Db25maWcgfSBmcm9tICdwYXlsb2FkL2NvbmZpZydcbmltcG9ydCB0eXBlIHtcbiAgQXJyYXlGaWVsZCxcbiAgQmxvY2ssXG4gIEJsb2NrRmllbGQsXG4gIENoZWNrYm94RmllbGQsXG4gIENvZGVGaWVsZCxcbiAgQ29sbGFwc2libGVGaWVsZCxcbiAgRGF0ZUZpZWxkLFxuICBFbWFpbEZpZWxkLFxuICBGaWVsZCxcbiAgRmllbGRBZmZlY3RpbmdEYXRhLFxuICBHcm91cEZpZWxkLFxuICBKU09ORmllbGQsXG4gIE5vblByZXNlbnRhdGlvbmFsRmllbGQsXG4gIE51bWJlckZpZWxkLFxuICBQb2ludEZpZWxkLFxuICBSYWRpb0ZpZWxkLFxuICBSZWxhdGlvbnNoaXBGaWVsZCxcbiAgUmljaFRleHRGaWVsZCxcbiAgUm93RmllbGQsXG4gIFNlbGVjdEZpZWxkLFxuICBUYWIsXG4gIFRhYnNGaWVsZCxcbiAgVGV4dEZpZWxkLFxuICBUZXh0YXJlYUZpZWxkLFxuICBVcGxvYWRGaWVsZCxcbn0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHsgU2NoZW1hIH0gZnJvbSAnbW9uZ29vc2UnXG5pbXBvcnQge1xuICBmaWVsZEFmZmVjdHNEYXRhLFxuICBmaWVsZElzTG9jYWxpemVkLFxuICBmaWVsZElzUHJlc2VudGF0aW9uYWxPbmx5LFxuICB0YWJIYXNOYW1lLFxufSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5leHBvcnQgdHlwZSBCdWlsZFNjaGVtYU9wdGlvbnMgPSB7XG4gIGFsbG93SURGaWVsZD86IGJvb2xlYW5cbiAgZGlzYWJsZVVuaXF1ZT86IGJvb2xlYW5cbiAgZHJhZnRzRW5hYmxlZD86IGJvb2xlYW5cbiAgaW5kZXhTb3J0YWJsZUZpZWxkcz86IGJvb2xlYW5cbiAgb3B0aW9ucz86IFNjaGVtYU9wdGlvbnNcbn1cblxudHlwZSBGaWVsZFNjaGVtYUdlbmVyYXRvciA9IChcbiAgZmllbGQ6IEZpZWxkLFxuICBzY2hlbWE6IFNjaGVtYSxcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuKSA9PiB2b2lkXG5cbmNvbnN0IGZvcm1hdEJhc2VTY2hlbWEgPSAoZmllbGQ6IEZpZWxkQWZmZWN0aW5nRGF0YSwgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMpID0+IHtcbiAgY29uc3QgeyBkaXNhYmxlVW5pcXVlLCBkcmFmdHNFbmFibGVkLCBpbmRleFNvcnRhYmxlRmllbGRzIH0gPSBidWlsZFNjaGVtYU9wdGlvbnNcbiAgY29uc3Qgc2NoZW1hOiBTY2hlbWFUeXBlT3B0aW9uczx1bmtub3duPiA9IHtcbiAgICBpbmRleDogZmllbGQuaW5kZXggfHwgKCFkaXNhYmxlVW5pcXVlICYmIGZpZWxkLnVuaXF1ZSkgfHwgaW5kZXhTb3J0YWJsZUZpZWxkcyB8fCBmYWxzZSxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgdW5pcXVlOiAoIWRpc2FibGVVbmlxdWUgJiYgZmllbGQudW5pcXVlKSB8fCBmYWxzZSxcbiAgfVxuXG4gIGlmIChcbiAgICBzY2hlbWEudW5pcXVlICYmXG4gICAgKGZpZWxkLmxvY2FsaXplZCB8fFxuICAgICAgZHJhZnRzRW5hYmxlZCB8fFxuICAgICAgKGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmXG4gICAgICAgIGZpZWxkLnR5cGUgIT09ICdncm91cCcgJiZcbiAgICAgICAgZmllbGQudHlwZSAhPT0gJ3RhYicgJiZcbiAgICAgICAgZmllbGQucmVxdWlyZWQgIT09IHRydWUpKVxuICApIHtcbiAgICBzY2hlbWEuc3BhcnNlID0gdHJ1ZVxuICB9XG5cbiAgaWYgKGZpZWxkLmhpZGRlbikge1xuICAgIHNjaGVtYS5oaWRkZW4gPSB0cnVlXG4gIH1cblxuICByZXR1cm4gc2NoZW1hXG59XG5cbmNvbnN0IGxvY2FsaXplU2NoZW1hID0gKFxuICBlbnRpdHk6IE5vblByZXNlbnRhdGlvbmFsRmllbGQgfCBUYWIsXG4gIHNjaGVtYSxcbiAgbG9jYWxpemF0aW9uOiBTYW5pdGl6ZWRMb2NhbGl6YXRpb25Db25maWcgfCBmYWxzZSxcbikgPT4ge1xuICBpZiAoZmllbGRJc0xvY2FsaXplZChlbnRpdHkpICYmIGxvY2FsaXphdGlvbiAmJiBBcnJheS5pc0FycmF5KGxvY2FsaXphdGlvbi5sb2NhbGVzKSkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBsb2NhbGl6YXRpb24ubG9jYWxlQ29kZXMucmVkdWNlKFxuICAgICAgICAobG9jYWxlU2NoZW1hLCBsb2NhbGUpID0+ICh7XG4gICAgICAgICAgLi4ubG9jYWxlU2NoZW1hLFxuICAgICAgICAgIFtsb2NhbGVdOiBzY2hlbWEsXG4gICAgICAgIH0pLFxuICAgICAgICB7XG4gICAgICAgICAgX2lkOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICksXG4gICAgICBsb2NhbGl6ZWQ6IHRydWUsXG4gICAgfVxuICB9XG4gIHJldHVybiBzY2hlbWFcbn1cblxuY29uc3QgYnVpbGRTY2hlbWEgPSAoXG4gIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICBjb25maWdGaWVsZHM6IEZpZWxkW10sXG4gIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zID0ge30sXG4pOiBTY2hlbWEgPT4ge1xuICBjb25zdCB7IGFsbG93SURGaWVsZCwgb3B0aW9ucyB9ID0gYnVpbGRTY2hlbWFPcHRpb25zXG4gIGxldCBmaWVsZHMgPSB7fVxuXG4gIGxldCBzY2hlbWFGaWVsZHMgPSBjb25maWdGaWVsZHNcblxuICBpZiAoIWFsbG93SURGaWVsZCkge1xuICAgIGNvbnN0IGlkRmllbGQgPSBzY2hlbWFGaWVsZHMuZmluZCgoZmllbGQpID0+IGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcpXG4gICAgaWYgKGlkRmllbGQpIHtcbiAgICAgIGZpZWxkcyA9IHtcbiAgICAgICAgX2lkOiBpZEZpZWxkLnR5cGUgPT09ICdudW1iZXInID8gTnVtYmVyIDogU3RyaW5nLFxuICAgICAgfVxuICAgICAgc2NoZW1hRmllbGRzID0gc2NoZW1hRmllbGRzLmZpbHRlcihcbiAgICAgICAgKGZpZWxkKSA9PiAhKGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcpLFxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHNjaGVtYSA9IG5ldyBTY2hlbWEoZmllbGRzLCBvcHRpb25zKVxuXG4gIHNjaGVtYUZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgIGlmICghZmllbGRJc1ByZXNlbnRhdGlvbmFsT25seShmaWVsZCkpIHtcbiAgICAgIGNvbnN0IGFkZEZpZWxkU2NoZW1hOiBGaWVsZFNjaGVtYUdlbmVyYXRvciA9IGZpZWxkVG9TY2hlbWFNYXBbZmllbGQudHlwZV1cblxuICAgICAgaWYgKGFkZEZpZWxkU2NoZW1hKSB7XG4gICAgICAgIGFkZEZpZWxkU2NoZW1hKGZpZWxkLCBzY2hlbWEsIGNvbmZpZywgYnVpbGRTY2hlbWFPcHRpb25zKVxuICAgICAgfVxuICAgIH1cbiAgfSlcblxuICByZXR1cm4gc2NoZW1hXG59XG5cbmNvbnN0IGZpZWxkVG9TY2hlbWFNYXA6IFJlY29yZDxzdHJpbmcsIEZpZWxkU2NoZW1hR2VuZXJhdG9yPiA9IHtcbiAgYXJyYXk6IChcbiAgICBmaWVsZDogQXJyYXlGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKSA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICB0eXBlOiBbXG4gICAgICAgIGJ1aWxkU2NoZW1hKGNvbmZpZywgZmllbGQuZmllbGRzLCB7XG4gICAgICAgICAgYWxsb3dJREZpZWxkOiB0cnVlLFxuICAgICAgICAgIGRpc2FibGVVbmlxdWU6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kaXNhYmxlVW5pcXVlLFxuICAgICAgICAgIGRyYWZ0c0VuYWJsZWQ6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIF9pZDogZmFsc2UsXG4gICAgICAgICAgICBpZDogZmFsc2UsXG4gICAgICAgICAgICBtaW5pbWl6ZTogZmFsc2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgICAgZGVmYXVsdDogdW5kZWZpbmVkLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgYmxvY2tzOiAoXG4gICAgZmllbGQ6IEJsb2NrRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGZpZWxkU2NoZW1hID0ge1xuICAgICAgdHlwZTogW25ldyBTY2hlbWEoe30sIHsgX2lkOiBmYWxzZSwgZGlzY3JpbWluYXRvcktleTogJ2Jsb2NrVHlwZScgfSldLFxuICAgICAgZGVmYXVsdDogdW5kZWZpbmVkLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgZmllbGRTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG5cbiAgICBmaWVsZC5ibG9ja3MuZm9yRWFjaCgoYmxvY2tJdGVtOiBCbG9jaykgPT4ge1xuICAgICAgY29uc3QgYmxvY2tTY2hlbWEgPSBuZXcgU2NoZW1hKHt9LCB7IF9pZDogZmFsc2UsIGlkOiBmYWxzZSB9KVxuXG4gICAgICBibG9ja0l0ZW0uZmllbGRzLmZvckVhY2goKGJsb2NrRmllbGQpID0+IHtcbiAgICAgICAgY29uc3QgYWRkRmllbGRTY2hlbWE6IEZpZWxkU2NoZW1hR2VuZXJhdG9yID0gZmllbGRUb1NjaGVtYU1hcFtibG9ja0ZpZWxkLnR5cGVdXG4gICAgICAgIGlmIChhZGRGaWVsZFNjaGVtYSkge1xuICAgICAgICAgIGFkZEZpZWxkU2NoZW1hKGJsb2NrRmllbGQsIGJsb2NrU2NoZW1hLCBjb25maWcsIGJ1aWxkU2NoZW1hT3B0aW9ucylcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCAmJiBjb25maWcubG9jYWxpemF0aW9uKSB7XG4gICAgICAgIGNvbmZpZy5sb2NhbGl6YXRpb24ubG9jYWxlQ29kZXMuZm9yRWFjaCgobG9jYWxlQ29kZSkgPT4ge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIFBvc3NpYmxlIGluY29ycmVjdCB0eXBpbmcgaW4gbW9uZ29vc2UgdHlwZXMsIHRoaXMgd29ya3NcbiAgICAgICAgICBzY2hlbWEucGF0aChgJHtmaWVsZC5uYW1lfS4ke2xvY2FsZUNvZGV9YCkuZGlzY3JpbWluYXRvcihibG9ja0l0ZW0uc2x1ZywgYmxvY2tTY2hlbWEpXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgUG9zc2libGUgaW5jb3JyZWN0IHR5cGluZyBpbiBtb25nb29zZSB0eXBlcywgdGhpcyB3b3Jrc1xuICAgICAgICBzY2hlbWEucGF0aChmaWVsZC5uYW1lKS5kaXNjcmltaW5hdG9yKGJsb2NrSXRlbS5zbHVnLCBibG9ja1NjaGVtYSlcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuICBjaGVja2JveDogKFxuICAgIGZpZWxkOiBDaGVja2JveEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0geyAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLCB0eXBlOiBCb29sZWFuIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgY29kZTogKFxuICAgIGZpZWxkOiBDb2RlRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7IC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksIHR5cGU6IFN0cmluZyB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIGNvbGxhcHNpYmxlOiAoXG4gICAgZmllbGQ6IENvbGxhcHNpYmxlRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGZpZWxkLmZpZWxkcy5mb3JFYWNoKChzdWJGaWVsZDogRmllbGQpID0+IHtcbiAgICAgIGNvbnN0IGFkZEZpZWxkU2NoZW1hOiBGaWVsZFNjaGVtYUdlbmVyYXRvciA9IGZpZWxkVG9TY2hlbWFNYXBbc3ViRmllbGQudHlwZV1cblxuICAgICAgaWYgKGFkZEZpZWxkU2NoZW1hKSB7XG4gICAgICAgIGFkZEZpZWxkU2NoZW1hKHN1YkZpZWxkLCBzY2hlbWEsIGNvbmZpZywgYnVpbGRTY2hlbWFPcHRpb25zKVxuICAgICAgfVxuICAgIH0pXG4gIH0sXG4gIGRhdGU6IChcbiAgICBmaWVsZDogRGF0ZUZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0geyAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLCB0eXBlOiBEYXRlIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgZW1haWw6IChcbiAgICBmaWVsZDogRW1haWxGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHsgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSwgdHlwZTogU3RyaW5nIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgZ3JvdXA6IChcbiAgICBmaWVsZDogR3JvdXBGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgZm9ybWF0dGVkQmFzZVNjaGVtYSA9IGZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucylcblxuICAgIC8vIGNhcnJ5IGluZGV4U29ydGFibGVGaWVsZHMgdGhyb3VnaCB0byB2ZXJzaW9ucyBpZiBkcmFmdHMgZW5hYmxlZFxuICAgIGNvbnN0IGluZGV4U29ydGFibGVGaWVsZHMgPVxuICAgICAgYnVpbGRTY2hlbWFPcHRpb25zLmluZGV4U29ydGFibGVGaWVsZHMgJiZcbiAgICAgIGZpZWxkLm5hbWUgPT09ICd2ZXJzaW9uJyAmJlxuICAgICAgYnVpbGRTY2hlbWFPcHRpb25zLmRyYWZ0c0VuYWJsZWRcblxuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXR0ZWRCYXNlU2NoZW1hLFxuICAgICAgdHlwZTogYnVpbGRTY2hlbWEoY29uZmlnLCBmaWVsZC5maWVsZHMsIHtcbiAgICAgICAgZGlzYWJsZVVuaXF1ZTogYnVpbGRTY2hlbWFPcHRpb25zLmRpc2FibGVVbmlxdWUsXG4gICAgICAgIGRyYWZ0c0VuYWJsZWQ6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkLFxuICAgICAgICBpbmRleFNvcnRhYmxlRmllbGRzLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgX2lkOiBmYWxzZSxcbiAgICAgICAgICBpZDogZmFsc2UsXG4gICAgICAgICAgbWluaW1pemU6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBqc29uOiAoXG4gICAgZmllbGQ6IEpTT05GaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHsgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSwgdHlwZTogU2NoZW1hLlR5cGVzLk1peGVkIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgbnVtYmVyOiAoXG4gICAgZmllbGQ6IE51bWJlckZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIHR5cGU6IGZpZWxkLmhhc01hbnkgPyBbTnVtYmVyXSA6IE51bWJlcixcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIHBvaW50OiAoXG4gICAgZmllbGQ6IFBvaW50RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWE6IFNjaGVtYVR5cGVPcHRpb25zPHVua25vd24+ID0ge1xuICAgICAgdHlwZToge1xuICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgIGVudW06IFsnUG9pbnQnXSxcbiAgICAgIH0sXG4gICAgICBjb29yZGluYXRlczoge1xuICAgICAgICB0eXBlOiBbTnVtYmVyXSxcbiAgICAgICAgZGVmYXVsdDogZmllbGQuZGVmYXVsdFZhbHVlIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgfSxcbiAgICB9XG4gICAgaWYgKGJ1aWxkU2NoZW1hT3B0aW9ucy5kaXNhYmxlVW5pcXVlICYmIGZpZWxkLnVuaXF1ZSAmJiBmaWVsZC5sb2NhbGl6ZWQpIHtcbiAgICAgIGJhc2VTY2hlbWEuY29vcmRpbmF0ZXMuc3BhcnNlID0gdHJ1ZVxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcblxuICAgIGlmIChmaWVsZC5pbmRleCA9PT0gdHJ1ZSB8fCBmaWVsZC5pbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBpbmRleE9wdGlvbnM6IEluZGV4T3B0aW9ucyA9IHt9XG4gICAgICBpZiAoIWJ1aWxkU2NoZW1hT3B0aW9ucy5kaXNhYmxlVW5pcXVlICYmIGZpZWxkLnVuaXF1ZSkge1xuICAgICAgICBpbmRleE9wdGlvbnMuc3BhcnNlID0gdHJ1ZVxuICAgICAgICBpbmRleE9wdGlvbnMudW5pcXVlID0gdHJ1ZVxuICAgICAgfVxuICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCAmJiBjb25maWcubG9jYWxpemF0aW9uKSB7XG4gICAgICAgIGNvbmZpZy5sb2NhbGl6YXRpb24ubG9jYWxlcy5mb3JFYWNoKChsb2NhbGUpID0+IHtcbiAgICAgICAgICBzY2hlbWEuaW5kZXgoeyBbYCR7ZmllbGQubmFtZX0uJHtsb2NhbGV9YF06ICcyZHNwaGVyZScgfSwgaW5kZXhPcHRpb25zKVxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2NoZW1hLmluZGV4KHsgW2ZpZWxkLm5hbWVdOiAnMmRzcGhlcmUnIH0sIGluZGV4T3B0aW9ucylcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIHJhZGlvOiAoXG4gICAgZmllbGQ6IFJhZGlvRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgZW51bTogZmllbGQub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbiA9PT0gJ29iamVjdCcpIHJldHVybiBvcHRpb24udmFsdWVcbiAgICAgICAgcmV0dXJuIG9wdGlvblxuICAgICAgfSksXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICByZWxhdGlvbnNoaXA6IChcbiAgICBmaWVsZDogUmVsYXRpb25zaGlwRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICkgPT4ge1xuICAgIGNvbnN0IGhhc01hbnlSZWxhdGlvbnMgPSBBcnJheS5pc0FycmF5KGZpZWxkLnJlbGF0aW9uVG8pXG4gICAgbGV0IHNjaGVtYVRvUmV0dXJuOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge31cblxuICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQgJiYgY29uZmlnLmxvY2FsaXphdGlvbikge1xuICAgICAgc2NoZW1hVG9SZXR1cm4gPSB7XG4gICAgICAgIHR5cGU6IGNvbmZpZy5sb2NhbGl6YXRpb24ubG9jYWxlQ29kZXMucmVkdWNlKChsb2NhbGVzLCBsb2NhbGUpID0+IHtcbiAgICAgICAgICBsZXQgbG9jYWxlU2NoZW1hOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge31cblxuICAgICAgICAgIGlmIChoYXNNYW55UmVsYXRpb25zKSB7XG4gICAgICAgICAgICBsb2NhbGVTY2hlbWEgPSB7XG4gICAgICAgICAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICAgICAgICAgIF9pZDogZmFsc2UsXG4gICAgICAgICAgICAgIHR5cGU6IFNjaGVtYS5UeXBlcy5NaXhlZCxcbiAgICAgICAgICAgICAgcmVsYXRpb25UbzogeyB0eXBlOiBTdHJpbmcsIGVudW06IGZpZWxkLnJlbGF0aW9uVG8gfSxcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiBTY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgICAgICAgICAgcmVmUGF0aDogYCR7ZmllbGQubmFtZX0uJHtsb2NhbGV9LnJlbGF0aW9uVG9gLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsb2NhbGVTY2hlbWEgPSB7XG4gICAgICAgICAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICAgICAgICAgIHR5cGU6IFNjaGVtYS5UeXBlcy5NaXhlZCxcbiAgICAgICAgICAgICAgcmVmOiBmaWVsZC5yZWxhdGlvblRvLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5sb2NhbGVzLFxuICAgICAgICAgICAgW2xvY2FsZV06IGZpZWxkLmhhc01hbnkgPyB7IHR5cGU6IFtsb2NhbGVTY2hlbWFdLCBkZWZhdWx0OiB1bmRlZmluZWQgfSA6IGxvY2FsZVNjaGVtYSxcbiAgICAgICAgICB9XG4gICAgICAgIH0sIHt9KSxcbiAgICAgICAgbG9jYWxpemVkOiB0cnVlLFxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaGFzTWFueVJlbGF0aW9ucykge1xuICAgICAgc2NoZW1hVG9SZXR1cm4gPSB7XG4gICAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICAgIF9pZDogZmFsc2UsXG4gICAgICAgIHR5cGU6IFNjaGVtYS5UeXBlcy5NaXhlZCxcbiAgICAgICAgcmVsYXRpb25UbzogeyB0eXBlOiBTdHJpbmcsIGVudW06IGZpZWxkLnJlbGF0aW9uVG8gfSxcbiAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICB0eXBlOiBTY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgICAgcmVmUGF0aDogYCR7ZmllbGQubmFtZX0ucmVsYXRpb25Ub2AsXG4gICAgICAgIH0sXG4gICAgICB9XG5cbiAgICAgIGlmIChmaWVsZC5oYXNNYW55KSB7XG4gICAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICAgIHR5cGU6IFtzY2hlbWFUb1JldHVybl0sXG4gICAgICAgICAgZGVmYXVsdDogdW5kZWZpbmVkLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgICB0eXBlOiBTY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgIHJlZjogZmllbGQucmVsYXRpb25UbyxcbiAgICAgIH1cblxuICAgICAgaWYgKGZpZWxkLmhhc01hbnkpIHtcbiAgICAgICAgc2NoZW1hVG9SZXR1cm4gPSB7XG4gICAgICAgICAgdHlwZTogW3NjaGVtYVRvUmV0dXJuXSxcbiAgICAgICAgICBkZWZhdWx0OiB1bmRlZmluZWQsXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogc2NoZW1hVG9SZXR1cm4sXG4gICAgfSlcbiAgfSxcbiAgcmljaFRleHQ6IChcbiAgICBmaWVsZDogUmljaFRleHRGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHsgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSwgdHlwZTogU2NoZW1hLlR5cGVzLk1peGVkIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgcm93OiAoXG4gICAgZmllbGQ6IFJvd0ZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBmaWVsZC5maWVsZHMuZm9yRWFjaCgoc3ViRmllbGQ6IEZpZWxkKSA9PiB7XG4gICAgICBjb25zdCBhZGRGaWVsZFNjaGVtYTogRmllbGRTY2hlbWFHZW5lcmF0b3IgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG5cbiAgICAgIGlmIChhZGRGaWVsZFNjaGVtYSkge1xuICAgICAgICBhZGRGaWVsZFNjaGVtYShzdWJGaWVsZCwgc2NoZW1hLCBjb25maWcsIGJ1aWxkU2NoZW1hT3B0aW9ucylcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuICBzZWxlY3Q6IChcbiAgICBmaWVsZDogU2VsZWN0RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgZW51bTogZmllbGQub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbiA9PT0gJ29iamVjdCcpIHJldHVybiBvcHRpb24udmFsdWVcbiAgICAgICAgcmV0dXJuIG9wdGlvblxuICAgICAgfSksXG4gICAgfVxuXG4gICAgaWYgKGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkIHx8ICFmaWVsZC5yZXF1aXJlZCkge1xuICAgICAgYmFzZVNjaGVtYS5lbnVtLnB1c2gobnVsbClcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoXG4gICAgICAgIGZpZWxkLFxuICAgICAgICBmaWVsZC5oYXNNYW55ID8gW2Jhc2VTY2hlbWFdIDogYmFzZVNjaGVtYSxcbiAgICAgICAgY29uZmlnLmxvY2FsaXphdGlvbixcbiAgICAgICksXG4gICAgfSlcbiAgfSxcbiAgdGFiczogKFxuICAgIGZpZWxkOiBUYWJzRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGZpZWxkLnRhYnMuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICBpZiAodGFiSGFzTmFtZSh0YWIpKSB7XG4gICAgICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAgICAgdHlwZTogYnVpbGRTY2hlbWEoY29uZmlnLCB0YWIuZmllbGRzLCB7XG4gICAgICAgICAgICBkaXNhYmxlVW5pcXVlOiBidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgICAgIGRyYWZ0c0VuYWJsZWQ6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkLFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICBpZDogZmFsc2UsXG4gICAgICAgICAgICAgIG1pbmltaXplOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIH1cblxuICAgICAgICBzY2hlbWEuYWRkKHtcbiAgICAgICAgICBbdGFiLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYSh0YWIsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGFiLmZpZWxkcy5mb3JFYWNoKChzdWJGaWVsZDogRmllbGQpID0+IHtcbiAgICAgICAgICBjb25zdCBhZGRGaWVsZFNjaGVtYTogRmllbGRTY2hlbWFHZW5lcmF0b3IgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG5cbiAgICAgICAgICBpZiAoYWRkRmllbGRTY2hlbWEpIHtcbiAgICAgICAgICAgIGFkZEZpZWxkU2NoZW1hKHN1YkZpZWxkLCBzY2hlbWEsIGNvbmZpZywgYnVpbGRTY2hlbWFPcHRpb25zKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuICB0ZXh0OiAoXG4gICAgZmllbGQ6IFRleHRGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICB0eXBlOiBmaWVsZC5oYXNNYW55ID8gW1N0cmluZ10gOiBTdHJpbmcsXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICB0ZXh0YXJlYTogKFxuICAgIGZpZWxkOiBUZXh0YXJlYUZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0geyAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLCB0eXBlOiBTdHJpbmcgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICB1cGxvYWQ6IChcbiAgICBmaWVsZDogVXBsb2FkRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgcmVmOiBmaWVsZC5yZWxhdGlvblRvLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbn1cblxuZXhwb3J0IGRlZmF1bHQgYnVpbGRTY2hlbWFcbiJdLCJuYW1lcyI6WyJmb3JtYXRCYXNlU2NoZW1hIiwiZmllbGQiLCJidWlsZFNjaGVtYU9wdGlvbnMiLCJkaXNhYmxlVW5pcXVlIiwiZHJhZnRzRW5hYmxlZCIsImluZGV4U29ydGFibGVGaWVsZHMiLCJzY2hlbWEiLCJpbmRleCIsInVuaXF1ZSIsInJlcXVpcmVkIiwibG9jYWxpemVkIiwiZmllbGRBZmZlY3RzRGF0YSIsInR5cGUiLCJzcGFyc2UiLCJoaWRkZW4iLCJsb2NhbGl6ZVNjaGVtYSIsImVudGl0eSIsImxvY2FsaXphdGlvbiIsImZpZWxkSXNMb2NhbGl6ZWQiLCJBcnJheSIsImlzQXJyYXkiLCJsb2NhbGVzIiwibG9jYWxlQ29kZXMiLCJyZWR1Y2UiLCJsb2NhbGVTY2hlbWEiLCJsb2NhbGUiLCJfaWQiLCJidWlsZFNjaGVtYSIsImNvbmZpZyIsImNvbmZpZ0ZpZWxkcyIsImFsbG93SURGaWVsZCIsIm9wdGlvbnMiLCJmaWVsZHMiLCJzY2hlbWFGaWVsZHMiLCJpZEZpZWxkIiwiZmluZCIsIm5hbWUiLCJOdW1iZXIiLCJTdHJpbmciLCJmaWx0ZXIiLCJTY2hlbWEiLCJmb3JFYWNoIiwiZmllbGRJc1ByZXNlbnRhdGlvbmFsT25seSIsImFkZEZpZWxkU2NoZW1hIiwiZmllbGRUb1NjaGVtYU1hcCIsImFycmF5IiwiYmFzZVNjaGVtYSIsImlkIiwibWluaW1pemUiLCJkZWZhdWx0IiwidW5kZWZpbmVkIiwiYWRkIiwiYmxvY2tzIiwiZmllbGRTY2hlbWEiLCJkaXNjcmltaW5hdG9yS2V5IiwiYmxvY2tJdGVtIiwiYmxvY2tTY2hlbWEiLCJibG9ja0ZpZWxkIiwibG9jYWxlQ29kZSIsInBhdGgiLCJkaXNjcmltaW5hdG9yIiwic2x1ZyIsImNoZWNrYm94IiwiQm9vbGVhbiIsImNvZGUiLCJjb2xsYXBzaWJsZSIsInN1YkZpZWxkIiwiZGF0ZSIsIkRhdGUiLCJlbWFpbCIsImdyb3VwIiwiZm9ybWF0dGVkQmFzZVNjaGVtYSIsImpzb24iLCJUeXBlcyIsIk1peGVkIiwibnVtYmVyIiwiaGFzTWFueSIsInBvaW50IiwiZW51bSIsImNvb3JkaW5hdGVzIiwiZGVmYXVsdFZhbHVlIiwiaW5kZXhPcHRpb25zIiwicmFkaW8iLCJtYXAiLCJvcHRpb24iLCJ2YWx1ZSIsInJlbGF0aW9uc2hpcCIsImhhc01hbnlSZWxhdGlvbnMiLCJyZWxhdGlvblRvIiwic2NoZW1hVG9SZXR1cm4iLCJyZWZQYXRoIiwicmVmIiwicmljaFRleHQiLCJyb3ciLCJzZWxlY3QiLCJwdXNoIiwidGFicyIsInRhYiIsInRhYkhhc05hbWUiLCJ0ZXh0IiwidGV4dGFyZWEiLCJ1cGxvYWQiXSwibWFwcGluZ3MiOiJBQUFBLG9EQUFvRCxHQUNwRCx5Q0FBeUMsR0FDekMsMERBQTBELEdBQzFELHVDQUF1Qzs7OzsrQkFtbEJ2Qzs7O2VBQUE7OzswQkFwakJ1Qjt1QkFNaEI7QUFpQlAsTUFBTUEsbUJBQW1CLENBQUNDLE9BQTJCQztJQUNuRCxNQUFNLEVBQUVDLGFBQWEsRUFBRUMsYUFBYSxFQUFFQyxtQkFBbUIsRUFBRSxHQUFHSDtJQUM5RCxNQUFNSSxTQUFxQztRQUN6Q0MsT0FBT04sTUFBTU0sS0FBSyxJQUFLLENBQUNKLGlCQUFpQkYsTUFBTU8sTUFBTSxJQUFLSCx1QkFBdUI7UUFDakZJLFVBQVU7UUFDVkQsUUFBUSxBQUFDLENBQUNMLGlCQUFpQkYsTUFBTU8sTUFBTSxJQUFLO0lBQzlDO0lBRUEsSUFDRUYsT0FBT0UsTUFBTSxJQUNaUCxDQUFBQSxNQUFNUyxTQUFTLElBQ2ROLGlCQUNDTyxJQUFBQSx1QkFBZ0IsRUFBQ1YsVUFDaEJBLE1BQU1XLElBQUksS0FBSyxXQUNmWCxNQUFNVyxJQUFJLEtBQUssU0FDZlgsTUFBTVEsUUFBUSxLQUFLLElBQUksR0FDM0I7UUFDQUgsT0FBT08sTUFBTSxHQUFHO0lBQ2xCO0lBRUEsSUFBSVosTUFBTWEsTUFBTSxFQUFFO1FBQ2hCUixPQUFPUSxNQUFNLEdBQUc7SUFDbEI7SUFFQSxPQUFPUjtBQUNUO0FBRUEsTUFBTVMsaUJBQWlCLENBQ3JCQyxRQUNBVixRQUNBVztJQUVBLElBQUlDLElBQUFBLHVCQUFnQixFQUFDRixXQUFXQyxnQkFBZ0JFLE1BQU1DLE9BQU8sQ0FBQ0gsYUFBYUksT0FBTyxHQUFHO1FBQ25GLE9BQU87WUFDTFQsTUFBTUssYUFBYUssV0FBVyxDQUFDQyxNQUFNLENBQ25DLENBQUNDLGNBQWNDLFNBQVksQ0FBQTtv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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.code}`]: '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"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1,15 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "buildAndOrConditions", {
6
- enumerable: true,
7
- get: function() {
8
- return buildAndOrConditions;
9
- }
10
- });
11
- const _parseParams = require("./parseParams");
12
- async function buildAndOrConditions({ collectionSlug, fields, globalSlug, locale, payload, where }) {
1
+ import { parseParams } from './parseParams.js';
2
+ export async function buildAndOrConditions({ collectionSlug, fields, globalSlug, locale, payload, where }) {
13
3
  const completedConditions = [];
14
4
  // Loop over all AND / OR operations and add them to the AND / OR query param
15
5
  // Operations should come through as an array
@@ -18,7 +8,7 @@ async function buildAndOrConditions({ collectionSlug, fields, globalSlug, locale
18
8
  // If the operation is properly formatted as an object
19
9
  if (typeof condition === 'object') {
20
10
  // eslint-disable-next-line no-await-in-loop
21
- const result = await (0, _parseParams.parseParams)({
11
+ const result = await parseParams({
22
12
  collectionSlug,
23
13
  fields,
24
14
  globalSlug,
@@ -34,4 +24,4 @@ async function buildAndOrConditions({ collectionSlug, fields, globalSlug, locale
34
24
  return completedConditions;
35
25
  }
36
26
 
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL2J1aWxkQW5kT3JDb25kaXRpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGF5bG9hZCB9IGZyb20gJ3BheWxvYWQnXG5pbXBvcnQgdHlwZSB7IEZpZWxkLCBXaGVyZSB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IHBhcnNlUGFyYW1zIH0gZnJvbSAnLi9wYXJzZVBhcmFtcydcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkQW5kT3JDb25kaXRpb25zKHtcbiAgY29sbGVjdGlvblNsdWcsXG4gIGZpZWxkcyxcbiAgZ2xvYmFsU2x1ZyxcbiAgbG9jYWxlLFxuICBwYXlsb2FkLFxuICB3aGVyZSxcbn06IHtcbiAgY29sbGVjdGlvblNsdWc/OiBzdHJpbmdcbiAgZmllbGRzOiBGaWVsZFtdXG4gIGdsb2JhbFNsdWc/OiBzdHJpbmdcbiAgbG9jYWxlPzogc3RyaW5nXG4gIHBheWxvYWQ6IFBheWxvYWRcbiAgd2hlcmU6IFdoZXJlW11cbn0pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+W10+IHtcbiAgY29uc3QgY29tcGxldGVkQ29uZGl0aW9ucyA9IFtdXG4gIC8vIExvb3Agb3ZlciBhbGwgQU5EIC8gT1Igb3BlcmF0aW9ucyBhbmQgYWRkIHRoZW0gdG8gdGhlIEFORCAvIE9SIHF1ZXJ5IHBhcmFtXG4gIC8vIE9wZXJhdGlvbnMgc2hvdWxkIGNvbWUgdGhyb3VnaCBhcyBhbiBhcnJheVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcbiAgZm9yIChjb25zdCBjb25kaXRpb24gb2Ygd2hlcmUpIHtcbiAgICAvLyBJZiB0aGUgb3BlcmF0aW9uIGlzIHByb3Blcmx5IGZvcm1hdHRlZCBhcyBhbiBvYmplY3RcbiAgICBpZiAodHlwZW9mIGNvbmRpdGlvbiA9PT0gJ29iamVjdCcpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1hd2FpdC1pbi1sb29wXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwYXJzZVBhcmFtcyh7XG4gICAgICAgIGNvbGxlY3Rpb25TbHVnLFxuICAgICAgICBmaWVsZHMsXG4gICAgICAgIGdsb2JhbFNsdWcsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgd2hlcmU6IGNvbmRpdGlvbixcbiAgICAgIH0pXG4gICAgICBpZiAoT2JqZWN0LmtleXMocmVzdWx0KS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbXBsZXRlZENvbmRpdGlvbnMucHVzaChyZXN1bHQpXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBjb21wbGV0ZWRDb25kaXRpb25zXG59XG4iXSwibmFtZXMiOlsiYnVpbGRBbmRPckNvbmRpdGlvbnMiLCJjb2xsZWN0aW9uU2x1ZyIsImZpZWxkcyIsImdsb2JhbFNsdWciLCJsb2NhbGUiLCJwYXlsb2FkIiwid2hlcmUiLCJjb21wbGV0ZWRDb25kaXRpb25zIiwiY29uZGl0aW9uIiwicmVzdWx0IiwicGFyc2VQYXJhbXMiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwicHVzaCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFLc0JBOzs7ZUFBQUE7Ozs2QkFGTTtBQUVyQixlQUFlQSxxQkFBcUIsRUFDekNDLGNBQWMsRUFDZEMsTUFBTSxFQUNOQyxVQUFVLEVBQ1ZDLE1BQU0sRUFDTkMsT0FBTyxFQUNQQyxLQUFLLEVBUU47SUFDQyxNQUFNQyxzQkFBc0IsRUFBRTtJQUM5Qiw2RUFBNkU7SUFDN0UsNkNBQTZDO0lBQzdDLGdEQUFnRDtJQUNoRCxLQUFLLE1BQU1DLGFBQWFGLE1BQU87UUFDN0Isc0RBQXNEO1FBQ3RELElBQUksT0FBT0UsY0FBYyxVQUFVO1lBQ2pDLDRDQUE0QztZQUM1QyxNQUFNQyxTQUFTLE1BQU1DLElBQUFBLHdCQUFXLEVBQUM7Z0JBQy9CVDtnQkFDQUM7Z0JBQ0FDO2dCQUNBQztnQkFDQUM7Z0JBQ0FDLE9BQU9FO1lBQ1Q7WUFDQSxJQUFJRyxPQUFPQyxJQUFJLENBQUNILFFBQVFJLE1BQU0sR0FBRyxHQUFHO2dCQUNsQ04sb0JBQW9CTyxJQUFJLENBQUNMO1lBQzNCO1FBQ0Y7SUFDRjtJQUNBLE9BQU9GO0FBQ1QifQ==
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"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;","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"}
@@ -1,15 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return _default;
9
- }
10
- });
11
- const _errors = require("payload/errors");
12
- const _parseParams = require("./parseParams");
1
+ import { QueryError } from 'payload/errors';
2
+ import { parseParams } from './parseParams.js';
13
3
  // This plugin asynchronously builds a list of Mongoose query constraints
14
4
  // which can then be used in subsequent Mongoose queries.
15
5
  const getBuildQueryPlugin = ({ collectionSlug, versionsFields } = {})=>{
@@ -28,7 +18,7 @@ const getBuildQueryPlugin = ({ collectionSlug, versionsFields } = {})=>{
28
18
  }
29
19
  }
30
20
  const errors = [];
31
- const result = await (0, _parseParams.parseParams)({
21
+ const result = await parseParams({
32
22
  collectionSlug,
33
23
  fields,
34
24
  globalSlug,
@@ -37,13 +27,13 @@ const getBuildQueryPlugin = ({ collectionSlug, versionsFields } = {})=>{
37
27
  where
38
28
  });
39
29
  if (errors.length > 0) {
40
- throw new _errors.QueryError(errors);
30
+ throw new QueryError(errors);
41
31
  }
42
32
  return result;
43
33
  }
44
34
  modifiedSchema.statics.buildQuery = buildQuery;
45
35
  };
46
36
  };
47
- const _default = getBuildQueryPlugin;
37
+ export default getBuildQueryPlugin;
48
38
 
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL2J1aWxkUXVlcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXlsb2FkIH0gZnJvbSAncGF5bG9hZCdcbmltcG9ydCB0eXBlIHsgRmllbGQsIFdoZXJlIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHsgUXVlcnlFcnJvciB9IGZyb20gJ3BheWxvYWQvZXJyb3JzJ1xuXG5pbXBvcnQgeyBwYXJzZVBhcmFtcyB9IGZyb20gJy4vcGFyc2VQYXJhbXMnXG5cbnR5cGUgR2V0QnVpbGRRdWVyeVBsdWdpbkFyZ3MgPSB7XG4gIGNvbGxlY3Rpb25TbHVnPzogc3RyaW5nXG4gIHZlcnNpb25zRmllbGRzPzogRmllbGRbXVxufVxuXG5leHBvcnQgdHlwZSBCdWlsZFF1ZXJ5QXJncyA9IHtcbiAgZ2xvYmFsU2x1Zz86IHN0cmluZ1xuICBsb2NhbGU/OiBzdHJpbmdcbiAgcGF5bG9hZDogUGF5bG9hZFxuICB3aGVyZTogV2hlcmVcbn1cblxuLy8gVGhpcyBwbHVnaW4gYXN5bmNocm9ub3VzbHkgYnVpbGRzIGEgbGlzdCBvZiBNb25nb29zZSBxdWVyeSBjb25zdHJhaW50c1xuLy8gd2hpY2ggY2FuIHRoZW4gYmUgdXNlZCBpbiBzdWJzZXF1ZW50IE1vbmdvb3NlIHF1ZXJpZXMuXG5jb25zdCBnZXRCdWlsZFF1ZXJ5UGx1Z2luID0gKHsgY29sbGVjdGlvblNsdWcsIHZlcnNpb25zRmllbGRzIH06IEdldEJ1aWxkUXVlcnlQbHVnaW5BcmdzID0ge30pID0+IHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGJ1aWxkUXVlcnlQbHVnaW4oc2NoZW1hKSB7XG4gICAgY29uc3QgbW9kaWZpZWRTY2hlbWEgPSBzY2hlbWFcbiAgICBhc3luYyBmdW5jdGlvbiBidWlsZFF1ZXJ5KHtcbiAgICAgIGdsb2JhbFNsdWcsXG4gICAgICBsb2NhbGUsXG4gICAgICBwYXlsb2FkLFxuICAgICAgd2hlcmUsXG4gICAgfTogQnVpbGRRdWVyeUFyZ3MpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gICAgICBsZXQgZmllbGRzID0gdmVyc2lvbnNGaWVsZHNcbiAgICAgIGlmICghZmllbGRzKSB7XG4gICAgICAgIGlmIChnbG9iYWxTbHVnKSB7XG4gICAgICAgICAgY29uc3QgZ2xvYmFsQ29uZmlnID0gcGF5bG9hZC5nbG9iYWxzLmNvbmZpZy5maW5kKCh7IHNsdWcgfSkgPT4gc2x1ZyA9PT0gZ2xvYmFsU2x1ZylcbiAgICAgICAgICBmaWVsZHMgPSBnbG9iYWxDb25maWcuZmllbGRzXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbGxlY3Rpb25TbHVnKSB7XG4gICAgICAgICAgY29uc3QgY29sbGVjdGlvbkNvbmZpZyA9IHBheWxvYWQuY29sbGVjdGlvbnNbY29sbGVjdGlvblNsdWddLmNvbmZpZ1xuICAgICAgICAgIGZpZWxkcyA9IGNvbGxlY3Rpb25Db25maWcuZmllbGRzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IGVycm9ycyA9IFtdXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwYXJzZVBhcmFtcyh7XG4gICAgICAgIGNvbGxlY3Rpb25TbHVnLFxuICAgICAgICBmaWVsZHMsXG4gICAgICAgIGdsb2JhbFNsdWcsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgd2hlcmUsXG4gICAgICB9KVxuXG4gICAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoZXJyb3JzKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfVxuICAgIG1vZGlmaWVkU2NoZW1hLnN0YXRpY3MuYnVpbGRRdWVyeSA9IGJ1aWxkUXVlcnlcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBnZXRCdWlsZFF1ZXJ5UGx1Z2luXG4iXSwibmFtZXMiOlsiZ2V0QnVpbGRRdWVyeVBsdWdpbiIsImNvbGxlY3Rpb25TbHVnIiwidmVyc2lvbnNGaWVsZHMiLCJidWlsZFF1ZXJ5UGx1Z2luIiwic2NoZW1hIiwibW9kaWZpZWRTY2hlbWEiLCJidWlsZFF1ZXJ5IiwiZ2xvYmFsU2x1ZyIsImxvY2FsZSIsInBheWxvYWQiLCJ3aGVyZSIsImZpZWxkcyIsImdsb2JhbENvbmZpZyIsImdsb2JhbHMiLCJjb25maWciLCJmaW5kIiwic2x1ZyIsImNvbGxlY3Rpb25Db25maWciLCJjb2xsZWN0aW9ucyIsImVycm9ycyIsInJlc3VsdCIsInBhcnNlUGFyYW1zIiwibGVuZ3RoIiwiUXVlcnlFcnJvciIsInN0YXRpY3MiXSwibWFwcGluZ3MiOiI7Ozs7K0JBNkRBOzs7ZUFBQTs7O3dCQTFEMkI7NkJBRUM7QUFjNUIseUVBQXlFO0FBQ3pFLHlEQUF5RDtBQUN6RCxNQUFNQSxzQkFBc0IsQ0FBQyxFQUFFQyxjQUFjLEVBQUVDLGNBQWMsRUFBMkIsR0FBRyxDQUFDLENBQUM7SUFDM0YsT0FBTyxTQUFTQyxpQkFBaUJDLE1BQU07UUFDckMsTUFBTUMsaUJBQWlCRDtRQUN2QixlQUFlRSxXQUFXLEVBQ3hCQyxVQUFVLEVBQ1ZDLE1BQU0sRUFDTkMsT0FBTyxFQUNQQyxLQUFLLEVBQ1U7WUFDZixJQUFJQyxTQUFTVDtZQUNiLElBQUksQ0FBQ1MsUUFBUTtnQkFDWCxJQUFJSixZQUFZO29CQUNkLE1BQU1LLGVBQWVILFFBQVFJLE9BQU8sQ0FBQ0MsTUFBTSxDQUFDQyxJQUFJLENBQUMsQ0FBQyxFQUFFQyxJQUFJLEVBQUUsR0FBS0EsU0FBU1Q7b0JBQ3hFSSxTQUFTQyxhQUFhRCxNQUFNO2dCQUM5QjtnQkFDQSxJQUFJVixnQkFBZ0I7b0JBQ2xCLE1BQU1nQixtQkFBbUJSLFFBQVFTLFdBQVcsQ0FBQ2pCLGVBQWUsQ0FBQ2EsTUFBTTtvQkFDbkVILFNBQVNNLGlCQUFpQk4sTUFBTTtnQkFDbEM7WUFDRjtZQUNBLE1BQU1RLFNBQVMsRUFBRTtZQUNqQixNQUFNQyxTQUFTLE1BQU1DLElBQUFBLHdCQUFXLEVBQUM7Z0JBQy9CcEI7Z0JBQ0FVO2dCQUNBSjtnQkFDQUM7Z0JBQ0FDO2dCQUNBQztZQUNGO1lBRUEsSUFBSVMsT0FBT0csTUFBTSxHQUFHLEdBQUc7Z0JBQ3JCLE1BQU0sSUFBSUMsa0JBQVUsQ0FBQ0o7WUFDdkI7WUFFQSxPQUFPQztRQUNUO1FBQ0FmLGVBQWVtQixPQUFPLENBQUNsQixVQUFVLEdBQUdBO0lBQ3RDO0FBQ0Y7TUFFQSxXQUFlTiJ9
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"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","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"}
@@ -1 +1 @@
1
- {"version":3,"file":"buildSearchParams.d.ts","sourceRoot":"","sources":["../../src/queries/buildSearchParams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAc1C,KAAK,WAAW,GAAG;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAOD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,EACrC,cAAc,EACd,MAAM,EACN,UAAU,EACV,YAAY,EACZ,MAAM,EACN,QAAQ,EACR,OAAO,EACP,GAAG,GACJ,EAAE;IACD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,OAAO,CAAA;CACb,GAAG,OAAO,CAAC,WAAW,CAAC,CA6NvB"}
1
+ {"version":3,"file":"buildSearchParams.d.ts","sourceRoot":"","sources":["../../src/queries/buildSearchParams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAiB1C,KAAK,WAAW,GAAG;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAOD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,EACrC,cAAc,EACd,MAAM,EACN,UAAU,EACV,YAAY,EACZ,MAAM,EACN,QAAQ,EACR,OAAO,EACP,GAAG,GACJ,EAAE;IACD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,OAAO,CAAA;CACb,GAAG,OAAO,CAAC,WAAW,CAAC,CA+NvB"}