@payloadcms/drizzle 3.0.0-canary.2c2c95f

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 (290) hide show
  1. package/README.md +3 -0
  2. package/dist/count.d.ts +3 -0
  3. package/dist/count.d.ts.map +1 -0
  4. package/dist/count.js +25 -0
  5. package/dist/count.js.map +1 -0
  6. package/dist/create.d.ts +3 -0
  7. package/dist/create.d.ts.map +1 -0
  8. package/dist/create.js +19 -0
  9. package/dist/create.js.map +1 -0
  10. package/dist/createGlobal.d.ts +4 -0
  11. package/dist/createGlobal.d.ts.map +1 -0
  12. package/dist/createGlobal.js +19 -0
  13. package/dist/createGlobal.js.map +1 -0
  14. package/dist/createGlobalVersion.d.ts +4 -0
  15. package/dist/createGlobalVersion.d.ts.map +1 -0
  16. package/dist/createGlobalVersion.js +36 -0
  17. package/dist/createGlobalVersion.js.map +1 -0
  18. package/dist/createTableName.d.ts +31 -0
  19. package/dist/createTableName.d.ts.map +1 -0
  20. package/dist/createTableName.js +31 -0
  21. package/dist/createTableName.js.map +1 -0
  22. package/dist/createVersion.d.ts +4 -0
  23. package/dist/createVersion.d.ts.map +1 -0
  24. package/dist/createVersion.js +43 -0
  25. package/dist/createVersion.js.map +1 -0
  26. package/dist/deleteMany.d.ts +3 -0
  27. package/dist/deleteMany.d.ts.map +1 -0
  28. package/dist/deleteMany.js +32 -0
  29. package/dist/deleteMany.js.map +1 -0
  30. package/dist/deleteOne.d.ts +3 -0
  31. package/dist/deleteOne.d.ts.map +1 -0
  32. package/dist/deleteOne.js +63 -0
  33. package/dist/deleteOne.js.map +1 -0
  34. package/dist/deleteVersions.d.ts +3 -0
  35. package/dist/deleteVersions.d.ts.map +1 -0
  36. package/dist/deleteVersions.js +35 -0
  37. package/dist/deleteVersions.js.map +1 -0
  38. package/dist/destroy.d.ts +3 -0
  39. package/dist/destroy.d.ts.map +1 -0
  40. package/dist/destroy.js +15 -0
  41. package/dist/destroy.js.map +1 -0
  42. package/dist/find/buildFindManyArgs.d.ts +17 -0
  43. package/dist/find/buildFindManyArgs.d.ts.map +1 -0
  44. package/dist/find/buildFindManyArgs.js +65 -0
  45. package/dist/find/buildFindManyArgs.js.map +1 -0
  46. package/dist/find/chainMethods.d.ts +16 -0
  47. package/dist/find/chainMethods.d.ts.map +1 -0
  48. package/dist/find/chainMethods.js +12 -0
  49. package/dist/find/chainMethods.js.map +1 -0
  50. package/dist/find/findMany.d.ts +21 -0
  51. package/dist/find/findMany.d.ts.map +1 -0
  52. package/dist/find/findMany.js +141 -0
  53. package/dist/find/findMany.js.map +1 -0
  54. package/dist/find/traverseFields.d.ts +17 -0
  55. package/dist/find/traverseFields.d.ts.map +1 -0
  56. package/dist/find/traverseFields.js +156 -0
  57. package/dist/find/traverseFields.js.map +1 -0
  58. package/dist/find.d.ts +3 -0
  59. package/dist/find.d.ts.map +1 -0
  60. package/dist/find.js +21 -0
  61. package/dist/find.js.map +1 -0
  62. package/dist/findGlobal.d.ts +3 -0
  63. package/dist/findGlobal.d.ts.map +1 -0
  64. package/dist/findGlobal.js +23 -0
  65. package/dist/findGlobal.js.map +1 -0
  66. package/dist/findGlobalVersions.d.ts +3 -0
  67. package/dist/findGlobalVersions.d.ts.map +1 -0
  68. package/dist/findGlobalVersions.js +24 -0
  69. package/dist/findGlobalVersions.js.map +1 -0
  70. package/dist/findMigrationDir.d.ts +16 -0
  71. package/dist/findMigrationDir.d.ts.map +1 -0
  72. package/dist/findMigrationDir.js +36 -0
  73. package/dist/findMigrationDir.js.map +1 -0
  74. package/dist/findOne.d.ts +4 -0
  75. package/dist/findOne.d.ts.map +1 -0
  76. package/dist/findOne.js +21 -0
  77. package/dist/findOne.js.map +1 -0
  78. package/dist/findVersions.d.ts +3 -0
  79. package/dist/findVersions.d.ts.map +1 -0
  80. package/dist/findVersions.js +24 -0
  81. package/dist/findVersions.js.map +1 -0
  82. package/dist/index.d.ts +38 -0
  83. package/dist/index.d.ts.map +1 -0
  84. package/dist/index.js +38 -0
  85. package/dist/index.js.map +1 -0
  86. package/dist/migrate.d.ts +3 -0
  87. package/dist/migrate.d.ts.map +1 -0
  88. package/dist/migrate.js +97 -0
  89. package/dist/migrate.js.map +1 -0
  90. package/dist/migrateDown.d.ts +3 -0
  91. package/dist/migrateDown.d.ts.map +1 -0
  92. package/dist/migrateDown.js +63 -0
  93. package/dist/migrateDown.js.map +1 -0
  94. package/dist/migrateFresh.d.ts +8 -0
  95. package/dist/migrateFresh.d.ts.map +1 -0
  96. package/dist/migrateFresh.js +75 -0
  97. package/dist/migrateFresh.js.map +1 -0
  98. package/dist/migrateRefresh.d.ts +6 -0
  99. package/dist/migrateRefresh.d.ts.map +1 -0
  100. package/dist/migrateRefresh.js +102 -0
  101. package/dist/migrateRefresh.js.map +1 -0
  102. package/dist/migrateReset.d.ts +6 -0
  103. package/dist/migrateReset.d.ts.map +1 -0
  104. package/dist/migrateReset.js +82 -0
  105. package/dist/migrateReset.js.map +1 -0
  106. package/dist/migrateStatus.d.ts +3 -0
  107. package/dist/migrateStatus.d.ts.map +1 -0
  108. package/dist/migrateStatus.js +44 -0
  109. package/dist/migrateStatus.js.map +1 -0
  110. package/dist/queries/buildAndOrConditions.d.ts +16 -0
  111. package/dist/queries/buildAndOrConditions.d.ts.map +1 -0
  112. package/dist/queries/buildAndOrConditions.js +28 -0
  113. package/dist/queries/buildAndOrConditions.js.map +1 -0
  114. package/dist/queries/buildQuery.d.ts +29 -0
  115. package/dist/queries/buildQuery.d.ts.map +1 -0
  116. package/dist/queries/buildQuery.js +72 -0
  117. package/dist/queries/buildQuery.js.map +1 -0
  118. package/dist/queries/getTableAlias.d.ts +13 -0
  119. package/dist/queries/getTableAlias.d.ts.map +1 -0
  120. package/dist/queries/getTableAlias.js +20 -0
  121. package/dist/queries/getTableAlias.js.map +1 -0
  122. package/dist/queries/getTableColumnFromPath.d.ts +51 -0
  123. package/dist/queries/getTableColumnFromPath.d.ts.map +1 -0
  124. package/dist/queries/getTableColumnFromPath.js +532 -0
  125. package/dist/queries/getTableColumnFromPath.js.map +1 -0
  126. package/dist/queries/operatorMap.d.ts +6 -0
  127. package/dist/queries/operatorMap.d.ts.map +1 -0
  128. package/dist/queries/operatorMap.js +24 -0
  129. package/dist/queries/operatorMap.js.map +1 -0
  130. package/dist/queries/parseParams.d.ts +16 -0
  131. package/dist/queries/parseParams.d.ts.map +1 -0
  132. package/dist/queries/parseParams.js +188 -0
  133. package/dist/queries/parseParams.js.map +1 -0
  134. package/dist/queries/sanitizeQueryValue.d.ts +15 -0
  135. package/dist/queries/sanitizeQueryValue.d.ts.map +1 -0
  136. package/dist/queries/sanitizeQueryValue.js +120 -0
  137. package/dist/queries/sanitizeQueryValue.js.map +1 -0
  138. package/dist/queries/selectDistinct.d.ts +22 -0
  139. package/dist/queries/selectDistinct.d.ts.map +1 -0
  140. package/dist/queries/selectDistinct.js +38 -0
  141. package/dist/queries/selectDistinct.js.map +1 -0
  142. package/dist/queryDrafts.d.ts +3 -0
  143. package/dist/queryDrafts.d.ts.map +1 -0
  144. package/dist/queryDrafts.js +40 -0
  145. package/dist/queryDrafts.js.map +1 -0
  146. package/dist/transactions/beginTransaction.d.ts +3 -0
  147. package/dist/transactions/beginTransaction.d.ts.map +1 -0
  148. package/dist/transactions/beginTransaction.js +51 -0
  149. package/dist/transactions/beginTransaction.js.map +1 -0
  150. package/dist/transactions/commitTransaction.d.ts +3 -0
  151. package/dist/transactions/commitTransaction.d.ts.map +1 -0
  152. package/dist/transactions/commitTransaction.js +15 -0
  153. package/dist/transactions/commitTransaction.js.map +1 -0
  154. package/dist/transactions/rollbackTransaction.d.ts +3 -0
  155. package/dist/transactions/rollbackTransaction.d.ts.map +1 -0
  156. package/dist/transactions/rollbackTransaction.js +14 -0
  157. package/dist/transactions/rollbackTransaction.js.map +1 -0
  158. package/dist/transform/read/hasManyNumber.d.ts +10 -0
  159. package/dist/transform/read/hasManyNumber.d.ts.map +1 -0
  160. package/dist/transform/read/hasManyNumber.js +10 -0
  161. package/dist/transform/read/hasManyNumber.js.map +1 -0
  162. package/dist/transform/read/hasManyText.d.ts +10 -0
  163. package/dist/transform/read/hasManyText.d.ts.map +1 -0
  164. package/dist/transform/read/hasManyText.js +10 -0
  165. package/dist/transform/read/hasManyText.js.map +1 -0
  166. package/dist/transform/read/index.d.ts +13 -0
  167. package/dist/transform/read/index.d.ts.map +1 -0
  168. package/dist/transform/read/index.js +44 -0
  169. package/dist/transform/read/index.js.map +1 -0
  170. package/dist/transform/read/relationship.d.ts +10 -0
  171. package/dist/transform/read/relationship.d.ts.map +1 -0
  172. package/dist/transform/read/relationship.js +60 -0
  173. package/dist/transform/read/relationship.js.map +1 -0
  174. package/dist/transform/read/traverseFields.d.ts +57 -0
  175. package/dist/transform/read/traverseFields.d.ts.map +1 -0
  176. package/dist/transform/read/traverseFields.js +435 -0
  177. package/dist/transform/read/traverseFields.js.map +1 -0
  178. package/dist/transform/write/array.d.ts +26 -0
  179. package/dist/transform/write/array.d.ts.map +1 -0
  180. package/dist/transform/write/array.js +58 -0
  181. package/dist/transform/write/array.js.map +1 -0
  182. package/dist/transform/write/blocks.d.ts +25 -0
  183. package/dist/transform/write/blocks.d.ts.map +1 -0
  184. package/dist/transform/write/blocks.js +54 -0
  185. package/dist/transform/write/blocks.js.map +1 -0
  186. package/dist/transform/write/index.d.ts +13 -0
  187. package/dist/transform/write/index.d.ts.map +1 -0
  188. package/dist/transform/write/index.js +41 -0
  189. package/dist/transform/write/index.js.map +1 -0
  190. package/dist/transform/write/numbers.d.ts +8 -0
  191. package/dist/transform/write/numbers.d.ts.map +1 -0
  192. package/dist/transform/write/numbers.js +11 -0
  193. package/dist/transform/write/numbers.js.map +1 -0
  194. package/dist/transform/write/relationships.d.ts +10 -0
  195. package/dist/transform/write/relationships.d.ts.map +1 -0
  196. package/dist/transform/write/relationships.js +23 -0
  197. package/dist/transform/write/relationships.js.map +1 -0
  198. package/dist/transform/write/selects.d.ts +8 -0
  199. package/dist/transform/write/selects.d.ts.map +1 -0
  200. package/dist/transform/write/selects.js +20 -0
  201. package/dist/transform/write/selects.js.map +1 -0
  202. package/dist/transform/write/texts.d.ts +8 -0
  203. package/dist/transform/write/texts.d.ts.map +1 -0
  204. package/dist/transform/write/texts.js +11 -0
  205. package/dist/transform/write/texts.js.map +1 -0
  206. package/dist/transform/write/traverseFields.d.ts +50 -0
  207. package/dist/transform/write/traverseFields.d.ts.map +1 -0
  208. package/dist/transform/write/traverseFields.js +452 -0
  209. package/dist/transform/write/traverseFields.js.map +1 -0
  210. package/dist/transform/write/types.d.ts +43 -0
  211. package/dist/transform/write/types.d.ts.map +1 -0
  212. package/dist/transform/write/types.js +3 -0
  213. package/dist/transform/write/types.js.map +1 -0
  214. package/dist/types.d.ts +145 -0
  215. package/dist/types.d.ts.map +1 -0
  216. package/dist/types.js +3 -0
  217. package/dist/types.js.map +1 -0
  218. package/dist/update.d.ts +3 -0
  219. package/dist/update.d.ts.map +1 -0
  220. package/dist/update.js +54 -0
  221. package/dist/update.js.map +1 -0
  222. package/dist/updateGlobal.d.ts +4 -0
  223. package/dist/updateGlobal.d.ts.map +1 -0
  224. package/dist/updateGlobal.js +25 -0
  225. package/dist/updateGlobal.js.map +1 -0
  226. package/dist/updateGlobalVersion.d.ts +4 -0
  227. package/dist/updateGlobalVersion.d.ts.map +1 -0
  228. package/dist/updateGlobalVersion.js +36 -0
  229. package/dist/updateGlobalVersion.js.map +1 -0
  230. package/dist/updateVersion.d.ts +4 -0
  231. package/dist/updateVersion.d.ts.map +1 -0
  232. package/dist/updateVersion.js +36 -0
  233. package/dist/updateVersion.js.map +1 -0
  234. package/dist/upsertRow/deleteExistingArrayRows.d.ts +10 -0
  235. package/dist/upsertRow/deleteExistingArrayRows.d.ts.map +1 -0
  236. package/dist/upsertRow/deleteExistingArrayRows.js +14 -0
  237. package/dist/upsertRow/deleteExistingArrayRows.js.map +1 -0
  238. package/dist/upsertRow/deleteExistingRowsByPath.d.ts +14 -0
  239. package/dist/upsertRow/deleteExistingRowsByPath.d.ts.map +1 -0
  240. package/dist/upsertRow/deleteExistingRowsByPath.js +41 -0
  241. package/dist/upsertRow/deleteExistingRowsByPath.js.map +1 -0
  242. package/dist/upsertRow/index.d.ts +4 -0
  243. package/dist/upsertRow/index.d.ts.map +1 -0
  244. package/dist/upsertRow/index.js +337 -0
  245. package/dist/upsertRow/index.js.map +1 -0
  246. package/dist/upsertRow/insertArrays.d.ts +13 -0
  247. package/dist/upsertRow/insertArrays.d.ts.map +1 -0
  248. package/dist/upsertRow/insertArrays.js +76 -0
  249. package/dist/upsertRow/insertArrays.js.map +1 -0
  250. package/dist/upsertRow/types.d.ts +32 -0
  251. package/dist/upsertRow/types.d.ts.map +1 -0
  252. package/dist/upsertRow/types.js +3 -0
  253. package/dist/upsertRow/types.js.map +1 -0
  254. package/dist/utilities/appendPrefixToKeys.d.ts +2 -0
  255. package/dist/utilities/appendPrefixToKeys.d.ts.map +1 -0
  256. package/dist/utilities/appendPrefixToKeys.js +6 -0
  257. package/dist/utilities/appendPrefixToKeys.js.map +1 -0
  258. package/dist/utilities/createBlocksMap.d.ts +5 -0
  259. package/dist/utilities/createBlocksMap.d.ts.map +1 -0
  260. package/dist/utilities/createBlocksMap.js +29 -0
  261. package/dist/utilities/createBlocksMap.js.map +1 -0
  262. package/dist/utilities/createRelationshipMap.d.ts +2 -0
  263. package/dist/utilities/createRelationshipMap.d.ts.map +1 -0
  264. package/dist/utilities/createRelationshipMap.js +19 -0
  265. package/dist/utilities/createRelationshipMap.js.map +1 -0
  266. package/dist/utilities/hasLocalesTable.d.ts +3 -0
  267. package/dist/utilities/hasLocalesTable.d.ts.map +1 -0
  268. package/dist/utilities/hasLocalesTable.js +11 -0
  269. package/dist/utilities/hasLocalesTable.js.map +1 -0
  270. package/dist/utilities/isArrayOfRows.d.ts +2 -0
  271. package/dist/utilities/isArrayOfRows.d.ts.map +1 -0
  272. package/dist/utilities/isArrayOfRows.js +5 -0
  273. package/dist/utilities/isArrayOfRows.js.map +1 -0
  274. package/dist/utilities/migrationTableExists.d.ts +3 -0
  275. package/dist/utilities/migrationTableExists.d.ts.map +1 -0
  276. package/dist/utilities/migrationTableExists.js +25 -0
  277. package/dist/utilities/migrationTableExists.js.map +1 -0
  278. package/dist/utilities/parseError.d.ts +5 -0
  279. package/dist/utilities/parseError.d.ts.map +1 -0
  280. package/dist/utilities/parseError.js +15 -0
  281. package/dist/utilities/parseError.js.map +1 -0
  282. package/dist/utilities/pushDevSchema.d.ts +9 -0
  283. package/dist/utilities/pushDevSchema.d.ts.map +1 -0
  284. package/dist/utilities/pushDevSchema.js +53 -0
  285. package/dist/utilities/pushDevSchema.js.map +1 -0
  286. package/dist/utilities/validateExistingBlockIsIdentical.d.ts +11 -0
  287. package/dist/utilities/validateExistingBlockIsIdentical.d.ts.map +1 -0
  288. package/dist/utilities/validateExistingBlockIsIdentical.js +76 -0
  289. package/dist/utilities/validateExistingBlockIsIdentical.js.map +1 -0
  290. package/package.json +53 -0
@@ -0,0 +1,435 @@
1
+ /* eslint-disable no-param-reassign */ import { fieldAffectsData } from 'payload/shared';
2
+ import { transformHasManyNumber } from './hasManyNumber.js';
3
+ import { transformHasManyText } from './hasManyText.js';
4
+ import { transformRelationship } from './relationship.js';
5
+ // Traverse fields recursively, transforming data
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 })=>{
8
+ const sanitizedPath = path ? `${path}.` : path;
9
+ const formatted = fields.reduce((result, field)=>{
10
+ if (field.type === 'tabs') {
11
+ traverseFields({
12
+ adapter,
13
+ blocks,
14
+ config,
15
+ dataRef,
16
+ deletions,
17
+ fieldPrefix,
18
+ fields: field.tabs.map((tab)=>({
19
+ ...tab,
20
+ type: 'tab'
21
+ })),
22
+ numbers,
23
+ path,
24
+ relationships,
25
+ table,
26
+ texts
27
+ });
28
+ }
29
+ if (field.type === 'collapsible' || field.type === 'row' || field.type === 'tab' && !('name' in field)) {
30
+ traverseFields({
31
+ adapter,
32
+ blocks,
33
+ config,
34
+ dataRef,
35
+ deletions,
36
+ fieldPrefix,
37
+ fields: field.fields,
38
+ numbers,
39
+ path,
40
+ relationships,
41
+ table,
42
+ texts
43
+ });
44
+ }
45
+ if (fieldAffectsData(field)) {
46
+ const fieldName = `${fieldPrefix || ''}${field.name}`;
47
+ const fieldData = table[fieldName];
48
+ const localizedFieldData = {};
49
+ const valuesToTransform = [];
50
+ if (fieldPrefix) {
51
+ deletions.push(()=>delete table[fieldName]);
52
+ }
53
+ if (field.type === 'array') {
54
+ if (Array.isArray(fieldData)) {
55
+ if (field.localized) {
56
+ result[field.name] = fieldData.reduce((arrayResult, row)=>{
57
+ if (typeof row._locale === 'string') {
58
+ if (!arrayResult[row._locale]) arrayResult[row._locale] = [];
59
+ const locale = row._locale;
60
+ const data = {};
61
+ delete row._locale;
62
+ if (row._uuid) {
63
+ row.id = row._uuid;
64
+ delete row._uuid;
65
+ }
66
+ const rowResult = traverseFields({
67
+ adapter,
68
+ blocks,
69
+ config,
70
+ dataRef: data,
71
+ deletions,
72
+ fieldPrefix: '',
73
+ fields: field.fields,
74
+ numbers,
75
+ path: `${sanitizedPath}${field.name}.${row._order - 1}`,
76
+ relationships,
77
+ table: row,
78
+ texts
79
+ });
80
+ if ('_order' in rowResult) {
81
+ delete rowResult._order;
82
+ }
83
+ arrayResult[locale].push(rowResult);
84
+ }
85
+ return arrayResult;
86
+ }, {});
87
+ } else {
88
+ result[field.name] = fieldData.map((row, i)=>{
89
+ if (row._uuid) {
90
+ row.id = row._uuid;
91
+ delete row._uuid;
92
+ }
93
+ if ('_order' in row) {
94
+ delete row._order;
95
+ }
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
+ });
111
+ }
112
+ }
113
+ return result;
114
+ }
115
+ if (field.type === 'blocks') {
116
+ const blockFieldPath = `${sanitizedPath}${field.name}`;
117
+ if (Array.isArray(blocks[blockFieldPath])) {
118
+ if (field.localized) {
119
+ result[field.name] = {};
120
+ blocks[blockFieldPath].forEach((row)=>{
121
+ if (row._uuid) {
122
+ row.id = row._uuid;
123
+ delete row._uuid;
124
+ }
125
+ if (typeof row._locale === 'string') {
126
+ if (!result[field.name][row._locale]) result[field.name][row._locale] = [];
127
+ result[field.name][row._locale].push(row);
128
+ delete row._locale;
129
+ }
130
+ });
131
+ Object.entries(result[field.name]).forEach(([locale, localizedBlocks])=>{
132
+ result[field.name][locale] = localizedBlocks.map((row)=>{
133
+ const block = field.blocks.find(({ slug })=>slug === row.blockType);
134
+ if (block) {
135
+ const blockResult = traverseFields({
136
+ adapter,
137
+ blocks,
138
+ config,
139
+ dataRef: row,
140
+ deletions,
141
+ fieldPrefix: '',
142
+ fields: block.fields,
143
+ numbers,
144
+ path: `${blockFieldPath}.${row._order - 1}`,
145
+ relationships,
146
+ table: row,
147
+ texts
148
+ });
149
+ delete blockResult._order;
150
+ return blockResult;
151
+ }
152
+ return {};
153
+ });
154
+ });
155
+ } else {
156
+ result[field.name] = blocks[blockFieldPath].map((row, i)=>{
157
+ delete row._order;
158
+ if (row._uuid) {
159
+ row.id = row._uuid;
160
+ delete row._uuid;
161
+ }
162
+ const block = field.blocks.find(({ slug })=>slug === row.blockType);
163
+ 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
+ });
178
+ }
179
+ return {};
180
+ });
181
+ }
182
+ }
183
+ return result;
184
+ }
185
+ if (field.type === 'relationship' || field.type === 'upload') {
186
+ if (typeof field.relationTo === 'string' && !('hasMany' in field && field.hasMany)) {
187
+ if (field.localized && config.localization && config.localization.locales && Array.isArray(table?._locales)) {
188
+ table._locales.forEach((localeRow)=>{
189
+ result[field.name] = {
190
+ [localeRow._locale]: localeRow[fieldName]
191
+ };
192
+ });
193
+ } else {
194
+ valuesToTransform.push({
195
+ ref: result,
196
+ table
197
+ });
198
+ }
199
+ } else {
200
+ const relationPathMatch = relationships[`${sanitizedPath}${field.name}`];
201
+ if (!relationPathMatch) {
202
+ if ('hasMany' in field && field.hasMany) {
203
+ if (field.localized && config.localization && config.localization.locales) {
204
+ result[field.name] = {
205
+ [config.localization.defaultLocale]: []
206
+ };
207
+ } else {
208
+ result[field.name] = [];
209
+ }
210
+ }
211
+ return result;
212
+ }
213
+ if (field.localized) {
214
+ result[field.name] = {};
215
+ const relationsByLocale = {};
216
+ relationPathMatch.forEach((row)=>{
217
+ if (typeof row.locale === 'string') {
218
+ if (!relationsByLocale[row.locale]) relationsByLocale[row.locale] = [];
219
+ relationsByLocale[row.locale].push(row);
220
+ }
221
+ });
222
+ Object.entries(relationsByLocale).forEach(([locale, relations])=>{
223
+ transformRelationship({
224
+ field,
225
+ locale,
226
+ ref: result,
227
+ relations
228
+ });
229
+ });
230
+ } else {
231
+ transformRelationship({
232
+ field,
233
+ ref: result,
234
+ relations: relationPathMatch
235
+ });
236
+ }
237
+ return result;
238
+ }
239
+ }
240
+ if (field.type === 'text' && field?.hasMany) {
241
+ const textPathMatch = texts[`${sanitizedPath}${field.name}`];
242
+ if (!textPathMatch) return result;
243
+ if (field.localized) {
244
+ result[field.name] = {};
245
+ const textsByLocale = {};
246
+ textPathMatch.forEach((row)=>{
247
+ if (typeof row.locale === 'string') {
248
+ if (!textsByLocale[row.locale]) textsByLocale[row.locale] = [];
249
+ textsByLocale[row.locale].push(row);
250
+ }
251
+ });
252
+ Object.entries(textsByLocale).forEach(([locale, texts])=>{
253
+ transformHasManyText({
254
+ field,
255
+ locale,
256
+ ref: result,
257
+ textRows: texts
258
+ });
259
+ });
260
+ } else {
261
+ transformHasManyText({
262
+ field,
263
+ ref: result,
264
+ textRows: textPathMatch
265
+ });
266
+ }
267
+ return result;
268
+ }
269
+ if (field.type === 'number' && field.hasMany) {
270
+ const numberPathMatch = numbers[`${sanitizedPath}${field.name}`];
271
+ if (!numberPathMatch) return result;
272
+ if (field.localized) {
273
+ result[field.name] = {};
274
+ const numbersByLocale = {};
275
+ numberPathMatch.forEach((row)=>{
276
+ if (typeof row.locale === 'string') {
277
+ if (!numbersByLocale[row.locale]) numbersByLocale[row.locale] = [];
278
+ numbersByLocale[row.locale].push(row);
279
+ }
280
+ });
281
+ Object.entries(numbersByLocale).forEach(([locale, numbers])=>{
282
+ transformHasManyNumber({
283
+ field,
284
+ locale,
285
+ numberRows: numbers,
286
+ ref: result
287
+ });
288
+ });
289
+ } else {
290
+ transformHasManyNumber({
291
+ field,
292
+ numberRows: numberPathMatch,
293
+ ref: result
294
+ });
295
+ }
296
+ return result;
297
+ }
298
+ if (field.type === 'select' && field.hasMany) {
299
+ if (Array.isArray(fieldData)) {
300
+ if (field.localized) {
301
+ result[field.name] = fieldData.reduce((selectResult, row)=>{
302
+ if (typeof row.locale === 'string') {
303
+ if (!selectResult[row.locale]) selectResult[row.locale] = [];
304
+ selectResult[row.locale].push(row.value);
305
+ }
306
+ return selectResult;
307
+ }, {});
308
+ } else {
309
+ result[field.name] = fieldData.map(({ value })=>value);
310
+ }
311
+ }
312
+ return result;
313
+ }
314
+ if (field.localized && Array.isArray(table._locales)) {
315
+ table._locales.forEach((localeRow)=>{
316
+ valuesToTransform.push({
317
+ ref: localizedFieldData,
318
+ table: localeRow
319
+ });
320
+ });
321
+ } else {
322
+ valuesToTransform.push({
323
+ ref: result,
324
+ table
325
+ });
326
+ }
327
+ valuesToTransform.forEach(({ ref, table })=>{
328
+ const fieldData = table[`${fieldPrefix || ''}${field.name}`];
329
+ const locale = table?._locale;
330
+ let val = fieldData;
331
+ switch(field.type){
332
+ case 'tab':
333
+ case 'group':
334
+ {
335
+ const groupFieldPrefix = `${fieldPrefix || ''}${field.name}_`;
336
+ if (field.localized) {
337
+ if (typeof locale === 'string' && !ref[locale]) {
338
+ ref[locale] = {};
339
+ delete table._locale;
340
+ }
341
+ Object.entries(ref).forEach(([groupLocale, groupLocaleData])=>{
342
+ ref[groupLocale] = traverseFields({
343
+ adapter,
344
+ blocks,
345
+ config,
346
+ dataRef: groupLocaleData,
347
+ deletions,
348
+ fieldPrefix: groupFieldPrefix,
349
+ fields: field.fields,
350
+ numbers,
351
+ path: `${sanitizedPath}${field.name}`,
352
+ relationships,
353
+ table,
354
+ texts
355
+ });
356
+ });
357
+ if ('_order' in ref) {
358
+ delete ref._order;
359
+ }
360
+ } else {
361
+ const groupData = {};
362
+ ref[field.name] = traverseFields({
363
+ adapter,
364
+ blocks,
365
+ config,
366
+ dataRef: groupData,
367
+ deletions,
368
+ fieldPrefix: groupFieldPrefix,
369
+ fields: field.fields,
370
+ numbers,
371
+ path: `${sanitizedPath}${field.name}`,
372
+ relationships,
373
+ table,
374
+ texts
375
+ });
376
+ if ('_order' in ref) {
377
+ delete ref._order;
378
+ }
379
+ }
380
+ return;
381
+ }
382
+ case 'text':
383
+ {
384
+ if (typeof fieldData === 'string') {
385
+ val = String(fieldData);
386
+ }
387
+ break;
388
+ }
389
+ case 'number':
390
+ {
391
+ if (typeof fieldData === 'string') {
392
+ val = Number.parseFloat(fieldData);
393
+ }
394
+ break;
395
+ }
396
+ case 'date':
397
+ {
398
+ if (typeof fieldData === 'string') {
399
+ val = new Date(fieldData).toISOString();
400
+ }
401
+ break;
402
+ }
403
+ case 'relationship':
404
+ case 'upload':
405
+ {
406
+ if (val && typeof field.relationTo === 'string' && adapter.payload.collections[field.relationTo].customIDType === 'number') {
407
+ val = Number(val);
408
+ }
409
+ break;
410
+ }
411
+ default:
412
+ {
413
+ break;
414
+ }
415
+ }
416
+ if (typeof locale === 'string') {
417
+ ref[locale] = val;
418
+ } else {
419
+ result[field.name] = val;
420
+ }
421
+ });
422
+ if (Object.keys(localizedFieldData).length > 0) {
423
+ result[field.name] = localizedFieldData;
424
+ }
425
+ return result;
426
+ }
427
+ return result;
428
+ }, dataRef);
429
+ if (Array.isArray(table._locales)) {
430
+ deletions.push(()=>delete table._locales);
431
+ }
432
+ return formatted;
433
+ };
434
+
435
+ //# sourceMappingURL=traverseFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transform/read/traverseFields.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport type { Field, TabAsField } from 'payload'\nimport type { SanitizedConfig } 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({ ref: localizedFieldData, table: localeRow })\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\n if (field.localized) {\n if (typeof locale === 'string' && !ref[locale]) {\n ref[locale] = {}\n delete table._locale\n }\n\n Object.entries(ref).forEach(([groupLocale, groupLocaleData]) => {\n ref[groupLocale] = traverseFields<Record<string, unknown>>({\n adapter,\n blocks,\n config,\n dataRef: groupLocaleData 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 } else {\n const groupData = {}\n\n ref[field.name] = 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 if ('_order' in ref) {\n delete ref._order\n }\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","groupLocale","groupLocaleData","groupData","String","Number","parseFloat","Date","toISOString","payload","collections","customIDType","keys","length"],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { ArrayField } from 'payload';
2
+ import type { DrizzleAdapter } from '../../types.js';
3
+ import type { ArrayRowToInsert, BlockRowToInsert, RelationshipToDelete } from './types.js';
4
+ type Args = {
5
+ adapter: DrizzleAdapter;
6
+ arrayTableName: string;
7
+ baseTableName: string;
8
+ blocks: {
9
+ [blockType: string]: BlockRowToInsert[];
10
+ };
11
+ blocksToDelete: Set<string>;
12
+ data: unknown;
13
+ field: ArrayField;
14
+ locale?: string;
15
+ numbers: Record<string, unknown>[];
16
+ path: string;
17
+ relationships: Record<string, unknown>[];
18
+ relationshipsToDelete: RelationshipToDelete[];
19
+ selects: {
20
+ [tableName: string]: Record<string, unknown>[];
21
+ };
22
+ texts: Record<string, unknown>[];
23
+ };
24
+ export declare const transformArray: ({ adapter, arrayTableName, baseTableName, blocks, blocksToDelete, data, field, locale, numbers, path, relationships, relationshipsToDelete, selects, texts, }: Args) => ArrayRowToInsert[];
25
+ export {};
26
+ //# sourceMappingURL=array.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,58 @@
1
+ /* eslint-disable no-param-reassign */ import { isArrayOfRows } from '../../utilities/isArrayOfRows.js';
2
+ import { traverseFields } from './traverseFields.js';
3
+ export const transformArray = ({ adapter, arrayTableName, baseTableName, blocks, blocksToDelete, data, field, locale, numbers, path, relationships, relationshipsToDelete, selects, texts })=>{
4
+ const newRows = [];
5
+ const hasUUID = adapter.tables[arrayTableName]._uuid;
6
+ if (isArrayOfRows(data)) {
7
+ data.forEach((arrayRow, i)=>{
8
+ const newRow = {
9
+ arrays: {},
10
+ locales: {},
11
+ row: {
12
+ _order: i + 1
13
+ }
14
+ };
15
+ // If we have declared a _uuid field on arrays,
16
+ // that means the ID has to be unique,
17
+ // and our ids within arrays are not unique.
18
+ // So move the ID to a uuid field for storage
19
+ // and allow the database to generate a serial id automatically
20
+ if (hasUUID) {
21
+ newRow.row._uuid = arrayRow.id;
22
+ delete arrayRow.id;
23
+ }
24
+ if (locale) {
25
+ newRow.locales[locale] = {
26
+ _locale: locale
27
+ };
28
+ }
29
+ if (field.localized) {
30
+ newRow.row._locale = locale;
31
+ }
32
+ traverseFields({
33
+ adapter,
34
+ arrays: newRow.arrays,
35
+ baseTableName,
36
+ blocks,
37
+ blocksToDelete,
38
+ columnPrefix: '',
39
+ data: arrayRow,
40
+ fieldPrefix: '',
41
+ fields: field.fields,
42
+ locales: newRow.locales,
43
+ numbers,
44
+ parentTableName: arrayTableName,
45
+ path: `${path || ''}${field.name}.${i}.`,
46
+ relationships,
47
+ relationshipsToDelete,
48
+ row: newRow.row,
49
+ selects,
50
+ texts
51
+ });
52
+ newRows.push(newRow);
53
+ });
54
+ }
55
+ return newRows;
56
+ };
57
+
58
+ //# sourceMappingURL=array.js.map
@@ -0,0 +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"}
@@ -0,0 +1,25 @@
1
+ import type { BlockField } from 'payload';
2
+ import type { DrizzleAdapter } from '../../types.js';
3
+ import type { BlockRowToInsert, RelationshipToDelete } from './types.js';
4
+ type Args = {
5
+ adapter: DrizzleAdapter;
6
+ baseTableName: string;
7
+ blocks: {
8
+ [blockType: string]: BlockRowToInsert[];
9
+ };
10
+ blocksToDelete: Set<string>;
11
+ data: Record<string, unknown>[];
12
+ field: BlockField;
13
+ locale?: string;
14
+ numbers: Record<string, unknown>[];
15
+ path: string;
16
+ relationships: Record<string, unknown>[];
17
+ relationshipsToDelete: RelationshipToDelete[];
18
+ selects: {
19
+ [tableName: string]: Record<string, unknown>[];
20
+ };
21
+ texts: Record<string, unknown>[];
22
+ };
23
+ export declare const transformBlocks: ({ adapter, baseTableName, blocks, blocksToDelete, data, field, locale, numbers, path, relationships, relationshipsToDelete, selects, texts, }: Args) => void;
24
+ export {};
25
+ //# sourceMappingURL=blocks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../../src/transform/write/blocks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAIzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAIxE,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,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,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAC/B,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;AACD,eAAO,MAAM,eAAe,kJAczB,IAAI,SAyDN,CAAA"}