@payloadcms/db-mongodb 3.0.0-canary.5390729 → 3.0.0-canary.5866281
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/connect.d.ts.map +1 -1
- package/dist/connect.js +6 -1
- package/dist/connect.js.map +1 -1
- package/dist/count.d.ts.map +1 -1
- package/dist/count.js +1 -1
- package/dist/count.js.map +1 -1
- package/dist/create.d.ts.map +1 -1
- package/dist/create.js +7 -3
- package/dist/create.js.map +1 -1
- package/dist/createGlobal.d.ts.map +1 -1
- package/dist/createGlobal.js +1 -1
- package/dist/createGlobal.js.map +1 -1
- package/dist/createGlobalVersion.d.ts.map +1 -1
- package/dist/createGlobalVersion.js +1 -1
- package/dist/createGlobalVersion.js.map +1 -1
- package/dist/createMigration.d.ts.map +1 -1
- package/dist/createMigration.js +1 -1
- package/dist/createMigration.js.map +1 -1
- package/dist/createVersion.d.ts.map +1 -1
- package/dist/createVersion.js +1 -1
- package/dist/createVersion.js.map +1 -1
- package/dist/deleteMany.d.ts.map +1 -1
- package/dist/deleteMany.js +1 -1
- package/dist/deleteMany.js.map +1 -1
- package/dist/deleteOne.d.ts.map +1 -1
- package/dist/deleteOne.js +1 -1
- package/dist/deleteOne.js.map +1 -1
- package/dist/deleteVersions.d.ts.map +1 -1
- package/dist/deleteVersions.js +1 -1
- package/dist/deleteVersions.js.map +1 -1
- package/dist/find.d.ts.map +1 -1
- package/dist/find.js +8 -2
- package/dist/find.js.map +1 -1
- package/dist/findGlobal.d.ts.map +1 -1
- package/dist/findGlobal.js +1 -1
- package/dist/findGlobal.js.map +1 -1
- package/dist/findGlobalVersions.d.ts.map +1 -1
- package/dist/findGlobalVersions.js +9 -3
- package/dist/findGlobalVersions.js.map +1 -1
- package/dist/findOne.d.ts.map +1 -1
- package/dist/findOne.js +1 -1
- package/dist/findOne.js.map +1 -1
- package/dist/findVersions.d.ts.map +1 -1
- package/dist/findVersions.js +8 -2
- package/dist/findVersions.js.map +1 -1
- package/dist/index.d.ts +46 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +1 -1
- package/dist/init.js.map +1 -1
- package/dist/migrateFresh.js.map +1 -1
- package/dist/models/buildSchema.d.ts.map +1 -1
- package/dist/models/buildSchema.js +12 -11
- package/dist/models/buildSchema.js.map +1 -1
- package/dist/queries/buildAndOrConditions.d.ts.map +1 -1
- package/dist/queries/buildAndOrConditions.js +0 -2
- package/dist/queries/buildAndOrConditions.js.map +1 -1
- package/dist/queries/getLocalizedSortProperty.spec.js +42 -42
- package/dist/queries/getLocalizedSortProperty.spec.js.map +1 -1
- package/dist/queries/parseParams.d.ts.map +1 -1
- package/dist/queries/parseParams.js +2 -5
- package/dist/queries/parseParams.js.map +1 -1
- package/dist/queryDrafts.d.ts.map +1 -1
- package/dist/queryDrafts.js +8 -2
- package/dist/queryDrafts.js.map +1 -1
- package/dist/transactions/commitTransaction.d.ts.map +1 -1
- package/dist/transactions/commitTransaction.js +1 -0
- package/dist/transactions/commitTransaction.js.map +1 -1
- package/dist/transactions/rollbackTransaction.d.ts.map +1 -1
- package/dist/transactions/rollbackTransaction.js +13 -7
- package/dist/transactions/rollbackTransaction.js.map +1 -1
- package/dist/updateGlobal.d.ts.map +1 -1
- package/dist/updateGlobal.js +1 -1
- package/dist/updateGlobal.js.map +1 -1
- package/dist/updateGlobalVersion.d.ts.map +1 -1
- package/dist/updateGlobalVersion.js +1 -1
- package/dist/updateGlobalVersion.js.map +1 -1
- package/dist/updateOne.d.ts.map +1 -1
- package/dist/updateOne.js +7 -3
- package/dist/updateOne.js.map +1 -1
- package/dist/updateVersion.d.ts.map +1 -1
- package/dist/updateVersion.js +1 -1
- package/dist/updateVersion.js.map +1 -1
- package/dist/utilities/handleError.d.ts +6 -2
- package/dist/utilities/handleError.d.ts.map +1 -1
- package/dist/utilities/handleError.js +11 -8
- package/dist/utilities/handleError.js.map +1 -1
- package/dist/withSession.d.ts +3 -2
- package/dist/withSession.d.ts.map +1 -1
- package/dist/withSession.js +6 -2
- package/dist/withSession.js.map +1 -1
- package/package.json +4 -5
    
        package/dist/findVersions.js.map
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            {"version":3,"sources":["../src/findVersions.ts"],"sourcesContent":["import type { PaginateOptions } from 'mongoose'\nimport type { FindVersions,  | 
| 1 | 
            +
            {"version":3,"sources":["../src/findVersions.ts"],"sourcesContent":["import type { PaginateOptions } from 'mongoose'\nimport type { FindVersions, PayloadRequest } from 'payload'\n\nimport { flattenWhereToOperators } from 'payload'\n\nimport type { MongooseAdapter } from './index.js'\n\nimport { buildSortParam } from './queries/buildSortParam.js'\nimport sanitizeInternalFields from './utilities/sanitizeInternalFields.js'\nimport { withSession } from './withSession.js'\n\nexport const findVersions: FindVersions = async function findVersions(\n  this: MongooseAdapter,\n  {\n    collection,\n    limit,\n    locale,\n    page,\n    pagination,\n    req = {} as PayloadRequest,\n    skip,\n    sort: sortArg,\n    where,\n  },\n) {\n  const Model = this.versions[collection]\n  const collectionConfig = this.payload.collections[collection].config\n  const options = {\n    ...(await withSession(this, req)),\n    limit,\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.fields,\n      locale,\n      sort: sortArg || '-updatedAt',\n      timestamps: true,\n    })\n  }\n\n  const query = await Model.buildQuery({\n    locale,\n    payload: this.payload,\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    forceCountFn: hasNearConstraint,\n    lean: true,\n    leanWithId: true,\n    limit,\n    options,\n    page,\n    pagination,\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          ...options,\n          hint: { _id: 1 },\n        }),\n      )\n    }\n  }\n\n  if (limit >= 0) {\n    paginationOptions.limit = limit\n    // limit must also be set here, it's ignored when pagination is false\n    paginationOptions.options.limit = limit\n\n    // 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  const docs = JSON.parse(JSON.stringify(result.docs))\n\n  return {\n    ...result,\n    docs: docs.map((doc) => {\n      doc.id = doc._id\n      return sanitizeInternalFields(doc)\n    }),\n  }\n}\n"],"names":["flattenWhereToOperators","buildSortParam","sanitizeInternalFields","withSession","findVersions","collection","limit","locale","page","pagination","req","skip","sort","sortArg","where","Model","versions","collectionConfig","payload","collections","config","options","hasNearConstraint","constraints","some","prop","Object","keys","key","fields","timestamps","query","buildQuery","useEstimatedCount","length","paginationOptions","forceCountFn","lean","leanWithId","collation","defaultLocale","disableIndexHints","useCustomCountFn","Promise","resolve","countDocuments","hint","_id","result","paginate","docs","JSON","parse","stringify","map","doc","id"],"mappings":"AAGA,SAASA,uBAAuB,QAAQ,UAAS;AAIjD,SAASC,cAAc,QAAQ,8BAA6B;AAC5D,OAAOC,4BAA4B,wCAAuC;AAC1E,SAASC,WAAW,QAAQ,mBAAkB;AAE9C,OAAO,MAAMC,eAA6B,eAAeA,aAEvD,EACEC,UAAU,EACVC,KAAK,EACLC,MAAM,EACNC,IAAI,EACJC,UAAU,EACVC,MAAM,CAAC,CAAmB,EAC1BC,IAAI,EACJC,MAAMC,OAAO,EACbC,KAAK,EACN;IAED,MAAMC,QAAQ,IAAI,CAACC,QAAQ,CAACX,WAAW;IACvC,MAAMY,mBAAmB,IAAI,CAACC,OAAO,CAACC,WAAW,CAACd,WAAW,CAACe,MAAM;IACpE,MAAMC,UAAU;QACd,GAAI,MAAMlB,YAAY,IAAI,EAAEO,IAAI;QAChCJ;QACAK;IACF;IAEA,IAAIW,oBAAoB;IAExB,IAAIR,OAAO;QACT,MAAMS,cAAcvB,wBAAwBc;QAC5CQ,oBAAoBC,YAAYC,IAAI,CAAC,CAACC,OAASC,OAAOC,IAAI,CAACF,MAAMD,IAAI,CAAC,CAACI,MAAQA,QAAQ;IACzF;IAEA,IAAIhB;IACJ,IAAI,CAACU,mBAAmB;QACtBV,OAAOX,eAAe;YACpBmB,QAAQ,IAAI,CAACF,OAAO,CAACE,MAAM;YAC3BS,QAAQZ,iBAAiBY,MAAM;YAC/BtB;YACAK,MAAMC,WAAW;YACjBiB,YAAY;QACd;IACF;IAEA,MAAMC,QAAQ,MAAMhB,MAAMiB,UAAU,CAAC;QACnCzB;QACAW,SAAS,IAAI,CAACA,OAAO;QACrBJ;IACF;IAEA,4HAA4H;IAC5H,MAAMmB,oBAAoBX,qBAAqB,CAACS,SAASL,OAAOC,IAAI,CAACI,OAAOG,MAAM,KAAK;IACvF,MAAMC,oBAAqC;QACzCC,cAAcd;QACde,MAAM;QACNC,YAAY;QACZhC;QACAe;QACAb;QACAC;QACAG;QACAqB;IACF;IAEA,IAAI,IAAI,CAACM,SAAS,EAAE;QAClB,MAAMC,gBAAgB;QACtBL,kBAAkBI,SAAS,GAAG;YAC5BhC,QAAQA,UAAUA,WAAW,SAASA,WAAW,MAAMA,SAASiC;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,CACpB7B,MAAM8B,cAAc,CAACd,OAAO;gBAC1B,GAAGV,OAAO;gBACVyB,MAAM;oBAAEC,KAAK;gBAAE;YACjB;QAEJ;IACF;IAEA,IAAIzC,SAAS,GAAG;QACd6B,kBAAkB7B,KAAK,GAAGA;QAC1B,qEAAqE;QACrE6B,kBAAkBd,OAAO,CAACf,KAAK,GAAGA;QAElC,mCAAmC;QACnC,IAAIA,UAAU,GAAG;YACf6B,kBAAkB1B,UAAU,GAAG;QACjC;IACF;IAEA,MAAMuC,SAAS,MAAMjC,MAAMkC,QAAQ,CAAClB,OAAOI;IAC3C,MAAMe,OAAOC,KAAKC,KAAK,CAACD,KAAKE,SAAS,CAACL,OAAOE,IAAI;IAElD,OAAO;QACL,GAAGF,MAAM;QACTE,MAAMA,KAAKI,GAAG,CAAC,CAACC;YACdA,IAAIC,EAAE,GAAGD,IAAIR,GAAG;YAChB,OAAO7C,uBAAuBqD;QAChC;IACF;AACF,EAAC"}
         | 
    
        package/dist/index.d.ts
    CHANGED
    
    | @@ -1,17 +1,41 @@ | |
| 1 | 
            -
            import type { TransactionOptions } from 'mongodb';
         | 
| 1 | 
            +
            import type { CollationOptions, TransactionOptions } from 'mongodb';
         | 
| 2 2 | 
             
            import type { MongoMemoryReplSet } from 'mongodb-memory-server';
         | 
| 3 3 | 
             
            import type { ClientSession, ConnectOptions, Connection } from 'mongoose';
         | 
| 4 4 | 
             
            import type { BaseDatabaseAdapter, DatabaseAdapterObj } from 'payload';
         | 
| 5 | 
            -
            import type { CollectionModel, GlobalModel } from './types.js';
         | 
| 5 | 
            +
            import type { CollectionModel, GlobalModel, MigrateDownArgs, MigrateUpArgs } from './types.js';
         | 
| 6 6 | 
             
            export type { MigrateDownArgs, MigrateUpArgs } from './types.js';
         | 
| 7 7 | 
             
            export interface Args {
         | 
| 8 8 | 
             
                /** Set to false to disable auto-pluralization of collection names, Defaults to true */
         | 
| 9 9 | 
             
                autoPluralization?: boolean;
         | 
| 10 | 
            +
                /**
         | 
| 11 | 
            +
                 * If enabled, collation allows for language-specific rules for string comparison.
         | 
| 12 | 
            +
                 * This configuration can include the following options:
         | 
| 13 | 
            +
                 *
         | 
| 14 | 
            +
                 * - `strength` (number): Comparison level (1: Primary, 2: Secondary, 3: Tertiary (default), 4: Quaternary, 5: Identical)
         | 
| 15 | 
            +
                 * - `caseLevel` (boolean): Include case comparison at strength level 1 or 2.
         | 
| 16 | 
            +
                 * - `caseFirst` (string): Sort order of case differences during tertiary level comparisons ("upper", "lower", "off").
         | 
| 17 | 
            +
                 * - `numericOrdering` (boolean): Compare numeric strings as numbers.
         | 
| 18 | 
            +
                 * - `alternate` (string): Consider whitespace and punctuation as base characters ("non-ignorable", "shifted").
         | 
| 19 | 
            +
                 * - `maxVariable` (string): Characters considered ignorable when `alternate` is "shifted" ("punct", "space").
         | 
| 20 | 
            +
                 * - `backwards` (boolean): Sort strings with diacritics from back of the string.
         | 
| 21 | 
            +
                 * - `normalization` (boolean): Check if text requires normalization and perform normalization.
         | 
| 22 | 
            +
                 *
         | 
| 23 | 
            +
                 * Available on MongoDB version 3.4 and up.
         | 
| 24 | 
            +
                 * The locale that gets passed is your current project's locale but defaults to "en".
         | 
| 25 | 
            +
                 *
         | 
| 26 | 
            +
                 * Example:
         | 
| 27 | 
            +
                 * {
         | 
| 28 | 
            +
                 *   strength: 3
         | 
| 29 | 
            +
                 * }
         | 
| 30 | 
            +
                 *
         | 
| 31 | 
            +
                 * Defaults to disabled.
         | 
| 32 | 
            +
                 */
         | 
| 33 | 
            +
                collation?: Omit<CollationOptions, 'locale'>;
         | 
| 10 34 | 
             
                /** Extra configuration options */
         | 
| 11 | 
            -
                connectOptions?:  | 
| 35 | 
            +
                connectOptions?: {
         | 
| 12 36 | 
             
                    /** Set false to disable $facet aggregation in non-supporting databases, Defaults to true */
         | 
| 13 37 | 
             
                    useFacet?: boolean;
         | 
| 14 | 
            -
                };
         | 
| 38 | 
            +
                } & ConnectOptions;
         | 
| 15 39 | 
             
                /** 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 */
         | 
| 16 40 | 
             
                disableIndexHints?: boolean;
         | 
| 17 41 | 
             
                migrationDir?: string;
         | 
| @@ -19,22 +43,32 @@ export interface Args { | |
| 19 43 | 
             
                 * typed as any to avoid dependency
         | 
| 20 44 | 
             
                 */
         | 
| 21 45 | 
             
                mongoMemoryServer?: MongoMemoryReplSet;
         | 
| 46 | 
            +
                prodMigrations?: {
         | 
| 47 | 
            +
                    down: (args: MigrateDownArgs) => Promise<void>;
         | 
| 48 | 
            +
                    name: string;
         | 
| 49 | 
            +
                    up: (args: MigrateUpArgs) => Promise<void>;
         | 
| 50 | 
            +
                }[];
         | 
| 22 51 | 
             
                transactionOptions?: TransactionOptions | false;
         | 
| 23 52 | 
             
                /** The URL to connect to MongoDB or false to start payload and prevent connecting */
         | 
| 24 53 | 
             
                url: false | string;
         | 
| 25 54 | 
             
            }
         | 
| 26 | 
            -
            export type MongooseAdapter =  | 
| 55 | 
            +
            export type MongooseAdapter = {
         | 
| 27 56 | 
             
                collections: {
         | 
| 28 57 | 
             
                    [slug: string]: CollectionModel;
         | 
| 29 58 | 
             
                };
         | 
| 30 59 | 
             
                connection: Connection;
         | 
| 31 60 | 
             
                globals: GlobalModel;
         | 
| 32 61 | 
             
                mongoMemoryServer: MongoMemoryReplSet;
         | 
| 62 | 
            +
                prodMigrations?: {
         | 
| 63 | 
            +
                    down: (args: MigrateDownArgs) => Promise<void>;
         | 
| 64 | 
            +
                    name: string;
         | 
| 65 | 
            +
                    up: (args: MigrateUpArgs) => Promise<void>;
         | 
| 66 | 
            +
                }[];
         | 
| 33 67 | 
             
                sessions: Record<number | string, ClientSession>;
         | 
| 34 68 | 
             
                versions: {
         | 
| 35 69 | 
             
                    [slug: string]: CollectionModel;
         | 
| 36 70 | 
             
                };
         | 
| 37 | 
            -
            };
         | 
| 71 | 
            +
            } & Args & BaseDatabaseAdapter;
         | 
| 38 72 | 
             
            declare module 'payload' {
         | 
| 39 73 | 
             
                interface DatabaseAdapter extends Omit<BaseDatabaseAdapter, 'sessions'>, Omit<Args, 'migrationDir'> {
         | 
| 40 74 | 
             
                    collections: {
         | 
| @@ -43,6 +77,11 @@ declare module 'payload' { | |
| 43 77 | 
             
                    connection: Connection;
         | 
| 44 78 | 
             
                    globals: GlobalModel;
         | 
| 45 79 | 
             
                    mongoMemoryServer: MongoMemoryReplSet;
         | 
| 80 | 
            +
                    prodMigrations?: {
         | 
| 81 | 
            +
                        down: (args: MigrateDownArgs) => Promise<void>;
         | 
| 82 | 
            +
                        name: string;
         | 
| 83 | 
            +
                        up: (args: MigrateUpArgs) => Promise<void>;
         | 
| 84 | 
            +
                    }[];
         | 
| 46 85 | 
             
                    sessions: Record<number | string, ClientSession>;
         | 
| 47 86 | 
             
                    transactionOptions: TransactionOptions;
         | 
| 48 87 | 
             
                    versions: {
         | 
| @@ -50,5 +89,5 @@ declare module 'payload' { | |
| 50 89 | 
             
                    };
         | 
| 51 90 | 
             
                }
         | 
| 52 91 | 
             
            }
         | 
| 53 | 
            -
            export declare function mongooseAdapter({ autoPluralization, connectOptions, disableIndexHints, migrationDir: migrationDirArg, mongoMemoryServer, transactionOptions, url, }: Args): DatabaseAdapterObj;
         | 
| 92 | 
            +
            export declare function mongooseAdapter({ autoPluralization, connectOptions, disableIndexHints, migrationDir: migrationDirArg, mongoMemoryServer, prodMigrations, transactionOptions, url, }: Args): DatabaseAdapterObj;
         | 
| 54 93 | 
             
            //# sourceMappingURL=index.d.ts.map
         | 
    
        package/dist/index.d.ts.map
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA; | 
| 1 | 
            +
            {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
         | 
    
        package/dist/index.js
    CHANGED
    
    | @@ -28,7 +28,7 @@ import { updateGlobal } from './updateGlobal.js'; | |
| 28 28 | 
             
            import { updateGlobalVersion } from './updateGlobalVersion.js';
         | 
| 29 29 | 
             
            import { updateOne } from './updateOne.js';
         | 
| 30 30 | 
             
            import { updateVersion } from './updateVersion.js';
         | 
| 31 | 
            -
            export function mongooseAdapter({ autoPluralization = true, connectOptions, disableIndexHints = false, migrationDir: migrationDirArg, mongoMemoryServer, transactionOptions = {}, url }) {
         | 
| 31 | 
            +
            export function mongooseAdapter({ autoPluralization = true, connectOptions, disableIndexHints = false, migrationDir: migrationDirArg, mongoMemoryServer, prodMigrations, transactionOptions = {}, url }) {
         | 
| 32 32 | 
             
                function adapter({ payload }) {
         | 
| 33 33 | 
             
                    const migrationDir = findMigrationDir(migrationDirArg);
         | 
| 34 34 | 
             
                    mongoose.set('strictQuery', false);
         | 
| @@ -70,6 +70,7 @@ export function mongooseAdapter({ autoPluralization = true, connectOptions, disa | |
| 70 70 | 
             
                        migrateFresh,
         | 
| 71 71 | 
             
                        migrationDir,
         | 
| 72 72 | 
             
                        payload,
         | 
| 73 | 
            +
                        prodMigrations,
         | 
| 73 74 | 
             
                        queryDrafts,
         | 
| 74 75 | 
             
                        rollbackTransaction,
         | 
| 75 76 | 
             
                        updateGlobal,
         | 
    
        package/dist/index.js.map
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { TransactionOptions } from 'mongodb'\nimport type { MongoMemoryReplSet } from 'mongodb-memory-server'\nimport type { ClientSession, ConnectOptions, Connection } from 'mongoose'\nimport type { BaseDatabaseAdapter, DatabaseAdapterObj, Payload } from 'payload'\n\nimport fs from 'fs'\nimport mongoose from 'mongoose'\nimport path from 'path'\nimport { createDatabaseAdapter } from 'payload'\n\nimport type { CollectionModel, GlobalModel } from './types.js'\n\nimport { connect } from './connect.js'\nimport { count } from './count.js'\nimport { create } from './create.js'\nimport { createGlobal } from './createGlobal.js'\nimport { createGlobalVersion } from './createGlobalVersion.js'\nimport { createMigration } from './createMigration.js'\nimport { createVersion } from './createVersion.js'\nimport { deleteMany } from './deleteMany.js'\nimport { deleteOne } from './deleteOne.js'\nimport { deleteVersions } from './deleteVersions.js'\nimport { destroy } from './destroy.js'\nimport { find } from './find.js'\nimport { findGlobal } from './findGlobal.js'\nimport { findGlobalVersions } from './findGlobalVersions.js'\nimport { findOne } from './findOne.js'\nimport { findVersions } from './findVersions.js'\nimport { init } from './init.js'\nimport { migrateFresh } from './migrateFresh.js'\nimport { queryDrafts } from './queryDrafts.js'\nimport { beginTransaction } from './transactions/beginTransaction.js'\nimport { commitTransaction } from './transactions/commitTransaction.js'\nimport { rollbackTransaction } from './transactions/rollbackTransaction.js'\nimport { updateGlobal } from './updateGlobal.js'\nimport { updateGlobalVersion } from './updateGlobalVersion.js'\nimport { updateOne } from './updateOne.js'\nimport { updateVersion } from './updateVersion.js'\n\nexport type { MigrateDownArgs, MigrateUpArgs } from './types.js'\n\nexport interface Args {\n  /** Set to false to disable auto-pluralization of collection names, Defaults to true */\n  autoPluralization?: boolean\n  /** Extra configuration options */\n  connectOptions?: ConnectOptions & {\n    /** Set false to disable $facet aggregation in non-supporting databases, Defaults to true */\n    useFacet?: boolean\n  }\n  /** 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 */\n  disableIndexHints?: boolean\n  migrationDir?: string\n  /**\n   * typed as any to avoid dependency\n   */\n  mongoMemoryServer?: MongoMemoryReplSet\n  transactionOptions?: TransactionOptions | false\n  /** The URL to connect to MongoDB or false to start payload and prevent connecting */\n  url: false | string\n}\n\nexport type MongooseAdapter = BaseDatabaseAdapter &\n  Args & {\n    collections: {\n      [slug: string]: CollectionModel\n    }\n    connection: Connection\n    globals: GlobalModel\n    mongoMemoryServer: MongoMemoryReplSet\n    sessions: Record<number | string, ClientSession>\n    versions: {\n      [slug: string]: CollectionModel\n    }\n  }\n\ndeclare module 'payload' {\n  export interface DatabaseAdapter\n    extends Omit<BaseDatabaseAdapter, 'sessions'>,\n      Omit<Args, 'migrationDir'> {\n    collections: {\n      [slug: string]: CollectionModel\n    }\n    connection: Connection\n    globals: GlobalModel\n    mongoMemoryServer: MongoMemoryReplSet\n    sessions: Record<number | string, ClientSession>\n    transactionOptions: TransactionOptions\n    versions: {\n      [slug: string]: CollectionModel\n    }\n  }\n}\n\nexport function mongooseAdapter({\n  autoPluralization = true,\n  connectOptions,\n  disableIndexHints = false,\n  migrationDir: migrationDirArg,\n  mongoMemoryServer,\n  transactionOptions = {},\n  url,\n}: Args): DatabaseAdapterObj {\n  function adapter({ payload }: { payload: Payload }) {\n    const migrationDir = findMigrationDir(migrationDirArg)\n    mongoose.set('strictQuery', false)\n\n    return createDatabaseAdapter<MongooseAdapter>({\n      name: 'mongoose',\n\n      // Mongoose-specific\n      autoPluralization,\n      collections: {},\n      connectOptions: connectOptions || {},\n      connection: undefined,\n      count,\n      disableIndexHints,\n      globals: undefined,\n      mongoMemoryServer,\n      sessions: {},\n      transactionOptions: transactionOptions === false ? undefined : transactionOptions,\n      url,\n      versions: {},\n      // DatabaseAdapter\n      beginTransaction: transactionOptions ? beginTransaction : undefined,\n      commitTransaction,\n      connect,\n      create,\n      createGlobal,\n      createGlobalVersion,\n      createMigration,\n      createVersion,\n      defaultIDType: 'text',\n      deleteMany,\n      deleteOne,\n      deleteVersions,\n      destroy,\n      find,\n      findGlobal,\n      findGlobalVersions,\n      findOne,\n      findVersions,\n      init,\n      migrateFresh,\n      migrationDir,\n      payload,\n      queryDrafts,\n      rollbackTransaction,\n      updateGlobal,\n      updateGlobalVersion,\n      updateOne,\n      updateVersion,\n    })\n  }\n\n  return {\n    defaultIDType: 'text',\n    init: adapter,\n  }\n}\n\n/**\n * Attempt to find migrations directory.\n *\n * Checks for the following directories in order:\n * - `migrationDir` argument from Payload config\n * - `src/migrations`\n * - `dist/migrations`\n * - `migrations`\n *\n * Defaults to `src/migrations`\n *\n * @param migrationDir\n * @returns\n */\nfunction findMigrationDir(migrationDir?: string): string {\n  const cwd = process.cwd()\n  const srcDir = path.resolve(cwd, 'src/migrations')\n  const distDir = path.resolve(cwd, 'dist/migrations')\n  const relativeMigrations = path.resolve(cwd, 'migrations')\n\n  // Use arg if provided\n  if (migrationDir) return migrationDir\n\n  // Check other common locations\n  if (fs.existsSync(srcDir)) {\n    return srcDir\n  }\n\n  if (fs.existsSync(distDir)) {\n    return distDir\n  }\n\n  if (fs.existsSync(relativeMigrations)) {\n    return relativeMigrations\n  }\n\n  return srcDir\n}\n"],"names":["fs","mongoose","path","createDatabaseAdapter","connect","count","create","createGlobal","createGlobalVersion","createMigration","createVersion","deleteMany","deleteOne","deleteVersions","destroy","find","findGlobal","findGlobalVersions","findOne","findVersions","init","migrateFresh","queryDrafts","beginTransaction","commitTransaction","rollbackTransaction","updateGlobal","updateGlobalVersion","updateOne","updateVersion","mongooseAdapter","autoPluralization","connectOptions","disableIndexHints","migrationDir","migrationDirArg","mongoMemoryServer","transactionOptions","url","adapter","payload","findMigrationDir","set","name","collections","connection","undefined","globals","sessions","versions","defaultIDType","cwd","process","srcDir","resolve","distDir","relativeMigrations","existsSync"],"mappings":"AAKA,OAAOA,QAAQ,KAAI;AACnB,OAAOC,cAAc,WAAU;AAC/B,OAAOC,UAAU,OAAM;AACvB,SAASC,qBAAqB,QAAQ,UAAS;AAI/C,SAASC,OAAO,QAAQ,eAAc;AACtC,SAASC,KAAK,QAAQ,aAAY;AAClC,SAASC,MAAM,QAAQ,cAAa;AACpC,SAASC,YAAY,QAAQ,oBAAmB;AAChD,SAASC,mBAAmB,QAAQ,2BAA0B;AAC9D,SAASC,eAAe,QAAQ,uBAAsB;AACtD,SAASC,aAAa,QAAQ,qBAAoB;AAClD,SAASC,UAAU,QAAQ,kBAAiB;AAC5C,SAASC,SAAS,QAAQ,iBAAgB;AAC1C,SAASC,cAAc,QAAQ,sBAAqB;AACpD,SAASC,OAAO,QAAQ,eAAc;AACtC,SAASC,IAAI,QAAQ,YAAW;AAChC,SAASC,UAAU,QAAQ,kBAAiB;AAC5C,SAASC,kBAAkB,QAAQ,0BAAyB;AAC5D,SAASC,OAAO,QAAQ,eAAc;AACtC,SAASC,YAAY,QAAQ,oBAAmB;AAChD,SAASC,IAAI,QAAQ,YAAW;AAChC,SAASC,YAAY,QAAQ,oBAAmB;AAChD,SAASC,WAAW,QAAQ,mBAAkB;AAC9C,SAASC,gBAAgB,QAAQ,qCAAoC;AACrE,SAASC,iBAAiB,QAAQ,sCAAqC;AACvE,SAASC,mBAAmB,QAAQ,wCAAuC;AAC3E,SAASC,YAAY,QAAQ,oBAAmB;AAChD,SAASC,mBAAmB,QAAQ,2BAA0B;AAC9D,SAASC,SAAS,QAAQ,iBAAgB;AAC1C,SAASC,aAAa,QAAQ,qBAAoB;AAwDlD,OAAO,SAASC,gBAAgB,EAC9BC,oBAAoB,IAAI,EACxBC,cAAc,EACdC,oBAAoB,KAAK,EACzBC,cAAcC,eAAe,EAC7BC,iBAAiB,EACjBC,qBAAqB,CAAC,CAAC,EACvBC,GAAG,EACE;IACL,SAASC,QAAQ,EAAEC,OAAO,EAAwB;QAChD,MAAMN,eAAeO,iBAAiBN;QACtClC,SAASyC,GAAG,CAAC,eAAe;QAE5B,OAAOvC,sBAAuC;YAC5CwC,MAAM;YAEN,oBAAoB;YACpBZ;YACAa,aAAa,CAAC;YACdZ,gBAAgBA,kBAAkB,CAAC;YACnCa,YAAYC;YACZzC;YACA4B;YACAc,SAASD;YACTV;YACAY,UAAU,CAAC;YACXX,oBAAoBA,uBAAuB,QAAQS,YAAYT;YAC/DC;YACAW,UAAU,CAAC;YACX,kBAAkB;YAClB1B,kBAAkBc,qBAAqBd,mBAAmBuB;YAC1DtB;YACApB;YACAE;YACAC;YACAC;YACAC;YACAC;YACAwC,eAAe;YACfvC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAa;YACAM;YACAlB;YACAG;YACAC;YACAC;YACAC;YACAC;QACF;IACF;IAEA,OAAO;QACLqB,eAAe;QACf9B,MAAMmB;IACR;AACF;AAEA;;;;;;;;;;;;;CAaC,GACD,SAASE,iBAAiBP,YAAqB;IAC7C,MAAMiB,MAAMC,QAAQD,GAAG;IACvB,MAAME,SAASnD,KAAKoD,OAAO,CAACH,KAAK;IACjC,MAAMI,UAAUrD,KAAKoD,OAAO,CAACH,KAAK;IAClC,MAAMK,qBAAqBtD,KAAKoD,OAAO,CAACH,KAAK;IAE7C,sBAAsB;IACtB,IAAIjB,cAAc,OAAOA;IAEzB,+BAA+B;IAC/B,IAAIlC,GAAGyD,UAAU,CAACJ,SAAS;QACzB,OAAOA;IACT;IAEA,IAAIrD,GAAGyD,UAAU,CAACF,UAAU;QAC1B,OAAOA;IACT;IAEA,IAAIvD,GAAGyD,UAAU,CAACD,qBAAqB;QACrC,OAAOA;IACT;IAEA,OAAOH;AACT"}
         | 
| 1 | 
            +
            {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { CollationOptions, TransactionOptions } from 'mongodb'\nimport type { MongoMemoryReplSet } from 'mongodb-memory-server'\nimport type { ClientSession, ConnectOptions, Connection } from 'mongoose'\nimport type { BaseDatabaseAdapter, DatabaseAdapterObj, Payload } from 'payload'\n\nimport fs from 'fs'\nimport mongoose from 'mongoose'\nimport path from 'path'\nimport { createDatabaseAdapter } from 'payload'\n\nimport type { CollectionModel, GlobalModel, MigrateDownArgs, MigrateUpArgs } from './types.js'\n\nimport { connect } from './connect.js'\nimport { count } from './count.js'\nimport { create } from './create.js'\nimport { createGlobal } from './createGlobal.js'\nimport { createGlobalVersion } from './createGlobalVersion.js'\nimport { createMigration } from './createMigration.js'\nimport { createVersion } from './createVersion.js'\nimport { deleteMany } from './deleteMany.js'\nimport { deleteOne } from './deleteOne.js'\nimport { deleteVersions } from './deleteVersions.js'\nimport { destroy } from './destroy.js'\nimport { find } from './find.js'\nimport { findGlobal } from './findGlobal.js'\nimport { findGlobalVersions } from './findGlobalVersions.js'\nimport { findOne } from './findOne.js'\nimport { findVersions } from './findVersions.js'\nimport { init } from './init.js'\nimport { migrateFresh } from './migrateFresh.js'\nimport { queryDrafts } from './queryDrafts.js'\nimport { beginTransaction } from './transactions/beginTransaction.js'\nimport { commitTransaction } from './transactions/commitTransaction.js'\nimport { rollbackTransaction } from './transactions/rollbackTransaction.js'\nimport { updateGlobal } from './updateGlobal.js'\nimport { updateGlobalVersion } from './updateGlobalVersion.js'\nimport { updateOne } from './updateOne.js'\nimport { updateVersion } from './updateVersion.js'\n\nexport type { MigrateDownArgs, MigrateUpArgs } from './types.js'\n\nexport interface Args {\n  /** Set to false to disable auto-pluralization of collection names, Defaults to true */\n  autoPluralization?: boolean\n  /**\n   * If enabled, collation allows for language-specific rules for string comparison.\n   * This configuration can include the following options:\n   *\n   * - `strength` (number): Comparison level (1: Primary, 2: Secondary, 3: Tertiary (default), 4: Quaternary, 5: Identical)\n   * - `caseLevel` (boolean): Include case comparison at strength level 1 or 2.\n   * - `caseFirst` (string): Sort order of case differences during tertiary level comparisons (\"upper\", \"lower\", \"off\").\n   * - `numericOrdering` (boolean): Compare numeric strings as numbers.\n   * - `alternate` (string): Consider whitespace and punctuation as base characters (\"non-ignorable\", \"shifted\").\n   * - `maxVariable` (string): Characters considered ignorable when `alternate` is \"shifted\" (\"punct\", \"space\").\n   * - `backwards` (boolean): Sort strings with diacritics from back of the string.\n   * - `normalization` (boolean): Check if text requires normalization and perform normalization.\n   *\n   * Available on MongoDB version 3.4 and up.\n   * The locale that gets passed is your current project's locale but defaults to \"en\".\n   *\n   * Example:\n   * {\n   *   strength: 3\n   * }\n   *\n   * Defaults to disabled.\n   */\n  collation?: Omit<CollationOptions, 'locale'>\n  /** Extra configuration options */\n  connectOptions?: {\n    /** Set false to disable $facet aggregation in non-supporting databases, Defaults to true */\n    useFacet?: boolean\n  } & ConnectOptions\n  /** 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 */\n  disableIndexHints?: boolean\n  migrationDir?: string\n  /**\n   * typed as any to avoid dependency\n   */\n  mongoMemoryServer?: MongoMemoryReplSet\n  prodMigrations?: {\n    down: (args: MigrateDownArgs) => Promise<void>\n    name: string\n    up: (args: MigrateUpArgs) => Promise<void>\n  }[]\n  transactionOptions?: TransactionOptions | false\n  /** The URL to connect to MongoDB or false to start payload and prevent connecting */\n  url: false | string\n}\n\nexport type MongooseAdapter = {\n  collections: {\n    [slug: string]: CollectionModel\n  }\n  connection: Connection\n  globals: GlobalModel\n  mongoMemoryServer: MongoMemoryReplSet\n  prodMigrations?: {\n    down: (args: MigrateDownArgs) => Promise<void>\n    name: string\n    up: (args: MigrateUpArgs) => Promise<void>\n  }[]\n  sessions: Record<number | string, ClientSession>\n  versions: {\n    [slug: string]: CollectionModel\n  }\n} & Args &\n  BaseDatabaseAdapter\n\ndeclare module 'payload' {\n  export interface DatabaseAdapter\n    extends Omit<BaseDatabaseAdapter, 'sessions'>,\n      Omit<Args, 'migrationDir'> {\n    collections: {\n      [slug: string]: CollectionModel\n    }\n    connection: Connection\n    globals: GlobalModel\n    mongoMemoryServer: MongoMemoryReplSet\n    prodMigrations?: {\n      down: (args: MigrateDownArgs) => Promise<void>\n      name: string\n      up: (args: MigrateUpArgs) => Promise<void>\n    }[]\n    sessions: Record<number | string, ClientSession>\n    transactionOptions: TransactionOptions\n    versions: {\n      [slug: string]: CollectionModel\n    }\n  }\n}\n\nexport function mongooseAdapter({\n  autoPluralization = true,\n  connectOptions,\n  disableIndexHints = false,\n  migrationDir: migrationDirArg,\n  mongoMemoryServer,\n  prodMigrations,\n  transactionOptions = {},\n  url,\n}: Args): DatabaseAdapterObj {\n  function adapter({ payload }: { payload: Payload }) {\n    const migrationDir = findMigrationDir(migrationDirArg)\n    mongoose.set('strictQuery', false)\n\n    return createDatabaseAdapter<MongooseAdapter>({\n      name: 'mongoose',\n\n      // Mongoose-specific\n      autoPluralization,\n      collections: {},\n      connectOptions: connectOptions || {},\n      connection: undefined,\n      count,\n      disableIndexHints,\n      globals: undefined,\n      mongoMemoryServer,\n      sessions: {},\n      transactionOptions: transactionOptions === false ? undefined : transactionOptions,\n      url,\n      versions: {},\n      // DatabaseAdapter\n      beginTransaction: transactionOptions ? beginTransaction : undefined,\n      commitTransaction,\n      connect,\n      create,\n      createGlobal,\n      createGlobalVersion,\n      createMigration,\n      createVersion,\n      defaultIDType: 'text',\n      deleteMany,\n      deleteOne,\n      deleteVersions,\n      destroy,\n      find,\n      findGlobal,\n      findGlobalVersions,\n      findOne,\n      findVersions,\n      init,\n      migrateFresh,\n      migrationDir,\n      payload,\n      prodMigrations,\n      queryDrafts,\n      rollbackTransaction,\n      updateGlobal,\n      updateGlobalVersion,\n      updateOne,\n      updateVersion,\n    })\n  }\n\n  return {\n    defaultIDType: 'text',\n    init: adapter,\n  }\n}\n\n/**\n * Attempt to find migrations directory.\n *\n * Checks for the following directories in order:\n * - `migrationDir` argument from Payload config\n * - `src/migrations`\n * - `dist/migrations`\n * - `migrations`\n *\n * Defaults to `src/migrations`\n *\n * @param migrationDir\n * @returns\n */\nfunction findMigrationDir(migrationDir?: string): string {\n  const cwd = process.cwd()\n  const srcDir = path.resolve(cwd, 'src/migrations')\n  const distDir = path.resolve(cwd, 'dist/migrations')\n  const relativeMigrations = path.resolve(cwd, 'migrations')\n\n  // Use arg if provided\n  if (migrationDir) return migrationDir\n\n  // Check other common locations\n  if (fs.existsSync(srcDir)) {\n    return srcDir\n  }\n\n  if (fs.existsSync(distDir)) {\n    return distDir\n  }\n\n  if (fs.existsSync(relativeMigrations)) {\n    return relativeMigrations\n  }\n\n  return srcDir\n}\n"],"names":["fs","mongoose","path","createDatabaseAdapter","connect","count","create","createGlobal","createGlobalVersion","createMigration","createVersion","deleteMany","deleteOne","deleteVersions","destroy","find","findGlobal","findGlobalVersions","findOne","findVersions","init","migrateFresh","queryDrafts","beginTransaction","commitTransaction","rollbackTransaction","updateGlobal","updateGlobalVersion","updateOne","updateVersion","mongooseAdapter","autoPluralization","connectOptions","disableIndexHints","migrationDir","migrationDirArg","mongoMemoryServer","prodMigrations","transactionOptions","url","adapter","payload","findMigrationDir","set","name","collections","connection","undefined","globals","sessions","versions","defaultIDType","cwd","process","srcDir","resolve","distDir","relativeMigrations","existsSync"],"mappings":"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"}
         | 
    
        package/dist/init.d.ts.map
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":" | 
| 1 | 
            +
            {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAA6B,MAAM,SAAS,CAAA;AAe9D,eAAO,MAAM,IAAI,EAAE,IA0ElB,CAAA"}
         | 
    
        package/dist/init.js
    CHANGED
    
    | @@ -1,4 +1,4 @@ | |
| 1 | 
            -
             | 
| 1 | 
            +
            import mongoose from 'mongoose';
         | 
| 2 2 | 
             
            import paginate from 'mongoose-paginate-v2';
         | 
| 3 3 | 
             
            import { buildVersionCollectionFields, buildVersionGlobalFields } from 'payload';
         | 
| 4 4 | 
             
            import buildCollectionSchema from './models/buildCollectionSchema.js';
         | 
    
        package/dist/init.js.map
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            {"version":3,"sources":["../src/init.ts"],"sourcesContent":[" | 
| 1 | 
            +
            {"version":3,"sources":["../src/init.ts"],"sourcesContent":["import type { PaginateOptions } from 'mongoose'\nimport type { Init, SanitizedCollectionConfig } from 'payload'\n\nimport mongoose from 'mongoose'\nimport paginate from 'mongoose-paginate-v2'\nimport { buildVersionCollectionFields, buildVersionGlobalFields } from 'payload'\n\nimport type { MongooseAdapter } from './index.js'\nimport type { CollectionModel } from './types.js'\n\nimport buildCollectionSchema from './models/buildCollectionSchema.js'\nimport { buildGlobalModel } from './models/buildGlobalModel.js'\nimport buildSchema from './models/buildSchema.js'\nimport getBuildQueryPlugin from './queries/buildQuery.js'\nimport { getDBName } from './utilities/getDBName.js'\n\nexport const init: Init = function init(this: MongooseAdapter) {\n  this.payload.config.collections.forEach((collection: SanitizedCollectionConfig) => {\n    const schema = buildCollectionSchema(collection, this.payload.config)\n\n    if (collection.versions) {\n      const versionModelName = getDBName({ config: collection, versions: true })\n\n      const versionCollectionFields = buildVersionCollectionFields(collection)\n\n      const versionSchema = buildSchema(this.payload.config, versionCollectionFields, {\n        disableUnique: true,\n        draftsEnabled: true,\n        indexSortableFields: this.payload.config.indexSortableFields,\n        options: {\n          minimize: false,\n          timestamps: false,\n        },\n      })\n\n      versionSchema.plugin<any, PaginateOptions>(paginate, { useEstimatedCount: true }).plugin(\n        getBuildQueryPlugin({\n          collectionSlug: collection.slug,\n          versionsFields: versionCollectionFields,\n        }),\n      )\n\n      const model = mongoose.model(\n        versionModelName,\n        versionSchema,\n        this.autoPluralization === true ? undefined : versionModelName,\n      ) as CollectionModel\n      // this.payload.versions[collection.slug] = model;\n      this.versions[collection.slug] = model\n    }\n\n    const model = mongoose.model(\n      getDBName({ config: collection }),\n      schema,\n      this.autoPluralization === true ? undefined : collection.slug,\n    ) as CollectionModel\n    this.collections[collection.slug] = model\n  })\n\n  const model = buildGlobalModel(this.payload.config)\n  this.globals = model\n\n  this.payload.config.globals.forEach((global) => {\n    if (global.versions) {\n      const versionModelName = getDBName({ config: global, versions: true })\n\n      const versionGlobalFields = buildVersionGlobalFields(global)\n\n      const versionSchema = buildSchema(this.payload.config, versionGlobalFields, {\n        disableUnique: true,\n        draftsEnabled: true,\n        indexSortableFields: this.payload.config.indexSortableFields,\n        options: {\n          minimize: false,\n          timestamps: false,\n        },\n      })\n\n      versionSchema\n        .plugin<any, PaginateOptions>(paginate, { useEstimatedCount: true })\n        .plugin(getBuildQueryPlugin({ versionsFields: versionGlobalFields }))\n\n      const versionsModel = mongoose.model(\n        versionModelName,\n        versionSchema,\n        versionModelName,\n      ) as CollectionModel\n      this.versions[global.slug] = versionsModel\n    }\n  })\n}\n"],"names":["mongoose","paginate","buildVersionCollectionFields","buildVersionGlobalFields","buildCollectionSchema","buildGlobalModel","buildSchema","getBuildQueryPlugin","getDBName","init","payload","config","collections","forEach","collection","schema","versions","versionModelName","versionCollectionFields","versionSchema","disableUnique","draftsEnabled","indexSortableFields","options","minimize","timestamps","plugin","useEstimatedCount","collectionSlug","slug","versionsFields","model","autoPluralization","undefined","globals","global","versionGlobalFields","versionsModel"],"mappings":"AAGA,OAAOA,cAAc,WAAU;AAC/B,OAAOC,cAAc,uBAAsB;AAC3C,SAASC,4BAA4B,EAAEC,wBAAwB,QAAQ,UAAS;AAKhF,OAAOC,2BAA2B,oCAAmC;AACrE,SAASC,gBAAgB,QAAQ,+BAA8B;AAC/D,OAAOC,iBAAiB,0BAAyB;AACjD,OAAOC,yBAAyB,0BAAyB;AACzD,SAASC,SAAS,QAAQ,2BAA0B;AAEpD,OAAO,MAAMC,OAAa,SAASA;IACjC,IAAI,CAACC,OAAO,CAACC,MAAM,CAACC,WAAW,CAACC,OAAO,CAAC,CAACC;QACvC,MAAMC,SAASX,sBAAsBU,YAAY,IAAI,CAACJ,OAAO,CAACC,MAAM;QAEpE,IAAIG,WAAWE,QAAQ,EAAE;YACvB,MAAMC,mBAAmBT,UAAU;gBAAEG,QAAQG;gBAAYE,UAAU;YAAK;YAExE,MAAME,0BAA0BhB,6BAA6BY;YAE7D,MAAMK,gBAAgBb,YAAY,IAAI,CAACI,OAAO,CAACC,MAAM,EAAEO,yBAAyB;gBAC9EE,eAAe;gBACfC,eAAe;gBACfC,qBAAqB,IAAI,CAACZ,OAAO,CAACC,MAAM,CAACW,mBAAmB;gBAC5DC,SAAS;oBACPC,UAAU;oBACVC,YAAY;gBACd;YACF;YAEAN,cAAcO,MAAM,CAAuBzB,UAAU;gBAAE0B,mBAAmB;YAAK,GAAGD,MAAM,CACtFnB,oBAAoB;gBAClBqB,gBAAgBd,WAAWe,IAAI;gBAC/BC,gBAAgBZ;YAClB;YAGF,MAAMa,QAAQ/B,SAAS+B,KAAK,CAC1Bd,kBACAE,eACA,IAAI,CAACa,iBAAiB,KAAK,OAAOC,YAAYhB;YAEhD,kDAAkD;YAClD,IAAI,CAACD,QAAQ,CAACF,WAAWe,IAAI,CAAC,GAAGE;QACnC;QAEA,MAAMA,QAAQ/B,SAAS+B,KAAK,CAC1BvB,UAAU;YAAEG,QAAQG;QAAW,IAC/BC,QACA,IAAI,CAACiB,iBAAiB,KAAK,OAAOC,YAAYnB,WAAWe,IAAI;QAE/D,IAAI,CAACjB,WAAW,CAACE,WAAWe,IAAI,CAAC,GAAGE;IACtC;IAEA,MAAMA,QAAQ1B,iBAAiB,IAAI,CAACK,OAAO,CAACC,MAAM;IAClD,IAAI,CAACuB,OAAO,GAAGH;IAEf,IAAI,CAACrB,OAAO,CAACC,MAAM,CAACuB,OAAO,CAACrB,OAAO,CAAC,CAACsB;QACnC,IAAIA,OAAOnB,QAAQ,EAAE;YACnB,MAAMC,mBAAmBT,UAAU;gBAAEG,QAAQwB;gBAAQnB,UAAU;YAAK;YAEpE,MAAMoB,sBAAsBjC,yBAAyBgC;YAErD,MAAMhB,gBAAgBb,YAAY,IAAI,CAACI,OAAO,CAACC,MAAM,EAAEyB,qBAAqB;gBAC1EhB,eAAe;gBACfC,eAAe;gBACfC,qBAAqB,IAAI,CAACZ,OAAO,CAACC,MAAM,CAACW,mBAAmB;gBAC5DC,SAAS;oBACPC,UAAU;oBACVC,YAAY;gBACd;YACF;YAEAN,cACGO,MAAM,CAAuBzB,UAAU;gBAAE0B,mBAAmB;YAAK,GACjED,MAAM,CAACnB,oBAAoB;gBAAEuB,gBAAgBM;YAAoB;YAEpE,MAAMC,gBAAgBrC,SAAS+B,KAAK,CAClCd,kBACAE,eACAF;YAEF,IAAI,CAACD,QAAQ,CAACmB,OAAON,IAAI,CAAC,GAAGQ;QAC/B;IACF;AACF,EAAC"}
         | 
    
        package/dist/migrateFresh.js.map
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            {"version":3,"sources":["../src/migrateFresh.ts"],"sourcesContent":["import type {  | 
| 1 | 
            +
            {"version":3,"sources":["../src/migrateFresh.ts"],"sourcesContent":["import type { PayloadRequest } from 'payload'\n\nimport { commitTransaction, initTransaction, killTransaction, readMigrationFiles } from 'payload'\nimport prompts from 'prompts'\n\nimport type { MongooseAdapter } from './index.js'\n\n/**\n * Drop the current database and run all migrate up functions\n */\nexport async function migrateFresh(\n  this: MongooseAdapter,\n  { forceAcceptWarning = false }: { forceAcceptWarning?: boolean },\n): Promise<void> {\n  const { payload } = this\n\n  if (!forceAcceptWarning) {\n    const { confirm: acceptWarning } = await prompts(\n      {\n        name: 'confirm',\n        type: 'confirm',\n        initial: false,\n        message: `WARNING: This will drop your database and run all migrations. Are you sure you want to proceed?`,\n      },\n      {\n        onCancel: () => {\n          process.exit(0)\n        },\n      },\n    )\n\n    if (!acceptWarning) {\n      process.exit(0)\n    }\n  }\n\n  payload.logger.info({\n    msg: `Dropping database.`,\n  })\n\n  await this.connection.dropDatabase()\n\n  const migrationFiles = await readMigrationFiles({ payload })\n  payload.logger.debug({\n    msg: `Found ${migrationFiles.length} migration files.`,\n  })\n\n  const req = { payload } as PayloadRequest\n\n  // Run all migrate up\n  for (const migration of migrationFiles) {\n    payload.logger.info({ msg: `Migrating: ${migration.name}` })\n    try {\n      const start = Date.now()\n      await initTransaction(req)\n      await migration.up({ payload, req })\n      await payload.create({\n        collection: 'payload-migrations',\n        data: {\n          name: migration.name,\n          batch: 1,\n        },\n        req,\n      })\n\n      await commitTransaction(req)\n\n      payload.logger.info({ msg: `Migrated:  ${migration.name} (${Date.now() - start}ms)` })\n    } catch (err: unknown) {\n      await killTransaction(req)\n      payload.logger.error({\n        err,\n        msg: `Error running migration ${migration.name}. Rolling back.`,\n      })\n      throw err\n    }\n  }\n}\n"],"names":["commitTransaction","initTransaction","killTransaction","readMigrationFiles","prompts","migrateFresh","forceAcceptWarning","payload","confirm","acceptWarning","name","type","initial","message","onCancel","process","exit","logger","info","msg","connection","dropDatabase","migrationFiles","debug","length","req","migration","start","Date","now","up","create","collection","data","batch","err","error"],"mappings":"AAEA,SAASA,iBAAiB,EAAEC,eAAe,EAAEC,eAAe,EAAEC,kBAAkB,QAAQ,UAAS;AACjG,OAAOC,aAAa,UAAS;AAI7B;;CAEC,GACD,OAAO,eAAeC,aAEpB,EAAEC,qBAAqB,KAAK,EAAoC;IAEhE,MAAM,EAAEC,OAAO,EAAE,GAAG,IAAI;IAExB,IAAI,CAACD,oBAAoB;QACvB,MAAM,EAAEE,SAASC,aAAa,EAAE,GAAG,MAAML,QACvC;YACEM,MAAM;YACNC,MAAM;YACNC,SAAS;YACTC,SAAS,CAAC,+FAA+F,CAAC;QAC5G,GACA;YACEC,UAAU;gBACRC,QAAQC,IAAI,CAAC;YACf;QACF;QAGF,IAAI,CAACP,eAAe;YAClBM,QAAQC,IAAI,CAAC;QACf;IACF;IAEAT,QAAQU,MAAM,CAACC,IAAI,CAAC;QAClBC,KAAK,CAAC,kBAAkB,CAAC;IAC3B;IAEA,MAAM,IAAI,CAACC,UAAU,CAACC,YAAY;IAElC,MAAMC,iBAAiB,MAAMnB,mBAAmB;QAAEI;IAAQ;IAC1DA,QAAQU,MAAM,CAACM,KAAK,CAAC;QACnBJ,KAAK,CAAC,MAAM,EAAEG,eAAeE,MAAM,CAAC,iBAAiB,CAAC;IACxD;IAEA,MAAMC,MAAM;QAAElB;IAAQ;IAEtB,qBAAqB;IACrB,KAAK,MAAMmB,aAAaJ,eAAgB;QACtCf,QAAQU,MAAM,CAACC,IAAI,CAAC;YAAEC,KAAK,CAAC,WAAW,EAAEO,UAAUhB,IAAI,CAAC,CAAC;QAAC;QAC1D,IAAI;YACF,MAAMiB,QAAQC,KAAKC,GAAG;YACtB,MAAM5B,gBAAgBwB;YACtB,MAAMC,UAAUI,EAAE,CAAC;gBAAEvB;gBAASkB;YAAI;YAClC,MAAMlB,QAAQwB,MAAM,CAAC;gBACnBC,YAAY;gBACZC,MAAM;oBACJvB,MAAMgB,UAAUhB,IAAI;oBACpBwB,OAAO;gBACT;gBACAT;YACF;YAEA,MAAMzB,kBAAkByB;YAExBlB,QAAQU,MAAM,CAACC,IAAI,CAAC;gBAAEC,KAAK,CAAC,WAAW,EAAEO,UAAUhB,IAAI,CAAC,EAAE,EAAEkB,KAAKC,GAAG,KAAKF,MAAM,GAAG,CAAC;YAAC;QACtF,EAAE,OAAOQ,KAAc;YACrB,MAAMjC,gBAAgBuB;YACtBlB,QAAQU,MAAM,CAACmB,KAAK,CAAC;gBACnBD;gBACAhB,KAAK,CAAC,wBAAwB,EAAEO,UAAUhB,IAAI,CAAC,eAAe,CAAC;YACjE;YACA,MAAMyB;QACR;IACF;AACF"}
         | 
| @@ -1 +1 @@ | |
| 1 | 
            -
            {"version":3,"file":"buildSchema.d.ts","sourceRoot":"","sources":["../../src/models/buildSchema.ts"],"names":[],"mappings":" | 
| 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;AAUhB,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,QAAA,MAAM,WAAW,WACP,eAAe,gBACT,KAAK,EAAE,uBACD,kBAAkB,KACrC,MA+BF,CAAA;AA6cD,eAAe,WAAW,CAAA"}
         | 
| @@ -1,8 +1,13 @@ | |
| 1 | 
            -
             | 
| 1 | 
            +
            import mongoose from 'mongoose';
         | 
| 2 2 | 
             
            import { fieldAffectsData, fieldIsLocalized, fieldIsPresentationalOnly, 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
         | 
| @@ -68,8 +73,7 @@ const fieldToSchemaMap = { | |
| 68 73 | 
             
                                    minimize: false
         | 
| 69 74 | 
             
                                }
         | 
| 70 75 | 
             
                            })
         | 
| 71 | 
            -
                        ] | 
| 72 | 
            -
                        default: undefined
         | 
| 76 | 
            +
                        ]
         | 
| 73 77 | 
             
                    };
         | 
| 74 78 | 
             
                    schema.add({
         | 
| 75 79 | 
             
                        [field.name]: localizeSchema(field, baseSchema, config.localization)
         | 
| @@ -82,8 +86,7 @@ const fieldToSchemaMap = { | |
| 82 86 | 
             
                                _id: false,
         | 
| 83 87 | 
             
                                discriminatorKey: 'blockType'
         | 
| 84 88 | 
             
                            })
         | 
| 85 | 
            -
                        ] | 
| 86 | 
            -
                        default: undefined
         | 
| 89 | 
            +
                        ]
         | 
| 87 90 | 
             
                    };
         | 
| 88 91 | 
             
                    schema.add({
         | 
| 89 92 | 
             
                        [field.name]: localizeSchema(field, fieldSchema, config.localization)
         | 
| @@ -101,12 +104,10 @@ const fieldToSchemaMap = { | |
| 101 104 | 
             
                        });
         | 
| 102 105 | 
             
                        if (field.localized && config.localization) {
         | 
| 103 106 | 
             
                            config.localization.localeCodes.forEach((localeCode)=>{
         | 
| 104 | 
            -
                                // eslint-disable-next-line @typescript-eslint/ban-ts-comment
         | 
| 105 107 | 
             
                                // @ts-expect-error Possible incorrect typing in mongoose types, this works
         | 
| 106 108 | 
             
                                schema.path(`${field.name}.${localeCode}`).discriminator(blockItem.slug, blockSchema);
         | 
| 107 109 | 
             
                            });
         | 
| 108 110 | 
             
                        } else {
         | 
| 109 | 
            -
                            // eslint-disable-next-line @typescript-eslint/ban-ts-comment
         | 
| 110 111 | 
             
                            // @ts-expect-error Possible incorrect typing in mongoose types, this works
         | 
| 111 112 | 
             
                            schema.path(field.name).discriminator(blockItem.slug, blockSchema);
         | 
| 112 113 | 
             
                        }
         | 
| @@ -209,7 +210,7 @@ const fieldToSchemaMap = { | |
| 209 210 | 
             
                            type: [
         | 
| 210 211 | 
             
                                Number
         | 
| 211 212 | 
             
                            ],
         | 
| 212 | 
            -
                            default: field | 
| 213 | 
            +
                            default: formatDefaultValue(field),
         | 
| 213 214 | 
             
                            required: false
         | 
| 214 215 | 
             
                        }
         | 
| 215 216 | 
             
                    };
         | 
| @@ -285,7 +286,7 @@ const fieldToSchemaMap = { | |
| 285 286 | 
             
                                        type: [
         | 
| 286 287 | 
             
                                            localeSchema
         | 
| 287 288 | 
             
                                        ],
         | 
| 288 | 
            -
                                        default:  | 
| 289 | 
            +
                                        default: formatDefaultValue(field)
         | 
| 289 290 | 
             
                                    } : localeSchema
         | 
| 290 291 | 
             
                                };
         | 
| 291 292 | 
             
                            }, {}),
         | 
| @@ -310,7 +311,7 @@ const fieldToSchemaMap = { | |
| 310 311 | 
             
                                type: [
         | 
| 311 312 | 
             
                                    schemaToReturn
         | 
| 312 313 | 
             
                                ],
         | 
| 313 | 
            -
                                default:  | 
| 314 | 
            +
                                default: formatDefaultValue(field)
         | 
| 314 315 | 
             
                            };
         | 
| 315 316 | 
             
                        }
         | 
| 316 317 | 
             
                    } else {
         | 
| @@ -324,7 +325,7 @@ const fieldToSchemaMap = { | |
| 324 325 | 
             
                                type: [
         | 
| 325 326 | 
             
                                    schemaToReturn
         | 
| 326 327 | 
             
                                ],
         | 
| 327 | 
            -
                                default:  | 
| 328 | 
            +
                                default: formatDefaultValue(field)
         | 
| 328 329 | 
             
                            };
         | 
| 329 330 | 
             
                        }
         | 
| 330 331 | 
             
                    }
         | 
| @@ -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 {\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  SanitizedConfig,\n  SanitizedLocalizationConfig,\n  SelectField,\n  Tab,\n  TabsField,\n  TextField,\n  TextareaField,\n  UploadField,\n} from 'payload'\n\nimport mongoose from 'mongoose'\nimport {\n  fieldAffectsData,\n  fieldIsLocalized,\n  fieldIsPresentationalOnly,\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\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"],"mappings":"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"}
         | 
| 1 | 
            +
            {"version":3,"sources":["../../src/models/buildSchema.ts"],"sourcesContent":["import type { IndexOptions, Schema, SchemaOptions, SchemaTypeOptions } from 'mongoose'\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  SanitizedConfig,\n  SanitizedLocalizationConfig,\n  SelectField,\n  Tab,\n  TabsField,\n  TextField,\n  TextareaField,\n  UploadField,\n} from 'payload'\n\nimport mongoose from 'mongoose'\nimport {\n  fieldAffectsData,\n  fieldIsLocalized,\n  fieldIsPresentationalOnly,\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: 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    }\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    }\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      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: 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') 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\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      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","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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"}
         | 
| @@ -1 +1 @@ | |
| 1 | 
            -
            {"version":3,"file":"buildAndOrConditions.d.ts","sourceRoot":"","sources":["../../src/queries/buildAndOrConditions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAIpD,wBAAsB,oBAAoB,CAAC,EACzC,cAAc,EACd,MAAM,EACN,UAAU,EACV,MAAM,EACN,OAAO,EACP,KAAK,GACN,EAAE;IACD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,KAAK,EAAE,CAAA;CACf,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC, | 
| 1 | 
            +
            {"version":3,"file":"buildAndOrConditions.d.ts","sourceRoot":"","sources":["../../src/queries/buildAndOrConditions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAIpD,wBAAsB,oBAAoB,CAAC,EACzC,cAAc,EACd,MAAM,EACN,UAAU,EACV,MAAM,EACN,OAAO,EACP,KAAK,GACN,EAAE;IACD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,KAAK,EAAE,CAAA;CACf,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAsBrC"}
         | 
| @@ -3,11 +3,9 @@ export async function buildAndOrConditions({ collectionSlug, fields, globalSlug, | |
| 3 3 | 
             
                const completedConditions = [];
         | 
| 4 4 | 
             
                // Loop over all AND / OR operations and add them to the AND / OR query param
         | 
| 5 5 | 
             
                // Operations should come through as an array
         | 
| 6 | 
            -
                // eslint-disable-next-line no-restricted-syntax
         | 
| 7 6 | 
             
                for (const condition of where){
         | 
| 8 7 | 
             
                    // If the operation is properly formatted as an object
         | 
| 9 8 | 
             
                    if (typeof condition === 'object') {
         | 
| 10 | 
            -
                        // eslint-disable-next-line no-await-in-loop
         | 
| 11 9 | 
             
                        const result = await parseParams({
         | 
| 12 10 | 
             
                            collectionSlug,
         | 
| 13 11 | 
             
                            fields,
         | 
| @@ -1 +1 @@ | |
| 1 | 
            -
            {"version":3,"sources":["../../src/queries/buildAndOrConditions.ts"],"sourcesContent":["import type { Field, Payload, Where } from 'payload'\n\nimport { parseParams } from './parseParams.js'\n\nexport async function buildAndOrConditions({\n  collectionSlug,\n  fields,\n  globalSlug,\n  locale,\n  payload,\n  where,\n}: {\n  collectionSlug?: string\n  fields: Field[]\n  globalSlug?: string\n  locale?: string\n  payload: Payload\n  where: Where[]\n}): Promise<Record<string, unknown>[]> {\n  const completedConditions = []\n  // Loop over all AND / OR operations and add them to the AND / OR query param\n  // Operations should come through as an array\n | 
| 1 | 
            +
            {"version":3,"sources":["../../src/queries/buildAndOrConditions.ts"],"sourcesContent":["import type { Field, Payload, Where } from 'payload'\n\nimport { parseParams } from './parseParams.js'\n\nexport async function buildAndOrConditions({\n  collectionSlug,\n  fields,\n  globalSlug,\n  locale,\n  payload,\n  where,\n}: {\n  collectionSlug?: string\n  fields: Field[]\n  globalSlug?: string\n  locale?: string\n  payload: Payload\n  where: Where[]\n}): Promise<Record<string, unknown>[]> {\n  const completedConditions = []\n  // Loop over all AND / OR operations and add them to the AND / OR query param\n  // Operations should come through as an array\n\n  for (const condition of where) {\n    // If the operation is properly formatted as an object\n    if (typeof condition === 'object') {\n      const result = await parseParams({\n        collectionSlug,\n        fields,\n        globalSlug,\n        locale,\n        payload,\n        where: condition,\n      })\n      if (Object.keys(result).length > 0) {\n        completedConditions.push(result)\n      }\n    }\n  }\n  return completedConditions\n}\n"],"names":["parseParams","buildAndOrConditions","collectionSlug","fields","globalSlug","locale","payload","where","completedConditions","condition","result","Object","keys","length","push"],"mappings":"AAEA,SAASA,WAAW,QAAQ,mBAAkB;AAE9C,OAAO,eAAeC,qBAAqB,EACzCC,cAAc,EACdC,MAAM,EACNC,UAAU,EACVC,MAAM,EACNC,OAAO,EACPC,KAAK,EAQN;IACC,MAAMC,sBAAsB,EAAE;IAC9B,6EAA6E;IAC7E,6CAA6C;IAE7C,KAAK,MAAMC,aAAaF,MAAO;QAC7B,sDAAsD;QACtD,IAAI,OAAOE,cAAc,UAAU;YACjC,MAAMC,SAAS,MAAMV,YAAY;gBAC/BE;gBACAC;gBACAC;gBACAC;gBACAC;gBACAC,OAAOE;YACT;YACA,IAAIE,OAAOC,IAAI,CAACF,QAAQG,MAAM,GAAG,GAAG;gBAClCL,oBAAoBM,IAAI,CAACJ;YAC3B;QACF;IACF;IACA,OAAOF;AACT"}
         |