@payloadcms/drizzle 3.0.0-beta.100

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 (378) 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 +35 -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 +45 -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 +17 -0
  41. package/dist/destroy.js.map +1 -0
  42. package/dist/exports/postgres.d.ts +14 -0
  43. package/dist/exports/postgres.d.ts.map +1 -0
  44. package/dist/exports/postgres.js +15 -0
  45. package/dist/exports/postgres.js.map +1 -0
  46. package/dist/find/buildFindManyArgs.d.ts +17 -0
  47. package/dist/find/buildFindManyArgs.d.ts.map +1 -0
  48. package/dist/find/buildFindManyArgs.js +66 -0
  49. package/dist/find/buildFindManyArgs.js.map +1 -0
  50. package/dist/find/chainMethods.d.ts +16 -0
  51. package/dist/find/chainMethods.d.ts.map +1 -0
  52. package/dist/find/chainMethods.js +12 -0
  53. package/dist/find/chainMethods.js.map +1 -0
  54. package/dist/find/findMany.d.ts +21 -0
  55. package/dist/find/findMany.d.ts.map +1 -0
  56. package/dist/find/findMany.js +141 -0
  57. package/dist/find/findMany.js.map +1 -0
  58. package/dist/find/traverseFields.d.ts +18 -0
  59. package/dist/find/traverseFields.d.ts.map +1 -0
  60. package/dist/find/traverseFields.js +164 -0
  61. package/dist/find/traverseFields.js.map +1 -0
  62. package/dist/find.d.ts +3 -0
  63. package/dist/find.d.ts.map +1 -0
  64. package/dist/find.js +21 -0
  65. package/dist/find.js.map +1 -0
  66. package/dist/findGlobal.d.ts +3 -0
  67. package/dist/findGlobal.d.ts.map +1 -0
  68. package/dist/findGlobal.js +23 -0
  69. package/dist/findGlobal.js.map +1 -0
  70. package/dist/findGlobalVersions.d.ts +3 -0
  71. package/dist/findGlobalVersions.d.ts.map +1 -0
  72. package/dist/findGlobalVersions.js +24 -0
  73. package/dist/findGlobalVersions.js.map +1 -0
  74. package/dist/findMigrationDir.d.ts +16 -0
  75. package/dist/findMigrationDir.d.ts.map +1 -0
  76. package/dist/findMigrationDir.js +38 -0
  77. package/dist/findMigrationDir.js.map +1 -0
  78. package/dist/findOne.d.ts +4 -0
  79. package/dist/findOne.d.ts.map +1 -0
  80. package/dist/findOne.js +21 -0
  81. package/dist/findOne.js.map +1 -0
  82. package/dist/findVersions.d.ts +3 -0
  83. package/dist/findVersions.d.ts.map +1 -0
  84. package/dist/findVersions.js +24 -0
  85. package/dist/findVersions.js.map +1 -0
  86. package/dist/index.d.ts +38 -0
  87. package/dist/index.d.ts.map +1 -0
  88. package/dist/index.js +38 -0
  89. package/dist/index.js.map +1 -0
  90. package/dist/migrate.d.ts +3 -0
  91. package/dist/migrate.d.ts.map +1 -0
  92. package/dist/migrate.js +94 -0
  93. package/dist/migrate.js.map +1 -0
  94. package/dist/migrateDown.d.ts +3 -0
  95. package/dist/migrateDown.d.ts.map +1 -0
  96. package/dist/migrateDown.js +63 -0
  97. package/dist/migrateDown.js.map +1 -0
  98. package/dist/migrateFresh.d.ts +8 -0
  99. package/dist/migrateFresh.d.ts.map +1 -0
  100. package/dist/migrateFresh.js +76 -0
  101. package/dist/migrateFresh.js.map +1 -0
  102. package/dist/migrateRefresh.d.ts +6 -0
  103. package/dist/migrateRefresh.d.ts.map +1 -0
  104. package/dist/migrateRefresh.js +103 -0
  105. package/dist/migrateRefresh.js.map +1 -0
  106. package/dist/migrateReset.d.ts +6 -0
  107. package/dist/migrateReset.d.ts.map +1 -0
  108. package/dist/migrateReset.js +84 -0
  109. package/dist/migrateReset.js.map +1 -0
  110. package/dist/migrateStatus.d.ts +3 -0
  111. package/dist/migrateStatus.d.ts.map +1 -0
  112. package/dist/migrateStatus.js +43 -0
  113. package/dist/migrateStatus.js.map +1 -0
  114. package/dist/postgres/countDistinct.d.ts +3 -0
  115. package/dist/postgres/countDistinct.d.ts.map +1 -0
  116. package/dist/postgres/countDistinct.js +24 -0
  117. package/dist/postgres/countDistinct.js.map +1 -0
  118. package/dist/postgres/createJSONQuery/convertPathToJSONTraversal.d.ts +2 -0
  119. package/dist/postgres/createJSONQuery/convertPathToJSONTraversal.d.ts.map +1 -0
  120. package/dist/postgres/createJSONQuery/convertPathToJSONTraversal.js +16 -0
  121. package/dist/postgres/createJSONQuery/convertPathToJSONTraversal.js.map +1 -0
  122. package/dist/postgres/createJSONQuery/formatJSONPathSegment.d.ts +2 -0
  123. package/dist/postgres/createJSONQuery/formatJSONPathSegment.d.ts.map +1 -0
  124. package/dist/postgres/createJSONQuery/formatJSONPathSegment.js +5 -0
  125. package/dist/postgres/createJSONQuery/formatJSONPathSegment.js.map +1 -0
  126. package/dist/postgres/createJSONQuery/index.d.ts +10 -0
  127. package/dist/postgres/createJSONQuery/index.d.ts.map +1 -0
  128. package/dist/postgres/createJSONQuery/index.js +54 -0
  129. package/dist/postgres/createJSONQuery/index.js.map +1 -0
  130. package/dist/postgres/createMigration.d.ts +3 -0
  131. package/dist/postgres/createMigration.d.ts.map +1 -0
  132. package/dist/postgres/createMigration.js +92 -0
  133. package/dist/postgres/createMigration.js.map +1 -0
  134. package/dist/postgres/defaultSnapshot.d.ts +3 -0
  135. package/dist/postgres/defaultSnapshot.d.ts.map +1 -0
  136. package/dist/postgres/defaultSnapshot.js +17 -0
  137. package/dist/postgres/defaultSnapshot.js.map +1 -0
  138. package/dist/postgres/deleteWhere.d.ts +3 -0
  139. package/dist/postgres/deleteWhere.d.ts.map +1 -0
  140. package/dist/postgres/deleteWhere.js +6 -0
  141. package/dist/postgres/deleteWhere.js.map +1 -0
  142. package/dist/postgres/dropDatabase.d.ts +3 -0
  143. package/dist/postgres/dropDatabase.d.ts.map +1 -0
  144. package/dist/postgres/dropDatabase.js +9 -0
  145. package/dist/postgres/dropDatabase.js.map +1 -0
  146. package/dist/postgres/execute.d.ts +3 -0
  147. package/dist/postgres/execute.d.ts.map +1 -0
  148. package/dist/postgres/execute.js +11 -0
  149. package/dist/postgres/execute.js.map +1 -0
  150. package/dist/postgres/getMigrationTemplate.d.ts +4 -0
  151. package/dist/postgres/getMigrationTemplate.d.ts.map +1 -0
  152. package/dist/postgres/getMigrationTemplate.js +13 -0
  153. package/dist/postgres/getMigrationTemplate.js.map +1 -0
  154. package/dist/postgres/init.d.ts +3 -0
  155. package/dist/postgres/init.d.ts.map +1 -0
  156. package/dist/postgres/init.js +95 -0
  157. package/dist/postgres/init.js.map +1 -0
  158. package/dist/postgres/insert.d.ts +3 -0
  159. package/dist/postgres/insert.d.ts.map +1 -0
  160. package/dist/postgres/insert.js +12 -0
  161. package/dist/postgres/insert.js.map +1 -0
  162. package/dist/postgres/requireDrizzleKit.d.ts +3 -0
  163. package/dist/postgres/requireDrizzleKit.d.ts.map +1 -0
  164. package/dist/postgres/requireDrizzleKit.js +5 -0
  165. package/dist/postgres/requireDrizzleKit.js.map +1 -0
  166. package/dist/postgres/schema/build.d.ts +40 -0
  167. package/dist/postgres/schema/build.d.ts.map +1 -0
  168. package/dist/postgres/schema/build.js +377 -0
  169. package/dist/postgres/schema/build.js.map +1 -0
  170. package/dist/postgres/schema/createIndex.d.ts +12 -0
  171. package/dist/postgres/schema/createIndex.d.ts.map +1 -0
  172. package/dist/postgres/schema/createIndex.js +20 -0
  173. package/dist/postgres/schema/createIndex.js.map +1 -0
  174. package/dist/postgres/schema/idToUUID.d.ts +3 -0
  175. package/dist/postgres/schema/idToUUID.d.ts.map +1 -0
  176. package/dist/postgres/schema/idToUUID.js +11 -0
  177. package/dist/postgres/schema/idToUUID.js.map +1 -0
  178. package/dist/postgres/schema/parentIDColumnMap.d.ts +4 -0
  179. package/dist/postgres/schema/parentIDColumnMap.d.ts.map +1 -0
  180. package/dist/postgres/schema/parentIDColumnMap.js +9 -0
  181. package/dist/postgres/schema/parentIDColumnMap.js.map +1 -0
  182. package/dist/postgres/schema/setColumnID.d.ts +11 -0
  183. package/dist/postgres/schema/setColumnID.d.ts.map +1 -0
  184. package/dist/postgres/schema/setColumnID.js +24 -0
  185. package/dist/postgres/schema/setColumnID.js.map +1 -0
  186. package/dist/postgres/schema/traverseFields.d.ts +40 -0
  187. package/dist/postgres/schema/traverseFields.d.ts.map +1 -0
  188. package/dist/postgres/schema/traverseFields.js +712 -0
  189. package/dist/postgres/schema/traverseFields.js.map +1 -0
  190. package/dist/postgres/schema/withDefault.d.ts +4 -0
  191. package/dist/postgres/schema/withDefault.d.ts.map +1 -0
  192. package/dist/postgres/schema/withDefault.js +12 -0
  193. package/dist/postgres/schema/withDefault.js.map +1 -0
  194. package/dist/postgres/types.d.ts +112 -0
  195. package/dist/postgres/types.d.ts.map +1 -0
  196. package/dist/postgres/types.js +3 -0
  197. package/dist/postgres/types.js.map +1 -0
  198. package/dist/queries/buildAndOrConditions.d.ts +16 -0
  199. package/dist/queries/buildAndOrConditions.d.ts.map +1 -0
  200. package/dist/queries/buildAndOrConditions.js +26 -0
  201. package/dist/queries/buildAndOrConditions.js.map +1 -0
  202. package/dist/queries/buildQuery.d.ts +29 -0
  203. package/dist/queries/buildQuery.d.ts.map +1 -0
  204. package/dist/queries/buildQuery.js +72 -0
  205. package/dist/queries/buildQuery.js.map +1 -0
  206. package/dist/queries/getTableAlias.d.ts +13 -0
  207. package/dist/queries/getTableAlias.d.ts.map +1 -0
  208. package/dist/queries/getTableAlias.js +20 -0
  209. package/dist/queries/getTableAlias.js.map +1 -0
  210. package/dist/queries/getTableColumnFromPath.d.ts +51 -0
  211. package/dist/queries/getTableColumnFromPath.d.ts.map +1 -0
  212. package/dist/queries/getTableColumnFromPath.js +534 -0
  213. package/dist/queries/getTableColumnFromPath.js.map +1 -0
  214. package/dist/queries/operatorMap.d.ts +6 -0
  215. package/dist/queries/operatorMap.d.ts.map +1 -0
  216. package/dist/queries/operatorMap.js +24 -0
  217. package/dist/queries/operatorMap.js.map +1 -0
  218. package/dist/queries/parseParams.d.ts +16 -0
  219. package/dist/queries/parseParams.d.ts.map +1 -0
  220. package/dist/queries/parseParams.js +188 -0
  221. package/dist/queries/parseParams.js.map +1 -0
  222. package/dist/queries/sanitizeQueryValue.d.ts +15 -0
  223. package/dist/queries/sanitizeQueryValue.d.ts.map +1 -0
  224. package/dist/queries/sanitizeQueryValue.js +128 -0
  225. package/dist/queries/sanitizeQueryValue.js.map +1 -0
  226. package/dist/queries/selectDistinct.d.ts +21 -0
  227. package/dist/queries/selectDistinct.d.ts.map +1 -0
  228. package/dist/queries/selectDistinct.js +38 -0
  229. package/dist/queries/selectDistinct.js.map +1 -0
  230. package/dist/queryDrafts.d.ts +3 -0
  231. package/dist/queryDrafts.d.ts.map +1 -0
  232. package/dist/queryDrafts.js +39 -0
  233. package/dist/queryDrafts.js.map +1 -0
  234. package/dist/transactions/beginTransaction.d.ts +3 -0
  235. package/dist/transactions/beginTransaction.d.ts.map +1 -0
  236. package/dist/transactions/beginTransaction.js +50 -0
  237. package/dist/transactions/beginTransaction.js.map +1 -0
  238. package/dist/transactions/commitTransaction.d.ts +3 -0
  239. package/dist/transactions/commitTransaction.d.ts.map +1 -0
  240. package/dist/transactions/commitTransaction.js +17 -0
  241. package/dist/transactions/commitTransaction.js.map +1 -0
  242. package/dist/transactions/rollbackTransaction.d.ts +3 -0
  243. package/dist/transactions/rollbackTransaction.d.ts.map +1 -0
  244. package/dist/transactions/rollbackTransaction.js +14 -0
  245. package/dist/transactions/rollbackTransaction.js.map +1 -0
  246. package/dist/transform/read/hasManyNumber.d.ts +11 -0
  247. package/dist/transform/read/hasManyNumber.d.ts.map +1 -0
  248. package/dist/transform/read/hasManyNumber.js +20 -0
  249. package/dist/transform/read/hasManyNumber.js.map +1 -0
  250. package/dist/transform/read/hasManyText.d.ts +11 -0
  251. package/dist/transform/read/hasManyText.d.ts.map +1 -0
  252. package/dist/transform/read/hasManyText.js +20 -0
  253. package/dist/transform/read/hasManyText.js.map +1 -0
  254. package/dist/transform/read/index.d.ts +13 -0
  255. package/dist/transform/read/index.d.ts.map +1 -0
  256. package/dist/transform/read/index.js +44 -0
  257. package/dist/transform/read/index.js.map +1 -0
  258. package/dist/transform/read/relationship.d.ts +11 -0
  259. package/dist/transform/read/relationship.d.ts.map +1 -0
  260. package/dist/transform/read/relationship.js +69 -0
  261. package/dist/transform/read/relationship.js.map +1 -0
  262. package/dist/transform/read/traverseFields.d.ts +60 -0
  263. package/dist/transform/read/traverseFields.d.ts.map +1 -0
  264. package/dist/transform/read/traverseFields.js +456 -0
  265. package/dist/transform/read/traverseFields.js.map +1 -0
  266. package/dist/transform/write/array.d.ts +31 -0
  267. package/dist/transform/write/array.d.ts.map +1 -0
  268. package/dist/transform/write/array.js +62 -0
  269. package/dist/transform/write/array.js.map +1 -0
  270. package/dist/transform/write/blocks.d.ts +30 -0
  271. package/dist/transform/write/blocks.d.ts.map +1 -0
  272. package/dist/transform/write/blocks.js +66 -0
  273. package/dist/transform/write/blocks.js.map +1 -0
  274. package/dist/transform/write/index.d.ts +13 -0
  275. package/dist/transform/write/index.d.ts.map +1 -0
  276. package/dist/transform/write/index.js +41 -0
  277. package/dist/transform/write/index.js.map +1 -0
  278. package/dist/transform/write/numbers.d.ts +8 -0
  279. package/dist/transform/write/numbers.d.ts.map +1 -0
  280. package/dist/transform/write/numbers.js +11 -0
  281. package/dist/transform/write/numbers.js.map +1 -0
  282. package/dist/transform/write/relationships.d.ts +10 -0
  283. package/dist/transform/write/relationships.d.ts.map +1 -0
  284. package/dist/transform/write/relationships.js +27 -0
  285. package/dist/transform/write/relationships.js.map +1 -0
  286. package/dist/transform/write/selects.d.ts +8 -0
  287. package/dist/transform/write/selects.d.ts.map +1 -0
  288. package/dist/transform/write/selects.js +20 -0
  289. package/dist/transform/write/selects.js.map +1 -0
  290. package/dist/transform/write/texts.d.ts +8 -0
  291. package/dist/transform/write/texts.d.ts.map +1 -0
  292. package/dist/transform/write/texts.js +11 -0
  293. package/dist/transform/write/texts.js.map +1 -0
  294. package/dist/transform/write/traverseFields.d.ts +55 -0
  295. package/dist/transform/write/traverseFields.d.ts.map +1 -0
  296. package/dist/transform/write/traverseFields.js +474 -0
  297. package/dist/transform/write/traverseFields.js.map +1 -0
  298. package/dist/transform/write/types.d.ts +43 -0
  299. package/dist/transform/write/types.d.ts.map +1 -0
  300. package/dist/transform/write/types.js +3 -0
  301. package/dist/transform/write/types.js.map +1 -0
  302. package/dist/types.d.ts +145 -0
  303. package/dist/types.d.ts.map +1 -0
  304. package/dist/types.js +3 -0
  305. package/dist/types.js.map +1 -0
  306. package/dist/update.d.ts +3 -0
  307. package/dist/update.d.ts.map +1 -0
  308. package/dist/update.js +54 -0
  309. package/dist/update.js.map +1 -0
  310. package/dist/updateGlobal.d.ts +4 -0
  311. package/dist/updateGlobal.d.ts.map +1 -0
  312. package/dist/updateGlobal.js +25 -0
  313. package/dist/updateGlobal.js.map +1 -0
  314. package/dist/updateGlobalVersion.d.ts +4 -0
  315. package/dist/updateGlobalVersion.d.ts.map +1 -0
  316. package/dist/updateGlobalVersion.js +36 -0
  317. package/dist/updateGlobalVersion.js.map +1 -0
  318. package/dist/updateVersion.d.ts +4 -0
  319. package/dist/updateVersion.d.ts.map +1 -0
  320. package/dist/updateVersion.js +36 -0
  321. package/dist/updateVersion.js.map +1 -0
  322. package/dist/upsertRow/deleteExistingArrayRows.d.ts +10 -0
  323. package/dist/upsertRow/deleteExistingArrayRows.d.ts.map +1 -0
  324. package/dist/upsertRow/deleteExistingArrayRows.js +14 -0
  325. package/dist/upsertRow/deleteExistingArrayRows.js.map +1 -0
  326. package/dist/upsertRow/deleteExistingRowsByPath.d.ts +14 -0
  327. package/dist/upsertRow/deleteExistingRowsByPath.d.ts.map +1 -0
  328. package/dist/upsertRow/deleteExistingRowsByPath.js +45 -0
  329. package/dist/upsertRow/deleteExistingRowsByPath.js.map +1 -0
  330. package/dist/upsertRow/index.d.ts +4 -0
  331. package/dist/upsertRow/index.d.ts.map +1 -0
  332. package/dist/upsertRow/index.js +372 -0
  333. package/dist/upsertRow/index.js.map +1 -0
  334. package/dist/upsertRow/insertArrays.d.ts +13 -0
  335. package/dist/upsertRow/insertArrays.d.ts.map +1 -0
  336. package/dist/upsertRow/insertArrays.js +76 -0
  337. package/dist/upsertRow/insertArrays.js.map +1 -0
  338. package/dist/upsertRow/types.d.ts +32 -0
  339. package/dist/upsertRow/types.d.ts.map +1 -0
  340. package/dist/upsertRow/types.js +3 -0
  341. package/dist/upsertRow/types.js.map +1 -0
  342. package/dist/utilities/appendPrefixToKeys.d.ts +2 -0
  343. package/dist/utilities/appendPrefixToKeys.d.ts.map +1 -0
  344. package/dist/utilities/appendPrefixToKeys.js +6 -0
  345. package/dist/utilities/appendPrefixToKeys.js.map +1 -0
  346. package/dist/utilities/createBlocksMap.d.ts +5 -0
  347. package/dist/utilities/createBlocksMap.d.ts.map +1 -0
  348. package/dist/utilities/createBlocksMap.js +31 -0
  349. package/dist/utilities/createBlocksMap.js.map +1 -0
  350. package/dist/utilities/createRelationshipMap.d.ts +2 -0
  351. package/dist/utilities/createRelationshipMap.d.ts.map +1 -0
  352. package/dist/utilities/createRelationshipMap.js +21 -0
  353. package/dist/utilities/createRelationshipMap.js.map +1 -0
  354. package/dist/utilities/hasLocalesTable.d.ts +3 -0
  355. package/dist/utilities/hasLocalesTable.d.ts.map +1 -0
  356. package/dist/utilities/hasLocalesTable.js +21 -0
  357. package/dist/utilities/hasLocalesTable.js.map +1 -0
  358. package/dist/utilities/isArrayOfRows.d.ts +2 -0
  359. package/dist/utilities/isArrayOfRows.d.ts.map +1 -0
  360. package/dist/utilities/isArrayOfRows.js +5 -0
  361. package/dist/utilities/isArrayOfRows.js.map +1 -0
  362. package/dist/utilities/migrationTableExists.d.ts +3 -0
  363. package/dist/utilities/migrationTableExists.d.ts.map +1 -0
  364. package/dist/utilities/migrationTableExists.js +25 -0
  365. package/dist/utilities/migrationTableExists.js.map +1 -0
  366. package/dist/utilities/parseError.d.ts +5 -0
  367. package/dist/utilities/parseError.d.ts.map +1 -0
  368. package/dist/utilities/parseError.js +15 -0
  369. package/dist/utilities/parseError.js.map +1 -0
  370. package/dist/utilities/pushDevSchema.d.ts +9 -0
  371. package/dist/utilities/pushDevSchema.d.ts.map +1 -0
  372. package/dist/utilities/pushDevSchema.js +55 -0
  373. package/dist/utilities/pushDevSchema.js.map +1 -0
  374. package/dist/utilities/validateExistingBlockIsIdentical.d.ts +11 -0
  375. package/dist/utilities/validateExistingBlockIsIdentical.d.ts.map +1 -0
  376. package/dist/utilities/validateExistingBlockIsIdentical.js +76 -0
  377. package/dist/utilities/validateExistingBlockIsIdentical.js.map +1 -0
  378. package/package.json +62 -0
@@ -0,0 +1,712 @@
1
+ import { relations } from 'drizzle-orm';
2
+ import { boolean, foreignKey, index, integer, jsonb, numeric, PgNumericBuilder, PgUUIDBuilder, PgVarcharBuilder, text, timestamp, varchar } from 'drizzle-orm/pg-core';
3
+ import { InvalidConfiguration } from 'payload';
4
+ import { fieldAffectsData, optionIsObject } from 'payload/shared';
5
+ import toSnakeCase from 'to-snake-case';
6
+ import { createTableName } from '../../createTableName.js';
7
+ import { hasLocalesTable } from '../../utilities/hasLocalesTable.js';
8
+ import { validateExistingBlockIsIdentical } from '../../utilities/validateExistingBlockIsIdentical.js';
9
+ import { buildTable } from './build.js';
10
+ import { createIndex } from './createIndex.js';
11
+ import { idToUUID } from './idToUUID.js';
12
+ import { parentIDColumnMap } from './parentIDColumnMap.js';
13
+ import { withDefault } from './withDefault.js';
14
+ export const traverseFields = ({ adapter, columnPrefix, columns, disableNotNull, disableUnique = false, fieldPrefix, fields, forceLocalized, indexes, localesColumns, localesIndexes, newTableName, parentTableName, relationships, relationsToBuild, rootRelationsToBuild, rootTableIDColType, rootTableName, versions, withinLocalizedArrayOrBlock })=>{
15
+ const throwValidationError = true;
16
+ let hasLocalizedField = false;
17
+ let hasLocalizedRelationshipField = false;
18
+ let hasManyTextField = false;
19
+ let hasLocalizedManyTextField = false;
20
+ let hasManyNumberField = false;
21
+ let hasLocalizedManyNumberField = false;
22
+ let parentIDColType = 'integer';
23
+ if (columns.id instanceof PgUUIDBuilder) {
24
+ parentIDColType = 'uuid';
25
+ }
26
+ if (columns.id instanceof PgNumericBuilder) {
27
+ parentIDColType = 'numeric';
28
+ }
29
+ if (columns.id instanceof PgVarcharBuilder) {
30
+ parentIDColType = 'varchar';
31
+ }
32
+ fields.forEach((field)=>{
33
+ if ('name' in field && field.name === 'id') {
34
+ return;
35
+ }
36
+ let columnName;
37
+ let fieldName;
38
+ let targetTable = columns;
39
+ let targetIndexes = indexes;
40
+ if (fieldAffectsData(field)) {
41
+ columnName = `${columnPrefix || ''}${field.name[0] === '_' ? '_' : ''}${toSnakeCase(field.name)}`;
42
+ fieldName = `${fieldPrefix?.replace('.', '_') || ''}${field.name}`;
43
+ // If field is localized,
44
+ // add the column to the locale table instead of main table
45
+ if (adapter.payload.config.localization && (field.localized || forceLocalized) && field.type !== 'array' && field.type !== 'blocks' && ('hasMany' in field && field.hasMany !== true || !('hasMany' in field))) {
46
+ hasLocalizedField = true;
47
+ targetTable = localesColumns;
48
+ targetIndexes = localesIndexes;
49
+ }
50
+ if ((field.unique || field.index) && ![
51
+ 'array',
52
+ 'blocks',
53
+ 'group',
54
+ 'point',
55
+ 'relationship',
56
+ 'upload'
57
+ ].includes(field.type) && !('hasMany' in field && field.hasMany === true)) {
58
+ const unique = disableUnique !== true && field.unique;
59
+ if (unique) {
60
+ const constraintValue = `${fieldPrefix || ''}${field.name}`;
61
+ if (!adapter.fieldConstraints?.[rootTableName]) {
62
+ adapter.fieldConstraints[rootTableName] = {};
63
+ }
64
+ adapter.fieldConstraints[rootTableName][`${columnName}_idx`] = constraintValue;
65
+ }
66
+ targetIndexes[`${newTableName}_${field.name}Idx`] = createIndex({
67
+ name: fieldName,
68
+ columnName,
69
+ tableName: newTableName,
70
+ unique
71
+ });
72
+ }
73
+ }
74
+ switch(field.type){
75
+ case 'text':
76
+ {
77
+ if (field.hasMany) {
78
+ const isLocalized = Boolean(field.localized && adapter.payload.config.localization) || withinLocalizedArrayOrBlock;
79
+ if (isLocalized) {
80
+ hasLocalizedManyTextField = true;
81
+ }
82
+ if (field.index) {
83
+ hasManyTextField = 'index';
84
+ } else if (!hasManyTextField) {
85
+ hasManyTextField = true;
86
+ }
87
+ if (field.unique) {
88
+ throw new InvalidConfiguration('Unique is not supported in Postgres for hasMany text fields.');
89
+ }
90
+ } else {
91
+ targetTable[fieldName] = withDefault(varchar(columnName), field);
92
+ }
93
+ break;
94
+ }
95
+ case 'email':
96
+ case 'code':
97
+ case 'textarea':
98
+ {
99
+ targetTable[fieldName] = withDefault(varchar(columnName), field);
100
+ break;
101
+ }
102
+ case 'number':
103
+ {
104
+ if (field.hasMany) {
105
+ const isLocalized = Boolean(field.localized && adapter.payload.config.localization) || withinLocalizedArrayOrBlock;
106
+ if (isLocalized) {
107
+ hasLocalizedManyNumberField = true;
108
+ }
109
+ if (field.index) {
110
+ hasManyNumberField = 'index';
111
+ } else if (!hasManyNumberField) {
112
+ hasManyNumberField = true;
113
+ }
114
+ if (field.unique) {
115
+ throw new InvalidConfiguration('Unique is not supported in Postgres for hasMany number fields.');
116
+ }
117
+ } else {
118
+ targetTable[fieldName] = withDefault(numeric(columnName), field);
119
+ }
120
+ break;
121
+ }
122
+ case 'richText':
123
+ case 'json':
124
+ {
125
+ targetTable[fieldName] = withDefault(jsonb(columnName), field);
126
+ break;
127
+ }
128
+ case 'date':
129
+ {
130
+ targetTable[fieldName] = withDefault(timestamp(columnName, {
131
+ mode: 'string',
132
+ precision: 3,
133
+ withTimezone: true
134
+ }), field);
135
+ break;
136
+ }
137
+ case 'point':
138
+ {
139
+ break;
140
+ }
141
+ case 'radio':
142
+ case 'select':
143
+ {
144
+ const enumName = createTableName({
145
+ adapter,
146
+ config: field,
147
+ parentTableName: newTableName,
148
+ prefix: `enum_${newTableName}_`,
149
+ target: 'enumName',
150
+ throwValidationError
151
+ });
152
+ adapter.enums[enumName] = adapter.pgSchema.enum(enumName, field.options.map((option)=>{
153
+ if (optionIsObject(option)) {
154
+ return option.value;
155
+ }
156
+ return option;
157
+ }));
158
+ if (field.type === 'select' && field.hasMany) {
159
+ const selectTableName = createTableName({
160
+ adapter,
161
+ config: field,
162
+ parentTableName: newTableName,
163
+ prefix: `${newTableName}_`,
164
+ throwValidationError,
165
+ versionsCustomName: versions
166
+ });
167
+ const baseColumns = {
168
+ order: integer('order').notNull(),
169
+ parent: parentIDColumnMap[parentIDColType]('parent_id').notNull(),
170
+ value: adapter.enums[enumName]('value')
171
+ };
172
+ const baseExtraConfig = {
173
+ orderIdx: (cols)=>index(`${selectTableName}_order_idx`).on(cols.order),
174
+ parentFk: (cols)=>foreignKey({
175
+ name: `${selectTableName}_parent_fk`,
176
+ columns: [
177
+ cols.parent
178
+ ],
179
+ foreignColumns: [
180
+ adapter.tables[parentTableName].id
181
+ ]
182
+ }).onDelete('cascade'),
183
+ parentIdx: (cols)=>index(`${selectTableName}_parent_idx`).on(cols.parent)
184
+ };
185
+ const isLocalized = Boolean(field.localized && adapter.payload.config.localization) || withinLocalizedArrayOrBlock;
186
+ if (isLocalized) {
187
+ baseColumns.locale = adapter.enums.enum__locales('locale').notNull();
188
+ baseExtraConfig.localeIdx = (cols)=>index(`${selectTableName}_locale_idx`).on(cols.locale);
189
+ }
190
+ if (field.index) {
191
+ baseExtraConfig.value = (cols)=>index(`${selectTableName}_value_idx`).on(cols.value);
192
+ }
193
+ buildTable({
194
+ adapter,
195
+ baseColumns,
196
+ baseExtraConfig,
197
+ disableNotNull,
198
+ disableUnique,
199
+ fields: [],
200
+ rootTableName,
201
+ tableName: selectTableName,
202
+ versions
203
+ });
204
+ relationsToBuild.set(fieldName, {
205
+ type: 'many',
206
+ // selects have their own localized table, independent of the base table.
207
+ localized: false,
208
+ target: selectTableName
209
+ });
210
+ adapter.relations[`relations_${selectTableName}`] = relations(adapter.tables[selectTableName], ({ one })=>({
211
+ parent: one(adapter.tables[parentTableName], {
212
+ fields: [
213
+ adapter.tables[selectTableName].parent
214
+ ],
215
+ references: [
216
+ adapter.tables[parentTableName].id
217
+ ],
218
+ relationName: fieldName
219
+ })
220
+ }));
221
+ } else {
222
+ targetTable[fieldName] = withDefault(adapter.enums[enumName](fieldName), field);
223
+ }
224
+ break;
225
+ }
226
+ case 'checkbox':
227
+ {
228
+ targetTable[fieldName] = withDefault(boolean(columnName), field);
229
+ break;
230
+ }
231
+ case 'array':
232
+ {
233
+ const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull;
234
+ const arrayTableName = createTableName({
235
+ adapter,
236
+ config: field,
237
+ parentTableName: newTableName,
238
+ prefix: `${newTableName}_`,
239
+ throwValidationError,
240
+ versionsCustomName: versions
241
+ });
242
+ const baseColumns = {
243
+ _order: integer('_order').notNull(),
244
+ _parentID: parentIDColumnMap[parentIDColType]('_parent_id').notNull()
245
+ };
246
+ const baseExtraConfig = {
247
+ _orderIdx: (cols)=>index(`${arrayTableName}_order_idx`).on(cols._order),
248
+ _parentIDFk: (cols)=>foreignKey({
249
+ name: `${arrayTableName}_parent_id_fk`,
250
+ columns: [
251
+ cols['_parentID']
252
+ ],
253
+ foreignColumns: [
254
+ adapter.tables[parentTableName].id
255
+ ]
256
+ }).onDelete('cascade'),
257
+ _parentIDIdx: (cols)=>index(`${arrayTableName}_parent_id_idx`).on(cols._parentID)
258
+ };
259
+ const isLocalized = Boolean(field.localized && adapter.payload.config.localization) || withinLocalizedArrayOrBlock;
260
+ if (isLocalized) {
261
+ baseColumns._locale = adapter.enums.enum__locales('_locale').notNull();
262
+ baseExtraConfig._localeIdx = (cols)=>index(`${arrayTableName}_locale_idx`).on(cols._locale);
263
+ }
264
+ const { hasLocalizedManyNumberField: subHasLocalizedManyNumberField, hasLocalizedManyTextField: subHasLocalizedManyTextField, hasLocalizedRelationshipField: subHasLocalizedRelationshipField, hasManyNumberField: subHasManyNumberField, hasManyTextField: subHasManyTextField, relationsToBuild: subRelationsToBuild } = buildTable({
265
+ adapter,
266
+ baseColumns,
267
+ baseExtraConfig,
268
+ disableNotNull: disableNotNullFromHere,
269
+ disableUnique,
270
+ fields: disableUnique ? idToUUID(field.fields) : field.fields,
271
+ rootRelationships: relationships,
272
+ rootRelationsToBuild,
273
+ rootTableIDColType,
274
+ rootTableName,
275
+ tableName: arrayTableName,
276
+ versions,
277
+ withinLocalizedArrayOrBlock: isLocalized
278
+ });
279
+ if (subHasLocalizedManyNumberField) {
280
+ hasLocalizedManyNumberField = subHasLocalizedManyNumberField;
281
+ }
282
+ if (subHasLocalizedRelationshipField) {
283
+ hasLocalizedRelationshipField = subHasLocalizedRelationshipField;
284
+ }
285
+ if (subHasLocalizedManyTextField) {
286
+ hasLocalizedManyTextField = subHasLocalizedManyTextField;
287
+ }
288
+ if (subHasManyTextField) {
289
+ if (!hasManyTextField || subHasManyTextField === 'index') {
290
+ hasManyTextField = subHasManyTextField;
291
+ }
292
+ }
293
+ if (subHasManyNumberField) {
294
+ if (!hasManyNumberField || subHasManyNumberField === 'index') {
295
+ hasManyNumberField = subHasManyNumberField;
296
+ }
297
+ }
298
+ relationsToBuild.set(fieldName, {
299
+ type: 'many',
300
+ // arrays have their own localized table, independent of the base table.
301
+ localized: false,
302
+ target: arrayTableName
303
+ });
304
+ adapter.relations[`relations_${arrayTableName}`] = relations(adapter.tables[arrayTableName], ({ many, one })=>{
305
+ const result = {
306
+ _parentID: one(adapter.tables[parentTableName], {
307
+ fields: [
308
+ adapter.tables[arrayTableName]._parentID
309
+ ],
310
+ references: [
311
+ adapter.tables[parentTableName].id
312
+ ],
313
+ relationName: fieldName
314
+ })
315
+ };
316
+ if (hasLocalesTable(field.fields)) {
317
+ result._locales = many(adapter.tables[`${arrayTableName}${adapter.localesSuffix}`], {
318
+ relationName: '_locales'
319
+ });
320
+ }
321
+ subRelationsToBuild.forEach(({ type, localized, target }, key)=>{
322
+ if (type === 'one') {
323
+ const arrayWithLocalized = localized ? `${arrayTableName}${adapter.localesSuffix}` : arrayTableName;
324
+ result[key] = one(adapter.tables[target], {
325
+ fields: [
326
+ adapter.tables[arrayWithLocalized][key]
327
+ ],
328
+ references: [
329
+ adapter.tables[target].id
330
+ ],
331
+ relationName: key
332
+ });
333
+ }
334
+ if (type === 'many') {
335
+ result[key] = many(adapter.tables[target], {
336
+ relationName: key
337
+ });
338
+ }
339
+ });
340
+ return result;
341
+ });
342
+ break;
343
+ }
344
+ case 'blocks':
345
+ {
346
+ const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull;
347
+ field.blocks.forEach((block)=>{
348
+ const blockTableName = createTableName({
349
+ adapter,
350
+ config: block,
351
+ parentTableName: rootTableName,
352
+ prefix: `${rootTableName}_blocks_`,
353
+ throwValidationError,
354
+ versionsCustomName: versions
355
+ });
356
+ if (!adapter.tables[blockTableName]) {
357
+ const baseColumns = {
358
+ _order: integer('_order').notNull(),
359
+ _parentID: parentIDColumnMap[rootTableIDColType]('_parent_id').notNull(),
360
+ _path: text('_path').notNull()
361
+ };
362
+ const baseExtraConfig = {
363
+ _orderIdx: (cols)=>index(`${blockTableName}_order_idx`).on(cols._order),
364
+ _parentIdFk: (cols)=>foreignKey({
365
+ name: `${blockTableName}_parent_id_fk`,
366
+ columns: [
367
+ cols._parentID
368
+ ],
369
+ foreignColumns: [
370
+ adapter.tables[rootTableName].id
371
+ ]
372
+ }).onDelete('cascade'),
373
+ _parentIDIdx: (cols)=>index(`${blockTableName}_parent_id_idx`).on(cols._parentID),
374
+ _pathIdx: (cols)=>index(`${blockTableName}_path_idx`).on(cols._path)
375
+ };
376
+ const isLocalized = Boolean(field.localized && adapter.payload.config.localization) || withinLocalizedArrayOrBlock;
377
+ if (isLocalized) {
378
+ baseColumns._locale = adapter.enums.enum__locales('_locale').notNull();
379
+ baseExtraConfig._localeIdx = (cols)=>index(`${blockTableName}_locale_idx`).on(cols._locale);
380
+ }
381
+ const { hasLocalizedManyNumberField: subHasLocalizedManyNumberField, hasLocalizedManyTextField: subHasLocalizedManyTextField, hasLocalizedRelationshipField: subHasLocalizedRelationshipField, hasManyNumberField: subHasManyNumberField, hasManyTextField: subHasManyTextField, relationsToBuild: subRelationsToBuild } = buildTable({
382
+ adapter,
383
+ baseColumns,
384
+ baseExtraConfig,
385
+ disableNotNull: disableNotNullFromHere,
386
+ disableUnique,
387
+ fields: disableUnique ? idToUUID(block.fields) : block.fields,
388
+ rootRelationships: relationships,
389
+ rootRelationsToBuild,
390
+ rootTableIDColType,
391
+ rootTableName,
392
+ tableName: blockTableName,
393
+ versions,
394
+ withinLocalizedArrayOrBlock: isLocalized
395
+ });
396
+ if (subHasLocalizedManyNumberField) {
397
+ hasLocalizedManyNumberField = subHasLocalizedManyNumberField;
398
+ }
399
+ if (subHasLocalizedRelationshipField) {
400
+ hasLocalizedRelationshipField = subHasLocalizedRelationshipField;
401
+ }
402
+ if (subHasLocalizedManyTextField) {
403
+ hasLocalizedManyTextField = subHasLocalizedManyTextField;
404
+ }
405
+ if (subHasManyTextField) {
406
+ if (!hasManyTextField || subHasManyTextField === 'index') {
407
+ hasManyTextField = subHasManyTextField;
408
+ }
409
+ }
410
+ if (subHasManyNumberField) {
411
+ if (!hasManyNumberField || subHasManyNumberField === 'index') {
412
+ hasManyNumberField = subHasManyNumberField;
413
+ }
414
+ }
415
+ adapter.relations[`relations_${blockTableName}`] = relations(adapter.tables[blockTableName], ({ many, one })=>{
416
+ const result = {
417
+ _parentID: one(adapter.tables[rootTableName], {
418
+ fields: [
419
+ adapter.tables[blockTableName]._parentID
420
+ ],
421
+ references: [
422
+ adapter.tables[rootTableName].id
423
+ ],
424
+ relationName: `_blocks_${block.slug}`
425
+ })
426
+ };
427
+ if (hasLocalesTable(block.fields)) {
428
+ result._locales = many(adapter.tables[`${blockTableName}${adapter.localesSuffix}`], {
429
+ relationName: '_locales'
430
+ });
431
+ }
432
+ subRelationsToBuild.forEach(({ type, localized, target }, key)=>{
433
+ if (type === 'one') {
434
+ const blockWithLocalized = localized ? `${blockTableName}${adapter.localesSuffix}` : blockTableName;
435
+ result[key] = one(adapter.tables[target], {
436
+ fields: [
437
+ adapter.tables[blockWithLocalized][key]
438
+ ],
439
+ references: [
440
+ adapter.tables[target].id
441
+ ],
442
+ relationName: key
443
+ });
444
+ }
445
+ if (type === 'many') {
446
+ result[key] = many(adapter.tables[target], {
447
+ relationName: key
448
+ });
449
+ }
450
+ });
451
+ return result;
452
+ });
453
+ } else if (process.env.NODE_ENV !== 'production' && !versions) {
454
+ validateExistingBlockIsIdentical({
455
+ block,
456
+ localized: field.localized,
457
+ rootTableName,
458
+ table: adapter.tables[blockTableName],
459
+ tableLocales: adapter.tables[`${blockTableName}${adapter.localesSuffix}`]
460
+ });
461
+ }
462
+ // blocks relationships are defined from the collection or globals table down to the block, bypassing any subBlocks
463
+ rootRelationsToBuild.set(`_blocks_${block.slug}`, {
464
+ type: 'many',
465
+ // blocks are not localized on the parent table
466
+ localized: false,
467
+ target: blockTableName
468
+ });
469
+ });
470
+ break;
471
+ }
472
+ case 'tab':
473
+ case 'group':
474
+ {
475
+ if (!('name' in field)) {
476
+ const { hasLocalizedField: groupHasLocalizedField, hasLocalizedManyNumberField: groupHasLocalizedManyNumberField, hasLocalizedManyTextField: groupHasLocalizedManyTextField, hasLocalizedRelationshipField: groupHasLocalizedRelationshipField, hasManyNumberField: groupHasManyNumberField, hasManyTextField: groupHasManyTextField } = traverseFields({
477
+ adapter,
478
+ columnPrefix,
479
+ columns,
480
+ disableNotNull,
481
+ disableUnique,
482
+ fieldPrefix,
483
+ fields: field.fields,
484
+ forceLocalized,
485
+ indexes,
486
+ localesColumns,
487
+ localesIndexes,
488
+ newTableName,
489
+ parentTableName,
490
+ relationships,
491
+ relationsToBuild,
492
+ rootRelationsToBuild,
493
+ rootTableIDColType,
494
+ rootTableName,
495
+ versions,
496
+ withinLocalizedArrayOrBlock
497
+ });
498
+ if (groupHasLocalizedField) {
499
+ hasLocalizedField = true;
500
+ }
501
+ if (groupHasLocalizedRelationshipField) {
502
+ hasLocalizedRelationshipField = true;
503
+ }
504
+ if (groupHasManyTextField) {
505
+ hasManyTextField = true;
506
+ }
507
+ if (groupHasLocalizedManyTextField) {
508
+ hasLocalizedManyTextField = true;
509
+ }
510
+ if (groupHasManyNumberField) {
511
+ hasManyNumberField = true;
512
+ }
513
+ if (groupHasLocalizedManyNumberField) {
514
+ hasLocalizedManyNumberField = true;
515
+ }
516
+ break;
517
+ }
518
+ const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull;
519
+ const { hasLocalizedField: groupHasLocalizedField, hasLocalizedManyNumberField: groupHasLocalizedManyNumberField, hasLocalizedManyTextField: groupHasLocalizedManyTextField, hasLocalizedRelationshipField: groupHasLocalizedRelationshipField, hasManyNumberField: groupHasManyNumberField, hasManyTextField: groupHasManyTextField } = traverseFields({
520
+ adapter,
521
+ columnPrefix: `${columnName}_`,
522
+ columns,
523
+ disableNotNull: disableNotNullFromHere,
524
+ disableUnique,
525
+ fieldPrefix: `${fieldName}.`,
526
+ fields: field.fields,
527
+ forceLocalized: field.localized,
528
+ indexes,
529
+ localesColumns,
530
+ localesIndexes,
531
+ newTableName: `${parentTableName}_${columnName}`,
532
+ parentTableName,
533
+ relationships,
534
+ relationsToBuild,
535
+ rootRelationsToBuild,
536
+ rootTableIDColType,
537
+ rootTableName,
538
+ versions,
539
+ withinLocalizedArrayOrBlock
540
+ });
541
+ if (groupHasLocalizedField) {
542
+ hasLocalizedField = true;
543
+ }
544
+ if (groupHasLocalizedRelationshipField) {
545
+ hasLocalizedRelationshipField = true;
546
+ }
547
+ if (groupHasManyTextField) {
548
+ hasManyTextField = true;
549
+ }
550
+ if (groupHasLocalizedManyTextField) {
551
+ hasLocalizedManyTextField = true;
552
+ }
553
+ if (groupHasManyNumberField) {
554
+ hasManyNumberField = true;
555
+ }
556
+ if (groupHasLocalizedManyNumberField) {
557
+ hasLocalizedManyNumberField = true;
558
+ }
559
+ break;
560
+ }
561
+ case 'tabs':
562
+ {
563
+ const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull;
564
+ const { hasLocalizedField: tabHasLocalizedField, hasLocalizedManyNumberField: tabHasLocalizedManyNumberField, hasLocalizedManyTextField: tabHasLocalizedManyTextField, hasLocalizedRelationshipField: tabHasLocalizedRelationshipField, hasManyNumberField: tabHasManyNumberField, hasManyTextField: tabHasManyTextField } = traverseFields({
565
+ adapter,
566
+ columnPrefix,
567
+ columns,
568
+ disableNotNull: disableNotNullFromHere,
569
+ disableUnique,
570
+ fieldPrefix,
571
+ fields: field.tabs.map((tab)=>({
572
+ ...tab,
573
+ type: 'tab'
574
+ })),
575
+ forceLocalized,
576
+ indexes,
577
+ localesColumns,
578
+ localesIndexes,
579
+ newTableName,
580
+ parentTableName,
581
+ relationships,
582
+ relationsToBuild,
583
+ rootRelationsToBuild,
584
+ rootTableIDColType,
585
+ rootTableName,
586
+ versions,
587
+ withinLocalizedArrayOrBlock
588
+ });
589
+ if (tabHasLocalizedField) {
590
+ hasLocalizedField = true;
591
+ }
592
+ if (tabHasLocalizedRelationshipField) {
593
+ hasLocalizedRelationshipField = true;
594
+ }
595
+ if (tabHasManyTextField) {
596
+ hasManyTextField = true;
597
+ }
598
+ if (tabHasLocalizedManyTextField) {
599
+ hasLocalizedManyTextField = true;
600
+ }
601
+ if (tabHasManyNumberField) {
602
+ hasManyNumberField = true;
603
+ }
604
+ if (tabHasLocalizedManyNumberField) {
605
+ hasLocalizedManyNumberField = true;
606
+ }
607
+ break;
608
+ }
609
+ case 'row':
610
+ case 'collapsible':
611
+ {
612
+ const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull;
613
+ const { hasLocalizedField: rowHasLocalizedField, hasLocalizedManyNumberField: rowHasLocalizedManyNumberField, hasLocalizedManyTextField: rowHasLocalizedManyTextField, hasLocalizedRelationshipField: rowHasLocalizedRelationshipField, hasManyNumberField: rowHasManyNumberField, hasManyTextField: rowHasManyTextField } = traverseFields({
614
+ adapter,
615
+ columnPrefix,
616
+ columns,
617
+ disableNotNull: disableNotNullFromHere,
618
+ disableUnique,
619
+ fieldPrefix,
620
+ fields: field.fields,
621
+ forceLocalized,
622
+ indexes,
623
+ localesColumns,
624
+ localesIndexes,
625
+ newTableName,
626
+ parentTableName,
627
+ relationships,
628
+ relationsToBuild,
629
+ rootRelationsToBuild,
630
+ rootTableIDColType,
631
+ rootTableName,
632
+ versions,
633
+ withinLocalizedArrayOrBlock
634
+ });
635
+ if (rowHasLocalizedField) {
636
+ hasLocalizedField = true;
637
+ }
638
+ if (rowHasLocalizedRelationshipField) {
639
+ hasLocalizedRelationshipField = true;
640
+ }
641
+ if (rowHasManyTextField) {
642
+ hasManyTextField = true;
643
+ }
644
+ if (rowHasLocalizedManyTextField) {
645
+ hasLocalizedManyTextField = true;
646
+ }
647
+ if (rowHasManyNumberField) {
648
+ hasManyNumberField = true;
649
+ }
650
+ if (rowHasLocalizedManyNumberField) {
651
+ hasLocalizedManyNumberField = true;
652
+ }
653
+ break;
654
+ }
655
+ case 'relationship':
656
+ case 'upload':
657
+ if (Array.isArray(field.relationTo)) {
658
+ field.relationTo.forEach((relation)=>relationships.add(relation));
659
+ } else if (field.hasMany) {
660
+ relationships.add(field.relationTo);
661
+ } else {
662
+ // simple relationships get a column on the targetTable with a foreign key to the relationTo table
663
+ const relationshipConfig = adapter.payload.collections[field.relationTo].config;
664
+ const tableName = adapter.tableNameMap.get(toSnakeCase(field.relationTo));
665
+ // get the id type of the related collection
666
+ let colType = adapter.idType === 'uuid' ? 'uuid' : 'integer';
667
+ const relatedCollectionCustomID = relationshipConfig.fields.find((field)=>fieldAffectsData(field) && field.name === 'id');
668
+ if (relatedCollectionCustomID?.type === 'number') {
669
+ colType = 'numeric';
670
+ }
671
+ if (relatedCollectionCustomID?.type === 'text') {
672
+ colType = 'varchar';
673
+ }
674
+ // make the foreign key column for relationship using the correct id column type
675
+ targetTable[fieldName] = parentIDColumnMap[colType](`${columnName}_id`).references(()=>adapter.tables[tableName].id, {
676
+ onDelete: 'set null'
677
+ });
678
+ // add relationship to table
679
+ relationsToBuild.set(fieldName, {
680
+ type: 'one',
681
+ localized: adapter.payload.config.localization && field.localized,
682
+ target: tableName
683
+ });
684
+ // add notNull when not required
685
+ if (!disableNotNull && field.required && !field.admin?.condition) {
686
+ targetTable[fieldName].notNull();
687
+ }
688
+ break;
689
+ }
690
+ if (Boolean(field.localized && adapter.payload.config.localization) || withinLocalizedArrayOrBlock) {
691
+ hasLocalizedRelationshipField = true;
692
+ }
693
+ break;
694
+ default:
695
+ break;
696
+ }
697
+ const condition = field.admin && field.admin.condition;
698
+ if (!disableNotNull && targetTable[fieldName] && 'required' in field && field.required && !condition) {
699
+ targetTable[fieldName].notNull();
700
+ }
701
+ });
702
+ return {
703
+ hasLocalizedField,
704
+ hasLocalizedManyNumberField,
705
+ hasLocalizedManyTextField,
706
+ hasLocalizedRelationshipField,
707
+ hasManyNumberField,
708
+ hasManyTextField
709
+ };
710
+ };
711
+
712
+ //# sourceMappingURL=traverseFields.js.map