@payloadcms/drizzle 3.24.0-canary.7d9fbaf → 3.24.0-canary.d22403c

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"deleteOne.d.ts","sourceRoot":"","sources":["../src/deleteOne.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAaxC,eAAO,MAAM,SAAS,EAAE,SAgEvB,CAAA"}
1
+ {"version":3,"file":"deleteOne.d.ts","sourceRoot":"","sources":["../src/deleteOne.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAaxC,eAAO,MAAM,SAAS,EAAE,SA+DvB,CAAA"}
package/dist/deleteOne.js CHANGED
@@ -54,8 +54,7 @@ export const deleteOne = async function deleteOne({ collection: collectionSlug,
54
54
  config: this.payload.config,
55
55
  data: docToDelete,
56
56
  fields: collection.flattenedFields,
57
- joinQuery: false,
58
- parentIsLocalized: false
57
+ joinQuery: false
59
58
  });
60
59
  await this.deleteWhere({
61
60
  db,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/deleteOne.ts"],"sourcesContent":["import type { DeleteOne } from 'payload'\n\nimport { eq } from 'drizzle-orm'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { buildFindManyArgs } from './find/buildFindManyArgs.js'\nimport buildQuery from './queries/buildQuery.js'\nimport { selectDistinct } from './queries/selectDistinct.js'\nimport { transform } from './transform/read/index.js'\nimport { getTransaction } from './utilities/getTransaction.js'\n\nexport const deleteOne: DeleteOne = async function deleteOne(\n this: DrizzleAdapter,\n { collection: collectionSlug, req, select, where: whereArg },\n) {\n const db = await getTransaction(this, req)\n const collection = this.payload.collections[collectionSlug].config\n\n const tableName = this.tableNameMap.get(toSnakeCase(collection.slug))\n\n let docToDelete: Record<string, unknown>\n\n const { joins, selectFields, where } = buildQuery({\n adapter: this,\n fields: collection.flattenedFields,\n locale: req?.locale,\n tableName,\n where: whereArg,\n })\n\n const selectDistinctResult = await selectDistinct({\n adapter: this,\n chainedMethods: [{ args: [1], method: 'limit' }],\n db,\n joins,\n selectFields,\n tableName,\n where,\n })\n\n if (selectDistinctResult?.[0]?.id) {\n docToDelete = await db.query[tableName].findFirst({\n where: eq(this.tables[tableName].id, selectDistinctResult[0].id),\n })\n } else {\n const findManyArgs = buildFindManyArgs({\n adapter: this,\n depth: 0,\n fields: collection.flattenedFields,\n joinQuery: false,\n select,\n tableName,\n })\n\n findManyArgs.where = where\n\n docToDelete = await db.query[tableName].findFirst(findManyArgs)\n }\n\n const result = transform({\n adapter: this,\n config: this.payload.config,\n data: docToDelete,\n fields: collection.flattenedFields,\n joinQuery: false,\n parentIsLocalized: false,\n })\n\n await this.deleteWhere({\n db,\n tableName,\n where: eq(this.tables[tableName].id, docToDelete.id),\n })\n\n return result\n}\n"],"names":["eq","toSnakeCase","buildFindManyArgs","buildQuery","selectDistinct","transform","getTransaction","deleteOne","collection","collectionSlug","req","select","where","whereArg","db","payload","collections","config","tableName","tableNameMap","get","slug","docToDelete","joins","selectFields","adapter","fields","flattenedFields","locale","selectDistinctResult","chainedMethods","args","method","id","query","findFirst","tables","findManyArgs","depth","joinQuery","result","data","parentIsLocalized","deleteWhere"],"mappings":"AAEA,SAASA,EAAE,QAAQ,cAAa;AAChC,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,iBAAiB,QAAQ,8BAA6B;AAC/D,OAAOC,gBAAgB,0BAAyB;AAChD,SAASC,cAAc,QAAQ,8BAA6B;AAC5D,SAASC,SAAS,QAAQ,4BAA2B;AACrD,SAASC,cAAc,QAAQ,gCAA+B;AAE9D,OAAO,MAAMC,YAAuB,eAAeA,UAEjD,EAAEC,YAAYC,cAAc,EAAEC,GAAG,EAAEC,MAAM,EAAEC,OAAOC,QAAQ,EAAE;IAE5D,MAAMC,KAAK,MAAMR,eAAe,IAAI,EAAEI;IACtC,MAAMF,aAAa,IAAI,CAACO,OAAO,CAACC,WAAW,CAACP,eAAe,CAACQ,MAAM;IAElE,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAACnB,YAAYO,WAAWa,IAAI;IAEnE,IAAIC;IAEJ,MAAM,EAAEC,KAAK,EAAEC,YAAY,EAAEZ,KAAK,EAAE,GAAGT,WAAW;QAChDsB,SAAS,IAAI;QACbC,QAAQlB,WAAWmB,eAAe;QAClCC,QAAQlB,KAAKkB;QACbV;QACAN,OAAOC;IACT;IAEA,MAAMgB,uBAAuB,MAAMzB,eAAe;QAChDqB,SAAS,IAAI;QACbK,gBAAgB;YAAC;gBAAEC,MAAM;oBAAC;iBAAE;gBAAEC,QAAQ;YAAQ;SAAE;QAChDlB;QACAS;QACAC;QACAN;QACAN;IACF;IAEA,IAAIiB,sBAAsB,CAAC,EAAE,EAAEI,IAAI;QACjCX,cAAc,MAAMR,GAAGoB,KAAK,CAAChB,UAAU,CAACiB,SAAS,CAAC;YAChDvB,OAAOZ,GAAG,IAAI,CAACoC,MAAM,CAAClB,UAAU,CAACe,EAAE,EAAEJ,oBAAoB,CAAC,EAAE,CAACI,EAAE;QACjE;IACF,OAAO;QACL,MAAMI,eAAenC,kBAAkB;YACrCuB,SAAS,IAAI;YACba,OAAO;YACPZ,QAAQlB,WAAWmB,eAAe;YAClCY,WAAW;YACX5B;YACAO;QACF;QAEAmB,aAAazB,KAAK,GAAGA;QAErBU,cAAc,MAAMR,GAAGoB,KAAK,CAAChB,UAAU,CAACiB,SAAS,CAACE;IACpD;IAEA,MAAMG,SAASnC,UAAU;QACvBoB,SAAS,IAAI;QACbR,QAAQ,IAAI,CAACF,OAAO,CAACE,MAAM;QAC3BwB,MAAMnB;QACNI,QAAQlB,WAAWmB,eAAe;QAClCY,WAAW;QACXG,mBAAmB;IACrB;IAEA,MAAM,IAAI,CAACC,WAAW,CAAC;QACrB7B;QACAI;QACAN,OAAOZ,GAAG,IAAI,CAACoC,MAAM,CAAClB,UAAU,CAACe,EAAE,EAAEX,YAAYW,EAAE;IACrD;IAEA,OAAOO;AACT,EAAC"}
1
+ {"version":3,"sources":["../src/deleteOne.ts"],"sourcesContent":["import type { DeleteOne } from 'payload'\n\nimport { eq } from 'drizzle-orm'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { buildFindManyArgs } from './find/buildFindManyArgs.js'\nimport buildQuery from './queries/buildQuery.js'\nimport { selectDistinct } from './queries/selectDistinct.js'\nimport { transform } from './transform/read/index.js'\nimport { getTransaction } from './utilities/getTransaction.js'\n\nexport const deleteOne: DeleteOne = async function deleteOne(\n this: DrizzleAdapter,\n { collection: collectionSlug, req, select, where: whereArg },\n) {\n const db = await getTransaction(this, req)\n const collection = this.payload.collections[collectionSlug].config\n\n const tableName = this.tableNameMap.get(toSnakeCase(collection.slug))\n\n let docToDelete: Record<string, unknown>\n\n const { joins, selectFields, where } = buildQuery({\n adapter: this,\n fields: collection.flattenedFields,\n locale: req?.locale,\n tableName,\n where: whereArg,\n })\n\n const selectDistinctResult = await selectDistinct({\n adapter: this,\n chainedMethods: [{ args: [1], method: 'limit' }],\n db,\n joins,\n selectFields,\n tableName,\n where,\n })\n\n if (selectDistinctResult?.[0]?.id) {\n docToDelete = await db.query[tableName].findFirst({\n where: eq(this.tables[tableName].id, selectDistinctResult[0].id),\n })\n } else {\n const findManyArgs = buildFindManyArgs({\n adapter: this,\n depth: 0,\n fields: collection.flattenedFields,\n joinQuery: false,\n select,\n tableName,\n })\n\n findManyArgs.where = where\n\n docToDelete = await db.query[tableName].findFirst(findManyArgs)\n }\n\n const result = transform({\n adapter: this,\n config: this.payload.config,\n data: docToDelete,\n fields: collection.flattenedFields,\n joinQuery: false,\n })\n\n await this.deleteWhere({\n db,\n tableName,\n where: eq(this.tables[tableName].id, docToDelete.id),\n })\n\n return result\n}\n"],"names":["eq","toSnakeCase","buildFindManyArgs","buildQuery","selectDistinct","transform","getTransaction","deleteOne","collection","collectionSlug","req","select","where","whereArg","db","payload","collections","config","tableName","tableNameMap","get","slug","docToDelete","joins","selectFields","adapter","fields","flattenedFields","locale","selectDistinctResult","chainedMethods","args","method","id","query","findFirst","tables","findManyArgs","depth","joinQuery","result","data","deleteWhere"],"mappings":"AAEA,SAASA,EAAE,QAAQ,cAAa;AAChC,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,iBAAiB,QAAQ,8BAA6B;AAC/D,OAAOC,gBAAgB,0BAAyB;AAChD,SAASC,cAAc,QAAQ,8BAA6B;AAC5D,SAASC,SAAS,QAAQ,4BAA2B;AACrD,SAASC,cAAc,QAAQ,gCAA+B;AAE9D,OAAO,MAAMC,YAAuB,eAAeA,UAEjD,EAAEC,YAAYC,cAAc,EAAEC,GAAG,EAAEC,MAAM,EAAEC,OAAOC,QAAQ,EAAE;IAE5D,MAAMC,KAAK,MAAMR,eAAe,IAAI,EAAEI;IACtC,MAAMF,aAAa,IAAI,CAACO,OAAO,CAACC,WAAW,CAACP,eAAe,CAACQ,MAAM;IAElE,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAACnB,YAAYO,WAAWa,IAAI;IAEnE,IAAIC;IAEJ,MAAM,EAAEC,KAAK,EAAEC,YAAY,EAAEZ,KAAK,EAAE,GAAGT,WAAW;QAChDsB,SAAS,IAAI;QACbC,QAAQlB,WAAWmB,eAAe;QAClCC,QAAQlB,KAAKkB;QACbV;QACAN,OAAOC;IACT;IAEA,MAAMgB,uBAAuB,MAAMzB,eAAe;QAChDqB,SAAS,IAAI;QACbK,gBAAgB;YAAC;gBAAEC,MAAM;oBAAC;iBAAE;gBAAEC,QAAQ;YAAQ;SAAE;QAChDlB;QACAS;QACAC;QACAN;QACAN;IACF;IAEA,IAAIiB,sBAAsB,CAAC,EAAE,EAAEI,IAAI;QACjCX,cAAc,MAAMR,GAAGoB,KAAK,CAAChB,UAAU,CAACiB,SAAS,CAAC;YAChDvB,OAAOZ,GAAG,IAAI,CAACoC,MAAM,CAAClB,UAAU,CAACe,EAAE,EAAEJ,oBAAoB,CAAC,EAAE,CAACI,EAAE;QACjE;IACF,OAAO;QACL,MAAMI,eAAenC,kBAAkB;YACrCuB,SAAS,IAAI;YACba,OAAO;YACPZ,QAAQlB,WAAWmB,eAAe;YAClCY,WAAW;YACX5B;YACAO;QACF;QAEAmB,aAAazB,KAAK,GAAGA;QAErBU,cAAc,MAAMR,GAAGoB,KAAK,CAAChB,UAAU,CAACiB,SAAS,CAACE;IACpD;IAEA,MAAMG,SAASnC,UAAU;QACvBoB,SAAS,IAAI;QACbR,QAAQ,IAAI,CAACF,OAAO,CAACE,MAAM;QAC3BwB,MAAMnB;QACNI,QAAQlB,WAAWmB,eAAe;QAClCY,WAAW;IACb;IAEA,MAAM,IAAI,CAACG,WAAW,CAAC;QACrB5B;QACAI;QACAN,OAAOZ,GAAG,IAAI,CAACoC,MAAM,CAAClB,UAAU,CAACe,EAAE,EAAEX,YAAYW,EAAE;IACrD;IAEA,OAAOO;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"findMany.d.ts","sourceRoot":"","sources":["../../src/find/findMany.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAc,MAAM,SAAS,CAAA;AAInE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AASjD,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,GAAG,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;AAEhC,eAAO,MAAM,QAAQ,qKAgBlB,IAAI;;;;;;;;;;;EAkJN,CAAA"}
1
+ {"version":3,"file":"findMany.d.ts","sourceRoot":"","sources":["../../src/find/findMany.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAc,MAAM,SAAS,CAAA;AAInE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AASjD,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,GAAG,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;AAEhC,eAAO,MAAM,QAAQ,qKAgBlB,IAAI;;;;;;;;;;;EAiJN,CAAA"}
@@ -129,8 +129,7 @@ export const findMany = async function find({ adapter, collectionSlug, fields, j
129
129
  config: adapter.payload.config,
130
130
  data,
131
131
  fields,
132
- joinQuery,
133
- parentIsLocalized: false
132
+ joinQuery
134
133
  });
135
134
  });
136
135
  return {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/find/findMany.ts"],"sourcesContent":["import type { FindArgs, FlattenedField, TypeWithID } from 'payload'\n\nimport { inArray } from 'drizzle-orm'\n\nimport type { DrizzleAdapter } from '../types.js'\nimport type { ChainedMethods } from './chainMethods.js'\n\nimport buildQuery from '../queries/buildQuery.js'\nimport { selectDistinct } from '../queries/selectDistinct.js'\nimport { transform } from '../transform/read/index.js'\nimport { getTransaction } from '../utilities/getTransaction.js'\nimport { buildFindManyArgs } from './buildFindManyArgs.js'\n\ntype Args = {\n adapter: DrizzleAdapter\n collectionSlug?: string\n fields: FlattenedField[]\n tableName: string\n versions?: boolean\n} & Omit<FindArgs, 'collection'>\n\nexport const findMany = async function find({\n adapter,\n collectionSlug,\n fields,\n joins: joinQuery,\n limit: limitArg,\n locale,\n page = 1,\n pagination,\n req,\n select,\n skip,\n sort,\n tableName,\n versions,\n where: whereArg,\n}: Args) {\n const db = await getTransaction(adapter, req)\n let limit = limitArg\n let totalDocs: number\n let totalPages: number\n let hasPrevPage: boolean\n let hasNextPage: boolean\n let pagingCounter: number\n const offset = skip || (page - 1) * limit\n\n if (limit === 0) {\n limit = undefined\n }\n\n const { joins, orderBy, selectFields, where } = buildQuery({\n adapter,\n fields,\n locale,\n sort,\n tableName,\n where: whereArg,\n })\n\n const orderedIDMap: Record<number | string, number> = {}\n let orderedIDs: (number | string)[]\n\n const selectDistinctMethods: ChainedMethods = []\n\n if (orderBy) {\n selectDistinctMethods.push({\n args: [() => orderBy.map(({ column, order }) => order(column))],\n method: 'orderBy',\n })\n }\n\n const findManyArgs = buildFindManyArgs({\n adapter,\n collectionSlug,\n depth: 0,\n fields,\n joinQuery,\n joins,\n locale,\n select,\n tableName,\n versions,\n })\n\n selectDistinctMethods.push({ args: [offset], method: 'offset' })\n selectDistinctMethods.push({ args: [limit], method: 'limit' })\n\n const selectDistinctResult = await selectDistinct({\n adapter,\n chainedMethods: selectDistinctMethods,\n db,\n joins,\n selectFields,\n tableName,\n where,\n })\n\n if (selectDistinctResult) {\n if (selectDistinctResult.length === 0) {\n return {\n docs: [],\n hasNextPage: false,\n hasPrevPage: false,\n limit,\n nextPage: null,\n page: 1,\n pagingCounter: 0,\n prevPage: null,\n totalDocs: 0,\n totalPages: 0,\n }\n } else {\n // set the id in an object for sorting later\n selectDistinctResult.forEach(({ id }, i) => {\n orderedIDMap[id] = i\n })\n orderedIDs = Object.keys(orderedIDMap)\n findManyArgs.where = inArray(adapter.tables[tableName].id, orderedIDs)\n }\n } else {\n findManyArgs.limit = limit\n findManyArgs.offset = offset\n findManyArgs.orderBy = () => orderBy.map(({ column, order }) => order(column))\n\n if (where) {\n findManyArgs.where = where\n }\n }\n\n const findPromise = db.query[tableName].findMany(findManyArgs)\n\n if (pagination !== false && (orderedIDs ? orderedIDs?.length <= limit : true)) {\n totalDocs = await adapter.countDistinct({\n db,\n joins,\n tableName,\n where,\n })\n\n totalPages = typeof limit === 'number' && limit !== 0 ? Math.ceil(totalDocs / limit) : 1\n hasPrevPage = page > 1\n hasNextPage = totalPages > page\n pagingCounter = (page - 1) * limit + 1\n }\n\n const rawDocs = await findPromise\n // sort rawDocs from selectQuery\n if (Object.keys(orderedIDMap).length > 0) {\n rawDocs.sort((a, b) => orderedIDMap[a.id] - orderedIDMap[b.id])\n }\n\n if (pagination === false || !totalDocs) {\n totalDocs = rawDocs.length\n totalPages = 1\n pagingCounter = 1\n hasPrevPage = false\n hasNextPage = false\n }\n\n const docs = rawDocs.map((data: TypeWithID) => {\n return transform({\n adapter,\n config: adapter.payload.config,\n data,\n fields,\n joinQuery,\n parentIsLocalized: false,\n })\n })\n\n return {\n docs,\n hasNextPage,\n hasPrevPage,\n limit: limitArg,\n nextPage: hasNextPage ? page + 1 : null,\n page,\n pagingCounter,\n prevPage: hasPrevPage ? page - 1 : null,\n totalDocs,\n totalPages,\n }\n}\n"],"names":["inArray","buildQuery","selectDistinct","transform","getTransaction","buildFindManyArgs","findMany","find","adapter","collectionSlug","fields","joins","joinQuery","limit","limitArg","locale","page","pagination","req","select","skip","sort","tableName","versions","where","whereArg","db","totalDocs","totalPages","hasPrevPage","hasNextPage","pagingCounter","offset","undefined","orderBy","selectFields","orderedIDMap","orderedIDs","selectDistinctMethods","push","args","map","column","order","method","findManyArgs","depth","selectDistinctResult","chainedMethods","length","docs","nextPage","prevPage","forEach","id","i","Object","keys","tables","findPromise","query","countDistinct","Math","ceil","rawDocs","a","b","data","config","payload","parentIsLocalized"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/find/findMany.ts"],"sourcesContent":["import type { FindArgs, FlattenedField, TypeWithID } from 'payload'\n\nimport { inArray } from 'drizzle-orm'\n\nimport type { DrizzleAdapter } from '../types.js'\nimport type { ChainedMethods } from './chainMethods.js'\n\nimport buildQuery from '../queries/buildQuery.js'\nimport { selectDistinct } from '../queries/selectDistinct.js'\nimport { transform } from '../transform/read/index.js'\nimport { getTransaction } from '../utilities/getTransaction.js'\nimport { buildFindManyArgs } from './buildFindManyArgs.js'\n\ntype Args = {\n adapter: DrizzleAdapter\n collectionSlug?: string\n fields: FlattenedField[]\n tableName: string\n versions?: boolean\n} & Omit<FindArgs, 'collection'>\n\nexport const findMany = async function find({\n adapter,\n collectionSlug,\n fields,\n joins: joinQuery,\n limit: limitArg,\n locale,\n page = 1,\n pagination,\n req,\n select,\n skip,\n sort,\n tableName,\n versions,\n where: whereArg,\n}: Args) {\n const db = await getTransaction(adapter, req)\n let limit = limitArg\n let totalDocs: number\n let totalPages: number\n let hasPrevPage: boolean\n let hasNextPage: boolean\n let pagingCounter: number\n const offset = skip || (page - 1) * limit\n\n if (limit === 0) {\n limit = undefined\n }\n\n const { joins, orderBy, selectFields, where } = buildQuery({\n adapter,\n fields,\n locale,\n sort,\n tableName,\n where: whereArg,\n })\n\n const orderedIDMap: Record<number | string, number> = {}\n let orderedIDs: (number | string)[]\n\n const selectDistinctMethods: ChainedMethods = []\n\n if (orderBy) {\n selectDistinctMethods.push({\n args: [() => orderBy.map(({ column, order }) => order(column))],\n method: 'orderBy',\n })\n }\n\n const findManyArgs = buildFindManyArgs({\n adapter,\n collectionSlug,\n depth: 0,\n fields,\n joinQuery,\n joins,\n locale,\n select,\n tableName,\n versions,\n })\n\n selectDistinctMethods.push({ args: [offset], method: 'offset' })\n selectDistinctMethods.push({ args: [limit], method: 'limit' })\n\n const selectDistinctResult = await selectDistinct({\n adapter,\n chainedMethods: selectDistinctMethods,\n db,\n joins,\n selectFields,\n tableName,\n where,\n })\n\n if (selectDistinctResult) {\n if (selectDistinctResult.length === 0) {\n return {\n docs: [],\n hasNextPage: false,\n hasPrevPage: false,\n limit,\n nextPage: null,\n page: 1,\n pagingCounter: 0,\n prevPage: null,\n totalDocs: 0,\n totalPages: 0,\n }\n } else {\n // set the id in an object for sorting later\n selectDistinctResult.forEach(({ id }, i) => {\n orderedIDMap[id] = i\n })\n orderedIDs = Object.keys(orderedIDMap)\n findManyArgs.where = inArray(adapter.tables[tableName].id, orderedIDs)\n }\n } else {\n findManyArgs.limit = limit\n findManyArgs.offset = offset\n findManyArgs.orderBy = () => orderBy.map(({ column, order }) => order(column))\n\n if (where) {\n findManyArgs.where = where\n }\n }\n\n const findPromise = db.query[tableName].findMany(findManyArgs)\n\n if (pagination !== false && (orderedIDs ? orderedIDs?.length <= limit : true)) {\n totalDocs = await adapter.countDistinct({\n db,\n joins,\n tableName,\n where,\n })\n\n totalPages = typeof limit === 'number' && limit !== 0 ? Math.ceil(totalDocs / limit) : 1\n hasPrevPage = page > 1\n hasNextPage = totalPages > page\n pagingCounter = (page - 1) * limit + 1\n }\n\n const rawDocs = await findPromise\n // sort rawDocs from selectQuery\n if (Object.keys(orderedIDMap).length > 0) {\n rawDocs.sort((a, b) => orderedIDMap[a.id] - orderedIDMap[b.id])\n }\n\n if (pagination === false || !totalDocs) {\n totalDocs = rawDocs.length\n totalPages = 1\n pagingCounter = 1\n hasPrevPage = false\n hasNextPage = false\n }\n\n const docs = rawDocs.map((data: TypeWithID) => {\n return transform({\n adapter,\n config: adapter.payload.config,\n data,\n fields,\n joinQuery,\n })\n })\n\n return {\n docs,\n hasNextPage,\n hasPrevPage,\n limit: limitArg,\n nextPage: hasNextPage ? page + 1 : null,\n page,\n pagingCounter,\n prevPage: hasPrevPage ? page - 1 : null,\n totalDocs,\n totalPages,\n }\n}\n"],"names":["inArray","buildQuery","selectDistinct","transform","getTransaction","buildFindManyArgs","findMany","find","adapter","collectionSlug","fields","joins","joinQuery","limit","limitArg","locale","page","pagination","req","select","skip","sort","tableName","versions","where","whereArg","db","totalDocs","totalPages","hasPrevPage","hasNextPage","pagingCounter","offset","undefined","orderBy","selectFields","orderedIDMap","orderedIDs","selectDistinctMethods","push","args","map","column","order","method","findManyArgs","depth","selectDistinctResult","chainedMethods","length","docs","nextPage","prevPage","forEach","id","i","Object","keys","tables","findPromise","query","countDistinct","Math","ceil","rawDocs","a","b","data","config","payload"],"mappings":"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"}
@@ -12,6 +12,7 @@ type TraverseFieldArgs = {
12
12
  joinQuery: JoinQuery;
13
13
  joins?: BuildQueryJoinAliases;
14
14
  locale?: string;
15
+ parentIsLocalized?: boolean;
15
16
  path: string;
16
17
  select?: SelectType;
17
18
  selectAllOnCurrentLevel?: boolean;
@@ -20,13 +21,12 @@ type TraverseFieldArgs = {
20
21
  topLevelArgs: Record<string, unknown>;
21
22
  topLevelTableName: string;
22
23
  versions?: boolean;
23
- withinLocalizedField?: boolean;
24
24
  withTabledFields: {
25
25
  numbers?: boolean;
26
26
  rels?: boolean;
27
27
  texts?: boolean;
28
28
  };
29
29
  };
30
- export declare const traverseFields: ({ _locales, adapter, collectionSlug, currentArgs, currentTableName, depth, fields, joinQuery, joins, locale, path, select, selectAllOnCurrentLevel, selectMode, tablePath, topLevelArgs, topLevelTableName, versions, withinLocalizedField, withTabledFields, }: TraverseFieldArgs) => Record<string, unknown>;
30
+ export declare const traverseFields: ({ _locales, adapter, collectionSlug, currentArgs, currentTableName, depth, fields, joinQuery, joins, locale, parentIsLocalized, path, select, selectAllOnCurrentLevel, selectMode, tablePath, topLevelArgs, topLevelTableName, versions, withTabledFields, }: TraverseFieldArgs) => Record<string, unknown>;
31
31
  export {};
32
32
  //# sourceMappingURL=traverseFields.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../src/find/traverseFields.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAS,MAAM,SAAS,CAAA;AAMvF,OAAO,KAAK,EAAE,qBAAqB,EAAkB,cAAc,EAAE,MAAM,aAAa,CAAA;AACxF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AASpD,KAAK,iBAAiB,GAAG;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,cAAc,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,gBAAgB,EAAE,MAAM,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,SAAS,EAAE,SAAS,CAAA;IACpB,KAAK,CAAC,EAAE,qBAAqB,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrC,iBAAiB,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,gBAAgB,EAAE;QAChB,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,KAAK,CAAC,EAAE,OAAO,CAAA;KAChB,CAAA;CACF,CAAA;AAED,eAAO,MAAM,cAAc,oQAqBxB,iBAAiB,4BA+gBnB,CAAA"}
1
+ {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../src/find/traverseFields.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAS,MAAM,SAAS,CAAA;AAMvF,OAAO,KAAK,EAAE,qBAAqB,EAAkB,cAAc,EAAE,MAAM,aAAa,CAAA;AACxF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AASpD,KAAK,iBAAiB,GAAG;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,cAAc,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,gBAAgB,EAAE,MAAM,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,SAAS,EAAE,SAAS,CAAA;IACpB,KAAK,CAAC,EAAE,qBAAqB,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrC,iBAAiB,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gBAAgB,EAAE;QAChB,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,KAAK,CAAC,EAAE,OAAO,CAAA;KAChB,CAAA;CACF,CAAA;AAED,eAAO,MAAM,cAAc,iQAqBxB,iBAAiB,4BA+gBnB,CAAA"}
@@ -7,14 +7,14 @@ import { getNameFromDrizzleTable } from '../utilities/getNameFromDrizzleTable.js
7
7
  import { jsonAggBuildObject } from '../utilities/json.js';
8
8
  import { rawConstraint } from '../utilities/rawConstraint.js';
9
9
  import { chainMethods } from './chainMethods.js';
10
- export const traverseFields = ({ _locales, adapter, collectionSlug, currentArgs, currentTableName, depth, fields, joinQuery = {}, joins, locale, path, select, selectAllOnCurrentLevel = false, selectMode, tablePath, topLevelArgs, topLevelTableName, versions, withinLocalizedField = false, withTabledFields })=>{
10
+ export const traverseFields = ({ _locales, adapter, collectionSlug, currentArgs, currentTableName, depth, fields, joinQuery = {}, joins, locale, parentIsLocalized = false, path, select, selectAllOnCurrentLevel = false, selectMode, tablePath, topLevelArgs, topLevelTableName, versions, withTabledFields })=>{
11
11
  fields.forEach((field)=>{
12
12
  if (fieldIsVirtual(field)) {
13
13
  return;
14
14
  }
15
15
  const isFieldLocalized = fieldShouldBeLocalized({
16
16
  field,
17
- parentIsLocalized: withinLocalizedField
17
+ parentIsLocalized
18
18
  });
19
19
  // handle simple relationship
20
20
  if (depth > 0 && (field.type === 'upload' || field.type === 'relationship') && !field.hasMany && typeof field.relationTo === 'string') {
@@ -76,13 +76,13 @@ export const traverseFields = ({ _locales, adapter, collectionSlug, currentArgs,
76
76
  fields: field.flattenedFields,
77
77
  joinQuery,
78
78
  locale,
79
+ parentIsLocalized: parentIsLocalized || field.localized,
79
80
  path: '',
80
81
  select: typeof arraySelect === 'object' ? arraySelect : undefined,
81
82
  selectMode,
82
83
  tablePath: '',
83
84
  topLevelArgs,
84
85
  topLevelTableName,
85
- withinLocalizedField: withinLocalizedField || field.localized,
86
86
  withTabledFields
87
87
  });
88
88
  if (typeof arraySelect === 'object' && withArray.with._locales && Object.keys(withArray.with._locales).length === 1) {
@@ -160,13 +160,13 @@ export const traverseFields = ({ _locales, adapter, collectionSlug, currentArgs,
160
160
  fields: block.flattenedFields,
161
161
  joinQuery,
162
162
  locale,
163
+ parentIsLocalized: parentIsLocalized || field.localized,
163
164
  path: '',
164
165
  select: typeof blockSelect === 'object' ? blockSelect : undefined,
165
166
  selectMode: blockSelectMode,
166
167
  tablePath: '',
167
168
  topLevelArgs,
168
169
  topLevelTableName,
169
- withinLocalizedField: withinLocalizedField || field.localized,
170
170
  withTabledFields
171
171
  });
172
172
  if (typeof blockSelect === 'object' && withBlock.with._locales && Object.keys(withBlock.with._locales.columns).length === 1) {
@@ -194,6 +194,7 @@ export const traverseFields = ({ _locales, adapter, collectionSlug, currentArgs,
194
194
  joinQuery,
195
195
  joins,
196
196
  locale,
197
+ parentIsLocalized: parentIsLocalized || field.localized,
197
198
  path: `${path}${field.name}_`,
198
199
  select: typeof fieldSelect === 'object' ? fieldSelect : undefined,
199
200
  selectAllOnCurrentLevel: selectAllOnCurrentLevel || fieldSelect === true || selectMode === 'exclude' && typeof fieldSelect === 'undefined',
@@ -202,7 +203,6 @@ export const traverseFields = ({ _locales, adapter, collectionSlug, currentArgs,
202
203
  topLevelArgs,
203
204
  topLevelTableName,
204
205
  versions,
205
- withinLocalizedField: withinLocalizedField || field.localized,
206
206
  withTabledFields
207
207
  });
208
208
  break;
@@ -368,7 +368,7 @@ export const traverseFields = ({ _locales, adapter, collectionSlug, currentArgs,
368
368
  }
369
369
  if (select || selectAllOnCurrentLevel) {
370
370
  const fieldPath = `${path}${field.name}`;
371
- if ((isFieldLocalized || withinLocalizedField) && _locales) {
371
+ if ((isFieldLocalized || parentIsLocalized) && _locales) {
372
372
  _locales.columns[fieldPath] = true;
373
373
  } else if (adapter.tables[currentTableName]?.[fieldPath]) {
374
374
  currentArgs.columns[fieldPath] = true;
@@ -383,7 +383,7 @@ export const traverseFields = ({ _locales, adapter, collectionSlug, currentArgs,
383
383
  }
384
384
  if (selectAllOnCurrentLevel || selectMode === 'include' && select[field.name] === true || selectMode === 'exclude' && typeof select[field.name] === 'undefined') {
385
385
  const fieldPath = `${path}${field.name}`;
386
- if ((isFieldLocalized || withinLocalizedField) && _locales) {
386
+ if ((isFieldLocalized || parentIsLocalized) && _locales) {
387
387
  _locales.columns[fieldPath] = true;
388
388
  } else if (adapter.tables[currentTableName]?.[fieldPath]) {
389
389
  currentArgs.columns[fieldPath] = true;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/find/traverseFields.ts"],"sourcesContent":["import type { LibSQLDatabase } from 'drizzle-orm/libsql'\nimport type { FlattenedField, JoinQuery, SelectMode, SelectType, Where } from 'payload'\n\nimport { sql } from 'drizzle-orm'\nimport { fieldIsVirtual, fieldShouldBeLocalized } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { BuildQueryJoinAliases, ChainedMethods, DrizzleAdapter } from '../types.js'\nimport type { Result } from './buildFindManyArgs.js'\n\nimport buildQuery from '../queries/buildQuery.js'\nimport { getTableAlias } from '../queries/getTableAlias.js'\nimport { getNameFromDrizzleTable } from '../utilities/getNameFromDrizzleTable.js'\nimport { jsonAggBuildObject } from '../utilities/json.js'\nimport { rawConstraint } from '../utilities/rawConstraint.js'\nimport { chainMethods } from './chainMethods.js'\n\ntype TraverseFieldArgs = {\n _locales: Result\n adapter: DrizzleAdapter\n collectionSlug?: string\n currentArgs: Result\n currentTableName: string\n depth?: number\n fields: FlattenedField[]\n joinQuery: JoinQuery\n joins?: BuildQueryJoinAliases\n locale?: string\n path: string\n select?: SelectType\n selectAllOnCurrentLevel?: boolean\n selectMode?: SelectMode\n tablePath: string\n topLevelArgs: Record<string, unknown>\n topLevelTableName: string\n versions?: boolean\n withinLocalizedField?: boolean\n withTabledFields: {\n numbers?: boolean\n rels?: boolean\n texts?: boolean\n }\n}\n\nexport const traverseFields = ({\n _locales,\n adapter,\n collectionSlug,\n currentArgs,\n currentTableName,\n depth,\n fields,\n joinQuery = {},\n joins,\n locale,\n path,\n select,\n selectAllOnCurrentLevel = false,\n selectMode,\n tablePath,\n topLevelArgs,\n topLevelTableName,\n versions,\n withinLocalizedField = false,\n withTabledFields,\n}: TraverseFieldArgs) => {\n fields.forEach((field) => {\n if (fieldIsVirtual(field)) {\n return\n }\n\n const isFieldLocalized = fieldShouldBeLocalized({\n field,\n parentIsLocalized: withinLocalizedField,\n })\n\n // handle simple relationship\n if (\n depth > 0 &&\n (field.type === 'upload' || field.type === 'relationship') &&\n !field.hasMany &&\n typeof field.relationTo === 'string'\n ) {\n if (isFieldLocalized) {\n _locales.with[`${path}${field.name}`] = true\n } else {\n currentArgs.with[`${path}${field.name}`] = true\n }\n }\n\n switch (field.type) {\n case 'array': {\n const arraySelect = selectAllOnCurrentLevel ? true : select?.[field.name]\n\n if (select) {\n if (\n (selectMode === 'include' && typeof arraySelect === 'undefined') ||\n (selectMode === 'exclude' && arraySelect === false)\n ) {\n break\n }\n }\n\n const withArray: Result = {\n columns:\n typeof arraySelect === 'object'\n ? {\n id: true,\n _order: true,\n }\n : {\n _parentID: false,\n },\n orderBy: ({ _order }, { asc }) => [asc(_order)],\n with: {},\n }\n\n const arrayTableName = adapter.tableNameMap.get(\n `${currentTableName}_${tablePath}${toSnakeCase(field.name)}`,\n )\n\n if (typeof arraySelect === 'object') {\n if (adapter.tables[arrayTableName]._locale) {\n withArray.columns._locale = true\n }\n\n if (adapter.tables[arrayTableName]._uuid) {\n withArray.columns._uuid = true\n }\n }\n\n const arrayTableNameWithLocales = `${arrayTableName}${adapter.localesSuffix}`\n\n if (adapter.tables[arrayTableNameWithLocales]) {\n withArray.with._locales = {\n columns:\n typeof arraySelect === 'object'\n ? {\n _locale: true,\n }\n : {\n id: false,\n _parentID: false,\n },\n with: {},\n }\n }\n\n currentArgs.with[`${path}${field.name}`] = withArray\n\n traverseFields({\n _locales: withArray.with._locales,\n adapter,\n currentArgs: withArray,\n currentTableName: arrayTableName,\n depth,\n fields: field.flattenedFields,\n joinQuery,\n locale,\n path: '',\n select: typeof arraySelect === 'object' ? arraySelect : undefined,\n selectMode,\n tablePath: '',\n topLevelArgs,\n topLevelTableName,\n withinLocalizedField: withinLocalizedField || field.localized,\n withTabledFields,\n })\n\n if (\n typeof arraySelect === 'object' &&\n withArray.with._locales &&\n Object.keys(withArray.with._locales).length === 1\n ) {\n delete withArray.with._locales\n }\n\n break\n }\n\n case 'blocks': {\n const blocksSelect = selectAllOnCurrentLevel ? true : select?.[field.name]\n\n if (select) {\n if (\n (selectMode === 'include' && !blocksSelect) ||\n (selectMode === 'exclude' && blocksSelect === false)\n ) {\n break\n }\n }\n\n ;(field.blockReferences ?? field.blocks).forEach((_block) => {\n const block = typeof _block === 'string' ? adapter.payload.blocks[_block] : _block\n const blockKey = `_blocks_${block.slug}`\n\n let blockSelect: boolean | SelectType | undefined\n\n let blockSelectMode = selectMode\n\n if (selectMode === 'include' && blocksSelect === true) {\n blockSelect = true\n }\n\n if (typeof blocksSelect === 'object') {\n if (typeof blocksSelect[block.slug] === 'object') {\n blockSelect = blocksSelect[block.slug]\n } else if (\n (selectMode === 'include' && typeof blocksSelect[block.slug] === 'undefined') ||\n (selectMode === 'exclude' && blocksSelect[block.slug] === false)\n ) {\n blockSelect = {}\n blockSelectMode = 'include'\n } else if (selectMode === 'include' && blocksSelect[block.slug] === true) {\n blockSelect = true\n }\n }\n\n if (!topLevelArgs[blockKey]) {\n const withBlock: Result = {\n columns:\n typeof blockSelect === 'object'\n ? {\n id: true,\n _order: true,\n _path: true,\n }\n : {\n _parentID: false,\n },\n orderBy: ({ _order }, { asc }) => [asc(_order)],\n with: {},\n }\n\n const tableName = adapter.tableNameMap.get(\n `${topLevelTableName}_blocks_${toSnakeCase(block.slug)}`,\n )\n\n if (typeof blockSelect === 'object') {\n if (adapter.tables[tableName]._locale) {\n withBlock.columns._locale = true\n }\n\n if (adapter.tables[tableName]._uuid) {\n withBlock.columns._uuid = true\n }\n }\n\n if (adapter.tables[`${tableName}${adapter.localesSuffix}`]) {\n withBlock.with._locales = {\n with: {},\n }\n\n if (typeof blockSelect === 'object') {\n withBlock.with._locales.columns = {\n _locale: true,\n }\n }\n }\n topLevelArgs.with[blockKey] = withBlock\n\n traverseFields({\n _locales: withBlock.with._locales,\n adapter,\n currentArgs: withBlock,\n currentTableName: tableName,\n depth,\n fields: block.flattenedFields,\n joinQuery,\n locale,\n path: '',\n select: typeof blockSelect === 'object' ? blockSelect : undefined,\n selectMode: blockSelectMode,\n tablePath: '',\n topLevelArgs,\n topLevelTableName,\n withinLocalizedField: withinLocalizedField || field.localized,\n withTabledFields,\n })\n\n if (\n typeof blockSelect === 'object' &&\n withBlock.with._locales &&\n Object.keys(withBlock.with._locales.columns).length === 1\n ) {\n delete withBlock.with._locales\n }\n }\n })\n\n break\n }\n\n case 'group':\n case 'tab': {\n const fieldSelect = select?.[field.name]\n\n if (fieldSelect === false) {\n break\n }\n\n traverseFields({\n _locales,\n adapter,\n collectionSlug,\n currentArgs,\n currentTableName,\n depth,\n fields: field.flattenedFields,\n joinQuery,\n joins,\n locale,\n path: `${path}${field.name}_`,\n select: typeof fieldSelect === 'object' ? fieldSelect : undefined,\n selectAllOnCurrentLevel:\n selectAllOnCurrentLevel ||\n fieldSelect === true ||\n (selectMode === 'exclude' && typeof fieldSelect === 'undefined'),\n selectMode,\n tablePath: `${tablePath}${toSnakeCase(field.name)}_`,\n topLevelArgs,\n topLevelTableName,\n versions,\n withinLocalizedField: withinLocalizedField || field.localized,\n withTabledFields,\n })\n\n break\n }\n case 'join': {\n // when `joinsQuery` is false, do not join\n if (joinQuery === false) {\n break\n }\n\n if (\n (select && selectMode === 'include' && !select[field.name]) ||\n (selectMode === 'exclude' && select[field.name] === false)\n ) {\n break\n }\n\n const joinSchemaPath = `${path.replaceAll('_', '.')}${field.name}`\n\n if (joinQuery[joinSchemaPath] === false) {\n break\n }\n\n const {\n limit: limitArg = field.defaultLimit ?? 10,\n sort = field.defaultSort,\n where,\n } = joinQuery[joinSchemaPath] || {}\n let limit = limitArg\n\n if (limit !== 0) {\n // get an additional document and slice it later to determine if there is a next page\n limit += 1\n }\n\n const fields = adapter.payload.collections[field.collection].config.flattenedFields\n\n const joinCollectionTableName = adapter.tableNameMap.get(toSnakeCase(field.collection))\n\n const joins: BuildQueryJoinAliases = []\n\n const currentIDColumn = versions\n ? adapter.tables[currentTableName].parent\n : adapter.tables[currentTableName].id\n\n let joinQueryWhere: Where\n\n if (Array.isArray(field.targetField.relationTo)) {\n joinQueryWhere = {\n [field.on]: {\n equals: {\n relationTo: collectionSlug,\n value: rawConstraint(currentIDColumn),\n },\n },\n }\n } else {\n joinQueryWhere = {\n [field.on]: {\n equals: rawConstraint(currentIDColumn),\n },\n }\n }\n\n if (where && Object.keys(where).length) {\n joinQueryWhere = {\n and: [joinQueryWhere, where],\n }\n }\n\n const columnName = `${path.replaceAll('.', '_')}${field.name}`\n\n const subQueryAlias = `${columnName}_alias`\n\n const { newAliasTable } = getTableAlias({\n adapter,\n tableName: joinCollectionTableName,\n })\n\n const {\n orderBy,\n selectFields,\n where: subQueryWhere,\n } = buildQuery({\n adapter,\n aliasTable: newAliasTable,\n fields,\n joins,\n locale,\n // Parent is never localized, as we're passing the `fields` of a **different** collection here. This means that the\n // parent localization \"boundary\" is crossed, and we're now in the context of the joined collection.\n parentIsLocalized: false,\n selectLocale: true,\n sort,\n tableName: joinCollectionTableName,\n where: joinQueryWhere,\n })\n\n const chainedMethods: ChainedMethods = []\n\n joins.forEach(({ type, condition, table }) => {\n chainedMethods.push({\n args: [table, condition],\n method: type ?? 'leftJoin',\n })\n })\n\n if (limit !== 0) {\n chainedMethods.push({\n args: [limit],\n method: 'limit',\n })\n }\n\n const db = adapter.drizzle as LibSQLDatabase\n\n for (let key in selectFields) {\n const val = selectFields[key]\n\n if (val.table && getNameFromDrizzleTable(val.table) === joinCollectionTableName) {\n delete selectFields[key]\n key = key.split('.').pop()\n selectFields[key] = newAliasTable[key]\n }\n }\n\n const subQuery = chainMethods({\n methods: chainedMethods,\n query: db\n .select(selectFields as any)\n .from(newAliasTable)\n .where(subQueryWhere)\n .orderBy(() => orderBy.map(({ column, order }) => order(column))),\n }).as(subQueryAlias)\n\n currentArgs.extras[columnName] = sql`${db\n .select({\n result: jsonAggBuildObject(adapter, {\n id: sql.raw(`\"${subQueryAlias}\".id`),\n ...(selectFields._locale && {\n locale: sql.raw(`\"${subQueryAlias}\".${selectFields._locale.name}`),\n }),\n }),\n })\n .from(sql`${subQuery}`)}`.as(subQueryAlias)\n\n break\n }\n\n case 'point': {\n if (adapter.name === 'sqlite') {\n break\n }\n\n const args = isFieldLocalized ? _locales : currentArgs\n if (!args.columns) {\n args.columns = {}\n }\n\n if (!args.extras) {\n args.extras = {}\n }\n\n const name = `${path}${field.name}`\n\n // Drizzle handles that poorly. See https://github.com/drizzle-team/drizzle-orm/issues/2526\n // Additionally, this way we format the column value straight in the database using ST_AsGeoJSON\n args.columns[name] = false\n\n let shouldSelect = false\n\n if (select || selectAllOnCurrentLevel) {\n if (\n selectAllOnCurrentLevel ||\n (selectMode === 'include' && select[field.name] === true) ||\n (selectMode === 'exclude' && typeof select[field.name] === 'undefined')\n ) {\n shouldSelect = true\n }\n } else {\n shouldSelect = true\n }\n\n if (shouldSelect) {\n args.extras[name] = sql.raw(`ST_AsGeoJSON(${toSnakeCase(name)})::jsonb`).as(name)\n }\n break\n }\n\n case 'select': {\n if (select && !selectAllOnCurrentLevel) {\n if (\n (selectMode === 'include' && !select[field.name]) ||\n (selectMode === 'exclude' && select[field.name] === false)\n ) {\n break\n }\n }\n\n if (field.hasMany) {\n const withSelect: Result = {\n columns: {\n id: false,\n order: false,\n parent: false,\n },\n orderBy: ({ order }, { asc }) => [asc(order)],\n }\n\n currentArgs.with[`${path}${field.name}`] = withSelect\n break\n }\n\n if (select || selectAllOnCurrentLevel) {\n const fieldPath = `${path}${field.name}`\n\n if ((isFieldLocalized || withinLocalizedField) && _locales) {\n _locales.columns[fieldPath] = true\n } else if (adapter.tables[currentTableName]?.[fieldPath]) {\n currentArgs.columns[fieldPath] = true\n }\n }\n\n break\n }\n\n default: {\n if (!select && !selectAllOnCurrentLevel) {\n break\n }\n\n if (\n selectAllOnCurrentLevel ||\n (selectMode === 'include' && select[field.name] === true) ||\n (selectMode === 'exclude' && typeof select[field.name] === 'undefined')\n ) {\n const fieldPath = `${path}${field.name}`\n\n if ((isFieldLocalized || withinLocalizedField) && _locales) {\n _locales.columns[fieldPath] = true\n } else if (adapter.tables[currentTableName]?.[fieldPath]) {\n currentArgs.columns[fieldPath] = true\n }\n\n if (\n !withTabledFields.rels &&\n (field.type === 'relationship' || field.type === 'upload') &&\n (field.hasMany || Array.isArray(field.relationTo))\n ) {\n withTabledFields.rels = true\n }\n\n if (!withTabledFields.numbers && field.type === 'number' && field.hasMany) {\n withTabledFields.numbers = true\n }\n\n if (!withTabledFields.texts && field.type === 'text' && field.hasMany) {\n withTabledFields.texts = true\n }\n }\n\n break\n }\n }\n })\n\n return topLevelArgs\n}\n"],"names":["sql","fieldIsVirtual","fieldShouldBeLocalized","toSnakeCase","buildQuery","getTableAlias","getNameFromDrizzleTable","jsonAggBuildObject","rawConstraint","chainMethods","traverseFields","_locales","adapter","collectionSlug","currentArgs","currentTableName","depth","fields","joinQuery","joins","locale","path","select","selectAllOnCurrentLevel","selectMode","tablePath","topLevelArgs","topLevelTableName","versions","withinLocalizedField","withTabledFields","forEach","field","isFieldLocalized","parentIsLocalized","type","hasMany","relationTo","with","name","arraySelect","withArray","columns","id","_order","_parentID","orderBy","asc","arrayTableName","tableNameMap","get","tables","_locale","_uuid","arrayTableNameWithLocales","localesSuffix","flattenedFields","undefined","localized","Object","keys","length","blocksSelect","blockReferences","blocks","_block","block","payload","blockKey","slug","blockSelect","blockSelectMode","withBlock","_path","tableName","fieldSelect","joinSchemaPath","replaceAll","limit","limitArg","defaultLimit","sort","defaultSort","where","collections","collection","config","joinCollectionTableName","currentIDColumn","parent","joinQueryWhere","Array","isArray","targetField","on","equals","value","and","columnName","subQueryAlias","newAliasTable","selectFields","subQueryWhere","aliasTable","selectLocale","chainedMethods","condition","table","push","args","method","db","drizzle","key","val","split","pop","subQuery","methods","query","from","map","column","order","as","extras","result","raw","shouldSelect","withSelect","fieldPath","rels","numbers","texts"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/find/traverseFields.ts"],"sourcesContent":["import type { LibSQLDatabase } from 'drizzle-orm/libsql'\nimport type { FlattenedField, JoinQuery, SelectMode, SelectType, Where } from 'payload'\n\nimport { sql } from 'drizzle-orm'\nimport { fieldIsVirtual, fieldShouldBeLocalized } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { BuildQueryJoinAliases, ChainedMethods, DrizzleAdapter } from '../types.js'\nimport type { Result } from './buildFindManyArgs.js'\n\nimport buildQuery from '../queries/buildQuery.js'\nimport { getTableAlias } from '../queries/getTableAlias.js'\nimport { getNameFromDrizzleTable } from '../utilities/getNameFromDrizzleTable.js'\nimport { jsonAggBuildObject } from '../utilities/json.js'\nimport { rawConstraint } from '../utilities/rawConstraint.js'\nimport { chainMethods } from './chainMethods.js'\n\ntype TraverseFieldArgs = {\n _locales: Result\n adapter: DrizzleAdapter\n collectionSlug?: string\n currentArgs: Result\n currentTableName: string\n depth?: number\n fields: FlattenedField[]\n joinQuery: JoinQuery\n joins?: BuildQueryJoinAliases\n locale?: string\n parentIsLocalized?: boolean\n path: string\n select?: SelectType\n selectAllOnCurrentLevel?: boolean\n selectMode?: SelectMode\n tablePath: string\n topLevelArgs: Record<string, unknown>\n topLevelTableName: string\n versions?: boolean\n withTabledFields: {\n numbers?: boolean\n rels?: boolean\n texts?: boolean\n }\n}\n\nexport const traverseFields = ({\n _locales,\n adapter,\n collectionSlug,\n currentArgs,\n currentTableName,\n depth,\n fields,\n joinQuery = {},\n joins,\n locale,\n parentIsLocalized = false,\n path,\n select,\n selectAllOnCurrentLevel = false,\n selectMode,\n tablePath,\n topLevelArgs,\n topLevelTableName,\n versions,\n withTabledFields,\n}: TraverseFieldArgs) => {\n fields.forEach((field) => {\n if (fieldIsVirtual(field)) {\n return\n }\n\n const isFieldLocalized = fieldShouldBeLocalized({\n field,\n parentIsLocalized,\n })\n\n // handle simple relationship\n if (\n depth > 0 &&\n (field.type === 'upload' || field.type === 'relationship') &&\n !field.hasMany &&\n typeof field.relationTo === 'string'\n ) {\n if (isFieldLocalized) {\n _locales.with[`${path}${field.name}`] = true\n } else {\n currentArgs.with[`${path}${field.name}`] = true\n }\n }\n\n switch (field.type) {\n case 'array': {\n const arraySelect = selectAllOnCurrentLevel ? true : select?.[field.name]\n\n if (select) {\n if (\n (selectMode === 'include' && typeof arraySelect === 'undefined') ||\n (selectMode === 'exclude' && arraySelect === false)\n ) {\n break\n }\n }\n\n const withArray: Result = {\n columns:\n typeof arraySelect === 'object'\n ? {\n id: true,\n _order: true,\n }\n : {\n _parentID: false,\n },\n orderBy: ({ _order }, { asc }) => [asc(_order)],\n with: {},\n }\n\n const arrayTableName = adapter.tableNameMap.get(\n `${currentTableName}_${tablePath}${toSnakeCase(field.name)}`,\n )\n\n if (typeof arraySelect === 'object') {\n if (adapter.tables[arrayTableName]._locale) {\n withArray.columns._locale = true\n }\n\n if (adapter.tables[arrayTableName]._uuid) {\n withArray.columns._uuid = true\n }\n }\n\n const arrayTableNameWithLocales = `${arrayTableName}${adapter.localesSuffix}`\n\n if (adapter.tables[arrayTableNameWithLocales]) {\n withArray.with._locales = {\n columns:\n typeof arraySelect === 'object'\n ? {\n _locale: true,\n }\n : {\n id: false,\n _parentID: false,\n },\n with: {},\n }\n }\n\n currentArgs.with[`${path}${field.name}`] = withArray\n\n traverseFields({\n _locales: withArray.with._locales,\n adapter,\n currentArgs: withArray,\n currentTableName: arrayTableName,\n depth,\n fields: field.flattenedFields,\n joinQuery,\n locale,\n parentIsLocalized: parentIsLocalized || field.localized,\n path: '',\n select: typeof arraySelect === 'object' ? arraySelect : undefined,\n selectMode,\n tablePath: '',\n topLevelArgs,\n topLevelTableName,\n withTabledFields,\n })\n\n if (\n typeof arraySelect === 'object' &&\n withArray.with._locales &&\n Object.keys(withArray.with._locales).length === 1\n ) {\n delete withArray.with._locales\n }\n\n break\n }\n\n case 'blocks': {\n const blocksSelect = selectAllOnCurrentLevel ? true : select?.[field.name]\n\n if (select) {\n if (\n (selectMode === 'include' && !blocksSelect) ||\n (selectMode === 'exclude' && blocksSelect === false)\n ) {\n break\n }\n }\n\n ;(field.blockReferences ?? field.blocks).forEach((_block) => {\n const block = typeof _block === 'string' ? adapter.payload.blocks[_block] : _block\n const blockKey = `_blocks_${block.slug}`\n\n let blockSelect: boolean | SelectType | undefined\n\n let blockSelectMode = selectMode\n\n if (selectMode === 'include' && blocksSelect === true) {\n blockSelect = true\n }\n\n if (typeof blocksSelect === 'object') {\n if (typeof blocksSelect[block.slug] === 'object') {\n blockSelect = blocksSelect[block.slug]\n } else if (\n (selectMode === 'include' && typeof blocksSelect[block.slug] === 'undefined') ||\n (selectMode === 'exclude' && blocksSelect[block.slug] === false)\n ) {\n blockSelect = {}\n blockSelectMode = 'include'\n } else if (selectMode === 'include' && blocksSelect[block.slug] === true) {\n blockSelect = true\n }\n }\n\n if (!topLevelArgs[blockKey]) {\n const withBlock: Result = {\n columns:\n typeof blockSelect === 'object'\n ? {\n id: true,\n _order: true,\n _path: true,\n }\n : {\n _parentID: false,\n },\n orderBy: ({ _order }, { asc }) => [asc(_order)],\n with: {},\n }\n\n const tableName = adapter.tableNameMap.get(\n `${topLevelTableName}_blocks_${toSnakeCase(block.slug)}`,\n )\n\n if (typeof blockSelect === 'object') {\n if (adapter.tables[tableName]._locale) {\n withBlock.columns._locale = true\n }\n\n if (adapter.tables[tableName]._uuid) {\n withBlock.columns._uuid = true\n }\n }\n\n if (adapter.tables[`${tableName}${adapter.localesSuffix}`]) {\n withBlock.with._locales = {\n with: {},\n }\n\n if (typeof blockSelect === 'object') {\n withBlock.with._locales.columns = {\n _locale: true,\n }\n }\n }\n topLevelArgs.with[blockKey] = withBlock\n\n traverseFields({\n _locales: withBlock.with._locales,\n adapter,\n currentArgs: withBlock,\n currentTableName: tableName,\n depth,\n fields: block.flattenedFields,\n joinQuery,\n locale,\n parentIsLocalized: parentIsLocalized || field.localized,\n path: '',\n select: typeof blockSelect === 'object' ? blockSelect : undefined,\n selectMode: blockSelectMode,\n tablePath: '',\n topLevelArgs,\n topLevelTableName,\n withTabledFields,\n })\n\n if (\n typeof blockSelect === 'object' &&\n withBlock.with._locales &&\n Object.keys(withBlock.with._locales.columns).length === 1\n ) {\n delete withBlock.with._locales\n }\n }\n })\n\n break\n }\n\n case 'group':\n case 'tab': {\n const fieldSelect = select?.[field.name]\n\n if (fieldSelect === false) {\n break\n }\n\n traverseFields({\n _locales,\n adapter,\n collectionSlug,\n currentArgs,\n currentTableName,\n depth,\n fields: field.flattenedFields,\n joinQuery,\n joins,\n locale,\n parentIsLocalized: parentIsLocalized || field.localized,\n path: `${path}${field.name}_`,\n select: typeof fieldSelect === 'object' ? fieldSelect : undefined,\n selectAllOnCurrentLevel:\n selectAllOnCurrentLevel ||\n fieldSelect === true ||\n (selectMode === 'exclude' && typeof fieldSelect === 'undefined'),\n selectMode,\n tablePath: `${tablePath}${toSnakeCase(field.name)}_`,\n topLevelArgs,\n topLevelTableName,\n versions,\n withTabledFields,\n })\n\n break\n }\n case 'join': {\n // when `joinsQuery` is false, do not join\n if (joinQuery === false) {\n break\n }\n\n if (\n (select && selectMode === 'include' && !select[field.name]) ||\n (selectMode === 'exclude' && select[field.name] === false)\n ) {\n break\n }\n\n const joinSchemaPath = `${path.replaceAll('_', '.')}${field.name}`\n\n if (joinQuery[joinSchemaPath] === false) {\n break\n }\n\n const {\n limit: limitArg = field.defaultLimit ?? 10,\n sort = field.defaultSort,\n where,\n } = joinQuery[joinSchemaPath] || {}\n let limit = limitArg\n\n if (limit !== 0) {\n // get an additional document and slice it later to determine if there is a next page\n limit += 1\n }\n\n const fields = adapter.payload.collections[field.collection].config.flattenedFields\n\n const joinCollectionTableName = adapter.tableNameMap.get(toSnakeCase(field.collection))\n\n const joins: BuildQueryJoinAliases = []\n\n const currentIDColumn = versions\n ? adapter.tables[currentTableName].parent\n : adapter.tables[currentTableName].id\n\n let joinQueryWhere: Where\n\n if (Array.isArray(field.targetField.relationTo)) {\n joinQueryWhere = {\n [field.on]: {\n equals: {\n relationTo: collectionSlug,\n value: rawConstraint(currentIDColumn),\n },\n },\n }\n } else {\n joinQueryWhere = {\n [field.on]: {\n equals: rawConstraint(currentIDColumn),\n },\n }\n }\n\n if (where && Object.keys(where).length) {\n joinQueryWhere = {\n and: [joinQueryWhere, where],\n }\n }\n\n const columnName = `${path.replaceAll('.', '_')}${field.name}`\n\n const subQueryAlias = `${columnName}_alias`\n\n const { newAliasTable } = getTableAlias({\n adapter,\n tableName: joinCollectionTableName,\n })\n\n const {\n orderBy,\n selectFields,\n where: subQueryWhere,\n } = buildQuery({\n adapter,\n aliasTable: newAliasTable,\n fields,\n joins,\n locale,\n // Parent is never localized, as we're passing the `fields` of a **different** collection here. This means that the\n // parent localization \"boundary\" is crossed, and we're now in the context of the joined collection.\n parentIsLocalized: false,\n selectLocale: true,\n sort,\n tableName: joinCollectionTableName,\n where: joinQueryWhere,\n })\n\n const chainedMethods: ChainedMethods = []\n\n joins.forEach(({ type, condition, table }) => {\n chainedMethods.push({\n args: [table, condition],\n method: type ?? 'leftJoin',\n })\n })\n\n if (limit !== 0) {\n chainedMethods.push({\n args: [limit],\n method: 'limit',\n })\n }\n\n const db = adapter.drizzle as LibSQLDatabase\n\n for (let key in selectFields) {\n const val = selectFields[key]\n\n if (val.table && getNameFromDrizzleTable(val.table) === joinCollectionTableName) {\n delete selectFields[key]\n key = key.split('.').pop()\n selectFields[key] = newAliasTable[key]\n }\n }\n\n const subQuery = chainMethods({\n methods: chainedMethods,\n query: db\n .select(selectFields as any)\n .from(newAliasTable)\n .where(subQueryWhere)\n .orderBy(() => orderBy.map(({ column, order }) => order(column))),\n }).as(subQueryAlias)\n\n currentArgs.extras[columnName] = sql`${db\n .select({\n result: jsonAggBuildObject(adapter, {\n id: sql.raw(`\"${subQueryAlias}\".id`),\n ...(selectFields._locale && {\n locale: sql.raw(`\"${subQueryAlias}\".${selectFields._locale.name}`),\n }),\n }),\n })\n .from(sql`${subQuery}`)}`.as(subQueryAlias)\n\n break\n }\n\n case 'point': {\n if (adapter.name === 'sqlite') {\n break\n }\n\n const args = isFieldLocalized ? _locales : currentArgs\n if (!args.columns) {\n args.columns = {}\n }\n\n if (!args.extras) {\n args.extras = {}\n }\n\n const name = `${path}${field.name}`\n\n // Drizzle handles that poorly. See https://github.com/drizzle-team/drizzle-orm/issues/2526\n // Additionally, this way we format the column value straight in the database using ST_AsGeoJSON\n args.columns[name] = false\n\n let shouldSelect = false\n\n if (select || selectAllOnCurrentLevel) {\n if (\n selectAllOnCurrentLevel ||\n (selectMode === 'include' && select[field.name] === true) ||\n (selectMode === 'exclude' && typeof select[field.name] === 'undefined')\n ) {\n shouldSelect = true\n }\n } else {\n shouldSelect = true\n }\n\n if (shouldSelect) {\n args.extras[name] = sql.raw(`ST_AsGeoJSON(${toSnakeCase(name)})::jsonb`).as(name)\n }\n break\n }\n\n case 'select': {\n if (select && !selectAllOnCurrentLevel) {\n if (\n (selectMode === 'include' && !select[field.name]) ||\n (selectMode === 'exclude' && select[field.name] === false)\n ) {\n break\n }\n }\n\n if (field.hasMany) {\n const withSelect: Result = {\n columns: {\n id: false,\n order: false,\n parent: false,\n },\n orderBy: ({ order }, { asc }) => [asc(order)],\n }\n\n currentArgs.with[`${path}${field.name}`] = withSelect\n break\n }\n\n if (select || selectAllOnCurrentLevel) {\n const fieldPath = `${path}${field.name}`\n\n if ((isFieldLocalized || parentIsLocalized) && _locales) {\n _locales.columns[fieldPath] = true\n } else if (adapter.tables[currentTableName]?.[fieldPath]) {\n currentArgs.columns[fieldPath] = true\n }\n }\n\n break\n }\n\n default: {\n if (!select && !selectAllOnCurrentLevel) {\n break\n }\n\n if (\n selectAllOnCurrentLevel ||\n (selectMode === 'include' && select[field.name] === true) ||\n (selectMode === 'exclude' && typeof select[field.name] === 'undefined')\n ) {\n const fieldPath = `${path}${field.name}`\n\n if ((isFieldLocalized || parentIsLocalized) && _locales) {\n _locales.columns[fieldPath] = true\n } else if (adapter.tables[currentTableName]?.[fieldPath]) {\n currentArgs.columns[fieldPath] = true\n }\n\n if (\n !withTabledFields.rels &&\n (field.type === 'relationship' || field.type === 'upload') &&\n (field.hasMany || Array.isArray(field.relationTo))\n ) {\n withTabledFields.rels = true\n }\n\n if (!withTabledFields.numbers && field.type === 'number' && field.hasMany) {\n withTabledFields.numbers = true\n }\n\n if (!withTabledFields.texts && field.type === 'text' && field.hasMany) {\n withTabledFields.texts = true\n }\n }\n\n break\n }\n }\n })\n\n return topLevelArgs\n}\n"],"names":["sql","fieldIsVirtual","fieldShouldBeLocalized","toSnakeCase","buildQuery","getTableAlias","getNameFromDrizzleTable","jsonAggBuildObject","rawConstraint","chainMethods","traverseFields","_locales","adapter","collectionSlug","currentArgs","currentTableName","depth","fields","joinQuery","joins","locale","parentIsLocalized","path","select","selectAllOnCurrentLevel","selectMode","tablePath","topLevelArgs","topLevelTableName","versions","withTabledFields","forEach","field","isFieldLocalized","type","hasMany","relationTo","with","name","arraySelect","withArray","columns","id","_order","_parentID","orderBy","asc","arrayTableName","tableNameMap","get","tables","_locale","_uuid","arrayTableNameWithLocales","localesSuffix","flattenedFields","localized","undefined","Object","keys","length","blocksSelect","blockReferences","blocks","_block","block","payload","blockKey","slug","blockSelect","blockSelectMode","withBlock","_path","tableName","fieldSelect","joinSchemaPath","replaceAll","limit","limitArg","defaultLimit","sort","defaultSort","where","collections","collection","config","joinCollectionTableName","currentIDColumn","parent","joinQueryWhere","Array","isArray","targetField","on","equals","value","and","columnName","subQueryAlias","newAliasTable","selectFields","subQueryWhere","aliasTable","selectLocale","chainedMethods","condition","table","push","args","method","db","drizzle","key","val","split","pop","subQuery","methods","query","from","map","column","order","as","extras","result","raw","shouldSelect","withSelect","fieldPath","rels","numbers","texts"],"mappings":"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"}
@@ -8,7 +8,7 @@ type TransformArgs = {
8
8
  fields: FlattenedField[];
9
9
  joinQuery?: JoinQuery;
10
10
  locale?: string;
11
- parentIsLocalized: boolean;
11
+ parentIsLocalized?: boolean;
12
12
  };
13
13
  export declare const transform: <T extends Record<string, unknown> | TypeWithID>({ adapter, config, data, fields, joinQuery, parentIsLocalized, }: TransformArgs) => T;
14
14
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transform/read/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAErF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAMpD,KAAK,aAAa,GAAG;IACnB,OAAO,EAAE,cAAc,CAAA;IACvB,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,cAAc,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IAC/B,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,iBAAiB,EAAE,OAAO,CAAA;CAC3B,CAAA;AAID,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,oEAOrE,aAAa,KAAG,CA6ClB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transform/read/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAErF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAMpD,KAAK,aAAa,GAAG;IACnB,OAAO,EAAE,cAAc,CAAA;IACvB,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,cAAc,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IAC/B,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B,CAAA;AAID,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,oEAOrE,aAAa,KAAG,CA6ClB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/transform/read/index.ts"],"sourcesContent":["import type { FlattenedField, JoinQuery, SanitizedConfig, TypeWithID } from 'payload'\n\nimport type { DrizzleAdapter } from '../../types.js'\n\nimport { createBlocksMap } from '../../utilities/createBlocksMap.js'\nimport { createPathMap } from '../../utilities/createRelationshipMap.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype TransformArgs = {\n adapter: DrizzleAdapter\n config: SanitizedConfig\n data: Record<string, unknown>\n fallbackLocale?: false | string\n fields: FlattenedField[]\n joinQuery?: JoinQuery\n locale?: string\n parentIsLocalized: boolean\n}\n\n// This is the entry point to transform Drizzle output data\n// into the shape Payload expects based on field schema\nexport const transform = <T extends Record<string, unknown> | TypeWithID>({\n adapter,\n config,\n data,\n fields,\n joinQuery,\n parentIsLocalized,\n}: TransformArgs): T => {\n let relationships: Record<string, Record<string, unknown>[]> = {}\n let texts: Record<string, Record<string, unknown>[]> = {}\n let numbers: Record<string, Record<string, unknown>[]> = {}\n\n if ('_rels' in data) {\n relationships = createPathMap(data._rels)\n delete data._rels\n }\n\n if ('_texts' in data) {\n texts = createPathMap(data._texts)\n delete data._texts\n }\n\n if ('_numbers' in data) {\n numbers = createPathMap(data._numbers)\n delete data._numbers\n }\n\n const blocks = createBlocksMap(data)\n const deletions = []\n\n const result = traverseFields<T>({\n adapter,\n blocks,\n config,\n dataRef: {\n id: data.id,\n },\n deletions,\n fieldPrefix: '',\n fields,\n joinQuery,\n numbers,\n parentIsLocalized,\n path: '',\n relationships,\n table: data,\n texts,\n })\n\n deletions.forEach((deletion) => deletion())\n\n return result\n}\n"],"names":["createBlocksMap","createPathMap","traverseFields","transform","adapter","config","data","fields","joinQuery","parentIsLocalized","relationships","texts","numbers","_rels","_texts","_numbers","blocks","deletions","result","dataRef","id","fieldPrefix","path","table","forEach","deletion"],"mappings":"AAIA,SAASA,eAAe,QAAQ,qCAAoC;AACpE,SAASC,aAAa,QAAQ,2CAA0C;AACxE,SAASC,cAAc,QAAQ,sBAAqB;AAapD,2DAA2D;AAC3D,uDAAuD;AACvD,OAAO,MAAMC,YAAY,CAAiD,EACxEC,OAAO,EACPC,MAAM,EACNC,IAAI,EACJC,MAAM,EACNC,SAAS,EACTC,iBAAiB,EACH;IACd,IAAIC,gBAA2D,CAAC;IAChE,IAAIC,QAAmD,CAAC;IACxD,IAAIC,UAAqD,CAAC;IAE1D,IAAI,WAAWN,MAAM;QACnBI,gBAAgBT,cAAcK,KAAKO,KAAK;QACxC,OAAOP,KAAKO,KAAK;IACnB;IAEA,IAAI,YAAYP,MAAM;QACpBK,QAAQV,cAAcK,KAAKQ,MAAM;QACjC,OAAOR,KAAKQ,MAAM;IACpB;IAEA,IAAI,cAAcR,MAAM;QACtBM,UAAUX,cAAcK,KAAKS,QAAQ;QACrC,OAAOT,KAAKS,QAAQ;IACtB;IAEA,MAAMC,SAAShB,gBAAgBM;IAC/B,MAAMW,YAAY,EAAE;IAEpB,MAAMC,SAAShB,eAAkB;QAC/BE;QACAY;QACAX;QACAc,SAAS;YACPC,IAAId,KAAKc,EAAE;QACb;QACAH;QACAI,aAAa;QACbd;QACAC;QACAI;QACAH;QACAa,MAAM;QACNZ;QACAa,OAAOjB;QACPK;IACF;IAEAM,UAAUO,OAAO,CAAC,CAACC,WAAaA;IAEhC,OAAOP;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../src/transform/read/index.ts"],"sourcesContent":["import type { FlattenedField, JoinQuery, SanitizedConfig, TypeWithID } from 'payload'\n\nimport type { DrizzleAdapter } from '../../types.js'\n\nimport { createBlocksMap } from '../../utilities/createBlocksMap.js'\nimport { createPathMap } from '../../utilities/createRelationshipMap.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype TransformArgs = {\n adapter: DrizzleAdapter\n config: SanitizedConfig\n data: Record<string, unknown>\n fallbackLocale?: false | string\n fields: FlattenedField[]\n joinQuery?: JoinQuery\n locale?: string\n parentIsLocalized?: boolean\n}\n\n// This is the entry point to transform Drizzle output data\n// into the shape Payload expects based on field schema\nexport const transform = <T extends Record<string, unknown> | TypeWithID>({\n adapter,\n config,\n data,\n fields,\n joinQuery,\n parentIsLocalized,\n}: TransformArgs): T => {\n let relationships: Record<string, Record<string, unknown>[]> = {}\n let texts: Record<string, Record<string, unknown>[]> = {}\n let numbers: Record<string, Record<string, unknown>[]> = {}\n\n if ('_rels' in data) {\n relationships = createPathMap(data._rels)\n delete data._rels\n }\n\n if ('_texts' in data) {\n texts = createPathMap(data._texts)\n delete data._texts\n }\n\n if ('_numbers' in data) {\n numbers = createPathMap(data._numbers)\n delete data._numbers\n }\n\n const blocks = createBlocksMap(data)\n const deletions = []\n\n const result = traverseFields<T>({\n adapter,\n blocks,\n config,\n dataRef: {\n id: data.id,\n },\n deletions,\n fieldPrefix: '',\n fields,\n joinQuery,\n numbers,\n parentIsLocalized,\n path: '',\n relationships,\n table: data,\n texts,\n })\n\n deletions.forEach((deletion) => deletion())\n\n return result\n}\n"],"names":["createBlocksMap","createPathMap","traverseFields","transform","adapter","config","data","fields","joinQuery","parentIsLocalized","relationships","texts","numbers","_rels","_texts","_numbers","blocks","deletions","result","dataRef","id","fieldPrefix","path","table","forEach","deletion"],"mappings":"AAIA,SAASA,eAAe,QAAQ,qCAAoC;AACpE,SAASC,aAAa,QAAQ,2CAA0C;AACxE,SAASC,cAAc,QAAQ,sBAAqB;AAapD,2DAA2D;AAC3D,uDAAuD;AACvD,OAAO,MAAMC,YAAY,CAAiD,EACxEC,OAAO,EACPC,MAAM,EACNC,IAAI,EACJC,MAAM,EACNC,SAAS,EACTC,iBAAiB,EACH;IACd,IAAIC,gBAA2D,CAAC;IAChE,IAAIC,QAAmD,CAAC;IACxD,IAAIC,UAAqD,CAAC;IAE1D,IAAI,WAAWN,MAAM;QACnBI,gBAAgBT,cAAcK,KAAKO,KAAK;QACxC,OAAOP,KAAKO,KAAK;IACnB;IAEA,IAAI,YAAYP,MAAM;QACpBK,QAAQV,cAAcK,KAAKQ,MAAM;QACjC,OAAOR,KAAKQ,MAAM;IACpB;IAEA,IAAI,cAAcR,MAAM;QACtBM,UAAUX,cAAcK,KAAKS,QAAQ;QACrC,OAAOT,KAAKS,QAAQ;IACtB;IAEA,MAAMC,SAAShB,gBAAgBM;IAC/B,MAAMW,YAAY,EAAE;IAEpB,MAAMC,SAAShB,eAAkB;QAC/BE;QACAY;QACAX;QACAc,SAAS;YACPC,IAAId,KAAKc,EAAE;QACb;QACAH;QACAI,aAAa;QACbd;QACAC;QACAI;QACAH;QACAa,MAAM;QACNZ;QACAa,OAAOjB;QACPK;IACF;IAEAM,UAAUO,OAAO,CAAC,CAACC,WAAaA;IAEhC,OAAOP;AACT,EAAC"}
@@ -5,7 +5,7 @@ type Args = {
5
5
  adapter: DrizzleAdapter;
6
6
  data: Record<string, unknown>;
7
7
  fields: FlattenedField[];
8
- parentIsLocalized: boolean;
8
+ parentIsLocalized?: boolean;
9
9
  path?: string;
10
10
  tableName: string;
11
11
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transform/write/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAI7C,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,iBAAiB,mEAO3B,IAAI,KAAG,WAwCT,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transform/write/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAI7C,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,iBAAiB,mEAO3B,IAAI,KAAG,WAwCT,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/transform/write/index.ts"],"sourcesContent":["import type { FlattenedField } from 'payload'\n\nimport type { DrizzleAdapter } from '../../types.js'\nimport type { RowToInsert } from './types.js'\n\nimport { traverseFields } from './traverseFields.js'\n\ntype Args = {\n adapter: DrizzleAdapter\n data: Record<string, unknown>\n fields: FlattenedField[]\n parentIsLocalized: boolean\n path?: string\n tableName: string\n}\n\nexport const transformForWrite = ({\n adapter,\n data,\n fields,\n parentIsLocalized,\n path = '',\n tableName,\n}: Args): RowToInsert => {\n // Split out the incoming data into rows to insert / delete\n const rowToInsert: RowToInsert = {\n arrays: {},\n blocks: {},\n blocksToDelete: new Set(),\n locales: {},\n numbers: [],\n relationships: [],\n relationshipsToDelete: [],\n row: {},\n selects: {},\n texts: [],\n }\n\n // This function is responsible for building up the\n // above rowToInsert\n traverseFields({\n adapter,\n arrays: rowToInsert.arrays,\n baseTableName: tableName,\n blocks: rowToInsert.blocks,\n blocksToDelete: rowToInsert.blocksToDelete,\n columnPrefix: '',\n data,\n fieldPrefix: '',\n fields,\n locales: rowToInsert.locales,\n numbers: rowToInsert.numbers,\n parentIsLocalized,\n parentTableName: tableName,\n path,\n relationships: rowToInsert.relationships,\n relationshipsToDelete: rowToInsert.relationshipsToDelete,\n row: rowToInsert.row,\n selects: rowToInsert.selects,\n texts: rowToInsert.texts,\n })\n\n return rowToInsert\n}\n"],"names":["traverseFields","transformForWrite","adapter","data","fields","parentIsLocalized","path","tableName","rowToInsert","arrays","blocks","blocksToDelete","Set","locales","numbers","relationships","relationshipsToDelete","row","selects","texts","baseTableName","columnPrefix","fieldPrefix","parentTableName"],"mappings":"AAKA,SAASA,cAAc,QAAQ,sBAAqB;AAWpD,OAAO,MAAMC,oBAAoB,CAAC,EAChCC,OAAO,EACPC,IAAI,EACJC,MAAM,EACNC,iBAAiB,EACjBC,OAAO,EAAE,EACTC,SAAS,EACJ;IACL,2DAA2D;IAC3D,MAAMC,cAA2B;QAC/BC,QAAQ,CAAC;QACTC,QAAQ,CAAC;QACTC,gBAAgB,IAAIC;QACpBC,SAAS,CAAC;QACVC,SAAS,EAAE;QACXC,eAAe,EAAE;QACjBC,uBAAuB,EAAE;QACzBC,KAAK,CAAC;QACNC,SAAS,CAAC;QACVC,OAAO,EAAE;IACX;IAEA,mDAAmD;IACnD,oBAAoB;IACpBnB,eAAe;QACbE;QACAO,QAAQD,YAAYC,MAAM;QAC1BW,eAAeb;QACfG,QAAQF,YAAYE,MAAM;QAC1BC,gBAAgBH,YAAYG,cAAc;QAC1CU,cAAc;QACdlB;QACAmB,aAAa;QACblB;QACAS,SAASL,YAAYK,OAAO;QAC5BC,SAASN,YAAYM,OAAO;QAC5BT;QACAkB,iBAAiBhB;QACjBD;QACAS,eAAeP,YAAYO,aAAa;QACxCC,uBAAuBR,YAAYQ,qBAAqB;QACxDC,KAAKT,YAAYS,GAAG;QACpBC,SAASV,YAAYU,OAAO;QAC5BC,OAAOX,YAAYW,KAAK;IAC1B;IAEA,OAAOX;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../src/transform/write/index.ts"],"sourcesContent":["import type { FlattenedField } from 'payload'\n\nimport type { DrizzleAdapter } from '../../types.js'\nimport type { RowToInsert } from './types.js'\n\nimport { traverseFields } from './traverseFields.js'\n\ntype Args = {\n adapter: DrizzleAdapter\n data: Record<string, unknown>\n fields: FlattenedField[]\n parentIsLocalized?: boolean\n path?: string\n tableName: string\n}\n\nexport const transformForWrite = ({\n adapter,\n data,\n fields,\n parentIsLocalized,\n path = '',\n tableName,\n}: Args): RowToInsert => {\n // Split out the incoming data into rows to insert / delete\n const rowToInsert: RowToInsert = {\n arrays: {},\n blocks: {},\n blocksToDelete: new Set(),\n locales: {},\n numbers: [],\n relationships: [],\n relationshipsToDelete: [],\n row: {},\n selects: {},\n texts: [],\n }\n\n // This function is responsible for building up the\n // above rowToInsert\n traverseFields({\n adapter,\n arrays: rowToInsert.arrays,\n baseTableName: tableName,\n blocks: rowToInsert.blocks,\n blocksToDelete: rowToInsert.blocksToDelete,\n columnPrefix: '',\n data,\n fieldPrefix: '',\n fields,\n locales: rowToInsert.locales,\n numbers: rowToInsert.numbers,\n parentIsLocalized,\n parentTableName: tableName,\n path,\n relationships: rowToInsert.relationships,\n relationshipsToDelete: rowToInsert.relationshipsToDelete,\n row: rowToInsert.row,\n selects: rowToInsert.selects,\n texts: rowToInsert.texts,\n })\n\n return rowToInsert\n}\n"],"names":["traverseFields","transformForWrite","adapter","data","fields","parentIsLocalized","path","tableName","rowToInsert","arrays","blocks","blocksToDelete","Set","locales","numbers","relationships","relationshipsToDelete","row","selects","texts","baseTableName","columnPrefix","fieldPrefix","parentTableName"],"mappings":"AAKA,SAASA,cAAc,QAAQ,sBAAqB;AAWpD,OAAO,MAAMC,oBAAoB,CAAC,EAChCC,OAAO,EACPC,IAAI,EACJC,MAAM,EACNC,iBAAiB,EACjBC,OAAO,EAAE,EACTC,SAAS,EACJ;IACL,2DAA2D;IAC3D,MAAMC,cAA2B;QAC/BC,QAAQ,CAAC;QACTC,QAAQ,CAAC;QACTC,gBAAgB,IAAIC;QACpBC,SAAS,CAAC;QACVC,SAAS,EAAE;QACXC,eAAe,EAAE;QACjBC,uBAAuB,EAAE;QACzBC,KAAK,CAAC;QACNC,SAAS,CAAC;QACVC,OAAO,EAAE;IACX;IAEA,mDAAmD;IACnD,oBAAoB;IACpBnB,eAAe;QACbE;QACAO,QAAQD,YAAYC,MAAM;QAC1BW,eAAeb;QACfG,QAAQF,YAAYE,MAAM;QAC1BC,gBAAgBH,YAAYG,cAAc;QAC1CU,cAAc;QACdlB;QACAmB,aAAa;QACblB;QACAS,SAASL,YAAYK,OAAO;QAC5BC,SAASN,YAAYM,OAAO;QAC5BT;QACAkB,iBAAiBhB;QACjBD;QACAS,eAAeP,YAAYO,aAAa;QACxCC,uBAAuBR,YAAYQ,qBAAqB;QACxDC,KAAKT,YAAYS,GAAG;QACpBC,SAASV,YAAYU,OAAO;QAC5BC,OAAOX,YAAYW,KAAK;IAC1B;IAEA,OAAOX;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/upsertRow/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAMzC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAStC,eAAO,MAAM,SAAS,GAAU,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,yIAkB3E,IAAI,KAAG,OAAO,CAAC,CAAC,CAiblB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/upsertRow/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAMzC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAStC,eAAO,MAAM,SAAS,GAAU,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,yIAkB3E,IAAI,KAAG,OAAO,CAAC,CAAC,CA+alB,CAAA"}
@@ -16,7 +16,6 @@ joinQuery: _joinQuery, operation, path = '', req, select, tableName, upsertTarge
16
16
  adapter,
17
17
  data,
18
18
  fields,
19
- parentIsLocalized: false,
20
19
  path,
21
20
  tableName
22
21
  });
@@ -387,8 +386,7 @@ joinQuery: _joinQuery, operation, path = '', req, select, tableName, upsertTarge
387
386
  config: adapter.payload.config,
388
387
  data: doc,
389
388
  fields,
390
- joinQuery: false,
391
- parentIsLocalized: false
389
+ joinQuery: false
392
390
  });
393
391
  return result;
394
392
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/upsertRow/index.ts"],"sourcesContent":["import type { TypeWithID } from 'payload'\n\nimport { eq } from 'drizzle-orm'\nimport { ValidationError } from 'payload'\n\nimport type { BlockRowToInsert } from '../transform/write/types.js'\nimport type { Args } from './types.js'\n\nimport { buildFindManyArgs } from '../find/buildFindManyArgs.js'\nimport { transform } from '../transform/read/index.js'\nimport { transformForWrite } from '../transform/write/index.js'\nimport { deleteExistingArrayRows } from './deleteExistingArrayRows.js'\nimport { deleteExistingRowsByPath } from './deleteExistingRowsByPath.js'\nimport { insertArrays } from './insertArrays.js'\n\nexport const upsertRow = async <T extends Record<string, unknown> | TypeWithID>({\n id,\n adapter,\n data,\n db,\n fields,\n ignoreResult,\n // TODO:\n // When we support joins for write operations (create/update) - pass collectionSlug to the buildFindManyArgs\n // Make a new argument in upsertRow.ts and pass the slug from every operation.\n joinQuery: _joinQuery,\n operation,\n path = '',\n req,\n select,\n tableName,\n upsertTarget,\n where,\n}: Args): Promise<T> => {\n // Split out the incoming data into the corresponding:\n // base row, locales, relationships, blocks, and arrays\n const rowToInsert = transformForWrite({\n adapter,\n data,\n fields,\n parentIsLocalized: false,\n path,\n tableName,\n })\n\n // First, we insert the main row\n let insertedRow: Record<string, unknown>\n\n try {\n if (operation === 'update') {\n const target = upsertTarget || adapter.tables[tableName].id\n\n if (id) {\n rowToInsert.row.id = id\n ;[insertedRow] = await adapter.insert({\n db,\n onConflictDoUpdate: { set: rowToInsert.row, target },\n tableName,\n values: rowToInsert.row,\n })\n } else {\n ;[insertedRow] = await adapter.insert({\n db,\n onConflictDoUpdate: { set: rowToInsert.row, target, where },\n tableName,\n values: rowToInsert.row,\n })\n }\n } else {\n ;[insertedRow] = await adapter.insert({\n db,\n tableName,\n values: rowToInsert.row,\n })\n }\n\n const localesToInsert: Record<string, unknown>[] = []\n const relationsToInsert: Record<string, unknown>[] = []\n const textsToInsert: Record<string, unknown>[] = []\n const numbersToInsert: Record<string, unknown>[] = []\n const blocksToInsert: { [blockType: string]: BlockRowToInsert[] } = {}\n const selectsToInsert: { [selectTableName: string]: Record<string, unknown>[] } = {}\n\n // If there are locale rows with data, add the parent and locale to each\n if (Object.keys(rowToInsert.locales).length > 0) {\n Object.entries(rowToInsert.locales).forEach(([locale, localeRow]) => {\n localeRow._parentID = insertedRow.id\n localeRow._locale = locale\n localesToInsert.push(localeRow)\n })\n }\n\n // If there are relationships, add parent to each\n if (rowToInsert.relationships.length > 0) {\n rowToInsert.relationships.forEach((relation) => {\n relation.parent = insertedRow.id\n relationsToInsert.push(relation)\n })\n }\n\n // If there are texts, add parent to each\n if (rowToInsert.texts.length > 0) {\n rowToInsert.texts.forEach((textRow) => {\n textRow.parent = insertedRow.id\n textsToInsert.push(textRow)\n })\n }\n\n // If there are numbers, add parent to each\n if (rowToInsert.numbers.length > 0) {\n rowToInsert.numbers.forEach((numberRow) => {\n numberRow.parent = insertedRow.id\n numbersToInsert.push(numberRow)\n })\n }\n\n // If there are selects, add parent to each, and then\n // store by table name and rows\n if (Object.keys(rowToInsert.selects).length > 0) {\n Object.entries(rowToInsert.selects).forEach(([selectTableName, selectRows]) => {\n selectsToInsert[selectTableName] = []\n\n selectRows.forEach((row) => {\n if (typeof row.parent === 'undefined') {\n row.parent = insertedRow.id\n }\n\n selectsToInsert[selectTableName].push(row)\n })\n })\n }\n\n // If there are blocks, add parent to each, and then\n // store by table name and rows\n Object.keys(rowToInsert.blocks).forEach((blockName) => {\n rowToInsert.blocks[blockName].forEach((blockRow) => {\n blockRow.row._parentID = insertedRow.id\n if (!blocksToInsert[blockName]) {\n blocksToInsert[blockName] = []\n }\n if (blockRow.row.uuid) {\n delete blockRow.row.uuid\n }\n blocksToInsert[blockName].push(blockRow)\n })\n })\n\n // //////////////////////////////////\n // INSERT LOCALES\n // //////////////////////////////////\n\n if (localesToInsert.length > 0) {\n const localeTableName = `${tableName}${adapter.localesSuffix}`\n const localeTable = adapter.tables[`${tableName}${adapter.localesSuffix}`]\n\n if (operation === 'update') {\n await adapter.deleteWhere({\n db,\n tableName: localeTableName,\n where: eq(localeTable._parentID, insertedRow.id),\n })\n }\n\n await adapter.insert({\n db,\n tableName: localeTableName,\n values: localesToInsert,\n })\n }\n\n // //////////////////////////////////\n // INSERT RELATIONSHIPS\n // //////////////////////////////////\n\n const relationshipsTableName = `${tableName}${adapter.relationshipsSuffix}`\n\n if (operation === 'update') {\n await deleteExistingRowsByPath({\n adapter,\n db,\n localeColumnName: 'locale',\n parentColumnName: 'parent',\n parentID: insertedRow.id,\n pathColumnName: 'path',\n rows: [...relationsToInsert, ...rowToInsert.relationshipsToDelete],\n tableName: relationshipsTableName,\n })\n }\n\n if (relationsToInsert.length > 0) {\n await adapter.insert({\n db,\n tableName: relationshipsTableName,\n values: relationsToInsert,\n })\n }\n\n // //////////////////////////////////\n // INSERT hasMany TEXTS\n // //////////////////////////////////\n\n const textsTableName = `${tableName}_texts`\n\n if (operation === 'update') {\n await deleteExistingRowsByPath({\n adapter,\n db,\n localeColumnName: 'locale',\n parentColumnName: 'parent',\n parentID: insertedRow.id,\n pathColumnName: 'path',\n rows: textsToInsert,\n tableName: textsTableName,\n })\n }\n\n if (textsToInsert.length > 0) {\n await adapter.insert({\n db,\n tableName: textsTableName,\n values: textsToInsert,\n })\n }\n\n // //////////////////////////////////\n // INSERT hasMany NUMBERS\n // //////////////////////////////////\n\n const numbersTableName = `${tableName}_numbers`\n\n if (operation === 'update') {\n await deleteExistingRowsByPath({\n adapter,\n db,\n localeColumnName: 'locale',\n parentColumnName: 'parent',\n parentID: insertedRow.id,\n pathColumnName: 'path',\n rows: numbersToInsert,\n tableName: numbersTableName,\n })\n }\n\n if (numbersToInsert.length > 0) {\n await adapter.insert({\n db,\n tableName: numbersTableName,\n values: numbersToInsert,\n })\n }\n\n // //////////////////////////////////\n // INSERT BLOCKS\n // //////////////////////////////////\n\n const insertedBlockRows: Record<string, Record<string, unknown>[]> = {}\n\n if (operation === 'update') {\n for (const blockName of rowToInsert.blocksToDelete) {\n const blockTableName = adapter.tableNameMap.get(`${tableName}_blocks_${blockName}`)\n const blockTable = adapter.tables[blockTableName]\n await adapter.deleteWhere({\n db,\n tableName: blockTableName,\n where: eq(blockTable._parentID, insertedRow.id),\n })\n }\n }\n\n // When versions are enabled, this is used to track mapping between blocks/arrays ObjectID to their numeric generated representation, then we use it for nested to arrays/blocks select hasMany in versions.\n const arraysBlocksUUIDMap: Record<string, number | string> = {}\n\n for (const [blockName, blockRows] of Object.entries(blocksToInsert)) {\n const blockTableName = adapter.tableNameMap.get(`${tableName}_blocks_${blockName}`)\n insertedBlockRows[blockName] = await adapter.insert({\n db,\n tableName: blockTableName,\n values: blockRows.map(({ row }) => row),\n })\n\n insertedBlockRows[blockName].forEach((row, i) => {\n blockRows[i].row = row\n if (\n typeof row._uuid === 'string' &&\n (typeof row.id === 'string' || typeof row.id === 'number')\n ) {\n arraysBlocksUUIDMap[row._uuid] = row.id\n }\n })\n\n const blockLocaleIndexMap: number[] = []\n\n const blockLocaleRowsToInsert = blockRows.reduce((acc, blockRow, i) => {\n if (Object.entries(blockRow.locales).length > 0) {\n Object.entries(blockRow.locales).forEach(([blockLocale, blockLocaleData]) => {\n if (Object.keys(blockLocaleData).length > 0) {\n blockLocaleData._parentID = blockRow.row.id\n blockLocaleData._locale = blockLocale\n acc.push(blockLocaleData)\n blockLocaleIndexMap.push(i)\n }\n })\n }\n\n return acc\n }, [])\n\n if (blockLocaleRowsToInsert.length > 0) {\n await adapter.insert({\n db,\n tableName: `${blockTableName}${adapter.localesSuffix}`,\n values: blockLocaleRowsToInsert,\n })\n }\n\n await insertArrays({\n adapter,\n arrays: blockRows.map(({ arrays }) => arrays),\n db,\n parentRows: insertedBlockRows[blockName],\n uuidMap: arraysBlocksUUIDMap,\n })\n }\n\n // //////////////////////////////////\n // INSERT ARRAYS RECURSIVELY\n // //////////////////////////////////\n\n if (operation === 'update') {\n for (const arrayTableName of Object.keys(rowToInsert.arrays)) {\n await deleteExistingArrayRows({\n adapter,\n db,\n parentID: insertedRow.id,\n tableName: arrayTableName,\n })\n }\n }\n\n await insertArrays({\n adapter,\n arrays: [rowToInsert.arrays],\n db,\n parentRows: [insertedRow],\n uuidMap: arraysBlocksUUIDMap,\n })\n\n // //////////////////////////////////\n // INSERT hasMany SELECTS\n // //////////////////////////////////\n\n for (const [selectTableName, tableRows] of Object.entries(selectsToInsert)) {\n const selectTable = adapter.tables[selectTableName]\n if (operation === 'update') {\n await adapter.deleteWhere({\n db,\n tableName: selectTableName,\n where: eq(selectTable.parent, insertedRow.id),\n })\n }\n\n if (Object.keys(arraysBlocksUUIDMap).length > 0) {\n tableRows.forEach((row: any) => {\n if (row.parent in arraysBlocksUUIDMap) {\n row.parent = arraysBlocksUUIDMap[row.parent]\n }\n })\n }\n\n if (tableRows.length) {\n await adapter.insert({\n db,\n tableName: selectTableName,\n values: tableRows,\n })\n }\n }\n\n // //////////////////////////////////\n // Error Handling\n // //////////////////////////////////\n } catch (error) {\n if (error.code === '23505') {\n let fieldName: null | string = null\n // We need to try and find the right constraint for the field but if we can't we fallback to a generic message\n if (adapter.fieldConstraints?.[tableName]) {\n if (adapter.fieldConstraints[tableName]?.[error.constraint]) {\n fieldName = adapter.fieldConstraints[tableName]?.[error.constraint]\n } else {\n const replacement = `${tableName}_`\n\n if (error.constraint.includes(replacement)) {\n const replacedConstraint = error.constraint.replace(replacement, '')\n\n if (replacedConstraint && adapter.fieldConstraints[tableName]?.[replacedConstraint]) {\n fieldName = adapter.fieldConstraints[tableName][replacedConstraint]\n }\n }\n }\n }\n\n if (!fieldName) {\n // Last case scenario we extract the key and value from the detail on the error\n const detail = error.detail\n const regex = /Key \\(([^)]+)\\)=\\(([^)]+)\\)/\n const match = detail.match(regex)\n\n if (match) {\n const key = match[1]\n\n fieldName = key\n }\n }\n\n throw new ValidationError(\n {\n id,\n errors: [\n {\n message: req?.t ? req.t('error:valueMustBeUnique') : 'Value must be unique',\n path: fieldName,\n },\n ],\n },\n req?.t,\n )\n } else {\n throw error\n }\n }\n\n if (ignoreResult) {\n return data as T\n }\n\n // //////////////////////////////////\n // RETRIEVE NEWLY UPDATED ROW\n // //////////////////////////////////\n\n const findManyArgs = buildFindManyArgs({\n adapter,\n depth: 0,\n fields,\n joinQuery: false,\n select,\n tableName,\n })\n\n findManyArgs.where = eq(adapter.tables[tableName].id, insertedRow.id)\n\n const doc = await db.query[tableName].findFirst(findManyArgs)\n\n // //////////////////////////////////\n // TRANSFORM DATA\n // //////////////////////////////////\n\n const result = transform<T>({\n adapter,\n config: adapter.payload.config,\n data: doc,\n fields,\n joinQuery: false,\n parentIsLocalized: false,\n })\n\n return result\n}\n"],"names":["eq","ValidationError","buildFindManyArgs","transform","transformForWrite","deleteExistingArrayRows","deleteExistingRowsByPath","insertArrays","upsertRow","id","adapter","data","db","fields","ignoreResult","joinQuery","_joinQuery","operation","path","req","select","tableName","upsertTarget","where","rowToInsert","parentIsLocalized","insertedRow","target","tables","row","insert","onConflictDoUpdate","set","values","localesToInsert","relationsToInsert","textsToInsert","numbersToInsert","blocksToInsert","selectsToInsert","Object","keys","locales","length","entries","forEach","locale","localeRow","_parentID","_locale","push","relationships","relation","parent","texts","textRow","numbers","numberRow","selects","selectTableName","selectRows","blocks","blockName","blockRow","uuid","localeTableName","localesSuffix","localeTable","deleteWhere","relationshipsTableName","relationshipsSuffix","localeColumnName","parentColumnName","parentID","pathColumnName","rows","relationshipsToDelete","textsTableName","numbersTableName","insertedBlockRows","blocksToDelete","blockTableName","tableNameMap","get","blockTable","arraysBlocksUUIDMap","blockRows","map","i","_uuid","blockLocaleIndexMap","blockLocaleRowsToInsert","reduce","acc","blockLocale","blockLocaleData","arrays","parentRows","uuidMap","arrayTableName","tableRows","selectTable","error","code","fieldName","fieldConstraints","constraint","replacement","includes","replacedConstraint","replace","detail","regex","match","key","errors","message","t","findManyArgs","depth","doc","query","findFirst","result","config","payload"],"mappings":"AAEA,SAASA,EAAE,QAAQ,cAAa;AAChC,SAASC,eAAe,QAAQ,UAAS;AAKzC,SAASC,iBAAiB,QAAQ,+BAA8B;AAChE,SAASC,SAAS,QAAQ,6BAA4B;AACtD,SAASC,iBAAiB,QAAQ,8BAA6B;AAC/D,SAASC,uBAAuB,QAAQ,+BAA8B;AACtE,SAASC,wBAAwB,QAAQ,gCAA+B;AACxE,SAASC,YAAY,QAAQ,oBAAmB;AAEhD,OAAO,MAAMC,YAAY,OAAuD,EAC9EC,EAAE,EACFC,OAAO,EACPC,IAAI,EACJC,EAAE,EACFC,MAAM,EACNC,YAAY,EACZ,QAAQ;AACR,4GAA4G;AAC5G,8EAA8E;AAC9EC,WAAWC,UAAU,EACrBC,SAAS,EACTC,OAAO,EAAE,EACTC,GAAG,EACHC,MAAM,EACNC,SAAS,EACTC,YAAY,EACZC,KAAK,EACA;IACL,sDAAsD;IACtD,uDAAuD;IACvD,MAAMC,cAAcpB,kBAAkB;QACpCM;QACAC;QACAE;QACAY,mBAAmB;QACnBP;QACAG;IACF;IAEA,gCAAgC;IAChC,IAAIK;IAEJ,IAAI;QACF,IAAIT,cAAc,UAAU;YAC1B,MAAMU,SAASL,gBAAgBZ,QAAQkB,MAAM,CAACP,UAAU,CAACZ,EAAE;YAE3D,IAAIA,IAAI;gBACNe,YAAYK,GAAG,CAACpB,EAAE,GAAGA;gBACpB,CAACiB,YAAY,GAAG,MAAMhB,QAAQoB,MAAM,CAAC;oBACpClB;oBACAmB,oBAAoB;wBAAEC,KAAKR,YAAYK,GAAG;wBAAEF;oBAAO;oBACnDN;oBACAY,QAAQT,YAAYK,GAAG;gBACzB;YACF,OAAO;;gBACJ,CAACH,YAAY,GAAG,MAAMhB,QAAQoB,MAAM,CAAC;oBACpClB;oBACAmB,oBAAoB;wBAAEC,KAAKR,YAAYK,GAAG;wBAAEF;wBAAQJ;oBAAM;oBAC1DF;oBACAY,QAAQT,YAAYK,GAAG;gBACzB;YACF;QACF,OAAO;;YACJ,CAACH,YAAY,GAAG,MAAMhB,QAAQoB,MAAM,CAAC;gBACpClB;gBACAS;gBACAY,QAAQT,YAAYK,GAAG;YACzB;QACF;QAEA,MAAMK,kBAA6C,EAAE;QACrD,MAAMC,oBAA+C,EAAE;QACvD,MAAMC,gBAA2C,EAAE;QACnD,MAAMC,kBAA6C,EAAE;QACrD,MAAMC,iBAA8D,CAAC;QACrE,MAAMC,kBAA4E,CAAC;QAEnF,wEAAwE;QACxE,IAAIC,OAAOC,IAAI,CAACjB,YAAYkB,OAAO,EAAEC,MAAM,GAAG,GAAG;YAC/CH,OAAOI,OAAO,CAACpB,YAAYkB,OAAO,EAAEG,OAAO,CAAC,CAAC,CAACC,QAAQC,UAAU;gBAC9DA,UAAUC,SAAS,GAAGtB,YAAYjB,EAAE;gBACpCsC,UAAUE,OAAO,GAAGH;gBACpBZ,gBAAgBgB,IAAI,CAACH;YACvB;QACF;QAEA,iDAAiD;QACjD,IAAIvB,YAAY2B,aAAa,CAACR,MAAM,GAAG,GAAG;YACxCnB,YAAY2B,aAAa,CAACN,OAAO,CAAC,CAACO;gBACjCA,SAASC,MAAM,GAAG3B,YAAYjB,EAAE;gBAChC0B,kBAAkBe,IAAI,CAACE;YACzB;QACF;QAEA,yCAAyC;QACzC,IAAI5B,YAAY8B,KAAK,CAACX,MAAM,GAAG,GAAG;YAChCnB,YAAY8B,KAAK,CAACT,OAAO,CAAC,CAACU;gBACzBA,QAAQF,MAAM,GAAG3B,YAAYjB,EAAE;gBAC/B2B,cAAcc,IAAI,CAACK;YACrB;QACF;QAEA,2CAA2C;QAC3C,IAAI/B,YAAYgC,OAAO,CAACb,MAAM,GAAG,GAAG;YAClCnB,YAAYgC,OAAO,CAACX,OAAO,CAAC,CAACY;gBAC3BA,UAAUJ,MAAM,GAAG3B,YAAYjB,EAAE;gBACjC4B,gBAAgBa,IAAI,CAACO;YACvB;QACF;QAEA,qDAAqD;QACrD,+BAA+B;QAC/B,IAAIjB,OAAOC,IAAI,CAACjB,YAAYkC,OAAO,EAAEf,MAAM,GAAG,GAAG;YAC/CH,OAAOI,OAAO,CAACpB,YAAYkC,OAAO,EAAEb,OAAO,CAAC,CAAC,CAACc,iBAAiBC,WAAW;gBACxErB,eAAe,CAACoB,gBAAgB,GAAG,EAAE;gBAErCC,WAAWf,OAAO,CAAC,CAAChB;oBAClB,IAAI,OAAOA,IAAIwB,MAAM,KAAK,aAAa;wBACrCxB,IAAIwB,MAAM,GAAG3B,YAAYjB,EAAE;oBAC7B;oBAEA8B,eAAe,CAACoB,gBAAgB,CAACT,IAAI,CAACrB;gBACxC;YACF;QACF;QAEA,oDAAoD;QACpD,+BAA+B;QAC/BW,OAAOC,IAAI,CAACjB,YAAYqC,MAAM,EAAEhB,OAAO,CAAC,CAACiB;YACvCtC,YAAYqC,MAAM,CAACC,UAAU,CAACjB,OAAO,CAAC,CAACkB;gBACrCA,SAASlC,GAAG,CAACmB,SAAS,GAAGtB,YAAYjB,EAAE;gBACvC,IAAI,CAAC6B,cAAc,CAACwB,UAAU,EAAE;oBAC9BxB,cAAc,CAACwB,UAAU,GAAG,EAAE;gBAChC;gBACA,IAAIC,SAASlC,GAAG,CAACmC,IAAI,EAAE;oBACrB,OAAOD,SAASlC,GAAG,CAACmC,IAAI;gBAC1B;gBACA1B,cAAc,CAACwB,UAAU,CAACZ,IAAI,CAACa;YACjC;QACF;QAEA,qCAAqC;QACrC,iBAAiB;QACjB,qCAAqC;QAErC,IAAI7B,gBAAgBS,MAAM,GAAG,GAAG;YAC9B,MAAMsB,kBAAkB,GAAG5C,YAAYX,QAAQwD,aAAa,EAAE;YAC9D,MAAMC,cAAczD,QAAQkB,MAAM,CAAC,GAAGP,YAAYX,QAAQwD,aAAa,EAAE,CAAC;YAE1E,IAAIjD,cAAc,UAAU;gBAC1B,MAAMP,QAAQ0D,WAAW,CAAC;oBACxBxD;oBACAS,WAAW4C;oBACX1C,OAAOvB,GAAGmE,YAAYnB,SAAS,EAAEtB,YAAYjB,EAAE;gBACjD;YACF;YAEA,MAAMC,QAAQoB,MAAM,CAAC;gBACnBlB;gBACAS,WAAW4C;gBACXhC,QAAQC;YACV;QACF;QAEA,qCAAqC;QACrC,uBAAuB;QACvB,qCAAqC;QAErC,MAAMmC,yBAAyB,GAAGhD,YAAYX,QAAQ4D,mBAAmB,EAAE;QAE3E,IAAIrD,cAAc,UAAU;YAC1B,MAAMX,yBAAyB;gBAC7BI;gBACAE;gBACA2D,kBAAkB;gBAClBC,kBAAkB;gBAClBC,UAAU/C,YAAYjB,EAAE;gBACxBiE,gBAAgB;gBAChBC,MAAM;uBAAIxC;uBAAsBX,YAAYoD,qBAAqB;iBAAC;gBAClEvD,WAAWgD;YACb;QACF;QAEA,IAAIlC,kBAAkBQ,MAAM,GAAG,GAAG;YAChC,MAAMjC,QAAQoB,MAAM,CAAC;gBACnBlB;gBACAS,WAAWgD;gBACXpC,QAAQE;YACV;QACF;QAEA,qCAAqC;QACrC,uBAAuB;QACvB,qCAAqC;QAErC,MAAM0C,iBAAiB,GAAGxD,UAAU,MAAM,CAAC;QAE3C,IAAIJ,cAAc,UAAU;YAC1B,MAAMX,yBAAyB;gBAC7BI;gBACAE;gBACA2D,kBAAkB;gBAClBC,kBAAkB;gBAClBC,UAAU/C,YAAYjB,EAAE;gBACxBiE,gBAAgB;gBAChBC,MAAMvC;gBACNf,WAAWwD;YACb;QACF;QAEA,IAAIzC,cAAcO,MAAM,GAAG,GAAG;YAC5B,MAAMjC,QAAQoB,MAAM,CAAC;gBACnBlB;gBACAS,WAAWwD;gBACX5C,QAAQG;YACV;QACF;QAEA,qCAAqC;QACrC,yBAAyB;QACzB,qCAAqC;QAErC,MAAM0C,mBAAmB,GAAGzD,UAAU,QAAQ,CAAC;QAE/C,IAAIJ,cAAc,UAAU;YAC1B,MAAMX,yBAAyB;gBAC7BI;gBACAE;gBACA2D,kBAAkB;gBAClBC,kBAAkB;gBAClBC,UAAU/C,YAAYjB,EAAE;gBACxBiE,gBAAgB;gBAChBC,MAAMtC;gBACNhB,WAAWyD;YACb;QACF;QAEA,IAAIzC,gBAAgBM,MAAM,GAAG,GAAG;YAC9B,MAAMjC,QAAQoB,MAAM,CAAC;gBACnBlB;gBACAS,WAAWyD;gBACX7C,QAAQI;YACV;QACF;QAEA,qCAAqC;QACrC,gBAAgB;QAChB,qCAAqC;QAErC,MAAM0C,oBAA+D,CAAC;QAEtE,IAAI9D,cAAc,UAAU;YAC1B,KAAK,MAAM6C,aAAatC,YAAYwD,cAAc,CAAE;gBAClD,MAAMC,iBAAiBvE,QAAQwE,YAAY,CAACC,GAAG,CAAC,GAAG9D,UAAU,QAAQ,EAAEyC,WAAW;gBAClF,MAAMsB,aAAa1E,QAAQkB,MAAM,CAACqD,eAAe;gBACjD,MAAMvE,QAAQ0D,WAAW,CAAC;oBACxBxD;oBACAS,WAAW4D;oBACX1D,OAAOvB,GAAGoF,WAAWpC,SAAS,EAAEtB,YAAYjB,EAAE;gBAChD;YACF;QACF;QAEA,4MAA4M;QAC5M,MAAM4E,sBAAuD,CAAC;QAE9D,KAAK,MAAM,CAACvB,WAAWwB,UAAU,IAAI9C,OAAOI,OAAO,CAACN,gBAAiB;YACnE,MAAM2C,iBAAiBvE,QAAQwE,YAAY,CAACC,GAAG,CAAC,GAAG9D,UAAU,QAAQ,EAAEyC,WAAW;YAClFiB,iBAAiB,CAACjB,UAAU,GAAG,MAAMpD,QAAQoB,MAAM,CAAC;gBAClDlB;gBACAS,WAAW4D;gBACXhD,QAAQqD,UAAUC,GAAG,CAAC,CAAC,EAAE1D,GAAG,EAAE,GAAKA;YACrC;YAEAkD,iBAAiB,CAACjB,UAAU,CAACjB,OAAO,CAAC,CAAChB,KAAK2D;gBACzCF,SAAS,CAACE,EAAE,CAAC3D,GAAG,GAAGA;gBACnB,IACE,OAAOA,IAAI4D,KAAK,KAAK,YACpB,CAAA,OAAO5D,IAAIpB,EAAE,KAAK,YAAY,OAAOoB,IAAIpB,EAAE,KAAK,QAAO,GACxD;oBACA4E,mBAAmB,CAACxD,IAAI4D,KAAK,CAAC,GAAG5D,IAAIpB,EAAE;gBACzC;YACF;YAEA,MAAMiF,sBAAgC,EAAE;YAExC,MAAMC,0BAA0BL,UAAUM,MAAM,CAAC,CAACC,KAAK9B,UAAUyB;gBAC/D,IAAIhD,OAAOI,OAAO,CAACmB,SAASrB,OAAO,EAAEC,MAAM,GAAG,GAAG;oBAC/CH,OAAOI,OAAO,CAACmB,SAASrB,OAAO,EAAEG,OAAO,CAAC,CAAC,CAACiD,aAAaC,gBAAgB;wBACtE,IAAIvD,OAAOC,IAAI,CAACsD,iBAAiBpD,MAAM,GAAG,GAAG;4BAC3CoD,gBAAgB/C,SAAS,GAAGe,SAASlC,GAAG,CAACpB,EAAE;4BAC3CsF,gBAAgB9C,OAAO,GAAG6C;4BAC1BD,IAAI3C,IAAI,CAAC6C;4BACTL,oBAAoBxC,IAAI,CAACsC;wBAC3B;oBACF;gBACF;gBAEA,OAAOK;YACT,GAAG,EAAE;YAEL,IAAIF,wBAAwBhD,MAAM,GAAG,GAAG;gBACtC,MAAMjC,QAAQoB,MAAM,CAAC;oBACnBlB;oBACAS,WAAW,GAAG4D,iBAAiBvE,QAAQwD,aAAa,EAAE;oBACtDjC,QAAQ0D;gBACV;YACF;YAEA,MAAMpF,aAAa;gBACjBG;gBACAsF,QAAQV,UAAUC,GAAG,CAAC,CAAC,EAAES,MAAM,EAAE,GAAKA;gBACtCpF;gBACAqF,YAAYlB,iBAAiB,CAACjB,UAAU;gBACxCoC,SAASb;YACX;QACF;QAEA,qCAAqC;QACrC,4BAA4B;QAC5B,qCAAqC;QAErC,IAAIpE,cAAc,UAAU;YAC1B,KAAK,MAAMkF,kBAAkB3D,OAAOC,IAAI,CAACjB,YAAYwE,MAAM,EAAG;gBAC5D,MAAM3F,wBAAwB;oBAC5BK;oBACAE;oBACA6D,UAAU/C,YAAYjB,EAAE;oBACxBY,WAAW8E;gBACb;YACF;QACF;QAEA,MAAM5F,aAAa;YACjBG;YACAsF,QAAQ;gBAACxE,YAAYwE,MAAM;aAAC;YAC5BpF;YACAqF,YAAY;gBAACvE;aAAY;YACzBwE,SAASb;QACX;QAEA,qCAAqC;QACrC,yBAAyB;QACzB,qCAAqC;QAErC,KAAK,MAAM,CAAC1B,iBAAiByC,UAAU,IAAI5D,OAAOI,OAAO,CAACL,iBAAkB;YAC1E,MAAM8D,cAAc3F,QAAQkB,MAAM,CAAC+B,gBAAgB;YACnD,IAAI1C,cAAc,UAAU;gBAC1B,MAAMP,QAAQ0D,WAAW,CAAC;oBACxBxD;oBACAS,WAAWsC;oBACXpC,OAAOvB,GAAGqG,YAAYhD,MAAM,EAAE3B,YAAYjB,EAAE;gBAC9C;YACF;YAEA,IAAI+B,OAAOC,IAAI,CAAC4C,qBAAqB1C,MAAM,GAAG,GAAG;gBAC/CyD,UAAUvD,OAAO,CAAC,CAAChB;oBACjB,IAAIA,IAAIwB,MAAM,IAAIgC,qBAAqB;wBACrCxD,IAAIwB,MAAM,GAAGgC,mBAAmB,CAACxD,IAAIwB,MAAM,CAAC;oBAC9C;gBACF;YACF;YAEA,IAAI+C,UAAUzD,MAAM,EAAE;gBACpB,MAAMjC,QAAQoB,MAAM,CAAC;oBACnBlB;oBACAS,WAAWsC;oBACX1B,QAAQmE;gBACV;YACF;QACF;IAEA,qCAAqC;IACrC,iBAAiB;IACjB,qCAAqC;IACvC,EAAE,OAAOE,OAAO;QACd,IAAIA,MAAMC,IAAI,KAAK,SAAS;YAC1B,IAAIC,YAA2B;YAC/B,8GAA8G;YAC9G,IAAI9F,QAAQ+F,gBAAgB,EAAE,CAACpF,UAAU,EAAE;gBACzC,IAAIX,QAAQ+F,gBAAgB,CAACpF,UAAU,EAAE,CAACiF,MAAMI,UAAU,CAAC,EAAE;oBAC3DF,YAAY9F,QAAQ+F,gBAAgB,CAACpF,UAAU,EAAE,CAACiF,MAAMI,UAAU,CAAC;gBACrE,OAAO;oBACL,MAAMC,cAAc,GAAGtF,UAAU,CAAC,CAAC;oBAEnC,IAAIiF,MAAMI,UAAU,CAACE,QAAQ,CAACD,cAAc;wBAC1C,MAAME,qBAAqBP,MAAMI,UAAU,CAACI,OAAO,CAACH,aAAa;wBAEjE,IAAIE,sBAAsBnG,QAAQ+F,gBAAgB,CAACpF,UAAU,EAAE,CAACwF,mBAAmB,EAAE;4BACnFL,YAAY9F,QAAQ+F,gBAAgB,CAACpF,UAAU,CAACwF,mBAAmB;wBACrE;oBACF;gBACF;YACF;YAEA,IAAI,CAACL,WAAW;gBACd,+EAA+E;gBAC/E,MAAMO,SAAST,MAAMS,MAAM;gBAC3B,MAAMC,QAAQ;gBACd,MAAMC,QAAQF,OAAOE,KAAK,CAACD;gBAE3B,IAAIC,OAAO;oBACT,MAAMC,MAAMD,KAAK,CAAC,EAAE;oBAEpBT,YAAYU;gBACd;YACF;YAEA,MAAM,IAAIjH,gBACR;gBACEQ;gBACA0G,QAAQ;oBACN;wBACEC,SAASjG,KAAKkG,IAAIlG,IAAIkG,CAAC,CAAC,6BAA6B;wBACrDnG,MAAMsF;oBACR;iBACD;YACH,GACArF,KAAKkG;QAET,OAAO;YACL,MAAMf;QACR;IACF;IAEA,IAAIxF,cAAc;QAChB,OAAOH;IACT;IAEA,qCAAqC;IACrC,6BAA6B;IAC7B,qCAAqC;IAErC,MAAM2G,eAAepH,kBAAkB;QACrCQ;QACA6G,OAAO;QACP1G;QACAE,WAAW;QACXK;QACAC;IACF;IAEAiG,aAAa/F,KAAK,GAAGvB,GAAGU,QAAQkB,MAAM,CAACP,UAAU,CAACZ,EAAE,EAAEiB,YAAYjB,EAAE;IAEpE,MAAM+G,MAAM,MAAM5G,GAAG6G,KAAK,CAACpG,UAAU,CAACqG,SAAS,CAACJ;IAEhD,qCAAqC;IACrC,iBAAiB;IACjB,qCAAqC;IAErC,MAAMK,SAASxH,UAAa;QAC1BO;QACAkH,QAAQlH,QAAQmH,OAAO,CAACD,MAAM;QAC9BjH,MAAM6G;QACN3G;QACAE,WAAW;QACXU,mBAAmB;IACrB;IAEA,OAAOkG;AACT,EAAC"}
1
+ {"version":3,"sources":["../../src/upsertRow/index.ts"],"sourcesContent":["import type { TypeWithID } from 'payload'\n\nimport { eq } from 'drizzle-orm'\nimport { ValidationError } from 'payload'\n\nimport type { BlockRowToInsert } from '../transform/write/types.js'\nimport type { Args } from './types.js'\n\nimport { buildFindManyArgs } from '../find/buildFindManyArgs.js'\nimport { transform } from '../transform/read/index.js'\nimport { transformForWrite } from '../transform/write/index.js'\nimport { deleteExistingArrayRows } from './deleteExistingArrayRows.js'\nimport { deleteExistingRowsByPath } from './deleteExistingRowsByPath.js'\nimport { insertArrays } from './insertArrays.js'\n\nexport const upsertRow = async <T extends Record<string, unknown> | TypeWithID>({\n id,\n adapter,\n data,\n db,\n fields,\n ignoreResult,\n // TODO:\n // When we support joins for write operations (create/update) - pass collectionSlug to the buildFindManyArgs\n // Make a new argument in upsertRow.ts and pass the slug from every operation.\n joinQuery: _joinQuery,\n operation,\n path = '',\n req,\n select,\n tableName,\n upsertTarget,\n where,\n}: Args): Promise<T> => {\n // Split out the incoming data into the corresponding:\n // base row, locales, relationships, blocks, and arrays\n const rowToInsert = transformForWrite({\n adapter,\n data,\n fields,\n path,\n tableName,\n })\n\n // First, we insert the main row\n let insertedRow: Record<string, unknown>\n\n try {\n if (operation === 'update') {\n const target = upsertTarget || adapter.tables[tableName].id\n\n if (id) {\n rowToInsert.row.id = id\n ;[insertedRow] = await adapter.insert({\n db,\n onConflictDoUpdate: { set: rowToInsert.row, target },\n tableName,\n values: rowToInsert.row,\n })\n } else {\n ;[insertedRow] = await adapter.insert({\n db,\n onConflictDoUpdate: { set: rowToInsert.row, target, where },\n tableName,\n values: rowToInsert.row,\n })\n }\n } else {\n ;[insertedRow] = await adapter.insert({\n db,\n tableName,\n values: rowToInsert.row,\n })\n }\n\n const localesToInsert: Record<string, unknown>[] = []\n const relationsToInsert: Record<string, unknown>[] = []\n const textsToInsert: Record<string, unknown>[] = []\n const numbersToInsert: Record<string, unknown>[] = []\n const blocksToInsert: { [blockType: string]: BlockRowToInsert[] } = {}\n const selectsToInsert: { [selectTableName: string]: Record<string, unknown>[] } = {}\n\n // If there are locale rows with data, add the parent and locale to each\n if (Object.keys(rowToInsert.locales).length > 0) {\n Object.entries(rowToInsert.locales).forEach(([locale, localeRow]) => {\n localeRow._parentID = insertedRow.id\n localeRow._locale = locale\n localesToInsert.push(localeRow)\n })\n }\n\n // If there are relationships, add parent to each\n if (rowToInsert.relationships.length > 0) {\n rowToInsert.relationships.forEach((relation) => {\n relation.parent = insertedRow.id\n relationsToInsert.push(relation)\n })\n }\n\n // If there are texts, add parent to each\n if (rowToInsert.texts.length > 0) {\n rowToInsert.texts.forEach((textRow) => {\n textRow.parent = insertedRow.id\n textsToInsert.push(textRow)\n })\n }\n\n // If there are numbers, add parent to each\n if (rowToInsert.numbers.length > 0) {\n rowToInsert.numbers.forEach((numberRow) => {\n numberRow.parent = insertedRow.id\n numbersToInsert.push(numberRow)\n })\n }\n\n // If there are selects, add parent to each, and then\n // store by table name and rows\n if (Object.keys(rowToInsert.selects).length > 0) {\n Object.entries(rowToInsert.selects).forEach(([selectTableName, selectRows]) => {\n selectsToInsert[selectTableName] = []\n\n selectRows.forEach((row) => {\n if (typeof row.parent === 'undefined') {\n row.parent = insertedRow.id\n }\n\n selectsToInsert[selectTableName].push(row)\n })\n })\n }\n\n // If there are blocks, add parent to each, and then\n // store by table name and rows\n Object.keys(rowToInsert.blocks).forEach((blockName) => {\n rowToInsert.blocks[blockName].forEach((blockRow) => {\n blockRow.row._parentID = insertedRow.id\n if (!blocksToInsert[blockName]) {\n blocksToInsert[blockName] = []\n }\n if (blockRow.row.uuid) {\n delete blockRow.row.uuid\n }\n blocksToInsert[blockName].push(blockRow)\n })\n })\n\n // //////////////////////////////////\n // INSERT LOCALES\n // //////////////////////////////////\n\n if (localesToInsert.length > 0) {\n const localeTableName = `${tableName}${adapter.localesSuffix}`\n const localeTable = adapter.tables[`${tableName}${adapter.localesSuffix}`]\n\n if (operation === 'update') {\n await adapter.deleteWhere({\n db,\n tableName: localeTableName,\n where: eq(localeTable._parentID, insertedRow.id),\n })\n }\n\n await adapter.insert({\n db,\n tableName: localeTableName,\n values: localesToInsert,\n })\n }\n\n // //////////////////////////////////\n // INSERT RELATIONSHIPS\n // //////////////////////////////////\n\n const relationshipsTableName = `${tableName}${adapter.relationshipsSuffix}`\n\n if (operation === 'update') {\n await deleteExistingRowsByPath({\n adapter,\n db,\n localeColumnName: 'locale',\n parentColumnName: 'parent',\n parentID: insertedRow.id,\n pathColumnName: 'path',\n rows: [...relationsToInsert, ...rowToInsert.relationshipsToDelete],\n tableName: relationshipsTableName,\n })\n }\n\n if (relationsToInsert.length > 0) {\n await adapter.insert({\n db,\n tableName: relationshipsTableName,\n values: relationsToInsert,\n })\n }\n\n // //////////////////////////////////\n // INSERT hasMany TEXTS\n // //////////////////////////////////\n\n const textsTableName = `${tableName}_texts`\n\n if (operation === 'update') {\n await deleteExistingRowsByPath({\n adapter,\n db,\n localeColumnName: 'locale',\n parentColumnName: 'parent',\n parentID: insertedRow.id,\n pathColumnName: 'path',\n rows: textsToInsert,\n tableName: textsTableName,\n })\n }\n\n if (textsToInsert.length > 0) {\n await adapter.insert({\n db,\n tableName: textsTableName,\n values: textsToInsert,\n })\n }\n\n // //////////////////////////////////\n // INSERT hasMany NUMBERS\n // //////////////////////////////////\n\n const numbersTableName = `${tableName}_numbers`\n\n if (operation === 'update') {\n await deleteExistingRowsByPath({\n adapter,\n db,\n localeColumnName: 'locale',\n parentColumnName: 'parent',\n parentID: insertedRow.id,\n pathColumnName: 'path',\n rows: numbersToInsert,\n tableName: numbersTableName,\n })\n }\n\n if (numbersToInsert.length > 0) {\n await adapter.insert({\n db,\n tableName: numbersTableName,\n values: numbersToInsert,\n })\n }\n\n // //////////////////////////////////\n // INSERT BLOCKS\n // //////////////////////////////////\n\n const insertedBlockRows: Record<string, Record<string, unknown>[]> = {}\n\n if (operation === 'update') {\n for (const blockName of rowToInsert.blocksToDelete) {\n const blockTableName = adapter.tableNameMap.get(`${tableName}_blocks_${blockName}`)\n const blockTable = adapter.tables[blockTableName]\n await adapter.deleteWhere({\n db,\n tableName: blockTableName,\n where: eq(blockTable._parentID, insertedRow.id),\n })\n }\n }\n\n // When versions are enabled, this is used to track mapping between blocks/arrays ObjectID to their numeric generated representation, then we use it for nested to arrays/blocks select hasMany in versions.\n const arraysBlocksUUIDMap: Record<string, number | string> = {}\n\n for (const [blockName, blockRows] of Object.entries(blocksToInsert)) {\n const blockTableName = adapter.tableNameMap.get(`${tableName}_blocks_${blockName}`)\n insertedBlockRows[blockName] = await adapter.insert({\n db,\n tableName: blockTableName,\n values: blockRows.map(({ row }) => row),\n })\n\n insertedBlockRows[blockName].forEach((row, i) => {\n blockRows[i].row = row\n if (\n typeof row._uuid === 'string' &&\n (typeof row.id === 'string' || typeof row.id === 'number')\n ) {\n arraysBlocksUUIDMap[row._uuid] = row.id\n }\n })\n\n const blockLocaleIndexMap: number[] = []\n\n const blockLocaleRowsToInsert = blockRows.reduce((acc, blockRow, i) => {\n if (Object.entries(blockRow.locales).length > 0) {\n Object.entries(blockRow.locales).forEach(([blockLocale, blockLocaleData]) => {\n if (Object.keys(blockLocaleData).length > 0) {\n blockLocaleData._parentID = blockRow.row.id\n blockLocaleData._locale = blockLocale\n acc.push(blockLocaleData)\n blockLocaleIndexMap.push(i)\n }\n })\n }\n\n return acc\n }, [])\n\n if (blockLocaleRowsToInsert.length > 0) {\n await adapter.insert({\n db,\n tableName: `${blockTableName}${adapter.localesSuffix}`,\n values: blockLocaleRowsToInsert,\n })\n }\n\n await insertArrays({\n adapter,\n arrays: blockRows.map(({ arrays }) => arrays),\n db,\n parentRows: insertedBlockRows[blockName],\n uuidMap: arraysBlocksUUIDMap,\n })\n }\n\n // //////////////////////////////////\n // INSERT ARRAYS RECURSIVELY\n // //////////////////////////////////\n\n if (operation === 'update') {\n for (const arrayTableName of Object.keys(rowToInsert.arrays)) {\n await deleteExistingArrayRows({\n adapter,\n db,\n parentID: insertedRow.id,\n tableName: arrayTableName,\n })\n }\n }\n\n await insertArrays({\n adapter,\n arrays: [rowToInsert.arrays],\n db,\n parentRows: [insertedRow],\n uuidMap: arraysBlocksUUIDMap,\n })\n\n // //////////////////////////////////\n // INSERT hasMany SELECTS\n // //////////////////////////////////\n\n for (const [selectTableName, tableRows] of Object.entries(selectsToInsert)) {\n const selectTable = adapter.tables[selectTableName]\n if (operation === 'update') {\n await adapter.deleteWhere({\n db,\n tableName: selectTableName,\n where: eq(selectTable.parent, insertedRow.id),\n })\n }\n\n if (Object.keys(arraysBlocksUUIDMap).length > 0) {\n tableRows.forEach((row: any) => {\n if (row.parent in arraysBlocksUUIDMap) {\n row.parent = arraysBlocksUUIDMap[row.parent]\n }\n })\n }\n\n if (tableRows.length) {\n await adapter.insert({\n db,\n tableName: selectTableName,\n values: tableRows,\n })\n }\n }\n\n // //////////////////////////////////\n // Error Handling\n // //////////////////////////////////\n } catch (error) {\n if (error.code === '23505') {\n let fieldName: null | string = null\n // We need to try and find the right constraint for the field but if we can't we fallback to a generic message\n if (adapter.fieldConstraints?.[tableName]) {\n if (adapter.fieldConstraints[tableName]?.[error.constraint]) {\n fieldName = adapter.fieldConstraints[tableName]?.[error.constraint]\n } else {\n const replacement = `${tableName}_`\n\n if (error.constraint.includes(replacement)) {\n const replacedConstraint = error.constraint.replace(replacement, '')\n\n if (replacedConstraint && adapter.fieldConstraints[tableName]?.[replacedConstraint]) {\n fieldName = adapter.fieldConstraints[tableName][replacedConstraint]\n }\n }\n }\n }\n\n if (!fieldName) {\n // Last case scenario we extract the key and value from the detail on the error\n const detail = error.detail\n const regex = /Key \\(([^)]+)\\)=\\(([^)]+)\\)/\n const match = detail.match(regex)\n\n if (match) {\n const key = match[1]\n\n fieldName = key\n }\n }\n\n throw new ValidationError(\n {\n id,\n errors: [\n {\n message: req?.t ? req.t('error:valueMustBeUnique') : 'Value must be unique',\n path: fieldName,\n },\n ],\n },\n req?.t,\n )\n } else {\n throw error\n }\n }\n\n if (ignoreResult) {\n return data as T\n }\n\n // //////////////////////////////////\n // RETRIEVE NEWLY UPDATED ROW\n // //////////////////////////////////\n\n const findManyArgs = buildFindManyArgs({\n adapter,\n depth: 0,\n fields,\n joinQuery: false,\n select,\n tableName,\n })\n\n findManyArgs.where = eq(adapter.tables[tableName].id, insertedRow.id)\n\n const doc = await db.query[tableName].findFirst(findManyArgs)\n\n // //////////////////////////////////\n // TRANSFORM DATA\n // //////////////////////////////////\n\n const result = transform<T>({\n adapter,\n config: adapter.payload.config,\n data: doc,\n fields,\n joinQuery: false,\n })\n\n return result\n}\n"],"names":["eq","ValidationError","buildFindManyArgs","transform","transformForWrite","deleteExistingArrayRows","deleteExistingRowsByPath","insertArrays","upsertRow","id","adapter","data","db","fields","ignoreResult","joinQuery","_joinQuery","operation","path","req","select","tableName","upsertTarget","where","rowToInsert","insertedRow","target","tables","row","insert","onConflictDoUpdate","set","values","localesToInsert","relationsToInsert","textsToInsert","numbersToInsert","blocksToInsert","selectsToInsert","Object","keys","locales","length","entries","forEach","locale","localeRow","_parentID","_locale","push","relationships","relation","parent","texts","textRow","numbers","numberRow","selects","selectTableName","selectRows","blocks","blockName","blockRow","uuid","localeTableName","localesSuffix","localeTable","deleteWhere","relationshipsTableName","relationshipsSuffix","localeColumnName","parentColumnName","parentID","pathColumnName","rows","relationshipsToDelete","textsTableName","numbersTableName","insertedBlockRows","blocksToDelete","blockTableName","tableNameMap","get","blockTable","arraysBlocksUUIDMap","blockRows","map","i","_uuid","blockLocaleIndexMap","blockLocaleRowsToInsert","reduce","acc","blockLocale","blockLocaleData","arrays","parentRows","uuidMap","arrayTableName","tableRows","selectTable","error","code","fieldName","fieldConstraints","constraint","replacement","includes","replacedConstraint","replace","detail","regex","match","key","errors","message","t","findManyArgs","depth","doc","query","findFirst","result","config","payload"],"mappings":"AAEA,SAASA,EAAE,QAAQ,cAAa;AAChC,SAASC,eAAe,QAAQ,UAAS;AAKzC,SAASC,iBAAiB,QAAQ,+BAA8B;AAChE,SAASC,SAAS,QAAQ,6BAA4B;AACtD,SAASC,iBAAiB,QAAQ,8BAA6B;AAC/D,SAASC,uBAAuB,QAAQ,+BAA8B;AACtE,SAASC,wBAAwB,QAAQ,gCAA+B;AACxE,SAASC,YAAY,QAAQ,oBAAmB;AAEhD,OAAO,MAAMC,YAAY,OAAuD,EAC9EC,EAAE,EACFC,OAAO,EACPC,IAAI,EACJC,EAAE,EACFC,MAAM,EACNC,YAAY,EACZ,QAAQ;AACR,4GAA4G;AAC5G,8EAA8E;AAC9EC,WAAWC,UAAU,EACrBC,SAAS,EACTC,OAAO,EAAE,EACTC,GAAG,EACHC,MAAM,EACNC,SAAS,EACTC,YAAY,EACZC,KAAK,EACA;IACL,sDAAsD;IACtD,uDAAuD;IACvD,MAAMC,cAAcpB,kBAAkB;QACpCM;QACAC;QACAE;QACAK;QACAG;IACF;IAEA,gCAAgC;IAChC,IAAII;IAEJ,IAAI;QACF,IAAIR,cAAc,UAAU;YAC1B,MAAMS,SAASJ,gBAAgBZ,QAAQiB,MAAM,CAACN,UAAU,CAACZ,EAAE;YAE3D,IAAIA,IAAI;gBACNe,YAAYI,GAAG,CAACnB,EAAE,GAAGA;gBACpB,CAACgB,YAAY,GAAG,MAAMf,QAAQmB,MAAM,CAAC;oBACpCjB;oBACAkB,oBAAoB;wBAAEC,KAAKP,YAAYI,GAAG;wBAAEF;oBAAO;oBACnDL;oBACAW,QAAQR,YAAYI,GAAG;gBACzB;YACF,OAAO;;gBACJ,CAACH,YAAY,GAAG,MAAMf,QAAQmB,MAAM,CAAC;oBACpCjB;oBACAkB,oBAAoB;wBAAEC,KAAKP,YAAYI,GAAG;wBAAEF;wBAAQH;oBAAM;oBAC1DF;oBACAW,QAAQR,YAAYI,GAAG;gBACzB;YACF;QACF,OAAO;;YACJ,CAACH,YAAY,GAAG,MAAMf,QAAQmB,MAAM,CAAC;gBACpCjB;gBACAS;gBACAW,QAAQR,YAAYI,GAAG;YACzB;QACF;QAEA,MAAMK,kBAA6C,EAAE;QACrD,MAAMC,oBAA+C,EAAE;QACvD,MAAMC,gBAA2C,EAAE;QACnD,MAAMC,kBAA6C,EAAE;QACrD,MAAMC,iBAA8D,CAAC;QACrE,MAAMC,kBAA4E,CAAC;QAEnF,wEAAwE;QACxE,IAAIC,OAAOC,IAAI,CAAChB,YAAYiB,OAAO,EAAEC,MAAM,GAAG,GAAG;YAC/CH,OAAOI,OAAO,CAACnB,YAAYiB,OAAO,EAAEG,OAAO,CAAC,CAAC,CAACC,QAAQC,UAAU;gBAC9DA,UAAUC,SAAS,GAAGtB,YAAYhB,EAAE;gBACpCqC,UAAUE,OAAO,GAAGH;gBACpBZ,gBAAgBgB,IAAI,CAACH;YACvB;QACF;QAEA,iDAAiD;QACjD,IAAItB,YAAY0B,aAAa,CAACR,MAAM,GAAG,GAAG;YACxClB,YAAY0B,aAAa,CAACN,OAAO,CAAC,CAACO;gBACjCA,SAASC,MAAM,GAAG3B,YAAYhB,EAAE;gBAChCyB,kBAAkBe,IAAI,CAACE;YACzB;QACF;QAEA,yCAAyC;QACzC,IAAI3B,YAAY6B,KAAK,CAACX,MAAM,GAAG,GAAG;YAChClB,YAAY6B,KAAK,CAACT,OAAO,CAAC,CAACU;gBACzBA,QAAQF,MAAM,GAAG3B,YAAYhB,EAAE;gBAC/B0B,cAAcc,IAAI,CAACK;YACrB;QACF;QAEA,2CAA2C;QAC3C,IAAI9B,YAAY+B,OAAO,CAACb,MAAM,GAAG,GAAG;YAClClB,YAAY+B,OAAO,CAACX,OAAO,CAAC,CAACY;gBAC3BA,UAAUJ,MAAM,GAAG3B,YAAYhB,EAAE;gBACjC2B,gBAAgBa,IAAI,CAACO;YACvB;QACF;QAEA,qDAAqD;QACrD,+BAA+B;QAC/B,IAAIjB,OAAOC,IAAI,CAAChB,YAAYiC,OAAO,EAAEf,MAAM,GAAG,GAAG;YAC/CH,OAAOI,OAAO,CAACnB,YAAYiC,OAAO,EAAEb,OAAO,CAAC,CAAC,CAACc,iBAAiBC,WAAW;gBACxErB,eAAe,CAACoB,gBAAgB,GAAG,EAAE;gBAErCC,WAAWf,OAAO,CAAC,CAAChB;oBAClB,IAAI,OAAOA,IAAIwB,MAAM,KAAK,aAAa;wBACrCxB,IAAIwB,MAAM,GAAG3B,YAAYhB,EAAE;oBAC7B;oBAEA6B,eAAe,CAACoB,gBAAgB,CAACT,IAAI,CAACrB;gBACxC;YACF;QACF;QAEA,oDAAoD;QACpD,+BAA+B;QAC/BW,OAAOC,IAAI,CAAChB,YAAYoC,MAAM,EAAEhB,OAAO,CAAC,CAACiB;YACvCrC,YAAYoC,MAAM,CAACC,UAAU,CAACjB,OAAO,CAAC,CAACkB;gBACrCA,SAASlC,GAAG,CAACmB,SAAS,GAAGtB,YAAYhB,EAAE;gBACvC,IAAI,CAAC4B,cAAc,CAACwB,UAAU,EAAE;oBAC9BxB,cAAc,CAACwB,UAAU,GAAG,EAAE;gBAChC;gBACA,IAAIC,SAASlC,GAAG,CAACmC,IAAI,EAAE;oBACrB,OAAOD,SAASlC,GAAG,CAACmC,IAAI;gBAC1B;gBACA1B,cAAc,CAACwB,UAAU,CAACZ,IAAI,CAACa;YACjC;QACF;QAEA,qCAAqC;QACrC,iBAAiB;QACjB,qCAAqC;QAErC,IAAI7B,gBAAgBS,MAAM,GAAG,GAAG;YAC9B,MAAMsB,kBAAkB,GAAG3C,YAAYX,QAAQuD,aAAa,EAAE;YAC9D,MAAMC,cAAcxD,QAAQiB,MAAM,CAAC,GAAGN,YAAYX,QAAQuD,aAAa,EAAE,CAAC;YAE1E,IAAIhD,cAAc,UAAU;gBAC1B,MAAMP,QAAQyD,WAAW,CAAC;oBACxBvD;oBACAS,WAAW2C;oBACXzC,OAAOvB,GAAGkE,YAAYnB,SAAS,EAAEtB,YAAYhB,EAAE;gBACjD;YACF;YAEA,MAAMC,QAAQmB,MAAM,CAAC;gBACnBjB;gBACAS,WAAW2C;gBACXhC,QAAQC;YACV;QACF;QAEA,qCAAqC;QACrC,uBAAuB;QACvB,qCAAqC;QAErC,MAAMmC,yBAAyB,GAAG/C,YAAYX,QAAQ2D,mBAAmB,EAAE;QAE3E,IAAIpD,cAAc,UAAU;YAC1B,MAAMX,yBAAyB;gBAC7BI;gBACAE;gBACA0D,kBAAkB;gBAClBC,kBAAkB;gBAClBC,UAAU/C,YAAYhB,EAAE;gBACxBgE,gBAAgB;gBAChBC,MAAM;uBAAIxC;uBAAsBV,YAAYmD,qBAAqB;iBAAC;gBAClEtD,WAAW+C;YACb;QACF;QAEA,IAAIlC,kBAAkBQ,MAAM,GAAG,GAAG;YAChC,MAAMhC,QAAQmB,MAAM,CAAC;gBACnBjB;gBACAS,WAAW+C;gBACXpC,QAAQE;YACV;QACF;QAEA,qCAAqC;QACrC,uBAAuB;QACvB,qCAAqC;QAErC,MAAM0C,iBAAiB,GAAGvD,UAAU,MAAM,CAAC;QAE3C,IAAIJ,cAAc,UAAU;YAC1B,MAAMX,yBAAyB;gBAC7BI;gBACAE;gBACA0D,kBAAkB;gBAClBC,kBAAkB;gBAClBC,UAAU/C,YAAYhB,EAAE;gBACxBgE,gBAAgB;gBAChBC,MAAMvC;gBACNd,WAAWuD;YACb;QACF;QAEA,IAAIzC,cAAcO,MAAM,GAAG,GAAG;YAC5B,MAAMhC,QAAQmB,MAAM,CAAC;gBACnBjB;gBACAS,WAAWuD;gBACX5C,QAAQG;YACV;QACF;QAEA,qCAAqC;QACrC,yBAAyB;QACzB,qCAAqC;QAErC,MAAM0C,mBAAmB,GAAGxD,UAAU,QAAQ,CAAC;QAE/C,IAAIJ,cAAc,UAAU;YAC1B,MAAMX,yBAAyB;gBAC7BI;gBACAE;gBACA0D,kBAAkB;gBAClBC,kBAAkB;gBAClBC,UAAU/C,YAAYhB,EAAE;gBACxBgE,gBAAgB;gBAChBC,MAAMtC;gBACNf,WAAWwD;YACb;QACF;QAEA,IAAIzC,gBAAgBM,MAAM,GAAG,GAAG;YAC9B,MAAMhC,QAAQmB,MAAM,CAAC;gBACnBjB;gBACAS,WAAWwD;gBACX7C,QAAQI;YACV;QACF;QAEA,qCAAqC;QACrC,gBAAgB;QAChB,qCAAqC;QAErC,MAAM0C,oBAA+D,CAAC;QAEtE,IAAI7D,cAAc,UAAU;YAC1B,KAAK,MAAM4C,aAAarC,YAAYuD,cAAc,CAAE;gBAClD,MAAMC,iBAAiBtE,QAAQuE,YAAY,CAACC,GAAG,CAAC,GAAG7D,UAAU,QAAQ,EAAEwC,WAAW;gBAClF,MAAMsB,aAAazE,QAAQiB,MAAM,CAACqD,eAAe;gBACjD,MAAMtE,QAAQyD,WAAW,CAAC;oBACxBvD;oBACAS,WAAW2D;oBACXzD,OAAOvB,GAAGmF,WAAWpC,SAAS,EAAEtB,YAAYhB,EAAE;gBAChD;YACF;QACF;QAEA,4MAA4M;QAC5M,MAAM2E,sBAAuD,CAAC;QAE9D,KAAK,MAAM,CAACvB,WAAWwB,UAAU,IAAI9C,OAAOI,OAAO,CAACN,gBAAiB;YACnE,MAAM2C,iBAAiBtE,QAAQuE,YAAY,CAACC,GAAG,CAAC,GAAG7D,UAAU,QAAQ,EAAEwC,WAAW;YAClFiB,iBAAiB,CAACjB,UAAU,GAAG,MAAMnD,QAAQmB,MAAM,CAAC;gBAClDjB;gBACAS,WAAW2D;gBACXhD,QAAQqD,UAAUC,GAAG,CAAC,CAAC,EAAE1D,GAAG,EAAE,GAAKA;YACrC;YAEAkD,iBAAiB,CAACjB,UAAU,CAACjB,OAAO,CAAC,CAAChB,KAAK2D;gBACzCF,SAAS,CAACE,EAAE,CAAC3D,GAAG,GAAGA;gBACnB,IACE,OAAOA,IAAI4D,KAAK,KAAK,YACpB,CAAA,OAAO5D,IAAInB,EAAE,KAAK,YAAY,OAAOmB,IAAInB,EAAE,KAAK,QAAO,GACxD;oBACA2E,mBAAmB,CAACxD,IAAI4D,KAAK,CAAC,GAAG5D,IAAInB,EAAE;gBACzC;YACF;YAEA,MAAMgF,sBAAgC,EAAE;YAExC,MAAMC,0BAA0BL,UAAUM,MAAM,CAAC,CAACC,KAAK9B,UAAUyB;gBAC/D,IAAIhD,OAAOI,OAAO,CAACmB,SAASrB,OAAO,EAAEC,MAAM,GAAG,GAAG;oBAC/CH,OAAOI,OAAO,CAACmB,SAASrB,OAAO,EAAEG,OAAO,CAAC,CAAC,CAACiD,aAAaC,gBAAgB;wBACtE,IAAIvD,OAAOC,IAAI,CAACsD,iBAAiBpD,MAAM,GAAG,GAAG;4BAC3CoD,gBAAgB/C,SAAS,GAAGe,SAASlC,GAAG,CAACnB,EAAE;4BAC3CqF,gBAAgB9C,OAAO,GAAG6C;4BAC1BD,IAAI3C,IAAI,CAAC6C;4BACTL,oBAAoBxC,IAAI,CAACsC;wBAC3B;oBACF;gBACF;gBAEA,OAAOK;YACT,GAAG,EAAE;YAEL,IAAIF,wBAAwBhD,MAAM,GAAG,GAAG;gBACtC,MAAMhC,QAAQmB,MAAM,CAAC;oBACnBjB;oBACAS,WAAW,GAAG2D,iBAAiBtE,QAAQuD,aAAa,EAAE;oBACtDjC,QAAQ0D;gBACV;YACF;YAEA,MAAMnF,aAAa;gBACjBG;gBACAqF,QAAQV,UAAUC,GAAG,CAAC,CAAC,EAAES,MAAM,EAAE,GAAKA;gBACtCnF;gBACAoF,YAAYlB,iBAAiB,CAACjB,UAAU;gBACxCoC,SAASb;YACX;QACF;QAEA,qCAAqC;QACrC,4BAA4B;QAC5B,qCAAqC;QAErC,IAAInE,cAAc,UAAU;YAC1B,KAAK,MAAMiF,kBAAkB3D,OAAOC,IAAI,CAAChB,YAAYuE,MAAM,EAAG;gBAC5D,MAAM1F,wBAAwB;oBAC5BK;oBACAE;oBACA4D,UAAU/C,YAAYhB,EAAE;oBACxBY,WAAW6E;gBACb;YACF;QACF;QAEA,MAAM3F,aAAa;YACjBG;YACAqF,QAAQ;gBAACvE,YAAYuE,MAAM;aAAC;YAC5BnF;YACAoF,YAAY;gBAACvE;aAAY;YACzBwE,SAASb;QACX;QAEA,qCAAqC;QACrC,yBAAyB;QACzB,qCAAqC;QAErC,KAAK,MAAM,CAAC1B,iBAAiByC,UAAU,IAAI5D,OAAOI,OAAO,CAACL,iBAAkB;YAC1E,MAAM8D,cAAc1F,QAAQiB,MAAM,CAAC+B,gBAAgB;YACnD,IAAIzC,cAAc,UAAU;gBAC1B,MAAMP,QAAQyD,WAAW,CAAC;oBACxBvD;oBACAS,WAAWqC;oBACXnC,OAAOvB,GAAGoG,YAAYhD,MAAM,EAAE3B,YAAYhB,EAAE;gBAC9C;YACF;YAEA,IAAI8B,OAAOC,IAAI,CAAC4C,qBAAqB1C,MAAM,GAAG,GAAG;gBAC/CyD,UAAUvD,OAAO,CAAC,CAAChB;oBACjB,IAAIA,IAAIwB,MAAM,IAAIgC,qBAAqB;wBACrCxD,IAAIwB,MAAM,GAAGgC,mBAAmB,CAACxD,IAAIwB,MAAM,CAAC;oBAC9C;gBACF;YACF;YAEA,IAAI+C,UAAUzD,MAAM,EAAE;gBACpB,MAAMhC,QAAQmB,MAAM,CAAC;oBACnBjB;oBACAS,WAAWqC;oBACX1B,QAAQmE;gBACV;YACF;QACF;IAEA,qCAAqC;IACrC,iBAAiB;IACjB,qCAAqC;IACvC,EAAE,OAAOE,OAAO;QACd,IAAIA,MAAMC,IAAI,KAAK,SAAS;YAC1B,IAAIC,YAA2B;YAC/B,8GAA8G;YAC9G,IAAI7F,QAAQ8F,gBAAgB,EAAE,CAACnF,UAAU,EAAE;gBACzC,IAAIX,QAAQ8F,gBAAgB,CAACnF,UAAU,EAAE,CAACgF,MAAMI,UAAU,CAAC,EAAE;oBAC3DF,YAAY7F,QAAQ8F,gBAAgB,CAACnF,UAAU,EAAE,CAACgF,MAAMI,UAAU,CAAC;gBACrE,OAAO;oBACL,MAAMC,cAAc,GAAGrF,UAAU,CAAC,CAAC;oBAEnC,IAAIgF,MAAMI,UAAU,CAACE,QAAQ,CAACD,cAAc;wBAC1C,MAAME,qBAAqBP,MAAMI,UAAU,CAACI,OAAO,CAACH,aAAa;wBAEjE,IAAIE,sBAAsBlG,QAAQ8F,gBAAgB,CAACnF,UAAU,EAAE,CAACuF,mBAAmB,EAAE;4BACnFL,YAAY7F,QAAQ8F,gBAAgB,CAACnF,UAAU,CAACuF,mBAAmB;wBACrE;oBACF;gBACF;YACF;YAEA,IAAI,CAACL,WAAW;gBACd,+EAA+E;gBAC/E,MAAMO,SAAST,MAAMS,MAAM;gBAC3B,MAAMC,QAAQ;gBACd,MAAMC,QAAQF,OAAOE,KAAK,CAACD;gBAE3B,IAAIC,OAAO;oBACT,MAAMC,MAAMD,KAAK,CAAC,EAAE;oBAEpBT,YAAYU;gBACd;YACF;YAEA,MAAM,IAAIhH,gBACR;gBACEQ;gBACAyG,QAAQ;oBACN;wBACEC,SAAShG,KAAKiG,IAAIjG,IAAIiG,CAAC,CAAC,6BAA6B;wBACrDlG,MAAMqF;oBACR;iBACD;YACH,GACApF,KAAKiG;QAET,OAAO;YACL,MAAMf;QACR;IACF;IAEA,IAAIvF,cAAc;QAChB,OAAOH;IACT;IAEA,qCAAqC;IACrC,6BAA6B;IAC7B,qCAAqC;IAErC,MAAM0G,eAAenH,kBAAkB;QACrCQ;QACA4G,OAAO;QACPzG;QACAE,WAAW;QACXK;QACAC;IACF;IAEAgG,aAAa9F,KAAK,GAAGvB,GAAGU,QAAQiB,MAAM,CAACN,UAAU,CAACZ,EAAE,EAAEgB,YAAYhB,EAAE;IAEpE,MAAM8G,MAAM,MAAM3G,GAAG4G,KAAK,CAACnG,UAAU,CAACoG,SAAS,CAACJ;IAEhD,qCAAqC;IACrC,iBAAiB;IACjB,qCAAqC;IAErC,MAAMK,SAASvH,UAAa;QAC1BO;QACAiH,QAAQjH,QAAQkH,OAAO,CAACD,MAAM;QAC9BhH,MAAM4G;QACN1G;QACAE,WAAW;IACb;IAEA,OAAO2G;AACT,EAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/drizzle",
3
- "version": "3.24.0-canary.7d9fbaf",
3
+ "version": "3.24.0-canary.d22403c",
4
4
  "description": "A library of shared functions used by different payload database adapters",
5
5
  "homepage": "https://payloadcms.com",
6
6
  "repository": {
@@ -53,10 +53,10 @@
53
53
  "@types/pg": "8.10.2",
54
54
  "@types/to-snake-case": "1.0.0",
55
55
  "@payloadcms/eslint-config": "3.9.0",
56
- "payload": "3.24.0-canary.7d9fbaf"
56
+ "payload": "3.24.0-canary.d22403c"
57
57
  },
58
58
  "peerDependencies": {
59
- "payload": "3.24.0-canary.7d9fbaf"
59
+ "payload": "3.24.0-canary.d22403c"
60
60
  },
61
61
  "scripts": {
62
62
  "build": "pnpm build:swc && pnpm build:types",