@payloadcms/db-mongodb 4.0.0-beta.5 → 4.0.0-beta.7

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.
@@ -1 +1 @@
1
- {"version":3,"file":"aggregatePaginate.d.ts","sourceRoot":"","sources":["../../src/utilities/aggregatePaginate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD,eAAO,MAAM,iBAAiB,mJAc3B;IACD,OAAO,EAAE,eAAe,CAAA;IACxB,SAAS,CAAC,EAAE,gBAAgB,CAAA;IAC5B,eAAe,CAAC,EAAE,aAAa,EAAE,CAAA;IACjC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,eAAe,CAAC,EAAE,aAAa,EAAE,CAAA;IACjC,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B,KAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAwF7B,CAAA"}
1
+ {"version":3,"file":"aggregatePaginate.d.ts","sourceRoot":"","sources":["../../src/utilities/aggregatePaginate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD,eAAO,MAAM,iBAAiB,mJAc3B;IACD,OAAO,EAAE,eAAe,CAAA;IACxB,SAAS,CAAC,EAAE,gBAAgB,CAAA;IAC5B,eAAe,CAAC,EAAE,aAAa,EAAE,CAAA;IACjC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,eAAe,CAAC,EAAE,aAAa,EAAE,CAAA;IACjC,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B,KAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAgG7B,CAAA"}
@@ -57,13 +57,24 @@ export const aggregatePaginate = async ({ adapter, collation, joinAggregation, l
57
57
  });
58
58
  }
59
59
  }
60
- const [docs, countResult] = await Promise.all([
61
- Model.aggregate(aggregation, {
60
+ let docs;
61
+ let countResult;
62
+ if (session) {
63
+ docs = await Model.aggregate(aggregation, {
62
64
  collation,
63
65
  session
64
- }),
65
- countPromise
66
- ]);
66
+ });
67
+ countResult = await countPromise;
68
+ } else {
69
+ ;
70
+ [docs, countResult] = await Promise.all([
71
+ Model.aggregate(aggregation, {
72
+ collation,
73
+ session
74
+ }),
75
+ countPromise
76
+ ]);
77
+ }
67
78
  const count = countResult === null ? docs.length : countResult;
68
79
  const totalPages = pagination !== false && typeof limit === 'number' && limit !== 0 ? Math.ceil(count / limit) : 1;
69
80
  const hasPrevPage = typeof page === 'number' && pagination !== false && page > 1;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/aggregatePaginate.ts"],"sourcesContent":["import type { CollationOptions } from 'mongodb'\nimport type { ClientSession, Model, PipelineStage } from 'mongoose'\nimport type { PaginatedDocs } from 'payload'\n\nimport type { MongooseAdapter } from '../index.js'\n\nexport const aggregatePaginate = async ({\n adapter,\n collation,\n joinAggregation,\n limit,\n Model,\n page,\n pagination,\n projection,\n query,\n session,\n sort,\n sortAggregation,\n useEstimatedCount,\n}: {\n adapter: MongooseAdapter\n collation?: CollationOptions\n joinAggregation?: PipelineStage[]\n limit?: number\n Model: Model<any>\n page?: number\n pagination?: boolean\n projection?: Record<string, boolean>\n query: Record<string, unknown>\n session?: ClientSession\n sort?: object\n sortAggregation?: PipelineStage[]\n useEstimatedCount?: boolean\n}): Promise<PaginatedDocs<any>> => {\n const aggregation: PipelineStage[] = [{ $match: query }]\n\n if (sortAggregation && sortAggregation.length > 0) {\n for (const stage of sortAggregation) {\n aggregation.push(stage)\n }\n }\n\n if (sort) {\n const $sort: Record<string, -1 | 1> = {}\n\n Object.entries(sort).forEach(([key, value]) => {\n $sort[key] = value === 'desc' ? -1 : 1\n })\n\n aggregation.push({ $sort })\n }\n\n if (page) {\n aggregation.push({ $skip: (page - 1) * (limit ?? 0) })\n }\n\n if (limit) {\n aggregation.push({ $limit: limit })\n }\n\n if (joinAggregation) {\n for (const stage of joinAggregation) {\n aggregation.push(stage)\n }\n }\n\n if (projection) {\n aggregation.push({ $project: projection })\n }\n\n let countPromise: Promise<null | number> = Promise.resolve(null)\n\n if (pagination !== false && limit) {\n if (useEstimatedCount) {\n countPromise = Model.estimatedDocumentCount(query)\n } else {\n // Only hint the _id index for unfiltered counts. With a filter, MongoDB picks the matching index on its own,\n // while forcing _id would make it scan the whole collection.\n const hint =\n adapter.disableIndexHints !== true && Object.keys(query).length === 0\n ? { _id: 1 }\n : undefined\n countPromise = Model.countDocuments(query, {\n collation,\n session,\n ...(hint ? { hint } : {}),\n })\n }\n }\n\n const [docs, countResult] = await Promise.all([\n Model.aggregate(aggregation, { collation, session }),\n countPromise,\n ])\n\n const count = countResult === null ? docs.length : countResult\n\n const totalPages =\n pagination !== false && typeof limit === 'number' && limit !== 0 ? Math.ceil(count / limit) : 1\n\n const hasPrevPage = typeof page === 'number' && pagination !== false && page > 1\n const hasNextPage = typeof page === 'number' && pagination !== false && totalPages > page\n const pagingCounter =\n typeof page === 'number' && pagination !== false && typeof limit === 'number'\n ? (page - 1) * limit + 1\n : 1\n\n const result: PaginatedDocs = {\n docs,\n hasNextPage,\n hasPrevPage,\n limit: limit ?? 0,\n nextPage: hasNextPage ? page + 1 : null,\n page,\n pagingCounter,\n prevPage: hasPrevPage ? page - 1 : null,\n totalDocs: count,\n totalPages,\n }\n\n return result\n}\n"],"names":["aggregatePaginate","adapter","collation","joinAggregation","limit","Model","page","pagination","projection","query","session","sort","sortAggregation","useEstimatedCount","aggregation","$match","length","stage","push","$sort","Object","entries","forEach","key","value","$skip","$limit","$project","countPromise","Promise","resolve","estimatedDocumentCount","hint","disableIndexHints","keys","_id","undefined","countDocuments","docs","countResult","all","aggregate","count","totalPages","Math","ceil","hasPrevPage","hasNextPage","pagingCounter","result","nextPage","prevPage","totalDocs"],"mappings":"AAMA,OAAO,MAAMA,oBAAoB,OAAO,EACtCC,OAAO,EACPC,SAAS,EACTC,eAAe,EACfC,KAAK,EACLC,KAAK,EACLC,IAAI,EACJC,UAAU,EACVC,UAAU,EACVC,KAAK,EACLC,OAAO,EACPC,IAAI,EACJC,eAAe,EACfC,iBAAiB,EAelB;IACC,MAAMC,cAA+B;QAAC;YAAEC,QAAQN;QAAM;KAAE;IAExD,IAAIG,mBAAmBA,gBAAgBI,MAAM,GAAG,GAAG;QACjD,KAAK,MAAMC,SAASL,gBAAiB;YACnCE,YAAYI,IAAI,CAACD;QACnB;IACF;IAEA,IAAIN,MAAM;QACR,MAAMQ,QAAgC,CAAC;QAEvCC,OAAOC,OAAO,CAACV,MAAMW,OAAO,CAAC,CAAC,CAACC,KAAKC,MAAM;YACxCL,KAAK,CAACI,IAAI,GAAGC,UAAU,SAAS,CAAC,IAAI;QACvC;QAEAV,YAAYI,IAAI,CAAC;YAAEC;QAAM;IAC3B;IAEA,IAAIb,MAAM;QACRQ,YAAYI,IAAI,CAAC;YAAEO,OAAO,AAACnB,CAAAA,OAAO,CAAA,IAAMF,CAAAA,SAAS,CAAA;QAAG;IACtD;IAEA,IAAIA,OAAO;QACTU,YAAYI,IAAI,CAAC;YAAEQ,QAAQtB;QAAM;IACnC;IAEA,IAAID,iBAAiB;QACnB,KAAK,MAAMc,SAASd,gBAAiB;YACnCW,YAAYI,IAAI,CAACD;QACnB;IACF;IAEA,IAAIT,YAAY;QACdM,YAAYI,IAAI,CAAC;YAAES,UAAUnB;QAAW;IAC1C;IAEA,IAAIoB,eAAuCC,QAAQC,OAAO,CAAC;IAE3D,IAAIvB,eAAe,SAASH,OAAO;QACjC,IAAIS,mBAAmB;YACrBe,eAAevB,MAAM0B,sBAAsB,CAACtB;QAC9C,OAAO;YACL,6GAA6G;YAC7G,6DAA6D;YAC7D,MAAMuB,OACJ/B,QAAQgC,iBAAiB,KAAK,QAAQb,OAAOc,IAAI,CAACzB,OAAOO,MAAM,KAAK,IAChE;gBAAEmB,KAAK;YAAE,IACTC;YACNR,eAAevB,MAAMgC,cAAc,CAAC5B,OAAO;gBACzCP;gBACAQ;gBACA,GAAIsB,OAAO;oBAAEA;gBAAK,IAAI,CAAC,CAAC;YAC1B;QACF;IACF;IAEA,MAAM,CAACM,MAAMC,YAAY,GAAG,MAAMV,QAAQW,GAAG,CAAC;QAC5CnC,MAAMoC,SAAS,CAAC3B,aAAa;YAAEZ;YAAWQ;QAAQ;QAClDkB;KACD;IAED,MAAMc,QAAQH,gBAAgB,OAAOD,KAAKtB,MAAM,GAAGuB;IAEnD,MAAMI,aACJpC,eAAe,SAAS,OAAOH,UAAU,YAAYA,UAAU,IAAIwC,KAAKC,IAAI,CAACH,QAAQtC,SAAS;IAEhG,MAAM0C,cAAc,OAAOxC,SAAS,YAAYC,eAAe,SAASD,OAAO;IAC/E,MAAMyC,cAAc,OAAOzC,SAAS,YAAYC,eAAe,SAASoC,aAAarC;IACrF,MAAM0C,gBACJ,OAAO1C,SAAS,YAAYC,eAAe,SAAS,OAAOH,UAAU,WACjE,AAACE,CAAAA,OAAO,CAAA,IAAKF,QAAQ,IACrB;IAEN,MAAM6C,SAAwB;QAC5BX;QACAS;QACAD;QACA1C,OAAOA,SAAS;QAChB8C,UAAUH,cAAczC,OAAO,IAAI;QACnCA;QACA0C;QACAG,UAAUL,cAAcxC,OAAO,IAAI;QACnC8C,WAAWV;QACXC;IACF;IAEA,OAAOM;AACT,EAAC"}
1
+ {"version":3,"sources":["../../src/utilities/aggregatePaginate.ts"],"sourcesContent":["import type { CollationOptions } from 'mongodb'\nimport type { ClientSession, Model, PipelineStage } from 'mongoose'\nimport type { PaginatedDocs } from 'payload'\n\nimport type { MongooseAdapter } from '../index.js'\n\nexport const aggregatePaginate = async ({\n adapter,\n collation,\n joinAggregation,\n limit,\n Model,\n page,\n pagination,\n projection,\n query,\n session,\n sort,\n sortAggregation,\n useEstimatedCount,\n}: {\n adapter: MongooseAdapter\n collation?: CollationOptions\n joinAggregation?: PipelineStage[]\n limit?: number\n Model: Model<any>\n page?: number\n pagination?: boolean\n projection?: Record<string, boolean>\n query: Record<string, unknown>\n session?: ClientSession\n sort?: object\n sortAggregation?: PipelineStage[]\n useEstimatedCount?: boolean\n}): Promise<PaginatedDocs<any>> => {\n const aggregation: PipelineStage[] = [{ $match: query }]\n\n if (sortAggregation && sortAggregation.length > 0) {\n for (const stage of sortAggregation) {\n aggregation.push(stage)\n }\n }\n\n if (sort) {\n const $sort: Record<string, -1 | 1> = {}\n\n Object.entries(sort).forEach(([key, value]) => {\n $sort[key] = value === 'desc' ? -1 : 1\n })\n\n aggregation.push({ $sort })\n }\n\n if (page) {\n aggregation.push({ $skip: (page - 1) * (limit ?? 0) })\n }\n\n if (limit) {\n aggregation.push({ $limit: limit })\n }\n\n if (joinAggregation) {\n for (const stage of joinAggregation) {\n aggregation.push(stage)\n }\n }\n\n if (projection) {\n aggregation.push({ $project: projection })\n }\n\n let countPromise: Promise<null | number> = Promise.resolve(null)\n\n if (pagination !== false && limit) {\n if (useEstimatedCount) {\n countPromise = Model.estimatedDocumentCount(query)\n } else {\n // Only hint the _id index for unfiltered counts. With a filter, MongoDB picks the matching index on its own,\n // while forcing _id would make it scan the whole collection.\n const hint =\n adapter.disableIndexHints !== true && Object.keys(query).length === 0\n ? { _id: 1 }\n : undefined\n countPromise = Model.countDocuments(query, {\n collation,\n session,\n ...(hint ? { hint } : {}),\n })\n }\n }\n\n let docs: unknown[]\n let countResult: null | number\n\n if (session) {\n docs = await Model.aggregate(aggregation, { collation, session })\n countResult = await countPromise\n } else {\n ;[docs, countResult] = await Promise.all([\n Model.aggregate(aggregation, { collation, session }),\n countPromise,\n ])\n }\n\n const count = countResult === null ? docs.length : countResult\n\n const totalPages =\n pagination !== false && typeof limit === 'number' && limit !== 0 ? Math.ceil(count / limit) : 1\n\n const hasPrevPage = typeof page === 'number' && pagination !== false && page > 1\n const hasNextPage = typeof page === 'number' && pagination !== false && totalPages > page\n const pagingCounter =\n typeof page === 'number' && pagination !== false && typeof limit === 'number'\n ? (page - 1) * limit + 1\n : 1\n\n const result: PaginatedDocs = {\n docs,\n hasNextPage,\n hasPrevPage,\n limit: limit ?? 0,\n nextPage: hasNextPage ? page + 1 : null,\n page,\n pagingCounter,\n prevPage: hasPrevPage ? page - 1 : null,\n totalDocs: count,\n totalPages,\n }\n\n return result\n}\n"],"names":["aggregatePaginate","adapter","collation","joinAggregation","limit","Model","page","pagination","projection","query","session","sort","sortAggregation","useEstimatedCount","aggregation","$match","length","stage","push","$sort","Object","entries","forEach","key","value","$skip","$limit","$project","countPromise","Promise","resolve","estimatedDocumentCount","hint","disableIndexHints","keys","_id","undefined","countDocuments","docs","countResult","aggregate","all","count","totalPages","Math","ceil","hasPrevPage","hasNextPage","pagingCounter","result","nextPage","prevPage","totalDocs"],"mappings":"AAMA,OAAO,MAAMA,oBAAoB,OAAO,EACtCC,OAAO,EACPC,SAAS,EACTC,eAAe,EACfC,KAAK,EACLC,KAAK,EACLC,IAAI,EACJC,UAAU,EACVC,UAAU,EACVC,KAAK,EACLC,OAAO,EACPC,IAAI,EACJC,eAAe,EACfC,iBAAiB,EAelB;IACC,MAAMC,cAA+B;QAAC;YAAEC,QAAQN;QAAM;KAAE;IAExD,IAAIG,mBAAmBA,gBAAgBI,MAAM,GAAG,GAAG;QACjD,KAAK,MAAMC,SAASL,gBAAiB;YACnCE,YAAYI,IAAI,CAACD;QACnB;IACF;IAEA,IAAIN,MAAM;QACR,MAAMQ,QAAgC,CAAC;QAEvCC,OAAOC,OAAO,CAACV,MAAMW,OAAO,CAAC,CAAC,CAACC,KAAKC,MAAM;YACxCL,KAAK,CAACI,IAAI,GAAGC,UAAU,SAAS,CAAC,IAAI;QACvC;QAEAV,YAAYI,IAAI,CAAC;YAAEC;QAAM;IAC3B;IAEA,IAAIb,MAAM;QACRQ,YAAYI,IAAI,CAAC;YAAEO,OAAO,AAACnB,CAAAA,OAAO,CAAA,IAAMF,CAAAA,SAAS,CAAA;QAAG;IACtD;IAEA,IAAIA,OAAO;QACTU,YAAYI,IAAI,CAAC;YAAEQ,QAAQtB;QAAM;IACnC;IAEA,IAAID,iBAAiB;QACnB,KAAK,MAAMc,SAASd,gBAAiB;YACnCW,YAAYI,IAAI,CAACD;QACnB;IACF;IAEA,IAAIT,YAAY;QACdM,YAAYI,IAAI,CAAC;YAAES,UAAUnB;QAAW;IAC1C;IAEA,IAAIoB,eAAuCC,QAAQC,OAAO,CAAC;IAE3D,IAAIvB,eAAe,SAASH,OAAO;QACjC,IAAIS,mBAAmB;YACrBe,eAAevB,MAAM0B,sBAAsB,CAACtB;QAC9C,OAAO;YACL,6GAA6G;YAC7G,6DAA6D;YAC7D,MAAMuB,OACJ/B,QAAQgC,iBAAiB,KAAK,QAAQb,OAAOc,IAAI,CAACzB,OAAOO,MAAM,KAAK,IAChE;gBAAEmB,KAAK;YAAE,IACTC;YACNR,eAAevB,MAAMgC,cAAc,CAAC5B,OAAO;gBACzCP;gBACAQ;gBACA,GAAIsB,OAAO;oBAAEA;gBAAK,IAAI,CAAC,CAAC;YAC1B;QACF;IACF;IAEA,IAAIM;IACJ,IAAIC;IAEJ,IAAI7B,SAAS;QACX4B,OAAO,MAAMjC,MAAMmC,SAAS,CAAC1B,aAAa;YAAEZ;YAAWQ;QAAQ;QAC/D6B,cAAc,MAAMX;IACtB,OAAO;;QACJ,CAACU,MAAMC,YAAY,GAAG,MAAMV,QAAQY,GAAG,CAAC;YACvCpC,MAAMmC,SAAS,CAAC1B,aAAa;gBAAEZ;gBAAWQ;YAAQ;YAClDkB;SACD;IACH;IAEA,MAAMc,QAAQH,gBAAgB,OAAOD,KAAKtB,MAAM,GAAGuB;IAEnD,MAAMI,aACJpC,eAAe,SAAS,OAAOH,UAAU,YAAYA,UAAU,IAAIwC,KAAKC,IAAI,CAACH,QAAQtC,SAAS;IAEhG,MAAM0C,cAAc,OAAOxC,SAAS,YAAYC,eAAe,SAASD,OAAO;IAC/E,MAAMyC,cAAc,OAAOzC,SAAS,YAAYC,eAAe,SAASoC,aAAarC;IACrF,MAAM0C,gBACJ,OAAO1C,SAAS,YAAYC,eAAe,SAAS,OAAOH,UAAU,WACjE,AAACE,CAAAA,OAAO,CAAA,IAAKF,QAAQ,IACrB;IAEN,MAAM6C,SAAwB;QAC5BX;QACAS;QACAD;QACA1C,OAAOA,SAAS;QAChB8C,UAAUH,cAAczC,OAAO,IAAI;QACnCA;QACA0C;QACAG,UAAUL,cAAcxC,OAAO,IAAI;QACnC8C,WAAWV;QACXC;IACF;IAEA,OAAOM;AACT,EAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/db-mongodb",
3
- "version": "4.0.0-beta.5",
3
+ "version": "4.0.0-beta.7",
4
4
  "description": "The officially supported MongoDB database adapter for Payload",
5
5
  "homepage": "https://payloadcms.com",
6
6
  "license": "MIT",
@@ -44,7 +44,7 @@
44
44
  },
45
45
  "dependencies": {
46
46
  "mongoose": "9.9.2",
47
- "mongoose-paginate-v2": "1.9.4",
47
+ "mongoose-paginate-v2": "1.9.5",
48
48
  "prompts": "2.4.2",
49
49
  "uuid": "14.0.0"
50
50
  },
@@ -53,10 +53,10 @@
53
53
  "@types/prompts": "^2.4.5",
54
54
  "mongodb": "7.5.0",
55
55
  "mongodb-memory-server": "10.1.4",
56
- "payload": "4.0.0-beta.5"
56
+ "payload": "4.0.0-beta.7"
57
57
  },
58
58
  "peerDependencies": {
59
- "payload": "4.0.0-beta.5"
59
+ "payload": "4.0.0-beta.7"
60
60
  },
61
61
  "scripts": {
62
62
  "build": "pnpm build:types && pnpm build:swc",