@payloadcms/drizzle 3.0.0-canary.ff8c8fd → 3.0.0

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 (291) hide show
  1. package/dist/count.d.ts.map +1 -1
  2. package/dist/count.js +1 -1
  3. package/dist/count.js.map +1 -1
  4. package/dist/countGlobalVersions.d.ts +3 -0
  5. package/dist/countGlobalVersions.d.ts.map +1 -0
  6. package/dist/countGlobalVersions.js +27 -0
  7. package/dist/countGlobalVersions.js.map +1 -0
  8. package/dist/countVersions.d.ts +3 -0
  9. package/dist/countVersions.d.ts.map +1 -0
  10. package/dist/countVersions.js +27 -0
  11. package/dist/countVersions.js.map +1 -0
  12. package/dist/create.d.ts.map +1 -1
  13. package/dist/create.js +2 -1
  14. package/dist/create.js.map +1 -1
  15. package/dist/createGlobalVersion.d.ts +1 -1
  16. package/dist/createGlobalVersion.d.ts.map +1 -1
  17. package/dist/createGlobalVersion.js +7 -2
  18. package/dist/createGlobalVersion.js.map +1 -1
  19. package/dist/createTableName.d.ts.map +1 -1
  20. package/dist/createTableName.js +6 -2
  21. package/dist/createTableName.js.map +1 -1
  22. package/dist/createVersion.d.ts +1 -1
  23. package/dist/createVersion.d.ts.map +1 -1
  24. package/dist/createVersion.js +22 -14
  25. package/dist/createVersion.js.map +1 -1
  26. package/dist/deleteOne.d.ts.map +1 -1
  27. package/dist/deleteOne.js +6 -3
  28. package/dist/deleteOne.js.map +1 -1
  29. package/dist/deleteVersions.js +1 -1
  30. package/dist/deleteVersions.js.map +1 -1
  31. package/dist/destroy.d.ts.map +1 -1
  32. package/dist/destroy.js +3 -1
  33. package/dist/destroy.js.map +1 -1
  34. package/dist/exports/postgres.d.ts +2 -1
  35. package/dist/exports/postgres.d.ts.map +1 -1
  36. package/dist/exports/postgres.js +2 -1
  37. package/dist/exports/postgres.js.map +1 -1
  38. package/dist/find/buildFindManyArgs.d.ts +15 -7
  39. package/dist/find/buildFindManyArgs.d.ts.map +1 -1
  40. package/dist/find/buildFindManyArgs.js +40 -17
  41. package/dist/find/buildFindManyArgs.js.map +1 -1
  42. package/dist/find/findMany.d.ts +2 -1
  43. package/dist/find/findMany.d.ts.map +1 -1
  44. package/dist/find/findMany.js +12 -7
  45. package/dist/find/findMany.js.map +1 -1
  46. package/dist/find/traverseFields.d.ts +18 -4
  47. package/dist/find/traverseFields.d.ts.map +1 -1
  48. package/dist/find/traverseFields.js +358 -68
  49. package/dist/find/traverseFields.js.map +1 -1
  50. package/dist/find.d.ts.map +1 -1
  51. package/dist/find.js +4 -2
  52. package/dist/find.js.map +1 -1
  53. package/dist/findGlobal.d.ts.map +1 -1
  54. package/dist/findGlobal.js +2 -1
  55. package/dist/findGlobal.js.map +1 -1
  56. package/dist/findGlobalVersions.d.ts.map +1 -1
  57. package/dist/findGlobalVersions.js +4 -3
  58. package/dist/findGlobalVersions.js.map +1 -1
  59. package/dist/findMigrationDir.d.ts.map +1 -1
  60. package/dist/findMigrationDir.js +3 -1
  61. package/dist/findMigrationDir.js.map +1 -1
  62. package/dist/findOne.d.ts +1 -1
  63. package/dist/findOne.d.ts.map +1 -1
  64. package/dist/findOne.js +3 -1
  65. package/dist/findOne.js.map +1 -1
  66. package/dist/findVersions.d.ts.map +1 -1
  67. package/dist/findVersions.js +4 -3
  68. package/dist/findVersions.js.map +1 -1
  69. package/dist/index.d.ts +5 -0
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +5 -0
  72. package/dist/index.js.map +1 -1
  73. package/dist/migrate.d.ts.map +1 -1
  74. package/dist/migrate.js +4 -0
  75. package/dist/migrate.js.map +1 -1
  76. package/dist/migrateDown.d.ts.map +1 -1
  77. package/dist/migrateDown.js +1 -1
  78. package/dist/migrateDown.js.map +1 -1
  79. package/dist/migrateFresh.d.ts.map +1 -1
  80. package/dist/migrateFresh.js +4 -0
  81. package/dist/migrateFresh.js.map +1 -1
  82. package/dist/migrateRefresh.d.ts.map +1 -1
  83. package/dist/migrateRefresh.js +2 -1
  84. package/dist/migrateRefresh.js.map +1 -1
  85. package/dist/migrateReset.d.ts.map +1 -1
  86. package/dist/migrateReset.js +5 -3
  87. package/dist/migrateReset.js.map +1 -1
  88. package/dist/migrateStatus.js +0 -1
  89. package/dist/migrateStatus.js.map +1 -1
  90. package/dist/postgres/countDistinct.d.ts.map +1 -1
  91. package/dist/postgres/countDistinct.js +2 -3
  92. package/dist/postgres/countDistinct.js.map +1 -1
  93. package/dist/postgres/createDatabase.d.ts +14 -0
  94. package/dist/postgres/createDatabase.d.ts.map +1 -0
  95. package/dist/postgres/createDatabase.js +76 -0
  96. package/dist/postgres/createDatabase.js.map +1 -0
  97. package/dist/postgres/createExtensions.d.ts +3 -0
  98. package/dist/postgres/createExtensions.d.ts.map +1 -0
  99. package/dist/postgres/createExtensions.js +16 -0
  100. package/dist/postgres/createExtensions.js.map +1 -0
  101. package/dist/postgres/createJSONQuery/convertPathToJSONTraversal.d.ts.map +1 -1
  102. package/dist/postgres/createJSONQuery/convertPathToJSONTraversal.js +3 -1
  103. package/dist/postgres/createJSONQuery/convertPathToJSONTraversal.js.map +1 -1
  104. package/dist/postgres/createJSONQuery/index.d.ts +2 -9
  105. package/dist/postgres/createJSONQuery/index.d.ts.map +1 -1
  106. package/dist/postgres/createJSONQuery/index.js +34 -46
  107. package/dist/postgres/createJSONQuery/index.js.map +1 -1
  108. package/dist/postgres/createMigration.d.ts.map +1 -1
  109. package/dist/postgres/createMigration.js +1 -5
  110. package/dist/postgres/createMigration.js.map +1 -1
  111. package/dist/postgres/defaultSnapshot.d.ts.map +1 -1
  112. package/dist/postgres/defaultSnapshot.js +4 -1
  113. package/dist/postgres/defaultSnapshot.js.map +1 -1
  114. package/dist/postgres/init.d.ts.map +1 -1
  115. package/dist/postgres/init.js +12 -3
  116. package/dist/postgres/init.js.map +1 -1
  117. package/dist/postgres/schema/build.d.ts +12 -2
  118. package/dist/postgres/schema/build.d.ts.map +1 -1
  119. package/dist/postgres/schema/build.js +45 -10
  120. package/dist/postgres/schema/build.js.map +1 -1
  121. package/dist/postgres/schema/createIndex.d.ts +2 -3
  122. package/dist/postgres/schema/createIndex.d.ts.map +1 -1
  123. package/dist/postgres/schema/createIndex.js +5 -3
  124. package/dist/postgres/schema/createIndex.js.map +1 -1
  125. package/dist/postgres/schema/geometryColumn.d.ts +12 -0
  126. package/dist/postgres/schema/geometryColumn.d.ts.map +1 -0
  127. package/dist/postgres/schema/geometryColumn.js +18 -0
  128. package/dist/postgres/schema/geometryColumn.js.map +1 -0
  129. package/dist/postgres/schema/traverseFields.d.ts +9 -2
  130. package/dist/postgres/schema/traverseFields.d.ts.map +1 -1
  131. package/dist/postgres/schema/traverseFields.js +393 -265
  132. package/dist/postgres/schema/traverseFields.js.map +1 -1
  133. package/dist/postgres/schema/withDefault.d.ts.map +1 -1
  134. package/dist/postgres/schema/withDefault.js +6 -1
  135. package/dist/postgres/schema/withDefault.js.map +1 -1
  136. package/dist/postgres/types.d.ts +37 -7
  137. package/dist/postgres/types.d.ts.map +1 -1
  138. package/dist/postgres/types.js.map +1 -1
  139. package/dist/queries/addJoinTable.d.ts +11 -0
  140. package/dist/queries/addJoinTable.d.ts.map +1 -0
  141. package/dist/queries/addJoinTable.js +13 -0
  142. package/dist/queries/addJoinTable.js.map +1 -0
  143. package/dist/queries/buildAndOrConditions.d.ts +1 -1
  144. package/dist/queries/buildAndOrConditions.d.ts.map +1 -1
  145. package/dist/queries/buildAndOrConditions.js +2 -4
  146. package/dist/queries/buildAndOrConditions.js.map +1 -1
  147. package/dist/queries/buildOrderBy.d.ts +18 -0
  148. package/dist/queries/buildOrderBy.d.ts.map +1 -0
  149. package/dist/queries/buildOrderBy.js +56 -0
  150. package/dist/queries/buildOrderBy.js.map +1 -0
  151. package/dist/queries/buildQuery.d.ts +8 -7
  152. package/dist/queries/buildQuery.d.ts.map +1 -1
  153. package/dist/queries/buildQuery.js +12 -47
  154. package/dist/queries/buildQuery.js.map +1 -1
  155. package/dist/queries/getTableColumnFromPath.d.ts +6 -2
  156. package/dist/queries/getTableColumnFromPath.d.ts.map +1 -1
  157. package/dist/queries/getTableColumnFromPath.js +270 -223
  158. package/dist/queries/getTableColumnFromPath.js.map +1 -1
  159. package/dist/queries/operatorMap.d.ts.map +1 -1
  160. package/dist/queries/operatorMap.js +0 -4
  161. package/dist/queries/operatorMap.js.map +1 -1
  162. package/dist/queries/parseParams.d.ts +1 -1
  163. package/dist/queries/parseParams.d.ts.map +1 -1
  164. package/dist/queries/parseParams.js +85 -6
  165. package/dist/queries/parseParams.js.map +1 -1
  166. package/dist/queries/sanitizeQueryValue.d.ts +12 -1
  167. package/dist/queries/sanitizeQueryValue.d.ts.map +1 -1
  168. package/dist/queries/sanitizeQueryValue.js +89 -25
  169. package/dist/queries/sanitizeQueryValue.js.map +1 -1
  170. package/dist/queries/selectDistinct.d.ts +3 -4
  171. package/dist/queries/selectDistinct.d.ts.map +1 -1
  172. package/dist/queries/selectDistinct.js.map +1 -1
  173. package/dist/queryDrafts.d.ts.map +1 -1
  174. package/dist/queryDrafts.js +6 -6
  175. package/dist/queryDrafts.js.map +1 -1
  176. package/dist/transactions/beginTransaction.d.ts.map +1 -1
  177. package/dist/transactions/beginTransaction.js +5 -1
  178. package/dist/transactions/beginTransaction.js.map +1 -1
  179. package/dist/transactions/commitTransaction.d.ts.map +1 -1
  180. package/dist/transactions/commitTransaction.js +3 -1
  181. package/dist/transactions/commitTransaction.js.map +1 -1
  182. package/dist/transform/read/hasManyNumber.d.ts +2 -1
  183. package/dist/transform/read/hasManyNumber.d.ts.map +1 -1
  184. package/dist/transform/read/hasManyNumber.js +12 -2
  185. package/dist/transform/read/hasManyNumber.js.map +1 -1
  186. package/dist/transform/read/hasManyText.d.ts +2 -1
  187. package/dist/transform/read/hasManyText.d.ts.map +1 -1
  188. package/dist/transform/read/hasManyText.js +12 -2
  189. package/dist/transform/read/hasManyText.js.map +1 -1
  190. package/dist/transform/read/index.d.ts +3 -2
  191. package/dist/transform/read/index.d.ts.map +1 -1
  192. package/dist/transform/read/index.js +3 -2
  193. package/dist/transform/read/index.js.map +1 -1
  194. package/dist/transform/read/relationship.d.ts +2 -1
  195. package/dist/transform/read/relationship.d.ts.map +1 -1
  196. package/dist/transform/read/relationship.js +15 -6
  197. package/dist/transform/read/relationship.js.map +1 -1
  198. package/dist/transform/read/traverseFields.d.ts +10 -2
  199. package/dist/transform/read/traverseFields.d.ts.map +1 -1
  200. package/dist/transform/read/traverseFields.js +185 -71
  201. package/dist/transform/read/traverseFields.js.map +1 -1
  202. package/dist/transform/write/array.d.ts +6 -1
  203. package/dist/transform/write/array.d.ts.map +1 -1
  204. package/dist/transform/write/array.js +7 -3
  205. package/dist/transform/write/array.js.map +1 -1
  206. package/dist/transform/write/blocks.d.ts +8 -3
  207. package/dist/transform/write/blocks.d.ts.map +1 -1
  208. package/dist/transform/write/blocks.js +19 -7
  209. package/dist/transform/write/blocks.js.map +1 -1
  210. package/dist/transform/write/index.d.ts.map +1 -1
  211. package/dist/transform/write/index.js +1 -1
  212. package/dist/transform/write/index.js.map +1 -1
  213. package/dist/transform/write/relationships.d.ts.map +1 -1
  214. package/dist/transform/write/relationships.js +6 -2
  215. package/dist/transform/write/relationships.js.map +1 -1
  216. package/dist/transform/write/selects.d.ts.map +1 -1
  217. package/dist/transform/write/selects.js +1 -1
  218. package/dist/transform/write/selects.js.map +1 -1
  219. package/dist/transform/write/traverseFields.d.ts +6 -1
  220. package/dist/transform/write/traverseFields.d.ts.map +1 -1
  221. package/dist/transform/write/traverseFields.js +62 -19
  222. package/dist/transform/write/traverseFields.js.map +1 -1
  223. package/dist/types.d.ts +6 -4
  224. package/dist/types.d.ts.map +1 -1
  225. package/dist/types.js.map +1 -1
  226. package/dist/update.d.ts.map +1 -1
  227. package/dist/update.js +4 -2
  228. package/dist/update.js.map +1 -1
  229. package/dist/updateGlobal.d.ts +1 -1
  230. package/dist/updateGlobal.d.ts.map +1 -1
  231. package/dist/updateGlobal.js +2 -1
  232. package/dist/updateGlobal.js.map +1 -1
  233. package/dist/updateGlobalVersion.d.ts +1 -1
  234. package/dist/updateGlobalVersion.d.ts.map +1 -1
  235. package/dist/updateGlobalVersion.js +4 -3
  236. package/dist/updateGlobalVersion.js.map +1 -1
  237. package/dist/updateVersion.d.ts +1 -1
  238. package/dist/updateVersion.d.ts.map +1 -1
  239. package/dist/updateVersion.js +4 -3
  240. package/dist/updateVersion.js.map +1 -1
  241. package/dist/upsertRow/deleteExistingRowsByPath.d.ts.map +1 -1
  242. package/dist/upsertRow/deleteExistingRowsByPath.js +6 -2
  243. package/dist/upsertRow/deleteExistingRowsByPath.js.map +1 -1
  244. package/dist/upsertRow/index.d.ts +1 -1
  245. package/dist/upsertRow/index.d.ts.map +1 -1
  246. package/dist/upsertRow/index.js +51 -13
  247. package/dist/upsertRow/index.js.map +1 -1
  248. package/dist/upsertRow/insertArrays.d.ts.map +1 -1
  249. package/dist/upsertRow/insertArrays.js +5 -2
  250. package/dist/upsertRow/insertArrays.js.map +1 -1
  251. package/dist/upsertRow/types.d.ts +10 -5
  252. package/dist/upsertRow/types.d.ts.map +1 -1
  253. package/dist/upsertRow/types.js.map +1 -1
  254. package/dist/utilities/buildIndexName.d.ts +7 -0
  255. package/dist/utilities/buildIndexName.d.ts.map +1 -0
  256. package/dist/utilities/buildIndexName.js +14 -0
  257. package/dist/utilities/buildIndexName.js.map +1 -0
  258. package/dist/utilities/createBlocksMap.d.ts.map +1 -1
  259. package/dist/utilities/createBlocksMap.js +4 -2
  260. package/dist/utilities/createBlocksMap.js.map +1 -1
  261. package/dist/utilities/createRelationshipMap.d.ts.map +1 -1
  262. package/dist/utilities/createRelationshipMap.js +3 -1
  263. package/dist/utilities/createRelationshipMap.js.map +1 -1
  264. package/dist/utilities/executeSchemaHooks.d.ts +24 -0
  265. package/dist/utilities/executeSchemaHooks.d.ts.map +1 -0
  266. package/dist/utilities/executeSchemaHooks.js +21 -0
  267. package/dist/utilities/executeSchemaHooks.js.map +1 -0
  268. package/dist/utilities/extendDrizzleTable.d.ts +19 -0
  269. package/dist/utilities/extendDrizzleTable.d.ts.map +1 -0
  270. package/dist/utilities/extendDrizzleTable.js +38 -0
  271. package/dist/utilities/extendDrizzleTable.js.map +1 -0
  272. package/dist/utilities/getCollectionIdType.d.ts +7 -0
  273. package/dist/utilities/getCollectionIdType.d.ts.map +1 -0
  274. package/dist/utilities/getCollectionIdType.js +11 -0
  275. package/dist/utilities/getCollectionIdType.js.map +1 -0
  276. package/dist/utilities/getNameFromDrizzleTable.d.ts +3 -0
  277. package/dist/utilities/getNameFromDrizzleTable.d.ts.map +1 -0
  278. package/dist/utilities/getNameFromDrizzleTable.js +6 -0
  279. package/dist/utilities/getNameFromDrizzleTable.js.map +1 -0
  280. package/dist/utilities/hasLocalesTable.d.ts.map +1 -1
  281. package/dist/utilities/hasLocalesTable.js +12 -4
  282. package/dist/utilities/hasLocalesTable.js.map +1 -1
  283. package/dist/utilities/isPolymorphicRelationship.d.ts +6 -0
  284. package/dist/utilities/isPolymorphicRelationship.d.ts.map +1 -0
  285. package/dist/utilities/isPolymorphicRelationship.js +5 -0
  286. package/dist/utilities/isPolymorphicRelationship.js.map +1 -0
  287. package/dist/utilities/pushDevSchema.d.ts.map +1 -1
  288. package/dist/utilities/pushDevSchema.js +5 -0
  289. package/dist/utilities/pushDevSchema.js.map +1 -1
  290. package/license.md +22 -0
  291. package/package.json +17 -8
@@ -1,4 +1,5 @@
1
- import { fieldAffectsData } from 'payload/shared';
1
+ import { sql } from 'drizzle-orm';
2
+ import { fieldAffectsData, fieldIsVirtual } from 'payload/shared';
2
3
  import toSnakeCase from 'to-snake-case';
3
4
  import { isArrayOfRows } from '../../utilities/isArrayOfRows.js';
4
5
  import { transformArray } from './array.js';
@@ -7,19 +8,24 @@ import { transformNumbers } from './numbers.js';
7
8
  import { transformRelationship } from './relationships.js';
8
9
  import { transformSelects } from './selects.js';
9
10
  import { transformTexts } from './texts.js';
10
- export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksToDelete, columnPrefix, data, existingLocales, fieldPrefix, fields, forcedLocale, locales, numbers, parentTableName, path, relationships, relationshipsToDelete, row, selects, texts })=>{
11
+ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksToDelete, columnPrefix, data, existingLocales, fieldPrefix, fields, forcedLocale, locales, numbers, parentTableName, path, relationships, relationshipsToDelete, row, selects, texts, withinArrayOrBlockLocale })=>{
11
12
  fields.forEach((field)=>{
12
13
  let columnName = '';
13
14
  let fieldName = '';
14
15
  let fieldData;
15
16
  if (fieldAffectsData(field)) {
17
+ if (fieldIsVirtual(field)) {
18
+ return;
19
+ }
16
20
  columnName = `${columnPrefix || ''}${toSnakeCase(field.name)}`;
17
21
  fieldName = `${fieldPrefix || ''}${field.name}`;
18
22
  fieldData = data[field.name];
19
23
  }
20
24
  if (field.type === 'array') {
21
25
  const arrayTableName = adapter.tableNameMap.get(`${parentTableName}_${columnName}`);
22
- if (!arrays[arrayTableName]) arrays[arrayTableName] = [];
26
+ if (!arrays[arrayTableName]) {
27
+ arrays[arrayTableName] = [];
28
+ }
23
29
  if (field.localized) {
24
30
  if (typeof data[field.name] === 'object' && data[field.name] !== null) {
25
31
  Object.entries(data[field.name]).forEach(([localeKey, localeData])=>{
@@ -38,7 +44,8 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
38
44
  relationships,
39
45
  relationshipsToDelete,
40
46
  selects,
41
- texts
47
+ texts,
48
+ withinArrayOrBlockLocale: localeKey
42
49
  });
43
50
  arrays[arrayTableName] = arrays[arrayTableName].concat(newRows);
44
51
  }
@@ -58,7 +65,8 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
58
65
  relationships,
59
66
  relationshipsToDelete,
60
67
  selects,
61
- texts
68
+ texts,
69
+ withinArrayOrBlockLocale
62
70
  });
63
71
  arrays[arrayTableName] = arrays[arrayTableName].concat(newRows);
64
72
  }
@@ -85,7 +93,8 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
85
93
  relationships,
86
94
  relationshipsToDelete,
87
95
  selects,
88
- texts
96
+ texts,
97
+ withinArrayOrBlockLocale: localeKey
89
98
  });
90
99
  }
91
100
  });
@@ -103,7 +112,8 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
103
112
  relationships,
104
113
  relationshipsToDelete,
105
114
  selects,
106
- texts
115
+ texts,
116
+ withinArrayOrBlockLocale
107
117
  });
108
118
  }
109
119
  return;
@@ -112,6 +122,8 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
112
122
  if (typeof data[field.name] === 'object' && data[field.name] !== null) {
113
123
  if (field.localized) {
114
124
  Object.entries(data[field.name]).forEach(([localeKey, localeData])=>{
125
+ // preserve array ID if there is
126
+ localeData._uuid = data.id || data._uuid;
115
127
  traverseFields({
116
128
  adapter,
117
129
  arrays,
@@ -132,10 +144,14 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
132
144
  relationshipsToDelete,
133
145
  row,
134
146
  selects,
135
- texts
147
+ texts,
148
+ withinArrayOrBlockLocale: localeKey
136
149
  });
137
150
  });
138
151
  } else {
152
+ // preserve array ID if there is
153
+ const groupData = data[field.name];
154
+ groupData._uuid = data.id || data._uuid;
139
155
  traverseFields({
140
156
  adapter,
141
157
  arrays,
@@ -143,7 +159,7 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
143
159
  blocks,
144
160
  blocksToDelete,
145
161
  columnPrefix: `${columnName}_`,
146
- data: data[field.name],
162
+ data: groupData,
147
163
  existingLocales,
148
164
  fieldPrefix: `${fieldName}_`,
149
165
  fields: field.fields,
@@ -155,7 +171,8 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
155
171
  relationshipsToDelete,
156
172
  row,
157
173
  selects,
158
- texts
174
+ texts,
175
+ withinArrayOrBlockLocale
159
176
  });
160
177
  }
161
178
  }
@@ -164,9 +181,14 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
164
181
  if (field.type === 'tabs') {
165
182
  field.tabs.forEach((tab)=>{
166
183
  if ('name' in tab) {
184
+ if (fieldIsVirtual(tab)) {
185
+ return;
186
+ }
167
187
  if (typeof data[tab.name] === 'object' && data[tab.name] !== null) {
168
188
  if (tab.localized) {
169
189
  Object.entries(data[tab.name]).forEach(([localeKey, localeData])=>{
190
+ // preserve array ID if there is
191
+ localeData._uuid = data.id || data._uuid;
170
192
  traverseFields({
171
193
  adapter,
172
194
  arrays,
@@ -187,10 +209,14 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
187
209
  relationshipsToDelete,
188
210
  row,
189
211
  selects,
190
- texts
212
+ texts,
213
+ withinArrayOrBlockLocale: localeKey
191
214
  });
192
215
  });
193
216
  } else {
217
+ const tabData = data[tab.name];
218
+ // preserve array ID if there is
219
+ tabData._uuid = data.id || data._uuid;
194
220
  traverseFields({
195
221
  adapter,
196
222
  arrays,
@@ -198,7 +224,7 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
198
224
  blocks,
199
225
  blocksToDelete,
200
226
  columnPrefix: `${columnPrefix || ''}${toSnakeCase(tab.name)}_`,
201
- data: data[tab.name],
227
+ data: tabData,
202
228
  existingLocales,
203
229
  fieldPrefix: `${fieldPrefix || ''}${tab.name}_`,
204
230
  fields: tab.fields,
@@ -210,7 +236,8 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
210
236
  relationshipsToDelete,
211
237
  row,
212
238
  selects,
213
- texts
239
+ texts,
240
+ withinArrayOrBlockLocale
214
241
  });
215
242
  }
216
243
  }
@@ -234,7 +261,8 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
234
261
  relationshipsToDelete,
235
262
  row,
236
263
  selects,
237
- texts
264
+ texts,
265
+ withinArrayOrBlockLocale
238
266
  });
239
267
  }
240
268
  });
@@ -251,6 +279,7 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
251
279
  existingLocales,
252
280
  fieldPrefix,
253
281
  fields: field.fields,
282
+ forcedLocale,
254
283
  locales,
255
284
  numbers,
256
285
  parentTableName,
@@ -259,7 +288,8 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
259
288
  relationshipsToDelete,
260
289
  row,
261
290
  selects,
262
- texts
291
+ texts,
292
+ withinArrayOrBlockLocale
263
293
  });
264
294
  }
265
295
  if (field.type === 'relationship' || field.type === 'upload') {
@@ -295,6 +325,7 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
295
325
  }
296
326
  transformRelationship({
297
327
  baseRow: {
328
+ locale: withinArrayOrBlockLocale,
298
329
  path: relationshipPath
299
330
  },
300
331
  data: fieldData,
@@ -340,6 +371,7 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
340
371
  } else if (Array.isArray(fieldData)) {
341
372
  transformTexts({
342
373
  baseRow: {
374
+ locale: withinArrayOrBlockLocale,
343
375
  path: textPath
344
376
  },
345
377
  data: fieldData,
@@ -368,6 +400,7 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
368
400
  } else if (Array.isArray(fieldData)) {
369
401
  transformNumbers({
370
402
  baseRow: {
403
+ locale: withinArrayOrBlockLocale,
371
404
  path: numberPath
372
405
  },
373
406
  data: fieldData,
@@ -378,7 +411,9 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
378
411
  }
379
412
  if (field.type === 'select' && field.hasMany) {
380
413
  const selectTableName = adapter.tableNameMap.get(`${parentTableName}_${columnName}`);
381
- if (!selects[selectTableName]) selects[selectTableName] = [];
414
+ if (!selects[selectTableName]) {
415
+ selects[selectTableName] = [];
416
+ }
382
417
  if (field.localized) {
383
418
  if (typeof data[field.name] === 'object' && data[field.name] !== null) {
384
419
  Object.entries(data[field.name]).forEach(([localeKey, localeData])=>{
@@ -395,7 +430,8 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
395
430
  } else if (Array.isArray(data[field.name])) {
396
431
  const newRows = transformSelects({
397
432
  id: data._uuid || data.id,
398
- data: data[field.name]
433
+ data: data[field.name],
434
+ locale: withinArrayOrBlockLocale
399
435
  });
400
436
  selects[selectTableName] = selects[selectTableName].concat(newRows);
401
437
  }
@@ -406,7 +442,9 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
406
442
  if (field.localized) {
407
443
  if (typeof fieldData === 'object' && fieldData !== null) {
408
444
  Object.entries(fieldData).forEach(([localeKey, localeData])=>{
409
- if (!locales[localeKey]) locales[localeKey] = {};
445
+ if (!locales[localeKey]) {
446
+ locales[localeKey] = {};
447
+ }
410
448
  valuesToTransform.push({
411
449
  localeKey,
412
450
  ref: locales,
@@ -417,7 +455,9 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
417
455
  } else {
418
456
  let ref = row;
419
457
  if (forcedLocale) {
420
- if (!locales[forcedLocale]) locales[forcedLocale] = {};
458
+ if (!locales[forcedLocale]) {
459
+ locales[forcedLocale] = {};
460
+ }
421
461
  ref = locales[forcedLocale];
422
462
  }
423
463
  valuesToTransform.push({
@@ -428,6 +468,9 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
428
468
  valuesToTransform.forEach(({ localeKey, ref, value })=>{
429
469
  if (typeof value !== 'undefined') {
430
470
  let formattedValue = value;
471
+ if (value && field.type === 'point' && adapter.name !== 'sqlite') {
472
+ formattedValue = sql`ST_GeomFromGeoJSON(${JSON.stringify(value)})`;
473
+ }
431
474
  if (field.type === 'date') {
432
475
  if (typeof value === 'number' && !Number.isNaN(value)) {
433
476
  formattedValue = new Date(value).toISOString();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/transform/write/traverseFields.ts"],"sourcesContent":["import type { Field } from 'payload'\n\nimport { fieldAffectsData } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from '../../types.js'\nimport type { ArrayRowToInsert, BlockRowToInsert, RelationshipToDelete } from './types.js'\n\nimport { isArrayOfRows } from '../../utilities/isArrayOfRows.js'\nimport { transformArray } from './array.js'\nimport { transformBlocks } from './blocks.js'\nimport { transformNumbers } from './numbers.js'\nimport { transformRelationship } from './relationships.js'\nimport { transformSelects } from './selects.js'\nimport { transformTexts } from './texts.js'\n\ntype Args = {\n adapter: DrizzleAdapter\n arrays: {\n [tableName: string]: ArrayRowToInsert[]\n }\n /**\n * This is the name of the base table\n */\n baseTableName: string\n blocks: {\n [blockType: string]: BlockRowToInsert[]\n }\n blocksToDelete: Set<string>\n /**\n * A snake-case field prefix, representing prior fields\n * Ex: my_group_my_named_tab_\n */\n columnPrefix: string\n data: Record<string, unknown>\n existingLocales?: Record<string, unknown>[]\n /**\n * A prefix that will retain camel-case formatting, representing prior fields\n * Ex: myGroup_myNamedTab_\n */\n fieldPrefix: string\n fields: Field[]\n forcedLocale?: string\n locales: {\n [locale: string]: Record<string, unknown>\n }\n numbers: Record<string, unknown>[]\n /**\n * This is the name of the parent table\n */\n parentTableName: string\n path: string\n relationships: Record<string, unknown>[]\n relationshipsToDelete: RelationshipToDelete[]\n row: Record<string, unknown>\n selects: {\n [tableName: string]: Record<string, unknown>[]\n }\n texts: Record<string, unknown>[]\n}\n\nexport const traverseFields = ({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix,\n data,\n existingLocales,\n fieldPrefix,\n fields,\n forcedLocale,\n locales,\n numbers,\n parentTableName,\n path,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n}: Args) => {\n fields.forEach((field) => {\n let columnName = ''\n let fieldName = ''\n let fieldData: unknown\n\n if (fieldAffectsData(field)) {\n columnName = `${columnPrefix || ''}${toSnakeCase(field.name)}`\n fieldName = `${fieldPrefix || ''}${field.name}`\n fieldData = data[field.name]\n }\n\n if (field.type === 'array') {\n const arrayTableName = adapter.tableNameMap.get(`${parentTableName}_${columnName}`)\n\n if (!arrays[arrayTableName]) arrays[arrayTableName] = []\n\n if (field.localized) {\n if (typeof data[field.name] === 'object' && data[field.name] !== null) {\n Object.entries(data[field.name]).forEach(([localeKey, localeData]) => {\n if (Array.isArray(localeData)) {\n const newRows = transformArray({\n adapter,\n arrayTableName,\n baseTableName,\n blocks,\n blocksToDelete,\n data: localeData,\n field,\n locale: localeKey,\n numbers,\n path,\n relationships,\n relationshipsToDelete,\n selects,\n texts,\n })\n\n arrays[arrayTableName] = arrays[arrayTableName].concat(newRows)\n }\n })\n }\n } else {\n const newRows = transformArray({\n adapter,\n arrayTableName,\n baseTableName,\n blocks,\n blocksToDelete,\n data: data[field.name],\n field,\n numbers,\n path,\n relationships,\n relationshipsToDelete,\n selects,\n texts,\n })\n\n arrays[arrayTableName] = arrays[arrayTableName].concat(newRows)\n }\n\n return\n }\n\n if (field.type === 'blocks') {\n field.blocks.forEach(({ slug }) => {\n blocksToDelete.add(toSnakeCase(slug))\n })\n\n if (field.localized) {\n if (typeof data[field.name] === 'object' && data[field.name] !== null) {\n Object.entries(data[field.name]).forEach(([localeKey, localeData]) => {\n if (Array.isArray(localeData)) {\n transformBlocks({\n adapter,\n baseTableName,\n blocks,\n blocksToDelete,\n data: localeData,\n field,\n locale: localeKey,\n numbers,\n path,\n relationships,\n relationshipsToDelete,\n selects,\n texts,\n })\n }\n })\n }\n } else if (isArrayOfRows(fieldData)) {\n transformBlocks({\n adapter,\n baseTableName,\n blocks,\n blocksToDelete,\n data: fieldData,\n field,\n numbers,\n path,\n relationships,\n relationshipsToDelete,\n selects,\n texts,\n })\n }\n\n return\n }\n\n if (field.type === 'group') {\n if (typeof data[field.name] === 'object' && data[field.name] !== null) {\n if (field.localized) {\n Object.entries(data[field.name]).forEach(([localeKey, localeData]) => {\n traverseFields({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix: `${columnName}_`,\n data: localeData as Record<string, unknown>,\n existingLocales,\n fieldPrefix: `${fieldName}_`,\n fields: field.fields,\n forcedLocale: localeKey,\n locales,\n numbers,\n parentTableName,\n path: `${path || ''}${field.name}.`,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n })\n })\n } else {\n traverseFields({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix: `${columnName}_`,\n data: data[field.name] as Record<string, unknown>,\n existingLocales,\n fieldPrefix: `${fieldName}_`,\n fields: field.fields,\n locales,\n numbers,\n parentTableName,\n path: `${path || ''}${field.name}.`,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n })\n }\n }\n\n return\n }\n\n if (field.type === 'tabs') {\n field.tabs.forEach((tab) => {\n if ('name' in tab) {\n if (typeof data[tab.name] === 'object' && data[tab.name] !== null) {\n if (tab.localized) {\n Object.entries(data[tab.name]).forEach(([localeKey, localeData]) => {\n traverseFields({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix: `${columnPrefix || ''}${toSnakeCase(tab.name)}_`,\n data: localeData as Record<string, unknown>,\n existingLocales,\n fieldPrefix: `${fieldPrefix || ''}${tab.name}_`,\n fields: tab.fields,\n forcedLocale: localeKey,\n locales,\n numbers,\n parentTableName,\n path: `${path || ''}${tab.name}.`,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n })\n })\n } else {\n traverseFields({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix: `${columnPrefix || ''}${toSnakeCase(tab.name)}_`,\n data: data[tab.name] as Record<string, unknown>,\n existingLocales,\n fieldPrefix: `${fieldPrefix || ''}${tab.name}_`,\n fields: tab.fields,\n locales,\n numbers,\n parentTableName,\n path: `${path || ''}${tab.name}.`,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n })\n }\n }\n } else {\n traverseFields({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix,\n data,\n existingLocales,\n fieldPrefix,\n fields: tab.fields,\n locales,\n numbers,\n parentTableName,\n path,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n })\n }\n })\n }\n\n if (field.type === 'row' || field.type === 'collapsible') {\n traverseFields({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix,\n data,\n existingLocales,\n fieldPrefix,\n fields: field.fields,\n locales,\n numbers,\n parentTableName,\n path,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n })\n }\n\n if (field.type === 'relationship' || field.type === 'upload') {\n const relationshipPath = `${path || ''}${field.name}`\n\n if (\n field.localized &&\n (Array.isArray(field.relationTo) || ('hasMany' in field && field.hasMany))\n ) {\n if (typeof fieldData === 'object') {\n Object.entries(fieldData).forEach(([localeKey, localeData]) => {\n if (localeData === null) {\n relationshipsToDelete.push({\n locale: localeKey,\n path: relationshipPath,\n })\n return\n }\n\n transformRelationship({\n baseRow: {\n locale: localeKey,\n path: relationshipPath,\n },\n data: localeData,\n field,\n relationships,\n })\n })\n }\n return\n } else if (Array.isArray(field.relationTo) || ('hasMany' in field && field.hasMany)) {\n if (fieldData === null || (Array.isArray(fieldData) && fieldData.length === 0)) {\n relationshipsToDelete.push({ path: relationshipPath })\n return\n }\n\n transformRelationship({\n baseRow: {\n path: relationshipPath,\n },\n data: fieldData,\n field,\n relationships,\n })\n return\n } else {\n if (\n !field.localized &&\n fieldData &&\n typeof fieldData === 'object' &&\n 'id' in fieldData &&\n fieldData?.id\n ) {\n fieldData = fieldData.id\n } else if (field.localized) {\n if (typeof fieldData === 'object') {\n Object.entries(fieldData).forEach(([localeKey, localeData]) => {\n if (typeof localeData === 'object') {\n if (localeData && 'id' in localeData && localeData?.id) {\n fieldData[localeKey] = localeData.id\n }\n } else {\n fieldData[localeKey] = localeData\n }\n })\n }\n }\n }\n }\n\n if (field.type === 'text' && field.hasMany) {\n const textPath = `${path || ''}${field.name}`\n\n if (field.localized) {\n if (typeof fieldData === 'object') {\n Object.entries(fieldData).forEach(([localeKey, localeData]) => {\n if (Array.isArray(localeData)) {\n transformTexts({\n baseRow: {\n locale: localeKey,\n path: textPath,\n },\n data: localeData,\n texts,\n })\n }\n })\n }\n } else if (Array.isArray(fieldData)) {\n transformTexts({\n baseRow: {\n path: textPath,\n },\n data: fieldData,\n texts,\n })\n }\n\n return\n }\n\n if (field.type === 'number' && field.hasMany) {\n const numberPath = `${path || ''}${field.name}`\n\n if (field.localized) {\n if (typeof fieldData === 'object') {\n Object.entries(fieldData).forEach(([localeKey, localeData]) => {\n if (Array.isArray(localeData)) {\n transformNumbers({\n baseRow: {\n locale: localeKey,\n path: numberPath,\n },\n data: localeData,\n numbers,\n })\n }\n })\n }\n } else if (Array.isArray(fieldData)) {\n transformNumbers({\n baseRow: {\n path: numberPath,\n },\n data: fieldData,\n numbers,\n })\n }\n\n return\n }\n\n if (field.type === 'select' && field.hasMany) {\n const selectTableName = adapter.tableNameMap.get(`${parentTableName}_${columnName}`)\n if (!selects[selectTableName]) selects[selectTableName] = []\n\n if (field.localized) {\n if (typeof data[field.name] === 'object' && data[field.name] !== null) {\n Object.entries(data[field.name]).forEach(([localeKey, localeData]) => {\n if (Array.isArray(localeData)) {\n const newRows = transformSelects({\n id: data._uuid || data.id,\n data: localeData,\n locale: localeKey,\n })\n\n selects[selectTableName] = selects[selectTableName].concat(newRows)\n }\n })\n }\n } else if (Array.isArray(data[field.name])) {\n const newRows = transformSelects({\n id: data._uuid || data.id,\n data: data[field.name],\n })\n\n selects[selectTableName] = selects[selectTableName].concat(newRows)\n }\n\n return\n }\n\n if (fieldAffectsData(field)) {\n const valuesToTransform: { localeKey?: string; ref: unknown; value: unknown }[] = []\n\n if (field.localized) {\n if (typeof fieldData === 'object' && fieldData !== null) {\n Object.entries(fieldData).forEach(([localeKey, localeData]) => {\n if (!locales[localeKey]) locales[localeKey] = {}\n\n valuesToTransform.push({\n localeKey,\n ref: locales,\n value: localeData,\n })\n })\n }\n } else {\n let ref = row\n\n if (forcedLocale) {\n if (!locales[forcedLocale]) locales[forcedLocale] = {}\n ref = locales[forcedLocale]\n }\n\n valuesToTransform.push({ ref, value: fieldData })\n }\n\n valuesToTransform.forEach(({ localeKey, ref, value }) => {\n if (typeof value !== 'undefined') {\n let formattedValue = value\n\n if (field.type === 'date') {\n if (typeof value === 'number' && !Number.isNaN(value)) {\n formattedValue = new Date(value).toISOString()\n } else if (value instanceof Date) {\n formattedValue = value.toISOString()\n } else if (fieldName === 'updatedAt') {\n // let the db handle this\n formattedValue = new Date().toISOString()\n }\n }\n\n if (localeKey) {\n ref[localeKey][fieldName] = formattedValue\n } else {\n ref[fieldName] = formattedValue\n }\n }\n })\n }\n })\n}\n"],"names":["fieldAffectsData","toSnakeCase","isArrayOfRows","transformArray","transformBlocks","transformNumbers","transformRelationship","transformSelects","transformTexts","traverseFields","adapter","arrays","baseTableName","blocks","blocksToDelete","columnPrefix","data","existingLocales","fieldPrefix","fields","forcedLocale","locales","numbers","parentTableName","path","relationships","relationshipsToDelete","row","selects","texts","forEach","field","columnName","fieldName","fieldData","name","type","arrayTableName","tableNameMap","get","localized","Object","entries","localeKey","localeData","Array","isArray","newRows","locale","concat","slug","add","tabs","tab","relationshipPath","relationTo","hasMany","push","baseRow","length","id","textPath","numberPath","selectTableName","_uuid","valuesToTransform","ref","value","formattedValue","Number","isNaN","Date","toISOString"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/transform/write/traverseFields.ts"],"sourcesContent":["import type { Field } from 'payload'\n\nimport { sql } from 'drizzle-orm'\nimport { fieldAffectsData, fieldIsVirtual } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from '../../types.js'\nimport type { ArrayRowToInsert, BlockRowToInsert, RelationshipToDelete } from './types.js'\n\nimport { isArrayOfRows } from '../../utilities/isArrayOfRows.js'\nimport { transformArray } from './array.js'\nimport { transformBlocks } from './blocks.js'\nimport { transformNumbers } from './numbers.js'\nimport { transformRelationship } from './relationships.js'\nimport { transformSelects } from './selects.js'\nimport { transformTexts } from './texts.js'\n\ntype Args = {\n adapter: DrizzleAdapter\n arrays: {\n [tableName: string]: ArrayRowToInsert[]\n }\n /**\n * This is the name of the base table\n */\n baseTableName: string\n blocks: {\n [blockType: string]: BlockRowToInsert[]\n }\n blocksToDelete: Set<string>\n /**\n * A snake-case field prefix, representing prior fields\n * Ex: my_group_my_named_tab_\n */\n columnPrefix: string\n data: Record<string, unknown>\n existingLocales?: Record<string, unknown>[]\n /**\n * A prefix that will retain camel-case formatting, representing prior fields\n * Ex: myGroup_myNamedTab_\n */\n fieldPrefix: string\n fields: Field[]\n forcedLocale?: string\n locales: {\n [locale: string]: Record<string, unknown>\n }\n numbers: Record<string, unknown>[]\n /**\n * This is the name of the parent table\n */\n parentTableName: string\n path: string\n relationships: Record<string, unknown>[]\n relationshipsToDelete: RelationshipToDelete[]\n row: Record<string, unknown>\n selects: {\n [tableName: string]: Record<string, unknown>[]\n }\n texts: Record<string, unknown>[]\n /**\n * Set to a locale code if this set of fields is traversed within a\n * localized array or block field\n */\n withinArrayOrBlockLocale?: string\n}\n\nexport const traverseFields = ({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix,\n data,\n existingLocales,\n fieldPrefix,\n fields,\n forcedLocale,\n locales,\n numbers,\n parentTableName,\n path,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n withinArrayOrBlockLocale,\n}: Args) => {\n fields.forEach((field) => {\n let columnName = ''\n let fieldName = ''\n let fieldData: unknown\n\n if (fieldAffectsData(field)) {\n if (fieldIsVirtual(field)) {\n return\n }\n\n columnName = `${columnPrefix || ''}${toSnakeCase(field.name)}`\n fieldName = `${fieldPrefix || ''}${field.name}`\n fieldData = data[field.name]\n }\n\n if (field.type === 'array') {\n const arrayTableName = adapter.tableNameMap.get(`${parentTableName}_${columnName}`)\n\n if (!arrays[arrayTableName]) {\n arrays[arrayTableName] = []\n }\n\n if (field.localized) {\n if (typeof data[field.name] === 'object' && data[field.name] !== null) {\n Object.entries(data[field.name]).forEach(([localeKey, localeData]) => {\n if (Array.isArray(localeData)) {\n const newRows = transformArray({\n adapter,\n arrayTableName,\n baseTableName,\n blocks,\n blocksToDelete,\n data: localeData,\n field,\n locale: localeKey,\n numbers,\n path,\n relationships,\n relationshipsToDelete,\n selects,\n texts,\n withinArrayOrBlockLocale: localeKey,\n })\n\n arrays[arrayTableName] = arrays[arrayTableName].concat(newRows)\n }\n })\n }\n } else {\n const newRows = transformArray({\n adapter,\n arrayTableName,\n baseTableName,\n blocks,\n blocksToDelete,\n data: data[field.name],\n field,\n numbers,\n path,\n relationships,\n relationshipsToDelete,\n selects,\n texts,\n withinArrayOrBlockLocale,\n })\n\n arrays[arrayTableName] = arrays[arrayTableName].concat(newRows)\n }\n\n return\n }\n\n if (field.type === 'blocks') {\n field.blocks.forEach(({ slug }) => {\n blocksToDelete.add(toSnakeCase(slug))\n })\n\n if (field.localized) {\n if (typeof data[field.name] === 'object' && data[field.name] !== null) {\n Object.entries(data[field.name]).forEach(([localeKey, localeData]) => {\n if (Array.isArray(localeData)) {\n transformBlocks({\n adapter,\n baseTableName,\n blocks,\n blocksToDelete,\n data: localeData,\n field,\n locale: localeKey,\n numbers,\n path,\n relationships,\n relationshipsToDelete,\n selects,\n texts,\n withinArrayOrBlockLocale: localeKey,\n })\n }\n })\n }\n } else if (isArrayOfRows(fieldData)) {\n transformBlocks({\n adapter,\n baseTableName,\n blocks,\n blocksToDelete,\n data: fieldData,\n field,\n numbers,\n path,\n relationships,\n relationshipsToDelete,\n selects,\n texts,\n withinArrayOrBlockLocale,\n })\n }\n\n return\n }\n\n if (field.type === 'group') {\n if (typeof data[field.name] === 'object' && data[field.name] !== null) {\n if (field.localized) {\n Object.entries(data[field.name]).forEach(([localeKey, localeData]) => {\n // preserve array ID if there is\n localeData._uuid = data.id || data._uuid\n\n traverseFields({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix: `${columnName}_`,\n data: localeData as Record<string, unknown>,\n existingLocales,\n fieldPrefix: `${fieldName}_`,\n fields: field.fields,\n forcedLocale: localeKey,\n locales,\n numbers,\n parentTableName,\n path: `${path || ''}${field.name}.`,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n withinArrayOrBlockLocale: localeKey,\n })\n })\n } else {\n // preserve array ID if there is\n const groupData = data[field.name] as Record<string, unknown>\n groupData._uuid = data.id || data._uuid\n\n traverseFields({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix: `${columnName}_`,\n data: groupData,\n existingLocales,\n fieldPrefix: `${fieldName}_`,\n fields: field.fields,\n locales,\n numbers,\n parentTableName,\n path: `${path || ''}${field.name}.`,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n withinArrayOrBlockLocale,\n })\n }\n }\n\n return\n }\n\n if (field.type === 'tabs') {\n field.tabs.forEach((tab) => {\n if ('name' in tab) {\n if (fieldIsVirtual(tab)) {\n return\n }\n\n if (typeof data[tab.name] === 'object' && data[tab.name] !== null) {\n if (tab.localized) {\n Object.entries(data[tab.name]).forEach(([localeKey, localeData]) => {\n // preserve array ID if there is\n localeData._uuid = data.id || data._uuid\n\n traverseFields({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix: `${columnPrefix || ''}${toSnakeCase(tab.name)}_`,\n data: localeData as Record<string, unknown>,\n existingLocales,\n fieldPrefix: `${fieldPrefix || ''}${tab.name}_`,\n fields: tab.fields,\n forcedLocale: localeKey,\n locales,\n numbers,\n parentTableName,\n path: `${path || ''}${tab.name}.`,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n withinArrayOrBlockLocale: localeKey,\n })\n })\n } else {\n const tabData = data[tab.name] as Record<string, unknown>\n // preserve array ID if there is\n tabData._uuid = data.id || data._uuid\n\n traverseFields({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix: `${columnPrefix || ''}${toSnakeCase(tab.name)}_`,\n data: tabData,\n existingLocales,\n fieldPrefix: `${fieldPrefix || ''}${tab.name}_`,\n fields: tab.fields,\n locales,\n numbers,\n parentTableName,\n path: `${path || ''}${tab.name}.`,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n withinArrayOrBlockLocale,\n })\n }\n }\n } else {\n traverseFields({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix,\n data,\n existingLocales,\n fieldPrefix,\n fields: tab.fields,\n locales,\n numbers,\n parentTableName,\n path,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n withinArrayOrBlockLocale,\n })\n }\n })\n }\n\n if (field.type === 'row' || field.type === 'collapsible') {\n traverseFields({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix,\n data,\n existingLocales,\n fieldPrefix,\n fields: field.fields,\n forcedLocale,\n locales,\n numbers,\n parentTableName,\n path,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n withinArrayOrBlockLocale,\n })\n }\n\n if (field.type === 'relationship' || field.type === 'upload') {\n const relationshipPath = `${path || ''}${field.name}`\n\n if (\n field.localized &&\n (Array.isArray(field.relationTo) || ('hasMany' in field && field.hasMany))\n ) {\n if (typeof fieldData === 'object') {\n Object.entries(fieldData).forEach(([localeKey, localeData]) => {\n if (localeData === null) {\n relationshipsToDelete.push({\n locale: localeKey,\n path: relationshipPath,\n })\n return\n }\n\n transformRelationship({\n baseRow: {\n locale: localeKey,\n path: relationshipPath,\n },\n data: localeData,\n field,\n relationships,\n })\n })\n }\n return\n } else if (Array.isArray(field.relationTo) || ('hasMany' in field && field.hasMany)) {\n if (fieldData === null || (Array.isArray(fieldData) && fieldData.length === 0)) {\n relationshipsToDelete.push({ path: relationshipPath })\n return\n }\n\n transformRelationship({\n baseRow: {\n locale: withinArrayOrBlockLocale,\n path: relationshipPath,\n },\n data: fieldData,\n field,\n relationships,\n })\n return\n } else {\n if (\n !field.localized &&\n fieldData &&\n typeof fieldData === 'object' &&\n 'id' in fieldData &&\n fieldData?.id\n ) {\n fieldData = fieldData.id\n } else if (field.localized) {\n if (typeof fieldData === 'object') {\n Object.entries(fieldData).forEach(([localeKey, localeData]) => {\n if (typeof localeData === 'object') {\n if (localeData && 'id' in localeData && localeData?.id) {\n fieldData[localeKey] = localeData.id\n }\n } else {\n fieldData[localeKey] = localeData\n }\n })\n }\n }\n }\n }\n\n if (field.type === 'text' && field.hasMany) {\n const textPath = `${path || ''}${field.name}`\n\n if (field.localized) {\n if (typeof fieldData === 'object') {\n Object.entries(fieldData).forEach(([localeKey, localeData]) => {\n if (Array.isArray(localeData)) {\n transformTexts({\n baseRow: {\n locale: localeKey,\n path: textPath,\n },\n data: localeData,\n texts,\n })\n }\n })\n }\n } else if (Array.isArray(fieldData)) {\n transformTexts({\n baseRow: {\n locale: withinArrayOrBlockLocale,\n path: textPath,\n },\n data: fieldData,\n texts,\n })\n }\n\n return\n }\n\n if (field.type === 'number' && field.hasMany) {\n const numberPath = `${path || ''}${field.name}`\n\n if (field.localized) {\n if (typeof fieldData === 'object') {\n Object.entries(fieldData).forEach(([localeKey, localeData]) => {\n if (Array.isArray(localeData)) {\n transformNumbers({\n baseRow: {\n locale: localeKey,\n path: numberPath,\n },\n data: localeData,\n numbers,\n })\n }\n })\n }\n } else if (Array.isArray(fieldData)) {\n transformNumbers({\n baseRow: {\n locale: withinArrayOrBlockLocale,\n path: numberPath,\n },\n data: fieldData,\n numbers,\n })\n }\n\n return\n }\n\n if (field.type === 'select' && field.hasMany) {\n const selectTableName = adapter.tableNameMap.get(`${parentTableName}_${columnName}`)\n if (!selects[selectTableName]) {\n selects[selectTableName] = []\n }\n\n if (field.localized) {\n if (typeof data[field.name] === 'object' && data[field.name] !== null) {\n Object.entries(data[field.name]).forEach(([localeKey, localeData]) => {\n if (Array.isArray(localeData)) {\n const newRows = transformSelects({\n id: data._uuid || data.id,\n data: localeData,\n locale: localeKey,\n })\n\n selects[selectTableName] = selects[selectTableName].concat(newRows)\n }\n })\n }\n } else if (Array.isArray(data[field.name])) {\n const newRows = transformSelects({\n id: data._uuid || data.id,\n data: data[field.name],\n locale: withinArrayOrBlockLocale,\n })\n\n selects[selectTableName] = selects[selectTableName].concat(newRows)\n }\n\n return\n }\n\n if (fieldAffectsData(field)) {\n const valuesToTransform: { localeKey?: string; ref: unknown; value: unknown }[] = []\n\n if (field.localized) {\n if (typeof fieldData === 'object' && fieldData !== null) {\n Object.entries(fieldData).forEach(([localeKey, localeData]) => {\n if (!locales[localeKey]) {\n locales[localeKey] = {}\n }\n\n valuesToTransform.push({\n localeKey,\n ref: locales,\n value: localeData,\n })\n })\n }\n } else {\n let ref = row\n\n if (forcedLocale) {\n if (!locales[forcedLocale]) {\n locales[forcedLocale] = {}\n }\n ref = locales[forcedLocale]\n }\n\n valuesToTransform.push({ ref, value: fieldData })\n }\n\n valuesToTransform.forEach(({ localeKey, ref, value }) => {\n if (typeof value !== 'undefined') {\n let formattedValue = value\n if (value && field.type === 'point' && adapter.name !== 'sqlite') {\n formattedValue = sql`ST_GeomFromGeoJSON(${JSON.stringify(value)})`\n }\n\n if (field.type === 'date') {\n if (typeof value === 'number' && !Number.isNaN(value)) {\n formattedValue = new Date(value).toISOString()\n } else if (value instanceof Date) {\n formattedValue = value.toISOString()\n } else if (fieldName === 'updatedAt') {\n // let the db handle this\n formattedValue = new Date().toISOString()\n }\n }\n\n if (localeKey) {\n ref[localeKey][fieldName] = formattedValue\n } else {\n ref[fieldName] = formattedValue\n }\n }\n })\n }\n })\n}\n"],"names":["sql","fieldAffectsData","fieldIsVirtual","toSnakeCase","isArrayOfRows","transformArray","transformBlocks","transformNumbers","transformRelationship","transformSelects","transformTexts","traverseFields","adapter","arrays","baseTableName","blocks","blocksToDelete","columnPrefix","data","existingLocales","fieldPrefix","fields","forcedLocale","locales","numbers","parentTableName","path","relationships","relationshipsToDelete","row","selects","texts","withinArrayOrBlockLocale","forEach","field","columnName","fieldName","fieldData","name","type","arrayTableName","tableNameMap","get","localized","Object","entries","localeKey","localeData","Array","isArray","newRows","locale","concat","slug","add","_uuid","id","groupData","tabs","tab","tabData","relationshipPath","relationTo","hasMany","push","baseRow","length","textPath","numberPath","selectTableName","valuesToTransform","ref","value","formattedValue","JSON","stringify","Number","isNaN","Date","toISOString"],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { ColumnBaseConfig, ColumnDataType, DrizzleConfig, ExtractTablesWithRelations, Relation, Relations, SQL, TableRelationalConfig } from 'drizzle-orm';
1
+ import type { Column, ColumnBaseConfig, ColumnDataType, DrizzleConfig, ExtractTablesWithRelations, Relation, Relations, SQL, TableRelationalConfig } from 'drizzle-orm';
2
2
  import type { LibSQLDatabase } from 'drizzle-orm/libsql';
3
3
  import type { NodePgDatabase, NodePgQueryResultHKT } from 'drizzle-orm/node-postgres';
4
4
  import type { PgColumn, PgTable, PgTransaction } from 'drizzle-orm/pg-core';
@@ -71,7 +71,7 @@ export type RequireDrizzleKit = () => {
71
71
  generateDrizzleJson: (args: {
72
72
  schema: Record<string, unknown>;
73
73
  }) => unknown;
74
- pushSchema: (schema: Record<string, unknown>, drizzle: DrizzleAdapter['drizzle'], filterSchema?: string[]) => Promise<{
74
+ pushSchema: (schema: Record<string, unknown>, drizzle: DrizzleAdapter['drizzle'], filterSchema?: string[], tablesFilter?: string[], extensionsFilter?: string[]) => Promise<{
75
75
  apply: any;
76
76
  hasDataLoss: any;
77
77
  warnings: any;
@@ -90,6 +90,7 @@ export type Migration = {
90
90
  }) => Promise<void>;
91
91
  } & MigrationData;
92
92
  export type CreateJSONQueryArgs = {
93
+ column?: Column | string;
93
94
  operator: string;
94
95
  pathSegments: string[];
95
96
  table?: string;
@@ -98,14 +99,14 @@ export type CreateJSONQueryArgs = {
98
99
  value: boolean | number | string;
99
100
  };
100
101
  export interface DrizzleAdapter extends BaseDatabaseAdapter {
101
- convertPathToJSONTraversal: (incomingSegments: string[]) => string;
102
+ convertPathToJSONTraversal?: (incomingSegments: string[]) => string;
102
103
  countDistinct: CountDistinct;
103
104
  createJSONQuery: (args: CreateJSONQueryArgs) => string;
104
105
  defaultDrizzleSnapshot: Record<string, unknown>;
105
106
  deleteWhere: DeleteWhere;
106
107
  drizzle: LibSQLDatabase | PostgresDB;
107
108
  dropDatabase: DropDatabase;
108
- enums?: Record<string, unknown> | never;
109
+ enums?: never | Record<string, unknown>;
109
110
  execute: Execute<unknown>;
110
111
  features: {
111
112
  json?: boolean;
@@ -117,6 +118,7 @@ export interface DrizzleAdapter extends BaseDatabaseAdapter {
117
118
  fieldConstraints: Record<string, Record<string, string>>;
118
119
  getMigrationTemplate: (args: MigrationTemplateArgs) => string;
119
120
  idType: 'serial' | 'uuid';
121
+ indexes: Set<string>;
120
122
  initializing: Promise<void>;
121
123
  insert: Insert;
122
124
  localesSuffix?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type {\n ColumnBaseConfig,\n ColumnDataType,\n DrizzleConfig,\n ExtractTablesWithRelations,\n Relation,\n Relations,\n SQL,\n TableRelationalConfig,\n} from 'drizzle-orm'\nimport type { LibSQLDatabase } from 'drizzle-orm/libsql'\nimport type { NodePgDatabase, NodePgQueryResultHKT } from 'drizzle-orm/node-postgres'\nimport type { PgColumn, PgTable, PgTransaction } from 'drizzle-orm/pg-core'\nimport type { SQLiteColumn, SQLiteTable, SQLiteTransaction } from 'drizzle-orm/sqlite-core'\nimport type { Result } from 'drizzle-orm/sqlite-core/session'\nimport type {\n BaseDatabaseAdapter,\n MigrationData,\n MigrationTemplateArgs,\n Payload,\n PayloadRequest,\n} from 'payload'\n\nimport type { BuildQueryJoinAliases } from './queries/buildQuery.js'\n\nexport { BuildQueryJoinAliases }\n\nimport type { ResultSet } from '@libsql/client'\nimport type { SQLiteRaw } from 'drizzle-orm/sqlite-core/query-builders/raw'\nimport type { QueryResult } from 'pg'\n\nimport type { ChainedMethods } from './find/chainMethods.js'\nimport type { Operators } from './queries/operatorMap.js'\n\nexport { ChainedMethods }\n\nexport type PostgresDB = NodePgDatabase<Record<string, unknown>>\n\nexport type SQLiteDB = LibSQLDatabase<\n Record<string, GenericRelation | GenericTable> & Record<string, unknown>\n>\n\nexport type GenericPgColumn = PgColumn<\n ColumnBaseConfig<ColumnDataType, string>,\n Record<string, unknown>\n>\n\nexport type GenericColumns<T> = {\n [x: string]: T\n}\n\ntype GenericPgTable = PgTable<{\n columns: GenericColumns<GenericPgColumn>\n dialect: string\n name: string\n schema: undefined\n}>\n\ntype GenericSQLiteTable = SQLiteTable<{\n columns: GenericColumns<SQLiteColumn>\n dialect: string\n name: string\n schema: undefined\n}>\n\nexport type GenericColumn = GenericPgColumn | SQLiteColumn\n\nexport type GenericTable = GenericPgTable | GenericSQLiteTable\n\nexport type GenericRelation = Relations<string, Record<string, Relation<string>>>\n\nexport type TransactionSQLite = SQLiteTransaction<\n 'async',\n Result<'async', unknown>,\n Record<string, unknown>,\n { tsName: TableRelationalConfig }\n>\nexport type TransactionPg = PgTransaction<\n NodePgQueryResultHKT,\n Record<string, unknown>,\n ExtractTablesWithRelations<Record<string, unknown>>\n>\n\nexport type DrizzleTransaction = TransactionPg | TransactionSQLite\n\nexport type CountDistinct = (args: {\n db: DrizzleTransaction | LibSQLDatabase | PostgresDB\n joins: BuildQueryJoinAliases\n tableName: string\n where: SQL\n}) => Promise<number>\n\nexport type DeleteWhere = (args: {\n db: DrizzleTransaction | LibSQLDatabase | PostgresDB\n tableName: string\n where: SQL\n}) => Promise<void>\n\nexport type DropDatabase = (args: { adapter: DrizzleAdapter }) => Promise<void>\n\nexport type Execute<T> = (args: {\n db?: DrizzleTransaction | LibSQLDatabase | PostgresDB\n drizzle?: LibSQLDatabase | PostgresDB\n raw?: string\n sql?: SQL<unknown>\n}) =>\n | Promise<QueryResult<Record<string, T>>>\n | SQLiteRaw<Promise<{ rows: T[] }>>\n | SQLiteRaw<ResultSet>\n\nexport type Insert = (args: {\n db: DrizzleTransaction | LibSQLDatabase | PostgresDB\n onConflictDoUpdate?: unknown\n tableName: string\n values: Record<string, unknown> | Record<string, unknown>[]\n}) => Promise<Record<string, unknown>[]>\n\nexport type RequireDrizzleKit = () => {\n generateDrizzleJson: (args: { schema: Record<string, unknown> }) => unknown\n pushSchema: (\n schema: Record<string, unknown>,\n drizzle: DrizzleAdapter['drizzle'],\n filterSchema?: string[],\n ) => Promise<{ apply; hasDataLoss; warnings }>\n}\n\nexport type Migration = {\n down: ({\n db,\n payload,\n req,\n }: {\n db?: DrizzleTransaction | LibSQLDatabase<Record<string, never>> | PostgresDB\n payload: Payload\n req: PayloadRequest\n }) => Promise<void>\n up: ({\n db,\n payload,\n req,\n }: {\n db?: DrizzleTransaction | LibSQLDatabase | PostgresDB\n payload: Payload\n req: PayloadRequest\n }) => Promise<void>\n} & MigrationData\n\nexport type CreateJSONQueryArgs = {\n operator: string\n pathSegments: string[]\n table?: string\n treatAsArray?: string[]\n treatRootAsArray?: boolean\n value: boolean | number | string\n}\n\nexport interface DrizzleAdapter extends BaseDatabaseAdapter {\n convertPathToJSONTraversal: (incomingSegments: string[]) => string\n countDistinct: CountDistinct\n createJSONQuery: (args: CreateJSONQueryArgs) => string\n defaultDrizzleSnapshot: Record<string, unknown>\n deleteWhere: DeleteWhere\n drizzle: LibSQLDatabase | PostgresDB\n dropDatabase: DropDatabase\n enums?: Record<string, unknown> | never\n execute: Execute<unknown>\n features: {\n json?: boolean\n }\n /**\n * An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name\n * Used for returning properly formed errors from unique fields\n */\n fieldConstraints: Record<string, Record<string, string>>\n getMigrationTemplate: (args: MigrationTemplateArgs) => string\n idType: 'serial' | 'uuid'\n initializing: Promise<void>\n insert: Insert\n localesSuffix?: string\n logger: DrizzleConfig['logger']\n operators: Operators\n push: boolean\n rejectInitializing: () => void\n relations: Record<string, GenericRelation>\n relationshipsSuffix?: string\n requireDrizzleKit: RequireDrizzleKit\n resolveInitializing: () => void\n schema: Record<string, unknown>\n schemaName?: string\n sessions: {\n [id: string]: {\n db: DrizzleTransaction\n reject: () => Promise<void>\n resolve: () => Promise<void>\n }\n }\n tableNameMap: Map<string, string>\n tables: Record<string, any>\n transactionOptions: unknown\n versionsSuffix?: string\n}\n"],"names":[],"mappings":"AA4JA,WA4CC"}
1
+ {"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type {\n Column,\n ColumnBaseConfig,\n ColumnDataType,\n DrizzleConfig,\n ExtractTablesWithRelations,\n Relation,\n Relations,\n SQL,\n TableRelationalConfig,\n} from 'drizzle-orm'\nimport type { LibSQLDatabase } from 'drizzle-orm/libsql'\nimport type { NodePgDatabase, NodePgQueryResultHKT } from 'drizzle-orm/node-postgres'\nimport type { PgColumn, PgTable, PgTransaction } from 'drizzle-orm/pg-core'\nimport type { SQLiteColumn, SQLiteTable, SQLiteTransaction } from 'drizzle-orm/sqlite-core'\nimport type { Result } from 'drizzle-orm/sqlite-core/session'\nimport type {\n BaseDatabaseAdapter,\n MigrationData,\n MigrationTemplateArgs,\n Payload,\n PayloadRequest,\n} from 'payload'\n\nimport type { BuildQueryJoinAliases } from './queries/buildQuery.js'\n\nexport { BuildQueryJoinAliases }\n\nimport type { ResultSet } from '@libsql/client'\nimport type { SQLiteRaw } from 'drizzle-orm/sqlite-core/query-builders/raw'\nimport type { QueryResult } from 'pg'\n\nimport type { ChainedMethods } from './find/chainMethods.js'\nimport type { Operators } from './queries/operatorMap.js'\n\nexport { ChainedMethods }\n\nexport type PostgresDB = NodePgDatabase<Record<string, unknown>>\n\nexport type SQLiteDB = LibSQLDatabase<\n Record<string, GenericRelation | GenericTable> & Record<string, unknown>\n>\n\nexport type GenericPgColumn = PgColumn<\n ColumnBaseConfig<ColumnDataType, string>,\n Record<string, unknown>\n>\n\nexport type GenericColumns<T> = {\n [x: string]: T\n}\n\ntype GenericPgTable = PgTable<{\n columns: GenericColumns<GenericPgColumn>\n dialect: string\n name: string\n schema: undefined\n}>\n\ntype GenericSQLiteTable = SQLiteTable<{\n columns: GenericColumns<SQLiteColumn>\n dialect: string\n name: string\n schema: undefined\n}>\n\nexport type GenericColumn = GenericPgColumn | SQLiteColumn\n\nexport type GenericTable = GenericPgTable | GenericSQLiteTable\n\nexport type GenericRelation = Relations<string, Record<string, Relation<string>>>\n\nexport type TransactionSQLite = SQLiteTransaction<\n 'async',\n Result<'async', unknown>,\n Record<string, unknown>,\n { tsName: TableRelationalConfig }\n>\nexport type TransactionPg = PgTransaction<\n NodePgQueryResultHKT,\n Record<string, unknown>,\n ExtractTablesWithRelations<Record<string, unknown>>\n>\n\nexport type DrizzleTransaction = TransactionPg | TransactionSQLite\n\nexport type CountDistinct = (args: {\n db: DrizzleTransaction | LibSQLDatabase | PostgresDB\n joins: BuildQueryJoinAliases\n tableName: string\n where: SQL\n}) => Promise<number>\n\nexport type DeleteWhere = (args: {\n db: DrizzleTransaction | LibSQLDatabase | PostgresDB\n tableName: string\n where: SQL\n}) => Promise<void>\n\nexport type DropDatabase = (args: { adapter: DrizzleAdapter }) => Promise<void>\n\nexport type Execute<T> = (args: {\n db?: DrizzleTransaction | LibSQLDatabase | PostgresDB\n drizzle?: LibSQLDatabase | PostgresDB\n raw?: string\n sql?: SQL<unknown>\n}) =>\n | Promise<QueryResult<Record<string, T>>>\n | SQLiteRaw<Promise<{ rows: T[] }>>\n | SQLiteRaw<ResultSet>\n\nexport type Insert = (args: {\n db: DrizzleTransaction | LibSQLDatabase | PostgresDB\n onConflictDoUpdate?: unknown\n tableName: string\n values: Record<string, unknown> | Record<string, unknown>[]\n}) => Promise<Record<string, unknown>[]>\n\nexport type RequireDrizzleKit = () => {\n generateDrizzleJson: (args: { schema: Record<string, unknown> }) => unknown\n pushSchema: (\n schema: Record<string, unknown>,\n drizzle: DrizzleAdapter['drizzle'],\n filterSchema?: string[],\n tablesFilter?: string[],\n extensionsFilter?: string[],\n ) => Promise<{ apply; hasDataLoss; warnings }>\n}\n\nexport type Migration = {\n down: ({\n db,\n payload,\n req,\n }: {\n db?: DrizzleTransaction | LibSQLDatabase<Record<string, never>> | PostgresDB\n payload: Payload\n req: PayloadRequest\n }) => Promise<void>\n up: ({\n db,\n payload,\n req,\n }: {\n db?: DrizzleTransaction | LibSQLDatabase | PostgresDB\n payload: Payload\n req: PayloadRequest\n }) => Promise<void>\n} & MigrationData\n\nexport type CreateJSONQueryArgs = {\n column?: Column | string\n operator: string\n pathSegments: string[]\n table?: string\n treatAsArray?: string[]\n treatRootAsArray?: boolean\n value: boolean | number | string\n}\n\nexport interface DrizzleAdapter extends BaseDatabaseAdapter {\n convertPathToJSONTraversal?: (incomingSegments: string[]) => string\n countDistinct: CountDistinct\n createJSONQuery: (args: CreateJSONQueryArgs) => string\n defaultDrizzleSnapshot: Record<string, unknown>\n deleteWhere: DeleteWhere\n drizzle: LibSQLDatabase | PostgresDB\n dropDatabase: DropDatabase\n enums?: never | Record<string, unknown>\n execute: Execute<unknown>\n\n features: {\n json?: boolean\n }\n /**\n * An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name\n * Used for returning properly formed errors from unique fields\n */\n fieldConstraints: Record<string, Record<string, string>>\n getMigrationTemplate: (args: MigrationTemplateArgs) => string\n idType: 'serial' | 'uuid'\n indexes: Set<string>\n initializing: Promise<void>\n insert: Insert\n localesSuffix?: string\n logger: DrizzleConfig['logger']\n operators: Operators\n push: boolean\n rejectInitializing: () => void\n relations: Record<string, GenericRelation>\n relationshipsSuffix?: string\n requireDrizzleKit: RequireDrizzleKit\n resolveInitializing: () => void\n schema: Record<string, unknown>\n\n schemaName?: string\n sessions: {\n [id: string]: {\n db: DrizzleTransaction\n reject: () => Promise<void>\n resolve: () => Promise<void>\n }\n }\n tableNameMap: Map<string, string>\n tables: Record<string, any>\n transactionOptions: unknown\n versionsSuffix?: string\n}\n"],"names":[],"mappings":"AAgKA,WA+CC"}
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAUxC,eAAO,MAAM,SAAS,EAAE,SA4CvB,CAAA"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAUxC,eAAO,MAAM,SAAS,EAAE,SA8CvB,CAAA"}
package/dist/update.js CHANGED
@@ -2,7 +2,7 @@ import toSnakeCase from 'to-snake-case';
2
2
  import buildQuery from './queries/buildQuery.js';
3
3
  import { selectDistinct } from './queries/selectDistinct.js';
4
4
  import { upsertRow } from './upsertRow/index.js';
5
- export const updateOne = async function updateOne({ id, collection: collectionSlug, data, draft, locale, req, where: whereArg }) {
5
+ export const updateOne = async function updateOne({ id, collection: collectionSlug, data, joins: joinQuery, locale, req, select, where: whereArg }) {
6
6
  const db = this.sessions[await req?.transactionID]?.db || this.drizzle;
7
7
  const collection = this.payload.collections[collectionSlug].config;
8
8
  const tableName = this.tableNameMap.get(toSnakeCase(collection.slug));
@@ -12,7 +12,7 @@ export const updateOne = async function updateOne({ id, collection: collectionSl
12
12
  }
13
13
  };
14
14
  let idToUpdate = id;
15
- const { joins, selectFields, where } = await buildQuery({
15
+ const { joins, selectFields, where } = buildQuery({
16
16
  adapter: this,
17
17
  fields: collection.fields,
18
18
  locale,
@@ -44,8 +44,10 @@ export const updateOne = async function updateOne({ id, collection: collectionSl
44
44
  data,
45
45
  db,
46
46
  fields: collection.fields,
47
+ joinQuery,
47
48
  operation: 'update',
48
49
  req,
50
+ select,
49
51
  tableName
50
52
  });
51
53
  return result;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/update.ts"],"sourcesContent":["import type { UpdateOne } from 'payload'\n\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport buildQuery from './queries/buildQuery.js'\nimport { selectDistinct } from './queries/selectDistinct.js'\nimport { upsertRow } from './upsertRow/index.js'\n\nexport const updateOne: UpdateOne = async function updateOne(\n this: DrizzleAdapter,\n { id, collection: collectionSlug, data, draft, locale, req, where: whereArg },\n) {\n const db = this.sessions[await req?.transactionID]?.db || this.drizzle\n const collection = this.payload.collections[collectionSlug].config\n const tableName = this.tableNameMap.get(toSnakeCase(collection.slug))\n const whereToUse = whereArg || { id: { equals: id } }\n let idToUpdate = id\n\n const { joins, selectFields, where } = await buildQuery({\n adapter: this,\n fields: collection.fields,\n locale,\n tableName,\n where: whereToUse,\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 idToUpdate = selectDistinctResult?.[0]?.id\n }\n\n const result = await upsertRow({\n id: idToUpdate,\n adapter: this,\n data,\n db,\n fields: collection.fields,\n operation: 'update',\n req,\n tableName,\n })\n\n return result\n}\n"],"names":["toSnakeCase","buildQuery","selectDistinct","upsertRow","updateOne","id","collection","collectionSlug","data","draft","locale","req","where","whereArg","db","sessions","transactionID","drizzle","payload","collections","config","tableName","tableNameMap","get","slug","whereToUse","equals","idToUpdate","joins","selectFields","adapter","fields","selectDistinctResult","chainedMethods","args","method","result","operation"],"mappings":"AAEA,OAAOA,iBAAiB,gBAAe;AAIvC,OAAOC,gBAAgB,0BAAyB;AAChD,SAASC,cAAc,QAAQ,8BAA6B;AAC5D,SAASC,SAAS,QAAQ,uBAAsB;AAEhD,OAAO,MAAMC,YAAuB,eAAeA,UAEjD,EAAEC,EAAE,EAAEC,YAAYC,cAAc,EAAEC,IAAI,EAAEC,KAAK,EAAEC,MAAM,EAAEC,GAAG,EAAEC,OAAOC,QAAQ,EAAE;IAE7E,MAAMC,KAAK,IAAI,CAACC,QAAQ,CAAC,MAAMJ,KAAKK,cAAc,EAAEF,MAAM,IAAI,CAACG,OAAO;IACtE,MAAMX,aAAa,IAAI,CAACY,OAAO,CAACC,WAAW,CAACZ,eAAe,CAACa,MAAM;IAClE,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAACvB,YAAYM,WAAWkB,IAAI;IACnE,MAAMC,aAAaZ,YAAY;QAAER,IAAI;YAAEqB,QAAQrB;QAAG;IAAE;IACpD,IAAIsB,aAAatB;IAEjB,MAAM,EAAEuB,KAAK,EAAEC,YAAY,EAAEjB,KAAK,EAAE,GAAG,MAAMX,WAAW;QACtD6B,SAAS,IAAI;QACbC,QAAQzB,WAAWyB,MAAM;QACzBrB;QACAW;QACAT,OAAOa;IACT;IAEA,MAAMO,uBAAuB,MAAM9B,eAAe;QAChD4B,SAAS,IAAI;QACbG,gBAAgB;YAAC;gBAAEC,MAAM;oBAAC;iBAAE;gBAAEC,QAAQ;YAAQ;SAAE;QAChDrB;QACAc;QACAC;QACAR;QACAT;IACF;IAEA,IAAIoB,sBAAsB,CAAC,EAAE,EAAE3B,IAAI;QACjCsB,aAAaK,sBAAsB,CAAC,EAAE,EAAE3B;IAC1C;IAEA,MAAM+B,SAAS,MAAMjC,UAAU;QAC7BE,IAAIsB;QACJG,SAAS,IAAI;QACbtB;QACAM;QACAiB,QAAQzB,WAAWyB,MAAM;QACzBM,WAAW;QACX1B;QACAU;IACF;IAEA,OAAOe;AACT,EAAC"}
1
+ {"version":3,"sources":["../src/update.ts"],"sourcesContent":["import type { UpdateOne } from 'payload'\n\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport buildQuery from './queries/buildQuery.js'\nimport { selectDistinct } from './queries/selectDistinct.js'\nimport { upsertRow } from './upsertRow/index.js'\n\nexport const updateOne: UpdateOne = async function updateOne(\n this: DrizzleAdapter,\n { id, collection: collectionSlug, data, joins: joinQuery, locale, req, select, where: whereArg },\n) {\n const db = this.sessions[await req?.transactionID]?.db || this.drizzle\n const collection = this.payload.collections[collectionSlug].config\n const tableName = this.tableNameMap.get(toSnakeCase(collection.slug))\n const whereToUse = whereArg || { id: { equals: id } }\n let idToUpdate = id\n\n const { joins, selectFields, where } = buildQuery({\n adapter: this,\n fields: collection.fields,\n locale,\n tableName,\n where: whereToUse,\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 idToUpdate = selectDistinctResult?.[0]?.id\n }\n\n const result = await upsertRow({\n id: idToUpdate,\n adapter: this,\n data,\n db,\n fields: collection.fields,\n joinQuery,\n operation: 'update',\n req,\n select,\n tableName,\n })\n\n return result\n}\n"],"names":["toSnakeCase","buildQuery","selectDistinct","upsertRow","updateOne","id","collection","collectionSlug","data","joins","joinQuery","locale","req","select","where","whereArg","db","sessions","transactionID","drizzle","payload","collections","config","tableName","tableNameMap","get","slug","whereToUse","equals","idToUpdate","selectFields","adapter","fields","selectDistinctResult","chainedMethods","args","method","result","operation"],"mappings":"AAEA,OAAOA,iBAAiB,gBAAe;AAIvC,OAAOC,gBAAgB,0BAAyB;AAChD,SAASC,cAAc,QAAQ,8BAA6B;AAC5D,SAASC,SAAS,QAAQ,uBAAsB;AAEhD,OAAO,MAAMC,YAAuB,eAAeA,UAEjD,EAAEC,EAAE,EAAEC,YAAYC,cAAc,EAAEC,IAAI,EAAEC,OAAOC,SAAS,EAAEC,MAAM,EAAEC,GAAG,EAAEC,MAAM,EAAEC,OAAOC,QAAQ,EAAE;IAEhG,MAAMC,KAAK,IAAI,CAACC,QAAQ,CAAC,MAAML,KAAKM,cAAc,EAAEF,MAAM,IAAI,CAACG,OAAO;IACtE,MAAMb,aAAa,IAAI,CAACc,OAAO,CAACC,WAAW,CAACd,eAAe,CAACe,MAAM;IAClE,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAACzB,YAAYM,WAAWoB,IAAI;IACnE,MAAMC,aAAaZ,YAAY;QAAEV,IAAI;YAAEuB,QAAQvB;QAAG;IAAE;IACpD,IAAIwB,aAAaxB;IAEjB,MAAM,EAAEI,KAAK,EAAEqB,YAAY,EAAEhB,KAAK,EAAE,GAAGb,WAAW;QAChD8B,SAAS,IAAI;QACbC,QAAQ1B,WAAW0B,MAAM;QACzBrB;QACAY;QACAT,OAAOa;IACT;IAEA,MAAMM,uBAAuB,MAAM/B,eAAe;QAChD6B,SAAS,IAAI;QACbG,gBAAgB;YAAC;gBAAEC,MAAM;oBAAC;iBAAE;gBAAEC,QAAQ;YAAQ;SAAE;QAChDpB;QACAP;QACAqB;QACAP;QACAT;IACF;IAEA,IAAImB,sBAAsB,CAAC,EAAE,EAAE5B,IAAI;QACjCwB,aAAaI,sBAAsB,CAAC,EAAE,EAAE5B;IAC1C;IAEA,MAAMgC,SAAS,MAAMlC,UAAU;QAC7BE,IAAIwB;QACJE,SAAS,IAAI;QACbvB;QACAQ;QACAgB,QAAQ1B,WAAW0B,MAAM;QACzBtB;QACA4B,WAAW;QACX1B;QACAC;QACAU;IACF;IAEA,OAAOc;AACT,EAAC"}
@@ -1,4 +1,4 @@
1
1
  import type { UpdateGlobalArgs } from 'payload';
2
2
  import type { DrizzleAdapter } from './types.js';
3
- export declare function updateGlobal<T extends Record<string, unknown>>(this: DrizzleAdapter, { slug, data, req }: UpdateGlobalArgs): Promise<T>;
3
+ export declare function updateGlobal<T extends Record<string, unknown>>(this: DrizzleAdapter, { slug, data, req, select }: UpdateGlobalArgs): Promise<T>;
4
4
  //# sourceMappingURL=updateGlobal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"updateGlobal.d.ts","sourceRoot":"","sources":["../src/updateGlobal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAI/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAIhD,wBAAsB,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,IAAI,EAAE,cAAc,EACpB,EAAE,IAAI,EAAE,IAAI,EAAE,GAA0B,EAAE,EAAE,gBAAgB,GAC3D,OAAO,CAAC,CAAC,CAAC,CAkBZ"}
1
+ {"version":3,"file":"updateGlobal.d.ts","sourceRoot":"","sources":["../src/updateGlobal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAI/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAIhD,wBAAsB,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,IAAI,EAAE,cAAc,EACpB,EAAE,IAAI,EAAE,IAAI,EAAE,GAA0B,EAAE,MAAM,EAAE,EAAE,gBAAgB,GACnE,OAAO,CAAC,CAAC,CAAC,CAmBZ"}
@@ -1,6 +1,6 @@
1
1
  import toSnakeCase from 'to-snake-case';
2
2
  import { upsertRow } from './upsertRow/index.js';
3
- export async function updateGlobal({ slug, data, req = {} }) {
3
+ export async function updateGlobal({ slug, data, req = {}, select }) {
4
4
  const db = this.sessions[await req?.transactionID]?.db || this.drizzle;
5
5
  const globalConfig = this.payload.globals.config.find((config)=>config.slug === slug);
6
6
  const tableName = this.tableNameMap.get(toSnakeCase(globalConfig.slug));
@@ -17,6 +17,7 @@ export async function updateGlobal({ slug, data, req = {} }) {
17
17
  db,
18
18
  fields: globalConfig.fields,
19
19
  req,
20
+ select,
20
21
  tableName
21
22
  });
22
23
  return result;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/updateGlobal.ts"],"sourcesContent":["import type { PayloadRequest, UpdateGlobalArgs } from 'payload'\n\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { upsertRow } from './upsertRow/index.js'\n\nexport async function updateGlobal<T extends Record<string, unknown>>(\n this: DrizzleAdapter,\n { slug, data, req = {} as PayloadRequest }: UpdateGlobalArgs,\n): Promise<T> {\n const db = this.sessions[await req?.transactionID]?.db || this.drizzle\n const globalConfig = this.payload.globals.config.find((config) => config.slug === slug)\n const tableName = this.tableNameMap.get(toSnakeCase(globalConfig.slug))\n\n const existingGlobal = await db.query[tableName].findFirst({})\n\n const result = await upsertRow<T>({\n ...(existingGlobal ? { id: existingGlobal.id, operation: 'update' } : { operation: 'create' }),\n adapter: this,\n data,\n db,\n fields: globalConfig.fields,\n req,\n tableName,\n })\n\n return result\n}\n"],"names":["toSnakeCase","upsertRow","updateGlobal","slug","data","req","db","sessions","transactionID","drizzle","globalConfig","payload","globals","config","find","tableName","tableNameMap","get","existingGlobal","query","findFirst","result","id","operation","adapter","fields"],"mappings":"AAEA,OAAOA,iBAAiB,gBAAe;AAIvC,SAASC,SAAS,QAAQ,uBAAsB;AAEhD,OAAO,eAAeC,aAEpB,EAAEC,IAAI,EAAEC,IAAI,EAAEC,MAAM,CAAC,CAAmB,EAAoB;IAE5D,MAAMC,KAAK,IAAI,CAACC,QAAQ,CAAC,MAAMF,KAAKG,cAAc,EAAEF,MAAM,IAAI,CAACG,OAAO;IACtE,MAAMC,eAAe,IAAI,CAACC,OAAO,CAACC,OAAO,CAACC,MAAM,CAACC,IAAI,CAAC,CAACD,SAAWA,OAAOV,IAAI,KAAKA;IAClF,MAAMY,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAACjB,YAAYU,aAAaP,IAAI;IAErE,MAAMe,iBAAiB,MAAMZ,GAAGa,KAAK,CAACJ,UAAU,CAACK,SAAS,CAAC,CAAC;IAE5D,MAAMC,SAAS,MAAMpB,UAAa;QAChC,GAAIiB,iBAAiB;YAAEI,IAAIJ,eAAeI,EAAE;YAAEC,WAAW;QAAS,IAAI;YAAEA,WAAW;QAAS,CAAC;QAC7FC,SAAS,IAAI;QACbpB;QACAE;QACAmB,QAAQf,aAAae,MAAM;QAC3BpB;QACAU;IACF;IAEA,OAAOM;AACT"}
1
+ {"version":3,"sources":["../src/updateGlobal.ts"],"sourcesContent":["import type { PayloadRequest, UpdateGlobalArgs } from 'payload'\n\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { upsertRow } from './upsertRow/index.js'\n\nexport async function updateGlobal<T extends Record<string, unknown>>(\n this: DrizzleAdapter,\n { slug, data, req = {} as PayloadRequest, select }: UpdateGlobalArgs,\n): Promise<T> {\n const db = this.sessions[await req?.transactionID]?.db || this.drizzle\n const globalConfig = this.payload.globals.config.find((config) => config.slug === slug)\n const tableName = this.tableNameMap.get(toSnakeCase(globalConfig.slug))\n\n const existingGlobal = await db.query[tableName].findFirst({})\n\n const result = await upsertRow<T>({\n ...(existingGlobal ? { id: existingGlobal.id, operation: 'update' } : { operation: 'create' }),\n adapter: this,\n data,\n db,\n fields: globalConfig.fields,\n req,\n select,\n tableName,\n })\n\n return result\n}\n"],"names":["toSnakeCase","upsertRow","updateGlobal","slug","data","req","select","db","sessions","transactionID","drizzle","globalConfig","payload","globals","config","find","tableName","tableNameMap","get","existingGlobal","query","findFirst","result","id","operation","adapter","fields"],"mappings":"AAEA,OAAOA,iBAAiB,gBAAe;AAIvC,SAASC,SAAS,QAAQ,uBAAsB;AAEhD,OAAO,eAAeC,aAEpB,EAAEC,IAAI,EAAEC,IAAI,EAAEC,MAAM,CAAC,CAAmB,EAAEC,MAAM,EAAoB;IAEpE,MAAMC,KAAK,IAAI,CAACC,QAAQ,CAAC,MAAMH,KAAKI,cAAc,EAAEF,MAAM,IAAI,CAACG,OAAO;IACtE,MAAMC,eAAe,IAAI,CAACC,OAAO,CAACC,OAAO,CAACC,MAAM,CAACC,IAAI,CAAC,CAACD,SAAWA,OAAOX,IAAI,KAAKA;IAClF,MAAMa,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAAClB,YAAYW,aAAaR,IAAI;IAErE,MAAMgB,iBAAiB,MAAMZ,GAAGa,KAAK,CAACJ,UAAU,CAACK,SAAS,CAAC,CAAC;IAE5D,MAAMC,SAAS,MAAMrB,UAAa;QAChC,GAAIkB,iBAAiB;YAAEI,IAAIJ,eAAeI,EAAE;YAAEC,WAAW;QAAS,IAAI;YAAEA,WAAW;QAAS,CAAC;QAC7FC,SAAS,IAAI;QACbrB;QACAG;QACAmB,QAAQf,aAAae,MAAM;QAC3BrB;QACAC;QACAU;IACF;IAEA,OAAOM;AACT"}
@@ -1,4 +1,4 @@
1
1
  import type { TypeWithID, TypeWithVersion, UpdateGlobalVersionArgs } from 'payload';
2
2
  import type { DrizzleAdapter } from './types.js';
3
- export declare function updateGlobalVersion<T extends TypeWithID>(this: DrizzleAdapter, { id, global, locale, req, versionData, where: whereArg, }: UpdateGlobalVersionArgs<T>): Promise<TypeWithVersion<T>>;
3
+ export declare function updateGlobalVersion<T extends TypeWithID>(this: DrizzleAdapter, { id, global, locale, req, select, versionData, where: whereArg, }: UpdateGlobalVersionArgs<T>): Promise<TypeWithVersion<T>>;
4
4
  //# sourceMappingURL=updateGlobalVersion.d.ts.map