@payloadcms/db-mongodb 3.26.0-canary.bbb3083 → 3.26.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 (164) hide show
  1. package/dist/connect.d.ts.map +1 -1
  2. package/dist/connect.js +5 -1
  3. package/dist/connect.js.map +1 -1
  4. package/dist/count.d.ts.map +1 -1
  5. package/dist/count.js +8 -4
  6. package/dist/count.js.map +1 -1
  7. package/dist/countGlobalVersions.d.ts.map +1 -1
  8. package/dist/countGlobalVersions.js +8 -3
  9. package/dist/countGlobalVersions.js.map +1 -1
  10. package/dist/countVersions.d.ts.map +1 -1
  11. package/dist/countVersions.js +8 -3
  12. package/dist/countVersions.js.map +1 -1
  13. package/dist/create.d.ts.map +1 -1
  14. package/dist/create.js +13 -6
  15. package/dist/create.js.map +1 -1
  16. package/dist/createGlobal.d.ts +1 -1
  17. package/dist/createGlobal.d.ts.map +1 -1
  18. package/dist/createGlobal.js +12 -5
  19. package/dist/createGlobal.js.map +1 -1
  20. package/dist/createGlobalVersion.d.ts.map +1 -1
  21. package/dist/createGlobalVersion.js +13 -5
  22. package/dist/createGlobalVersion.js.map +1 -1
  23. package/dist/createMigration.d.ts.map +1 -1
  24. package/dist/createMigration.js.map +1 -1
  25. package/dist/createVersion.d.ts.map +1 -1
  26. package/dist/createVersion.js +13 -5
  27. package/dist/createVersion.js.map +1 -1
  28. package/dist/deleteMany.d.ts +1 -1
  29. package/dist/deleteMany.d.ts.map +1 -1
  30. package/dist/deleteMany.js +8 -4
  31. package/dist/deleteMany.js.map +1 -1
  32. package/dist/deleteOne.d.ts.map +1 -1
  33. package/dist/deleteOne.js +14 -6
  34. package/dist/deleteOne.js.map +1 -1
  35. package/dist/deleteVersions.d.ts.map +1 -1
  36. package/dist/deleteVersions.js +9 -4
  37. package/dist/deleteVersions.js.map +1 -1
  38. package/dist/find.d.ts.map +1 -1
  39. package/dist/find.js +25 -8
  40. package/dist/find.js.map +1 -1
  41. package/dist/findGlobal.d.ts.map +1 -1
  42. package/dist/findGlobal.js +8 -5
  43. package/dist/findGlobal.js.map +1 -1
  44. package/dist/findGlobalVersions.d.ts.map +1 -1
  45. package/dist/findGlobalVersions.js +8 -4
  46. package/dist/findGlobalVersions.js.map +1 -1
  47. package/dist/findOne.d.ts +1 -1
  48. package/dist/findOne.d.ts.map +1 -1
  49. package/dist/findOne.js +18 -8
  50. package/dist/findOne.js.map +1 -1
  51. package/dist/findVersions.d.ts.map +1 -1
  52. package/dist/findVersions.js +8 -4
  53. package/dist/findVersions.js.map +1 -1
  54. package/dist/index.d.ts +6 -7
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.js +6 -1
  57. package/dist/index.js.map +1 -1
  58. package/dist/init.d.ts.map +1 -1
  59. package/dist/init.js +1 -5
  60. package/dist/init.js.map +1 -1
  61. package/dist/migrateFresh.d.ts.map +1 -1
  62. package/dist/migrateFresh.js.map +1 -1
  63. package/dist/models/buildCollectionSchema.d.ts.map +1 -1
  64. package/dist/models/buildCollectionSchema.js +0 -4
  65. package/dist/models/buildCollectionSchema.js.map +1 -1
  66. package/dist/models/buildSchema.d.ts.map +1 -1
  67. package/dist/models/buildSchema.js +545 -515
  68. package/dist/models/buildSchema.js.map +1 -1
  69. package/dist/predefinedMigrations/migrateRelationshipsV2_V3.d.ts.map +1 -1
  70. package/dist/predefinedMigrations/migrateRelationshipsV2_V3.js +21 -8
  71. package/dist/predefinedMigrations/migrateRelationshipsV2_V3.js.map +1 -1
  72. package/dist/predefinedMigrations/migrateVersionsV1_V2.d.ts.map +1 -1
  73. package/dist/predefinedMigrations/migrateVersionsV1_V2.js +20 -8
  74. package/dist/predefinedMigrations/migrateVersionsV1_V2.js.map +1 -1
  75. package/dist/queries/buildSearchParams.d.ts +1 -1
  76. package/dist/queries/buildSearchParams.d.ts.map +1 -1
  77. package/dist/queries/buildSearchParams.js +42 -29
  78. package/dist/queries/buildSearchParams.js.map +1 -1
  79. package/dist/queries/buildSortParam.d.ts +2 -3
  80. package/dist/queries/buildSortParam.d.ts.map +1 -1
  81. package/dist/queries/buildSortParam.js +1 -1
  82. package/dist/queries/buildSortParam.js.map +1 -1
  83. package/dist/queries/getBuildQueryPlugin.d.ts.map +1 -1
  84. package/dist/queries/getBuildQueryPlugin.js +15 -8
  85. package/dist/queries/getBuildQueryPlugin.js.map +1 -1
  86. package/dist/queries/getLocalizedSortProperty.d.ts +1 -1
  87. package/dist/queries/getLocalizedSortProperty.d.ts.map +1 -1
  88. package/dist/queries/getLocalizedSortProperty.js +11 -6
  89. package/dist/queries/getLocalizedSortProperty.js.map +1 -1
  90. package/dist/queries/getLocalizedSortProperty.spec.js +8 -0
  91. package/dist/queries/getLocalizedSortProperty.spec.js.map +1 -1
  92. package/dist/queries/operatorMap.d.ts +1 -0
  93. package/dist/queries/operatorMap.d.ts.map +1 -1
  94. package/dist/queries/operatorMap.js.map +1 -1
  95. package/dist/queries/parseParams.d.ts +1 -1
  96. package/dist/queries/parseParams.d.ts.map +1 -1
  97. package/dist/queries/parseParams.js +3 -3
  98. package/dist/queries/parseParams.js.map +1 -1
  99. package/dist/queries/sanitizeQueryValue.d.ts +1 -1
  100. package/dist/queries/sanitizeQueryValue.d.ts.map +1 -1
  101. package/dist/queries/sanitizeQueryValue.js +30 -26
  102. package/dist/queries/sanitizeQueryValue.js.map +1 -1
  103. package/dist/queryDrafts.d.ts.map +1 -1
  104. package/dist/queryDrafts.js +26 -8
  105. package/dist/queryDrafts.js.map +1 -1
  106. package/dist/transactions/beginTransaction.d.ts.map +1 -1
  107. package/dist/transactions/beginTransaction.js +4 -2
  108. package/dist/transactions/beginTransaction.js.map +1 -1
  109. package/dist/transactions/commitTransaction.d.ts.map +1 -1
  110. package/dist/transactions/commitTransaction.js +1 -1
  111. package/dist/transactions/commitTransaction.js.map +1 -1
  112. package/dist/transactions/rollbackTransaction.d.ts.map +1 -1
  113. package/dist/transactions/rollbackTransaction.js +3 -3
  114. package/dist/transactions/rollbackTransaction.js.map +1 -1
  115. package/dist/types.d.ts +2 -2
  116. package/dist/types.d.ts.map +1 -1
  117. package/dist/types.js.map +1 -1
  118. package/dist/updateGlobal.d.ts.map +1 -1
  119. package/dist/updateGlobal.js +17 -7
  120. package/dist/updateGlobal.js.map +1 -1
  121. package/dist/updateGlobalVersion.d.ts +1 -1
  122. package/dist/updateGlobalVersion.d.ts.map +1 -1
  123. package/dist/updateGlobalVersion.js +14 -6
  124. package/dist/updateGlobalVersion.js.map +1 -1
  125. package/dist/updateMany.d.ts +3 -0
  126. package/dist/updateMany.d.ts.map +1 -0
  127. package/dist/updateMany.js +75 -0
  128. package/dist/updateMany.js.map +1 -0
  129. package/dist/updateOne.d.ts.map +1 -1
  130. package/dist/updateOne.js +17 -8
  131. package/dist/updateOne.js.map +1 -1
  132. package/dist/updateVersion.d.ts.map +1 -1
  133. package/dist/updateVersion.js +14 -5
  134. package/dist/updateVersion.js.map +1 -1
  135. package/dist/upsert.d.ts.map +1 -1
  136. package/dist/upsert.js +2 -1
  137. package/dist/upsert.js.map +1 -1
  138. package/dist/utilities/aggregatePaginate.d.ts +19 -0
  139. package/dist/utilities/aggregatePaginate.d.ts.map +1 -0
  140. package/dist/utilities/aggregatePaginate.js +78 -0
  141. package/dist/utilities/aggregatePaginate.js.map +1 -0
  142. package/dist/utilities/buildJoinAggregation.d.ts +5 -6
  143. package/dist/utilities/buildJoinAggregation.d.ts.map +1 -1
  144. package/dist/utilities/buildJoinAggregation.js +39 -36
  145. package/dist/utilities/buildJoinAggregation.js.map +1 -1
  146. package/dist/utilities/buildProjectionFromSelect.d.ts.map +1 -1
  147. package/dist/utilities/buildProjectionFromSelect.js +8 -4
  148. package/dist/utilities/buildProjectionFromSelect.js.map +1 -1
  149. package/dist/utilities/getDBName.d.ts +1 -1
  150. package/dist/utilities/getDBName.d.ts.map +1 -1
  151. package/dist/utilities/getDBName.js +6 -2
  152. package/dist/utilities/getDBName.js.map +1 -1
  153. package/dist/utilities/getEntity.d.ts +33 -0
  154. package/dist/utilities/getEntity.d.ts.map +1 -0
  155. package/dist/utilities/getEntity.js +49 -0
  156. package/dist/utilities/getEntity.js.map +1 -0
  157. package/dist/utilities/handleError.d.ts +1 -1
  158. package/dist/utilities/handleError.d.ts.map +1 -1
  159. package/dist/utilities/handleError.js +3 -2
  160. package/dist/utilities/handleError.js.map +1 -1
  161. package/dist/utilities/transform.d.ts.map +1 -1
  162. package/dist/utilities/transform.js +10 -9
  163. package/dist/utilities/transform.js.map +1 -1
  164. package/package.json +5 -4
package/dist/deleteOne.js CHANGED
@@ -1,23 +1,31 @@
1
1
  import { buildQuery } from './queries/buildQuery.js';
2
2
  import { buildProjectionFromSelect } from './utilities/buildProjectionFromSelect.js';
3
+ import { getCollection } from './utilities/getEntity.js';
3
4
  import { getSession } from './utilities/getSession.js';
4
5
  import { transform } from './utilities/transform.js';
5
- export const deleteOne = async function deleteOne({ collection, req, select, where }) {
6
- const Model = this.collections[collection];
6
+ export const deleteOne = async function deleteOne({ collection: collectionSlug, req, returning, select, where }) {
7
+ const { collectionConfig, Model } = getCollection({
8
+ adapter: this,
9
+ collectionSlug
10
+ });
7
11
  const options = {
8
12
  projection: buildProjectionFromSelect({
9
13
  adapter: this,
10
- fields: this.payload.collections[collection].config.flattenedFields,
14
+ fields: collectionConfig.flattenedFields,
11
15
  select
12
16
  }),
13
17
  session: await getSession(this, req)
14
18
  };
15
19
  const query = await buildQuery({
16
20
  adapter: this,
17
- collectionSlug: collection,
18
- fields: this.payload.collections[collection].config.flattenedFields,
21
+ collectionSlug,
22
+ fields: collectionConfig.flattenedFields,
19
23
  where
20
24
  });
25
+ if (returning === false) {
26
+ await Model.deleteOne(query, options)?.lean();
27
+ return null;
28
+ }
21
29
  const doc = await Model.findOneAndDelete(query, options)?.lean();
22
30
  if (!doc) {
23
31
  return null;
@@ -25,7 +33,7 @@ export const deleteOne = async function deleteOne({ collection, req, select, whe
25
33
  transform({
26
34
  adapter: this,
27
35
  data: doc,
28
- fields: this.payload.collections[collection].config.fields,
36
+ fields: collectionConfig.fields,
29
37
  operation: 'read'
30
38
  });
31
39
  return doc;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/deleteOne.ts"],"sourcesContent":["import type { QueryOptions } from 'mongoose'\nimport type { DeleteOne } from 'payload'\n\nimport type { MongooseAdapter } from './index.js'\n\nimport { buildQuery } from './queries/buildQuery.js'\nimport { buildProjectionFromSelect } from './utilities/buildProjectionFromSelect.js'\nimport { getSession } from './utilities/getSession.js'\nimport { transform } from './utilities/transform.js'\n\nexport const deleteOne: DeleteOne = async function deleteOne(\n this: MongooseAdapter,\n { collection, req, select, where },\n) {\n const Model = this.collections[collection]\n const options: QueryOptions = {\n projection: buildProjectionFromSelect({\n adapter: this,\n fields: this.payload.collections[collection].config.flattenedFields,\n select,\n }),\n session: await getSession(this, req),\n }\n\n const query = await buildQuery({\n adapter: this,\n collectionSlug: collection,\n fields: this.payload.collections[collection].config.flattenedFields,\n where,\n })\n\n const doc = await Model.findOneAndDelete(query, options)?.lean()\n\n if (!doc) {\n return null\n }\n\n transform({\n adapter: this,\n data: doc,\n fields: this.payload.collections[collection].config.fields,\n operation: 'read',\n })\n\n return doc\n}\n"],"names":["buildQuery","buildProjectionFromSelect","getSession","transform","deleteOne","collection","req","select","where","Model","collections","options","projection","adapter","fields","payload","config","flattenedFields","session","query","collectionSlug","doc","findOneAndDelete","lean","data","operation"],"mappings":"AAKA,SAASA,UAAU,QAAQ,0BAAyB;AACpD,SAASC,yBAAyB,QAAQ,2CAA0C;AACpF,SAASC,UAAU,QAAQ,4BAA2B;AACtD,SAASC,SAAS,QAAQ,2BAA0B;AAEpD,OAAO,MAAMC,YAAuB,eAAeA,UAEjD,EAAEC,UAAU,EAAEC,GAAG,EAAEC,MAAM,EAAEC,KAAK,EAAE;IAElC,MAAMC,QAAQ,IAAI,CAACC,WAAW,CAACL,WAAW;IAC1C,MAAMM,UAAwB;QAC5BC,YAAYX,0BAA0B;YACpCY,SAAS,IAAI;YACbC,QAAQ,IAAI,CAACC,OAAO,CAACL,WAAW,CAACL,WAAW,CAACW,MAAM,CAACC,eAAe;YACnEV;QACF;QACAW,SAAS,MAAMhB,WAAW,IAAI,EAAEI;IAClC;IAEA,MAAMa,QAAQ,MAAMnB,WAAW;QAC7Ba,SAAS,IAAI;QACbO,gBAAgBf;QAChBS,QAAQ,IAAI,CAACC,OAAO,CAACL,WAAW,CAACL,WAAW,CAACW,MAAM,CAACC,eAAe;QACnET;IACF;IAEA,MAAMa,MAAM,MAAMZ,MAAMa,gBAAgB,CAACH,OAAOR,UAAUY;IAE1D,IAAI,CAACF,KAAK;QACR,OAAO;IACT;IAEAlB,UAAU;QACRU,SAAS,IAAI;QACbW,MAAMH;QACNP,QAAQ,IAAI,CAACC,OAAO,CAACL,WAAW,CAACL,WAAW,CAACW,MAAM,CAACF,MAAM;QAC1DW,WAAW;IACb;IAEA,OAAOJ;AACT,EAAC"}
1
+ {"version":3,"sources":["../src/deleteOne.ts"],"sourcesContent":["import type { MongooseUpdateQueryOptions } from 'mongoose'\nimport type { DeleteOne } from 'payload'\n\nimport type { MongooseAdapter } from './index.js'\n\nimport { buildQuery } from './queries/buildQuery.js'\nimport { buildProjectionFromSelect } from './utilities/buildProjectionFromSelect.js'\nimport { getCollection } from './utilities/getEntity.js'\nimport { getSession } from './utilities/getSession.js'\nimport { transform } from './utilities/transform.js'\n\nexport const deleteOne: DeleteOne = async function deleteOne(\n this: MongooseAdapter,\n { collection: collectionSlug, req, returning, select, where },\n) {\n const { collectionConfig, Model } = getCollection({ adapter: this, collectionSlug })\n\n const options: MongooseUpdateQueryOptions = {\n projection: buildProjectionFromSelect({\n adapter: this,\n fields: collectionConfig.flattenedFields,\n select,\n }),\n session: await getSession(this, req),\n }\n\n const query = await buildQuery({\n adapter: this,\n collectionSlug,\n fields: collectionConfig.flattenedFields,\n where,\n })\n\n if (returning === false) {\n await Model.deleteOne(query, options)?.lean()\n return null\n }\n\n const doc = await Model.findOneAndDelete(query, options)?.lean()\n\n if (!doc) {\n return null\n }\n\n transform({\n adapter: this,\n data: doc,\n fields: collectionConfig.fields,\n operation: 'read',\n })\n\n return doc\n}\n"],"names":["buildQuery","buildProjectionFromSelect","getCollection","getSession","transform","deleteOne","collection","collectionSlug","req","returning","select","where","collectionConfig","Model","adapter","options","projection","fields","flattenedFields","session","query","lean","doc","findOneAndDelete","data","operation"],"mappings":"AAKA,SAASA,UAAU,QAAQ,0BAAyB;AACpD,SAASC,yBAAyB,QAAQ,2CAA0C;AACpF,SAASC,aAAa,QAAQ,2BAA0B;AACxD,SAASC,UAAU,QAAQ,4BAA2B;AACtD,SAASC,SAAS,QAAQ,2BAA0B;AAEpD,OAAO,MAAMC,YAAuB,eAAeA,UAEjD,EAAEC,YAAYC,cAAc,EAAEC,GAAG,EAAEC,SAAS,EAAEC,MAAM,EAAEC,KAAK,EAAE;IAE7D,MAAM,EAAEC,gBAAgB,EAAEC,KAAK,EAAE,GAAGX,cAAc;QAAEY,SAAS,IAAI;QAAEP;IAAe;IAElF,MAAMQ,UAAsC;QAC1CC,YAAYf,0BAA0B;YACpCa,SAAS,IAAI;YACbG,QAAQL,iBAAiBM,eAAe;YACxCR;QACF;QACAS,SAAS,MAAMhB,WAAW,IAAI,EAAEK;IAClC;IAEA,MAAMY,QAAQ,MAAMpB,WAAW;QAC7Bc,SAAS,IAAI;QACbP;QACAU,QAAQL,iBAAiBM,eAAe;QACxCP;IACF;IAEA,IAAIF,cAAc,OAAO;QACvB,MAAMI,MAAMR,SAAS,CAACe,OAAOL,UAAUM;QACvC,OAAO;IACT;IAEA,MAAMC,MAAM,MAAMT,MAAMU,gBAAgB,CAACH,OAAOL,UAAUM;IAE1D,IAAI,CAACC,KAAK;QACR,OAAO;IACT;IAEAlB,UAAU;QACRU,SAAS,IAAI;QACbU,MAAMF;QACNL,QAAQL,iBAAiBK,MAAM;QAC/BQ,WAAW;IACb;IAEA,OAAOH;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"deleteVersions.d.ts","sourceRoot":"","sources":["../src/deleteVersions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,cAAc,EAAE,MAAM,SAAS,CAAA;AAO3E,eAAO,MAAM,cAAc,EAAE,cAoB5B,CAAA"}
1
+ {"version":3,"file":"deleteVersions.d.ts","sourceRoot":"","sources":["../src/deleteVersions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,cAAc,EAAE,MAAM,SAAS,CAAA;AAQ3E,eAAO,MAAM,cAAc,EAAE,cAoB5B,CAAA"}
@@ -1,16 +1,21 @@
1
1
  import { buildVersionCollectionFields } from 'payload';
2
2
  import { buildQuery } from './queries/buildQuery.js';
3
+ import { getCollection } from './utilities/getEntity.js';
3
4
  import { getSession } from './utilities/getSession.js';
4
- export const deleteVersions = async function deleteVersions({ collection, locale, req, where }) {
5
- const VersionsModel = this.versions[collection];
5
+ export const deleteVersions = async function deleteVersions({ collection: collectionSlug, locale, req, where }) {
6
+ const { collectionConfig, Model } = getCollection({
7
+ adapter: this,
8
+ collectionSlug,
9
+ versions: true
10
+ });
6
11
  const session = await getSession(this, req);
7
12
  const query = await buildQuery({
8
13
  adapter: this,
9
- fields: buildVersionCollectionFields(this.payload.config, this.payload.collections[collection].config, true),
14
+ fields: buildVersionCollectionFields(this.payload.config, collectionConfig, true),
10
15
  locale,
11
16
  where
12
17
  });
13
- await VersionsModel.deleteMany(query, {
18
+ await Model.deleteMany(query, {
14
19
  session
15
20
  });
16
21
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/deleteVersions.ts"],"sourcesContent":["import { buildVersionCollectionFields, type DeleteVersions } from 'payload'\n\nimport type { MongooseAdapter } from './index.js'\n\nimport { buildQuery } from './queries/buildQuery.js'\nimport { getSession } from './utilities/getSession.js'\n\nexport const deleteVersions: DeleteVersions = async function deleteVersions(\n this: MongooseAdapter,\n { collection, locale, req, where },\n) {\n const VersionsModel = this.versions[collection]\n\n const session = await getSession(this, req)\n\n const query = await buildQuery({\n adapter: this,\n fields: buildVersionCollectionFields(\n this.payload.config,\n this.payload.collections[collection].config,\n true,\n ),\n locale,\n where,\n })\n\n await VersionsModel.deleteMany(query, { session })\n}\n"],"names":["buildVersionCollectionFields","buildQuery","getSession","deleteVersions","collection","locale","req","where","VersionsModel","versions","session","query","adapter","fields","payload","config","collections","deleteMany"],"mappings":"AAAA,SAASA,4BAA4B,QAA6B,UAAS;AAI3E,SAASC,UAAU,QAAQ,0BAAyB;AACpD,SAASC,UAAU,QAAQ,4BAA2B;AAEtD,OAAO,MAAMC,iBAAiC,eAAeA,eAE3D,EAAEC,UAAU,EAAEC,MAAM,EAAEC,GAAG,EAAEC,KAAK,EAAE;IAElC,MAAMC,gBAAgB,IAAI,CAACC,QAAQ,CAACL,WAAW;IAE/C,MAAMM,UAAU,MAAMR,WAAW,IAAI,EAAEI;IAEvC,MAAMK,QAAQ,MAAMV,WAAW;QAC7BW,SAAS,IAAI;QACbC,QAAQb,6BACN,IAAI,CAACc,OAAO,CAACC,MAAM,EACnB,IAAI,CAACD,OAAO,CAACE,WAAW,CAACZ,WAAW,CAACW,MAAM,EAC3C;QAEFV;QACAE;IACF;IAEA,MAAMC,cAAcS,UAAU,CAACN,OAAO;QAAED;IAAQ;AAClD,EAAC"}
1
+ {"version":3,"sources":["../src/deleteVersions.ts"],"sourcesContent":["import { buildVersionCollectionFields, type DeleteVersions } from 'payload'\n\nimport type { MongooseAdapter } from './index.js'\n\nimport { buildQuery } from './queries/buildQuery.js'\nimport { getCollection } from './utilities/getEntity.js'\nimport { getSession } from './utilities/getSession.js'\n\nexport const deleteVersions: DeleteVersions = async function deleteVersions(\n this: MongooseAdapter,\n { collection: collectionSlug, locale, req, where },\n) {\n const { collectionConfig, Model } = getCollection({\n adapter: this,\n collectionSlug,\n versions: true,\n })\n\n const session = await getSession(this, req)\n\n const query = await buildQuery({\n adapter: this,\n fields: buildVersionCollectionFields(this.payload.config, collectionConfig, true),\n locale,\n where,\n })\n\n await Model.deleteMany(query, { session })\n}\n"],"names":["buildVersionCollectionFields","buildQuery","getCollection","getSession","deleteVersions","collection","collectionSlug","locale","req","where","collectionConfig","Model","adapter","versions","session","query","fields","payload","config","deleteMany"],"mappings":"AAAA,SAASA,4BAA4B,QAA6B,UAAS;AAI3E,SAASC,UAAU,QAAQ,0BAAyB;AACpD,SAASC,aAAa,QAAQ,2BAA0B;AACxD,SAASC,UAAU,QAAQ,4BAA2B;AAEtD,OAAO,MAAMC,iBAAiC,eAAeA,eAE3D,EAAEC,YAAYC,cAAc,EAAEC,MAAM,EAAEC,GAAG,EAAEC,KAAK,EAAE;IAElD,MAAM,EAAEC,gBAAgB,EAAEC,KAAK,EAAE,GAAGT,cAAc;QAChDU,SAAS,IAAI;QACbN;QACAO,UAAU;IACZ;IAEA,MAAMC,UAAU,MAAMX,WAAW,IAAI,EAAEK;IAEvC,MAAMO,QAAQ,MAAMd,WAAW;QAC7BW,SAAS,IAAI;QACbI,QAAQhB,6BAA6B,IAAI,CAACiB,OAAO,CAACC,MAAM,EAAER,kBAAkB;QAC5EH;QACAE;IACF;IAEA,MAAME,MAAMQ,UAAU,CAACJ,OAAO;QAAED;IAAQ;AAC1C,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../src/find.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAanC,eAAO,MAAM,IAAI,EAAE,IAiIlB,CAAA"}
1
+ {"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../src/find.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAenC,eAAO,MAAM,IAAI,EAAE,IA8IlB,CAAA"}
package/dist/find.js CHANGED
@@ -1,13 +1,17 @@
1
1
  import { flattenWhereToOperators } from 'payload';
2
2
  import { buildQuery } from './queries/buildQuery.js';
3
3
  import { buildSortParam } from './queries/buildSortParam.js';
4
+ import { aggregatePaginate } from './utilities/aggregatePaginate.js';
4
5
  import { buildJoinAggregation } from './utilities/buildJoinAggregation.js';
5
6
  import { buildProjectionFromSelect } from './utilities/buildProjectionFromSelect.js';
7
+ import { getCollection } from './utilities/getEntity.js';
6
8
  import { getSession } from './utilities/getSession.js';
7
9
  import { transform } from './utilities/transform.js';
8
- export const find = async function find({ collection, joins = {}, limit = 0, locale, page, pagination, projection, req, select, sort: sortArg, where }) {
9
- const Model = this.collections[collection];
10
- const collectionConfig = this.payload.collections[collection].config;
10
+ export const find = async function find({ collection: collectionSlug, joins = {}, limit = 0, locale, page, pagination, projection, req, select, sort: sortArg, where = {} }) {
11
+ const { collectionConfig, Model } = getCollection({
12
+ adapter: this,
13
+ collectionSlug
14
+ });
11
15
  const session = await getSession(this, req);
12
16
  let hasNearConstraint = false;
13
17
  if (where) {
@@ -26,8 +30,8 @@ export const find = async function find({ collection, joins = {}, limit = 0, loc
26
30
  }
27
31
  const query = await buildQuery({
28
32
  adapter: this,
29
- collectionSlug: collection,
30
- fields: this.payload.collections[collection].config.flattenedFields,
33
+ collectionSlug,
34
+ fields: collectionConfig.flattenedFields,
31
35
  locale,
32
36
  where
33
37
  });
@@ -85,7 +89,7 @@ export const find = async function find({ collection, joins = {}, limit = 0, loc
85
89
  let result;
86
90
  const aggregate = await buildJoinAggregation({
87
91
  adapter: this,
88
- collection,
92
+ collection: collectionSlug,
89
93
  collectionConfig,
90
94
  joins,
91
95
  locale,
@@ -93,14 +97,27 @@ export const find = async function find({ collection, joins = {}, limit = 0, loc
93
97
  });
94
98
  // build join aggregation
95
99
  if (aggregate) {
96
- result = await Model.aggregatePaginate(Model.aggregate(aggregate), paginationOptions);
100
+ result = await aggregatePaginate({
101
+ adapter: this,
102
+ collation: paginationOptions.collation,
103
+ joinAggregation: aggregate,
104
+ limit: paginationOptions.limit,
105
+ Model,
106
+ page: paginationOptions.page,
107
+ pagination: paginationOptions.pagination,
108
+ projection: paginationOptions.projection,
109
+ query,
110
+ session: paginationOptions.options?.session ?? undefined,
111
+ sort: paginationOptions.sort,
112
+ useEstimatedCount: paginationOptions.useEstimatedCount
113
+ });
97
114
  } else {
98
115
  result = await Model.paginate(query, paginationOptions);
99
116
  }
100
117
  transform({
101
118
  adapter: this,
102
119
  data: result.docs,
103
- fields: this.payload.collections[collection].config.fields,
120
+ fields: collectionConfig.fields,
104
121
  operation: 'read'
105
122
  });
106
123
  return result;
package/dist/find.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/find.ts"],"sourcesContent":["import type { PaginateOptions } from 'mongoose'\nimport type { Find } from 'payload'\n\nimport { flattenWhereToOperators } from 'payload'\n\nimport type { MongooseAdapter } from './index.js'\n\nimport { buildQuery } from './queries/buildQuery.js'\nimport { buildSortParam } from './queries/buildSortParam.js'\nimport { buildJoinAggregation } from './utilities/buildJoinAggregation.js'\nimport { buildProjectionFromSelect } from './utilities/buildProjectionFromSelect.js'\nimport { getSession } from './utilities/getSession.js'\nimport { transform } from './utilities/transform.js'\n\nexport const find: Find = async function find(\n this: MongooseAdapter,\n {\n collection,\n joins = {},\n limit = 0,\n locale,\n page,\n pagination,\n projection,\n req,\n select,\n sort: sortArg,\n where,\n },\n) {\n const Model = this.collections[collection]\n const collectionConfig = this.payload.collections[collection].config\n\n const session = await getSession(this, req)\n\n let hasNearConstraint = false\n\n if (where) {\n const constraints = flattenWhereToOperators(where)\n hasNearConstraint = constraints.some((prop) => Object.keys(prop).some((key) => key === 'near'))\n }\n\n let sort\n if (!hasNearConstraint) {\n sort = buildSortParam({\n config: this.payload.config,\n fields: collectionConfig.flattenedFields,\n locale,\n sort: sortArg || collectionConfig.defaultSort,\n timestamps: true,\n })\n }\n\n const query = await buildQuery({\n adapter: this,\n collectionSlug: collection,\n fields: this.payload.collections[collection].config.flattenedFields,\n locale,\n where,\n })\n\n // useEstimatedCount is faster, but not accurate, as it ignores any filters. It is thus set to true if there are no filters.\n const useEstimatedCount = hasNearConstraint || !query || Object.keys(query).length === 0\n const paginationOptions: PaginateOptions = {\n lean: true,\n leanWithId: true,\n options: {\n session,\n },\n page,\n pagination,\n projection,\n sort,\n useEstimatedCount,\n }\n\n if (select) {\n paginationOptions.projection = buildProjectionFromSelect({\n adapter: this,\n fields: collectionConfig.flattenedFields,\n select,\n })\n }\n\n if (this.collation) {\n const defaultLocale = 'en'\n paginationOptions.collation = {\n locale: locale && locale !== 'all' && locale !== '*' ? locale : defaultLocale,\n ...this.collation,\n }\n }\n\n if (!useEstimatedCount && Object.keys(query).length === 0 && this.disableIndexHints !== true) {\n // Improve the performance of the countDocuments query which is used if useEstimatedCount is set to false by adding\n // a hint. By default, if no hint is provided, MongoDB does not use an indexed field to count the returned documents,\n // which makes queries very slow. This only happens when no query (filter) is provided. If one is provided, it uses\n // the correct indexed field\n paginationOptions.useCustomCountFn = () => {\n return Promise.resolve(\n Model.countDocuments(query, {\n hint: { _id: 1 },\n session,\n }),\n )\n }\n }\n\n if (limit >= 0) {\n paginationOptions.limit = limit\n // limit must also be set here, it's ignored when pagination is false\n paginationOptions.options.limit = limit\n\n // Disable pagination if limit is 0\n if (limit === 0) {\n paginationOptions.pagination = false\n }\n }\n\n let result\n\n const aggregate = await buildJoinAggregation({\n adapter: this,\n collection,\n collectionConfig,\n joins,\n locale,\n query,\n })\n // build join aggregation\n if (aggregate) {\n result = await Model.aggregatePaginate(Model.aggregate(aggregate), paginationOptions)\n } else {\n result = await Model.paginate(query, paginationOptions)\n }\n\n transform({\n adapter: this,\n data: result.docs,\n fields: this.payload.collections[collection].config.fields,\n operation: 'read',\n })\n\n return result\n}\n"],"names":["flattenWhereToOperators","buildQuery","buildSortParam","buildJoinAggregation","buildProjectionFromSelect","getSession","transform","find","collection","joins","limit","locale","page","pagination","projection","req","select","sort","sortArg","where","Model","collections","collectionConfig","payload","config","session","hasNearConstraint","constraints","some","prop","Object","keys","key","fields","flattenedFields","defaultSort","timestamps","query","adapter","collectionSlug","useEstimatedCount","length","paginationOptions","lean","leanWithId","options","collation","defaultLocale","disableIndexHints","useCustomCountFn","Promise","resolve","countDocuments","hint","_id","result","aggregate","aggregatePaginate","paginate","data","docs","operation"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/find.ts"],"sourcesContent":["import type { PaginateOptions } from 'mongoose'\nimport type { Find } from 'payload'\n\nimport { flattenWhereToOperators } from 'payload'\n\nimport type { MongooseAdapter } from './index.js'\n\nimport { buildQuery } from './queries/buildQuery.js'\nimport { buildSortParam } from './queries/buildSortParam.js'\nimport { aggregatePaginate } from './utilities/aggregatePaginate.js'\nimport { buildJoinAggregation } from './utilities/buildJoinAggregation.js'\nimport { buildProjectionFromSelect } from './utilities/buildProjectionFromSelect.js'\nimport { getCollection } from './utilities/getEntity.js'\nimport { getSession } from './utilities/getSession.js'\nimport { transform } from './utilities/transform.js'\n\nexport const find: Find = async function find(\n this: MongooseAdapter,\n {\n collection: collectionSlug,\n joins = {},\n limit = 0,\n locale,\n page,\n pagination,\n projection,\n req,\n select,\n sort: sortArg,\n where = {},\n },\n) {\n const { collectionConfig, Model } = getCollection({ adapter: this, collectionSlug })\n\n const session = await getSession(this, req)\n\n let hasNearConstraint = false\n\n if (where) {\n const constraints = flattenWhereToOperators(where)\n hasNearConstraint = constraints.some((prop) => Object.keys(prop).some((key) => key === 'near'))\n }\n\n let sort\n if (!hasNearConstraint) {\n sort = buildSortParam({\n config: this.payload.config,\n fields: collectionConfig.flattenedFields,\n locale,\n sort: sortArg || collectionConfig.defaultSort,\n timestamps: true,\n })\n }\n\n const query = await buildQuery({\n adapter: this,\n collectionSlug,\n fields: collectionConfig.flattenedFields,\n locale,\n where,\n })\n\n // useEstimatedCount is faster, but not accurate, as it ignores any filters. It is thus set to true if there are no filters.\n const useEstimatedCount = hasNearConstraint || !query || Object.keys(query).length === 0\n const paginationOptions: PaginateOptions = {\n lean: true,\n leanWithId: true,\n options: {\n session,\n },\n page,\n pagination,\n projection,\n sort,\n useEstimatedCount,\n }\n\n if (select) {\n paginationOptions.projection = buildProjectionFromSelect({\n adapter: this,\n fields: collectionConfig.flattenedFields,\n select,\n })\n }\n\n if (this.collation) {\n const defaultLocale = 'en'\n paginationOptions.collation = {\n locale: locale && locale !== 'all' && locale !== '*' ? locale : defaultLocale,\n ...this.collation,\n }\n }\n\n if (!useEstimatedCount && Object.keys(query).length === 0 && this.disableIndexHints !== true) {\n // Improve the performance of the countDocuments query which is used if useEstimatedCount is set to false by adding\n // a hint. By default, if no hint is provided, MongoDB does not use an indexed field to count the returned documents,\n // which makes queries very slow. This only happens when no query (filter) is provided. If one is provided, it uses\n // the correct indexed field\n paginationOptions.useCustomCountFn = () => {\n return Promise.resolve(\n Model.countDocuments(query, {\n hint: { _id: 1 },\n session,\n }),\n )\n }\n }\n\n if (limit >= 0) {\n paginationOptions.limit = limit\n // limit must also be set here, it's ignored when pagination is false\n\n paginationOptions.options!.limit = limit\n\n // Disable pagination if limit is 0\n if (limit === 0) {\n paginationOptions.pagination = false\n }\n }\n\n let result\n\n const aggregate = await buildJoinAggregation({\n adapter: this,\n collection: collectionSlug,\n collectionConfig,\n joins,\n locale,\n query,\n })\n // build join aggregation\n if (aggregate) {\n result = await aggregatePaginate({\n adapter: this,\n collation: paginationOptions.collation,\n joinAggregation: aggregate,\n limit: paginationOptions.limit,\n Model,\n page: paginationOptions.page,\n pagination: paginationOptions.pagination,\n projection: paginationOptions.projection,\n query,\n session: paginationOptions.options?.session ?? undefined,\n sort: paginationOptions.sort as object,\n useEstimatedCount: paginationOptions.useEstimatedCount,\n })\n } else {\n result = await Model.paginate(query, paginationOptions)\n }\n\n transform({\n adapter: this,\n data: result.docs,\n fields: collectionConfig.fields,\n operation: 'read',\n })\n\n return result\n}\n"],"names":["flattenWhereToOperators","buildQuery","buildSortParam","aggregatePaginate","buildJoinAggregation","buildProjectionFromSelect","getCollection","getSession","transform","find","collection","collectionSlug","joins","limit","locale","page","pagination","projection","req","select","sort","sortArg","where","collectionConfig","Model","adapter","session","hasNearConstraint","constraints","some","prop","Object","keys","key","config","payload","fields","flattenedFields","defaultSort","timestamps","query","useEstimatedCount","length","paginationOptions","lean","leanWithId","options","collation","defaultLocale","disableIndexHints","useCustomCountFn","Promise","resolve","countDocuments","hint","_id","result","aggregate","joinAggregation","undefined","paginate","data","docs","operation"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"findGlobal.d.ts","sourceRoot":"","sources":["../src/findGlobal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAWzC,eAAO,MAAM,UAAU,EAAE,UAuCxB,CAAA"}
1
+ {"version":3,"file":"findGlobal.d.ts","sourceRoot":"","sources":["../src/findGlobal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAYzC,eAAO,MAAM,UAAU,EAAE,UAuCxB,CAAA"}
@@ -1,11 +1,14 @@
1
1
  import { combineQueries } from 'payload';
2
2
  import { buildQuery } from './queries/buildQuery.js';
3
3
  import { buildProjectionFromSelect } from './utilities/buildProjectionFromSelect.js';
4
+ import { getGlobal } from './utilities/getEntity.js';
4
5
  import { getSession } from './utilities/getSession.js';
5
6
  import { transform } from './utilities/transform.js';
6
- export const findGlobal = async function findGlobal({ slug, locale, req, select, where }) {
7
- const Model = this.globals;
8
- const globalConfig = this.payload.globals.config.find((each)=>each.slug === slug);
7
+ export const findGlobal = async function findGlobal({ slug: globalSlug, locale, req, select, where = {} }) {
8
+ const { globalConfig, Model } = getGlobal({
9
+ adapter: this,
10
+ globalSlug
11
+ });
9
12
  const fields = globalConfig.flattenedFields;
10
13
  const options = {
11
14
  lean: true,
@@ -19,11 +22,11 @@ export const findGlobal = async function findGlobal({ slug, locale, req, select,
19
22
  const query = await buildQuery({
20
23
  adapter: this,
21
24
  fields,
22
- globalSlug: slug,
25
+ globalSlug,
23
26
  locale,
24
27
  where: combineQueries({
25
28
  globalType: {
26
- equals: slug
29
+ equals: globalSlug
27
30
  }
28
31
  }, where)
29
32
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/findGlobal.ts"],"sourcesContent":["import type { QueryOptions } from 'mongoose'\nimport type { FindGlobal } from 'payload'\n\nimport { combineQueries } from 'payload'\n\nimport type { MongooseAdapter } from './index.js'\n\nimport { buildQuery } from './queries/buildQuery.js'\nimport { buildProjectionFromSelect } from './utilities/buildProjectionFromSelect.js'\nimport { getSession } from './utilities/getSession.js'\nimport { transform } from './utilities/transform.js'\n\nexport const findGlobal: FindGlobal = async function findGlobal(\n this: MongooseAdapter,\n { slug, locale, req, select, where },\n) {\n const Model = this.globals\n const globalConfig = this.payload.globals.config.find((each) => each.slug === slug)\n const fields = globalConfig.flattenedFields\n const options: QueryOptions = {\n lean: true,\n select: buildProjectionFromSelect({\n adapter: this,\n fields,\n select,\n }),\n session: await getSession(this, req),\n }\n\n const query = await buildQuery({\n adapter: this,\n fields,\n globalSlug: slug,\n locale,\n where: combineQueries({ globalType: { equals: slug } }, where),\n })\n\n const doc = (await Model.findOne(query, {}, options)) as any\n\n if (!doc) {\n return null\n }\n\n transform({\n adapter: this,\n data: doc,\n fields: globalConfig.fields,\n operation: 'read',\n })\n\n return doc\n}\n"],"names":["combineQueries","buildQuery","buildProjectionFromSelect","getSession","transform","findGlobal","slug","locale","req","select","where","Model","globals","globalConfig","payload","config","find","each","fields","flattenedFields","options","lean","adapter","session","query","globalSlug","globalType","equals","doc","findOne","data","operation"],"mappings":"AAGA,SAASA,cAAc,QAAQ,UAAS;AAIxC,SAASC,UAAU,QAAQ,0BAAyB;AACpD,SAASC,yBAAyB,QAAQ,2CAA0C;AACpF,SAASC,UAAU,QAAQ,4BAA2B;AACtD,SAASC,SAAS,QAAQ,2BAA0B;AAEpD,OAAO,MAAMC,aAAyB,eAAeA,WAEnD,EAAEC,IAAI,EAAEC,MAAM,EAAEC,GAAG,EAAEC,MAAM,EAAEC,KAAK,EAAE;IAEpC,MAAMC,QAAQ,IAAI,CAACC,OAAO;IAC1B,MAAMC,eAAe,IAAI,CAACC,OAAO,CAACF,OAAO,CAACG,MAAM,CAACC,IAAI,CAAC,CAACC,OAASA,KAAKX,IAAI,KAAKA;IAC9E,MAAMY,SAASL,aAAaM,eAAe;IAC3C,MAAMC,UAAwB;QAC5BC,MAAM;QACNZ,QAAQP,0BAA0B;YAChCoB,SAAS,IAAI;YACbJ;YACAT;QACF;QACAc,SAAS,MAAMpB,WAAW,IAAI,EAAEK;IAClC;IAEA,MAAMgB,QAAQ,MAAMvB,WAAW;QAC7BqB,SAAS,IAAI;QACbJ;QACAO,YAAYnB;QACZC;QACAG,OAAOV,eAAe;YAAE0B,YAAY;gBAAEC,QAAQrB;YAAK;QAAE,GAAGI;IAC1D;IAEA,MAAMkB,MAAO,MAAMjB,MAAMkB,OAAO,CAACL,OAAO,CAAC,GAAGJ;IAE5C,IAAI,CAACQ,KAAK;QACR,OAAO;IACT;IAEAxB,UAAU;QACRkB,SAAS,IAAI;QACbQ,MAAMF;QACNV,QAAQL,aAAaK,MAAM;QAC3Ba,WAAW;IACb;IAEA,OAAOH;AACT,EAAC"}
1
+ {"version":3,"sources":["../src/findGlobal.ts"],"sourcesContent":["import type { QueryOptions } from 'mongoose'\nimport type { FindGlobal } from 'payload'\n\nimport { combineQueries } from 'payload'\n\nimport type { MongooseAdapter } from './index.js'\n\nimport { buildQuery } from './queries/buildQuery.js'\nimport { buildProjectionFromSelect } from './utilities/buildProjectionFromSelect.js'\nimport { getGlobal } from './utilities/getEntity.js'\nimport { getSession } from './utilities/getSession.js'\nimport { transform } from './utilities/transform.js'\n\nexport const findGlobal: FindGlobal = async function findGlobal(\n this: MongooseAdapter,\n { slug: globalSlug, locale, req, select, where = {} },\n) {\n const { globalConfig, Model } = getGlobal({ adapter: this, globalSlug })\n\n const fields = globalConfig.flattenedFields\n const options: QueryOptions = {\n lean: true,\n select: buildProjectionFromSelect({\n adapter: this,\n fields,\n select,\n }),\n session: await getSession(this, req),\n }\n\n const query = await buildQuery({\n adapter: this,\n fields,\n globalSlug,\n locale,\n where: combineQueries({ globalType: { equals: globalSlug } }, where),\n })\n\n const doc: any = await Model.findOne(query, {}, options)\n\n if (!doc) {\n return null\n }\n\n transform({\n adapter: this,\n data: doc,\n fields: globalConfig.fields,\n operation: 'read',\n })\n\n return doc\n}\n"],"names":["combineQueries","buildQuery","buildProjectionFromSelect","getGlobal","getSession","transform","findGlobal","slug","globalSlug","locale","req","select","where","globalConfig","Model","adapter","fields","flattenedFields","options","lean","session","query","globalType","equals","doc","findOne","data","operation"],"mappings":"AAGA,SAASA,cAAc,QAAQ,UAAS;AAIxC,SAASC,UAAU,QAAQ,0BAAyB;AACpD,SAASC,yBAAyB,QAAQ,2CAA0C;AACpF,SAASC,SAAS,QAAQ,2BAA0B;AACpD,SAASC,UAAU,QAAQ,4BAA2B;AACtD,SAASC,SAAS,QAAQ,2BAA0B;AAEpD,OAAO,MAAMC,aAAyB,eAAeA,WAEnD,EAAEC,MAAMC,UAAU,EAAEC,MAAM,EAAEC,GAAG,EAAEC,MAAM,EAAEC,QAAQ,CAAC,CAAC,EAAE;IAErD,MAAM,EAAEC,YAAY,EAAEC,KAAK,EAAE,GAAGX,UAAU;QAAEY,SAAS,IAAI;QAAEP;IAAW;IAEtE,MAAMQ,SAASH,aAAaI,eAAe;IAC3C,MAAMC,UAAwB;QAC5BC,MAAM;QACNR,QAAQT,0BAA0B;YAChCa,SAAS,IAAI;YACbC;YACAL;QACF;QACAS,SAAS,MAAMhB,WAAW,IAAI,EAAEM;IAClC;IAEA,MAAMW,QAAQ,MAAMpB,WAAW;QAC7Bc,SAAS,IAAI;QACbC;QACAR;QACAC;QACAG,OAAOZ,eAAe;YAAEsB,YAAY;gBAAEC,QAAQf;YAAW;QAAE,GAAGI;IAChE;IAEA,MAAMY,MAAW,MAAMV,MAAMW,OAAO,CAACJ,OAAO,CAAC,GAAGH;IAEhD,IAAI,CAACM,KAAK;QACR,OAAO;IACT;IAEAnB,UAAU;QACRU,SAAS,IAAI;QACbW,MAAMF;QACNR,QAAQH,aAAaG,MAAM;QAC3BW,WAAW;IACb;IAEA,OAAOH;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"findGlobalVersions.d.ts","sourceRoot":"","sources":["../src/findGlobalVersions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAYjD,eAAO,MAAM,kBAAkB,EAAE,kBAkGhC,CAAA"}
1
+ {"version":3,"file":"findGlobalVersions.d.ts","sourceRoot":"","sources":["../src/findGlobalVersions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAajD,eAAO,MAAM,kBAAkB,EAAE,kBA8GhC,CAAA"}
@@ -2,11 +2,15 @@ import { buildVersionGlobalFields, flattenWhereToOperators } from 'payload';
2
2
  import { buildQuery } from './queries/buildQuery.js';
3
3
  import { buildSortParam } from './queries/buildSortParam.js';
4
4
  import { buildProjectionFromSelect } from './utilities/buildProjectionFromSelect.js';
5
+ import { getGlobal } from './utilities/getEntity.js';
5
6
  import { getSession } from './utilities/getSession.js';
6
7
  import { transform } from './utilities/transform.js';
7
- export const findGlobalVersions = async function findGlobalVersions({ global, limit, locale, page, pagination, req, select, skip, sort: sortArg, where }) {
8
- const globalConfig = this.payload.globals.config.find(({ slug })=>slug === global);
9
- const Model = this.versions[global];
8
+ export const findGlobalVersions = async function findGlobalVersions({ global: globalSlug, limit, locale, page, pagination, req, select, skip, sort: sortArg, where = {} }) {
9
+ const { globalConfig, Model } = getGlobal({
10
+ adapter: this,
11
+ globalSlug,
12
+ versions: true
13
+ });
10
14
  const versionFields = buildVersionGlobalFields(this.payload.config, globalConfig, true);
11
15
  const session = await getSession(this, req);
12
16
  const options = {
@@ -73,7 +77,7 @@ export const findGlobalVersions = async function findGlobalVersions({ global, li
73
77
  }));
74
78
  };
75
79
  }
76
- if (limit >= 0) {
80
+ if (limit && limit >= 0) {
77
81
  paginationOptions.limit = limit;
78
82
  // limit must also be set here, it's ignored when pagination is false
79
83
  paginationOptions.options.limit = limit;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/findGlobalVersions.ts"],"sourcesContent":["import type { PaginateOptions, QueryOptions } from 'mongoose'\nimport type { FindGlobalVersions } from 'payload'\n\nimport { buildVersionGlobalFields, flattenWhereToOperators } from 'payload'\n\nimport type { MongooseAdapter } from './index.js'\n\nimport { buildQuery } from './queries/buildQuery.js'\nimport { buildSortParam } from './queries/buildSortParam.js'\nimport { buildProjectionFromSelect } from './utilities/buildProjectionFromSelect.js'\nimport { getSession } from './utilities/getSession.js'\nimport { transform } from './utilities/transform.js'\n\nexport const findGlobalVersions: FindGlobalVersions = async function findGlobalVersions(\n this: MongooseAdapter,\n { global, limit, locale, page, pagination, req, select, skip, sort: sortArg, where },\n) {\n const globalConfig = this.payload.globals.config.find(({ slug }) => slug === global)\n const Model = this.versions[global]\n const versionFields = buildVersionGlobalFields(this.payload.config, globalConfig, true)\n\n const session = await getSession(this, req)\n const options: QueryOptions = {\n limit,\n session,\n skip,\n }\n\n let hasNearConstraint = false\n\n if (where) {\n const constraints = flattenWhereToOperators(where)\n hasNearConstraint = constraints.some((prop) => Object.keys(prop).some((key) => key === 'near'))\n }\n\n let sort\n if (!hasNearConstraint) {\n sort = buildSortParam({\n config: this.payload.config,\n fields: versionFields,\n locale,\n sort: sortArg || '-updatedAt',\n timestamps: true,\n })\n }\n\n const query = await buildQuery({\n adapter: this,\n fields: versionFields,\n locale,\n where,\n })\n\n // useEstimatedCount is faster, but not accurate, as it ignores any filters. It is thus set to true if there are no filters.\n const useEstimatedCount = hasNearConstraint || !query || Object.keys(query).length === 0\n const paginationOptions: PaginateOptions = {\n lean: true,\n leanWithId: true,\n limit,\n options,\n page,\n pagination,\n projection: buildProjectionFromSelect({ adapter: this, fields: versionFields, select }),\n sort,\n useEstimatedCount,\n }\n\n if (this.collation) {\n const defaultLocale = 'en'\n paginationOptions.collation = {\n locale: locale && locale !== 'all' && locale !== '*' ? locale : defaultLocale,\n ...this.collation,\n }\n }\n\n if (!useEstimatedCount && Object.keys(query).length === 0 && this.disableIndexHints !== true) {\n // Improve the performance of the countDocuments query which is used if useEstimatedCount is set to false by adding\n // a hint. By default, if no hint is provided, MongoDB does not use an indexed field to count the returned documents,\n // which makes queries very slow. This only happens when no query (filter) is provided. If one is provided, it uses\n // the correct indexed field\n paginationOptions.useCustomCountFn = () => {\n return Promise.resolve(\n Model.countDocuments(query, {\n hint: { _id: 1 },\n session,\n }),\n )\n }\n }\n\n if (limit >= 0) {\n paginationOptions.limit = limit\n // limit must also be set here, it's ignored when pagination is false\n paginationOptions.options.limit = limit\n\n // Disable pagination if limit is 0\n if (limit === 0) {\n paginationOptions.pagination = false\n }\n }\n\n const result = await Model.paginate(query, paginationOptions)\n\n transform({\n adapter: this,\n data: result.docs,\n fields: buildVersionGlobalFields(this.payload.config, globalConfig),\n operation: 'read',\n })\n\n return result\n}\n"],"names":["buildVersionGlobalFields","flattenWhereToOperators","buildQuery","buildSortParam","buildProjectionFromSelect","getSession","transform","findGlobalVersions","global","limit","locale","page","pagination","req","select","skip","sort","sortArg","where","globalConfig","payload","globals","config","find","slug","Model","versions","versionFields","session","options","hasNearConstraint","constraints","some","prop","Object","keys","key","fields","timestamps","query","adapter","useEstimatedCount","length","paginationOptions","lean","leanWithId","projection","collation","defaultLocale","disableIndexHints","useCustomCountFn","Promise","resolve","countDocuments","hint","_id","result","paginate","data","docs","operation"],"mappings":"AAGA,SAASA,wBAAwB,EAAEC,uBAAuB,QAAQ,UAAS;AAI3E,SAASC,UAAU,QAAQ,0BAAyB;AACpD,SAASC,cAAc,QAAQ,8BAA6B;AAC5D,SAASC,yBAAyB,QAAQ,2CAA0C;AACpF,SAASC,UAAU,QAAQ,4BAA2B;AACtD,SAASC,SAAS,QAAQ,2BAA0B;AAEpD,OAAO,MAAMC,qBAAyC,eAAeA,mBAEnE,EAAEC,MAAM,EAAEC,KAAK,EAAEC,MAAM,EAAEC,IAAI,EAAEC,UAAU,EAAEC,GAAG,EAAEC,MAAM,EAAEC,IAAI,EAAEC,MAAMC,OAAO,EAAEC,KAAK,EAAE;IAEpF,MAAMC,eAAe,IAAI,CAACC,OAAO,CAACC,OAAO,CAACC,MAAM,CAACC,IAAI,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA,SAAShB;IAC7E,MAAMiB,QAAQ,IAAI,CAACC,QAAQ,CAAClB,OAAO;IACnC,MAAMmB,gBAAgB3B,yBAAyB,IAAI,CAACoB,OAAO,CAACE,MAAM,EAAEH,cAAc;IAElF,MAAMS,UAAU,MAAMvB,WAAW,IAAI,EAAEQ;IACvC,MAAMgB,UAAwB;QAC5BpB;QACAmB;QACAb;IACF;IAEA,IAAIe,oBAAoB;IAExB,IAAIZ,OAAO;QACT,MAAMa,cAAc9B,wBAAwBiB;QAC5CY,oBAAoBC,YAAYC,IAAI,CAAC,CAACC,OAASC,OAAOC,IAAI,CAACF,MAAMD,IAAI,CAAC,CAACI,MAAQA,QAAQ;IACzF;IAEA,IAAIpB;IACJ,IAAI,CAACc,mBAAmB;QACtBd,OAAOb,eAAe;YACpBmB,QAAQ,IAAI,CAACF,OAAO,CAACE,MAAM;YAC3Be,QAAQV;YACRjB;YACAM,MAAMC,WAAW;YACjBqB,YAAY;QACd;IACF;IAEA,MAAMC,QAAQ,MAAMrC,WAAW;QAC7BsC,SAAS,IAAI;QACbH,QAAQV;QACRjB;QACAQ;IACF;IAEA,4HAA4H;IAC5H,MAAMuB,oBAAoBX,qBAAqB,CAACS,SAASL,OAAOC,IAAI,CAACI,OAAOG,MAAM,KAAK;IACvF,MAAMC,oBAAqC;QACzCC,MAAM;QACNC,YAAY;QACZpC;QACAoB;QACAlB;QACAC;QACAkC,YAAY1C,0BAA0B;YAAEoC,SAAS,IAAI;YAAEH,QAAQV;YAAeb;QAAO;QACrFE;QACAyB;IACF;IAEA,IAAI,IAAI,CAACM,SAAS,EAAE;QAClB,MAAMC,gBAAgB;QACtBL,kBAAkBI,SAAS,GAAG;YAC5BrC,QAAQA,UAAUA,WAAW,SAASA,WAAW,MAAMA,SAASsC;YAChE,GAAG,IAAI,CAACD,SAAS;QACnB;IACF;IAEA,IAAI,CAACN,qBAAqBP,OAAOC,IAAI,CAACI,OAAOG,MAAM,KAAK,KAAK,IAAI,CAACO,iBAAiB,KAAK,MAAM;QAC5F,mHAAmH;QACnH,qHAAqH;QACrH,mHAAmH;QACnH,4BAA4B;QAC5BN,kBAAkBO,gBAAgB,GAAG;YACnC,OAAOC,QAAQC,OAAO,CACpB3B,MAAM4B,cAAc,CAACd,OAAO;gBAC1Be,MAAM;oBAAEC,KAAK;gBAAE;gBACf3B;YACF;QAEJ;IACF;IAEA,IAAInB,SAAS,GAAG;QACdkC,kBAAkBlC,KAAK,GAAGA;QAC1B,qEAAqE;QACrEkC,kBAAkBd,OAAO,CAACpB,KAAK,GAAGA;QAElC,mCAAmC;QACnC,IAAIA,UAAU,GAAG;YACfkC,kBAAkB/B,UAAU,GAAG;QACjC;IACF;IAEA,MAAM4C,SAAS,MAAM/B,MAAMgC,QAAQ,CAAClB,OAAOI;IAE3CrC,UAAU;QACRkC,SAAS,IAAI;QACbkB,MAAMF,OAAOG,IAAI;QACjBtB,QAAQrC,yBAAyB,IAAI,CAACoB,OAAO,CAACE,MAAM,EAAEH;QACtDyC,WAAW;IACb;IAEA,OAAOJ;AACT,EAAC"}
1
+ {"version":3,"sources":["../src/findGlobalVersions.ts"],"sourcesContent":["import type { PaginateOptions, QueryOptions } from 'mongoose'\nimport type { FindGlobalVersions } from 'payload'\n\nimport { APIError, buildVersionGlobalFields, flattenWhereToOperators } from 'payload'\n\nimport type { MongooseAdapter } from './index.js'\n\nimport { buildQuery } from './queries/buildQuery.js'\nimport { buildSortParam } from './queries/buildSortParam.js'\nimport { buildProjectionFromSelect } from './utilities/buildProjectionFromSelect.js'\nimport { getGlobal } from './utilities/getEntity.js'\nimport { getSession } from './utilities/getSession.js'\nimport { transform } from './utilities/transform.js'\n\nexport const findGlobalVersions: FindGlobalVersions = async function findGlobalVersions(\n this: MongooseAdapter,\n {\n global: globalSlug,\n limit,\n locale,\n page,\n pagination,\n req,\n select,\n skip,\n sort: sortArg,\n where = {},\n },\n) {\n const { globalConfig, Model } = getGlobal({ adapter: this, globalSlug, versions: true })\n\n const versionFields = buildVersionGlobalFields(this.payload.config, globalConfig, true)\n\n const session = await getSession(this, req)\n const options: QueryOptions = {\n limit,\n session,\n skip,\n }\n\n let hasNearConstraint = false\n\n if (where) {\n const constraints = flattenWhereToOperators(where)\n hasNearConstraint = constraints.some((prop) => Object.keys(prop).some((key) => key === 'near'))\n }\n\n let sort\n if (!hasNearConstraint) {\n sort = buildSortParam({\n config: this.payload.config,\n fields: versionFields,\n locale,\n sort: sortArg || '-updatedAt',\n timestamps: true,\n })\n }\n\n const query = await buildQuery({\n adapter: this,\n fields: versionFields,\n locale,\n where,\n })\n\n // useEstimatedCount is faster, but not accurate, as it ignores any filters. It is thus set to true if there are no filters.\n const useEstimatedCount = hasNearConstraint || !query || Object.keys(query).length === 0\n const paginationOptions: PaginateOptions = {\n lean: true,\n leanWithId: true,\n limit,\n options,\n page,\n pagination,\n projection: buildProjectionFromSelect({ adapter: this, fields: versionFields, select }),\n sort,\n useEstimatedCount,\n }\n\n if (this.collation) {\n const defaultLocale = 'en'\n paginationOptions.collation = {\n locale: locale && locale !== 'all' && locale !== '*' ? locale : defaultLocale,\n ...this.collation,\n }\n }\n\n if (!useEstimatedCount && Object.keys(query).length === 0 && this.disableIndexHints !== true) {\n // Improve the performance of the countDocuments query which is used if useEstimatedCount is set to false by adding\n // a hint. By default, if no hint is provided, MongoDB does not use an indexed field to count the returned documents,\n // which makes queries very slow. This only happens when no query (filter) is provided. If one is provided, it uses\n // the correct indexed field\n paginationOptions.useCustomCountFn = () => {\n return Promise.resolve(\n Model.countDocuments(query, {\n hint: { _id: 1 },\n session,\n }),\n )\n }\n }\n\n if (limit && limit >= 0) {\n paginationOptions.limit = limit\n // limit must also be set here, it's ignored when pagination is false\n \n paginationOptions.options!.limit = limit\n\n // Disable pagination if limit is 0\n if (limit === 0) {\n paginationOptions.pagination = false\n }\n }\n\n const result = await Model.paginate(query, paginationOptions)\n\n transform({\n adapter: this,\n data: result.docs,\n fields: buildVersionGlobalFields(this.payload.config, globalConfig),\n operation: 'read',\n })\n\n return result\n}\n"],"names":["buildVersionGlobalFields","flattenWhereToOperators","buildQuery","buildSortParam","buildProjectionFromSelect","getGlobal","getSession","transform","findGlobalVersions","global","globalSlug","limit","locale","page","pagination","req","select","skip","sort","sortArg","where","globalConfig","Model","adapter","versions","versionFields","payload","config","session","options","hasNearConstraint","constraints","some","prop","Object","keys","key","fields","timestamps","query","useEstimatedCount","length","paginationOptions","lean","leanWithId","projection","collation","defaultLocale","disableIndexHints","useCustomCountFn","Promise","resolve","countDocuments","hint","_id","result","paginate","data","docs","operation"],"mappings":"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"}
package/dist/findOne.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import type { FindOne } from 'payload';
1
+ import { type FindOne } from 'payload';
2
2
  export declare const findOne: FindOne;
3
3
  //# sourceMappingURL=findOne.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"findOne.d.ts","sourceRoot":"","sources":["../src/findOne.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAUtC,eAAO,MAAM,OAAO,EAAE,OAoDrB,CAAA"}
1
+ {"version":3,"file":"findOne.d.ts","sourceRoot":"","sources":["../src/findOne.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAA;AAYtC,eAAO,MAAM,OAAO,EAAE,OA6DrB,CAAA"}
package/dist/findOne.js CHANGED
@@ -1,11 +1,15 @@
1
1
  import { buildQuery } from './queries/buildQuery.js';
2
+ import { aggregatePaginate } from './utilities/aggregatePaginate.js';
2
3
  import { buildJoinAggregation } from './utilities/buildJoinAggregation.js';
3
4
  import { buildProjectionFromSelect } from './utilities/buildProjectionFromSelect.js';
5
+ import { getCollection } from './utilities/getEntity.js';
4
6
  import { getSession } from './utilities/getSession.js';
5
7
  import { transform } from './utilities/transform.js';
6
- export const findOne = async function findOne({ collection, joins, locale, req, select, where }) {
7
- const Model = this.collections[collection];
8
- const collectionConfig = this.payload.collections[collection].config;
8
+ export const findOne = async function findOne({ collection: collectionSlug, joins, locale, req, select, where = {} }) {
9
+ const { collectionConfig, Model } = getCollection({
10
+ adapter: this,
11
+ collectionSlug
12
+ });
9
13
  const session = await getSession(this, req);
10
14
  const options = {
11
15
  lean: true,
@@ -13,7 +17,7 @@ export const findOne = async function findOne({ collection, joins, locale, req,
13
17
  };
14
18
  const query = await buildQuery({
15
19
  adapter: this,
16
- collectionSlug: collection,
20
+ collectionSlug,
17
21
  fields: collectionConfig.flattenedFields,
18
22
  locale,
19
23
  where
@@ -25,20 +29,26 @@ export const findOne = async function findOne({ collection, joins, locale, req,
25
29
  });
26
30
  const aggregate = await buildJoinAggregation({
27
31
  adapter: this,
28
- collection,
32
+ collection: collectionSlug,
29
33
  collectionConfig,
30
34
  joins,
31
- limit: 1,
32
35
  locale,
33
36
  projection,
34
37
  query
35
38
  });
36
39
  let doc;
37
40
  if (aggregate) {
38
- ;
39
- [doc] = await Model.aggregate(aggregate, {
41
+ const { docs } = await aggregatePaginate({
42
+ adapter: this,
43
+ joinAggregation: aggregate,
44
+ limit: 1,
45
+ Model,
46
+ pagination: false,
47
+ projection,
48
+ query,
40
49
  session
41
50
  });
51
+ doc = docs[0];
42
52
  } else {
43
53
  ;
44
54
  options.projection = projection;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/findOne.ts"],"sourcesContent":["import type { AggregateOptions, QueryOptions } from 'mongoose'\nimport type { FindOne } from 'payload'\n\nimport type { MongooseAdapter } from './index.js'\n\nimport { buildQuery } from './queries/buildQuery.js'\nimport { buildJoinAggregation } from './utilities/buildJoinAggregation.js'\nimport { buildProjectionFromSelect } from './utilities/buildProjectionFromSelect.js'\nimport { getSession } from './utilities/getSession.js'\nimport { transform } from './utilities/transform.js'\n\nexport const findOne: FindOne = async function findOne(\n this: MongooseAdapter,\n { collection, joins, locale, req, select, where },\n) {\n const Model = this.collections[collection]\n const collectionConfig = this.payload.collections[collection].config\n const session = await getSession(this, req)\n const options: AggregateOptions & QueryOptions = {\n lean: true,\n session,\n }\n\n const query = await buildQuery({\n adapter: this,\n collectionSlug: collection,\n fields: collectionConfig.flattenedFields,\n locale,\n where,\n })\n\n const projection = buildProjectionFromSelect({\n adapter: this,\n fields: collectionConfig.flattenedFields,\n select,\n })\n\n const aggregate = await buildJoinAggregation({\n adapter: this,\n collection,\n collectionConfig,\n joins,\n limit: 1,\n locale,\n projection,\n query,\n })\n\n let doc\n if (aggregate) {\n ;[doc] = await Model.aggregate(aggregate, { session })\n } else {\n ;(options as Record<string, unknown>).projection = projection\n doc = await Model.findOne(query, {}, options)\n }\n\n if (!doc) {\n return null\n }\n\n transform({ adapter: this, data: doc, fields: collectionConfig.fields, operation: 'read' })\n\n return doc\n}\n"],"names":["buildQuery","buildJoinAggregation","buildProjectionFromSelect","getSession","transform","findOne","collection","joins","locale","req","select","where","Model","collections","collectionConfig","payload","config","session","options","lean","query","adapter","collectionSlug","fields","flattenedFields","projection","aggregate","limit","doc","data","operation"],"mappings":"AAKA,SAASA,UAAU,QAAQ,0BAAyB;AACpD,SAASC,oBAAoB,QAAQ,sCAAqC;AAC1E,SAASC,yBAAyB,QAAQ,2CAA0C;AACpF,SAASC,UAAU,QAAQ,4BAA2B;AACtD,SAASC,SAAS,QAAQ,2BAA0B;AAEpD,OAAO,MAAMC,UAAmB,eAAeA,QAE7C,EAAEC,UAAU,EAAEC,KAAK,EAAEC,MAAM,EAAEC,GAAG,EAAEC,MAAM,EAAEC,KAAK,EAAE;IAEjD,MAAMC,QAAQ,IAAI,CAACC,WAAW,CAACP,WAAW;IAC1C,MAAMQ,mBAAmB,IAAI,CAACC,OAAO,CAACF,WAAW,CAACP,WAAW,CAACU,MAAM;IACpE,MAAMC,UAAU,MAAMd,WAAW,IAAI,EAAEM;IACvC,MAAMS,UAA2C;QAC/CC,MAAM;QACNF;IACF;IAEA,MAAMG,QAAQ,MAAMpB,WAAW;QAC7BqB,SAAS,IAAI;QACbC,gBAAgBhB;QAChBiB,QAAQT,iBAAiBU,eAAe;QACxChB;QACAG;IACF;IAEA,MAAMc,aAAavB,0BAA0B;QAC3CmB,SAAS,IAAI;QACbE,QAAQT,iBAAiBU,eAAe;QACxCd;IACF;IAEA,MAAMgB,YAAY,MAAMzB,qBAAqB;QAC3CoB,SAAS,IAAI;QACbf;QACAQ;QACAP;QACAoB,OAAO;QACPnB;QACAiB;QACAL;IACF;IAEA,IAAIQ;IACJ,IAAIF,WAAW;;QACZ,CAACE,IAAI,GAAG,MAAMhB,MAAMc,SAAS,CAACA,WAAW;YAAET;QAAQ;IACtD,OAAO;;QACHC,QAAoCO,UAAU,GAAGA;QACnDG,MAAM,MAAMhB,MAAMP,OAAO,CAACe,OAAO,CAAC,GAAGF;IACvC;IAEA,IAAI,CAACU,KAAK;QACR,OAAO;IACT;IAEAxB,UAAU;QAAEiB,SAAS,IAAI;QAAEQ,MAAMD;QAAKL,QAAQT,iBAAiBS,MAAM;QAAEO,WAAW;IAAO;IAEzF,OAAOF;AACT,EAAC"}
1
+ {"version":3,"sources":["../src/findOne.ts"],"sourcesContent":["import type { AggregateOptions, QueryOptions } from 'mongoose'\n\nimport { type FindOne } from 'payload'\n\nimport type { MongooseAdapter } from './index.js'\n\nimport { buildQuery } from './queries/buildQuery.js'\nimport { aggregatePaginate } from './utilities/aggregatePaginate.js'\nimport { buildJoinAggregation } from './utilities/buildJoinAggregation.js'\nimport { buildProjectionFromSelect } from './utilities/buildProjectionFromSelect.js'\nimport { getCollection } from './utilities/getEntity.js'\nimport { getSession } from './utilities/getSession.js'\nimport { transform } from './utilities/transform.js'\n\nexport const findOne: FindOne = async function findOne(\n this: MongooseAdapter,\n { collection: collectionSlug, joins, locale, req, select, where = {} },\n) {\n const { collectionConfig, Model } = getCollection({ adapter: this, collectionSlug })\n\n const session = await getSession(this, req)\n const options: AggregateOptions & QueryOptions = {\n lean: true,\n session,\n }\n\n const query = await buildQuery({\n adapter: this,\n collectionSlug,\n fields: collectionConfig.flattenedFields,\n locale,\n where,\n })\n\n const projection = buildProjectionFromSelect({\n adapter: this,\n fields: collectionConfig.flattenedFields,\n select,\n })\n\n const aggregate = await buildJoinAggregation({\n adapter: this,\n collection: collectionSlug,\n collectionConfig,\n joins,\n locale,\n projection,\n query,\n })\n\n let doc\n if (aggregate) {\n const { docs } = await aggregatePaginate({\n adapter: this,\n joinAggregation: aggregate,\n limit: 1,\n Model,\n pagination: false,\n projection,\n query,\n session,\n })\n doc = docs[0]\n } else {\n ;(options as Record<string, unknown>).projection = projection\n doc = await Model.findOne(query, {}, options)\n }\n\n if (!doc) {\n return null\n }\n\n transform({ adapter: this, data: doc, fields: collectionConfig.fields, operation: 'read' })\n\n return doc\n}\n"],"names":["buildQuery","aggregatePaginate","buildJoinAggregation","buildProjectionFromSelect","getCollection","getSession","transform","findOne","collection","collectionSlug","joins","locale","req","select","where","collectionConfig","Model","adapter","session","options","lean","query","fields","flattenedFields","projection","aggregate","doc","docs","joinAggregation","limit","pagination","data","operation"],"mappings":"AAMA,SAASA,UAAU,QAAQ,0BAAyB;AACpD,SAASC,iBAAiB,QAAQ,mCAAkC;AACpE,SAASC,oBAAoB,QAAQ,sCAAqC;AAC1E,SAASC,yBAAyB,QAAQ,2CAA0C;AACpF,SAASC,aAAa,QAAQ,2BAA0B;AACxD,SAASC,UAAU,QAAQ,4BAA2B;AACtD,SAASC,SAAS,QAAQ,2BAA0B;AAEpD,OAAO,MAAMC,UAAmB,eAAeA,QAE7C,EAAEC,YAAYC,cAAc,EAAEC,KAAK,EAAEC,MAAM,EAAEC,GAAG,EAAEC,MAAM,EAAEC,QAAQ,CAAC,CAAC,EAAE;IAEtE,MAAM,EAAEC,gBAAgB,EAAEC,KAAK,EAAE,GAAGZ,cAAc;QAAEa,SAAS,IAAI;QAAER;IAAe;IAElF,MAAMS,UAAU,MAAMb,WAAW,IAAI,EAAEO;IACvC,MAAMO,UAA2C;QAC/CC,MAAM;QACNF;IACF;IAEA,MAAMG,QAAQ,MAAMrB,WAAW;QAC7BiB,SAAS,IAAI;QACbR;QACAa,QAAQP,iBAAiBQ,eAAe;QACxCZ;QACAG;IACF;IAEA,MAAMU,aAAarB,0BAA0B;QAC3Cc,SAAS,IAAI;QACbK,QAAQP,iBAAiBQ,eAAe;QACxCV;IACF;IAEA,MAAMY,YAAY,MAAMvB,qBAAqB;QAC3Ce,SAAS,IAAI;QACbT,YAAYC;QACZM;QACAL;QACAC;QACAa;QACAH;IACF;IAEA,IAAIK;IACJ,IAAID,WAAW;QACb,MAAM,EAAEE,IAAI,EAAE,GAAG,MAAM1B,kBAAkB;YACvCgB,SAAS,IAAI;YACbW,iBAAiBH;YACjBI,OAAO;YACPb;YACAc,YAAY;YACZN;YACAH;YACAH;QACF;QACAQ,MAAMC,IAAI,CAAC,EAAE;IACf,OAAO;;QACHR,QAAoCK,UAAU,GAAGA;QACnDE,MAAM,MAAMV,MAAMT,OAAO,CAACc,OAAO,CAAC,GAAGF;IACvC;IAEA,IAAI,CAACO,KAAK;QACR,OAAO;IACT;IAEApB,UAAU;QAAEW,SAAS,IAAI;QAAEc,MAAML;QAAKJ,QAAQP,iBAAiBO,MAAM;QAAEU,WAAW;IAAO;IAEzF,OAAON;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"findVersions.d.ts","sourceRoot":"","sources":["../src/findVersions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAY3C,eAAO,MAAM,YAAY,EAAE,YAsG1B,CAAA"}
1
+ {"version":3,"file":"findVersions.d.ts","sourceRoot":"","sources":["../src/findVersions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAa3C,eAAO,MAAM,YAAY,EAAE,YAsH1B,CAAA"}
@@ -2,11 +2,15 @@ import { buildVersionCollectionFields, flattenWhereToOperators } from 'payload';
2
2
  import { buildQuery } from './queries/buildQuery.js';
3
3
  import { buildSortParam } from './queries/buildSortParam.js';
4
4
  import { buildProjectionFromSelect } from './utilities/buildProjectionFromSelect.js';
5
+ import { getCollection } from './utilities/getEntity.js';
5
6
  import { getSession } from './utilities/getSession.js';
6
7
  import { transform } from './utilities/transform.js';
7
- export const findVersions = async function findVersions({ collection, limit, locale, page, pagination, req = {}, select, skip, sort: sortArg, where }) {
8
- const Model = this.versions[collection];
9
- const collectionConfig = this.payload.collections[collection].config;
8
+ export const findVersions = async function findVersions({ collection: collectionSlug, limit, locale, page, pagination, req = {}, select, skip, sort: sortArg, where = {} }) {
9
+ const { collectionConfig, Model } = getCollection({
10
+ adapter: this,
11
+ collectionSlug,
12
+ versions: true
13
+ });
10
14
  const session = await getSession(this, req);
11
15
  const options = {
12
16
  limit,
@@ -73,7 +77,7 @@ export const findVersions = async function findVersions({ collection, limit, loc
73
77
  }));
74
78
  };
75
79
  }
76
- if (limit >= 0) {
80
+ if (limit && limit >= 0) {
77
81
  paginationOptions.limit = limit;
78
82
  // limit must also be set here, it's ignored when pagination is false
79
83
  paginationOptions.options.limit = limit;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/findVersions.ts"],"sourcesContent":["import type { PaginateOptions, QueryOptions } from 'mongoose'\nimport type { FindVersions } from 'payload'\n\nimport { buildVersionCollectionFields, flattenWhereToOperators } from 'payload'\n\nimport type { MongooseAdapter } from './index.js'\n\nimport { buildQuery } from './queries/buildQuery.js'\nimport { buildSortParam } from './queries/buildSortParam.js'\nimport { buildProjectionFromSelect } from './utilities/buildProjectionFromSelect.js'\nimport { getSession } from './utilities/getSession.js'\nimport { transform } from './utilities/transform.js'\n\nexport const findVersions: FindVersions = async function findVersions(\n this: MongooseAdapter,\n { collection, limit, locale, page, pagination, req = {}, select, skip, sort: sortArg, where },\n) {\n const Model = this.versions[collection]\n const collectionConfig = this.payload.collections[collection].config\n const session = await getSession(this, req)\n const options: QueryOptions = {\n limit,\n session,\n skip,\n }\n\n let hasNearConstraint = false\n\n if (where) {\n const constraints = flattenWhereToOperators(where)\n hasNearConstraint = constraints.some((prop) => Object.keys(prop).some((key) => key === 'near'))\n }\n\n let sort\n if (!hasNearConstraint) {\n sort = buildSortParam({\n config: this.payload.config,\n fields: collectionConfig.flattenedFields,\n locale,\n sort: sortArg || '-updatedAt',\n timestamps: true,\n })\n }\n\n const fields = buildVersionCollectionFields(this.payload.config, collectionConfig, true)\n\n const query = await buildQuery({\n adapter: this,\n fields,\n locale,\n where,\n })\n\n // useEstimatedCount is faster, but not accurate, as it ignores any filters. It is thus set to true if there are no filters.\n const useEstimatedCount = hasNearConstraint || !query || Object.keys(query).length === 0\n const paginationOptions: PaginateOptions = {\n lean: true,\n leanWithId: true,\n limit,\n options,\n page,\n pagination,\n projection: buildProjectionFromSelect({\n adapter: this,\n fields,\n select,\n }),\n sort,\n useEstimatedCount,\n }\n\n if (this.collation) {\n const defaultLocale = 'en'\n paginationOptions.collation = {\n locale: locale && locale !== 'all' && locale !== '*' ? locale : defaultLocale,\n ...this.collation,\n }\n }\n\n if (!useEstimatedCount && Object.keys(query).length === 0 && this.disableIndexHints !== true) {\n // Improve the performance of the countDocuments query which is used if useEstimatedCount is set to false by adding\n // a hint. By default, if no hint is provided, MongoDB does not use an indexed field to count the returned documents,\n // which makes queries very slow. This only happens when no query (filter) is provided. If one is provided, it uses\n // the correct indexed field\n paginationOptions.useCustomCountFn = () => {\n return Promise.resolve(\n Model.countDocuments(query, {\n hint: { _id: 1 },\n session,\n }),\n )\n }\n }\n\n if (limit >= 0) {\n paginationOptions.limit = limit\n // limit must also be set here, it's ignored when pagination is false\n paginationOptions.options.limit = limit\n\n // Disable pagination if limit is 0\n if (limit === 0) {\n paginationOptions.pagination = false\n }\n }\n\n const result = await Model.paginate(query, paginationOptions)\n\n transform({\n adapter: this,\n data: result.docs,\n fields: buildVersionCollectionFields(this.payload.config, collectionConfig),\n operation: 'read',\n })\n\n return result\n}\n"],"names":["buildVersionCollectionFields","flattenWhereToOperators","buildQuery","buildSortParam","buildProjectionFromSelect","getSession","transform","findVersions","collection","limit","locale","page","pagination","req","select","skip","sort","sortArg","where","Model","versions","collectionConfig","payload","collections","config","session","options","hasNearConstraint","constraints","some","prop","Object","keys","key","fields","flattenedFields","timestamps","query","adapter","useEstimatedCount","length","paginationOptions","lean","leanWithId","projection","collation","defaultLocale","disableIndexHints","useCustomCountFn","Promise","resolve","countDocuments","hint","_id","result","paginate","data","docs","operation"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/findVersions.ts"],"sourcesContent":["import type { PaginateOptions, QueryOptions } from 'mongoose'\nimport type { FindVersions } from 'payload'\n\nimport { buildVersionCollectionFields, flattenWhereToOperators } from 'payload'\n\nimport type { MongooseAdapter } from './index.js'\n\nimport { buildQuery } from './queries/buildQuery.js'\nimport { buildSortParam } from './queries/buildSortParam.js'\nimport { buildProjectionFromSelect } from './utilities/buildProjectionFromSelect.js'\nimport { getCollection } from './utilities/getEntity.js'\nimport { getSession } from './utilities/getSession.js'\nimport { transform } from './utilities/transform.js'\n\nexport const findVersions: FindVersions = async function findVersions(\n this: MongooseAdapter,\n {\n collection: collectionSlug,\n limit,\n locale,\n page,\n pagination,\n req = {},\n select,\n skip,\n sort: sortArg,\n where = {},\n },\n) {\n const { collectionConfig, Model } = getCollection({\n adapter: this,\n collectionSlug,\n versions: true,\n })\n\n const session = await getSession(this, req)\n const options: QueryOptions = {\n limit,\n session,\n skip,\n }\n\n let hasNearConstraint = false\n\n if (where) {\n const constraints = flattenWhereToOperators(where)\n hasNearConstraint = constraints.some((prop) => Object.keys(prop).some((key) => key === 'near'))\n }\n\n let sort\n if (!hasNearConstraint) {\n sort = buildSortParam({\n config: this.payload.config,\n fields: collectionConfig.flattenedFields,\n locale,\n sort: sortArg || '-updatedAt',\n timestamps: true,\n })\n }\n\n const fields = buildVersionCollectionFields(this.payload.config, collectionConfig, true)\n\n const query = await buildQuery({\n adapter: this,\n fields,\n locale,\n where,\n })\n\n // useEstimatedCount is faster, but not accurate, as it ignores any filters. It is thus set to true if there are no filters.\n const useEstimatedCount = hasNearConstraint || !query || Object.keys(query).length === 0\n const paginationOptions: PaginateOptions = {\n lean: true,\n leanWithId: true,\n limit,\n options,\n page,\n pagination,\n projection: buildProjectionFromSelect({\n adapter: this,\n fields,\n select,\n }),\n sort,\n useEstimatedCount,\n }\n\n if (this.collation) {\n const defaultLocale = 'en'\n paginationOptions.collation = {\n locale: locale && locale !== 'all' && locale !== '*' ? locale : defaultLocale,\n ...this.collation,\n }\n }\n\n if (!useEstimatedCount && Object.keys(query).length === 0 && this.disableIndexHints !== true) {\n // Improve the performance of the countDocuments query which is used if useEstimatedCount is set to false by adding\n // a hint. By default, if no hint is provided, MongoDB does not use an indexed field to count the returned documents,\n // which makes queries very slow. This only happens when no query (filter) is provided. If one is provided, it uses\n // the correct indexed field\n paginationOptions.useCustomCountFn = () => {\n return Promise.resolve(\n Model.countDocuments(query, {\n hint: { _id: 1 },\n session,\n }),\n )\n }\n }\n\n if (limit && limit >= 0) {\n paginationOptions.limit = limit\n // limit must also be set here, it's ignored when pagination is false\n \n paginationOptions.options!.limit = limit\n\n // Disable pagination if limit is 0\n if (limit === 0) {\n paginationOptions.pagination = false\n }\n }\n\n const result = await Model.paginate(query, paginationOptions)\n\n transform({\n adapter: this,\n data: result.docs,\n fields: buildVersionCollectionFields(this.payload.config, collectionConfig),\n operation: 'read',\n })\n\n return result\n}\n"],"names":["buildVersionCollectionFields","flattenWhereToOperators","buildQuery","buildSortParam","buildProjectionFromSelect","getCollection","getSession","transform","findVersions","collection","collectionSlug","limit","locale","page","pagination","req","select","skip","sort","sortArg","where","collectionConfig","Model","adapter","versions","session","options","hasNearConstraint","constraints","some","prop","Object","keys","key","config","payload","fields","flattenedFields","timestamps","query","useEstimatedCount","length","paginationOptions","lean","leanWithId","projection","collation","defaultLocale","disableIndexHints","useCustomCountFn","Promise","resolve","countDocuments","hint","_id","result","paginate","data","docs","operation"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { CollationOptions, TransactionOptions } from 'mongodb';
2
2
  import type { MongoMemoryReplSet } from 'mongodb-memory-server';
3
3
  import type { ClientSession, Connection, ConnectOptions, QueryOptions, SchemaOptions } from 'mongoose';
4
- import type { BaseDatabaseAdapter, CollectionSlug, DatabaseAdapterObj, TypeWithID, TypeWithVersion, UpdateGlobalArgs, UpdateGlobalVersionArgs, UpdateOneArgs, UpdateVersionArgs } from 'payload';
4
+ import type { BaseDatabaseAdapter, CollectionSlug, DatabaseAdapterObj, Migration, TypeWithID, TypeWithVersion, UpdateGlobalArgs, UpdateGlobalVersionArgs, UpdateOneArgs, UpdateVersionArgs } from 'payload';
5
5
  import type { CollectionModel, GlobalModel, MigrateDownArgs, MigrateUpArgs } from './types.js';
6
6
  export type { MigrateDownArgs, MigrateUpArgs } from './types.js';
7
7
  export interface Args {
@@ -34,7 +34,10 @@ export interface Args {
34
34
  collectionsSchemaOptions?: Partial<Record<CollectionSlug, SchemaOptions>>;
35
35
  /** Extra configuration options */
36
36
  connectOptions?: {
37
- /** Set false to disable $facet aggregation in non-supporting databases, Defaults to true */
37
+ /**
38
+ * Set false to disable $facet aggregation in non-supporting databases, Defaults to true
39
+ * @deprecated Payload doesn't use `$facet` anymore anywhere.
40
+ */
38
41
  useFacet?: boolean;
39
42
  } & ConnectOptions;
40
43
  /** Set to true to disable hinting to MongoDB to use 'id' as index. This is currently done when counting documents for pagination. Disabling this optimization might fix some problems with AWS DocumentDB. Defaults to false */
@@ -49,11 +52,7 @@ export interface Args {
49
52
  * typed as any to avoid dependency
50
53
  */
51
54
  mongoMemoryServer?: MongoMemoryReplSet;
52
- prodMigrations?: {
53
- down: (args: MigrateDownArgs) => Promise<void>;
54
- name: string;
55
- up: (args: MigrateUpArgs) => Promise<void>;
56
- }[];
55
+ prodMigrations?: Migration[];
57
56
  transactionOptions?: false | TransactionOptions;
58
57
  /** The URL to connect to MongoDB or false to start payload and prevent connecting */
59
58
  url: false | string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}