@payloadcms/db-mongodb 3.0.0-canary.f6e77b8 → 3.0.0-canary.fb04843

Sign up to get free protection for your applications and to get access to all the features.
Files changed (220) hide show
  1. package/README.md +1 -1
  2. package/dist/connect.d.ts +1 -1
  3. package/dist/connect.d.ts.map +1 -1
  4. package/dist/connect.js +18 -4
  5. package/dist/connect.js.map +1 -1
  6. package/dist/count.d.ts +1 -1
  7. package/dist/count.d.ts.map +1 -1
  8. package/dist/count.js +10 -3
  9. package/dist/count.js.map +1 -1
  10. package/dist/countGlobalVersions.d.ts +3 -0
  11. package/dist/countGlobalVersions.d.ts.map +1 -0
  12. package/dist/countGlobalVersions.js +40 -0
  13. package/dist/countGlobalVersions.js.map +1 -0
  14. package/dist/countVersions.d.ts +3 -0
  15. package/dist/countVersions.d.ts.map +1 -0
  16. package/dist/countVersions.js +40 -0
  17. package/dist/countVersions.js.map +1 -0
  18. package/dist/create.d.ts +1 -1
  19. package/dist/create.d.ts.map +1 -1
  20. package/dist/create.js +17 -4
  21. package/dist/create.js.map +1 -1
  22. package/dist/createGlobal.d.ts +1 -1
  23. package/dist/createGlobal.d.ts.map +1 -1
  24. package/dist/createGlobal.js +11 -6
  25. package/dist/createGlobal.js.map +1 -1
  26. package/dist/createGlobalVersion.d.ts +1 -1
  27. package/dist/createGlobalVersion.d.ts.map +1 -1
  28. package/dist/createGlobalVersion.js +14 -5
  29. package/dist/createGlobalVersion.js.map +1 -1
  30. package/dist/createMigration.d.ts +1 -1
  31. package/dist/createMigration.d.ts.map +1 -1
  32. package/dist/createMigration.js +20 -32
  33. package/dist/createMigration.js.map +1 -1
  34. package/dist/createVersion.d.ts +1 -1
  35. package/dist/createVersion.d.ts.map +1 -1
  36. package/dist/createVersion.js +32 -10
  37. package/dist/createVersion.js.map +1 -1
  38. package/dist/deleteMany.d.ts +1 -1
  39. package/dist/deleteMany.d.ts.map +1 -1
  40. package/dist/deleteMany.js +1 -1
  41. package/dist/deleteMany.js.map +1 -1
  42. package/dist/deleteOne.d.ts +1 -1
  43. package/dist/deleteOne.d.ts.map +1 -1
  44. package/dist/deleteOne.js +12 -4
  45. package/dist/deleteOne.js.map +1 -1
  46. package/dist/deleteVersions.d.ts +1 -1
  47. package/dist/deleteVersions.d.ts.map +1 -1
  48. package/dist/deleteVersions.js +1 -1
  49. package/dist/deleteVersions.js.map +1 -1
  50. package/dist/destroy.d.ts +1 -1
  51. package/dist/destroy.d.ts.map +1 -1
  52. package/dist/destroy.js.map +1 -1
  53. package/dist/exports/migration-utils.d.ts +3 -0
  54. package/dist/exports/migration-utils.d.ts.map +1 -0
  55. package/dist/exports/migration-utils.js +4 -0
  56. package/dist/exports/migration-utils.js.map +1 -0
  57. package/dist/find.d.ts +1 -1
  58. package/dist/find.d.ts.map +1 -1
  59. package/dist/find.js +36 -7
  60. package/dist/find.js.map +1 -1
  61. package/dist/findGlobal.d.ts +1 -1
  62. package/dist/findGlobal.d.ts.map +1 -1
  63. package/dist/findGlobal.js +11 -5
  64. package/dist/findGlobal.js.map +1 -1
  65. package/dist/findGlobalVersions.d.ts +1 -1
  66. package/dist/findGlobalVersions.d.ts.map +1 -1
  67. package/dist/findGlobalVersions.js +19 -9
  68. package/dist/findGlobalVersions.js.map +1 -1
  69. package/dist/findOne.d.ts +1 -1
  70. package/dist/findOne.d.ts.map +1 -1
  71. package/dist/findOne.js +28 -4
  72. package/dist/findOne.js.map +1 -1
  73. package/dist/findVersions.d.ts +1 -1
  74. package/dist/findVersions.d.ts.map +1 -1
  75. package/dist/findVersions.js +17 -6
  76. package/dist/findVersions.js.map +1 -1
  77. package/dist/index.d.ts +59 -35
  78. package/dist/index.d.ts.map +1 -1
  79. package/dist/index.js +18 -7
  80. package/dist/index.js.map +1 -1
  81. package/dist/init.d.ts +1 -1
  82. package/dist/init.d.ts.map +1 -1
  83. package/dist/init.js +19 -17
  84. package/dist/init.js.map +1 -1
  85. package/dist/migrateFresh.d.ts.map +1 -1
  86. package/dist/migrateFresh.js +1 -1
  87. package/dist/migrateFresh.js.map +1 -1
  88. package/dist/models/buildCollectionSchema.d.ts +2 -29
  89. package/dist/models/buildCollectionSchema.d.ts.map +1 -1
  90. package/dist/models/buildCollectionSchema.js +16 -4
  91. package/dist/models/buildCollectionSchema.js.map +1 -1
  92. package/dist/models/buildGlobalModel.d.ts +1 -1
  93. package/dist/models/buildGlobalModel.d.ts.map +1 -1
  94. package/dist/models/buildGlobalModel.js +2 -2
  95. package/dist/models/buildGlobalModel.js.map +1 -1
  96. package/dist/models/buildSchema.d.ts +2 -29
  97. package/dist/models/buildSchema.d.ts.map +1 -1
  98. package/dist/models/buildSchema.js +116 -23
  99. package/dist/models/buildSchema.js.map +1 -1
  100. package/dist/predefinedMigrations/migrateRelationshipsV2_V3.d.ts +6 -0
  101. package/dist/predefinedMigrations/migrateRelationshipsV2_V3.d.ts.map +1 -0
  102. package/dist/predefinedMigrations/migrateRelationshipsV2_V3.js +141 -0
  103. package/dist/predefinedMigrations/migrateRelationshipsV2_V3.js.map +1 -0
  104. package/dist/predefinedMigrations/migrateVersionsV1_V2.d.ts +5 -0
  105. package/dist/predefinedMigrations/migrateVersionsV1_V2.d.ts.map +1 -0
  106. package/dist/predefinedMigrations/migrateVersionsV1_V2.js +107 -0
  107. package/dist/predefinedMigrations/migrateVersionsV1_V2.js.map +1 -0
  108. package/dist/predefinedMigrations/relationships-v2-v3.d.ts +4 -0
  109. package/dist/predefinedMigrations/relationships-v2-v3.d.ts.map +1 -0
  110. package/dist/predefinedMigrations/relationships-v2-v3.js +9 -0
  111. package/dist/predefinedMigrations/relationships-v2-v3.js.map +1 -0
  112. package/dist/predefinedMigrations/versions-v1-v2.d.ts +4 -0
  113. package/dist/predefinedMigrations/versions-v1-v2.d.ts.map +1 -0
  114. package/dist/predefinedMigrations/versions-v1-v2.js +8 -0
  115. package/dist/predefinedMigrations/versions-v1-v2.js.map +1 -0
  116. package/dist/queries/buildAndOrConditions.d.ts +1 -2
  117. package/dist/queries/buildAndOrConditions.d.ts.map +1 -1
  118. package/dist/queries/buildAndOrConditions.js +0 -2
  119. package/dist/queries/buildAndOrConditions.js.map +1 -1
  120. package/dist/queries/buildQuery.d.ts +3 -4
  121. package/dist/queries/buildQuery.d.ts.map +1 -1
  122. package/dist/queries/buildQuery.js +2 -3
  123. package/dist/queries/buildQuery.js.map +1 -1
  124. package/dist/queries/buildSearchParams.d.ts +1 -2
  125. package/dist/queries/buildSearchParams.d.ts.map +1 -1
  126. package/dist/queries/buildSearchParams.js +34 -22
  127. package/dist/queries/buildSearchParams.js.map +1 -1
  128. package/dist/queries/buildSortParam.d.ts +3 -29
  129. package/dist/queries/buildSortParam.d.ts.map +1 -1
  130. package/dist/queries/buildSortParam.js +26 -17
  131. package/dist/queries/buildSortParam.js.map +1 -1
  132. package/dist/queries/getLocalizedSortProperty.d.ts +1 -2
  133. package/dist/queries/getLocalizedSortProperty.d.ts.map +1 -1
  134. package/dist/queries/getLocalizedSortProperty.js +2 -2
  135. package/dist/queries/getLocalizedSortProperty.js.map +1 -1
  136. package/dist/queries/getLocalizedSortProperty.spec.js +44 -44
  137. package/dist/queries/getLocalizedSortProperty.spec.js.map +1 -1
  138. package/dist/queries/mock.js.map +1 -1
  139. package/dist/queries/operatorMap.js.map +1 -1
  140. package/dist/queries/parseParams.d.ts +1 -3
  141. package/dist/queries/parseParams.d.ts.map +1 -1
  142. package/dist/queries/parseParams.js +8 -6
  143. package/dist/queries/parseParams.js.map +1 -1
  144. package/dist/queries/sanitizeQueryValue.d.ts +1 -1
  145. package/dist/queries/sanitizeQueryValue.d.ts.map +1 -1
  146. package/dist/queries/sanitizeQueryValue.js +145 -28
  147. package/dist/queries/sanitizeQueryValue.js.map +1 -1
  148. package/dist/queryDrafts.d.ts +1 -1
  149. package/dist/queryDrafts.d.ts.map +1 -1
  150. package/dist/queryDrafts.js +37 -10
  151. package/dist/queryDrafts.js.map +1 -1
  152. package/dist/testCredentials.js.map +1 -1
  153. package/dist/transactions/beginTransaction.d.ts +1 -1
  154. package/dist/transactions/beginTransaction.d.ts.map +1 -1
  155. package/dist/transactions/beginTransaction.js +3 -1
  156. package/dist/transactions/beginTransaction.js.map +1 -1
  157. package/dist/transactions/commitTransaction.d.ts +1 -1
  158. package/dist/transactions/commitTransaction.d.ts.map +1 -1
  159. package/dist/transactions/commitTransaction.js +3 -0
  160. package/dist/transactions/commitTransaction.js.map +1 -1
  161. package/dist/transactions/rollbackTransaction.d.ts +1 -1
  162. package/dist/transactions/rollbackTransaction.d.ts.map +1 -1
  163. package/dist/transactions/rollbackTransaction.js +13 -7
  164. package/dist/transactions/rollbackTransaction.js.map +1 -1
  165. package/dist/types.d.ts +7 -31
  166. package/dist/types.d.ts.map +1 -1
  167. package/dist/types.js.map +1 -1
  168. package/dist/updateGlobal.d.ts +1 -1
  169. package/dist/updateGlobal.d.ts.map +1 -1
  170. package/dist/updateGlobal.js +18 -5
  171. package/dist/updateGlobal.js.map +1 -1
  172. package/dist/updateGlobalVersion.d.ts +2 -3
  173. package/dist/updateGlobalVersion.d.ts.map +1 -1
  174. package/dist/updateGlobalVersion.js +19 -5
  175. package/dist/updateGlobalVersion.js.map +1 -1
  176. package/dist/updateOne.d.ts +1 -1
  177. package/dist/updateOne.d.ts.map +1 -1
  178. package/dist/updateOne.js +25 -7
  179. package/dist/updateOne.js.map +1 -1
  180. package/dist/updateVersion.d.ts +1 -1
  181. package/dist/updateVersion.d.ts.map +1 -1
  182. package/dist/updateVersion.js +18 -4
  183. package/dist/updateVersion.js.map +1 -1
  184. package/dist/upsert.d.ts +3 -0
  185. package/dist/upsert.d.ts.map +1 -0
  186. package/dist/upsert.js +15 -0
  187. package/dist/upsert.js.map +1 -0
  188. package/dist/utilities/buildJoinAggregation.d.ts +18 -0
  189. package/dist/utilities/buildJoinAggregation.d.ts.map +1 -0
  190. package/dist/utilities/buildJoinAggregation.js +159 -0
  191. package/dist/utilities/buildJoinAggregation.js.map +1 -0
  192. package/dist/utilities/buildProjectionFromSelect.d.ts +8 -0
  193. package/dist/utilities/buildProjectionFromSelect.d.ts.map +1 -0
  194. package/dist/utilities/buildProjectionFromSelect.js +171 -0
  195. package/dist/utilities/buildProjectionFromSelect.js.map +1 -0
  196. package/dist/utilities/getDBName.d.ts +1 -1
  197. package/dist/utilities/getDBName.d.ts.map +1 -1
  198. package/dist/utilities/getDBName.js +3 -1
  199. package/dist/utilities/getDBName.js.map +1 -1
  200. package/dist/utilities/handleError.d.ts +6 -2
  201. package/dist/utilities/handleError.d.ts.map +1 -1
  202. package/dist/utilities/handleError.js +12 -9
  203. package/dist/utilities/handleError.js.map +1 -1
  204. package/dist/utilities/sanitizeInternalFields.d.ts +1 -2
  205. package/dist/utilities/sanitizeInternalFields.d.ts.map +1 -1
  206. package/dist/utilities/sanitizeInternalFields.js +1 -2
  207. package/dist/utilities/sanitizeInternalFields.js.map +1 -1
  208. package/dist/utilities/sanitizeRelationshipIDs.d.ts +9 -0
  209. package/dist/utilities/sanitizeRelationshipIDs.d.ts.map +1 -0
  210. package/dist/utilities/sanitizeRelationshipIDs.js +115 -0
  211. package/dist/utilities/sanitizeRelationshipIDs.js.map +1 -0
  212. package/dist/utilities/sanitizeRelationshipIDs.spec.js +383 -0
  213. package/dist/utilities/sanitizeRelationshipIDs.spec.js.map +1 -0
  214. package/dist/withSession.d.ts +3 -27
  215. package/dist/withSession.d.ts.map +1 -1
  216. package/dist/withSession.js +10 -4
  217. package/dist/withSession.js.map +1 -1
  218. package/license.md +22 -0
  219. package/package.json +29 -17
  220. package/predefinedMigrations/versions-v1-v2.js +0 -96
@@ -1 +1 @@
1
- {"version":3,"file":"buildCollectionSchema.d.ts","sourceRoot":"","sources":["../../src/models/buildCollectionSchema.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAmB,MAAM,EAAE,MAAM,UAAU,CAAA;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AAO9D,QAAA,MAAM,qBAAqB,eACb,yBAAyB,UAC7B,eAAe,yBAEtB,MAqBF,CAAA;AAED,eAAe,qBAAqB,CAAA"}
1
+ {"version":3,"file":"buildCollectionSchema.d.ts","sourceRoot":"","sources":["../../src/models/buildCollectionSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,MAAM,EAAE,MAAM,UAAU,CAAA;AACvD,OAAO,KAAK,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAQzE,eAAO,MAAM,qBAAqB,eACpB,yBAAyB,UAC7B,eAAe,yBAEtB,MAqCF,CAAA"}
@@ -1,7 +1,8 @@
1
+ import mongooseAggregatePaginate from 'mongoose-aggregate-paginate-v2';
1
2
  import paginate from 'mongoose-paginate-v2';
2
- import getBuildQueryPlugin from '../queries/buildQuery.js';
3
- import buildSchema from './buildSchema.js';
4
- const buildCollectionSchema = (collection, config, schemaOptions = {})=>{
3
+ import { getBuildQueryPlugin } from '../queries/buildQuery.js';
4
+ import { buildSchema } from './buildSchema.js';
5
+ export const buildCollectionSchema = (collection, config, schemaOptions = {})=>{
5
6
  const schema = buildSchema(config, collection.fields, {
6
7
  draftsEnabled: Boolean(typeof collection?.versions === 'object' && collection.versions.drafts),
7
8
  indexSortableFields: config.indexSortableFields,
@@ -11,6 +12,15 @@ const buildCollectionSchema = (collection, config, schemaOptions = {})=>{
11
12
  ...schemaOptions
12
13
  }
13
14
  });
15
+ if (Array.isArray(collection.upload.filenameCompoundIndex)) {
16
+ const indexDefinition = collection.upload.filenameCompoundIndex.reduce((acc, index)=>{
17
+ acc[index] = 1;
18
+ return acc;
19
+ }, {});
20
+ schema.index(indexDefinition, {
21
+ unique: true
22
+ });
23
+ }
14
24
  if (config.indexSortableFields && collection.timestamps !== false) {
15
25
  schema.index({
16
26
  updatedAt: 1
@@ -24,8 +34,10 @@ const buildCollectionSchema = (collection, config, schemaOptions = {})=>{
24
34
  }).plugin(getBuildQueryPlugin({
25
35
  collectionSlug: collection.slug
26
36
  }));
37
+ if (Object.keys(collection.joins).length > 0) {
38
+ schema.plugin(mongooseAggregatePaginate);
39
+ }
27
40
  return schema;
28
41
  };
29
- export default buildCollectionSchema;
30
42
 
31
43
  //# sourceMappingURL=buildCollectionSchema.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/models/buildCollectionSchema.ts"],"sourcesContent":["import type { PaginateOptions, Schema } from 'mongoose'\nimport type { SanitizedConfig } from 'payload/config'\nimport type { SanitizedCollectionConfig } from 'payload/types'\n\nimport paginate from 'mongoose-paginate-v2'\n\nimport getBuildQueryPlugin from '../queries/buildQuery.js'\nimport buildSchema from './buildSchema.js'\n\nconst buildCollectionSchema = (\n collection: SanitizedCollectionConfig,\n config: SanitizedConfig,\n schemaOptions = {},\n): Schema => {\n const schema = buildSchema(config, collection.fields, {\n draftsEnabled: Boolean(typeof collection?.versions === 'object' && collection.versions.drafts),\n indexSortableFields: config.indexSortableFields,\n options: {\n minimize: false,\n timestamps: collection.timestamps !== false,\n ...schemaOptions,\n },\n })\n\n if (config.indexSortableFields && collection.timestamps !== false) {\n schema.index({ updatedAt: 1 })\n schema.index({ createdAt: 1 })\n }\n\n schema\n .plugin<any, PaginateOptions>(paginate, { useEstimatedCount: true })\n .plugin(getBuildQueryPlugin({ collectionSlug: collection.slug }))\n\n return schema\n}\n\nexport default buildCollectionSchema\n"],"names":["paginate","getBuildQueryPlugin","buildSchema","buildCollectionSchema","collection","config","schemaOptions","schema","fields","draftsEnabled","Boolean","versions","drafts","indexSortableFields","options","minimize","timestamps","index","updatedAt","createdAt","plugin","useEstimatedCount","collectionSlug","slug"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAIA,OAAOA,cAAc,uBAAsB;AAE3C,OAAOC,yBAAyB,2BAA0B;AAC1D,OAAOC,iBAAiB,mBAAkB;AAE1C,MAAMC,wBAAwB,CAC5BC,YACAC,QACAC,gBAAgB,CAAC,CAAC;IAElB,MAAMC,SAASL,YAAYG,QAAQD,WAAWI,MAAM,EAAE;QACpDC,eAAeC,QAAQ,OAAON,YAAYO,aAAa,YAAYP,WAAWO,QAAQ,CAACC,MAAM;QAC7FC,qBAAqBR,OAAOQ,mBAAmB;QAC/CC,SAAS;YACPC,UAAU;YACVC,YAAYZ,WAAWY,UAAU,KAAK;YACtC,GAAGV,aAAa;QAClB;IACF;IAEA,IAAID,OAAOQ,mBAAmB,IAAIT,WAAWY,UAAU,KAAK,OAAO;QACjET,OAAOU,KAAK,CAAC;YAAEC,WAAW;QAAE;QAC5BX,OAAOU,KAAK,CAAC;YAAEE,WAAW;QAAE;IAC9B;IAEAZ,OACGa,MAAM,CAAuBpB,UAAU;QAAEqB,mBAAmB;IAAK,GACjED,MAAM,CAACnB,oBAAoB;QAAEqB,gBAAgBlB,WAAWmB,IAAI;IAAC;IAEhE,OAAOhB;AACT;AAEA,eAAeJ,sBAAqB"}
1
+ {"version":3,"sources":["../../src/models/buildCollectionSchema.ts"],"sourcesContent":["import type { PaginateOptions, Schema } from 'mongoose'\nimport type { SanitizedCollectionConfig, SanitizedConfig } from 'payload'\n\nimport mongooseAggregatePaginate from 'mongoose-aggregate-paginate-v2'\nimport paginate from 'mongoose-paginate-v2'\n\nimport { getBuildQueryPlugin } from '../queries/buildQuery.js'\nimport { buildSchema } from './buildSchema.js'\n\nexport const buildCollectionSchema = (\n collection: SanitizedCollectionConfig,\n config: SanitizedConfig,\n schemaOptions = {},\n): Schema => {\n const schema = buildSchema(config, collection.fields, {\n draftsEnabled: Boolean(typeof collection?.versions === 'object' && collection.versions.drafts),\n indexSortableFields: config.indexSortableFields,\n options: {\n minimize: false,\n timestamps: collection.timestamps !== false,\n ...schemaOptions,\n },\n })\n\n if (Array.isArray(collection.upload.filenameCompoundIndex)) {\n const indexDefinition: Record<string, 1> = collection.upload.filenameCompoundIndex.reduce(\n (acc, index) => {\n acc[index] = 1\n return acc\n },\n {},\n )\n\n schema.index(indexDefinition, { unique: true })\n }\n\n if (config.indexSortableFields && collection.timestamps !== false) {\n schema.index({ updatedAt: 1 })\n schema.index({ createdAt: 1 })\n }\n\n schema\n .plugin<any, PaginateOptions>(paginate, { useEstimatedCount: true })\n .plugin(getBuildQueryPlugin({ collectionSlug: collection.slug }))\n\n if (Object.keys(collection.joins).length > 0) {\n schema.plugin(mongooseAggregatePaginate)\n }\n\n return schema\n}\n"],"names":["mongooseAggregatePaginate","paginate","getBuildQueryPlugin","buildSchema","buildCollectionSchema","collection","config","schemaOptions","schema","fields","draftsEnabled","Boolean","versions","drafts","indexSortableFields","options","minimize","timestamps","Array","isArray","upload","filenameCompoundIndex","indexDefinition","reduce","acc","index","unique","updatedAt","createdAt","plugin","useEstimatedCount","collectionSlug","slug","Object","keys","joins","length"],"mappings":"AAGA,OAAOA,+BAA+B,iCAAgC;AACtE,OAAOC,cAAc,uBAAsB;AAE3C,SAASC,mBAAmB,QAAQ,2BAA0B;AAC9D,SAASC,WAAW,QAAQ,mBAAkB;AAE9C,OAAO,MAAMC,wBAAwB,CACnCC,YACAC,QACAC,gBAAgB,CAAC,CAAC;IAElB,MAAMC,SAASL,YAAYG,QAAQD,WAAWI,MAAM,EAAE;QACpDC,eAAeC,QAAQ,OAAON,YAAYO,aAAa,YAAYP,WAAWO,QAAQ,CAACC,MAAM;QAC7FC,qBAAqBR,OAAOQ,mBAAmB;QAC/CC,SAAS;YACPC,UAAU;YACVC,YAAYZ,WAAWY,UAAU,KAAK;YACtC,GAAGV,aAAa;QAClB;IACF;IAEA,IAAIW,MAAMC,OAAO,CAACd,WAAWe,MAAM,CAACC,qBAAqB,GAAG;QAC1D,MAAMC,kBAAqCjB,WAAWe,MAAM,CAACC,qBAAqB,CAACE,MAAM,CACvF,CAACC,KAAKC;YACJD,GAAG,CAACC,MAAM,GAAG;YACb,OAAOD;QACT,GACA,CAAC;QAGHhB,OAAOiB,KAAK,CAACH,iBAAiB;YAAEI,QAAQ;QAAK;IAC/C;IAEA,IAAIpB,OAAOQ,mBAAmB,IAAIT,WAAWY,UAAU,KAAK,OAAO;QACjET,OAAOiB,KAAK,CAAC;YAAEE,WAAW;QAAE;QAC5BnB,OAAOiB,KAAK,CAAC;YAAEG,WAAW;QAAE;IAC9B;IAEApB,OACGqB,MAAM,CAAuB5B,UAAU;QAAE6B,mBAAmB;IAAK,GACjED,MAAM,CAAC3B,oBAAoB;QAAE6B,gBAAgB1B,WAAW2B,IAAI;IAAC;IAEhE,IAAIC,OAAOC,IAAI,CAAC7B,WAAW8B,KAAK,EAAEC,MAAM,GAAG,GAAG;QAC5C5B,OAAOqB,MAAM,CAAC7B;IAChB;IAEA,OAAOQ;AACT,EAAC"}
@@ -1,4 +1,4 @@
1
- import type { SanitizedConfig } from 'payload/config';
1
+ import type { SanitizedConfig } from 'payload';
2
2
  import type { GlobalModel } from '../types.js';
3
3
  export declare const buildGlobalModel: (config: SanitizedConfig) => GlobalModel | null;
4
4
  //# sourceMappingURL=buildGlobalModel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"buildGlobalModel.d.ts","sourceRoot":"","sources":["../../src/models/buildGlobalModel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAIrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAK9C,eAAO,MAAM,gBAAgB,WAAY,eAAe,KAAG,WAAW,GAAG,IAwBxE,CAAA"}
1
+ {"version":3,"file":"buildGlobalModel.d.ts","sourceRoot":"","sources":["../../src/models/buildGlobalModel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAI9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAK9C,eAAO,MAAM,gBAAgB,WAAY,eAAe,KAAG,WAAW,GAAG,IAwBxE,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import mongoose from 'mongoose';
2
- import getBuildQueryPlugin from '../queries/buildQuery.js';
3
- import buildSchema from './buildSchema.js';
2
+ import { getBuildQueryPlugin } from '../queries/buildQuery.js';
3
+ import { buildSchema } from './buildSchema.js';
4
4
  export const buildGlobalModel = (config)=>{
5
5
  if (config.globals && config.globals.length > 0) {
6
6
  const globalsSchema = new mongoose.Schema({}, {
@@ -1 +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
+ {"version":3,"sources":["../../src/models/buildGlobalModel.ts"],"sourcesContent":["import type { SanitizedConfig } from 'payload'\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"],"mappings":"AAEA,OAAOA,cAAc,WAAU;AAI/B,SAASC,mBAAmB,QAAQ,2BAA0B;AAC9D,SAASC,WAAW,QAAQ,mBAAkB;AAE9C,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,31 +1,5 @@
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
1
  import type { Schema, SchemaOptions } from 'mongoose';
27
- import type { SanitizedConfig } from 'payload/config';
28
- import type { Field } from 'payload/types';
2
+ import type { Field, SanitizedConfig } from 'payload';
29
3
  export type BuildSchemaOptions = {
30
4
  allowIDField?: boolean;
31
5
  disableUnique?: boolean;
@@ -33,6 +7,5 @@ export type BuildSchemaOptions = {
33
7
  indexSortableFields?: boolean;
34
8
  options?: SchemaOptions;
35
9
  };
36
- declare const buildSchema: (config: SanitizedConfig, configFields: Field[], buildSchemaOptions?: BuildSchemaOptions) => Schema;
37
- export default buildSchema;
10
+ export declare const buildSchema: (config: SanitizedConfig, configFields: Field[], buildSchemaOptions?: BuildSchemaOptions) => Schema;
38
11
  //# sourceMappingURL=buildSchema.d.ts.map
@@ -1 +1 @@
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
+ {"version":3,"file":"buildSchema.d.ts","sourceRoot":"","sources":["../../src/models/buildSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,MAAM,EAAE,aAAa,EAAqB,MAAM,UAAU,CAAA;AACtF,OAAO,KAAK,EASV,KAAK,EAWL,eAAe,EAQhB,MAAM,SAAS,CAAA;AAWhB,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;AAoED,eAAO,MAAM,WAAW,WACd,eAAe,gBACT,KAAK,EAAE,uBACD,kBAAkB,KACrC,MAmCF,CAAA"}
@@ -1,8 +1,13 @@
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';
1
+ import mongoose from 'mongoose';
2
+ import { fieldAffectsData, fieldIsLocalized, fieldIsPresentationalOnly, fieldIsVirtual, tabHasName } from 'payload/shared';
3
+ /**
4
+ * get a field's defaultValue only if defined and not dynamic so that it can be set on the field schema
5
+ * @param field
6
+ */ const formatDefaultValue = (field)=>typeof field.defaultValue !== 'undefined' && typeof field.defaultValue !== 'function' ? field.defaultValue : undefined;
3
7
  const formatBaseSchema = (field, buildSchemaOptions)=>{
4
8
  const { disableUnique, draftsEnabled, indexSortableFields } = buildSchemaOptions;
5
9
  const schema = {
10
+ default: formatDefaultValue(field),
6
11
  index: field.index || !disableUnique && field.unique || indexSortableFields || false,
7
12
  required: false,
8
13
  unique: !disableUnique && field.unique || false
@@ -29,7 +34,7 @@ const localizeSchema = (entity, schema, localization)=>{
29
34
  }
30
35
  return schema;
31
36
  };
32
- const buildSchema = (config, configFields, buildSchemaOptions = {})=>{
37
+ export const buildSchema = (config, configFields, buildSchemaOptions = {})=>{
33
38
  const { allowIDField, options } = buildSchemaOptions;
34
39
  let fields = {};
35
40
  let schemaFields = configFields;
@@ -44,6 +49,9 @@ const buildSchema = (config, configFields, buildSchemaOptions = {})=>{
44
49
  }
45
50
  const schema = new mongoose.Schema(fields, options);
46
51
  schemaFields.forEach((field)=>{
52
+ if (fieldIsVirtual(field)) {
53
+ return;
54
+ }
47
55
  if (!fieldIsPresentationalOnly(field)) {
48
56
  const addFieldSchema = fieldToSchemaMap[field.type];
49
57
  if (addFieldSchema) {
@@ -68,8 +76,7 @@ const fieldToSchemaMap = {
68
76
  minimize: false
69
77
  }
70
78
  })
71
- ],
72
- default: undefined
79
+ ]
73
80
  };
74
81
  schema.add({
75
82
  [field.name]: localizeSchema(field, baseSchema, config.localization)
@@ -82,8 +89,7 @@ const fieldToSchemaMap = {
82
89
  _id: false,
83
90
  discriminatorKey: 'blockType'
84
91
  })
85
- ],
86
- default: undefined
92
+ ]
87
93
  };
88
94
  schema.add({
89
95
  [field.name]: localizeSchema(field, fieldSchema, config.localization)
@@ -101,12 +107,10 @@ const fieldToSchemaMap = {
101
107
  });
102
108
  if (field.localized && config.localization) {
103
109
  config.localization.localeCodes.forEach((localeCode)=>{
104
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
105
110
  // @ts-expect-error Possible incorrect typing in mongoose types, this works
106
111
  schema.path(`${field.name}.${localeCode}`).discriminator(blockItem.slug, blockSchema);
107
112
  });
108
113
  } else {
109
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
110
114
  // @ts-expect-error Possible incorrect typing in mongoose types, this works
111
115
  schema.path(field.name).discriminator(blockItem.slug, blockSchema);
112
116
  }
@@ -132,6 +136,9 @@ const fieldToSchemaMap = {
132
136
  },
133
137
  collapsible: (field, schema, config, buildSchemaOptions)=>{
134
138
  field.fields.forEach((subField)=>{
139
+ if (fieldIsVirtual(subField)) {
140
+ return;
141
+ }
135
142
  const addFieldSchema = fieldToSchemaMap[subField.type];
136
143
  if (addFieldSchema) {
137
144
  addFieldSchema(subField, schema, config, buildSchemaOptions);
@@ -203,13 +210,16 @@ const fieldToSchemaMap = {
203
210
  type: String,
204
211
  enum: [
205
212
  'Point'
206
- ]
213
+ ],
214
+ ...typeof field.defaultValue !== 'undefined' && {
215
+ default: 'Point'
216
+ }
207
217
  },
208
218
  coordinates: {
209
219
  type: [
210
220
  Number
211
221
  ],
212
- default: field.defaultValue || undefined,
222
+ default: formatDefaultValue(field),
213
223
  required: false
214
224
  }
215
225
  };
@@ -243,7 +253,9 @@ const fieldToSchemaMap = {
243
253
  ...formatBaseSchema(field, buildSchemaOptions),
244
254
  type: String,
245
255
  enum: field.options.map((option)=>{
246
- if (typeof option === 'object') return option.value;
256
+ if (typeof option === 'object') {
257
+ return option.value;
258
+ }
247
259
  return option;
248
260
  })
249
261
  };
@@ -285,7 +297,7 @@ const fieldToSchemaMap = {
285
297
  type: [
286
298
  localeSchema
287
299
  ],
288
- default: undefined
300
+ default: formatDefaultValue(field)
289
301
  } : localeSchema
290
302
  };
291
303
  }, {}),
@@ -310,7 +322,7 @@ const fieldToSchemaMap = {
310
322
  type: [
311
323
  schemaToReturn
312
324
  ],
313
- default: undefined
325
+ default: formatDefaultValue(field)
314
326
  };
315
327
  }
316
328
  } else {
@@ -324,7 +336,7 @@ const fieldToSchemaMap = {
324
336
  type: [
325
337
  schemaToReturn
326
338
  ],
327
- default: undefined
339
+ default: formatDefaultValue(field)
328
340
  };
329
341
  }
330
342
  }
@@ -343,6 +355,9 @@ const fieldToSchemaMap = {
343
355
  },
344
356
  row: (field, schema, config, buildSchemaOptions)=>{
345
357
  field.fields.forEach((subField)=>{
358
+ if (fieldIsVirtual(subField)) {
359
+ return;
360
+ }
346
361
  const addFieldSchema = fieldToSchemaMap[subField.type];
347
362
  if (addFieldSchema) {
348
363
  addFieldSchema(subField, schema, config, buildSchemaOptions);
@@ -354,7 +369,9 @@ const fieldToSchemaMap = {
354
369
  ...formatBaseSchema(field, buildSchemaOptions),
355
370
  type: String,
356
371
  enum: field.options.map((option)=>{
357
- if (typeof option === 'object') return option.value;
372
+ if (typeof option === 'object') {
373
+ return option.value;
374
+ }
358
375
  return option;
359
376
  })
360
377
  };
@@ -370,6 +387,9 @@ const fieldToSchemaMap = {
370
387
  tabs: (field, schema, config, buildSchemaOptions)=>{
371
388
  field.tabs.forEach((tab)=>{
372
389
  if (tabHasName(tab)) {
390
+ if (fieldIsVirtual(tab)) {
391
+ return;
392
+ }
373
393
  const baseSchema = {
374
394
  type: buildSchema(config, tab.fields, {
375
395
  disableUnique: buildSchemaOptions.disableUnique,
@@ -386,6 +406,9 @@ const fieldToSchemaMap = {
386
406
  });
387
407
  } else {
388
408
  tab.fields.forEach((subField)=>{
409
+ if (fieldIsVirtual(subField)) {
410
+ return;
411
+ }
389
412
  const addFieldSchema = fieldToSchemaMap[subField.type];
390
413
  if (addFieldSchema) {
391
414
  addFieldSchema(subField, schema, config, buildSchemaOptions);
@@ -415,16 +438,86 @@ const fieldToSchemaMap = {
415
438
  });
416
439
  },
417
440
  upload: (field, schema, config, buildSchemaOptions)=>{
418
- const baseSchema = {
419
- ...formatBaseSchema(field, buildSchemaOptions),
420
- type: mongoose.Schema.Types.Mixed,
421
- ref: field.relationTo
422
- };
441
+ const hasManyRelations = Array.isArray(field.relationTo);
442
+ let schemaToReturn = {};
443
+ if (field.localized && config.localization) {
444
+ schemaToReturn = {
445
+ type: config.localization.localeCodes.reduce((locales, locale)=>{
446
+ let localeSchema = {};
447
+ if (hasManyRelations) {
448
+ localeSchema = {
449
+ ...formatBaseSchema(field, buildSchemaOptions),
450
+ _id: false,
451
+ type: mongoose.Schema.Types.Mixed,
452
+ relationTo: {
453
+ type: String,
454
+ enum: field.relationTo
455
+ },
456
+ value: {
457
+ type: mongoose.Schema.Types.Mixed,
458
+ refPath: `${field.name}.${locale}.relationTo`
459
+ }
460
+ };
461
+ } else {
462
+ localeSchema = {
463
+ ...formatBaseSchema(field, buildSchemaOptions),
464
+ type: mongoose.Schema.Types.Mixed,
465
+ ref: field.relationTo
466
+ };
467
+ }
468
+ return {
469
+ ...locales,
470
+ [locale]: field.hasMany ? {
471
+ type: [
472
+ localeSchema
473
+ ],
474
+ default: formatDefaultValue(field)
475
+ } : localeSchema
476
+ };
477
+ }, {}),
478
+ localized: true
479
+ };
480
+ } else if (hasManyRelations) {
481
+ schemaToReturn = {
482
+ ...formatBaseSchema(field, buildSchemaOptions),
483
+ _id: false,
484
+ type: mongoose.Schema.Types.Mixed,
485
+ relationTo: {
486
+ type: String,
487
+ enum: field.relationTo
488
+ },
489
+ value: {
490
+ type: mongoose.Schema.Types.Mixed,
491
+ refPath: `${field.name}.relationTo`
492
+ }
493
+ };
494
+ if (field.hasMany) {
495
+ schemaToReturn = {
496
+ type: [
497
+ schemaToReturn
498
+ ],
499
+ default: formatDefaultValue(field)
500
+ };
501
+ }
502
+ } else {
503
+ schemaToReturn = {
504
+ ...formatBaseSchema(field, buildSchemaOptions),
505
+ type: mongoose.Schema.Types.Mixed,
506
+ ref: field.relationTo
507
+ };
508
+ if (field.hasMany) {
509
+ schemaToReturn = {
510
+ type: [
511
+ schemaToReturn
512
+ ],
513
+ default: formatDefaultValue(field)
514
+ };
515
+ }
516
+ }
423
517
  schema.add({
424
- [field.name]: localizeSchema(field, baseSchema, config.localization)
518
+ [field.name]: schemaToReturn
425
519
  });
426
520
  }
427
521
  };
428
- export default buildSchema;
429
522
 
430
523
  //# sourceMappingURL=buildSchema.js.map
@@ -1 +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":"AAAA,oDAAoD,GACpD,yCAAyC,GACzC,0DAA0D,GA+B1D,OAAOA,cAAc,WAAU;AAC/B,SACEC,gBAAgB,EAChBC,gBAAgB,EAChBC,yBAAyB,EACzBC,UAAU,QACL,gBAAe;AAiBtB,MAAMC,mBAAmB,CAACC,OAA2BC;IACnD,MAAM,EAAEC,aAAa,EAAEC,aAAa,EAAEC,mBAAmB,EAAE,GAAGH;IAC9D,MAAMI,SAAqC;QACzCC,OAAON,MAAMM,KAAK,IAAK,CAACJ,iBAAiBF,MAAMO,MAAM,IAAKH,uBAAuB;QACjFI,UAAU;QACVD,QAAQ,AAAC,CAACL,iBAAiBF,MAAMO,MAAM,IAAK;IAC9C;IAEA,IACEF,OAAOE,MAAM,IACZP,CAAAA,MAAMS,SAAS,IACdN,iBACCR,iBAAiBK,UAChBA,MAAMU,IAAI,KAAK,WACfV,MAAMU,IAAI,KAAK,SACfV,MAAMQ,QAAQ,KAAK,IAAI,GAC3B;QACAH,OAAOM,MAAM,GAAG;IAClB;IAEA,IAAIX,MAAMY,MAAM,EAAE;QAChBP,OAAOO,MAAM,GAAG;IAClB;IAEA,OAAOP;AACT;AAEA,MAAMQ,iBAAiB,CACrBC,QACAT,QACAU;IAEA,IAAInB,iBAAiBkB,WAAWC,gBAAgBC,MAAMC,OAAO,CAACF,aAAaG,OAAO,GAAG;QACnF,OAAO;YACLR,MAAMK,aAAaI,WAAW,CAACC,MAAM,CACnC,CAACC,cAAcC,SAAY,CAAA;oBACzB,GAAGD,YAAY;oBACf,CAACC,OAAO,EAAEjB;gBACZ,CAAA,GACA;gBACEkB,KAAK;YACP;YAEFd,WAAW;QACb;IACF;IACA,OAAOJ;AACT;AAEA,MAAMmB,cAAc,CAClBC,QACAC,cACAzB,qBAAyC,CAAC,CAAC;IAE3C,MAAM,EAAE0B,YAAY,EAAEC,OAAO,EAAE,GAAG3B;IAClC,IAAI4B,SAAS,CAAC;IAEd,IAAIC,eAAeJ;IAEnB,IAAI,CAACC,cAAc;QACjB,MAAMI,UAAUD,aAAaE,IAAI,CAAC,CAAChC,QAAUL,iBAAiBK,UAAUA,MAAMiC,IAAI,KAAK;QACvF,IAAIF,SAAS;YACXF,SAAS;gBACPN,KAAKQ,QAAQrB,IAAI,KAAK,WAAWwB,SAASC;YAC5C;YACAL,eAAeA,aAAaM,MAAM,CAChC,CAACpC,QAAU,CAAEL,CAAAA,iBAAiBK,UAAUA,MAAMiC,IAAI,KAAK,IAAG;QAE9D;IACF;IAEA,MAAM5B,SAAS,IAAIX,SAAS2C,MAAM,CAACR,QAAQD;IAE3CE,aAAaQ,OAAO,CAAC,CAACtC;QACpB,IAAI,CAACH,0BAA0BG,QAAQ;YACrC,MAAMuC,iBAAuCC,gBAAgB,CAACxC,MAAMU,IAAI,CAAC;YAEzE,IAAI6B,gBAAgB;gBAClBA,eAAevC,OAAOK,QAAQoB,QAAQxB;YACxC;QACF;IACF;IAEA,OAAOI;AACT;AAEA,MAAMmC,mBAAyD;IAC7DC,OAAO,CACLzC,OACAK,QACAoB,QACAxB;QAEA,MAAMyC,aAAa;YACjB,GAAG3C,iBAAiBC,OAAOC,mBAAmB;YAC9CS,MAAM;gBACJc,YAAYC,QAAQzB,MAAM6B,MAAM,EAAE;oBAChCF,cAAc;oBACdzB,eAAeD,mBAAmBC,aAAa;oBAC/CC,eAAeF,mBAAmBE,aAAa;oBAC/CyB,SAAS;wBACPL,KAAK;wBACLoB,IAAI;wBACJC,UAAU;oBACZ;gBACF;aACD;YACDC,SAASC;QACX;QAEAzC,OAAO0C,GAAG,CAAC;YACT,CAAC/C,MAAMiC,IAAI,CAAC,EAAEpB,eAAeb,OAAO0C,YAAYjB,OAAOV,YAAY;QACrE;IACF;IACAiC,QAAQ,CACNhD,OACAK,QACAoB,QACAxB;QAEA,MAAMgD,cAAc;YAClBvC,MAAM;gBAAC,IAAIhB,SAAS2C,MAAM,CAAC,CAAC,GAAG;oBAAEd,KAAK;oBAAO2B,kBAAkB;gBAAY;aAAG;YAC9EL,SAASC;QACX;QAEAzC,OAAO0C,GAAG,CAAC;YACT,CAAC/C,MAAMiC,IAAI,CAAC,EAAEpB,eAAeb,OAAOiD,aAAaxB,OAAOV,YAAY;QACtE;QAEAf,MAAMgD,MAAM,CAACV,OAAO,CAAC,CAACa;YACpB,MAAMC,cAAc,IAAI1D,SAAS2C,MAAM,CAAC,CAAC,GAAG;gBAAEd,KAAK;gBAAOoB,IAAI;YAAM;YAEpEQ,UAAUtB,MAAM,CAACS,OAAO,CAAC,CAACe;gBACxB,MAAMd,iBAAuCC,gBAAgB,CAACa,WAAW3C,IAAI,CAAC;gBAC9E,IAAI6B,gBAAgB;oBAClBA,eAAec,YAAYD,aAAa3B,QAAQxB;gBAClD;YACF;YAEA,IAAID,MAAMS,SAAS,IAAIgB,OAAOV,YAAY,EAAE;gBAC1CU,OAAOV,YAAY,CAACI,WAAW,CAACmB,OAAO,CAAC,CAACgB;oBACvC,6DAA6D;oBAC7D,2EAA2E;oBAC3EjD,OAAOkD,IAAI,CAAC,CAAC,EAAEvD,MAAMiC,IAAI,CAAC,CAAC,EAAEqB,WAAW,CAAC,EAAEE,aAAa,CAACL,UAAUM,IAAI,EAAEL;gBAC3E;YACF,OAAO;gBACL,6DAA6D;gBAC7D,2EAA2E;gBAC3E/C,OAAOkD,IAAI,CAACvD,MAAMiC,IAAI,EAAEuB,aAAa,CAACL,UAAUM,IAAI,EAAEL;YACxD;QACF;IACF;IACAM,UAAU,CACR1D,OACAK,QACAoB,QACAxB;QAEA,MAAMyC,aAAa;YAAE,GAAG3C,iBAAiBC,OAAOC,mBAAmB;YAAES,MAAMiD;QAAQ;QAEnFtD,OAAO0C,GAAG,CAAC;YACT,CAAC/C,MAAMiC,IAAI,CAAC,EAAEpB,eAAeb,OAAO0C,YAAYjB,OAAOV,YAAY;QACrE;IACF;IACA6C,MAAM,CACJ5D,OACAK,QACAoB,QACAxB;QAEA,MAAMyC,aAAa;YAAE,GAAG3C,iBAAiBC,OAAOC,mBAAmB;YAAES,MAAMyB;QAAO;QAElF9B,OAAO0C,GAAG,CAAC;YACT,CAAC/C,MAAMiC,IAAI,CAAC,EAAEpB,eAAeb,OAAO0C,YAAYjB,OAAOV,YAAY;QACrE;IACF;IACA8C,aAAa,CACX7D,OACAK,QACAoB,QACAxB;QAEAD,MAAM6B,MAAM,CAACS,OAAO,CAAC,CAACwB;YACpB,MAAMvB,iBAAuCC,gBAAgB,CAACsB,SAASpD,IAAI,CAAC;YAE5E,IAAI6B,gBAAgB;gBAClBA,eAAeuB,UAAUzD,QAAQoB,QAAQxB;YAC3C;QACF;IACF;IACA8D,MAAM,CACJ/D,OACAK,QACAoB,QACAxB;QAEA,MAAMyC,aAAa;YAAE,GAAG3C,iBAAiBC,OAAOC,mBAAmB;YAAES,MAAMsD;QAAK;QAEhF3D,OAAO0C,GAAG,CAAC;YACT,CAAC/C,MAAMiC,IAAI,CAAC,EAAEpB,eAAeb,OAAO0C,YAAYjB,OAAOV,YAAY;QACrE;IACF;IACAkD,OAAO,CACLjE,OACAK,QACAoB,QACAxB;QAEA,MAAMyC,aAAa;YAAE,GAAG3C,iBAAiBC,OAAOC,mBAAmB;YAAES,MAAMyB;QAAO;QAElF9B,OAAO0C,GAAG,CAAC;YACT,CAAC/C,MAAMiC,IAAI,CAAC,EAAEpB,eAAeb,OAAO0C,YAAYjB,OAAOV,YAAY;QACrE;IACF;IACAmD,OAAO,CACLlE,OACAK,QACAoB,QACAxB;QAEA,MAAMkE,sBAAsBpE,iBAAiBC,OAAOC;QAEpD,kEAAkE;QAClE,MAAMG,sBACJH,mBAAmBG,mBAAmB,IACtCJ,MAAMiC,IAAI,KAAK,aACfhC,mBAAmBE,aAAa;QAElC,MAAMuC,aAAa;YACjB,GAAGyB,mBAAmB;YACtBzD,MAAMc,YAAYC,QAAQzB,MAAM6B,MAAM,EAAE;gBACtC3B,eAAeD,mBAAmBC,aAAa;gBAC/CC,eAAeF,mBAAmBE,aAAa;gBAC/CC;gBACAwB,SAAS;oBACPL,KAAK;oBACLoB,IAAI;oBACJC,UAAU;gBACZ;YACF;QACF;QAEAvC,OAAO0C,GAAG,CAAC;YACT,CAAC/C,MAAMiC,IAAI,CAAC,EAAEpB,eAAeb,OAAO0C,YAAYjB,OAAOV,YAAY;QACrE;IACF;IACAqD,MAAM,CACJpE,OACAK,QACAoB,QACAxB;QAEA,MAAMyC,aAAa;YACjB,GAAG3C,iBAAiBC,OAAOC,mBAAmB;YAC9CS,MAAMhB,SAAS2C,MAAM,CAACgC,KAAK,CAACC,KAAK;QACnC;QAEAjE,OAAO0C,GAAG,CAAC;YACT,CAAC/C,MAAMiC,IAAI,CAAC,EAAEpB,eAAeb,OAAO0C,YAAYjB,OAAOV,YAAY;QACrE;IACF;IACAwD,QAAQ,CACNvE,OACAK,QACAoB,QACAxB;QAEA,MAAMyC,aAAa;YACjB,GAAG3C,iBAAiBC,OAAOC,mBAAmB;YAC9CS,MAAMV,MAAMwE,OAAO,GAAG;gBAACtC;aAAO,GAAGA;QACnC;QAEA7B,OAAO0C,GAAG,CAAC;YACT,CAAC/C,MAAMiC,IAAI,CAAC,EAAEpB,eAAeb,OAAO0C,YAAYjB,OAAOV,YAAY;QACrE;IACF;IACA0D,OAAO,CACLzE,OACAK,QACAoB,QACAxB;QAEA,MAAMyC,aAAyC;YAC7ChC,MAAM;gBACJA,MAAMyB;gBACNuC,MAAM;oBAAC;iBAAQ;YACjB;YACAC,aAAa;gBACXjE,MAAM;oBAACwB;iBAAO;gBACdW,SAAS7C,MAAM4E,YAAY,IAAI9B;gBAC/BtC,UAAU;YACZ;QACF;QACA,IAAIP,mBAAmBC,aAAa,IAAIF,MAAMO,MAAM,IAAIP,MAAMS,SAAS,EAAE;YACvEiC,WAAWiC,WAAW,CAAChE,MAAM,GAAG;QAClC;QAEAN,OAAO0C,GAAG,CAAC;YACT,CAAC/C,MAAMiC,IAAI,CAAC,EAAEpB,eAAeb,OAAO0C,YAAYjB,OAAOV,YAAY;QACrE;QAEA,IAAIf,MAAMM,KAAK,KAAK,QAAQN,MAAMM,KAAK,KAAKwC,WAAW;YACrD,MAAM+B,eAA6B,CAAC;YACpC,IAAI,CAAC5E,mBAAmBC,aAAa,IAAIF,MAAMO,MAAM,EAAE;gBACrDsE,aAAalE,MAAM,GAAG;gBACtBkE,aAAatE,MAAM,GAAG;YACxB;YACA,IAAIP,MAAMS,SAAS,IAAIgB,OAAOV,YAAY,EAAE;gBAC1CU,OAAOV,YAAY,CAACG,OAAO,CAACoB,OAAO,CAAC,CAAChB;oBACnCjB,OAAOC,KAAK,CAAC;wBAAE,CAAC,CAAC,EAAEN,MAAMiC,IAAI,CAAC,CAAC,EAAEX,OAAOsC,IAAI,CAAC,CAAC,CAAC,EAAE;oBAAW,GAAGiB;gBACjE;YACF,OAAO;gBACLxE,OAAOC,KAAK,CAAC;oBAAE,CAACN,MAAMiC,IAAI,CAAC,EAAE;gBAAW,GAAG4C;YAC7C;QACF;IACF;IACAC,OAAO,CACL9E,OACAK,QACAoB,QACAxB;QAEA,MAAMyC,aAAa;YACjB,GAAG3C,iBAAiBC,OAAOC,mBAAmB;YAC9CS,MAAMyB;YACNuC,MAAM1E,MAAM4B,OAAO,CAACmD,GAAG,CAAC,CAACC;gBACvB,IAAI,OAAOA,WAAW,UAAU,OAAOA,OAAOC,KAAK;gBACnD,OAAOD;YACT;QACF;QAEA3E,OAAO0C,GAAG,CAAC;YACT,CAAC/C,MAAMiC,IAAI,CAAC,EAAEpB,eAAeb,OAAO0C,YAAYjB,OAAOV,YAAY;QACrE;IACF;IACAmE,cAAc,CACZlF,OACAK,QACAoB,QACAxB;QAEA,MAAMkF,mBAAmBnE,MAAMC,OAAO,CAACjB,MAAMoF,UAAU;QACvD,IAAIC,iBAAyC,CAAC;QAE9C,IAAIrF,MAAMS,SAAS,IAAIgB,OAAOV,YAAY,EAAE;YAC1CsE,iBAAiB;gBACf3E,MAAMe,OAAOV,YAAY,CAACI,WAAW,CAACC,MAAM,CAAC,CAACF,SAASI;oBACrD,IAAID,eAAuC,CAAC;oBAE5C,IAAI8D,kBAAkB;wBACpB9D,eAAe;4BACb,GAAGtB,iBAAiBC,OAAOC,mBAAmB;4BAC9CsB,KAAK;4BACLb,MAAMhB,SAAS2C,MAAM,CAACgC,KAAK,CAACC,KAAK;4BACjCc,YAAY;gCAAE1E,MAAMyB;gCAAQuC,MAAM1E,MAAMoF,UAAU;4BAAC;4BACnDH,OAAO;gCACLvE,MAAMhB,SAAS2C,MAAM,CAACgC,KAAK,CAACC,KAAK;gCACjCgB,SAAS,CAAC,EAAEtF,MAAMiC,IAAI,CAAC,CAAC,EAAEX,OAAO,WAAW,CAAC;4BAC/C;wBACF;oBACF,OAAO;wBACLD,eAAe;4BACb,GAAGtB,iBAAiBC,OAAOC,mBAAmB;4BAC9CS,MAAMhB,SAAS2C,MAAM,CAACgC,KAAK,CAACC,KAAK;4BACjCiB,KAAKvF,MAAMoF,UAAU;wBACvB;oBACF;oBAEA,OAAO;wBACL,GAAGlE,OAAO;wBACV,CAACI,OAAO,EAAEtB,MAAMwE,OAAO,GAAG;4BAAE9D,MAAM;gCAACW;6BAAa;4BAAEwB,SAASC;wBAAU,IAAIzB;oBAC3E;gBACF,GAAG,CAAC;gBACJZ,WAAW;YACb;QACF,OAAO,IAAI0E,kBAAkB;YAC3BE,iBAAiB;gBACf,GAAGtF,iBAAiBC,OAAOC,mBAAmB;gBAC9CsB,KAAK;gBACLb,MAAMhB,SAAS2C,MAAM,CAACgC,KAAK,CAACC,KAAK;gBACjCc,YAAY;oBAAE1E,MAAMyB;oBAAQuC,MAAM1E,MAAMoF,UAAU;gBAAC;gBACnDH,OAAO;oBACLvE,MAAMhB,SAAS2C,MAAM,CAACgC,KAAK,CAACC,KAAK;oBACjCgB,SAAS,CAAC,EAAEtF,MAAMiC,IAAI,CAAC,WAAW,CAAC;gBACrC;YACF;YAEA,IAAIjC,MAAMwE,OAAO,EAAE;gBACjBa,iBAAiB;oBACf3E,MAAM;wBAAC2E;qBAAe;oBACtBxC,SAASC;gBACX;YACF;QACF,OAAO;YACLuC,iBAAiB;gBACf,GAAGtF,iBAAiBC,OAAOC,mBAAmB;gBAC9CS,MAAMhB,SAAS2C,MAAM,CAACgC,KAAK,CAACC,KAAK;gBACjCiB,KAAKvF,MAAMoF,UAAU;YACvB;YAEA,IAAIpF,MAAMwE,OAAO,EAAE;gBACjBa,iBAAiB;oBACf3E,MAAM;wBAAC2E;qBAAe;oBACtBxC,SAASC;gBACX;YACF;QACF;QAEAzC,OAAO0C,GAAG,CAAC;YACT,CAAC/C,MAAMiC,IAAI,CAAC,EAAEoD;QAChB;IACF;IACAG,UAAU,CACRxF,OACAK,QACAoB,QACAxB;QAEA,MAAMyC,aAAa;YACjB,GAAG3C,iBAAiBC,OAAOC,mBAAmB;YAC9CS,MAAMhB,SAAS2C,MAAM,CAACgC,KAAK,CAACC,KAAK;QACnC;QAEAjE,OAAO0C,GAAG,CAAC;YACT,CAAC/C,MAAMiC,IAAI,CAAC,EAAEpB,eAAeb,OAAO0C,YAAYjB,OAAOV,YAAY;QACrE;IACF;IACA0E,KAAK,CACHzF,OACAK,QACAoB,QACAxB;QAEAD,MAAM6B,MAAM,CAACS,OAAO,CAAC,CAACwB;YACpB,MAAMvB,iBAAuCC,gBAAgB,CAACsB,SAASpD,IAAI,CAAC;YAE5E,IAAI6B,gBAAgB;gBAClBA,eAAeuB,UAAUzD,QAAQoB,QAAQxB;YAC3C;QACF;IACF;IACAyF,QAAQ,CACN1F,OACAK,QACAoB,QACAxB;QAEA,MAAMyC,aAAa;YACjB,GAAG3C,iBAAiBC,OAAOC,mBAAmB;YAC9CS,MAAMyB;YACNuC,MAAM1E,MAAM4B,OAAO,CAACmD,GAAG,CAAC,CAACC;gBACvB,IAAI,OAAOA,WAAW,UAAU,OAAOA,OAAOC,KAAK;gBACnD,OAAOD;YACT;QACF;QAEA,IAAI/E,mBAAmBE,aAAa,IAAI,CAACH,MAAMQ,QAAQ,EAAE;YACvDkC,WAAWgC,IAAI,CAACiB,IAAI,CAAC;QACvB;QAEAtF,OAAO0C,GAAG,CAAC;YACT,CAAC/C,MAAMiC,IAAI,CAAC,EAAEpB,eACZb,OACAA,MAAMwE,OAAO,GAAG;gBAAC9B;aAAW,GAAGA,YAC/BjB,OAAOV,YAAY;QAEvB;IACF;IACA6E,MAAM,CACJ5F,OACAK,QACAoB,QACAxB;QAEAD,MAAM4F,IAAI,CAACtD,OAAO,CAAC,CAACuD;YAClB,IAAI/F,WAAW+F,MAAM;gBACnB,MAAMnD,aAAa;oBACjBhC,MAAMc,YAAYC,QAAQoE,IAAIhE,MAAM,EAAE;wBACpC3B,eAAeD,mBAAmBC,aAAa;wBAC/CC,eAAeF,mBAAmBE,aAAa;wBAC/CyB,SAAS;4BACPL,KAAK;4BACLoB,IAAI;4BACJC,UAAU;wBACZ;oBACF;gBACF;gBAEAvC,OAAO0C,GAAG,CAAC;oBACT,CAAC8C,IAAI5D,IAAI,CAAC,EAAEpB,eAAegF,KAAKnD,YAAYjB,OAAOV,YAAY;gBACjE;YACF,OAAO;gBACL8E,IAAIhE,MAAM,CAACS,OAAO,CAAC,CAACwB;oBAClB,MAAMvB,iBAAuCC,gBAAgB,CAACsB,SAASpD,IAAI,CAAC;oBAE5E,IAAI6B,gBAAgB;wBAClBA,eAAeuB,UAAUzD,QAAQoB,QAAQxB;oBAC3C;gBACF;YACF;QACF;IACF;IACA6F,MAAM,CACJ9F,OACAK,QACAoB,QACAxB;QAEA,MAAMyC,aAAa;YACjB,GAAG3C,iBAAiBC,OAAOC,mBAAmB;YAC9CS,MAAMV,MAAMwE,OAAO,GAAG;gBAACrC;aAAO,GAAGA;QACnC;QAEA9B,OAAO0C,GAAG,CAAC;YACT,CAAC/C,MAAMiC,IAAI,CAAC,EAAEpB,eAAeb,OAAO0C,YAAYjB,OAAOV,YAAY;QACrE;IACF;IACAgF,UAAU,CACR/F,OACAK,QACAoB,QACAxB;QAEA,MAAMyC,aAAa;YAAE,GAAG3C,iBAAiBC,OAAOC,mBAAmB;YAAES,MAAMyB;QAAO;QAElF9B,OAAO0C,GAAG,CAAC;YACT,CAAC/C,MAAMiC,IAAI,CAAC,EAAEpB,eAAeb,OAAO0C,YAAYjB,OAAOV,YAAY;QACrE;IACF;IACAiF,QAAQ,CACNhG,OACAK,QACAoB,QACAxB;QAEA,MAAMyC,aAAa;YACjB,GAAG3C,iBAAiBC,OAAOC,mBAAmB;YAC9CS,MAAMhB,SAAS2C,MAAM,CAACgC,KAAK,CAACC,KAAK;YACjCiB,KAAKvF,MAAMoF,UAAU;QACvB;QAEA/E,OAAO0C,GAAG,CAAC;YACT,CAAC/C,MAAMiC,IAAI,CAAC,EAAEpB,eAAeb,OAAO0C,YAAYjB,OAAOV,YAAY;QACrE;IACF;AACF;AAEA,eAAeS,YAAW"}
1
+ {"version":3,"sources":["../../src/models/buildSchema.ts"],"sourcesContent":["import type { IndexOptions, Schema, SchemaOptions, SchemaTypeOptions } from 'mongoose'\nimport type {\n ArrayField,\n Block,\n BlocksField,\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 SanitizedConfig,\n SanitizedLocalizationConfig,\n SelectField,\n Tab,\n TabsField,\n TextareaField,\n TextField,\n UploadField,\n} from 'payload'\n\nimport mongoose from 'mongoose'\nimport {\n fieldAffectsData,\n fieldIsLocalized,\n fieldIsPresentationalOnly,\n fieldIsVirtual,\n tabHasName,\n} from 'payload/shared'\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\n/**\n * get a field's defaultValue only if defined and not dynamic so that it can be set on the field schema\n * @param field\n */\nconst formatDefaultValue = (field: FieldAffectingData) =>\n typeof field.defaultValue !== 'undefined' && typeof field.defaultValue !== 'function'\n ? field.defaultValue\n : undefined\n\nconst formatBaseSchema = (field: FieldAffectingData, buildSchemaOptions: BuildSchemaOptions) => {\n const { disableUnique, draftsEnabled, indexSortableFields } = buildSchemaOptions\n const schema: SchemaTypeOptions<unknown> = {\n default: formatDefaultValue(field),\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: false | SanitizedLocalizationConfig,\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\nexport const 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 (fieldIsVirtual(field)) {\n return\n }\n\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 }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, config.localization),\n })\n },\n blocks: (\n field: BlocksField,\n schema: Schema,\n config: SanitizedConfig,\n buildSchemaOptions: BuildSchemaOptions,\n ): void => {\n const fieldSchema = {\n type: [new mongoose.Schema({}, { _id: false, discriminatorKey: 'blockType' })],\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 // @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 // @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 if (fieldIsVirtual(subField)) {\n return\n }\n\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 ...(typeof field.defaultValue !== 'undefined' && {\n default: 'Point',\n }),\n },\n coordinates: {\n type: [Number],\n default: formatDefaultValue(field),\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') {\n return option.value\n }\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\n ? { type: [localeSchema], default: formatDefaultValue(field) }\n : 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: formatDefaultValue(field),\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: formatDefaultValue(field),\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 if (fieldIsVirtual(subField)) {\n return\n }\n\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') {\n return option.value\n }\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 if (fieldIsVirtual(tab)) {\n return\n }\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 if (fieldIsVirtual(subField)) {\n return\n }\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 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\n ? { type: [localeSchema], default: formatDefaultValue(field) }\n : 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: formatDefaultValue(field),\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: formatDefaultValue(field),\n }\n }\n }\n\n schema.add({\n [field.name]: schemaToReturn,\n })\n },\n}\n"],"names":["mongoose","fieldAffectsData","fieldIsLocalized","fieldIsPresentationalOnly","fieldIsVirtual","tabHasName","formatDefaultValue","field","defaultValue","undefined","formatBaseSchema","buildSchemaOptions","disableUnique","draftsEnabled","indexSortableFields","schema","default","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","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","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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"}
@@ -0,0 +1,6 @@
1
+ import type { PayloadRequest } from 'payload';
2
+ export declare function migrateRelationshipsV2_V3({ batchSize, req, }: {
3
+ batchSize: number;
4
+ req: PayloadRequest;
5
+ }): Promise<void>;
6
+ //# sourceMappingURL=migrateRelationshipsV2_V3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrateRelationshipsV2_V3.d.ts","sourceRoot":"","sources":["../../src/predefinedMigrations/migrateRelationshipsV2_V3.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAS,cAAc,EAAmB,MAAM,SAAS,CAAA;AAmGrE,wBAAsB,yBAAyB,CAAC,EAC9C,SAAS,EACT,GAAG,GACJ,EAAE;IACD,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,cAAc,CAAA;CACpB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4EhB"}