@payloadcms/drizzle 4.0.0-internal.ea6e8f8 → 4.0.0-internal.ee5d8bd

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/dist/count.d.ts.map +1 -1
  2. package/dist/count.js +3 -25
  3. package/dist/count.js.map +1 -1
  4. package/dist/countVersions.d.ts.map +1 -1
  5. package/dist/countVersions.js +4 -28
  6. package/dist/countVersions.js.map +1 -1
  7. package/dist/createGlobalVersion.d.ts.map +1 -1
  8. package/dist/createGlobalVersion.js +2 -15
  9. package/dist/createGlobalVersion.js.map +1 -1
  10. package/dist/createVersion.d.ts.map +1 -1
  11. package/dist/createVersion.js +1 -12
  12. package/dist/createVersion.js.map +1 -1
  13. package/dist/deleteOne.d.ts.map +1 -1
  14. package/dist/deleteOne.js +1 -18
  15. package/dist/deleteOne.js.map +1 -1
  16. package/dist/find/buildFindManyArgs.d.ts +2 -3
  17. package/dist/find/buildFindManyArgs.d.ts.map +1 -1
  18. package/dist/find/buildFindManyArgs.js +1 -2
  19. package/dist/find/buildFindManyArgs.js.map +1 -1
  20. package/dist/find/buildPolymorphicJoinQuery.d.ts +4 -4
  21. package/dist/find/buildPolymorphicJoinQuery.d.ts.map +1 -1
  22. package/dist/find/buildPolymorphicJoinQuery.js +26 -32
  23. package/dist/find/buildPolymorphicJoinQuery.js.map +1 -1
  24. package/dist/find/buildPolymorphicJoinWhere.js +1 -1
  25. package/dist/find/buildPolymorphicJoinWhere.js.map +1 -1
  26. package/dist/find/createPolymorphicJoinWherePlan.d.ts +2 -1
  27. package/dist/find/createPolymorphicJoinWherePlan.d.ts.map +1 -1
  28. package/dist/find/createPolymorphicJoinWherePlan.js +14 -5
  29. package/dist/find/createPolymorphicJoinWherePlan.js.map +1 -1
  30. package/dist/find/findMany.d.ts +1 -6
  31. package/dist/find/findMany.d.ts.map +1 -1
  32. package/dist/find/findMany.js +3 -16
  33. package/dist/find/findMany.js.map +1 -1
  34. package/dist/find/traverseFields.d.ts +2 -3
  35. package/dist/find/traverseFields.d.ts.map +1 -1
  36. package/dist/find/traverseFields.js +8 -54
  37. package/dist/find/traverseFields.js.map +1 -1
  38. package/dist/find.d.ts.map +1 -1
  39. package/dist/find.js +4 -32
  40. package/dist/find.js.map +1 -1
  41. package/dist/findDistinct.d.ts.map +1 -1
  42. package/dist/findDistinct.js +8 -107
  43. package/dist/findDistinct.js.map +1 -1
  44. package/dist/findGlobal.d.ts.map +1 -1
  45. package/dist/findGlobal.js +5 -22
  46. package/dist/findGlobal.js.map +1 -1
  47. package/dist/findGlobalVersions.js +3 -8
  48. package/dist/findGlobalVersions.js.map +1 -1
  49. package/dist/findOne.d.ts +1 -1
  50. package/dist/findOne.d.ts.map +1 -1
  51. package/dist/findOne.js +3 -30
  52. package/dist/findOne.js.map +1 -1
  53. package/dist/findVersions.d.ts.map +1 -1
  54. package/dist/findVersions.js +5 -32
  55. package/dist/findVersions.js.map +1 -1
  56. package/dist/index.d.ts +0 -10
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +0 -10
  59. package/dist/index.js.map +1 -1
  60. package/dist/postgres/insert.d.ts.map +1 -1
  61. package/dist/postgres/insert.js +2 -4
  62. package/dist/postgres/insert.js.map +1 -1
  63. package/dist/postgres/types.d.ts +0 -4
  64. package/dist/postgres/types.d.ts.map +1 -1
  65. package/dist/postgres/types.js.map +1 -1
  66. package/dist/queries/buildAndOrConditions.d.ts +2 -3
  67. package/dist/queries/buildAndOrConditions.d.ts.map +1 -1
  68. package/dist/queries/buildAndOrConditions.js +1 -2
  69. package/dist/queries/buildAndOrConditions.js.map +1 -1
  70. package/dist/queries/buildOrderBy.d.ts +2 -3
  71. package/dist/queries/buildOrderBy.d.ts.map +1 -1
  72. package/dist/queries/buildOrderBy.js +1 -2
  73. package/dist/queries/buildOrderBy.js.map +1 -1
  74. package/dist/queries/buildQuery.d.ts +2 -3
  75. package/dist/queries/buildQuery.d.ts.map +1 -1
  76. package/dist/queries/buildQuery.js +2 -4
  77. package/dist/queries/buildQuery.js.map +1 -1
  78. package/dist/queries/getTableColumnFromPath.d.ts +2 -3
  79. package/dist/queries/getTableColumnFromPath.d.ts.map +1 -1
  80. package/dist/queries/getTableColumnFromPath.js +27 -166
  81. package/dist/queries/getTableColumnFromPath.js.map +1 -1
  82. package/dist/queries/parseParams.d.ts +2 -3
  83. package/dist/queries/parseParams.d.ts.map +1 -1
  84. package/dist/queries/parseParams.js +1 -4
  85. package/dist/queries/parseParams.js.map +1 -1
  86. package/dist/queryDrafts.d.ts.map +1 -1
  87. package/dist/queryDrafts.js +4 -23
  88. package/dist/queryDrafts.js.map +1 -1
  89. package/dist/schema/build.d.ts.map +1 -1
  90. package/dist/schema/build.js +20 -23
  91. package/dist/schema/build.js.map +1 -1
  92. package/dist/sqlite/execute.js.map +1 -1
  93. package/dist/sqlite/insert.d.ts.map +1 -1
  94. package/dist/sqlite/insert.js +3 -5
  95. package/dist/sqlite/insert.js.map +1 -1
  96. package/dist/sqlite/types.d.ts +0 -4
  97. package/dist/sqlite/types.d.ts.map +1 -1
  98. package/dist/sqlite/types.js.map +1 -1
  99. package/dist/transactions/beginTransaction.d.ts.map +1 -1
  100. package/dist/transactions/beginTransaction.js +5 -13
  101. package/dist/transactions/beginTransaction.js.map +1 -1
  102. package/dist/transactions/commitTransaction.d.ts.map +1 -1
  103. package/dist/transactions/commitTransaction.js +5 -1
  104. package/dist/transactions/commitTransaction.js.map +1 -1
  105. package/dist/transform/read/traverseFields.js.map +1 -1
  106. package/dist/transform/write/array.d.ts +2 -3
  107. package/dist/transform/write/array.d.ts.map +1 -1
  108. package/dist/transform/write/array.js +1 -2
  109. package/dist/transform/write/array.js.map +1 -1
  110. package/dist/transform/write/blocks.d.ts +2 -3
  111. package/dist/transform/write/blocks.d.ts.map +1 -1
  112. package/dist/transform/write/blocks.js +1 -2
  113. package/dist/transform/write/blocks.js.map +1 -1
  114. package/dist/transform/write/index.d.ts.map +1 -1
  115. package/dist/transform/write/index.js +0 -2
  116. package/dist/transform/write/index.js.map +1 -1
  117. package/dist/transform/write/traverseFields.d.ts +1 -2
  118. package/dist/transform/write/traverseFields.d.ts.map +1 -1
  119. package/dist/transform/write/traverseFields.js +6 -32
  120. package/dist/transform/write/traverseFields.js.map +1 -1
  121. package/dist/transform/write/types.d.ts +0 -7
  122. package/dist/transform/write/types.d.ts.map +1 -1
  123. package/dist/transform/write/types.js.map +1 -1
  124. package/dist/types.d.ts +0 -1
  125. package/dist/types.d.ts.map +1 -1
  126. package/dist/types.js.map +1 -1
  127. package/dist/updateGlobal.d.ts +1 -5
  128. package/dist/updateGlobal.d.ts.map +1 -1
  129. package/dist/updateGlobal.js +4 -96
  130. package/dist/updateGlobal.js.map +1 -1
  131. package/dist/updateOne.d.ts.map +1 -1
  132. package/dist/updateOne.js +5 -47
  133. package/dist/updateOne.js.map +1 -1
  134. package/dist/upsertRow/deleteExistingRowsByPath.d.ts.map +1 -1
  135. package/dist/upsertRow/deleteExistingRowsByPath.js +12 -17
  136. package/dist/upsertRow/deleteExistingRowsByPath.js.map +1 -1
  137. package/dist/upsertRow/index.d.ts +1 -1
  138. package/dist/upsertRow/index.d.ts.map +1 -1
  139. package/dist/upsertRow/index.js +42 -132
  140. package/dist/upsertRow/index.js.map +1 -1
  141. package/dist/upsertRow/types.d.ts +0 -3
  142. package/dist/upsertRow/types.d.ts.map +1 -1
  143. package/dist/upsertRow/types.js.map +1 -1
  144. package/dist/utilities/blocksToJsonMigrator.d.ts.map +1 -1
  145. package/dist/utilities/blocksToJsonMigrator.js +6 -17
  146. package/dist/utilities/blocksToJsonMigrator.js.map +1 -1
  147. package/dist/utilities/createSchemaGenerator.d.ts.map +1 -1
  148. package/dist/utilities/createSchemaGenerator.js +7 -12
  149. package/dist/utilities/createSchemaGenerator.js.map +1 -1
  150. package/dist/utilities/executeSchemaHooks.js +1 -1
  151. package/dist/utilities/executeSchemaHooks.js.map +1 -1
  152. package/dist/utilities/formatGeneratedFile.d.ts +10 -0
  153. package/dist/utilities/formatGeneratedFile.d.ts.map +1 -0
  154. package/dist/utilities/formatGeneratedFile.js +58 -0
  155. package/dist/utilities/formatGeneratedFile.js.map +1 -0
  156. package/dist/utilities/getTransaction.js.map +1 -1
  157. package/package.json +16 -19
  158. package/dist/deleteBranchGlobal.d.ts +0 -10
  159. package/dist/deleteBranchGlobal.d.ts.map +0 -1
  160. package/dist/deleteBranchGlobal.js +0 -27
  161. package/dist/deleteBranchGlobal.js.map +0 -1
  162. package/dist/queries/buildBranchVisibility.d.ts +0 -11
  163. package/dist/queries/buildBranchVisibility.d.ts.map +0 -1
  164. package/dist/queries/buildBranchVisibility.js +0 -48
  165. package/dist/queries/buildBranchVisibility.js.map +0 -1
  166. package/dist/upsertBranchGlobalChange.d.ts +0 -3
  167. package/dist/upsertBranchGlobalChange.d.ts.map +0 -1
  168. package/dist/upsertBranchGlobalChange.js +0 -35
  169. package/dist/upsertBranchGlobalChange.js.map +0 -1
@@ -1,8 +1,7 @@
1
- import { and, count, sql } from 'drizzle-orm';
2
- import { appendVersionToQueryKey, buildVersionCollectionFields, combineQueries, getBranchPredicateSync, getQueryDraftsSort, resolveBranchReadState, resolveBranchVersionQuerySync, rewriteBranchVersionParents } from 'payload';
1
+ import { count, sql } from 'drizzle-orm';
2
+ import { appendVersionToQueryKey, buildVersionCollectionFields, combineQueries, getQueryDraftsSort } from 'payload';
3
3
  import { fieldIsVirtual, fieldShouldBeLocalized, hasDraftsEnabled } from 'payload/shared';
4
4
  import toSnakeCase from 'to-snake-case';
5
- import { buildBranchVisibility } from '../queries/buildBranchVisibility.js';
6
5
  import { buildQuery } from '../queries/buildQuery.js';
7
6
  import { getTableAlias } from '../queries/getTableAlias.js';
8
7
  import { getArrayRelationName } from '../utilities/getArrayRelationName.js';
@@ -11,7 +10,7 @@ import { jsonAggBuildObject } from '../utilities/json.js';
11
10
  import { rawConstraint } from '../utilities/rawConstraint.js';
12
11
  import { InternalBlockTableNameIndex, resolveBlockTableName } from '../utilities/validateExistingBlockIsIdentical.js';
13
12
  import { buildPolymorphicJoinQuery } from './buildPolymorphicJoinQuery.js';
14
- export const traverseFields = ({ _locales, adapter, collectionSlug, currentArgs, currentTableName, depth, draftsEnabled, fields, forceWithFields, joinQuery = {}, joins, locale, parentIsLocalized = false, path, req, select, selectAllOnCurrentLevel = false, selectMode, tablePath, topLevelArgs, topLevelTableName, versions, withTabledFields })=>{
13
+ export const traverseFields = ({ _locales, adapter, collectionSlug, currentArgs, currentTableName, depth, draftsEnabled, fields, forceWithFields, joinQuery = {}, joins, locale, parentIsLocalized = false, path, select, selectAllOnCurrentLevel = false, selectMode, tablePath, topLevelArgs, topLevelTableName, versions, withTabledFields })=>{
15
14
  fields.forEach((field)=>{
16
15
  if (fieldIsVirtual(field)) {
17
16
  return;
@@ -89,7 +88,6 @@ export const traverseFields = ({ _locales, adapter, collectionSlug, currentArgs,
89
88
  locale,
90
89
  parentIsLocalized: parentIsLocalized || field.localized,
91
90
  path: '',
92
- req,
93
91
  select: typeof arraySelect === 'object' ? arraySelect : undefined,
94
92
  selectMode,
95
93
  tablePath: '',
@@ -186,7 +184,6 @@ export const traverseFields = ({ _locales, adapter, collectionSlug, currentArgs,
186
184
  locale,
187
185
  parentIsLocalized: parentIsLocalized || field.localized,
188
186
  path: '',
189
- req,
190
187
  select: typeof blockSelect === 'object' ? blockSelect : undefined,
191
188
  selectMode: blockSelectMode,
192
189
  tablePath: '',
@@ -223,7 +220,6 @@ export const traverseFields = ({ _locales, adapter, collectionSlug, currentArgs,
223
220
  locale,
224
221
  parentIsLocalized: parentIsLocalized || field.localized,
225
222
  path: `${path}${field.name}_`,
226
- req,
227
223
  select: typeof fieldSelect === 'object' ? fieldSelect : undefined,
228
224
  selectAllOnCurrentLevel: selectAllOnCurrentLevel || fieldSelect === true || selectMode === 'exclude' && typeof fieldSelect === 'undefined',
229
225
  selectMode,
@@ -262,8 +258,8 @@ export const traverseFields = ({ _locales, adapter, collectionSlug, currentArgs,
262
258
  limit,
263
259
  locale,
264
260
  page,
261
+ pageSize: limitArg,
265
262
  path,
266
- req,
267
263
  shouldCount,
268
264
  sort,
269
265
  where
@@ -305,35 +301,12 @@ export const traverseFields = ({ _locales, adapter, collectionSlug, currentArgs,
305
301
  ]
306
302
  };
307
303
  }
308
- // A join subquery must carry the same branch predicate as the
309
- // top-level read, or a branch would see main's related documents.
310
- const branchReadState = resolveBranchReadState({
311
- collectionSlug: field.collection,
312
- req
313
- });
314
- const joinBranchPredicate = branchReadState.useBranching ? null : getBranchPredicateSync({
315
- collectionSlug: field.collection,
316
- req
317
- });
318
304
  if (useDrafts) {
319
- const versionWhere = appendVersionToQueryKey(joinQueryWhere);
320
- const branchVersionWhere = branchReadState.useBranching ? rewriteBranchVersionParents(versionWhere) : resolveBranchVersionQuerySync({
321
- collectionSlug: field.collection,
322
- req,
323
- where: versionWhere
324
- });
325
- joinQueryWhere = combineQueries(branchVersionWhere ?? {}, {
305
+ joinQueryWhere = combineQueries(appendVersionToQueryKey(joinQueryWhere), {
326
306
  latest: {
327
307
  equals: true
328
308
  }
329
309
  });
330
- } else if (!branchReadState.useBranching && joinBranchPredicate) {
331
- joinQueryWhere = {
332
- and: [
333
- joinQueryWhere,
334
- joinBranchPredicate
335
- ]
336
- };
337
310
  }
338
311
  const columnName = `${path.replaceAll('.', '_')}${field.name}`;
339
312
  const subQueryAlias = `${columnName}_alias`;
@@ -348,7 +321,6 @@ export const traverseFields = ({ _locales, adapter, collectionSlug, currentArgs,
348
321
  joins,
349
322
  locale,
350
323
  parentIsLocalized,
351
- req,
352
324
  selectLocale: true,
353
325
  sort: useDrafts ? getQueryDraftsSort({
354
326
  collectionConfig: adapter.payload.collections[field.collection].config,
@@ -357,14 +329,6 @@ export const traverseFields = ({ _locales, adapter, collectionSlug, currentArgs,
357
329
  tableName: joinCollectionTableName,
358
330
  where: joinQueryWhere
359
331
  });
360
- const nativeBranchVisibility = branchReadState.useBranching ? buildBranchVisibility({
361
- adapter,
362
- branch: branchReadState.branch,
363
- canonicalIDExpression: useDrafts ? sql`COALESCE(${newAliasTable._branchParent}, ${newAliasTable.parent})` : undefined,
364
- collectionSlug: field.collection,
365
- table: newAliasTable
366
- }) : undefined;
367
- const visibleSubQueryWhere = nativeBranchVisibility ? and(subQueryWhere, nativeBranchVisibility) : subQueryWhere;
368
332
  for(let key in selectFields){
369
333
  const val = selectFields[key];
370
334
  if (val.table && getNameFromDrizzleTable(val.table) === joinCollectionTableName) {
@@ -374,19 +338,9 @@ export const traverseFields = ({ _locales, adapter, collectionSlug, currentArgs,
374
338
  }
375
339
  }
376
340
  if (useDrafts) {
377
- delete selectFields[`${joinCollectionTableName}.parent`];
378
- selectFields.parent = newAliasTable._branchParent ? sql`COALESCE(${newAliasTable._branchParent}, ${newAliasTable.parent})`.as(newAliasTable.parent.name) : newAliasTable.parent;
379
- }
380
- // Surface the canonical document ID rather than the shadow row's own
381
- // primary key, so join results address documents the same way every
382
- // other read does.
383
- if ((branchReadState.useBranching || joinBranchPredicate) && newAliasTable._branchDocID) {
384
- // `selectFields` is typed as a column map, but Drizzle accepts an
385
- // aliased expression in the same position — as the sibling
386
- // `sql\`...\`.as()` assignments above already rely on.
387
- selectFields.id = sql`COALESCE(${newAliasTable._branchDocID}, ${newAliasTable.id})`.as('id');
341
+ selectFields.parent = newAliasTable.parent;
388
342
  }
389
- let query = db.select(selectFields).from(newAliasTable).where(visibleSubQueryWhere).orderBy(()=>orderBy.map(({ column, order })=>order(column))).$dynamic();
343
+ let query = db.select(selectFields).from(newAliasTable).where(subQueryWhere).orderBy(()=>orderBy.map(({ column, order })=>order(column))).$dynamic();
390
344
  joins.forEach(({ type, condition, table })=>{
391
345
  query = query[type ?? 'leftJoin'](table, condition);
392
346
  });
@@ -401,7 +355,7 @@ export const traverseFields = ({ _locales, adapter, collectionSlug, currentArgs,
401
355
  }
402
356
  const subQuery = query.as(subQueryAlias);
403
357
  if (shouldCount) {
404
- let countSubquery = db.select(selectFields).from(newAliasTable).where(visibleSubQueryWhere).$dynamic();
358
+ let countSubquery = db.select(selectFields).from(newAliasTable).where(subQueryWhere).$dynamic();
405
359
  joins.forEach(({ type, condition, table })=>{
406
360
  countSubquery = countSubquery[type ?? 'leftJoin'](table, condition);
407
361
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/find/traverseFields.ts"],"sourcesContent":["import type { LibSQLDatabase } from 'drizzle-orm/libsql'\nimport type { SQLiteSelect } from 'drizzle-orm/sqlite-core'\nimport type {\n FlattenedField,\n JoinQuery,\n PayloadRequest,\n SelectMode,\n SelectType,\n Where,\n} from 'payload'\n\nimport { and, count, sql } from 'drizzle-orm'\nimport {\n appendVersionToQueryKey,\n buildVersionCollectionFields,\n combineQueries,\n getBranchPredicateSync,\n getQueryDraftsSort,\n resolveBranchReadState,\n resolveBranchVersionQuerySync,\n rewriteBranchVersionParents,\n} from 'payload'\nimport { fieldIsVirtual, fieldShouldBeLocalized, hasDraftsEnabled } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { BuildQueryJoinAliases, DrizzleAdapter, GenericColumn } from '../types.js'\nimport type { Result } from './buildFindManyArgs.js'\n\nimport { buildBranchVisibility } from '../queries/buildBranchVisibility.js'\nimport { buildQuery } from '../queries/buildQuery.js'\nimport { getTableAlias } from '../queries/getTableAlias.js'\nimport { getArrayRelationName } from '../utilities/getArrayRelationName.js'\nimport { getNameFromDrizzleTable } from '../utilities/getNameFromDrizzleTable.js'\nimport { jsonAggBuildObject } from '../utilities/json.js'\nimport { rawConstraint } from '../utilities/rawConstraint.js'\nimport {\n InternalBlockTableNameIndex,\n resolveBlockTableName,\n} from '../utilities/validateExistingBlockIsIdentical.js'\nimport { buildPolymorphicJoinQuery } from './buildPolymorphicJoinQuery.js'\n\ntype TraverseFieldArgs = {\n _locales: Result\n adapter: DrizzleAdapter\n collectionSlug?: string\n currentArgs: Result\n currentTableName: string\n depth?: number\n draftsEnabled?: boolean\n fields: FlattenedField[]\n forceWithFields?: boolean\n joinQuery: JoinQuery\n joins?: BuildQueryJoinAliases\n locale?: string\n parentIsLocalized?: boolean\n path: string\n req?: Partial<PayloadRequest>\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 draftsEnabled,\n fields,\n forceWithFields,\n joinQuery = {},\n joins,\n locale,\n parentIsLocalized = false,\n path,\n req,\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 const relationName = getArrayRelationName({\n field,\n path: `${path}${field.name}`,\n tableName: arrayTableName,\n })\n\n currentArgs.with[relationName] = withArray\n\n traverseFields({\n _locales: withArray.with._locales,\n adapter,\n currentArgs: withArray,\n currentTableName: arrayTableName,\n depth,\n draftsEnabled,\n fields: field.flattenedFields,\n forceWithFields,\n joinQuery,\n locale,\n parentIsLocalized: parentIsLocalized || field.localized,\n path: '',\n req,\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 if (adapter.blocksAsJSON) {\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 field.blocks.forEach((_block) => {\n const block = typeof _block === 'string' ? adapter.payload.blocks[_block] : _block\n const blockKey = `_blocks_${block.slug}${!block[InternalBlockTableNameIndex] ? '' : `_${block[InternalBlockTableNameIndex]}`}`\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' && Boolean(blocksSelect[block.slug])) {\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 = resolveBlockTableName(\n block,\n adapter.tableNameMap.get(`${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 draftsEnabled,\n fields: block.flattenedFields,\n forceWithFields: blockSelect === true,\n joinQuery,\n locale,\n parentIsLocalized: parentIsLocalized || field.localized,\n path: '',\n req,\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 draftsEnabled,\n fields: field.flattenedFields,\n forceWithFields,\n joinQuery,\n joins,\n locale,\n parentIsLocalized: parentIsLocalized || field.localized,\n path: `${path}${field.name}_`,\n req,\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 count: shouldCount = false,\n limit: limitArg = field.defaultLimit ?? 10,\n page,\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 if (Array.isArray(field.collection)) {\n const polymorphicJoinQuery = buildPolymorphicJoinQuery({\n adapter,\n currentTableName,\n field,\n limit,\n locale,\n page,\n path,\n req,\n shouldCount,\n sort,\n where,\n })\n\n currentArgs.extras[polymorphicJoinQuery.columnName] = polymorphicJoinQuery.documents\n\n if (polymorphicJoinQuery.count) {\n currentArgs.extras[`${polymorphicJoinQuery.columnName}_count`] =\n polymorphicJoinQuery.count\n }\n } else {\n const db = adapter.drizzle as LibSQLDatabase\n const useDrafts =\n (versions || draftsEnabled) &&\n hasDraftsEnabled(adapter.payload.collections[field.collection].config)\n\n const fields = useDrafts\n ? buildVersionCollectionFields(\n adapter.payload.config,\n adapter.payload.collections[field.collection].config,\n true,\n )\n : adapter.payload.collections[field.collection].config.flattenedFields\n\n const joinCollectionTableName = adapter.tableNameMap.get(\n useDrafts\n ? `_${toSnakeCase(field.collection)}${adapter.versionsSuffix}`\n : toSnakeCase(field.collection),\n )\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 const currentIDRaw = sql.raw(\n `\"${getNameFromDrizzleTable(currentIDColumn.table)}\".\"${currentIDColumn.name}\"`,\n )\n\n if (Array.isArray(field.targetField.relationTo)) {\n joinQueryWhere = {\n [field.on]: {\n equals: {\n relationTo: collectionSlug,\n value: rawConstraint(currentIDRaw),\n },\n },\n }\n } else {\n joinQueryWhere = {\n [field.on]: {\n equals: rawConstraint(currentIDRaw),\n },\n }\n }\n\n if (where && Object.keys(where).length) {\n joinQueryWhere = {\n and: [joinQueryWhere, where],\n }\n }\n\n // A join subquery must carry the same branch predicate as the\n // top-level read, or a branch would see main's related documents.\n const branchReadState = resolveBranchReadState({\n collectionSlug: field.collection,\n req,\n })\n const joinBranchPredicate = branchReadState.useBranching\n ? null\n : getBranchPredicateSync({\n collectionSlug: field.collection,\n req,\n })\n\n if (useDrafts) {\n const versionWhere = appendVersionToQueryKey(joinQueryWhere)\n const branchVersionWhere = branchReadState.useBranching\n ? rewriteBranchVersionParents(versionWhere)\n : resolveBranchVersionQuerySync({\n collectionSlug: field.collection,\n req,\n where: versionWhere,\n })\n\n joinQueryWhere = combineQueries(branchVersionWhere ?? {}, { latest: { equals: true } })\n } else if (!branchReadState.useBranching && joinBranchPredicate) {\n joinQueryWhere = { and: [joinQueryWhere, joinBranchPredicate] }\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 parentIsLocalized,\n req,\n selectLocale: true,\n sort: useDrafts\n ? getQueryDraftsSort({\n collectionConfig: adapter.payload.collections[field.collection].config,\n sort,\n })\n : sort,\n tableName: joinCollectionTableName,\n where: joinQueryWhere,\n })\n const nativeBranchVisibility = branchReadState.useBranching\n ? buildBranchVisibility({\n adapter,\n branch: branchReadState.branch,\n canonicalIDExpression: useDrafts\n ? sql`COALESCE(${newAliasTable._branchParent}, ${newAliasTable.parent})`\n : undefined,\n collectionSlug: field.collection,\n table: newAliasTable,\n })\n : undefined\n const visibleSubQueryWhere = nativeBranchVisibility\n ? and(subQueryWhere, nativeBranchVisibility)\n : subQueryWhere\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 if (useDrafts) {\n delete selectFields[`${joinCollectionTableName}.parent`]\n\n selectFields.parent = newAliasTable._branchParent\n ? (sql`COALESCE(${newAliasTable._branchParent}, ${newAliasTable.parent})`.as(\n newAliasTable.parent.name,\n ) as unknown as GenericColumn)\n : newAliasTable.parent\n }\n\n // Surface the canonical document ID rather than the shadow row's own\n // primary key, so join results address documents the same way every\n // other read does.\n if ((branchReadState.useBranching || joinBranchPredicate) && newAliasTable._branchDocID) {\n // `selectFields` is typed as a column map, but Drizzle accepts an\n // aliased expression in the same position — as the sibling\n // `sql\\`...\\`.as()` assignments above already rely on.\n selectFields.id = sql`COALESCE(${newAliasTable._branchDocID}, ${newAliasTable.id})`.as(\n 'id',\n ) as unknown as GenericColumn\n }\n\n let query: SQLiteSelect = db\n .select(selectFields as any)\n .from(newAliasTable)\n .where(visibleSubQueryWhere)\n .orderBy(() => orderBy.map(({ column, order }) => order(column)))\n .$dynamic()\n\n joins.forEach(({ type, condition, table }) => {\n query = query[type ?? 'leftJoin'](table, condition)\n })\n\n if (page && limit !== 0) {\n const offset = (page - 1) * limit - 1\n if (offset > 0) {\n query = query.offset(offset)\n }\n }\n\n if (limit !== 0) {\n query = query.limit(limit)\n }\n\n const subQuery = query.as(subQueryAlias)\n\n if (shouldCount) {\n let countSubquery: SQLiteSelect = db\n .select(selectFields as any)\n\n .from(newAliasTable)\n .where(visibleSubQueryWhere)\n .$dynamic()\n\n joins.forEach(({ type, condition, table }) => {\n countSubquery = countSubquery[type ?? 'leftJoin'](table, condition)\n })\n\n currentArgs.extras[`${columnName}_count`] = sql`${db\n .select({\n count: count(),\n })\n .from(sql`${countSubquery.as(`${subQueryAlias}_count_subquery`)}`)}`.as(\n `${subQueryAlias}_count`,\n )\n }\n\n currentArgs.extras[columnName] = sql`${db\n .select({\n result: jsonAggBuildObject(adapter, {\n id: sql.raw(`\"${subQueryAlias}\".${useDrafts ? 'parent_id' : 'id'}`),\n ...(selectFields._locale && {\n locale: sql.raw(`\"${subQueryAlias}\".${selectFields._locale.name}`),\n }),\n }),\n })\n .from(sql`${subQuery}`)}`.as(subQueryAlias)\n }\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' && Boolean(select[field.name])) ||\n (selectMode === 'exclude' && typeof select[field.name] === 'undefined')\n ) {\n shouldSelect = true\n }\n } else {\n shouldSelect = true\n }\n const tableName = fieldShouldBeLocalized({ field, parentIsLocalized })\n ? `${currentTableName}${adapter.localesSuffix}`\n : currentTableName\n\n if (shouldSelect) {\n args.extras[name] = sql\n .raw(`ST_AsGeoJSON(\"${adapter.tables[tableName][name].name}\")::jsonb`)\n .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 (forceWithFields) {\n if (\n (field.type === 'relationship' || field.type === 'upload') &&\n (field.hasMany || Array.isArray(field.relationTo))\n ) {\n withTabledFields.rels = true\n }\n\n if (field.type === 'number' && field.hasMany) {\n withTabledFields.numbers = true\n }\n\n if (field.type === 'text' && field.hasMany) {\n withTabledFields.texts = true\n }\n }\n\n if (!select && !selectAllOnCurrentLevel) {\n break\n }\n\n if (\n selectAllOnCurrentLevel ||\n (selectMode === 'include' && Boolean(select[field.name])) ||\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":["and","count","sql","appendVersionToQueryKey","buildVersionCollectionFields","combineQueries","getBranchPredicateSync","getQueryDraftsSort","resolveBranchReadState","resolveBranchVersionQuerySync","rewriteBranchVersionParents","fieldIsVirtual","fieldShouldBeLocalized","hasDraftsEnabled","toSnakeCase","buildBranchVisibility","buildQuery","getTableAlias","getArrayRelationName","getNameFromDrizzleTable","jsonAggBuildObject","rawConstraint","InternalBlockTableNameIndex","resolveBlockTableName","buildPolymorphicJoinQuery","traverseFields","_locales","adapter","collectionSlug","currentArgs","currentTableName","depth","draftsEnabled","fields","forceWithFields","joinQuery","joins","locale","parentIsLocalized","path","req","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","relationName","tableName","flattenedFields","localized","undefined","Object","keys","length","blocksSelect","blocksAsJSON","fieldPath","blocks","_block","block","payload","blockKey","slug","blockSelect","blockSelectMode","Boolean","withBlock","_path","fieldSelect","joinSchemaPath","replaceAll","shouldCount","limit","limitArg","defaultLimit","page","sort","defaultSort","where","Array","isArray","collection","polymorphicJoinQuery","extras","columnName","documents","db","drizzle","useDrafts","collections","config","joinCollectionTableName","versionsSuffix","currentIDColumn","parent","joinQueryWhere","currentIDRaw","raw","table","targetField","on","equals","value","branchReadState","joinBranchPredicate","useBranching","versionWhere","branchVersionWhere","latest","subQueryAlias","newAliasTable","selectFields","subQueryWhere","aliasTable","selectLocale","collectionConfig","nativeBranchVisibility","branch","canonicalIDExpression","_branchParent","visibleSubQueryWhere","key","val","split","pop","as","_branchDocID","query","from","map","column","order","$dynamic","condition","offset","subQuery","countSubquery","result","args","shouldSelect","withSelect","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 { SQLiteSelect } from 'drizzle-orm/sqlite-core'\n\nimport { count, sql } from 'drizzle-orm'\nimport {\n appendVersionToQueryKey,\n buildVersionCollectionFields,\n combineQueries,\n type FlattenedField,\n getQueryDraftsSort,\n type JoinQuery,\n type SelectMode,\n type SelectType,\n type Where,\n} from 'payload'\nimport { fieldIsVirtual, fieldShouldBeLocalized, hasDraftsEnabled } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { BuildQueryJoinAliases, DrizzleAdapter } from '../types.js'\nimport type { Result } from './buildFindManyArgs.js'\n\nimport { buildQuery } from '../queries/buildQuery.js'\nimport { getTableAlias } from '../queries/getTableAlias.js'\nimport { getArrayRelationName } from '../utilities/getArrayRelationName.js'\nimport { getNameFromDrizzleTable } from '../utilities/getNameFromDrizzleTable.js'\nimport { jsonAggBuildObject } from '../utilities/json.js'\nimport { rawConstraint } from '../utilities/rawConstraint.js'\nimport {\n InternalBlockTableNameIndex,\n resolveBlockTableName,\n} from '../utilities/validateExistingBlockIsIdentical.js'\nimport { buildPolymorphicJoinQuery } from './buildPolymorphicJoinQuery.js'\n\ntype TraverseFieldArgs = {\n _locales: Result\n adapter: DrizzleAdapter\n collectionSlug?: string\n currentArgs: Result\n currentTableName: string\n depth?: number\n draftsEnabled?: boolean\n fields: FlattenedField[]\n forceWithFields?: boolean\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 draftsEnabled,\n fields,\n forceWithFields,\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 const relationName = getArrayRelationName({\n field,\n path: `${path}${field.name}`,\n tableName: arrayTableName,\n })\n\n currentArgs.with[relationName] = withArray\n\n traverseFields({\n _locales: withArray.with._locales,\n adapter,\n currentArgs: withArray,\n currentTableName: arrayTableName,\n depth,\n draftsEnabled,\n fields: field.flattenedFields,\n forceWithFields,\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 if (adapter.blocksAsJSON) {\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 field.blocks.forEach((_block) => {\n const block = typeof _block === 'string' ? adapter.payload.blocks[_block] : _block\n const blockKey = `_blocks_${block.slug}${!block[InternalBlockTableNameIndex] ? '' : `_${block[InternalBlockTableNameIndex]}`}`\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' && Boolean(blocksSelect[block.slug])) {\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 = resolveBlockTableName(\n block,\n adapter.tableNameMap.get(`${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 draftsEnabled,\n fields: block.flattenedFields,\n forceWithFields: blockSelect === true,\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 draftsEnabled,\n fields: field.flattenedFields,\n forceWithFields,\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 count: shouldCount = false,\n limit: limitArg = field.defaultLimit ?? 10,\n page,\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 if (Array.isArray(field.collection)) {\n const polymorphicJoinQuery = buildPolymorphicJoinQuery({\n adapter,\n currentTableName,\n field,\n limit,\n locale,\n page,\n pageSize: limitArg,\n path,\n shouldCount,\n sort,\n where,\n })\n\n currentArgs.extras[polymorphicJoinQuery.columnName] = polymorphicJoinQuery.documents\n\n if (polymorphicJoinQuery.count) {\n currentArgs.extras[`${polymorphicJoinQuery.columnName}_count`] =\n polymorphicJoinQuery.count\n }\n } else {\n const db = adapter.drizzle as LibSQLDatabase\n const useDrafts =\n (versions || draftsEnabled) &&\n hasDraftsEnabled(adapter.payload.collections[field.collection].config)\n\n const fields = useDrafts\n ? buildVersionCollectionFields(\n adapter.payload.config,\n adapter.payload.collections[field.collection].config,\n true,\n )\n : adapter.payload.collections[field.collection].config.flattenedFields\n\n const joinCollectionTableName = adapter.tableNameMap.get(\n useDrafts\n ? `_${toSnakeCase(field.collection)}${adapter.versionsSuffix}`\n : toSnakeCase(field.collection),\n )\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 const currentIDRaw = sql.raw(\n `\"${getNameFromDrizzleTable(currentIDColumn.table)}\".\"${currentIDColumn.name}\"`,\n )\n\n if (Array.isArray(field.targetField.relationTo)) {\n joinQueryWhere = {\n [field.on]: {\n equals: {\n relationTo: collectionSlug,\n value: rawConstraint(currentIDRaw),\n },\n },\n }\n } else {\n joinQueryWhere = {\n [field.on]: {\n equals: rawConstraint(currentIDRaw),\n },\n }\n }\n\n if (where && Object.keys(where).length) {\n joinQueryWhere = {\n and: [joinQueryWhere, where],\n }\n }\n\n if (useDrafts) {\n joinQueryWhere = combineQueries(appendVersionToQueryKey(joinQueryWhere), {\n latest: { equals: true },\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 parentIsLocalized,\n selectLocale: true,\n sort: useDrafts\n ? getQueryDraftsSort({\n collectionConfig: adapter.payload.collections[field.collection].config,\n sort,\n })\n : sort,\n tableName: joinCollectionTableName,\n where: joinQueryWhere,\n })\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 if (useDrafts) {\n selectFields.parent = newAliasTable.parent\n }\n\n let query: SQLiteSelect = db\n .select(selectFields as any)\n .from(newAliasTable)\n .where(subQueryWhere)\n .orderBy(() => orderBy.map(({ column, order }) => order(column)))\n .$dynamic()\n\n joins.forEach(({ type, condition, table }) => {\n query = query[type ?? 'leftJoin'](table, condition)\n })\n\n if (page && limit !== 0) {\n const offset = (page - 1) * limit - 1\n if (offset > 0) {\n query = query.offset(offset)\n }\n }\n\n if (limit !== 0) {\n query = query.limit(limit)\n }\n\n const subQuery = query.as(subQueryAlias)\n\n if (shouldCount) {\n let countSubquery: SQLiteSelect = db\n .select(selectFields as any)\n\n .from(newAliasTable)\n .where(subQueryWhere)\n .$dynamic()\n\n joins.forEach(({ type, condition, table }) => {\n countSubquery = countSubquery[type ?? 'leftJoin'](table, condition)\n })\n\n currentArgs.extras[`${columnName}_count`] = sql`${db\n .select({\n count: count(),\n })\n .from(sql`${countSubquery.as(`${subQueryAlias}_count_subquery`)}`)}`.as(\n `${subQueryAlias}_count`,\n )\n }\n\n currentArgs.extras[columnName] = sql`${db\n .select({\n result: jsonAggBuildObject(adapter, {\n id: sql.raw(`\"${subQueryAlias}\".${useDrafts ? 'parent_id' : 'id'}`),\n ...(selectFields._locale && {\n locale: sql.raw(`\"${subQueryAlias}\".${selectFields._locale.name}`),\n }),\n }),\n })\n .from(sql`${subQuery}`)}`.as(subQueryAlias)\n }\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' && Boolean(select[field.name])) ||\n (selectMode === 'exclude' && typeof select[field.name] === 'undefined')\n ) {\n shouldSelect = true\n }\n } else {\n shouldSelect = true\n }\n const tableName = fieldShouldBeLocalized({ field, parentIsLocalized })\n ? `${currentTableName}${adapter.localesSuffix}`\n : currentTableName\n\n if (shouldSelect) {\n args.extras[name] = sql\n .raw(`ST_AsGeoJSON(\"${adapter.tables[tableName][name].name}\")::jsonb`)\n .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 (forceWithFields) {\n if (\n (field.type === 'relationship' || field.type === 'upload') &&\n (field.hasMany || Array.isArray(field.relationTo))\n ) {\n withTabledFields.rels = true\n }\n\n if (field.type === 'number' && field.hasMany) {\n withTabledFields.numbers = true\n }\n\n if (field.type === 'text' && field.hasMany) {\n withTabledFields.texts = true\n }\n }\n\n if (!select && !selectAllOnCurrentLevel) {\n break\n }\n\n if (\n selectAllOnCurrentLevel ||\n (selectMode === 'include' && Boolean(select[field.name])) ||\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":["count","sql","appendVersionToQueryKey","buildVersionCollectionFields","combineQueries","getQueryDraftsSort","fieldIsVirtual","fieldShouldBeLocalized","hasDraftsEnabled","toSnakeCase","buildQuery","getTableAlias","getArrayRelationName","getNameFromDrizzleTable","jsonAggBuildObject","rawConstraint","InternalBlockTableNameIndex","resolveBlockTableName","buildPolymorphicJoinQuery","traverseFields","_locales","adapter","collectionSlug","currentArgs","currentTableName","depth","draftsEnabled","fields","forceWithFields","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","relationName","tableName","flattenedFields","localized","undefined","Object","keys","length","blocksSelect","blocksAsJSON","fieldPath","blocks","_block","block","payload","blockKey","slug","blockSelect","blockSelectMode","Boolean","withBlock","_path","fieldSelect","joinSchemaPath","replaceAll","shouldCount","limit","limitArg","defaultLimit","page","sort","defaultSort","where","Array","isArray","collection","polymorphicJoinQuery","pageSize","extras","columnName","documents","db","drizzle","useDrafts","collections","config","joinCollectionTableName","versionsSuffix","currentIDColumn","parent","joinQueryWhere","currentIDRaw","raw","table","targetField","on","equals","value","and","latest","subQueryAlias","newAliasTable","selectFields","subQueryWhere","aliasTable","selectLocale","collectionConfig","key","val","split","pop","query","from","map","column","order","$dynamic","condition","offset","subQuery","as","countSubquery","result","args","shouldSelect","withSelect","rels","numbers","texts"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../src/find.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAA6B,MAAM,SAAS,CAAA;AAe9D,eAAO,MAAM,IAAI,EAAE,IAgElB,CAAA"}
1
+ {"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../src/find.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAA6B,MAAM,SAAS,CAAA;AAQ9D,eAAO,MAAM,IAAI,EAAE,IAqClB,CAAA"}
package/dist/find.js CHANGED
@@ -1,27 +1,11 @@
1
- import { applyBranchIDProjection, resolveBranchQuery, resolveBranchReadState, rewriteBranchIDs, withBranchIDSelect } from 'payload';
2
1
  import toSnakeCase from 'to-snake-case';
3
2
  import { findMany } from './find/findMany.js';
4
- export const find = async function find({ branch, collection, draftsEnabled, joins, limit, locale, page = 1, pagination, req, select, sort: sortArg, where }) {
3
+ export const find = async function find({ collection, draftsEnabled, joins, limit, locale, page = 1, pagination, req, select, sort: sortArg, where }) {
5
4
  const collectionConfig = this.payload.collections[collection].config;
6
5
  const sort = sortArg !== undefined && sortArg !== null ? sortArg : collectionConfig.defaultSort;
7
6
  const tableName = this.tableNameMap.get(toSnakeCase(collectionConfig.slug));
8
- const branchReadState = resolveBranchReadState({
9
- branch,
10
- collectionSlug: collectionConfig.slug,
11
- req
12
- });
13
- const branchedWhere = branchReadState.useBranching ? rewriteBranchIDs(where) : await resolveBranchQuery({
14
- branch,
15
- collectionSlug: collectionConfig.slug,
16
- req,
17
- where
18
- });
19
- const result = await findMany({
7
+ return findMany({
20
8
  adapter: this,
21
- branchVisibility: branchReadState.useBranching ? {
22
- branch: branchReadState.branch,
23
- collectionSlug: collectionConfig.slug
24
- } : undefined,
25
9
  collectionSlug: collectionConfig.slug,
26
10
  draftsEnabled,
27
11
  fields: collectionConfig.flattenedFields,
@@ -31,23 +15,11 @@ export const find = async function find({ branch, collection, draftsEnabled, joi
31
15
  page,
32
16
  pagination,
33
17
  req,
34
- select: withBranchIDSelect({
35
- branch,
36
- collectionSlug: collectionConfig.slug,
37
- req,
38
- select
39
- }),
18
+ select,
40
19
  sort,
41
20
  tableName,
42
- where: branchedWhere
43
- });
44
- applyBranchIDProjection({
45
- branch,
46
- collectionSlug: collectionConfig.slug,
47
- docs: result.docs,
48
- req
21
+ where
49
22
  });
50
- return result;
51
23
  };
52
24
 
53
25
  //# sourceMappingURL=find.js.map
package/dist/find.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/find.ts"],"sourcesContent":["import type { Find, SanitizedCollectionConfig } from 'payload'\n\nimport {\n applyBranchIDProjection,\n resolveBranchQuery,\n resolveBranchReadState,\n rewriteBranchIDs,\n withBranchIDSelect,\n} from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { findMany } from './find/findMany.js'\n\nexport const find: Find = async function find(\n this: DrizzleAdapter,\n {\n branch,\n collection,\n draftsEnabled,\n joins,\n limit,\n locale,\n page = 1,\n pagination,\n req,\n select,\n sort: sortArg,\n where,\n },\n) {\n const collectionConfig: SanitizedCollectionConfig = this.payload.collections[collection].config\n const sort = sortArg !== undefined && sortArg !== null ? sortArg : collectionConfig.defaultSort\n\n const tableName = this.tableNameMap.get(toSnakeCase(collectionConfig.slug))\n\n const branchReadState = resolveBranchReadState({\n branch,\n collectionSlug: collectionConfig.slug,\n req,\n })\n const branchedWhere = branchReadState.useBranching\n ? rewriteBranchIDs(where)\n : await resolveBranchQuery({\n branch,\n collectionSlug: collectionConfig.slug,\n req,\n where,\n })\n\n const result = await findMany({\n adapter: this,\n branchVisibility: branchReadState.useBranching\n ? { branch: branchReadState.branch, collectionSlug: collectionConfig.slug }\n : undefined,\n collectionSlug: collectionConfig.slug,\n draftsEnabled,\n fields: collectionConfig.flattenedFields,\n joins,\n limit,\n locale,\n page,\n pagination,\n req,\n select: withBranchIDSelect({ branch, collectionSlug: collectionConfig.slug, req, select }),\n sort,\n tableName,\n where: branchedWhere,\n })\n\n applyBranchIDProjection({\n branch,\n collectionSlug: collectionConfig.slug,\n docs: result.docs as Record<string, unknown>[],\n req,\n })\n\n return result\n}\n"],"names":["applyBranchIDProjection","resolveBranchQuery","resolveBranchReadState","rewriteBranchIDs","withBranchIDSelect","toSnakeCase","findMany","find","branch","collection","draftsEnabled","joins","limit","locale","page","pagination","req","select","sort","sortArg","where","collectionConfig","payload","collections","config","undefined","defaultSort","tableName","tableNameMap","get","slug","branchReadState","collectionSlug","branchedWhere","useBranching","result","adapter","branchVisibility","fields","flattenedFields","docs"],"mappings":"AAEA,SACEA,uBAAuB,EACvBC,kBAAkB,EAClBC,sBAAsB,EACtBC,gBAAgB,EAChBC,kBAAkB,QACb,UAAS;AAChB,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,QAAQ,QAAQ,qBAAoB;AAE7C,OAAO,MAAMC,OAAa,eAAeA,KAEvC,EACEC,MAAM,EACNC,UAAU,EACVC,aAAa,EACbC,KAAK,EACLC,KAAK,EACLC,MAAM,EACNC,OAAO,CAAC,EACRC,UAAU,EACVC,GAAG,EACHC,MAAM,EACNC,MAAMC,OAAO,EACbC,KAAK,EACN;IAED,MAAMC,mBAA8C,IAAI,CAACC,OAAO,CAACC,WAAW,CAACd,WAAW,CAACe,MAAM;IAC/F,MAAMN,OAAOC,YAAYM,aAAaN,YAAY,OAAOA,UAAUE,iBAAiBK,WAAW;IAE/F,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAACxB,YAAYgB,iBAAiBS,IAAI;IAEzE,MAAMC,kBAAkB7B,uBAAuB;QAC7CM;QACAwB,gBAAgBX,iBAAiBS,IAAI;QACrCd;IACF;IACA,MAAMiB,gBAAgBF,gBAAgBG,YAAY,GAC9C/B,iBAAiBiB,SACjB,MAAMnB,mBAAmB;QACvBO;QACAwB,gBAAgBX,iBAAiBS,IAAI;QACrCd;QACAI;IACF;IAEJ,MAAMe,SAAS,MAAM7B,SAAS;QAC5B8B,SAAS,IAAI;QACbC,kBAAkBN,gBAAgBG,YAAY,GAC1C;YAAE1B,QAAQuB,gBAAgBvB,MAAM;YAAEwB,gBAAgBX,iBAAiBS,IAAI;QAAC,IACxEL;QACJO,gBAAgBX,iBAAiBS,IAAI;QACrCpB;QACA4B,QAAQjB,iBAAiBkB,eAAe;QACxC5B;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC,QAAQb,mBAAmB;YAAEI;YAAQwB,gBAAgBX,iBAAiBS,IAAI;YAAEd;YAAKC;QAAO;QACxFC;QACAS;QACAP,OAAOa;IACT;IAEAjC,wBAAwB;QACtBQ;QACAwB,gBAAgBX,iBAAiBS,IAAI;QACrCU,MAAML,OAAOK,IAAI;QACjBxB;IACF;IAEA,OAAOmB;AACT,EAAC"}
1
+ {"version":3,"sources":["../src/find.ts"],"sourcesContent":["import type { Find, SanitizedCollectionConfig } from 'payload'\n\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { findMany } from './find/findMany.js'\n\nexport const find: Find = async function find(\n this: DrizzleAdapter,\n {\n collection,\n draftsEnabled,\n joins,\n limit,\n locale,\n page = 1,\n pagination,\n req,\n select,\n sort: sortArg,\n where,\n },\n) {\n const collectionConfig: SanitizedCollectionConfig = this.payload.collections[collection].config\n const sort = sortArg !== undefined && sortArg !== null ? sortArg : collectionConfig.defaultSort\n\n const tableName = this.tableNameMap.get(toSnakeCase(collectionConfig.slug))\n\n return findMany({\n adapter: this,\n collectionSlug: collectionConfig.slug,\n draftsEnabled,\n fields: collectionConfig.flattenedFields,\n joins,\n limit,\n locale,\n page,\n pagination,\n req,\n select,\n sort,\n tableName,\n where,\n })\n}\n"],"names":["toSnakeCase","findMany","find","collection","draftsEnabled","joins","limit","locale","page","pagination","req","select","sort","sortArg","where","collectionConfig","payload","collections","config","undefined","defaultSort","tableName","tableNameMap","get","slug","adapter","collectionSlug","fields","flattenedFields"],"mappings":"AAEA,OAAOA,iBAAiB,gBAAe;AAIvC,SAASC,QAAQ,QAAQ,qBAAoB;AAE7C,OAAO,MAAMC,OAAa,eAAeA,KAEvC,EACEC,UAAU,EACVC,aAAa,EACbC,KAAK,EACLC,KAAK,EACLC,MAAM,EACNC,OAAO,CAAC,EACRC,UAAU,EACVC,GAAG,EACHC,MAAM,EACNC,MAAMC,OAAO,EACbC,KAAK,EACN;IAED,MAAMC,mBAA8C,IAAI,CAACC,OAAO,CAACC,WAAW,CAACd,WAAW,CAACe,MAAM;IAC/F,MAAMN,OAAOC,YAAYM,aAAaN,YAAY,OAAOA,UAAUE,iBAAiBK,WAAW;IAE/F,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAACvB,YAAYe,iBAAiBS,IAAI;IAEzE,OAAOvB,SAAS;QACdwB,SAAS,IAAI;QACbC,gBAAgBX,iBAAiBS,IAAI;QACrCpB;QACAuB,QAAQZ,iBAAiBa,eAAe;QACxCvB;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAS;QACAP;IACF;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"findDistinct.d.ts","sourceRoot":"","sources":["../src/findDistinct.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,YAAY,EAQlB,MAAM,SAAS,CAAA;AA+ChB,eAAO,MAAM,YAAY,EAAE,YAgP1B,CAAA"}
1
+ {"version":3,"file":"findDistinct.d.ts","sourceRoot":"","sources":["../src/findDistinct.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,YAAY,EAAkD,MAAM,SAAS,CAAA;AA8B3F,eAAO,MAAM,YAAY,EAAE,YA6H1B,CAAA"}
@@ -1,28 +1,10 @@
1
- import { and, asc, desc, max, sql } from 'drizzle-orm';
2
- import { getFieldByPath, getLocalizedPaths, resolveBranchQuery, resolveBranchReadState, rewriteBranchIDs } from 'payload';
1
+ import { max, sql } from 'drizzle-orm';
2
+ import { getFieldByPath } from 'payload';
3
3
  import toSnakeCase from 'to-snake-case';
4
- import { buildBranchVisibility } from './queries/buildBranchVisibility.js';
5
4
  import { buildQuery } from './queries/buildQuery.js';
6
5
  import { selectDistinct } from './queries/selectDistinct.js';
7
6
  import { getTransaction } from './utilities/getTransaction.js';
8
7
  import { DistinctSymbol } from './utilities/rawConstraint.js';
9
- const prefixWherePaths = ({ prefix, where })=>{
10
- const prefixedWhere = {};
11
- for (const [key, value] of Object.entries(where)){
12
- if ([
13
- 'and',
14
- 'or'
15
- ].includes(key.toLowerCase()) && Array.isArray(value)) {
16
- prefixedWhere[key] = value.map((nestedWhere)=>prefixWherePaths({
17
- prefix,
18
- where: nestedWhere
19
- }));
20
- } else {
21
- prefixedWhere[`${prefix}.${key}`] = value;
22
- }
23
- }
24
- return prefixedWhere;
25
- };
26
8
  const getOrderColumn = (orderBy, selectFields, joins)=>{
27
9
  if (orderBy.length === 0) {
28
10
  return null;
@@ -40,60 +22,7 @@ export const findDistinct = async function(args) {
40
22
  const page = args.page || 1;
41
23
  const offset = args.limit ? (page - 1) * args.limit : undefined;
42
24
  const tableName = this.tableNameMap.get(toSnakeCase(collectionConfig.slug));
43
- // Same predicate a list read gets: distinct values describe the visible documents.
44
- const branchReadState = resolveBranchReadState({
45
- branch: args.branch,
46
- collectionSlug: args.collection,
47
- req: args.req
48
- });
49
- const branchScopedWhere = branchReadState.useBranching ? rewriteBranchIDs(args.where) : await resolveBranchQuery({
50
- branch: args.branch,
51
- collectionSlug: args.collection,
52
- req: args.req,
53
- where: args.where
54
- });
55
- const relatedBranchConstraints = [];
56
- const nativeRelatedBranchReads = [];
57
- const fieldPaths = getLocalizedPaths({
58
- collectionSlug: args.collection,
59
- fields: collectionConfig.flattenedFields,
60
- incomingPath: args.field,
61
- locale: args.locale,
62
- overrideAccess: true,
63
- payload: this.payload
64
- });
65
- for(let pathIndex = 1; pathIndex < fieldPaths.length; pathIndex++){
66
- const relatedCollectionSlug = fieldPaths[pathIndex]?.collectionSlug;
67
- if (!relatedCollectionSlug) {
68
- continue;
69
- }
70
- const relationshipPath = fieldPaths.slice(0, pathIndex).map(({ path })=>path).join('.');
71
- const relatedBranchReadState = resolveBranchReadState({
72
- branch: args.branch,
73
- collectionSlug: relatedCollectionSlug,
74
- req: args.req
75
- });
76
- const relatedWhere = relatedBranchReadState.useBranching ? rewriteBranchIDs(args.relatedAccess?.[relationshipPath]) : await resolveBranchQuery({
77
- branch: args.branch,
78
- collectionSlug: relatedCollectionSlug,
79
- req: args.req,
80
- where: args.relatedAccess?.[relationshipPath]
81
- });
82
- if (relatedBranchReadState.useBranching) {
83
- nativeRelatedBranchReads.push({
84
- branch: relatedBranchReadState.branch,
85
- collectionSlug: relatedCollectionSlug,
86
- relationshipPath
87
- });
88
- }
89
- if (relatedWhere && Object.keys(relatedWhere).length) {
90
- relatedBranchConstraints.push(prefixWherePaths({
91
- prefix: relationshipPath,
92
- where: relatedWhere
93
- }));
94
- }
95
- }
96
- const { joins, orderBy, selectFields, where: queryWhere } = buildQuery({
25
+ const { joins, orderBy, selectFields, where } = buildQuery({
97
26
  adapter: this,
98
27
  fields: collectionConfig.flattenedFields,
99
28
  locale: args.locale,
@@ -101,44 +30,18 @@ export const findDistinct = async function(args) {
101
30
  tableName,
102
31
  where: {
103
32
  and: [
33
+ args.where ?? {},
104
34
  {
105
35
  [args.field]: {
106
36
  equals: DistinctSymbol
107
37
  }
108
- },
109
- branchScopedWhere ?? {},
110
- ...relatedBranchConstraints
38
+ }
111
39
  ]
112
40
  }
113
41
  });
114
42
  orderBy.pop();
115
- const table = this.tables[tableName];
116
- const canonicalIDExpression = branchReadState.useBranching && args.field === 'id' ? sql`COALESCE(${table._branchDocID}, ${table.id})` : undefined;
117
- if (canonicalIDExpression) {
118
- selectFields['_selected'] = canonicalIDExpression.as('_selected');
119
- }
120
- const branchVisibilityWhere = branchReadState.useBranching ? buildBranchVisibility({
121
- adapter: this,
122
- branch: branchReadState.branch,
123
- collectionSlug: args.collection,
124
- table
125
- }) : undefined;
126
- const relatedBranchVisibility = nativeRelatedBranchReads.flatMap((relatedBranchRead)=>{
127
- const relatedTable = joins.find(({ queryPath })=>queryPath?.endsWith(`${relatedBranchRead.relationshipPath}._target`))?.table;
128
- return relatedTable ? [
129
- buildBranchVisibility({
130
- adapter: this,
131
- branch: relatedBranchRead.branch,
132
- collectionSlug: relatedBranchRead.collectionSlug,
133
- table: relatedTable
134
- })
135
- ] : [];
136
- });
137
- const where = and(queryWhere, branchVisibilityWhere, ...relatedBranchVisibility);
138
43
  const db = await getTransaction(this, args.req);
139
- const _order = canonicalIDExpression ? null : getOrderColumn(orderBy, selectFields, joins);
140
- const firstSort = Array.isArray(args.sort) ? args.sort[0] : args.sort;
141
- const canonicalIDOrder = firstSort?.startsWith('-') ? desc : asc;
44
+ const _order = getOrderColumn(orderBy, selectFields, joins);
142
45
  const selectDistinctResult = await selectDistinct({
143
46
  adapter: this,
144
47
  db,
@@ -146,9 +49,7 @@ export const findDistinct = async function(args) {
146
49
  hasAggregates: Boolean(_order) && !joins.length,
147
50
  joins,
148
51
  query: ({ query })=>{
149
- if (canonicalIDExpression) {
150
- query = query.orderBy(canonicalIDOrder(sql`_selected`));
151
- } else if (_order && orderBy.length > 0 && !joins.length) {
52
+ if (_order && orderBy.length > 0 && !joins.length) {
152
53
  query = query.orderBy(orderBy[0].order(sql`_order`));
153
54
  } else {
154
55
  query = query.orderBy(()=>orderBy.map(({ column, order })=>order(column)));
@@ -196,7 +97,7 @@ export const findDistinct = async function(args) {
196
97
  }));
197
98
  if (args.limit) {
198
99
  const totalDocs = await this.countDistinct({
199
- column: canonicalIDExpression ?? selectFields['_selected'],
100
+ column: selectFields['_selected'],
200
101
  db,
201
102
  joins,
202
103
  tableName,