@payloadcms/drizzle 3.0.0-canary.483db21 → 3.0.0-canary.4eb1bfc

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 (284) 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/createGlobalVersion.d.ts +1 -1
  5. package/dist/createGlobalVersion.d.ts.map +1 -1
  6. package/dist/createGlobalVersion.js +4 -2
  7. package/dist/createGlobalVersion.js.map +1 -1
  8. package/dist/createTableName.d.ts.map +1 -1
  9. package/dist/createTableName.js +6 -2
  10. package/dist/createTableName.js.map +1 -1
  11. package/dist/createVersion.d.ts +1 -1
  12. package/dist/createVersion.d.ts.map +1 -1
  13. package/dist/createVersion.js +22 -14
  14. package/dist/createVersion.js.map +1 -1
  15. package/dist/deleteOne.d.ts.map +1 -1
  16. package/dist/deleteOne.js +5 -3
  17. package/dist/deleteOne.js.map +1 -1
  18. package/dist/deleteVersions.js +1 -1
  19. package/dist/deleteVersions.js.map +1 -1
  20. package/dist/destroy.d.ts.map +1 -1
  21. package/dist/destroy.js +3 -1
  22. package/dist/destroy.js.map +1 -1
  23. package/dist/exports/postgres.d.ts +14 -0
  24. package/dist/exports/postgres.d.ts.map +1 -0
  25. package/dist/exports/postgres.js +15 -0
  26. package/dist/exports/postgres.js.map +1 -0
  27. package/dist/find/buildFindManyArgs.d.ts +13 -7
  28. package/dist/find/buildFindManyArgs.d.ts.map +1 -1
  29. package/dist/find/buildFindManyArgs.js +5 -1
  30. package/dist/find/buildFindManyArgs.js.map +1 -1
  31. package/dist/find/findMany.d.ts +1 -1
  32. package/dist/find/findMany.d.ts.map +1 -1
  33. package/dist/find/findMany.js +6 -3
  34. package/dist/find/findMany.js.map +1 -1
  35. package/dist/find/traverseFields.d.ts +7 -3
  36. package/dist/find/traverseFields.d.ts.map +1 -1
  37. package/dist/find/traverseFields.js +91 -16
  38. package/dist/find/traverseFields.js.map +1 -1
  39. package/dist/find.d.ts.map +1 -1
  40. package/dist/find.js +2 -1
  41. package/dist/find.js.map +1 -1
  42. package/dist/findGlobalVersions.js +1 -1
  43. package/dist/findGlobalVersions.js.map +1 -1
  44. package/dist/findMigrationDir.d.ts.map +1 -1
  45. package/dist/findMigrationDir.js +3 -1
  46. package/dist/findMigrationDir.js.map +1 -1
  47. package/dist/findOne.d.ts +1 -1
  48. package/dist/findOne.d.ts.map +1 -1
  49. package/dist/findOne.js +2 -1
  50. package/dist/findOne.js.map +1 -1
  51. package/dist/findVersions.js +1 -1
  52. package/dist/findVersions.js.map +1 -1
  53. package/dist/index.d.ts +2 -0
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +2 -0
  56. package/dist/index.js.map +1 -1
  57. package/dist/migrate.js +2 -7
  58. package/dist/migrate.js.map +1 -1
  59. package/dist/migrateDown.d.ts.map +1 -1
  60. package/dist/migrateDown.js +1 -1
  61. package/dist/migrateDown.js.map +1 -1
  62. package/dist/migrateFresh.d.ts.map +1 -1
  63. package/dist/migrateFresh.js +1 -0
  64. package/dist/migrateFresh.js.map +1 -1
  65. package/dist/migrateRefresh.d.ts.map +1 -1
  66. package/dist/migrateRefresh.js +2 -1
  67. package/dist/migrateRefresh.js.map +1 -1
  68. package/dist/migrateReset.d.ts.map +1 -1
  69. package/dist/migrateReset.js +4 -2
  70. package/dist/migrateReset.js.map +1 -1
  71. package/dist/migrateStatus.js +0 -1
  72. package/dist/migrateStatus.js.map +1 -1
  73. package/dist/postgres/countDistinct.d.ts +3 -0
  74. package/dist/postgres/countDistinct.d.ts.map +1 -0
  75. package/dist/postgres/countDistinct.js +24 -0
  76. package/dist/postgres/countDistinct.js.map +1 -0
  77. package/dist/postgres/createJSONQuery/convertPathToJSONTraversal.d.ts +2 -0
  78. package/dist/postgres/createJSONQuery/convertPathToJSONTraversal.d.ts.map +1 -0
  79. package/dist/postgres/createJSONQuery/convertPathToJSONTraversal.js +16 -0
  80. package/dist/postgres/createJSONQuery/convertPathToJSONTraversal.js.map +1 -0
  81. package/dist/postgres/createJSONQuery/formatJSONPathSegment.d.ts +2 -0
  82. package/dist/postgres/createJSONQuery/formatJSONPathSegment.d.ts.map +1 -0
  83. package/dist/postgres/createJSONQuery/formatJSONPathSegment.js +5 -0
  84. package/dist/postgres/createJSONQuery/formatJSONPathSegment.js.map +1 -0
  85. package/dist/postgres/createJSONQuery/index.d.ts +10 -0
  86. package/dist/postgres/createJSONQuery/index.d.ts.map +1 -0
  87. package/dist/postgres/createJSONQuery/index.js +54 -0
  88. package/dist/postgres/createJSONQuery/index.js.map +1 -0
  89. package/dist/postgres/createMigration.d.ts +3 -0
  90. package/dist/postgres/createMigration.d.ts.map +1 -0
  91. package/dist/postgres/createMigration.js +92 -0
  92. package/dist/postgres/createMigration.js.map +1 -0
  93. package/dist/postgres/defaultSnapshot.d.ts +3 -0
  94. package/dist/postgres/defaultSnapshot.d.ts.map +1 -0
  95. package/dist/postgres/defaultSnapshot.js +17 -0
  96. package/dist/postgres/defaultSnapshot.js.map +1 -0
  97. package/dist/postgres/deleteWhere.d.ts +3 -0
  98. package/dist/postgres/deleteWhere.d.ts.map +1 -0
  99. package/dist/postgres/deleteWhere.js +6 -0
  100. package/dist/postgres/deleteWhere.js.map +1 -0
  101. package/dist/postgres/dropDatabase.d.ts +3 -0
  102. package/dist/postgres/dropDatabase.d.ts.map +1 -0
  103. package/dist/postgres/dropDatabase.js +9 -0
  104. package/dist/postgres/dropDatabase.js.map +1 -0
  105. package/dist/postgres/execute.d.ts +3 -0
  106. package/dist/postgres/execute.d.ts.map +1 -0
  107. package/dist/postgres/execute.js +11 -0
  108. package/dist/postgres/execute.js.map +1 -0
  109. package/dist/postgres/getMigrationTemplate.d.ts +4 -0
  110. package/dist/postgres/getMigrationTemplate.d.ts.map +1 -0
  111. package/dist/postgres/getMigrationTemplate.js +13 -0
  112. package/dist/postgres/getMigrationTemplate.js.map +1 -0
  113. package/dist/postgres/init.d.ts +3 -0
  114. package/dist/postgres/init.d.ts.map +1 -0
  115. package/dist/postgres/init.js +104 -0
  116. package/dist/postgres/init.js.map +1 -0
  117. package/dist/postgres/insert.d.ts +3 -0
  118. package/dist/postgres/insert.d.ts.map +1 -0
  119. package/dist/postgres/insert.js +12 -0
  120. package/dist/postgres/insert.js.map +1 -0
  121. package/dist/postgres/requireDrizzleKit.d.ts +3 -0
  122. package/dist/postgres/requireDrizzleKit.d.ts.map +1 -0
  123. package/dist/postgres/requireDrizzleKit.js +5 -0
  124. package/dist/postgres/requireDrizzleKit.js.map +1 -0
  125. package/dist/postgres/schema/build.d.ts +40 -0
  126. package/dist/postgres/schema/build.d.ts.map +1 -0
  127. package/dist/postgres/schema/build.js +378 -0
  128. package/dist/postgres/schema/build.js.map +1 -0
  129. package/dist/postgres/schema/createIndex.d.ts +12 -0
  130. package/dist/postgres/schema/createIndex.d.ts.map +1 -0
  131. package/dist/postgres/schema/createIndex.js +20 -0
  132. package/dist/postgres/schema/createIndex.js.map +1 -0
  133. package/dist/postgres/schema/idToUUID.d.ts +3 -0
  134. package/dist/postgres/schema/idToUUID.d.ts.map +1 -0
  135. package/dist/postgres/schema/idToUUID.js +11 -0
  136. package/dist/postgres/schema/idToUUID.js.map +1 -0
  137. package/dist/postgres/schema/parentIDColumnMap.d.ts +4 -0
  138. package/dist/postgres/schema/parentIDColumnMap.d.ts.map +1 -0
  139. package/dist/postgres/schema/parentIDColumnMap.js +9 -0
  140. package/dist/postgres/schema/parentIDColumnMap.js.map +1 -0
  141. package/dist/postgres/schema/setColumnID.d.ts +11 -0
  142. package/dist/postgres/schema/setColumnID.d.ts.map +1 -0
  143. package/dist/postgres/schema/setColumnID.js +24 -0
  144. package/dist/postgres/schema/setColumnID.js.map +1 -0
  145. package/dist/postgres/schema/traverseFields.d.ts +40 -0
  146. package/dist/postgres/schema/traverseFields.d.ts.map +1 -0
  147. package/dist/postgres/schema/traverseFields.js +733 -0
  148. package/dist/postgres/schema/traverseFields.js.map +1 -0
  149. package/dist/postgres/schema/withDefault.d.ts +4 -0
  150. package/dist/postgres/schema/withDefault.d.ts.map +1 -0
  151. package/dist/postgres/schema/withDefault.js +12 -0
  152. package/dist/postgres/schema/withDefault.js.map +1 -0
  153. package/dist/postgres/types.d.ts +126 -0
  154. package/dist/postgres/types.d.ts.map +1 -0
  155. package/dist/postgres/types.js +3 -0
  156. package/dist/postgres/types.js.map +1 -0
  157. package/dist/queries/buildAndOrConditions.d.ts +1 -1
  158. package/dist/queries/buildAndOrConditions.d.ts.map +1 -1
  159. package/dist/queries/buildAndOrConditions.js +2 -4
  160. package/dist/queries/buildAndOrConditions.js.map +1 -1
  161. package/dist/queries/buildOrderBy.d.ts +18 -0
  162. package/dist/queries/buildOrderBy.d.ts.map +1 -0
  163. package/dist/queries/buildOrderBy.js +52 -0
  164. package/dist/queries/buildOrderBy.js.map +1 -0
  165. package/dist/queries/buildQuery.d.ts +4 -4
  166. package/dist/queries/buildQuery.d.ts.map +1 -1
  167. package/dist/queries/buildQuery.js +12 -47
  168. package/dist/queries/buildQuery.js.map +1 -1
  169. package/dist/queries/getTableColumnFromPath.d.ts +8 -3
  170. package/dist/queries/getTableColumnFromPath.d.ts.map +1 -1
  171. package/dist/queries/getTableColumnFromPath.js +73 -23
  172. package/dist/queries/getTableColumnFromPath.js.map +1 -1
  173. package/dist/queries/operatorMap.d.ts.map +1 -1
  174. package/dist/queries/operatorMap.js.map +1 -1
  175. package/dist/queries/parseParams.d.ts +1 -1
  176. package/dist/queries/parseParams.d.ts.map +1 -1
  177. package/dist/queries/parseParams.js +52 -6
  178. package/dist/queries/parseParams.js.map +1 -1
  179. package/dist/queries/sanitizeQueryValue.d.ts +12 -1
  180. package/dist/queries/sanitizeQueryValue.d.ts.map +1 -1
  181. package/dist/queries/sanitizeQueryValue.js +77 -21
  182. package/dist/queries/sanitizeQueryValue.js.map +1 -1
  183. package/dist/queries/selectDistinct.d.ts +3 -4
  184. package/dist/queries/selectDistinct.d.ts.map +1 -1
  185. package/dist/queries/selectDistinct.js.map +1 -1
  186. package/dist/queryDrafts.d.ts.map +1 -1
  187. package/dist/queryDrafts.js +1 -2
  188. package/dist/queryDrafts.js.map +1 -1
  189. package/dist/transactions/beginTransaction.d.ts.map +1 -1
  190. package/dist/transactions/beginTransaction.js +5 -1
  191. package/dist/transactions/beginTransaction.js.map +1 -1
  192. package/dist/transactions/commitTransaction.d.ts.map +1 -1
  193. package/dist/transactions/commitTransaction.js +3 -1
  194. package/dist/transactions/commitTransaction.js.map +1 -1
  195. package/dist/transform/read/hasManyNumber.d.ts +2 -1
  196. package/dist/transform/read/hasManyNumber.d.ts.map +1 -1
  197. package/dist/transform/read/hasManyNumber.js +12 -2
  198. package/dist/transform/read/hasManyNumber.js.map +1 -1
  199. package/dist/transform/read/hasManyText.d.ts +2 -1
  200. package/dist/transform/read/hasManyText.d.ts.map +1 -1
  201. package/dist/transform/read/hasManyText.js +12 -2
  202. package/dist/transform/read/hasManyText.js.map +1 -1
  203. package/dist/transform/read/index.d.ts +3 -2
  204. package/dist/transform/read/index.d.ts.map +1 -1
  205. package/dist/transform/read/index.js +3 -2
  206. package/dist/transform/read/index.js.map +1 -1
  207. package/dist/transform/read/relationship.d.ts +2 -1
  208. package/dist/transform/read/relationship.d.ts.map +1 -1
  209. package/dist/transform/read/relationship.js +15 -6
  210. package/dist/transform/read/relationship.js.map +1 -1
  211. package/dist/transform/read/traverseFields.d.ts +10 -2
  212. package/dist/transform/read/traverseFields.d.ts.map +1 -1
  213. package/dist/transform/read/traverseFields.js +163 -55
  214. package/dist/transform/read/traverseFields.js.map +1 -1
  215. package/dist/transform/write/array.d.ts +6 -1
  216. package/dist/transform/write/array.d.ts.map +1 -1
  217. package/dist/transform/write/array.js +7 -3
  218. package/dist/transform/write/array.js.map +1 -1
  219. package/dist/transform/write/blocks.d.ts +8 -3
  220. package/dist/transform/write/blocks.d.ts.map +1 -1
  221. package/dist/transform/write/blocks.js +19 -7
  222. package/dist/transform/write/blocks.js.map +1 -1
  223. package/dist/transform/write/index.d.ts.map +1 -1
  224. package/dist/transform/write/index.js +1 -1
  225. package/dist/transform/write/index.js.map +1 -1
  226. package/dist/transform/write/relationships.d.ts.map +1 -1
  227. package/dist/transform/write/relationships.js +6 -2
  228. package/dist/transform/write/relationships.js.map +1 -1
  229. package/dist/transform/write/selects.d.ts.map +1 -1
  230. package/dist/transform/write/selects.js +1 -1
  231. package/dist/transform/write/selects.js.map +1 -1
  232. package/dist/transform/write/traverseFields.d.ts +6 -1
  233. package/dist/transform/write/traverseFields.d.ts.map +1 -1
  234. package/dist/transform/write/traverseFields.js +46 -17
  235. package/dist/transform/write/traverseFields.js.map +1 -1
  236. package/dist/types.d.ts +1 -1
  237. package/dist/types.d.ts.map +1 -1
  238. package/dist/types.js.map +1 -1
  239. package/dist/update.d.ts.map +1 -1
  240. package/dist/update.js +3 -2
  241. package/dist/update.js.map +1 -1
  242. package/dist/updateGlobalVersion.js +2 -2
  243. package/dist/updateGlobalVersion.js.map +1 -1
  244. package/dist/updateVersion.js +2 -2
  245. package/dist/updateVersion.js.map +1 -1
  246. package/dist/upsertRow/deleteExistingRowsByPath.d.ts.map +1 -1
  247. package/dist/upsertRow/deleteExistingRowsByPath.js +6 -2
  248. package/dist/upsertRow/deleteExistingRowsByPath.js.map +1 -1
  249. package/dist/upsertRow/index.d.ts +1 -1
  250. package/dist/upsertRow/index.d.ts.map +1 -1
  251. package/dist/upsertRow/index.js +50 -12
  252. package/dist/upsertRow/index.js.map +1 -1
  253. package/dist/upsertRow/insertArrays.d.ts.map +1 -1
  254. package/dist/upsertRow/insertArrays.js +5 -2
  255. package/dist/upsertRow/insertArrays.js.map +1 -1
  256. package/dist/upsertRow/types.d.ts +8 -5
  257. package/dist/upsertRow/types.d.ts.map +1 -1
  258. package/dist/upsertRow/types.js.map +1 -1
  259. package/dist/utilities/createBlocksMap.d.ts.map +1 -1
  260. package/dist/utilities/createBlocksMap.js +4 -2
  261. package/dist/utilities/createBlocksMap.js.map +1 -1
  262. package/dist/utilities/createRelationshipMap.d.ts.map +1 -1
  263. package/dist/utilities/createRelationshipMap.js +3 -1
  264. package/dist/utilities/createRelationshipMap.js.map +1 -1
  265. package/dist/utilities/executeSchemaHooks.d.ts +24 -0
  266. package/dist/utilities/executeSchemaHooks.d.ts.map +1 -0
  267. package/dist/utilities/executeSchemaHooks.js +21 -0
  268. package/dist/utilities/executeSchemaHooks.js.map +1 -0
  269. package/dist/utilities/extendDrizzleTable.d.ts +19 -0
  270. package/dist/utilities/extendDrizzleTable.d.ts.map +1 -0
  271. package/dist/utilities/extendDrizzleTable.js +38 -0
  272. package/dist/utilities/extendDrizzleTable.js.map +1 -0
  273. package/dist/utilities/getCollectionIdType.d.ts +7 -0
  274. package/dist/utilities/getCollectionIdType.d.ts.map +1 -0
  275. package/dist/utilities/getCollectionIdType.js +11 -0
  276. package/dist/utilities/getCollectionIdType.js.map +1 -0
  277. package/dist/utilities/hasLocalesTable.d.ts.map +1 -1
  278. package/dist/utilities/hasLocalesTable.js +12 -4
  279. package/dist/utilities/hasLocalesTable.js.map +1 -1
  280. package/dist/utilities/isPolymorphicRelationship.d.ts +6 -0
  281. package/dist/utilities/isPolymorphicRelationship.d.ts.map +1 -0
  282. package/dist/utilities/isPolymorphicRelationship.js +5 -0
  283. package/dist/utilities/isPolymorphicRelationship.js.map +1 -0
  284. package/package.json +16 -7
@@ -1,10 +1,10 @@
1
- import { fieldAffectsData } from 'payload/shared';
1
+ import { fieldAffectsData, fieldIsVirtual } from 'payload/shared';
2
2
  import { transformHasManyNumber } from './hasManyNumber.js';
3
3
  import { transformHasManyText } from './hasManyText.js';
4
4
  import { transformRelationship } from './relationship.js';
5
5
  // Traverse fields recursively, transforming data
6
6
  // for each field type into required Payload shape
7
- export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fieldPrefix, fields, numbers, path, relationships, table, texts })=>{
7
+ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fieldPrefix, fields, joinQuery, numbers, path, relationships, table, texts, withinArrayOrBlockLocale })=>{
8
8
  const sanitizedPath = path ? `${path}.` : path;
9
9
  const formatted = fields.reduce((result, field)=>{
10
10
  if (field.type === 'tabs') {
@@ -19,11 +19,13 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
19
19
  ...tab,
20
20
  type: 'tab'
21
21
  })),
22
+ joinQuery,
22
23
  numbers,
23
24
  path,
24
25
  relationships,
25
26
  table,
26
- texts
27
+ texts,
28
+ withinArrayOrBlockLocale
27
29
  });
28
30
  }
29
31
  if (field.type === 'collapsible' || field.type === 'row' || field.type === 'tab' && !('name' in field)) {
@@ -35,14 +37,19 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
35
37
  deletions,
36
38
  fieldPrefix,
37
39
  fields: field.fields,
40
+ joinQuery,
38
41
  numbers,
39
42
  path,
40
43
  relationships,
41
44
  table,
42
- texts
45
+ texts,
46
+ withinArrayOrBlockLocale
43
47
  });
44
48
  }
45
49
  if (fieldAffectsData(field)) {
50
+ if (fieldIsVirtual(field)) {
51
+ return result;
52
+ }
46
53
  const fieldName = `${fieldPrefix || ''}${field.name}`;
47
54
  const fieldData = table[fieldName];
48
55
  const localizedFieldData = {};
@@ -55,7 +62,9 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
55
62
  if (field.localized) {
56
63
  result[field.name] = fieldData.reduce((arrayResult, row)=>{
57
64
  if (typeof row._locale === 'string') {
58
- if (!arrayResult[row._locale]) arrayResult[row._locale] = [];
65
+ if (!arrayResult[row._locale]) {
66
+ arrayResult[row._locale] = [];
67
+ }
59
68
  const locale = row._locale;
60
69
  const data = {};
61
70
  delete row._locale;
@@ -75,7 +84,8 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
75
84
  path: `${sanitizedPath}${field.name}.${row._order - 1}`,
76
85
  relationships,
77
86
  table: row,
78
- texts
87
+ texts,
88
+ withinArrayOrBlockLocale: locale
79
89
  });
80
90
  if ('_order' in rowResult) {
81
91
  delete rowResult._order;
@@ -85,7 +95,7 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
85
95
  return arrayResult;
86
96
  }, {});
87
97
  } else {
88
- result[field.name] = fieldData.map((row, i)=>{
98
+ result[field.name] = fieldData.reduce((acc, row, i)=>{
89
99
  if (row._uuid) {
90
100
  row.id = row._uuid;
91
101
  delete row._uuid;
@@ -93,37 +103,47 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
93
103
  if ('_order' in row) {
94
104
  delete row._order;
95
105
  }
96
- return traverseFields({
97
- adapter,
98
- blocks,
99
- config,
100
- dataRef: row,
101
- deletions,
102
- fieldPrefix: '',
103
- fields: field.fields,
104
- numbers,
105
- path: `${sanitizedPath}${field.name}.${i}`,
106
- relationships,
107
- table: row,
108
- texts
109
- });
110
- });
106
+ if (!withinArrayOrBlockLocale || withinArrayOrBlockLocale && withinArrayOrBlockLocale === row._locale) {
107
+ if (row._locale) {
108
+ delete row._locale;
109
+ }
110
+ acc.push(traverseFields({
111
+ adapter,
112
+ blocks,
113
+ config,
114
+ dataRef: row,
115
+ deletions,
116
+ fieldPrefix: '',
117
+ fields: field.fields,
118
+ numbers,
119
+ path: `${sanitizedPath}${field.name}.${i}`,
120
+ relationships,
121
+ table: row,
122
+ texts,
123
+ withinArrayOrBlockLocale
124
+ }));
125
+ }
126
+ return acc;
127
+ }, []);
111
128
  }
112
129
  }
113
130
  return result;
114
131
  }
115
132
  if (field.type === 'blocks') {
116
133
  const blockFieldPath = `${sanitizedPath}${field.name}`;
117
- if (Array.isArray(blocks[blockFieldPath])) {
134
+ const blocksByPath = blocks[blockFieldPath];
135
+ if (Array.isArray(blocksByPath)) {
118
136
  if (field.localized) {
119
137
  result[field.name] = {};
120
- blocks[blockFieldPath].forEach((row)=>{
138
+ blocksByPath.forEach((row)=>{
121
139
  if (row._uuid) {
122
140
  row.id = row._uuid;
123
141
  delete row._uuid;
124
142
  }
125
143
  if (typeof row._locale === 'string') {
126
- if (!result[field.name][row._locale]) result[field.name][row._locale] = [];
144
+ if (!result[field.name][row._locale]) {
145
+ result[field.name][row._locale] = [];
146
+ }
127
147
  result[field.name][row._locale].push(row);
128
148
  delete row._locale;
129
149
  }
@@ -144,7 +164,8 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
144
164
  path: `${blockFieldPath}.${row._order - 1}`,
145
165
  relationships,
146
166
  table: row,
147
- texts
167
+ texts,
168
+ withinArrayOrBlockLocale: locale
148
169
  });
149
170
  delete blockResult._order;
150
171
  return blockResult;
@@ -153,7 +174,21 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
153
174
  });
154
175
  });
155
176
  } else {
156
- result[field.name] = blocks[blockFieldPath].map((row, i)=>{
177
+ // Add locale-specific index to have a proper blockFieldPath for current locale
178
+ // because blocks can be in the same array for different locales!
179
+ if (withinArrayOrBlockLocale && config.localization) {
180
+ for (const locale of config.localization.localeCodes){
181
+ let localeIndex = 0;
182
+ for(let i = 0; i < blocksByPath.length; i++){
183
+ const row = blocksByPath[i];
184
+ if (row._locale === locale) {
185
+ row._index = localeIndex;
186
+ localeIndex++;
187
+ }
188
+ }
189
+ }
190
+ }
191
+ result[field.name] = blocksByPath.reduce((acc, row, i)=>{
157
192
  delete row._order;
158
193
  if (row._uuid) {
159
194
  row.id = row._uuid;
@@ -161,23 +196,36 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
161
196
  }
162
197
  const block = field.blocks.find(({ slug })=>slug === row.blockType);
163
198
  if (block) {
164
- return traverseFields({
165
- adapter,
166
- blocks,
167
- config,
168
- dataRef: row,
169
- deletions,
170
- fieldPrefix: '',
171
- fields: block.fields,
172
- numbers,
173
- path: `${blockFieldPath}.${i}`,
174
- relationships,
175
- table: row,
176
- texts
177
- });
199
+ if (!withinArrayOrBlockLocale || withinArrayOrBlockLocale && withinArrayOrBlockLocale === row._locale) {
200
+ if (row._locale) {
201
+ delete row._locale;
202
+ }
203
+ if (typeof row._index === 'number') {
204
+ i = row._index;
205
+ delete row._index;
206
+ }
207
+ acc.push(traverseFields({
208
+ adapter,
209
+ blocks,
210
+ config,
211
+ dataRef: row,
212
+ deletions,
213
+ fieldPrefix: '',
214
+ fields: block.fields,
215
+ numbers,
216
+ path: `${blockFieldPath}.${i}`,
217
+ relationships,
218
+ table: row,
219
+ texts,
220
+ withinArrayOrBlockLocale
221
+ }));
222
+ return acc;
223
+ }
224
+ } else {
225
+ acc.push({});
178
226
  }
179
- return {};
180
- });
227
+ return acc;
228
+ }, []);
181
229
  }
182
230
  }
183
231
  return result;
@@ -215,7 +263,9 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
215
263
  const relationsByLocale = {};
216
264
  relationPathMatch.forEach((row)=>{
217
265
  if (typeof row.locale === 'string') {
218
- if (!relationsByLocale[row.locale]) relationsByLocale[row.locale] = [];
266
+ if (!relationsByLocale[row.locale]) {
267
+ relationsByLocale[row.locale] = [];
268
+ }
219
269
  relationsByLocale[row.locale].push(row);
220
270
  }
221
271
  });
@@ -231,21 +281,58 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
231
281
  transformRelationship({
232
282
  field,
233
283
  ref: result,
234
- relations: relationPathMatch
284
+ relations: relationPathMatch,
285
+ withinArrayOrBlockLocale
235
286
  });
236
287
  }
237
288
  return result;
238
289
  }
239
290
  }
291
+ if (field.type === 'join') {
292
+ const { limit = 10 } = joinQuery?.[`${fieldPrefix.replaceAll('_', '.')}${field.name}`] || {};
293
+ let fieldResult;
294
+ if (Array.isArray(fieldData)) {
295
+ if (field.localized) {
296
+ fieldResult = fieldData.reduce((joinResult, row)=>{
297
+ if (typeof row._locale === 'string') {
298
+ if (!joinResult[row._locale]) {
299
+ joinResult[row._locale] = {
300
+ docs: [],
301
+ hasNextPage: false
302
+ };
303
+ }
304
+ joinResult[row._locale].docs.push(row._parentID);
305
+ }
306
+ return joinResult;
307
+ }, {});
308
+ Object.keys(fieldResult).forEach((locale)=>{
309
+ fieldResult[locale].hasNextPage = fieldResult[locale].docs.length > limit;
310
+ fieldResult[locale].docs = fieldResult[locale].docs.slice(0, limit);
311
+ });
312
+ } else {
313
+ const hasNextPage = limit !== 0 && fieldData.length > limit;
314
+ fieldResult = {
315
+ docs: hasNextPage ? fieldData.slice(0, limit) : fieldData,
316
+ hasNextPage
317
+ };
318
+ }
319
+ }
320
+ result[field.name] = fieldResult;
321
+ return result;
322
+ }
240
323
  if (field.type === 'text' && field?.hasMany) {
241
324
  const textPathMatch = texts[`${sanitizedPath}${field.name}`];
242
- if (!textPathMatch) return result;
325
+ if (!textPathMatch) {
326
+ return result;
327
+ }
243
328
  if (field.localized) {
244
329
  result[field.name] = {};
245
330
  const textsByLocale = {};
246
331
  textPathMatch.forEach((row)=>{
247
332
  if (typeof row.locale === 'string') {
248
- if (!textsByLocale[row.locale]) textsByLocale[row.locale] = [];
333
+ if (!textsByLocale[row.locale]) {
334
+ textsByLocale[row.locale] = [];
335
+ }
249
336
  textsByLocale[row.locale].push(row);
250
337
  }
251
338
  });
@@ -261,20 +348,25 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
261
348
  transformHasManyText({
262
349
  field,
263
350
  ref: result,
264
- textRows: textPathMatch
351
+ textRows: textPathMatch,
352
+ withinArrayOrBlockLocale
265
353
  });
266
354
  }
267
355
  return result;
268
356
  }
269
357
  if (field.type === 'number' && field.hasMany) {
270
358
  const numberPathMatch = numbers[`${sanitizedPath}${field.name}`];
271
- if (!numberPathMatch) return result;
359
+ if (!numberPathMatch) {
360
+ return result;
361
+ }
272
362
  if (field.localized) {
273
363
  result[field.name] = {};
274
364
  const numbersByLocale = {};
275
365
  numberPathMatch.forEach((row)=>{
276
366
  if (typeof row.locale === 'string') {
277
- if (!numbersByLocale[row.locale]) numbersByLocale[row.locale] = [];
367
+ if (!numbersByLocale[row.locale]) {
368
+ numbersByLocale[row.locale] = [];
369
+ }
278
370
  numbersByLocale[row.locale].push(row);
279
371
  }
280
372
  });
@@ -290,7 +382,8 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
290
382
  transformHasManyNumber({
291
383
  field,
292
384
  numberRows: numberPathMatch,
293
- ref: result
385
+ ref: result,
386
+ withinArrayOrBlockLocale
294
387
  });
295
388
  }
296
389
  return result;
@@ -300,22 +393,34 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
300
393
  if (field.localized) {
301
394
  result[field.name] = fieldData.reduce((selectResult, row)=>{
302
395
  if (typeof row.locale === 'string') {
303
- if (!selectResult[row.locale]) selectResult[row.locale] = [];
396
+ if (!selectResult[row.locale]) {
397
+ selectResult[row.locale] = [];
398
+ }
304
399
  selectResult[row.locale].push(row.value);
305
400
  }
306
401
  return selectResult;
307
402
  }, {});
308
403
  } else {
309
- result[field.name] = fieldData.map(({ value })=>value);
404
+ let selectData = fieldData;
405
+ if (withinArrayOrBlockLocale) {
406
+ selectData = selectData.filter(({ locale })=>locale === withinArrayOrBlockLocale);
407
+ }
408
+ result[field.name] = selectData.map(({ value })=>value);
310
409
  }
311
410
  }
312
411
  return result;
313
412
  }
314
413
  if (field.localized && Array.isArray(table._locales)) {
414
+ if (!table._locales.length && adapter.payload.config.localization) {
415
+ adapter.payload.config.localization.localeCodes.forEach((_locale)=>table._locales.push({
416
+ _locale
417
+ }));
418
+ }
315
419
  table._locales.forEach((localeRow)=>{
316
420
  valuesToTransform.push({
317
421
  ref: localizedFieldData,
318
422
  table: {
423
+ ...table,
319
424
  ...localeRow
320
425
  }
321
426
  });
@@ -338,7 +443,9 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
338
443
  const groupData = {};
339
444
  const locale = table._locale;
340
445
  const refKey = field.localized && locale ? locale : field.name;
341
- if (field.localized && locale) delete table._locale;
446
+ if (field.localized && locale) {
447
+ delete table._locale;
448
+ }
342
449
  ref[refKey] = traverseFields({
343
450
  adapter,
344
451
  blocks,
@@ -351,7 +458,8 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
351
458
  path: `${sanitizedPath}${field.name}`,
352
459
  relationships,
353
460
  table,
354
- texts
461
+ texts,
462
+ withinArrayOrBlockLocale: locale || withinArrayOrBlockLocale
355
463
  });
356
464
  if ('_order' in ref) {
357
465
  delete ref._order;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/transform/read/traverseFields.ts"],"sourcesContent":["import type { Field, SanitizedConfig, TabAsField } from 'payload'\n\nimport { fieldAffectsData } from 'payload/shared'\n\nimport type { DrizzleAdapter } from '../../types.js'\nimport type { BlocksMap } from '../../utilities/createBlocksMap.js'\n\nimport { transformHasManyNumber } from './hasManyNumber.js'\nimport { transformHasManyText } from './hasManyText.js'\nimport { transformRelationship } from './relationship.js'\n\ntype TraverseFieldsArgs = {\n /**\n * The DB adapter\n */\n adapter: DrizzleAdapter\n /**\n * Pre-formatted blocks map\n */\n blocks: BlocksMap\n /**\n * The full Payload config\n */\n config: SanitizedConfig\n /**\n * The data reference to be mutated within this recursive function\n */\n dataRef: Record<string, unknown>\n /**\n * Data that needs to be removed from the result after all fields have populated\n */\n deletions: (() => void)[]\n /**\n * Column prefix can be built up by group and named tab fields\n */\n fieldPrefix: string\n /**\n * An array of Payload fields to traverse\n */\n fields: (Field | TabAsField)[]\n /**\n * All hasMany number fields, as returned by Drizzle, keyed on an object by field path\n */\n numbers: Record<string, Record<string, unknown>[]>\n /**\n * The current field path (in dot notation), used to merge in relationships\n */\n path: string\n /**\n * All related documents, as returned by Drizzle, keyed on an object by field path\n */\n relationships: Record<string, Record<string, unknown>[]>\n /**\n * Data structure representing the nearest table from db\n */\n table: Record<string, unknown>\n /**\n * All hasMany text fields, as returned by Drizzle, keyed on an object by field path\n */\n texts: Record<string, Record<string, unknown>[]>\n}\n\n// Traverse fields recursively, transforming data\n// for each field type into required Payload shape\nexport const traverseFields = <T extends Record<string, unknown>>({\n adapter,\n blocks,\n config,\n dataRef,\n deletions,\n fieldPrefix,\n fields,\n numbers,\n path,\n relationships,\n table,\n texts,\n}: TraverseFieldsArgs): T => {\n const sanitizedPath = path ? `${path}.` : path\n\n const formatted = fields.reduce((result, field) => {\n if (field.type === 'tabs') {\n traverseFields({\n adapter,\n blocks,\n config,\n dataRef,\n deletions,\n fieldPrefix,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n numbers,\n path,\n relationships,\n table,\n texts,\n })\n }\n\n if (\n field.type === 'collapsible' ||\n field.type === 'row' ||\n (field.type === 'tab' && !('name' in field))\n ) {\n traverseFields({\n adapter,\n blocks,\n config,\n dataRef,\n deletions,\n fieldPrefix,\n fields: field.fields,\n numbers,\n path,\n relationships,\n table,\n texts,\n })\n }\n\n if (fieldAffectsData(field)) {\n const fieldName = `${fieldPrefix || ''}${field.name}`\n const fieldData = table[fieldName]\n const localizedFieldData = {}\n const valuesToTransform: {\n ref: Record<string, unknown>\n table: Record<string, unknown>\n }[] = []\n\n if (fieldPrefix) {\n deletions.push(() => delete table[fieldName])\n }\n\n if (field.type === 'array') {\n if (Array.isArray(fieldData)) {\n if (field.localized) {\n result[field.name] = fieldData.reduce((arrayResult, row) => {\n if (typeof row._locale === 'string') {\n if (!arrayResult[row._locale]) arrayResult[row._locale] = []\n const locale = row._locale\n const data = {}\n delete row._locale\n if (row._uuid) {\n row.id = row._uuid\n delete row._uuid\n }\n\n const rowResult = traverseFields<T>({\n adapter,\n blocks,\n config,\n dataRef: data,\n deletions,\n fieldPrefix: '',\n fields: field.fields,\n numbers,\n path: `${sanitizedPath}${field.name}.${row._order - 1}`,\n relationships,\n table: row,\n texts,\n })\n\n if ('_order' in rowResult) {\n delete rowResult._order\n }\n\n arrayResult[locale].push(rowResult)\n }\n\n return arrayResult\n }, {})\n } else {\n result[field.name] = fieldData.map((row, i) => {\n if (row._uuid) {\n row.id = row._uuid\n delete row._uuid\n }\n\n if ('_order' in row) {\n delete row._order\n }\n\n return traverseFields<T>({\n adapter,\n blocks,\n config,\n dataRef: row,\n deletions,\n fieldPrefix: '',\n fields: field.fields,\n numbers,\n path: `${sanitizedPath}${field.name}.${i}`,\n relationships,\n table: row,\n texts,\n })\n })\n }\n }\n\n return result\n }\n\n if (field.type === 'blocks') {\n const blockFieldPath = `${sanitizedPath}${field.name}`\n\n if (Array.isArray(blocks[blockFieldPath])) {\n if (field.localized) {\n result[field.name] = {}\n\n blocks[blockFieldPath].forEach((row) => {\n if (row._uuid) {\n row.id = row._uuid\n delete row._uuid\n }\n if (typeof row._locale === 'string') {\n if (!result[field.name][row._locale]) result[field.name][row._locale] = []\n result[field.name][row._locale].push(row)\n delete row._locale\n }\n })\n\n Object.entries(result[field.name]).forEach(([locale, localizedBlocks]) => {\n result[field.name][locale] = localizedBlocks.map((row) => {\n const block = field.blocks.find(({ slug }) => slug === row.blockType)\n\n if (block) {\n const blockResult = traverseFields<T>({\n adapter,\n blocks,\n config,\n dataRef: row,\n deletions,\n fieldPrefix: '',\n fields: block.fields,\n numbers,\n path: `${blockFieldPath}.${row._order - 1}`,\n relationships,\n table: row,\n texts,\n })\n\n delete blockResult._order\n return blockResult\n }\n\n return {}\n })\n })\n } else {\n result[field.name] = blocks[blockFieldPath].map((row, i) => {\n delete row._order\n if (row._uuid) {\n row.id = row._uuid\n delete row._uuid\n }\n const block = field.blocks.find(({ slug }) => slug === row.blockType)\n\n if (block) {\n return traverseFields<T>({\n adapter,\n blocks,\n config,\n dataRef: row,\n deletions,\n fieldPrefix: '',\n fields: block.fields,\n numbers,\n path: `${blockFieldPath}.${i}`,\n relationships,\n table: row,\n texts,\n })\n }\n\n return {}\n })\n }\n }\n\n return result\n }\n\n if (field.type === 'relationship' || field.type === 'upload') {\n if (typeof field.relationTo === 'string' && !('hasMany' in field && field.hasMany)) {\n if (\n field.localized &&\n config.localization &&\n config.localization.locales &&\n Array.isArray(table?._locales)\n ) {\n table._locales.forEach((localeRow) => {\n result[field.name] = { [localeRow._locale]: localeRow[fieldName] }\n })\n } else {\n valuesToTransform.push({ ref: result, table })\n }\n } else {\n const relationPathMatch = relationships[`${sanitizedPath}${field.name}`]\n if (!relationPathMatch) {\n if ('hasMany' in field && field.hasMany) {\n if (field.localized && config.localization && config.localization.locales) {\n result[field.name] = {\n [config.localization.defaultLocale]: [],\n }\n } else {\n result[field.name] = []\n }\n }\n\n return result\n }\n\n if (field.localized) {\n result[field.name] = {}\n const relationsByLocale: Record<string, Record<string, unknown>[]> = {}\n\n relationPathMatch.forEach((row) => {\n if (typeof row.locale === 'string') {\n if (!relationsByLocale[row.locale]) relationsByLocale[row.locale] = []\n relationsByLocale[row.locale].push(row)\n }\n })\n\n Object.entries(relationsByLocale).forEach(([locale, relations]) => {\n transformRelationship({\n field,\n locale,\n ref: result,\n relations,\n })\n })\n } else {\n transformRelationship({\n field,\n ref: result,\n relations: relationPathMatch,\n })\n }\n return result\n }\n }\n\n if (field.type === 'text' && field?.hasMany) {\n const textPathMatch = texts[`${sanitizedPath}${field.name}`]\n if (!textPathMatch) return result\n\n if (field.localized) {\n result[field.name] = {}\n const textsByLocale: Record<string, Record<string, unknown>[]> = {}\n\n textPathMatch.forEach((row) => {\n if (typeof row.locale === 'string') {\n if (!textsByLocale[row.locale]) textsByLocale[row.locale] = []\n textsByLocale[row.locale].push(row)\n }\n })\n\n Object.entries(textsByLocale).forEach(([locale, texts]) => {\n transformHasManyText({\n field,\n locale,\n ref: result,\n textRows: texts,\n })\n })\n } else {\n transformHasManyText({\n field,\n ref: result,\n textRows: textPathMatch,\n })\n }\n\n return result\n }\n\n if (field.type === 'number' && field.hasMany) {\n const numberPathMatch = numbers[`${sanitizedPath}${field.name}`]\n if (!numberPathMatch) return result\n\n if (field.localized) {\n result[field.name] = {}\n const numbersByLocale: Record<string, Record<string, unknown>[]> = {}\n\n numberPathMatch.forEach((row) => {\n if (typeof row.locale === 'string') {\n if (!numbersByLocale[row.locale]) numbersByLocale[row.locale] = []\n numbersByLocale[row.locale].push(row)\n }\n })\n\n Object.entries(numbersByLocale).forEach(([locale, numbers]) => {\n transformHasManyNumber({\n field,\n locale,\n numberRows: numbers,\n ref: result,\n })\n })\n } else {\n transformHasManyNumber({\n field,\n numberRows: numberPathMatch,\n ref: result,\n })\n }\n\n return result\n }\n\n if (field.type === 'select' && field.hasMany) {\n if (Array.isArray(fieldData)) {\n if (field.localized) {\n result[field.name] = fieldData.reduce((selectResult, row) => {\n if (typeof row.locale === 'string') {\n if (!selectResult[row.locale]) selectResult[row.locale] = []\n selectResult[row.locale].push(row.value)\n }\n\n return selectResult\n }, {})\n } else {\n result[field.name] = fieldData.map(({ value }) => value)\n }\n }\n return result\n }\n\n if (field.localized && Array.isArray(table._locales)) {\n table._locales.forEach((localeRow) => {\n valuesToTransform.push({\n ref: localizedFieldData,\n table: {\n ...localeRow,\n },\n })\n })\n } else {\n valuesToTransform.push({ ref: result, table })\n }\n\n valuesToTransform.forEach(({ ref, table }) => {\n const fieldData = table[`${fieldPrefix || ''}${field.name}`]\n const locale = table?._locale\n let val = fieldData\n\n switch (field.type) {\n case 'tab':\n case 'group': {\n const groupFieldPrefix = `${fieldPrefix || ''}${field.name}_`\n const groupData = {}\n const locale = table._locale as string\n const refKey = field.localized && locale ? locale : field.name\n\n if (field.localized && locale) delete table._locale\n ref[refKey] = traverseFields<Record<string, unknown>>({\n adapter,\n blocks,\n config,\n dataRef: groupData as Record<string, unknown>,\n deletions,\n fieldPrefix: groupFieldPrefix,\n fields: field.fields,\n numbers,\n path: `${sanitizedPath}${field.name}`,\n relationships,\n table,\n texts,\n })\n\n if ('_order' in ref) {\n delete ref._order\n }\n\n return\n }\n\n case 'text': {\n if (typeof fieldData === 'string') {\n val = String(fieldData)\n }\n\n break\n }\n\n case 'number': {\n if (typeof fieldData === 'string') {\n val = Number.parseFloat(fieldData)\n }\n\n break\n }\n\n case 'date': {\n if (typeof fieldData === 'string') {\n val = new Date(fieldData).toISOString()\n }\n\n break\n }\n\n case 'relationship':\n case 'upload': {\n if (\n val &&\n typeof field.relationTo === 'string' &&\n adapter.payload.collections[field.relationTo].customIDType === 'number'\n ) {\n val = Number(val)\n }\n\n break\n }\n\n default: {\n break\n }\n }\n if (typeof locale === 'string') {\n ref[locale] = val\n } else {\n result[field.name] = val\n }\n })\n\n if (Object.keys(localizedFieldData).length > 0) {\n result[field.name] = localizedFieldData\n }\n\n return result\n }\n\n return result\n }, dataRef)\n\n if (Array.isArray(table._locales)) {\n deletions.push(() => delete table._locales)\n }\n\n return formatted as T\n}\n"],"names":["fieldAffectsData","transformHasManyNumber","transformHasManyText","transformRelationship","traverseFields","adapter","blocks","config","dataRef","deletions","fieldPrefix","fields","numbers","path","relationships","table","texts","sanitizedPath","formatted","reduce","result","field","type","tabs","map","tab","fieldName","name","fieldData","localizedFieldData","valuesToTransform","push","Array","isArray","localized","arrayResult","row","_locale","locale","data","_uuid","id","rowResult","_order","i","blockFieldPath","forEach","Object","entries","localizedBlocks","block","find","slug","blockType","blockResult","relationTo","hasMany","localization","locales","_locales","localeRow","ref","relationPathMatch","defaultLocale","relationsByLocale","relations","textPathMatch","textsByLocale","textRows","numberPathMatch","numbersByLocale","numberRows","selectResult","value","val","groupFieldPrefix","groupData","refKey","String","Number","parseFloat","Date","toISOString","payload","collections","customIDType","keys","length"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/transform/read/traverseFields.ts"],"sourcesContent":["import type { Field, JoinQuery, SanitizedConfig, TabAsField } from 'payload'\n\nimport { fieldAffectsData, fieldIsVirtual } from 'payload/shared'\n\nimport type { DrizzleAdapter } from '../../types.js'\nimport type { BlocksMap } from '../../utilities/createBlocksMap.js'\n\nimport { transformHasManyNumber } from './hasManyNumber.js'\nimport { transformHasManyText } from './hasManyText.js'\nimport { transformRelationship } from './relationship.js'\n\ntype TraverseFieldsArgs = {\n /**\n * The DB adapter\n */\n adapter: DrizzleAdapter\n /**\n * Pre-formatted blocks map\n */\n blocks: BlocksMap\n /**\n * The full Payload config\n */\n config: SanitizedConfig\n /**\n * The data reference to be mutated within this recursive function\n */\n dataRef: Record<string, unknown>\n /**\n * Data that needs to be removed from the result after all fields have populated\n */\n deletions: (() => void)[]\n /**\n * Column prefix can be built up by group and named tab fields\n */\n fieldPrefix: string\n /**\n * An array of Payload fields to traverse\n */\n fields: (Field | TabAsField)[]\n /**\n *\n */\n joinQuery?: JoinQuery\n /**\n * All hasMany number fields, as returned by Drizzle, keyed on an object by field path\n */\n numbers: Record<string, Record<string, unknown>[]>\n /**\n * The current field path (in dot notation), used to merge in relationships\n */\n path: string\n /**\n * All related documents, as returned by Drizzle, keyed on an object by field path\n */\n relationships: Record<string, Record<string, unknown>[]>\n /**\n * Data structure representing the nearest table from db\n */\n table: Record<string, unknown>\n /**\n * All hasMany text fields, as returned by Drizzle, keyed on an object by field path\n */\n texts: Record<string, Record<string, unknown>[]>\n /**\n * Set to a locale if this group of fields is within a localized array or block.\n */\n withinArrayOrBlockLocale?: string\n}\n\n// Traverse fields recursively, transforming data\n// for each field type into required Payload shape\nexport const traverseFields = <T extends Record<string, unknown>>({\n adapter,\n blocks,\n config,\n dataRef,\n deletions,\n fieldPrefix,\n fields,\n joinQuery,\n numbers,\n path,\n relationships,\n table,\n texts,\n withinArrayOrBlockLocale,\n}: TraverseFieldsArgs): T => {\n const sanitizedPath = path ? `${path}.` : path\n\n const formatted = fields.reduce((result, field) => {\n if (field.type === 'tabs') {\n traverseFields({\n adapter,\n blocks,\n config,\n dataRef,\n deletions,\n fieldPrefix,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n joinQuery,\n numbers,\n path,\n relationships,\n table,\n texts,\n withinArrayOrBlockLocale,\n })\n }\n\n if (\n field.type === 'collapsible' ||\n field.type === 'row' ||\n (field.type === 'tab' && !('name' in field))\n ) {\n traverseFields({\n adapter,\n blocks,\n config,\n dataRef,\n deletions,\n fieldPrefix,\n fields: field.fields,\n joinQuery,\n numbers,\n path,\n relationships,\n table,\n texts,\n withinArrayOrBlockLocale,\n })\n }\n\n if (fieldAffectsData(field)) {\n if (fieldIsVirtual(field)) {\n return result\n }\n\n const fieldName = `${fieldPrefix || ''}${field.name}`\n const fieldData = table[fieldName]\n const localizedFieldData = {}\n const valuesToTransform: {\n ref: Record<string, unknown>\n table: Record<string, unknown>\n }[] = []\n\n if (fieldPrefix) {\n deletions.push(() => delete table[fieldName])\n }\n\n if (field.type === 'array') {\n if (Array.isArray(fieldData)) {\n if (field.localized) {\n result[field.name] = fieldData.reduce((arrayResult, row) => {\n if (typeof row._locale === 'string') {\n if (!arrayResult[row._locale]) {\n arrayResult[row._locale] = []\n }\n const locale = row._locale\n const data = {}\n delete row._locale\n if (row._uuid) {\n row.id = row._uuid\n delete row._uuid\n }\n\n const rowResult = traverseFields<T>({\n adapter,\n blocks,\n config,\n dataRef: data,\n deletions,\n fieldPrefix: '',\n fields: field.fields,\n numbers,\n path: `${sanitizedPath}${field.name}.${row._order - 1}`,\n relationships,\n table: row,\n texts,\n withinArrayOrBlockLocale: locale,\n })\n\n if ('_order' in rowResult) {\n delete rowResult._order\n }\n\n arrayResult[locale].push(rowResult)\n }\n\n return arrayResult\n }, {})\n } else {\n result[field.name] = fieldData.reduce((acc, row, i) => {\n if (row._uuid) {\n row.id = row._uuid\n delete row._uuid\n }\n\n if ('_order' in row) {\n delete row._order\n }\n\n if (\n !withinArrayOrBlockLocale ||\n (withinArrayOrBlockLocale && withinArrayOrBlockLocale === row._locale)\n ) {\n if (row._locale) {\n delete row._locale\n }\n\n acc.push(\n traverseFields<T>({\n adapter,\n blocks,\n config,\n dataRef: row,\n deletions,\n fieldPrefix: '',\n fields: field.fields,\n numbers,\n path: `${sanitizedPath}${field.name}.${i}`,\n relationships,\n table: row,\n texts,\n withinArrayOrBlockLocale,\n }),\n )\n }\n\n return acc\n }, [])\n }\n }\n\n return result\n }\n\n if (field.type === 'blocks') {\n const blockFieldPath = `${sanitizedPath}${field.name}`\n const blocksByPath = blocks[blockFieldPath]\n\n if (Array.isArray(blocksByPath)) {\n if (field.localized) {\n result[field.name] = {}\n\n blocksByPath.forEach((row) => {\n if (row._uuid) {\n row.id = row._uuid\n delete row._uuid\n }\n if (typeof row._locale === 'string') {\n if (!result[field.name][row._locale]) {\n result[field.name][row._locale] = []\n }\n result[field.name][row._locale].push(row)\n delete row._locale\n }\n })\n\n Object.entries(result[field.name]).forEach(([locale, localizedBlocks]) => {\n result[field.name][locale] = localizedBlocks.map((row) => {\n const block = field.blocks.find(({ slug }) => slug === row.blockType)\n\n if (block) {\n const blockResult = traverseFields<T>({\n adapter,\n blocks,\n config,\n dataRef: row,\n deletions,\n fieldPrefix: '',\n fields: block.fields,\n numbers,\n path: `${blockFieldPath}.${row._order - 1}`,\n relationships,\n table: row,\n texts,\n withinArrayOrBlockLocale: locale,\n })\n\n delete blockResult._order\n return blockResult\n }\n\n return {}\n })\n })\n } else {\n // Add locale-specific index to have a proper blockFieldPath for current locale\n // because blocks can be in the same array for different locales!\n if (withinArrayOrBlockLocale && config.localization) {\n for (const locale of config.localization.localeCodes) {\n let localeIndex = 0\n\n for (let i = 0; i < blocksByPath.length; i++) {\n const row = blocksByPath[i]\n if (row._locale === locale) {\n row._index = localeIndex\n localeIndex++\n }\n }\n }\n }\n\n result[field.name] = blocksByPath.reduce((acc, row, i) => {\n delete row._order\n if (row._uuid) {\n row.id = row._uuid\n delete row._uuid\n }\n const block = field.blocks.find(({ slug }) => slug === row.blockType)\n\n if (block) {\n if (\n !withinArrayOrBlockLocale ||\n (withinArrayOrBlockLocale && withinArrayOrBlockLocale === row._locale)\n ) {\n if (row._locale) {\n delete row._locale\n }\n if (typeof row._index === 'number') {\n i = row._index\n delete row._index\n }\n\n acc.push(\n traverseFields<T>({\n adapter,\n blocks,\n config,\n dataRef: row,\n deletions,\n fieldPrefix: '',\n fields: block.fields,\n numbers,\n path: `${blockFieldPath}.${i}`,\n relationships,\n table: row,\n texts,\n withinArrayOrBlockLocale,\n }),\n )\n\n return acc\n }\n } else {\n acc.push({})\n }\n\n return acc\n }, [])\n }\n }\n\n return result\n }\n\n if (field.type === 'relationship' || field.type === 'upload') {\n if (typeof field.relationTo === 'string' && !('hasMany' in field && field.hasMany)) {\n if (\n field.localized &&\n config.localization &&\n config.localization.locales &&\n Array.isArray(table?._locales)\n ) {\n table._locales.forEach((localeRow) => {\n result[field.name] = { [localeRow._locale]: localeRow[fieldName] }\n })\n } else {\n valuesToTransform.push({ ref: result, table })\n }\n } else {\n const relationPathMatch = relationships[`${sanitizedPath}${field.name}`]\n\n if (!relationPathMatch) {\n if ('hasMany' in field && field.hasMany) {\n if (field.localized && config.localization && config.localization.locales) {\n result[field.name] = {\n [config.localization.defaultLocale]: [],\n }\n } else {\n result[field.name] = []\n }\n }\n\n return result\n }\n\n if (field.localized) {\n result[field.name] = {}\n const relationsByLocale: Record<string, Record<string, unknown>[]> = {}\n\n relationPathMatch.forEach((row) => {\n if (typeof row.locale === 'string') {\n if (!relationsByLocale[row.locale]) {\n relationsByLocale[row.locale] = []\n }\n relationsByLocale[row.locale].push(row)\n }\n })\n\n Object.entries(relationsByLocale).forEach(([locale, relations]) => {\n transformRelationship({\n field,\n locale,\n ref: result,\n relations,\n })\n })\n } else {\n transformRelationship({\n field,\n ref: result,\n relations: relationPathMatch,\n withinArrayOrBlockLocale,\n })\n }\n return result\n }\n }\n\n if (field.type === 'join') {\n const { limit = 10 } = joinQuery?.[`${fieldPrefix.replaceAll('_', '.')}${field.name}`] || {}\n\n let fieldResult:\n | { docs: unknown[]; hasNextPage: boolean }\n | Record<string, { docs: unknown[]; hasNextPage: boolean }>\n if (Array.isArray(fieldData)) {\n if (field.localized) {\n fieldResult = fieldData.reduce((joinResult, row) => {\n if (typeof row._locale === 'string') {\n if (!joinResult[row._locale]) {\n joinResult[row._locale] = {\n docs: [],\n hasNextPage: false,\n }\n }\n joinResult[row._locale].docs.push(row._parentID)\n }\n\n return joinResult\n }, {})\n Object.keys(fieldResult).forEach((locale) => {\n fieldResult[locale].hasNextPage = fieldResult[locale].docs.length > limit\n fieldResult[locale].docs = fieldResult[locale].docs.slice(0, limit)\n })\n } else {\n const hasNextPage = limit !== 0 && fieldData.length > limit\n fieldResult = {\n docs: hasNextPage ? fieldData.slice(0, limit) : fieldData,\n hasNextPage,\n }\n }\n }\n\n result[field.name] = fieldResult\n return result\n }\n\n if (field.type === 'text' && field?.hasMany) {\n const textPathMatch = texts[`${sanitizedPath}${field.name}`]\n if (!textPathMatch) {\n return result\n }\n\n if (field.localized) {\n result[field.name] = {}\n const textsByLocale: Record<string, Record<string, unknown>[]> = {}\n\n textPathMatch.forEach((row) => {\n if (typeof row.locale === 'string') {\n if (!textsByLocale[row.locale]) {\n textsByLocale[row.locale] = []\n }\n textsByLocale[row.locale].push(row)\n }\n })\n\n Object.entries(textsByLocale).forEach(([locale, texts]) => {\n transformHasManyText({\n field,\n locale,\n ref: result,\n textRows: texts,\n })\n })\n } else {\n transformHasManyText({\n field,\n ref: result,\n textRows: textPathMatch,\n withinArrayOrBlockLocale,\n })\n }\n\n return result\n }\n\n if (field.type === 'number' && field.hasMany) {\n const numberPathMatch = numbers[`${sanitizedPath}${field.name}`]\n if (!numberPathMatch) {\n return result\n }\n\n if (field.localized) {\n result[field.name] = {}\n const numbersByLocale: Record<string, Record<string, unknown>[]> = {}\n\n numberPathMatch.forEach((row) => {\n if (typeof row.locale === 'string') {\n if (!numbersByLocale[row.locale]) {\n numbersByLocale[row.locale] = []\n }\n numbersByLocale[row.locale].push(row)\n }\n })\n\n Object.entries(numbersByLocale).forEach(([locale, numbers]) => {\n transformHasManyNumber({\n field,\n locale,\n numberRows: numbers,\n ref: result,\n })\n })\n } else {\n transformHasManyNumber({\n field,\n numberRows: numberPathMatch,\n ref: result,\n withinArrayOrBlockLocale,\n })\n }\n\n return result\n }\n\n if (field.type === 'select' && field.hasMany) {\n if (Array.isArray(fieldData)) {\n if (field.localized) {\n result[field.name] = fieldData.reduce((selectResult, row) => {\n if (typeof row.locale === 'string') {\n if (!selectResult[row.locale]) {\n selectResult[row.locale] = []\n }\n selectResult[row.locale].push(row.value)\n }\n\n return selectResult\n }, {})\n } else {\n let selectData = fieldData\n if (withinArrayOrBlockLocale) {\n selectData = selectData.filter(({ locale }) => locale === withinArrayOrBlockLocale)\n }\n result[field.name] = selectData.map(({ value }) => value)\n }\n }\n return result\n }\n\n if (field.localized && Array.isArray(table._locales)) {\n if (!table._locales.length && adapter.payload.config.localization) {\n adapter.payload.config.localization.localeCodes.forEach((_locale) =>\n (table._locales as unknown[]).push({ _locale }),\n )\n }\n\n table._locales.forEach((localeRow) => {\n valuesToTransform.push({\n ref: localizedFieldData,\n table: {\n ...table,\n ...localeRow,\n },\n })\n })\n } else {\n valuesToTransform.push({ ref: result, table })\n }\n\n valuesToTransform.forEach(({ ref, table }) => {\n const fieldData = table[`${fieldPrefix || ''}${field.name}`]\n const locale = table?._locale\n let val = fieldData\n\n switch (field.type) {\n case 'tab':\n case 'group': {\n const groupFieldPrefix = `${fieldPrefix || ''}${field.name}_`\n const groupData = {}\n const locale = table._locale as string\n const refKey = field.localized && locale ? locale : field.name\n\n if (field.localized && locale) {\n delete table._locale\n }\n ref[refKey] = traverseFields<Record<string, unknown>>({\n adapter,\n blocks,\n config,\n dataRef: groupData as Record<string, unknown>,\n deletions,\n fieldPrefix: groupFieldPrefix,\n fields: field.fields,\n numbers,\n path: `${sanitizedPath}${field.name}`,\n relationships,\n table,\n texts,\n withinArrayOrBlockLocale: locale || withinArrayOrBlockLocale,\n })\n\n if ('_order' in ref) {\n delete ref._order\n }\n\n return\n }\n\n case 'text': {\n if (typeof fieldData === 'string') {\n val = String(fieldData)\n }\n\n break\n }\n\n case 'number': {\n if (typeof fieldData === 'string') {\n val = Number.parseFloat(fieldData)\n }\n\n break\n }\n\n case 'date': {\n if (typeof fieldData === 'string') {\n val = new Date(fieldData).toISOString()\n }\n\n break\n }\n\n case 'relationship':\n case 'upload': {\n if (\n val &&\n typeof field.relationTo === 'string' &&\n adapter.payload.collections[field.relationTo].customIDType === 'number'\n ) {\n val = Number(val)\n }\n\n break\n }\n\n default: {\n break\n }\n }\n if (typeof locale === 'string') {\n ref[locale] = val\n } else {\n result[field.name] = val\n }\n })\n\n if (Object.keys(localizedFieldData).length > 0) {\n result[field.name] = localizedFieldData\n }\n\n return result\n }\n\n return result\n }, dataRef)\n\n if (Array.isArray(table._locales)) {\n deletions.push(() => delete table._locales)\n }\n\n return formatted as T\n}\n"],"names":["fieldAffectsData","fieldIsVirtual","transformHasManyNumber","transformHasManyText","transformRelationship","traverseFields","adapter","blocks","config","dataRef","deletions","fieldPrefix","fields","joinQuery","numbers","path","relationships","table","texts","withinArrayOrBlockLocale","sanitizedPath","formatted","reduce","result","field","type","tabs","map","tab","fieldName","name","fieldData","localizedFieldData","valuesToTransform","push","Array","isArray","localized","arrayResult","row","_locale","locale","data","_uuid","id","rowResult","_order","acc","i","blockFieldPath","blocksByPath","forEach","Object","entries","localizedBlocks","block","find","slug","blockType","blockResult","localization","localeCodes","localeIndex","length","_index","relationTo","hasMany","locales","_locales","localeRow","ref","relationPathMatch","defaultLocale","relationsByLocale","relations","limit","replaceAll","fieldResult","joinResult","docs","hasNextPage","_parentID","keys","slice","textPathMatch","textsByLocale","textRows","numberPathMatch","numbersByLocale","numberRows","selectResult","value","selectData","filter","payload","val","groupFieldPrefix","groupData","refKey","String","Number","parseFloat","Date","toISOString","collections","customIDType"],"mappings":"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"}
@@ -20,7 +20,12 @@ type Args = {
20
20
  [tableName: string]: Record<string, unknown>[];
21
21
  };
22
22
  texts: Record<string, unknown>[];
23
+ /**
24
+ * Set to a locale code if this set of fields is traversed within a
25
+ * localized array or block field
26
+ */
27
+ withinArrayOrBlockLocale?: string;
23
28
  };
24
- export declare const transformArray: ({ adapter, arrayTableName, baseTableName, blocks, blocksToDelete, data, field, locale, numbers, path, relationships, relationshipsToDelete, selects, texts, }: Args) => ArrayRowToInsert[];
29
+ export declare const transformArray: ({ adapter, arrayTableName, baseTableName, blocks, blocksToDelete, data, field, locale, numbers, path, relationships, relationshipsToDelete, selects, texts, withinArrayOrBlockLocale, }: Args) => ArrayRowToInsert[];
25
30
  export {};
26
31
  //# sourceMappingURL=array.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../../src/transform/write/array.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAK1F,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,UAAU,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IACxC,qBAAqB,EAAE,oBAAoB,EAAE,CAAA;IAC7C,OAAO,EAAE;QACP,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;KAC/C,CAAA;IACD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;CACjC,CAAA;AAED,eAAO,MAAM,cAAc,kKAexB,IAAI,uBA6DN,CAAA"}
1
+ {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../../src/transform/write/array.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAK1F,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,UAAU,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IACxC,qBAAqB,EAAE,oBAAoB,EAAE,CAAA;IAC7C,OAAO,EAAE;QACP,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;KAC/C,CAAA;IACD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAChC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAA;CAClC,CAAA;AAED,eAAO,MAAM,cAAc,4LAgBxB,IAAI,uBAkEN,CAAA"}
@@ -1,6 +1,6 @@
1
- /* eslint-disable no-param-reassign */ import { isArrayOfRows } from '../../utilities/isArrayOfRows.js';
1
+ import { isArrayOfRows } from '../../utilities/isArrayOfRows.js';
2
2
  import { traverseFields } from './traverseFields.js';
3
- export const transformArray = ({ adapter, arrayTableName, baseTableName, blocks, blocksToDelete, data, field, locale, numbers, path, relationships, relationshipsToDelete, selects, texts })=>{
3
+ export const transformArray = ({ adapter, arrayTableName, baseTableName, blocks, blocksToDelete, data, field, locale, numbers, path, relationships, relationshipsToDelete, selects, texts, withinArrayOrBlockLocale })=>{
4
4
  const newRows = [];
5
5
  const hasUUID = adapter.tables[arrayTableName]._uuid;
6
6
  if (isArrayOfRows(data)) {
@@ -29,6 +29,9 @@ export const transformArray = ({ adapter, arrayTableName, baseTableName, blocks,
29
29
  if (field.localized) {
30
30
  newRow.row._locale = locale;
31
31
  }
32
+ if (withinArrayOrBlockLocale) {
33
+ newRow.row._locale = withinArrayOrBlockLocale;
34
+ }
32
35
  traverseFields({
33
36
  adapter,
34
37
  arrays: newRow.arrays,
@@ -47,7 +50,8 @@ export const transformArray = ({ adapter, arrayTableName, baseTableName, blocks,
47
50
  relationshipsToDelete,
48
51
  row: newRow.row,
49
52
  selects,
50
- texts
53
+ texts,
54
+ withinArrayOrBlockLocale
51
55
  });
52
56
  newRows.push(newRow);
53
57
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/transform/write/array.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport type { ArrayField } from 'payload'\n\nimport type { DrizzleAdapter } from '../../types.js'\nimport type { ArrayRowToInsert, BlockRowToInsert, RelationshipToDelete } from './types.js'\n\nimport { isArrayOfRows } from '../../utilities/isArrayOfRows.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype Args = {\n adapter: DrizzleAdapter\n arrayTableName: string\n baseTableName: string\n blocks: {\n [blockType: string]: BlockRowToInsert[]\n }\n blocksToDelete: Set<string>\n data: unknown\n field: ArrayField\n locale?: string\n numbers: Record<string, unknown>[]\n path: string\n relationships: Record<string, unknown>[]\n relationshipsToDelete: RelationshipToDelete[]\n selects: {\n [tableName: string]: Record<string, unknown>[]\n }\n texts: Record<string, unknown>[]\n}\n\nexport const transformArray = ({\n adapter,\n arrayTableName,\n baseTableName,\n blocks,\n blocksToDelete,\n data,\n field,\n locale,\n numbers,\n path,\n relationships,\n relationshipsToDelete,\n selects,\n texts,\n}: Args) => {\n const newRows: ArrayRowToInsert[] = []\n\n const hasUUID = adapter.tables[arrayTableName]._uuid\n\n if (isArrayOfRows(data)) {\n data.forEach((arrayRow, i) => {\n const newRow: ArrayRowToInsert = {\n arrays: {},\n locales: {},\n row: {\n _order: i + 1,\n },\n }\n\n // If we have declared a _uuid field on arrays,\n // that means the ID has to be unique,\n // and our ids within arrays are not unique.\n // So move the ID to a uuid field for storage\n // and allow the database to generate a serial id automatically\n if (hasUUID) {\n newRow.row._uuid = arrayRow.id\n delete arrayRow.id\n }\n\n if (locale) {\n newRow.locales[locale] = {\n _locale: locale,\n }\n }\n\n if (field.localized) {\n newRow.row._locale = locale\n }\n\n traverseFields({\n adapter,\n arrays: newRow.arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix: '',\n data: arrayRow,\n fieldPrefix: '',\n fields: field.fields,\n locales: newRow.locales,\n numbers,\n parentTableName: arrayTableName,\n path: `${path || ''}${field.name}.${i}.`,\n relationships,\n relationshipsToDelete,\n row: newRow.row,\n selects,\n texts,\n })\n\n newRows.push(newRow)\n })\n }\n\n return newRows\n}\n"],"names":["isArrayOfRows","traverseFields","transformArray","adapter","arrayTableName","baseTableName","blocks","blocksToDelete","data","field","locale","numbers","path","relationships","relationshipsToDelete","selects","texts","newRows","hasUUID","tables","_uuid","forEach","arrayRow","i","newRow","arrays","locales","row","_order","id","_locale","localized","columnPrefix","fieldPrefix","fields","parentTableName","name","push"],"mappings":"AAAA,oCAAoC,GAMpC,SAASA,aAAa,QAAQ,mCAAkC;AAChE,SAASC,cAAc,QAAQ,sBAAqB;AAuBpD,OAAO,MAAMC,iBAAiB,CAAC,EAC7BC,OAAO,EACPC,cAAc,EACdC,aAAa,EACbC,MAAM,EACNC,cAAc,EACdC,IAAI,EACJC,KAAK,EACLC,MAAM,EACNC,OAAO,EACPC,IAAI,EACJC,aAAa,EACbC,qBAAqB,EACrBC,OAAO,EACPC,KAAK,EACA;IACL,MAAMC,UAA8B,EAAE;IAEtC,MAAMC,UAAUf,QAAQgB,MAAM,CAACf,eAAe,CAACgB,KAAK;IAEpD,IAAIpB,cAAcQ,OAAO;QACvBA,KAAKa,OAAO,CAAC,CAACC,UAAUC;YACtB,MAAMC,SAA2B;gBAC/BC,QAAQ,CAAC;gBACTC,SAAS,CAAC;gBACVC,KAAK;oBACHC,QAAQL,IAAI;gBACd;YACF;YAEA,+CAA+C;YAC/C,sCAAsC;YACtC,4CAA4C;YAC5C,6CAA6C;YAC7C,+DAA+D;YAC/D,IAAIL,SAAS;gBACXM,OAAOG,GAAG,CAACP,KAAK,GAAGE,SAASO,EAAE;gBAC9B,OAAOP,SAASO,EAAE;YACpB;YAEA,IAAInB,QAAQ;gBACVc,OAAOE,OAAO,CAAChB,OAAO,GAAG;oBACvBoB,SAASpB;gBACX;YACF;YAEA,IAAID,MAAMsB,SAAS,EAAE;gBACnBP,OAAOG,GAAG,CAACG,OAAO,GAAGpB;YACvB;YAEAT,eAAe;gBACbE;gBACAsB,QAAQD,OAAOC,MAAM;gBACrBpB;gBACAC;gBACAC;gBACAyB,cAAc;gBACdxB,MAAMc;gBACNW,aAAa;gBACbC,QAAQzB,MAAMyB,MAAM;gBACpBR,SAASF,OAAOE,OAAO;gBACvBf;gBACAwB,iBAAiB/B;gBACjBQ,MAAM,CAAC,EAAEA,QAAQ,GAAG,EAAEH,MAAM2B,IAAI,CAAC,CAAC,EAAEb,EAAE,CAAC,CAAC;gBACxCV;gBACAC;gBACAa,KAAKH,OAAOG,GAAG;gBACfZ;gBACAC;YACF;YAEAC,QAAQoB,IAAI,CAACb;QACf;IACF;IAEA,OAAOP;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../src/transform/write/array.ts"],"sourcesContent":["import type { ArrayField } from 'payload'\n\nimport type { DrizzleAdapter } from '../../types.js'\nimport type { ArrayRowToInsert, BlockRowToInsert, RelationshipToDelete } from './types.js'\n\nimport { isArrayOfRows } from '../../utilities/isArrayOfRows.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype Args = {\n adapter: DrizzleAdapter\n arrayTableName: string\n baseTableName: string\n blocks: {\n [blockType: string]: BlockRowToInsert[]\n }\n blocksToDelete: Set<string>\n data: unknown\n field: ArrayField\n locale?: string\n numbers: Record<string, unknown>[]\n path: string\n relationships: Record<string, unknown>[]\n relationshipsToDelete: RelationshipToDelete[]\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 transformArray = ({\n adapter,\n arrayTableName,\n baseTableName,\n blocks,\n blocksToDelete,\n data,\n field,\n locale,\n numbers,\n path,\n relationships,\n relationshipsToDelete,\n selects,\n texts,\n withinArrayOrBlockLocale,\n}: Args) => {\n const newRows: ArrayRowToInsert[] = []\n\n const hasUUID = adapter.tables[arrayTableName]._uuid\n\n if (isArrayOfRows(data)) {\n data.forEach((arrayRow, i) => {\n const newRow: ArrayRowToInsert = {\n arrays: {},\n locales: {},\n row: {\n _order: i + 1,\n },\n }\n\n // If we have declared a _uuid field on arrays,\n // that means the ID has to be unique,\n // and our ids within arrays are not unique.\n // So move the ID to a uuid field for storage\n // and allow the database to generate a serial id automatically\n if (hasUUID) {\n newRow.row._uuid = arrayRow.id\n delete arrayRow.id\n }\n\n if (locale) {\n newRow.locales[locale] = {\n _locale: locale,\n }\n }\n\n if (field.localized) {\n newRow.row._locale = locale\n }\n\n if (withinArrayOrBlockLocale) {\n newRow.row._locale = withinArrayOrBlockLocale\n }\n\n traverseFields({\n adapter,\n arrays: newRow.arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix: '',\n data: arrayRow,\n fieldPrefix: '',\n fields: field.fields,\n locales: newRow.locales,\n numbers,\n parentTableName: arrayTableName,\n path: `${path || ''}${field.name}.${i}.`,\n relationships,\n relationshipsToDelete,\n row: newRow.row,\n selects,\n texts,\n withinArrayOrBlockLocale,\n })\n\n newRows.push(newRow)\n })\n }\n\n return newRows\n}\n"],"names":["isArrayOfRows","traverseFields","transformArray","adapter","arrayTableName","baseTableName","blocks","blocksToDelete","data","field","locale","numbers","path","relationships","relationshipsToDelete","selects","texts","withinArrayOrBlockLocale","newRows","hasUUID","tables","_uuid","forEach","arrayRow","i","newRow","arrays","locales","row","_order","id","_locale","localized","columnPrefix","fieldPrefix","fields","parentTableName","name","push"],"mappings":"AAKA,SAASA,aAAa,QAAQ,mCAAkC;AAChE,SAASC,cAAc,QAAQ,sBAAqB;AA4BpD,OAAO,MAAMC,iBAAiB,CAAC,EAC7BC,OAAO,EACPC,cAAc,EACdC,aAAa,EACbC,MAAM,EACNC,cAAc,EACdC,IAAI,EACJC,KAAK,EACLC,MAAM,EACNC,OAAO,EACPC,IAAI,EACJC,aAAa,EACbC,qBAAqB,EACrBC,OAAO,EACPC,KAAK,EACLC,wBAAwB,EACnB;IACL,MAAMC,UAA8B,EAAE;IAEtC,MAAMC,UAAUhB,QAAQiB,MAAM,CAAChB,eAAe,CAACiB,KAAK;IAEpD,IAAIrB,cAAcQ,OAAO;QACvBA,KAAKc,OAAO,CAAC,CAACC,UAAUC;YACtB,MAAMC,SAA2B;gBAC/BC,QAAQ,CAAC;gBACTC,SAAS,CAAC;gBACVC,KAAK;oBACHC,QAAQL,IAAI;gBACd;YACF;YAEA,+CAA+C;YAC/C,sCAAsC;YACtC,4CAA4C;YAC5C,6CAA6C;YAC7C,+DAA+D;YAC/D,IAAIL,SAAS;gBACXM,OAAOG,GAAG,CAACP,KAAK,GAAGE,SAASO,EAAE;gBAC9B,OAAOP,SAASO,EAAE;YACpB;YAEA,IAAIpB,QAAQ;gBACVe,OAAOE,OAAO,CAACjB,OAAO,GAAG;oBACvBqB,SAASrB;gBACX;YACF;YAEA,IAAID,MAAMuB,SAAS,EAAE;gBACnBP,OAAOG,GAAG,CAACG,OAAO,GAAGrB;YACvB;YAEA,IAAIO,0BAA0B;gBAC5BQ,OAAOG,GAAG,CAACG,OAAO,GAAGd;YACvB;YAEAhB,eAAe;gBACbE;gBACAuB,QAAQD,OAAOC,MAAM;gBACrBrB;gBACAC;gBACAC;gBACA0B,cAAc;gBACdzB,MAAMe;gBACNW,aAAa;gBACbC,QAAQ1B,MAAM0B,MAAM;gBACpBR,SAASF,OAAOE,OAAO;gBACvBhB;gBACAyB,iBAAiBhC;gBACjBQ,MAAM,CAAC,EAAEA,QAAQ,GAAG,EAAEH,MAAM4B,IAAI,CAAC,CAAC,EAAEb,EAAE,CAAC,CAAC;gBACxCX;gBACAC;gBACAc,KAAKH,OAAOG,GAAG;gBACfb;gBACAC;gBACAC;YACF;YAEAC,QAAQoB,IAAI,CAACb;QACf;IACF;IAEA,OAAOP;AACT,EAAC"}