@payloadcms/db-mongodb 3.27.0-canary.7edf702 → 3.27.0-canary.7f71c2e
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/init.d.ts.map +1 -1
- package/dist/init.js +4 -1
- package/dist/init.js.map +1 -1
- package/dist/models/buildCollectionSchema.d.ts.map +1 -1
- package/dist/models/buildCollectionSchema.js +1 -0
- package/dist/models/buildCollectionSchema.js.map +1 -1
- package/dist/models/buildSchema.d.ts +2 -1
- package/dist/models/buildSchema.d.ts.map +1 -1
- package/dist/models/buildSchema.js +17 -0
- package/dist/models/buildSchema.js.map +1 -1
- package/package.json +3 -3
package/dist/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAA6B,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAA6B,MAAM,SAAS,CAAA;AAmB9D,eAAO,MAAM,IAAI,EAAE,IA0FlB,CAAA"}
|
package/dist/init.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import mongoose from 'mongoose';
|
|
2
2
|
import paginate from 'mongoose-paginate-v2';
|
|
3
|
-
import { buildVersionCollectionFields, buildVersionGlobalFields } from 'payload';
|
|
3
|
+
import { buildVersionCollectionFields, buildVersionCompoundIndexes, buildVersionGlobalFields } from 'payload';
|
|
4
4
|
import { buildCollectionSchema } from './models/buildCollectionSchema.js';
|
|
5
5
|
import { buildGlobalModel } from './models/buildGlobalModel.js';
|
|
6
6
|
import { buildSchema } from './models/buildSchema.js';
|
|
@@ -27,6 +27,9 @@ export const init = function init() {
|
|
|
27
27
|
},
|
|
28
28
|
...schemaOptions
|
|
29
29
|
},
|
|
30
|
+
compoundIndexes: buildVersionCompoundIndexes({
|
|
31
|
+
indexes: collection.sanitizedIndexes
|
|
32
|
+
}),
|
|
30
33
|
configFields: versionCollectionFields,
|
|
31
34
|
payload: this.payload
|
|
32
35
|
});
|
package/dist/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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 {
|
|
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 {\n buildVersionCollectionFields,\n buildVersionCompoundIndexes,\n buildVersionGlobalFields,\n} from 'payload'\n\nimport type { MongooseAdapter } from './index.js'\nimport type { CollectionModel, GlobalModel } 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/getBuildQueryPlugin.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 schemaOptions = this.collectionsSchemaOptions?.[collection.slug]\n\n const schema = buildCollectionSchema(collection, this.payload, schemaOptions)\n\n if (collection.versions) {\n const versionModelName = getDBName({ config: collection, versions: true })\n\n const versionCollectionFields = buildVersionCollectionFields(this.payload.config, collection)\n\n const versionSchema = buildSchema({\n buildSchemaOptions: {\n disableUnique: true,\n draftsEnabled: true,\n indexSortableFields: this.payload.config.indexSortableFields,\n options: {\n minimize: false,\n timestamps: false,\n },\n ...schemaOptions,\n },\n compoundIndexes: buildVersionCompoundIndexes({ indexes: collection.sanitizedIndexes }),\n configFields: versionCollectionFields,\n payload: this.payload,\n })\n\n versionSchema.plugin<any, PaginateOptions>(paginate, { useEstimatedCount: true }).plugin(\n getBuildQueryPlugin({\n collectionSlug: collection.slug,\n versionsFields: buildVersionCollectionFields(this.payload.config, collection, true),\n }),\n )\n\n const versionCollectionName =\n this.autoPluralization === true && !collection.dbName ? undefined : versionModelName\n\n this.versions[collection.slug] = mongoose.model(\n versionModelName,\n versionSchema,\n versionCollectionName,\n ) as unknown as CollectionModel\n }\n\n const modelName = getDBName({ config: collection })\n const collectionName =\n this.autoPluralization === true && !collection.dbName ? undefined : modelName\n\n this.collections[collection.slug] = mongoose.model<any>(\n modelName,\n schema,\n collectionName,\n ) as CollectionModel\n })\n\n this.globals = buildGlobalModel(this.payload) as GlobalModel\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(this.payload.config, global)\n\n const versionSchema = buildSchema({\n buildSchemaOptions: {\n disableUnique: true,\n draftsEnabled: true,\n indexSortableFields: this.payload.config.indexSortableFields,\n options: {\n minimize: false,\n timestamps: false,\n },\n },\n configFields: versionGlobalFields,\n payload: this.payload,\n })\n\n versionSchema.plugin<any, PaginateOptions>(paginate, { useEstimatedCount: true }).plugin(\n getBuildQueryPlugin({\n versionsFields: buildVersionGlobalFields(this.payload.config, global, true),\n }),\n )\n\n this.versions[global.slug] = mongoose.model<any>(\n versionModelName,\n versionSchema,\n versionModelName,\n ) as CollectionModel\n }\n })\n}\n"],"names":["mongoose","paginate","buildVersionCollectionFields","buildVersionCompoundIndexes","buildVersionGlobalFields","buildCollectionSchema","buildGlobalModel","buildSchema","getBuildQueryPlugin","getDBName","init","payload","config","collections","forEach","collection","schemaOptions","collectionsSchemaOptions","slug","schema","versions","versionModelName","versionCollectionFields","versionSchema","buildSchemaOptions","disableUnique","draftsEnabled","indexSortableFields","options","minimize","timestamps","compoundIndexes","indexes","sanitizedIndexes","configFields","plugin","useEstimatedCount","collectionSlug","versionsFields","versionCollectionName","autoPluralization","dbName","undefined","model","modelName","collectionName","globals","global","versionGlobalFields"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildCollectionSchema.d.ts","sourceRoot":"","sources":["../../src/models/buildCollectionSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,MAAM,EAAE,MAAM,UAAU,CAAA;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAOjE,eAAO,MAAM,qBAAqB,eACpB,yBAAyB,WAC5B,OAAO,yBAEf,
|
|
1
|
+
{"version":3,"file":"buildCollectionSchema.d.ts","sourceRoot":"","sources":["../../src/models/buildCollectionSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,MAAM,EAAE,MAAM,UAAU,CAAA;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAOjE,eAAO,MAAM,qBAAqB,eACpB,yBAAyB,WAC5B,OAAO,yBAEf,MAmCF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/models/buildCollectionSchema.ts"],"sourcesContent":["import type { PaginateOptions, Schema } from 'mongoose'\nimport type { Payload, SanitizedCollectionConfig } from 'payload'\n\nimport paginate from 'mongoose-paginate-v2'\n\nimport { getBuildQueryPlugin } from '../queries/getBuildQueryPlugin.js'\nimport { buildSchema } from './buildSchema.js'\n\nexport const buildCollectionSchema = (\n collection: SanitizedCollectionConfig,\n payload: Payload,\n schemaOptions = {},\n): Schema => {\n const schema = buildSchema({\n buildSchemaOptions: {\n draftsEnabled: Boolean(\n typeof collection?.versions === 'object' && collection.versions.drafts,\n ),\n indexSortableFields: payload.config.indexSortableFields,\n options: {\n minimize: false,\n timestamps: collection.timestamps !== false,\n ...schemaOptions,\n },\n },\n configFields: collection.fields,\n payload,\n })\n\n if (Array.isArray(collection.upload.filenameCompoundIndex)) {\n const indexDefinition = collection.upload.filenameCompoundIndex.reduce<Record<string, 1>>(\n (acc, index) => {\n acc[index] = 1\n return acc\n },\n {},\n )\n\n schema.index(indexDefinition, { unique: true })\n }\n\n schema\n .plugin<any, PaginateOptions>(paginate, { useEstimatedCount: true })\n .plugin(getBuildQueryPlugin({ collectionSlug: collection.slug }))\n\n return schema\n}\n"],"names":["paginate","getBuildQueryPlugin","buildSchema","buildCollectionSchema","collection","payload","schemaOptions","schema","buildSchemaOptions","draftsEnabled","Boolean","versions","drafts","indexSortableFields","config","options","minimize","timestamps","configFields","fields","Array","isArray","upload","filenameCompoundIndex","indexDefinition","reduce","acc","index","unique","plugin","useEstimatedCount","collectionSlug","slug"],"mappings":"AAGA,OAAOA,cAAc,uBAAsB;AAE3C,SAASC,mBAAmB,QAAQ,oCAAmC;AACvE,SAASC,WAAW,QAAQ,mBAAkB;AAE9C,OAAO,MAAMC,wBAAwB,CACnCC,YACAC,SACAC,gBAAgB,CAAC,CAAC;IAElB,MAAMC,SAASL,YAAY;QACzBM,oBAAoB;YAClBC,eAAeC,QACb,OAAON,YAAYO,aAAa,YAAYP,WAAWO,QAAQ,CAACC,MAAM;YAExEC,qBAAqBR,QAAQS,MAAM,CAACD,mBAAmB;YACvDE,SAAS;gBACPC,UAAU;gBACVC,YAAYb,WAAWa,UAAU,KAAK;gBACtC,GAAGX,aAAa;YAClB;QACF;QACAY,
|
|
1
|
+
{"version":3,"sources":["../../src/models/buildCollectionSchema.ts"],"sourcesContent":["import type { PaginateOptions, Schema } from 'mongoose'\nimport type { Payload, SanitizedCollectionConfig } from 'payload'\n\nimport paginate from 'mongoose-paginate-v2'\n\nimport { getBuildQueryPlugin } from '../queries/getBuildQueryPlugin.js'\nimport { buildSchema } from './buildSchema.js'\n\nexport const buildCollectionSchema = (\n collection: SanitizedCollectionConfig,\n payload: Payload,\n schemaOptions = {},\n): Schema => {\n const schema = buildSchema({\n buildSchemaOptions: {\n draftsEnabled: Boolean(\n typeof collection?.versions === 'object' && collection.versions.drafts,\n ),\n indexSortableFields: payload.config.indexSortableFields,\n options: {\n minimize: false,\n timestamps: collection.timestamps !== false,\n ...schemaOptions,\n },\n },\n compoundIndexes: collection.sanitizedIndexes,\n configFields: collection.fields,\n payload,\n })\n\n if (Array.isArray(collection.upload.filenameCompoundIndex)) {\n const indexDefinition = collection.upload.filenameCompoundIndex.reduce<Record<string, 1>>(\n (acc, index) => {\n acc[index] = 1\n return acc\n },\n {},\n )\n\n schema.index(indexDefinition, { unique: true })\n }\n\n schema\n .plugin<any, PaginateOptions>(paginate, { useEstimatedCount: true })\n .plugin(getBuildQueryPlugin({ collectionSlug: collection.slug }))\n\n return schema\n}\n"],"names":["paginate","getBuildQueryPlugin","buildSchema","buildCollectionSchema","collection","payload","schemaOptions","schema","buildSchemaOptions","draftsEnabled","Boolean","versions","drafts","indexSortableFields","config","options","minimize","timestamps","compoundIndexes","sanitizedIndexes","configFields","fields","Array","isArray","upload","filenameCompoundIndex","indexDefinition","reduce","acc","index","unique","plugin","useEstimatedCount","collectionSlug","slug"],"mappings":"AAGA,OAAOA,cAAc,uBAAsB;AAE3C,SAASC,mBAAmB,QAAQ,oCAAmC;AACvE,SAASC,WAAW,QAAQ,mBAAkB;AAE9C,OAAO,MAAMC,wBAAwB,CACnCC,YACAC,SACAC,gBAAgB,CAAC,CAAC;IAElB,MAAMC,SAASL,YAAY;QACzBM,oBAAoB;YAClBC,eAAeC,QACb,OAAON,YAAYO,aAAa,YAAYP,WAAWO,QAAQ,CAACC,MAAM;YAExEC,qBAAqBR,QAAQS,MAAM,CAACD,mBAAmB;YACvDE,SAAS;gBACPC,UAAU;gBACVC,YAAYb,WAAWa,UAAU,KAAK;gBACtC,GAAGX,aAAa;YAClB;QACF;QACAY,iBAAiBd,WAAWe,gBAAgB;QAC5CC,cAAchB,WAAWiB,MAAM;QAC/BhB;IACF;IAEA,IAAIiB,MAAMC,OAAO,CAACnB,WAAWoB,MAAM,CAACC,qBAAqB,GAAG;QAC1D,MAAMC,kBAAkBtB,WAAWoB,MAAM,CAACC,qBAAqB,CAACE,MAAM,CACpE,CAACC,KAAKC;YACJD,GAAG,CAACC,MAAM,GAAG;YACb,OAAOD;QACT,GACA,CAAC;QAGHrB,OAAOsB,KAAK,CAACH,iBAAiB;YAAEI,QAAQ;QAAK;IAC/C;IAEAvB,OACGwB,MAAM,CAAuB/B,UAAU;QAAEgC,mBAAmB;IAAK,GACjED,MAAM,CAAC9B,oBAAoB;QAAEgC,gBAAgB7B,WAAW8B,IAAI;IAAC;IAEhE,OAAO3B;AACT,EAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Schema, SchemaOptions } from 'mongoose';
|
|
2
|
-
import { type Field, type Payload } from 'payload';
|
|
2
|
+
import { type Field, type Payload, type SanitizedCompoundIndex } from 'payload';
|
|
3
3
|
export type BuildSchemaOptions = {
|
|
4
4
|
allowIDField?: boolean;
|
|
5
5
|
disableUnique?: boolean;
|
|
@@ -9,6 +9,7 @@ export type BuildSchemaOptions = {
|
|
|
9
9
|
};
|
|
10
10
|
export declare const buildSchema: (args: {
|
|
11
11
|
buildSchemaOptions: BuildSchemaOptions;
|
|
12
|
+
compoundIndexes?: SanitizedCompoundIndex[];
|
|
12
13
|
configFields: Field[];
|
|
13
14
|
parentIsLocalized?: boolean;
|
|
14
15
|
payload: Payload;
|
|
@@ -1 +1 @@
|
|
|
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;AAGtF,OAAO,
|
|
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;AAGtF,OAAO,EAQL,KAAK,KAAK,EAMV,KAAK,OAAO,EAMZ,KAAK,sBAAsB,EAQ5B,MAAM,SAAS,CAAA;AAShB,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;AAkFD,eAAO,MAAM,WAAW,SAAU;IAChC,kBAAkB,EAAE,kBAAkB,CAAA;IACtC,eAAe,CAAC,EAAE,sBAAsB,EAAE,CAAA;IAC1C,YAAY,EAAE,KAAK,EAAE,CAAA;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,OAAO,EAAE,OAAO,CAAA;CACjB,KAAG,MAwDH,CAAA"}
|
|
@@ -66,6 +66,23 @@ export const buildSchema = (args)=>{
|
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
});
|
|
69
|
+
if (args.compoundIndexes) {
|
|
70
|
+
for (const index of args.compoundIndexes){
|
|
71
|
+
const indexDefinition = {};
|
|
72
|
+
for (const field of index.fields){
|
|
73
|
+
if (field.pathHasLocalized && payload.config.localization) {
|
|
74
|
+
for (const locale of payload.config.localization.locales){
|
|
75
|
+
indexDefinition[field.localizedPath.replace('<locale>', locale.code)] = 1;
|
|
76
|
+
}
|
|
77
|
+
} else {
|
|
78
|
+
indexDefinition[field.path] = 1;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
schema.index(indexDefinition, {
|
|
82
|
+
unique: args.buildSchemaOptions.disableUnique ? false : index.unique
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
}
|
|
69
86
|
return schema;
|
|
70
87
|
};
|
|
71
88
|
const array = (field, schema, payload, buildSchemaOptions, parentIsLocalized)=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/models/buildSchema.ts"],"sourcesContent":["import type { IndexOptions, Schema, SchemaOptions, SchemaTypeOptions } from 'mongoose'\n\nimport mongoose from 'mongoose'\nimport {\n APIError,\n type ArrayField,\n type BlocksField,\n type CheckboxField,\n type CodeField,\n type CollapsibleField,\n type DateField,\n type EmailField,\n type Field,\n type FieldAffectingData,\n type GroupField,\n type JSONField,\n type NonPresentationalField,\n type NumberField,\n type Payload,\n type PointField,\n type RadioField,\n type RelationshipField,\n type RichTextField,\n type RowField,\n type SanitizedLocalizationConfig,\n type SelectField,\n type Tab,\n type TabsField,\n type TextareaField,\n type TextField,\n type UploadField,\n} from 'payload'\nimport {\n fieldAffectsData,\n fieldIsPresentationalOnly,\n fieldIsVirtual,\n fieldShouldBeLocalized,\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<T extends Field = Field> = (\n field: T,\n schema: Schema,\n config: Payload,\n buildSchemaOptions: BuildSchemaOptions,\n parentIsLocalized: boolean,\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 = ({\n buildSchemaOptions,\n field,\n parentIsLocalized,\n}: {\n buildSchemaOptions: BuildSchemaOptions\n field: FieldAffectingData\n parentIsLocalized: boolean\n}) => {\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 (fieldShouldBeLocalized({ field, parentIsLocalized }) ||\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: SchemaTypeOptions<any>,\n localization: false | SanitizedLocalizationConfig,\n parentIsLocalized: boolean,\n) => {\n if (\n fieldShouldBeLocalized({ field: entity, parentIsLocalized }) &&\n localization &&\n Array.isArray(localization.locales)\n ) {\n return {\n type: localization.localeCodes.reduce(\n (localeSchema, locale) => ({\n ...localeSchema,\n [locale]: schema,\n }),\n {\n _id: false,\n },\n ),\n localized: true,\n }\n }\n return schema\n}\n\nexport const buildSchema = (args: {\n buildSchemaOptions: BuildSchemaOptions\n configFields: Field[]\n parentIsLocalized?: boolean\n payload: Payload\n}): Schema => {\n const { buildSchemaOptions = {}, configFields, parentIsLocalized, payload } = args\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 as any)\n\n schemaFields.forEach((field) => {\n if (fieldIsVirtual(field)) {\n return\n }\n\n if (!fieldIsPresentationalOnly(field)) {\n const addFieldSchema = getSchemaGenerator(field.type)\n\n if (addFieldSchema) {\n addFieldSchema(field, schema, payload, buildSchemaOptions, parentIsLocalized ?? false)\n }\n }\n })\n\n return schema\n}\n\nconst array: FieldSchemaGenerator<ArrayField> = (\n field: ArrayField,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n) => {\n const baseSchema: SchemaTypeOptions<any> = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n type: [\n buildSchema({\n buildSchemaOptions: {\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 configFields: field.fields,\n parentIsLocalized: parentIsLocalized || field.localized,\n payload,\n }),\n ],\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, payload.config.localization, parentIsLocalized),\n })\n}\n\nconst blocks: FieldSchemaGenerator<BlocksField> = (\n field: BlocksField,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n const fieldSchema: SchemaTypeOptions<any> = {\n type: [new mongoose.Schema({}, { _id: false, discriminatorKey: 'blockType' })],\n }\n\n schema.add({\n [field.name]: localizeSchema(\n field,\n fieldSchema,\n payload.config.localization,\n parentIsLocalized,\n ),\n })\n ;(field.blockReferences ?? field.blocks).forEach((blockItem) => {\n const blockSchema = new mongoose.Schema({}, { _id: false, id: false })\n\n const block = typeof blockItem === 'string' ? payload.blocks[blockItem] : blockItem\n\n if (!block) {\n return\n }\n\n block.fields.forEach((blockField) => {\n const addFieldSchema = getSchemaGenerator(blockField.type)\n\n if (addFieldSchema) {\n addFieldSchema(\n blockField,\n blockSchema,\n payload,\n buildSchemaOptions,\n (parentIsLocalized || field.localized) ?? false,\n )\n }\n })\n\n if (fieldShouldBeLocalized({ field, parentIsLocalized }) && payload.config.localization) {\n payload.config.localization.localeCodes.forEach((localeCode) => {\n // @ts-expect-error Possible incorrect typing in mongoose types, this works\n schema.path(`${field.name}.${localeCode}`).discriminator(block.slug, blockSchema)\n })\n } else {\n // @ts-expect-error Possible incorrect typing in mongoose types, this works\n schema.path(field.name).discriminator(block.slug, blockSchema)\n }\n })\n}\n\nconst checkbox: FieldSchemaGenerator<CheckboxField> = (\n field: CheckboxField,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n const baseSchema: SchemaTypeOptions<any> = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n type: Boolean,\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, payload.config.localization, parentIsLocalized),\n })\n}\n\nconst code: FieldSchemaGenerator<CodeField> = (\n field: CodeField,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n const baseSchema: SchemaTypeOptions<any> = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n type: String,\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, payload.config.localization, parentIsLocalized),\n })\n}\n\nconst collapsible: FieldSchemaGenerator<CollapsibleField> = (\n field: CollapsibleField,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n field.fields.forEach((subField: Field) => {\n if (fieldIsVirtual(subField)) {\n return\n }\n\n const addFieldSchema = getSchemaGenerator(subField.type)\n\n if (addFieldSchema) {\n addFieldSchema(subField, schema, payload, buildSchemaOptions, parentIsLocalized)\n }\n })\n}\n\nconst date: FieldSchemaGenerator<DateField> = (\n field: DateField,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n const baseSchema: SchemaTypeOptions<any> = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n type: Date,\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, payload.config.localization, parentIsLocalized),\n })\n}\n\nconst email: FieldSchemaGenerator<EmailField> = (\n field,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n const baseSchema: SchemaTypeOptions<any> = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n type: String,\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, payload.config.localization, parentIsLocalized),\n })\n}\n\nconst group: FieldSchemaGenerator<GroupField> = (\n field: GroupField,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n const formattedBaseSchema = formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized })\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: SchemaTypeOptions<any> = {\n ...formattedBaseSchema,\n type: buildSchema({\n buildSchemaOptions: {\n disableUnique: buildSchemaOptions.disableUnique,\n draftsEnabled: buildSchemaOptions.draftsEnabled,\n indexSortableFields,\n options: {\n _id: false,\n id: false,\n minimize: false,\n },\n },\n configFields: field.fields,\n parentIsLocalized: parentIsLocalized || field.localized,\n payload,\n }),\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, payload.config.localization, parentIsLocalized),\n })\n}\n\nconst json: FieldSchemaGenerator<JSONField> = (\n field,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n const baseSchema: SchemaTypeOptions<any> = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n type: mongoose.Schema.Types.Mixed,\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, payload.config.localization, parentIsLocalized),\n })\n}\n\nconst number: FieldSchemaGenerator<NumberField> = (\n field,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n const baseSchema: SchemaTypeOptions<any> = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n type: field.hasMany ? [Number] : Number,\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, payload.config.localization, parentIsLocalized),\n })\n}\n\nconst point: FieldSchemaGenerator<PointField> = (\n field,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n const baseSchema: SchemaTypeOptions<unknown> = {\n type: {\n type: String,\n enum: ['Point'],\n ...(typeof field.defaultValue !== 'undefined' && {\n default: 'Point',\n }),\n },\n coordinates: {\n type: [Number],\n default: formatDefaultValue(field),\n required: false,\n },\n }\n\n if (\n buildSchemaOptions.disableUnique &&\n field.unique &&\n fieldShouldBeLocalized({ field, parentIsLocalized })\n ) {\n baseSchema.coordinates.sparse = true\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, payload.config.localization, parentIsLocalized),\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 (fieldShouldBeLocalized({ field, parentIsLocalized }) && payload.config.localization) {\n payload.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\nconst radio: FieldSchemaGenerator<RadioField> = (\n field,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n const baseSchema = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n type: String,\n enum: field.options.map((option) => {\n if (typeof option === 'object') {\n return option.value\n }\n return option\n }),\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, payload.config.localization, parentIsLocalized),\n })\n}\n\nconst relationship: FieldSchemaGenerator<RelationshipField> = (\n field,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n) => {\n const hasManyRelations = Array.isArray(field.relationTo)\n let schemaToReturn: { [key: string]: any } = {}\n\n const valueType = getRelationshipValueType(field, payload)\n\n if (fieldShouldBeLocalized({ field, parentIsLocalized }) && payload.config.localization) {\n schemaToReturn = {\n _id: false,\n type: payload.config.localization.localeCodes.reduce((locales, locale) => {\n let localeSchema: { [key: string]: any } = {}\n\n if (hasManyRelations) {\n localeSchema = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n _id: false,\n type: mongoose.Schema.Types.Mixed,\n relationTo: { type: String, enum: field.relationTo },\n value: {\n type: valueType,\n refPath: `${field.name}.${locale}.relationTo`,\n },\n }\n } else {\n localeSchema = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n type: valueType,\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({ buildSchemaOptions, field, parentIsLocalized }),\n _id: false,\n type: mongoose.Schema.Types.Mixed,\n relationTo: { type: String, enum: field.relationTo },\n value: {\n type: valueType,\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({ buildSchemaOptions, field, parentIsLocalized }),\n type: valueType,\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\nconst richText: FieldSchemaGenerator<RichTextField> = (\n field,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n const baseSchema = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n type: mongoose.Schema.Types.Mixed,\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, payload.config.localization, parentIsLocalized),\n })\n}\n\nconst row: FieldSchemaGenerator<RowField> = (\n field,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n field.fields.forEach((subField: Field) => {\n if (fieldIsVirtual(subField)) {\n return\n }\n\n const addFieldSchema = getSchemaGenerator(subField.type)\n\n if (addFieldSchema) {\n addFieldSchema(subField, schema, payload, buildSchemaOptions, parentIsLocalized)\n }\n })\n}\n\nconst select: FieldSchemaGenerator<SelectField> = (\n field,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n const baseSchema: SchemaTypeOptions<any> = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n type: String,\n enum: field.options.map((option) => {\n if (typeof option === 'object') {\n return option.value\n }\n return option\n }),\n }\n\n if (buildSchemaOptions.draftsEnabled || !field.required) {\n ;(baseSchema.enum as unknown[]).push(null)\n }\n\n schema.add({\n [field.name]: localizeSchema(\n field,\n field.hasMany ? [baseSchema] : baseSchema,\n payload.config.localization,\n parentIsLocalized,\n ),\n })\n}\n\nconst tabs: FieldSchemaGenerator<TabsField> = (\n field,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n field.tabs.forEach((tab) => {\n if (tabHasName(tab)) {\n if (fieldIsVirtual(tab)) {\n return\n }\n const baseSchema = {\n type: buildSchema({\n buildSchemaOptions: {\n disableUnique: buildSchemaOptions.disableUnique,\n draftsEnabled: buildSchemaOptions.draftsEnabled,\n options: {\n _id: false,\n id: false,\n minimize: false,\n },\n },\n configFields: tab.fields,\n parentIsLocalized: parentIsLocalized || tab.localized,\n payload,\n }),\n }\n\n schema.add({\n [tab.name]: localizeSchema(tab, baseSchema, payload.config.localization, parentIsLocalized),\n })\n } else {\n tab.fields.forEach((subField: Field) => {\n if (fieldIsVirtual(subField)) {\n return\n }\n const addFieldSchema = getSchemaGenerator(subField.type)\n\n if (addFieldSchema) {\n addFieldSchema(\n subField,\n schema,\n payload,\n buildSchemaOptions,\n (parentIsLocalized || tab.localized) ?? false,\n )\n }\n })\n }\n })\n}\n\nconst text: FieldSchemaGenerator<TextField> = (\n field,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n const baseSchema = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n type: field.hasMany ? [String] : String,\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, payload.config.localization, parentIsLocalized),\n })\n}\n\nconst textarea: FieldSchemaGenerator<TextareaField> = (\n field: TextareaField,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n const baseSchema = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n type: String,\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, payload.config.localization, parentIsLocalized),\n })\n}\n\nconst upload: FieldSchemaGenerator<UploadField> = (\n field,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n const hasManyRelations = Array.isArray(field.relationTo)\n let schemaToReturn: { [key: string]: any } = {}\n\n const valueType = getRelationshipValueType(field, payload)\n\n if (fieldShouldBeLocalized({ field, parentIsLocalized }) && payload.config.localization) {\n schemaToReturn = {\n _id: false,\n type: payload.config.localization.localeCodes.reduce((locales, locale) => {\n let localeSchema: { [key: string]: any } = {}\n\n if (hasManyRelations) {\n localeSchema = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n _id: false,\n type: mongoose.Schema.Types.Mixed,\n relationTo: { type: String, enum: field.relationTo },\n value: {\n type: valueType,\n refPath: `${field.name}.${locale}.relationTo`,\n },\n }\n } else {\n localeSchema = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n type: valueType,\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({ buildSchemaOptions, field, parentIsLocalized }),\n _id: false,\n type: mongoose.Schema.Types.Mixed,\n relationTo: { type: String, enum: field.relationTo },\n value: {\n type: valueType,\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({ buildSchemaOptions, field, parentIsLocalized }),\n type: valueType,\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\nconst getSchemaGenerator = (fieldType: string): FieldSchemaGenerator | null => {\n if (fieldType in fieldToSchemaMap) {\n return fieldToSchemaMap[fieldType as keyof typeof fieldToSchemaMap] as FieldSchemaGenerator\n }\n\n return null\n}\n\nconst fieldToSchemaMap = {\n array,\n blocks,\n checkbox,\n code,\n collapsible,\n date,\n email,\n group,\n json,\n number,\n point,\n radio,\n relationship,\n richText,\n row,\n select,\n tabs,\n text,\n textarea,\n upload,\n}\n\nconst getRelationshipValueType = (field: RelationshipField | UploadField, payload: Payload) => {\n if (typeof field.relationTo === 'string') {\n const customIDType = payload.collections[field.relationTo]?.customIDType\n\n if (!customIDType) {\n return mongoose.Schema.Types.ObjectId\n }\n\n if (customIDType === 'number') {\n return mongoose.Schema.Types.Number\n }\n\n return mongoose.Schema.Types.String\n }\n\n // has custom id relationTo\n if (\n field.relationTo.some((relationTo) => {\n return !!payload.collections[relationTo]?.customIDType\n })\n ) {\n return mongoose.Schema.Types.Mixed\n }\n\n return mongoose.Schema.Types.ObjectId\n}\n"],"names":["mongoose","fieldAffectsData","fieldIsPresentationalOnly","fieldIsVirtual","fieldShouldBeLocalized","tabHasName","formatDefaultValue","field","defaultValue","undefined","formatBaseSchema","buildSchemaOptions","parentIsLocalized","disableUnique","draftsEnabled","indexSortableFields","schema","default","index","unique","required","type","sparse","hidden","localizeSchema","entity","localization","Array","isArray","locales","localeCodes","reduce","localeSchema","locale","_id","localized","buildSchema","args","configFields","payload","allowIDField","options","fields","schemaFields","idField","find","name","Number","String","filter","Schema","forEach","addFieldSchema","getSchemaGenerator","array","baseSchema","id","minimize","add","config","blocks","fieldSchema","discriminatorKey","blockReferences","blockItem","blockSchema","block","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","valueType","getRelationshipValueType","refPath","ref","richText","row","select","push","tabs","tab","text","textarea","upload","fieldType","fieldToSchemaMap","customIDType","collections","ObjectId","some"],"mappings":"AAEA,OAAOA,cAAc,WAAU;AA8B/B,SACEC,gBAAgB,EAChBC,yBAAyB,EACzBC,cAAc,EACdC,sBAAsB,EACtBC,UAAU,QACL,iBAAgB;AAkBvB;;;CAGC,GACD,MAAMC,qBAAqB,CAACC,QAC1B,OAAOA,MAAMC,YAAY,KAAK,eAAe,OAAOD,MAAMC,YAAY,KAAK,aACvED,MAAMC,YAAY,GAClBC;AAEN,MAAMC,mBAAmB,CAAC,EACxBC,kBAAkB,EAClBJ,KAAK,EACLK,iBAAiB,EAKlB;IACC,MAAM,EAAEC,aAAa,EAAEC,aAAa,EAAEC,mBAAmB,EAAE,GAAGJ;IAC9D,MAAMK,SAAqC;QACzCC,SAASX,mBAAmBC;QAC5BW,OAAOX,MAAMW,KAAK,IAAK,CAACL,iBAAiBN,MAAMY,MAAM,IAAKJ,uBAAuB;QACjFK,UAAU;QACVD,QAAQ,AAAC,CAACN,iBAAiBN,MAAMY,MAAM,IAAK;IAC9C;IAEA,IACEH,OAAOG,MAAM,IACZf,CAAAA,uBAAuB;QAAEG;QAAOK;IAAkB,MACjDE,iBACCb,iBAAiBM,UAChBA,MAAMc,IAAI,KAAK,WACfd,MAAMc,IAAI,KAAK,SACfd,MAAMa,QAAQ,KAAK,IAAI,GAC3B;QACAJ,OAAOM,MAAM,GAAG;IAClB;IAEA,IAAIf,MAAMgB,MAAM,EAAE;QAChBP,OAAOO,MAAM,GAAG;IAClB;IAEA,OAAOP;AACT;AAEA,MAAMQ,iBAAiB,CACrBC,QACAT,QACAU,cACAd;IAEA,IACER,uBAAuB;QAAEG,OAAOkB;QAAQb;IAAkB,MAC1Dc,gBACAC,MAAMC,OAAO,CAACF,aAAaG,OAAO,GAClC;QACA,OAAO;YACLR,MAAMK,aAAaI,WAAW,CAACC,MAAM,CACnC,CAACC,cAAcC,SAAY,CAAA;oBACzB,GAAGD,YAAY;oBACf,CAACC,OAAO,EAAEjB;gBACZ,CAAA,GACA;gBACEkB,KAAK;YACP;YAEFC,WAAW;QACb;IACF;IACA,OAAOnB;AACT;AAEA,OAAO,MAAMoB,cAAc,CAACC;IAM1B,MAAM,EAAE1B,qBAAqB,CAAC,CAAC,EAAE2B,YAAY,EAAE1B,iBAAiB,EAAE2B,OAAO,EAAE,GAAGF;IAC9E,MAAM,EAAEG,YAAY,EAAEC,OAAO,EAAE,GAAG9B;IAClC,IAAI+B,SAAS,CAAC;IAEd,IAAIC,eAAeL;IAEnB,IAAI,CAACE,cAAc;QACjB,MAAMI,UAAUD,aAAaE,IAAI,CAAC,CAACtC,QAAUN,iBAAiBM,UAAUA,MAAMuC,IAAI,KAAK;QACvF,IAAIF,SAAS;YACXF,SAAS;gBACPR,KAAKU,QAAQvB,IAAI,KAAK,WAAW0B,SAASC;YAC5C;YACAL,eAAeA,aAAaM,MAAM,CAChC,CAAC1C,QAAU,CAAEN,CAAAA,iBAAiBM,UAAUA,MAAMuC,IAAI,KAAK,IAAG;QAE9D;IACF;IAEA,MAAM9B,SAAS,IAAIhB,SAASkD,MAAM,CAACR,QAAQD;IAE3CE,aAAaQ,OAAO,CAAC,CAAC5C;QACpB,IAAIJ,eAAeI,QAAQ;YACzB;QACF;QAEA,IAAI,CAACL,0BAA0BK,QAAQ;YACrC,MAAM6C,iBAAiBC,mBAAmB9C,MAAMc,IAAI;YAEpD,IAAI+B,gBAAgB;gBAClBA,eAAe7C,OAAOS,QAAQuB,SAAS5B,oBAAoBC,qBAAqB;YAClF;QACF;IACF;IAEA,OAAOI;AACT,EAAC;AAED,MAAMsC,QAA0C,CAC9C/C,OACAS,QACAuB,SACA5B,oBACAC;IAEA,MAAM2C,aAAqC;QACzC,GAAG7C,iBAAiB;YAAEC;YAAoBJ;YAAOK;QAAkB,EAAE;QACrES,MAAM;YACJe,YAAY;gBACVzB,oBAAoB;oBAClB6B,cAAc;oBACd3B,eAAeF,mBAAmBE,aAAa;oBAC/CC,eAAeH,mBAAmBG,aAAa;oBAC/C2B,SAAS;wBACPP,KAAK;wBACLsB,IAAI;wBACJC,UAAU;oBACZ;gBACF;gBACAnB,cAAc/B,MAAMmC,MAAM;gBAC1B9B,mBAAmBA,qBAAqBL,MAAM4B,SAAS;gBACvDI;YACF;SACD;IACH;IAEAvB,OAAO0C,GAAG,CAAC;QACT,CAACnD,MAAMuC,IAAI,CAAC,EAAEtB,eAAejB,OAAOgD,YAAYhB,QAAQoB,MAAM,CAACjC,YAAY,EAAEd;IAC/E;AACF;AAEA,MAAMgD,SAA4C,CAChDrD,OACAS,QACAuB,SACA5B,oBACAC;IAEA,MAAMiD,cAAsC;QAC1CxC,MAAM;YAAC,IAAIrB,SAASkD,MAAM,CAAC,CAAC,GAAG;gBAAEhB,KAAK;gBAAO4B,kBAAkB;YAAY;SAAG;IAChF;IAEA9C,OAAO0C,GAAG,CAAC;QACT,CAACnD,MAAMuC,IAAI,CAAC,EAAEtB,eACZjB,OACAsD,aACAtB,QAAQoB,MAAM,CAACjC,YAAY,EAC3Bd;IAEJ;IACEL,CAAAA,MAAMwD,eAAe,IAAIxD,MAAMqD,MAAM,AAAD,EAAGT,OAAO,CAAC,CAACa;QAChD,MAAMC,cAAc,IAAIjE,SAASkD,MAAM,CAAC,CAAC,GAAG;YAAEhB,KAAK;YAAOsB,IAAI;QAAM;QAEpE,MAAMU,QAAQ,OAAOF,cAAc,WAAWzB,QAAQqB,MAAM,CAACI,UAAU,GAAGA;QAE1E,IAAI,CAACE,OAAO;YACV;QACF;QAEAA,MAAMxB,MAAM,CAACS,OAAO,CAAC,CAACgB;YACpB,MAAMf,iBAAiBC,mBAAmBc,WAAW9C,IAAI;YAEzD,IAAI+B,gBAAgB;gBAClBA,eACEe,YACAF,aACA1B,SACA5B,oBACA,AAACC,CAAAA,qBAAqBL,MAAM4B,SAAS,AAAD,KAAM;YAE9C;QACF;QAEA,IAAI/B,uBAAuB;YAAEG;YAAOK;QAAkB,MAAM2B,QAAQoB,MAAM,CAACjC,YAAY,EAAE;YACvFa,QAAQoB,MAAM,CAACjC,YAAY,CAACI,WAAW,CAACqB,OAAO,CAAC,CAACiB;gBAC/C,2EAA2E;gBAC3EpD,OAAOqD,IAAI,CAAC,GAAG9D,MAAMuC,IAAI,CAAC,CAAC,EAAEsB,YAAY,EAAEE,aAAa,CAACJ,MAAMK,IAAI,EAAEN;YACvE;QACF,OAAO;YACL,2EAA2E;YAC3EjD,OAAOqD,IAAI,CAAC9D,MAAMuC,IAAI,EAAEwB,aAAa,CAACJ,MAAMK,IAAI,EAAEN;QACpD;IACF;AACF;AAEA,MAAMO,WAAgD,CACpDjE,OACAS,QACAuB,SACA5B,oBACAC;IAEA,MAAM2C,aAAqC;QACzC,GAAG7C,iBAAiB;YAAEC;YAAoBJ;YAAOK;QAAkB,EAAE;QACrES,MAAMoD;IACR;IAEAzD,OAAO0C,GAAG,CAAC;QACT,CAACnD,MAAMuC,IAAI,CAAC,EAAEtB,eAAejB,OAAOgD,YAAYhB,QAAQoB,MAAM,CAACjC,YAAY,EAAEd;IAC/E;AACF;AAEA,MAAM8D,OAAwC,CAC5CnE,OACAS,QACAuB,SACA5B,oBACAC;IAEA,MAAM2C,aAAqC;QACzC,GAAG7C,iBAAiB;YAAEC;YAAoBJ;YAAOK;QAAkB,EAAE;QACrES,MAAM2B;IACR;IAEAhC,OAAO0C,GAAG,CAAC;QACT,CAACnD,MAAMuC,IAAI,CAAC,EAAEtB,eAAejB,OAAOgD,YAAYhB,QAAQoB,MAAM,CAACjC,YAAY,EAAEd;IAC/E;AACF;AAEA,MAAM+D,cAAsD,CAC1DpE,OACAS,QACAuB,SACA5B,oBACAC;IAEAL,MAAMmC,MAAM,CAACS,OAAO,CAAC,CAACyB;QACpB,IAAIzE,eAAeyE,WAAW;YAC5B;QACF;QAEA,MAAMxB,iBAAiBC,mBAAmBuB,SAASvD,IAAI;QAEvD,IAAI+B,gBAAgB;YAClBA,eAAewB,UAAU5D,QAAQuB,SAAS5B,oBAAoBC;QAChE;IACF;AACF;AAEA,MAAMiE,OAAwC,CAC5CtE,OACAS,QACAuB,SACA5B,oBACAC;IAEA,MAAM2C,aAAqC;QACzC,GAAG7C,iBAAiB;YAAEC;YAAoBJ;YAAOK;QAAkB,EAAE;QACrES,MAAMyD;IACR;IAEA9D,OAAO0C,GAAG,CAAC;QACT,CAACnD,MAAMuC,IAAI,CAAC,EAAEtB,eAAejB,OAAOgD,YAAYhB,QAAQoB,MAAM,CAACjC,YAAY,EAAEd;IAC/E;AACF;AAEA,MAAMmE,QAA0C,CAC9CxE,OACAS,QACAuB,SACA5B,oBACAC;IAEA,MAAM2C,aAAqC;QACzC,GAAG7C,iBAAiB;YAAEC;YAAoBJ;YAAOK;QAAkB,EAAE;QACrES,MAAM2B;IACR;IAEAhC,OAAO0C,GAAG,CAAC;QACT,CAACnD,MAAMuC,IAAI,CAAC,EAAEtB,eAAejB,OAAOgD,YAAYhB,QAAQoB,MAAM,CAACjC,YAAY,EAAEd;IAC/E;AACF;AAEA,MAAMoE,QAA0C,CAC9CzE,OACAS,QACAuB,SACA5B,oBACAC;IAEA,MAAMqE,sBAAsBvE,iBAAiB;QAAEC;QAAoBJ;QAAOK;IAAkB;IAE5F,kEAAkE;IAClE,MAAMG,sBACJJ,mBAAmBI,mBAAmB,IACtCR,MAAMuC,IAAI,KAAK,aACfnC,mBAAmBG,aAAa;IAElC,MAAMyC,aAAqC;QACzC,GAAG0B,mBAAmB;QACtB5D,MAAMe,YAAY;YAChBzB,oBAAoB;gBAClBE,eAAeF,mBAAmBE,aAAa;gBAC/CC,eAAeH,mBAAmBG,aAAa;gBAC/CC;gBACA0B,SAAS;oBACPP,KAAK;oBACLsB,IAAI;oBACJC,UAAU;gBACZ;YACF;YACAnB,cAAc/B,MAAMmC,MAAM;YAC1B9B,mBAAmBA,qBAAqBL,MAAM4B,SAAS;YACvDI;QACF;IACF;IAEAvB,OAAO0C,GAAG,CAAC;QACT,CAACnD,MAAMuC,IAAI,CAAC,EAAEtB,eAAejB,OAAOgD,YAAYhB,QAAQoB,MAAM,CAACjC,YAAY,EAAEd;IAC/E;AACF;AAEA,MAAMsE,OAAwC,CAC5C3E,OACAS,QACAuB,SACA5B,oBACAC;IAEA,MAAM2C,aAAqC;QACzC,GAAG7C,iBAAiB;YAAEC;YAAoBJ;YAAOK;QAAkB,EAAE;QACrES,MAAMrB,SAASkD,MAAM,CAACiC,KAAK,CAACC,KAAK;IACnC;IAEApE,OAAO0C,GAAG,CAAC;QACT,CAACnD,MAAMuC,IAAI,CAAC,EAAEtB,eAAejB,OAAOgD,YAAYhB,QAAQoB,MAAM,CAACjC,YAAY,EAAEd;IAC/E;AACF;AAEA,MAAMyE,SAA4C,CAChD9E,OACAS,QACAuB,SACA5B,oBACAC;IAEA,MAAM2C,aAAqC;QACzC,GAAG7C,iBAAiB;YAAEC;YAAoBJ;YAAOK;QAAkB,EAAE;QACrES,MAAMd,MAAM+E,OAAO,GAAG;YAACvC;SAAO,GAAGA;IACnC;IAEA/B,OAAO0C,GAAG,CAAC;QACT,CAACnD,MAAMuC,IAAI,CAAC,EAAEtB,eAAejB,OAAOgD,YAAYhB,QAAQoB,MAAM,CAACjC,YAAY,EAAEd;IAC/E;AACF;AAEA,MAAM2E,QAA0C,CAC9ChF,OACAS,QACAuB,SACA5B,oBACAC;IAEA,MAAM2C,aAAyC;QAC7ClC,MAAM;YACJA,MAAM2B;YACNwC,MAAM;gBAAC;aAAQ;YACf,GAAI,OAAOjF,MAAMC,YAAY,KAAK,eAAe;gBAC/CS,SAAS;YACX,CAAC;QACH;QACAwE,aAAa;YACXpE,MAAM;gBAAC0B;aAAO;YACd9B,SAASX,mBAAmBC;YAC5Ba,UAAU;QACZ;IACF;IAEA,IACET,mBAAmBE,aAAa,IAChCN,MAAMY,MAAM,IACZf,uBAAuB;QAAEG;QAAOK;IAAkB,IAClD;QACA2C,WAAWkC,WAAW,CAACnE,MAAM,GAAG;IAClC;IAEAN,OAAO0C,GAAG,CAAC;QACT,CAACnD,MAAMuC,IAAI,CAAC,EAAEtB,eAAejB,OAAOgD,YAAYhB,QAAQoB,MAAM,CAACjC,YAAY,EAAEd;IAC/E;IAEA,IAAIL,MAAMW,KAAK,KAAK,QAAQX,MAAMW,KAAK,KAAKT,WAAW;QACrD,MAAMiF,eAA6B,CAAC;QACpC,IAAI,CAAC/E,mBAAmBE,aAAa,IAAIN,MAAMY,MAAM,EAAE;YACrDuE,aAAapE,MAAM,GAAG;YACtBoE,aAAavE,MAAM,GAAG;QACxB;QACA,IAAIf,uBAAuB;YAAEG;YAAOK;QAAkB,MAAM2B,QAAQoB,MAAM,CAACjC,YAAY,EAAE;YACvFa,QAAQoB,MAAM,CAACjC,YAAY,CAACG,OAAO,CAACsB,OAAO,CAAC,CAAClB;gBAC3CjB,OAAOE,KAAK,CAAC;oBAAE,CAAC,GAAGX,MAAMuC,IAAI,CAAC,CAAC,EAAEb,OAAOyC,IAAI,EAAE,CAAC,EAAE;gBAAW,GAAGgB;YACjE;QACF,OAAO;YACL1E,OAAOE,KAAK,CAAC;gBAAE,CAACX,MAAMuC,IAAI,CAAC,EAAE;YAAW,GAAG4C;QAC7C;IACF;AACF;AAEA,MAAMC,QAA0C,CAC9CpF,OACAS,QACAuB,SACA5B,oBACAC;IAEA,MAAM2C,aAAa;QACjB,GAAG7C,iBAAiB;YAAEC;YAAoBJ;YAAOK;QAAkB,EAAE;QACrES,MAAM2B;QACNwC,MAAMjF,MAAMkC,OAAO,CAACmD,GAAG,CAAC,CAACC;YACvB,IAAI,OAAOA,WAAW,UAAU;gBAC9B,OAAOA,OAAOC,KAAK;YACrB;YACA,OAAOD;QACT;IACF;IAEA7E,OAAO0C,GAAG,CAAC;QACT,CAACnD,MAAMuC,IAAI,CAAC,EAAEtB,eAAejB,OAAOgD,YAAYhB,QAAQoB,MAAM,CAACjC,YAAY,EAAEd;IAC/E;AACF;AAEA,MAAMmF,eAAwD,CAC5DxF,OACAS,QACAuB,SACA5B,oBACAC;IAEA,MAAMoF,mBAAmBrE,MAAMC,OAAO,CAACrB,MAAM0F,UAAU;IACvD,IAAIC,iBAAyC,CAAC;IAE9C,MAAMC,YAAYC,yBAAyB7F,OAAOgC;IAElD,IAAInC,uBAAuB;QAAEG;QAAOK;IAAkB,MAAM2B,QAAQoB,MAAM,CAACjC,YAAY,EAAE;QACvFwE,iBAAiB;YACfhE,KAAK;YACLb,MAAMkB,QAAQoB,MAAM,CAACjC,YAAY,CAACI,WAAW,CAACC,MAAM,CAAC,CAACF,SAASI;gBAC7D,IAAID,eAAuC,CAAC;gBAE5C,IAAIgE,kBAAkB;oBACpBhE,eAAe;wBACb,GAAGtB,iBAAiB;4BAAEC;4BAAoBJ;4BAAOK;wBAAkB,EAAE;wBACrEsB,KAAK;wBACLb,MAAMrB,SAASkD,MAAM,CAACiC,KAAK,CAACC,KAAK;wBACjCa,YAAY;4BAAE5E,MAAM2B;4BAAQwC,MAAMjF,MAAM0F,UAAU;wBAAC;wBACnDH,OAAO;4BACLzE,MAAM8E;4BACNE,SAAS,GAAG9F,MAAMuC,IAAI,CAAC,CAAC,EAAEb,OAAO,WAAW,CAAC;wBAC/C;oBACF;gBACF,OAAO;oBACLD,eAAe;wBACb,GAAGtB,iBAAiB;4BAAEC;4BAAoBJ;4BAAOK;wBAAkB,EAAE;wBACrES,MAAM8E;wBACNG,KAAK/F,MAAM0F,UAAU;oBACvB;gBACF;gBAEA,OAAO;oBACL,GAAGpE,OAAO;oBACV,CAACI,OAAO,EAAE1B,MAAM+E,OAAO,GACnB;wBAAEjE,MAAM;4BAACW;yBAAa;wBAAEf,SAASX,mBAAmBC;oBAAO,IAC3DyB;gBACN;YACF,GAAG,CAAC;YACJG,WAAW;QACb;IACF,OAAO,IAAI6D,kBAAkB;QAC3BE,iBAAiB;YACf,GAAGxF,iBAAiB;gBAAEC;gBAAoBJ;gBAAOK;YAAkB,EAAE;YACrEsB,KAAK;YACLb,MAAMrB,SAASkD,MAAM,CAACiC,KAAK,CAACC,KAAK;YACjCa,YAAY;gBAAE5E,MAAM2B;gBAAQwC,MAAMjF,MAAM0F,UAAU;YAAC;YACnDH,OAAO;gBACLzE,MAAM8E;gBACNE,SAAS,GAAG9F,MAAMuC,IAAI,CAAC,WAAW,CAAC;YACrC;QACF;QAEA,IAAIvC,MAAM+E,OAAO,EAAE;YACjBY,iBAAiB;gBACf7E,MAAM;oBAAC6E;iBAAe;gBACtBjF,SAASX,mBAAmBC;YAC9B;QACF;IACF,OAAO;QACL2F,iBAAiB;YACf,GAAGxF,iBAAiB;gBAAEC;gBAAoBJ;gBAAOK;YAAkB,EAAE;YACrES,MAAM8E;YACNG,KAAK/F,MAAM0F,UAAU;QACvB;QAEA,IAAI1F,MAAM+E,OAAO,EAAE;YACjBY,iBAAiB;gBACf7E,MAAM;oBAAC6E;iBAAe;gBACtBjF,SAASX,mBAAmBC;YAC9B;QACF;IACF;IAEAS,OAAO0C,GAAG,CAAC;QACT,CAACnD,MAAMuC,IAAI,CAAC,EAAEoD;IAChB;AACF;AAEA,MAAMK,WAAgD,CACpDhG,OACAS,QACAuB,SACA5B,oBACAC;IAEA,MAAM2C,aAAa;QACjB,GAAG7C,iBAAiB;YAAEC;YAAoBJ;YAAOK;QAAkB,EAAE;QACrES,MAAMrB,SAASkD,MAAM,CAACiC,KAAK,CAACC,KAAK;IACnC;IAEApE,OAAO0C,GAAG,CAAC;QACT,CAACnD,MAAMuC,IAAI,CAAC,EAAEtB,eAAejB,OAAOgD,YAAYhB,QAAQoB,MAAM,CAACjC,YAAY,EAAEd;IAC/E;AACF;AAEA,MAAM4F,MAAsC,CAC1CjG,OACAS,QACAuB,SACA5B,oBACAC;IAEAL,MAAMmC,MAAM,CAACS,OAAO,CAAC,CAACyB;QACpB,IAAIzE,eAAeyE,WAAW;YAC5B;QACF;QAEA,MAAMxB,iBAAiBC,mBAAmBuB,SAASvD,IAAI;QAEvD,IAAI+B,gBAAgB;YAClBA,eAAewB,UAAU5D,QAAQuB,SAAS5B,oBAAoBC;QAChE;IACF;AACF;AAEA,MAAM6F,SAA4C,CAChDlG,OACAS,QACAuB,SACA5B,oBACAC;IAEA,MAAM2C,aAAqC;QACzC,GAAG7C,iBAAiB;YAAEC;YAAoBJ;YAAOK;QAAkB,EAAE;QACrES,MAAM2B;QACNwC,MAAMjF,MAAMkC,OAAO,CAACmD,GAAG,CAAC,CAACC;YACvB,IAAI,OAAOA,WAAW,UAAU;gBAC9B,OAAOA,OAAOC,KAAK;YACrB;YACA,OAAOD;QACT;IACF;IAEA,IAAIlF,mBAAmBG,aAAa,IAAI,CAACP,MAAMa,QAAQ,EAAE;;QACrDmC,WAAWiC,IAAI,CAAekB,IAAI,CAAC;IACvC;IAEA1F,OAAO0C,GAAG,CAAC;QACT,CAACnD,MAAMuC,IAAI,CAAC,EAAEtB,eACZjB,OACAA,MAAM+E,OAAO,GAAG;YAAC/B;SAAW,GAAGA,YAC/BhB,QAAQoB,MAAM,CAACjC,YAAY,EAC3Bd;IAEJ;AACF;AAEA,MAAM+F,OAAwC,CAC5CpG,OACAS,QACAuB,SACA5B,oBACAC;IAEAL,MAAMoG,IAAI,CAACxD,OAAO,CAAC,CAACyD;QAClB,IAAIvG,WAAWuG,MAAM;YACnB,IAAIzG,eAAeyG,MAAM;gBACvB;YACF;YACA,MAAMrD,aAAa;gBACjBlC,MAAMe,YAAY;oBAChBzB,oBAAoB;wBAClBE,eAAeF,mBAAmBE,aAAa;wBAC/CC,eAAeH,mBAAmBG,aAAa;wBAC/C2B,SAAS;4BACPP,KAAK;4BACLsB,IAAI;4BACJC,UAAU;wBACZ;oBACF;oBACAnB,cAAcsE,IAAIlE,MAAM;oBACxB9B,mBAAmBA,qBAAqBgG,IAAIzE,SAAS;oBACrDI;gBACF;YACF;YAEAvB,OAAO0C,GAAG,CAAC;gBACT,CAACkD,IAAI9D,IAAI,CAAC,EAAEtB,eAAeoF,KAAKrD,YAAYhB,QAAQoB,MAAM,CAACjC,YAAY,EAAEd;YAC3E;QACF,OAAO;YACLgG,IAAIlE,MAAM,CAACS,OAAO,CAAC,CAACyB;gBAClB,IAAIzE,eAAeyE,WAAW;oBAC5B;gBACF;gBACA,MAAMxB,iBAAiBC,mBAAmBuB,SAASvD,IAAI;gBAEvD,IAAI+B,gBAAgB;oBAClBA,eACEwB,UACA5D,QACAuB,SACA5B,oBACA,AAACC,CAAAA,qBAAqBgG,IAAIzE,SAAS,AAAD,KAAM;gBAE5C;YACF;QACF;IACF;AACF;AAEA,MAAM0E,OAAwC,CAC5CtG,OACAS,QACAuB,SACA5B,oBACAC;IAEA,MAAM2C,aAAa;QACjB,GAAG7C,iBAAiB;YAAEC;YAAoBJ;YAAOK;QAAkB,EAAE;QACrES,MAAMd,MAAM+E,OAAO,GAAG;YAACtC;SAAO,GAAGA;IACnC;IAEAhC,OAAO0C,GAAG,CAAC;QACT,CAACnD,MAAMuC,IAAI,CAAC,EAAEtB,eAAejB,OAAOgD,YAAYhB,QAAQoB,MAAM,CAACjC,YAAY,EAAEd;IAC/E;AACF;AAEA,MAAMkG,WAAgD,CACpDvG,OACAS,QACAuB,SACA5B,oBACAC;IAEA,MAAM2C,aAAa;QACjB,GAAG7C,iBAAiB;YAAEC;YAAoBJ;YAAOK;QAAkB,EAAE;QACrES,MAAM2B;IACR;IAEAhC,OAAO0C,GAAG,CAAC;QACT,CAACnD,MAAMuC,IAAI,CAAC,EAAEtB,eAAejB,OAAOgD,YAAYhB,QAAQoB,MAAM,CAACjC,YAAY,EAAEd;IAC/E;AACF;AAEA,MAAMmG,SAA4C,CAChDxG,OACAS,QACAuB,SACA5B,oBACAC;IAEA,MAAMoF,mBAAmBrE,MAAMC,OAAO,CAACrB,MAAM0F,UAAU;IACvD,IAAIC,iBAAyC,CAAC;IAE9C,MAAMC,YAAYC,yBAAyB7F,OAAOgC;IAElD,IAAInC,uBAAuB;QAAEG;QAAOK;IAAkB,MAAM2B,QAAQoB,MAAM,CAACjC,YAAY,EAAE;QACvFwE,iBAAiB;YACfhE,KAAK;YACLb,MAAMkB,QAAQoB,MAAM,CAACjC,YAAY,CAACI,WAAW,CAACC,MAAM,CAAC,CAACF,SAASI;gBAC7D,IAAID,eAAuC,CAAC;gBAE5C,IAAIgE,kBAAkB;oBACpBhE,eAAe;wBACb,GAAGtB,iBAAiB;4BAAEC;4BAAoBJ;4BAAOK;wBAAkB,EAAE;wBACrEsB,KAAK;wBACLb,MAAMrB,SAASkD,MAAM,CAACiC,KAAK,CAACC,KAAK;wBACjCa,YAAY;4BAAE5E,MAAM2B;4BAAQwC,MAAMjF,MAAM0F,UAAU;wBAAC;wBACnDH,OAAO;4BACLzE,MAAM8E;4BACNE,SAAS,GAAG9F,MAAMuC,IAAI,CAAC,CAAC,EAAEb,OAAO,WAAW,CAAC;wBAC/C;oBACF;gBACF,OAAO;oBACLD,eAAe;wBACb,GAAGtB,iBAAiB;4BAAEC;4BAAoBJ;4BAAOK;wBAAkB,EAAE;wBACrES,MAAM8E;wBACNG,KAAK/F,MAAM0F,UAAU;oBACvB;gBACF;gBAEA,OAAO;oBACL,GAAGpE,OAAO;oBACV,CAACI,OAAO,EAAE1B,MAAM+E,OAAO,GACnB;wBAAEjE,MAAM;4BAACW;yBAAa;wBAAEf,SAASX,mBAAmBC;oBAAO,IAC3DyB;gBACN;YACF,GAAG,CAAC;YACJG,WAAW;QACb;IACF,OAAO,IAAI6D,kBAAkB;QAC3BE,iBAAiB;YACf,GAAGxF,iBAAiB;gBAAEC;gBAAoBJ;gBAAOK;YAAkB,EAAE;YACrEsB,KAAK;YACLb,MAAMrB,SAASkD,MAAM,CAACiC,KAAK,CAACC,KAAK;YACjCa,YAAY;gBAAE5E,MAAM2B;gBAAQwC,MAAMjF,MAAM0F,UAAU;YAAC;YACnDH,OAAO;gBACLzE,MAAM8E;gBACNE,SAAS,GAAG9F,MAAMuC,IAAI,CAAC,WAAW,CAAC;YACrC;QACF;QAEA,IAAIvC,MAAM+E,OAAO,EAAE;YACjBY,iBAAiB;gBACf7E,MAAM;oBAAC6E;iBAAe;gBACtBjF,SAASX,mBAAmBC;YAC9B;QACF;IACF,OAAO;QACL2F,iBAAiB;YACf,GAAGxF,iBAAiB;gBAAEC;gBAAoBJ;gBAAOK;YAAkB,EAAE;YACrES,MAAM8E;YACNG,KAAK/F,MAAM0F,UAAU;QACvB;QAEA,IAAI1F,MAAM+E,OAAO,EAAE;YACjBY,iBAAiB;gBACf7E,MAAM;oBAAC6E;iBAAe;gBACtBjF,SAASX,mBAAmBC;YAC9B;QACF;IACF;IAEAS,OAAO0C,GAAG,CAAC;QACT,CAACnD,MAAMuC,IAAI,CAAC,EAAEoD;IAChB;AACF;AAEA,MAAM7C,qBAAqB,CAAC2D;IAC1B,IAAIA,aAAaC,kBAAkB;QACjC,OAAOA,gBAAgB,CAACD,UAA2C;IACrE;IAEA,OAAO;AACT;AAEA,MAAMC,mBAAmB;IACvB3D;IACAM;IACAY;IACAE;IACAC;IACAE;IACAE;IACAC;IACAE;IACAG;IACAE;IACAI;IACAI;IACAQ;IACAC;IACAC;IACAE;IACAE;IACAC;IACAC;AACF;AAEA,MAAMX,2BAA2B,CAAC7F,OAAwCgC;IACxE,IAAI,OAAOhC,MAAM0F,UAAU,KAAK,UAAU;QACxC,MAAMiB,eAAe3E,QAAQ4E,WAAW,CAAC5G,MAAM0F,UAAU,CAAC,EAAEiB;QAE5D,IAAI,CAACA,cAAc;YACjB,OAAOlH,SAASkD,MAAM,CAACiC,KAAK,CAACiC,QAAQ;QACvC;QAEA,IAAIF,iBAAiB,UAAU;YAC7B,OAAOlH,SAASkD,MAAM,CAACiC,KAAK,CAACpC,MAAM;QACrC;QAEA,OAAO/C,SAASkD,MAAM,CAACiC,KAAK,CAACnC,MAAM;IACrC;IAEA,2BAA2B;IAC3B,IACEzC,MAAM0F,UAAU,CAACoB,IAAI,CAAC,CAACpB;QACrB,OAAO,CAAC,CAAC1D,QAAQ4E,WAAW,CAAClB,WAAW,EAAEiB;IAC5C,IACA;QACA,OAAOlH,SAASkD,MAAM,CAACiC,KAAK,CAACC,KAAK;IACpC;IAEA,OAAOpF,SAASkD,MAAM,CAACiC,KAAK,CAACiC,QAAQ;AACvC"}
|
|
1
|
+
{"version":3,"sources":["../../src/models/buildSchema.ts"],"sourcesContent":["import type { IndexOptions, Schema, SchemaOptions, SchemaTypeOptions } from 'mongoose'\n\nimport mongoose from 'mongoose'\nimport {\n type ArrayField,\n type BlocksField,\n type CheckboxField,\n type CodeField,\n type CollapsibleField,\n type DateField,\n type EmailField,\n type Field,\n type FieldAffectingData,\n type GroupField,\n type JSONField,\n type NonPresentationalField,\n type NumberField,\n type Payload,\n type PointField,\n type RadioField,\n type RelationshipField,\n type RichTextField,\n type RowField,\n type SanitizedCompoundIndex,\n type SanitizedLocalizationConfig,\n type SelectField,\n type Tab,\n type TabsField,\n type TextareaField,\n type TextField,\n type UploadField,\n} from 'payload'\nimport {\n fieldAffectsData,\n fieldIsPresentationalOnly,\n fieldIsVirtual,\n fieldShouldBeLocalized,\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<T extends Field = Field> = (\n field: T,\n schema: Schema,\n config: Payload,\n buildSchemaOptions: BuildSchemaOptions,\n parentIsLocalized: boolean,\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 = ({\n buildSchemaOptions,\n field,\n parentIsLocalized,\n}: {\n buildSchemaOptions: BuildSchemaOptions\n field: FieldAffectingData\n parentIsLocalized: boolean\n}) => {\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 (fieldShouldBeLocalized({ field, parentIsLocalized }) ||\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: SchemaTypeOptions<any>,\n localization: false | SanitizedLocalizationConfig,\n parentIsLocalized: boolean,\n) => {\n if (\n fieldShouldBeLocalized({ field: entity, parentIsLocalized }) &&\n localization &&\n Array.isArray(localization.locales)\n ) {\n return {\n type: localization.localeCodes.reduce(\n (localeSchema, locale) => ({\n ...localeSchema,\n [locale]: schema,\n }),\n {\n _id: false,\n },\n ),\n localized: true,\n }\n }\n return schema\n}\n\nexport const buildSchema = (args: {\n buildSchemaOptions: BuildSchemaOptions\n compoundIndexes?: SanitizedCompoundIndex[]\n configFields: Field[]\n parentIsLocalized?: boolean\n payload: Payload\n}): Schema => {\n const { buildSchemaOptions = {}, configFields, parentIsLocalized, payload } = args\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 as any)\n\n schemaFields.forEach((field) => {\n if (fieldIsVirtual(field)) {\n return\n }\n\n if (!fieldIsPresentationalOnly(field)) {\n const addFieldSchema = getSchemaGenerator(field.type)\n\n if (addFieldSchema) {\n addFieldSchema(field, schema, payload, buildSchemaOptions, parentIsLocalized ?? false)\n }\n }\n })\n\n if (args.compoundIndexes) {\n for (const index of args.compoundIndexes) {\n const indexDefinition: Record<string, 1> = {}\n\n for (const field of index.fields) {\n if (field.pathHasLocalized && payload.config.localization) {\n for (const locale of payload.config.localization.locales) {\n indexDefinition[field.localizedPath.replace('<locale>', locale.code)] = 1\n }\n } else {\n indexDefinition[field.path] = 1\n }\n }\n\n schema.index(indexDefinition, {\n unique: args.buildSchemaOptions.disableUnique ? false : index.unique,\n })\n }\n }\n\n return schema\n}\n\nconst array: FieldSchemaGenerator<ArrayField> = (\n field: ArrayField,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n) => {\n const baseSchema: SchemaTypeOptions<any> = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n type: [\n buildSchema({\n buildSchemaOptions: {\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 configFields: field.fields,\n parentIsLocalized: parentIsLocalized || field.localized,\n payload,\n }),\n ],\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, payload.config.localization, parentIsLocalized),\n })\n}\n\nconst blocks: FieldSchemaGenerator<BlocksField> = (\n field: BlocksField,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n const fieldSchema: SchemaTypeOptions<any> = {\n type: [new mongoose.Schema({}, { _id: false, discriminatorKey: 'blockType' })],\n }\n\n schema.add({\n [field.name]: localizeSchema(\n field,\n fieldSchema,\n payload.config.localization,\n parentIsLocalized,\n ),\n })\n ;(field.blockReferences ?? field.blocks).forEach((blockItem) => {\n const blockSchema = new mongoose.Schema({}, { _id: false, id: false })\n\n const block = typeof blockItem === 'string' ? payload.blocks[blockItem] : blockItem\n\n if (!block) {\n return\n }\n\n block.fields.forEach((blockField) => {\n const addFieldSchema = getSchemaGenerator(blockField.type)\n\n if (addFieldSchema) {\n addFieldSchema(\n blockField,\n blockSchema,\n payload,\n buildSchemaOptions,\n (parentIsLocalized || field.localized) ?? false,\n )\n }\n })\n\n if (fieldShouldBeLocalized({ field, parentIsLocalized }) && payload.config.localization) {\n payload.config.localization.localeCodes.forEach((localeCode) => {\n // @ts-expect-error Possible incorrect typing in mongoose types, this works\n schema.path(`${field.name}.${localeCode}`).discriminator(block.slug, blockSchema)\n })\n } else {\n // @ts-expect-error Possible incorrect typing in mongoose types, this works\n schema.path(field.name).discriminator(block.slug, blockSchema)\n }\n })\n}\n\nconst checkbox: FieldSchemaGenerator<CheckboxField> = (\n field: CheckboxField,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n const baseSchema: SchemaTypeOptions<any> = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n type: Boolean,\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, payload.config.localization, parentIsLocalized),\n })\n}\n\nconst code: FieldSchemaGenerator<CodeField> = (\n field: CodeField,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n const baseSchema: SchemaTypeOptions<any> = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n type: String,\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, payload.config.localization, parentIsLocalized),\n })\n}\n\nconst collapsible: FieldSchemaGenerator<CollapsibleField> = (\n field: CollapsibleField,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n field.fields.forEach((subField: Field) => {\n if (fieldIsVirtual(subField)) {\n return\n }\n\n const addFieldSchema = getSchemaGenerator(subField.type)\n\n if (addFieldSchema) {\n addFieldSchema(subField, schema, payload, buildSchemaOptions, parentIsLocalized)\n }\n })\n}\n\nconst date: FieldSchemaGenerator<DateField> = (\n field: DateField,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n const baseSchema: SchemaTypeOptions<any> = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n type: Date,\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, payload.config.localization, parentIsLocalized),\n })\n}\n\nconst email: FieldSchemaGenerator<EmailField> = (\n field,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n const baseSchema: SchemaTypeOptions<any> = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n type: String,\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, payload.config.localization, parentIsLocalized),\n })\n}\n\nconst group: FieldSchemaGenerator<GroupField> = (\n field: GroupField,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n const formattedBaseSchema = formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized })\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: SchemaTypeOptions<any> = {\n ...formattedBaseSchema,\n type: buildSchema({\n buildSchemaOptions: {\n disableUnique: buildSchemaOptions.disableUnique,\n draftsEnabled: buildSchemaOptions.draftsEnabled,\n indexSortableFields,\n options: {\n _id: false,\n id: false,\n minimize: false,\n },\n },\n configFields: field.fields,\n parentIsLocalized: parentIsLocalized || field.localized,\n payload,\n }),\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, payload.config.localization, parentIsLocalized),\n })\n}\n\nconst json: FieldSchemaGenerator<JSONField> = (\n field,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n const baseSchema: SchemaTypeOptions<any> = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n type: mongoose.Schema.Types.Mixed,\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, payload.config.localization, parentIsLocalized),\n })\n}\n\nconst number: FieldSchemaGenerator<NumberField> = (\n field,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n const baseSchema: SchemaTypeOptions<any> = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n type: field.hasMany ? [Number] : Number,\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, payload.config.localization, parentIsLocalized),\n })\n}\n\nconst point: FieldSchemaGenerator<PointField> = (\n field,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n const baseSchema: SchemaTypeOptions<unknown> = {\n type: {\n type: String,\n enum: ['Point'],\n ...(typeof field.defaultValue !== 'undefined' && {\n default: 'Point',\n }),\n },\n coordinates: {\n type: [Number],\n default: formatDefaultValue(field),\n required: false,\n },\n }\n\n if (\n buildSchemaOptions.disableUnique &&\n field.unique &&\n fieldShouldBeLocalized({ field, parentIsLocalized })\n ) {\n baseSchema.coordinates.sparse = true\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, payload.config.localization, parentIsLocalized),\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 (fieldShouldBeLocalized({ field, parentIsLocalized }) && payload.config.localization) {\n payload.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\nconst radio: FieldSchemaGenerator<RadioField> = (\n field,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n const baseSchema = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n type: String,\n enum: field.options.map((option) => {\n if (typeof option === 'object') {\n return option.value\n }\n return option\n }),\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, payload.config.localization, parentIsLocalized),\n })\n}\n\nconst relationship: FieldSchemaGenerator<RelationshipField> = (\n field,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n) => {\n const hasManyRelations = Array.isArray(field.relationTo)\n let schemaToReturn: { [key: string]: any } = {}\n\n const valueType = getRelationshipValueType(field, payload)\n\n if (fieldShouldBeLocalized({ field, parentIsLocalized }) && payload.config.localization) {\n schemaToReturn = {\n _id: false,\n type: payload.config.localization.localeCodes.reduce((locales, locale) => {\n let localeSchema: { [key: string]: any } = {}\n\n if (hasManyRelations) {\n localeSchema = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n _id: false,\n type: mongoose.Schema.Types.Mixed,\n relationTo: { type: String, enum: field.relationTo },\n value: {\n type: valueType,\n refPath: `${field.name}.${locale}.relationTo`,\n },\n }\n } else {\n localeSchema = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n type: valueType,\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({ buildSchemaOptions, field, parentIsLocalized }),\n _id: false,\n type: mongoose.Schema.Types.Mixed,\n relationTo: { type: String, enum: field.relationTo },\n value: {\n type: valueType,\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({ buildSchemaOptions, field, parentIsLocalized }),\n type: valueType,\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\nconst richText: FieldSchemaGenerator<RichTextField> = (\n field,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n const baseSchema = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n type: mongoose.Schema.Types.Mixed,\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, payload.config.localization, parentIsLocalized),\n })\n}\n\nconst row: FieldSchemaGenerator<RowField> = (\n field,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n field.fields.forEach((subField: Field) => {\n if (fieldIsVirtual(subField)) {\n return\n }\n\n const addFieldSchema = getSchemaGenerator(subField.type)\n\n if (addFieldSchema) {\n addFieldSchema(subField, schema, payload, buildSchemaOptions, parentIsLocalized)\n }\n })\n}\n\nconst select: FieldSchemaGenerator<SelectField> = (\n field,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n const baseSchema: SchemaTypeOptions<any> = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n type: String,\n enum: field.options.map((option) => {\n if (typeof option === 'object') {\n return option.value\n }\n return option\n }),\n }\n\n if (buildSchemaOptions.draftsEnabled || !field.required) {\n ;(baseSchema.enum as unknown[]).push(null)\n }\n\n schema.add({\n [field.name]: localizeSchema(\n field,\n field.hasMany ? [baseSchema] : baseSchema,\n payload.config.localization,\n parentIsLocalized,\n ),\n })\n}\n\nconst tabs: FieldSchemaGenerator<TabsField> = (\n field,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n field.tabs.forEach((tab) => {\n if (tabHasName(tab)) {\n if (fieldIsVirtual(tab)) {\n return\n }\n const baseSchema = {\n type: buildSchema({\n buildSchemaOptions: {\n disableUnique: buildSchemaOptions.disableUnique,\n draftsEnabled: buildSchemaOptions.draftsEnabled,\n options: {\n _id: false,\n id: false,\n minimize: false,\n },\n },\n configFields: tab.fields,\n parentIsLocalized: parentIsLocalized || tab.localized,\n payload,\n }),\n }\n\n schema.add({\n [tab.name]: localizeSchema(tab, baseSchema, payload.config.localization, parentIsLocalized),\n })\n } else {\n tab.fields.forEach((subField: Field) => {\n if (fieldIsVirtual(subField)) {\n return\n }\n const addFieldSchema = getSchemaGenerator(subField.type)\n\n if (addFieldSchema) {\n addFieldSchema(\n subField,\n schema,\n payload,\n buildSchemaOptions,\n (parentIsLocalized || tab.localized) ?? false,\n )\n }\n })\n }\n })\n}\n\nconst text: FieldSchemaGenerator<TextField> = (\n field,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n const baseSchema = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n type: field.hasMany ? [String] : String,\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, payload.config.localization, parentIsLocalized),\n })\n}\n\nconst textarea: FieldSchemaGenerator<TextareaField> = (\n field: TextareaField,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n const baseSchema = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n type: String,\n }\n\n schema.add({\n [field.name]: localizeSchema(field, baseSchema, payload.config.localization, parentIsLocalized),\n })\n}\n\nconst upload: FieldSchemaGenerator<UploadField> = (\n field,\n schema,\n payload,\n buildSchemaOptions,\n parentIsLocalized,\n): void => {\n const hasManyRelations = Array.isArray(field.relationTo)\n let schemaToReturn: { [key: string]: any } = {}\n\n const valueType = getRelationshipValueType(field, payload)\n\n if (fieldShouldBeLocalized({ field, parentIsLocalized }) && payload.config.localization) {\n schemaToReturn = {\n _id: false,\n type: payload.config.localization.localeCodes.reduce((locales, locale) => {\n let localeSchema: { [key: string]: any } = {}\n\n if (hasManyRelations) {\n localeSchema = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n _id: false,\n type: mongoose.Schema.Types.Mixed,\n relationTo: { type: String, enum: field.relationTo },\n value: {\n type: valueType,\n refPath: `${field.name}.${locale}.relationTo`,\n },\n }\n } else {\n localeSchema = {\n ...formatBaseSchema({ buildSchemaOptions, field, parentIsLocalized }),\n type: valueType,\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({ buildSchemaOptions, field, parentIsLocalized }),\n _id: false,\n type: mongoose.Schema.Types.Mixed,\n relationTo: { type: String, enum: field.relationTo },\n value: {\n type: valueType,\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({ buildSchemaOptions, field, parentIsLocalized }),\n type: valueType,\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\nconst getSchemaGenerator = (fieldType: string): FieldSchemaGenerator | null => {\n if (fieldType in fieldToSchemaMap) {\n return fieldToSchemaMap[fieldType as keyof typeof fieldToSchemaMap] as FieldSchemaGenerator\n }\n\n return null\n}\n\nconst fieldToSchemaMap = {\n array,\n blocks,\n checkbox,\n code,\n collapsible,\n date,\n email,\n group,\n json,\n number,\n point,\n radio,\n relationship,\n richText,\n row,\n select,\n tabs,\n text,\n textarea,\n upload,\n}\n\nconst getRelationshipValueType = (field: RelationshipField | UploadField, payload: Payload) => {\n if (typeof field.relationTo === 'string') {\n const customIDType = payload.collections[field.relationTo]?.customIDType\n\n if (!customIDType) {\n return mongoose.Schema.Types.ObjectId\n }\n\n if (customIDType === 'number') {\n return mongoose.Schema.Types.Number\n }\n\n return mongoose.Schema.Types.String\n }\n\n // has custom id relationTo\n if (\n field.relationTo.some((relationTo) => {\n return !!payload.collections[relationTo]?.customIDType\n })\n ) {\n return mongoose.Schema.Types.Mixed\n }\n\n return mongoose.Schema.Types.ObjectId\n}\n"],"names":["mongoose","fieldAffectsData","fieldIsPresentationalOnly","fieldIsVirtual","fieldShouldBeLocalized","tabHasName","formatDefaultValue","field","defaultValue","undefined","formatBaseSchema","buildSchemaOptions","parentIsLocalized","disableUnique","draftsEnabled","indexSortableFields","schema","default","index","unique","required","type","sparse","hidden","localizeSchema","entity","localization","Array","isArray","locales","localeCodes","reduce","localeSchema","locale","_id","localized","buildSchema","args","configFields","payload","allowIDField","options","fields","schemaFields","idField","find","name","Number","String","filter","Schema","forEach","addFieldSchema","getSchemaGenerator","compoundIndexes","indexDefinition","pathHasLocalized","config","localizedPath","replace","code","path","array","baseSchema","id","minimize","add","blocks","fieldSchema","discriminatorKey","blockReferences","blockItem","blockSchema","block","blockField","localeCode","discriminator","slug","checkbox","Boolean","collapsible","subField","date","Date","email","group","formattedBaseSchema","json","Types","Mixed","number","hasMany","point","enum","coordinates","indexOptions","radio","map","option","value","relationship","hasManyRelations","relationTo","schemaToReturn","valueType","getRelationshipValueType","refPath","ref","richText","row","select","push","tabs","tab","text","textarea","upload","fieldType","fieldToSchemaMap","customIDType","collections","ObjectId","some"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/db-mongodb",
|
|
3
|
-
"version": "3.27.0-canary.
|
|
3
|
+
"version": "3.27.0-canary.7f71c2e",
|
|
4
4
|
"description": "The officially supported MongoDB database adapter for Payload",
|
|
5
5
|
"homepage": "https://payloadcms.com",
|
|
6
6
|
"repository": {
|
|
@@ -49,10 +49,10 @@
|
|
|
49
49
|
"mongodb": "6.12.0",
|
|
50
50
|
"mongodb-memory-server": "^10",
|
|
51
51
|
"@payloadcms/eslint-config": "3.9.0",
|
|
52
|
-
"payload": "3.27.0-canary.
|
|
52
|
+
"payload": "3.27.0-canary.7f71c2e"
|
|
53
53
|
},
|
|
54
54
|
"peerDependencies": {
|
|
55
|
-
"payload": "3.27.0-canary.
|
|
55
|
+
"payload": "3.27.0-canary.7f71c2e"
|
|
56
56
|
},
|
|
57
57
|
"scripts": {
|
|
58
58
|
"build": "pnpm build:types && pnpm build:swc",
|