@payloadcms/db-postgres 3.0.0-canary.f83d96a → 3.0.0-canary.ff8c8fd

Sign up to get free protection for your applications and to get access to all the features.
Files changed (345) hide show
  1. package/dist/connect.d.ts.map +1 -1
  2. package/dist/connect.js +10 -6
  3. package/dist/connect.js.map +1 -1
  4. package/dist/index.d.ts +2 -2
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +32 -67
  7. package/dist/index.js.map +1 -1
  8. package/dist/predefinedMigrations/v2-v3/fetchAndResave/index.d.ts +5 -4
  9. package/dist/predefinedMigrations/v2-v3/fetchAndResave/index.d.ts.map +1 -1
  10. package/dist/predefinedMigrations/v2-v3/fetchAndResave/index.js +1 -1
  11. package/dist/predefinedMigrations/v2-v3/fetchAndResave/index.js.map +1 -1
  12. package/dist/predefinedMigrations/v2-v3/index.d.ts +2 -2
  13. package/dist/predefinedMigrations/v2-v3/index.d.ts.map +1 -1
  14. package/dist/predefinedMigrations/v2-v3/index.js +2 -2
  15. package/dist/predefinedMigrations/v2-v3/index.js.map +1 -1
  16. package/dist/predefinedMigrations/v2-v3/migrateRelationships.d.ts +5 -4
  17. package/dist/predefinedMigrations/v2-v3/migrateRelationships.d.ts.map +1 -1
  18. package/dist/predefinedMigrations/v2-v3/migrateRelationships.js.map +1 -1
  19. package/dist/predefinedMigrations/v2-v3/traverseFields.d.ts +3 -2
  20. package/dist/predefinedMigrations/v2-v3/traverseFields.d.ts.map +1 -1
  21. package/dist/predefinedMigrations/v2-v3/traverseFields.js.map +1 -1
  22. package/dist/types.d.ts +42 -78
  23. package/dist/types.d.ts.map +1 -1
  24. package/dist/types.js.map +1 -1
  25. package/package.json +10 -10
  26. package/dist/count.d.ts +0 -3
  27. package/dist/count.d.ts.map +0 -1
  28. package/dist/count.js +0 -41
  29. package/dist/count.js.map +0 -1
  30. package/dist/create.d.ts +0 -3
  31. package/dist/create.d.ts.map +0 -1
  32. package/dist/create.js +0 -19
  33. package/dist/create.js.map +0 -1
  34. package/dist/createGlobal.d.ts +0 -4
  35. package/dist/createGlobal.d.ts.map +0 -1
  36. package/dist/createGlobal.js +0 -19
  37. package/dist/createGlobal.js.map +0 -1
  38. package/dist/createGlobalVersion.d.ts +0 -5
  39. package/dist/createGlobalVersion.d.ts.map +0 -1
  40. package/dist/createGlobalVersion.js +0 -33
  41. package/dist/createGlobalVersion.js.map +0 -1
  42. package/dist/createMigration.d.ts +0 -3
  43. package/dist/createMigration.d.ts.map +0 -1
  44. package/dist/createMigration.js +0 -102
  45. package/dist/createMigration.js.map +0 -1
  46. package/dist/createVersion.d.ts +0 -4
  47. package/dist/createVersion.d.ts.map +0 -1
  48. package/dist/createVersion.js +0 -40
  49. package/dist/createVersion.js.map +0 -1
  50. package/dist/deleteMany.d.ts +0 -3
  51. package/dist/deleteMany.d.ts.map +0 -1
  52. package/dist/deleteMany.js +0 -28
  53. package/dist/deleteMany.js.map +0 -1
  54. package/dist/deleteOne.d.ts +0 -3
  55. package/dist/deleteOne.d.ts.map +0 -1
  56. package/dist/deleteOne.js +0 -59
  57. package/dist/deleteOne.js.map +0 -1
  58. package/dist/deleteVersions.d.ts +0 -3
  59. package/dist/deleteVersions.d.ts.map +0 -1
  60. package/dist/deleteVersions.js +0 -31
  61. package/dist/deleteVersions.js.map +0 -1
  62. package/dist/destroy.d.ts +0 -3
  63. package/dist/destroy.d.ts.map +0 -1
  64. package/dist/destroy.js +0 -15
  65. package/dist/destroy.js.map +0 -1
  66. package/dist/find/buildFindManyArgs.d.ts +0 -17
  67. package/dist/find/buildFindManyArgs.d.ts.map +0 -1
  68. package/dist/find/buildFindManyArgs.js +0 -65
  69. package/dist/find/buildFindManyArgs.js.map +0 -1
  70. package/dist/find/chainMethods.d.ts +0 -16
  71. package/dist/find/chainMethods.d.ts.map +0 -1
  72. package/dist/find/chainMethods.js +0 -12
  73. package/dist/find/chainMethods.js.map +0 -1
  74. package/dist/find/findMany.d.ts +0 -21
  75. package/dist/find/findMany.d.ts.map +0 -1
  76. package/dist/find/findMany.js +0 -152
  77. package/dist/find/findMany.js.map +0 -1
  78. package/dist/find/traverseFields.d.ts +0 -17
  79. package/dist/find/traverseFields.d.ts.map +0 -1
  80. package/dist/find/traverseFields.js +0 -156
  81. package/dist/find/traverseFields.js.map +0 -1
  82. package/dist/find.d.ts +0 -3
  83. package/dist/find.d.ts.map +0 -1
  84. package/dist/find.js +0 -21
  85. package/dist/find.js.map +0 -1
  86. package/dist/findGlobal.d.ts +0 -3
  87. package/dist/findGlobal.d.ts.map +0 -1
  88. package/dist/findGlobal.js +0 -23
  89. package/dist/findGlobal.js.map +0 -1
  90. package/dist/findGlobalVersions.d.ts +0 -3
  91. package/dist/findGlobalVersions.d.ts.map +0 -1
  92. package/dist/findGlobalVersions.js +0 -24
  93. package/dist/findGlobalVersions.js.map +0 -1
  94. package/dist/findOne.d.ts +0 -4
  95. package/dist/findOne.d.ts.map +0 -1
  96. package/dist/findOne.js +0 -21
  97. package/dist/findOne.js.map +0 -1
  98. package/dist/findVersions.d.ts +0 -3
  99. package/dist/findVersions.d.ts.map +0 -1
  100. package/dist/findVersions.js +0 -24
  101. package/dist/findVersions.js.map +0 -1
  102. package/dist/init.d.ts +0 -3
  103. package/dist/init.d.ts.map +0 -1
  104. package/dist/init.js +0 -91
  105. package/dist/init.js.map +0 -1
  106. package/dist/migrate.d.ts +0 -3
  107. package/dist/migrate.d.ts.map +0 -1
  108. package/dist/migrate.js +0 -99
  109. package/dist/migrate.js.map +0 -1
  110. package/dist/migrateDown.d.ts +0 -3
  111. package/dist/migrateDown.d.ts.map +0 -1
  112. package/dist/migrateDown.js +0 -63
  113. package/dist/migrateDown.js.map +0 -1
  114. package/dist/migrateFresh.d.ts +0 -8
  115. package/dist/migrateFresh.d.ts.map +0 -1
  116. package/dist/migrateFresh.js +0 -72
  117. package/dist/migrateFresh.js.map +0 -1
  118. package/dist/migrateRefresh.d.ts +0 -6
  119. package/dist/migrateRefresh.d.ts.map +0 -1
  120. package/dist/migrateRefresh.js +0 -102
  121. package/dist/migrateRefresh.js.map +0 -1
  122. package/dist/migrateReset.d.ts +0 -6
  123. package/dist/migrateReset.d.ts.map +0 -1
  124. package/dist/migrateReset.js +0 -82
  125. package/dist/migrateReset.js.map +0 -1
  126. package/dist/migrateStatus.d.ts +0 -3
  127. package/dist/migrateStatus.d.ts.map +0 -1
  128. package/dist/migrateStatus.js +0 -44
  129. package/dist/migrateStatus.js.map +0 -1
  130. package/dist/queries/buildAndOrConditions.d.ts +0 -16
  131. package/dist/queries/buildAndOrConditions.d.ts.map +0 -1
  132. package/dist/queries/buildAndOrConditions.js +0 -28
  133. package/dist/queries/buildAndOrConditions.js.map +0 -1
  134. package/dist/queries/buildQuery.d.ts +0 -30
  135. package/dist/queries/buildQuery.d.ts.map +0 -1
  136. package/dist/queries/buildQuery.js +0 -72
  137. package/dist/queries/buildQuery.js.map +0 -1
  138. package/dist/queries/createJSONQuery/convertPathToJSONTraversal.d.ts +0 -2
  139. package/dist/queries/createJSONQuery/convertPathToJSONTraversal.d.ts.map +0 -1
  140. package/dist/queries/createJSONQuery/convertPathToJSONTraversal.js +0 -14
  141. package/dist/queries/createJSONQuery/convertPathToJSONTraversal.js.map +0 -1
  142. package/dist/queries/createJSONQuery/formatJSONPathSegment.d.ts +0 -2
  143. package/dist/queries/createJSONQuery/formatJSONPathSegment.d.ts.map +0 -1
  144. package/dist/queries/createJSONQuery/formatJSONPathSegment.js +0 -5
  145. package/dist/queries/createJSONQuery/formatJSONPathSegment.js.map +0 -1
  146. package/dist/queries/createJSONQuery/index.d.ts +0 -10
  147. package/dist/queries/createJSONQuery/index.d.ts.map +0 -1
  148. package/dist/queries/createJSONQuery/index.js +0 -54
  149. package/dist/queries/createJSONQuery/index.js.map +0 -1
  150. package/dist/queries/getTableColumnFromPath.d.ts +0 -50
  151. package/dist/queries/getTableColumnFromPath.d.ts.map +0 -1
  152. package/dist/queries/getTableColumnFromPath.js +0 -516
  153. package/dist/queries/getTableColumnFromPath.js.map +0 -1
  154. package/dist/queries/operatorMap.d.ts +0 -18
  155. package/dist/queries/operatorMap.d.ts.map +0 -1
  156. package/dist/queries/operatorMap.js +0 -24
  157. package/dist/queries/operatorMap.js.map +0 -1
  158. package/dist/queries/parseParams.d.ts +0 -16
  159. package/dist/queries/parseParams.d.ts.map +0 -1
  160. package/dist/queries/parseParams.js +0 -183
  161. package/dist/queries/parseParams.js.map +0 -1
  162. package/dist/queries/sanitizeQueryValue.d.ts +0 -15
  163. package/dist/queries/sanitizeQueryValue.d.ts.map +0 -1
  164. package/dist/queries/sanitizeQueryValue.js +0 -89
  165. package/dist/queries/sanitizeQueryValue.js.map +0 -1
  166. package/dist/queries/selectDistinct.d.ts +0 -22
  167. package/dist/queries/selectDistinct.d.ts.map +0 -1
  168. package/dist/queries/selectDistinct.js +0 -30
  169. package/dist/queries/selectDistinct.js.map +0 -1
  170. package/dist/queryDrafts.d.ts +0 -3
  171. package/dist/queryDrafts.d.ts.map +0 -1
  172. package/dist/queryDrafts.js +0 -40
  173. package/dist/queryDrafts.js.map +0 -1
  174. package/dist/schema/build.d.ts +0 -34
  175. package/dist/schema/build.d.ts.map +0 -1
  176. package/dist/schema/build.js +0 -369
  177. package/dist/schema/build.js.map +0 -1
  178. package/dist/schema/createIndex.d.ts +0 -12
  179. package/dist/schema/createIndex.d.ts.map +0 -1
  180. package/dist/schema/createIndex.js +0 -18
  181. package/dist/schema/createIndex.js.map +0 -1
  182. package/dist/schema/createTableName.d.ts +0 -30
  183. package/dist/schema/createTableName.d.ts.map +0 -1
  184. package/dist/schema/createTableName.js +0 -31
  185. package/dist/schema/createTableName.js.map +0 -1
  186. package/dist/schema/idToUUID.d.ts +0 -3
  187. package/dist/schema/idToUUID.d.ts.map +0 -1
  188. package/dist/schema/idToUUID.js +0 -11
  189. package/dist/schema/idToUUID.js.map +0 -1
  190. package/dist/schema/parentIDColumnMap.d.ts +0 -4
  191. package/dist/schema/parentIDColumnMap.d.ts.map +0 -1
  192. package/dist/schema/parentIDColumnMap.js +0 -9
  193. package/dist/schema/parentIDColumnMap.js.map +0 -1
  194. package/dist/schema/setColumnID.d.ts +0 -11
  195. package/dist/schema/setColumnID.d.ts.map +0 -1
  196. package/dist/schema/setColumnID.js +0 -24
  197. package/dist/schema/setColumnID.js.map +0 -1
  198. package/dist/schema/traverseFields.d.ts +0 -36
  199. package/dist/schema/traverseFields.d.ts.map +0 -1
  200. package/dist/schema/traverseFields.js +0 -614
  201. package/dist/schema/traverseFields.js.map +0 -1
  202. package/dist/schema/validateExistingBlockIsIdentical.d.ts +0 -12
  203. package/dist/schema/validateExistingBlockIsIdentical.d.ts.map +0 -1
  204. package/dist/schema/validateExistingBlockIsIdentical.js +0 -76
  205. package/dist/schema/validateExistingBlockIsIdentical.js.map +0 -1
  206. package/dist/transactions/beginTransaction.d.ts +0 -3
  207. package/dist/transactions/beginTransaction.d.ts.map +0 -1
  208. package/dist/transactions/beginTransaction.js +0 -51
  209. package/dist/transactions/beginTransaction.js.map +0 -1
  210. package/dist/transactions/commitTransaction.d.ts +0 -3
  211. package/dist/transactions/commitTransaction.d.ts.map +0 -1
  212. package/dist/transactions/commitTransaction.js +0 -14
  213. package/dist/transactions/commitTransaction.js.map +0 -1
  214. package/dist/transactions/rollbackTransaction.d.ts +0 -3
  215. package/dist/transactions/rollbackTransaction.d.ts.map +0 -1
  216. package/dist/transactions/rollbackTransaction.js +0 -13
  217. package/dist/transactions/rollbackTransaction.js.map +0 -1
  218. package/dist/transform/read/hasManyNumber.d.ts +0 -10
  219. package/dist/transform/read/hasManyNumber.d.ts.map +0 -1
  220. package/dist/transform/read/hasManyNumber.js +0 -10
  221. package/dist/transform/read/hasManyNumber.js.map +0 -1
  222. package/dist/transform/read/hasManyText.d.ts +0 -10
  223. package/dist/transform/read/hasManyText.d.ts.map +0 -1
  224. package/dist/transform/read/hasManyText.js +0 -10
  225. package/dist/transform/read/hasManyText.js.map +0 -1
  226. package/dist/transform/read/index.d.ts +0 -13
  227. package/dist/transform/read/index.d.ts.map +0 -1
  228. package/dist/transform/read/index.js +0 -44
  229. package/dist/transform/read/index.js.map +0 -1
  230. package/dist/transform/read/relationship.d.ts +0 -10
  231. package/dist/transform/read/relationship.d.ts.map +0 -1
  232. package/dist/transform/read/relationship.js +0 -60
  233. package/dist/transform/read/relationship.js.map +0 -1
  234. package/dist/transform/read/traverseFields.d.ts +0 -57
  235. package/dist/transform/read/traverseFields.d.ts.map +0 -1
  236. package/dist/transform/read/traverseFields.js +0 -435
  237. package/dist/transform/read/traverseFields.js.map +0 -1
  238. package/dist/transform/write/array.d.ts +0 -26
  239. package/dist/transform/write/array.d.ts.map +0 -1
  240. package/dist/transform/write/array.js +0 -58
  241. package/dist/transform/write/array.js.map +0 -1
  242. package/dist/transform/write/blocks.d.ts +0 -25
  243. package/dist/transform/write/blocks.d.ts.map +0 -1
  244. package/dist/transform/write/blocks.js +0 -54
  245. package/dist/transform/write/blocks.js.map +0 -1
  246. package/dist/transform/write/index.d.ts +0 -13
  247. package/dist/transform/write/index.d.ts.map +0 -1
  248. package/dist/transform/write/index.js +0 -41
  249. package/dist/transform/write/index.js.map +0 -1
  250. package/dist/transform/write/numbers.d.ts +0 -8
  251. package/dist/transform/write/numbers.d.ts.map +0 -1
  252. package/dist/transform/write/numbers.js +0 -11
  253. package/dist/transform/write/numbers.js.map +0 -1
  254. package/dist/transform/write/relationships.d.ts +0 -10
  255. package/dist/transform/write/relationships.d.ts.map +0 -1
  256. package/dist/transform/write/relationships.js +0 -23
  257. package/dist/transform/write/relationships.js.map +0 -1
  258. package/dist/transform/write/selects.d.ts +0 -8
  259. package/dist/transform/write/selects.d.ts.map +0 -1
  260. package/dist/transform/write/selects.js +0 -20
  261. package/dist/transform/write/selects.js.map +0 -1
  262. package/dist/transform/write/texts.d.ts +0 -8
  263. package/dist/transform/write/texts.d.ts.map +0 -1
  264. package/dist/transform/write/texts.js +0 -11
  265. package/dist/transform/write/texts.js.map +0 -1
  266. package/dist/transform/write/traverseFields.d.ts +0 -50
  267. package/dist/transform/write/traverseFields.d.ts.map +0 -1
  268. package/dist/transform/write/traverseFields.js +0 -445
  269. package/dist/transform/write/traverseFields.js.map +0 -1
  270. package/dist/transform/write/types.d.ts +0 -43
  271. package/dist/transform/write/types.d.ts.map +0 -1
  272. package/dist/transform/write/types.js +0 -3
  273. package/dist/transform/write/types.js.map +0 -1
  274. package/dist/update.d.ts +0 -3
  275. package/dist/update.d.ts.map +0 -1
  276. package/dist/update.js +0 -54
  277. package/dist/update.js.map +0 -1
  278. package/dist/updateGlobal.d.ts +0 -4
  279. package/dist/updateGlobal.d.ts.map +0 -1
  280. package/dist/updateGlobal.js +0 -25
  281. package/dist/updateGlobal.js.map +0 -1
  282. package/dist/updateGlobalVersion.d.ts +0 -4
  283. package/dist/updateGlobalVersion.d.ts.map +0 -1
  284. package/dist/updateGlobalVersion.js +0 -36
  285. package/dist/updateGlobalVersion.js.map +0 -1
  286. package/dist/updateVersion.d.ts +0 -4
  287. package/dist/updateVersion.d.ts.map +0 -1
  288. package/dist/updateVersion.js +0 -36
  289. package/dist/updateVersion.js.map +0 -1
  290. package/dist/upsertRow/deleteExistingArrayRows.d.ts +0 -10
  291. package/dist/upsertRow/deleteExistingArrayRows.d.ts.map +0 -1
  292. package/dist/upsertRow/deleteExistingArrayRows.js +0 -10
  293. package/dist/upsertRow/deleteExistingArrayRows.js.map +0 -1
  294. package/dist/upsertRow/deleteExistingRowsByPath.d.ts +0 -14
  295. package/dist/upsertRow/deleteExistingRowsByPath.d.ts.map +0 -1
  296. package/dist/upsertRow/deleteExistingRowsByPath.js +0 -33
  297. package/dist/upsertRow/deleteExistingRowsByPath.js.map +0 -1
  298. package/dist/upsertRow/index.d.ts +0 -4
  299. package/dist/upsertRow/index.d.ts.map +0 -1
  300. package/dist/upsertRow/index.js +0 -281
  301. package/dist/upsertRow/index.js.map +0 -1
  302. package/dist/upsertRow/insertArrays.d.ts +0 -13
  303. package/dist/upsertRow/insertArrays.d.ts.map +0 -1
  304. package/dist/upsertRow/insertArrays.js +0 -68
  305. package/dist/upsertRow/insertArrays.js.map +0 -1
  306. package/dist/upsertRow/types.d.ts +0 -32
  307. package/dist/upsertRow/types.d.ts.map +0 -1
  308. package/dist/upsertRow/types.js +0 -3
  309. package/dist/upsertRow/types.js.map +0 -1
  310. package/dist/utilities/appendPrefixToKeys.d.ts +0 -2
  311. package/dist/utilities/appendPrefixToKeys.d.ts.map +0 -1
  312. package/dist/utilities/appendPrefixToKeys.js +0 -6
  313. package/dist/utilities/appendPrefixToKeys.js.map +0 -1
  314. package/dist/utilities/createBlocksMap.d.ts +0 -5
  315. package/dist/utilities/createBlocksMap.d.ts.map +0 -1
  316. package/dist/utilities/createBlocksMap.js +0 -29
  317. package/dist/utilities/createBlocksMap.js.map +0 -1
  318. package/dist/utilities/createMigrationTable.d.ts +0 -3
  319. package/dist/utilities/createMigrationTable.d.ts.map +0 -1
  320. package/dist/utilities/createMigrationTable.js +0 -13
  321. package/dist/utilities/createMigrationTable.js.map +0 -1
  322. package/dist/utilities/createRelationshipMap.d.ts +0 -2
  323. package/dist/utilities/createRelationshipMap.d.ts.map +0 -1
  324. package/dist/utilities/createRelationshipMap.js +0 -19
  325. package/dist/utilities/createRelationshipMap.js.map +0 -1
  326. package/dist/utilities/hasLocalesTable.d.ts +0 -3
  327. package/dist/utilities/hasLocalesTable.d.ts.map +0 -1
  328. package/dist/utilities/hasLocalesTable.js +0 -11
  329. package/dist/utilities/hasLocalesTable.js.map +0 -1
  330. package/dist/utilities/isArrayOfRows.d.ts +0 -2
  331. package/dist/utilities/isArrayOfRows.d.ts.map +0 -1
  332. package/dist/utilities/isArrayOfRows.js +0 -5
  333. package/dist/utilities/isArrayOfRows.js.map +0 -1
  334. package/dist/utilities/migrationTableExists.d.ts +0 -3
  335. package/dist/utilities/migrationTableExists.d.ts.map +0 -1
  336. package/dist/utilities/migrationTableExists.js +0 -9
  337. package/dist/utilities/migrationTableExists.js.map +0 -1
  338. package/dist/utilities/parseError.d.ts +0 -5
  339. package/dist/utilities/parseError.d.ts.map +0 -1
  340. package/dist/utilities/parseError.js +0 -17
  341. package/dist/utilities/parseError.js.map +0 -1
  342. package/dist/utilities/pushDevSchema.d.ts +0 -9
  343. package/dist/utilities/pushDevSchema.d.ts.map +0 -1
  344. package/dist/utilities/pushDevSchema.js +0 -58
  345. package/dist/utilities/pushDevSchema.js.map +0 -1
@@ -1,369 +0,0 @@
1
- /* eslint-disable no-param-reassign */ import { relations } from 'drizzle-orm';
2
- import { foreignKey, index, integer, numeric, serial, timestamp, unique, varchar } from 'drizzle-orm/pg-core';
3
- import toSnakeCase from 'to-snake-case';
4
- import { createTableName } from './createTableName.js';
5
- import { parentIDColumnMap } from './parentIDColumnMap.js';
6
- import { setColumnID } from './setColumnID.js';
7
- import { traverseFields } from './traverseFields.js';
8
- export const buildTable = ({ adapter, baseColumns = {}, baseExtraConfig = {}, disableNotNull, disableUnique = false, fields, rootRelationsToBuild, rootRelationships, rootTableIDColType, rootTableName: incomingRootTableName, tableName, timestamps, versions })=>{
9
- const isRoot = !incomingRootTableName;
10
- const rootTableName = incomingRootTableName || tableName;
11
- const columns = baseColumns;
12
- const indexes = {};
13
- const localesColumns = {};
14
- const localesIndexes = {};
15
- let localesTable;
16
- let textsTable;
17
- let numbersTable;
18
- // Relationships to the base collection
19
- const relationships = rootRelationships || new Set();
20
- let relationshipsTable;
21
- // Drizzle relations
22
- const relationsToBuild = new Map();
23
- const idColType = setColumnID({
24
- adapter,
25
- columns,
26
- fields
27
- });
28
- const { hasLocalizedField, hasLocalizedManyNumberField, hasLocalizedManyTextField, hasLocalizedRelationshipField, hasManyNumberField, hasManyTextField } = traverseFields({
29
- adapter,
30
- columns,
31
- disableNotNull,
32
- disableUnique,
33
- fields,
34
- indexes,
35
- localesColumns,
36
- localesIndexes,
37
- newTableName: tableName,
38
- parentTableName: tableName,
39
- relationsToBuild,
40
- relationships,
41
- rootRelationsToBuild: rootRelationsToBuild || relationsToBuild,
42
- rootTableIDColType: rootTableIDColType || idColType,
43
- rootTableName,
44
- versions
45
- });
46
- // split the relationsToBuild by localized and non-localized
47
- const localizedRelations = new Map();
48
- const nonLocalizedRelations = new Map();
49
- relationsToBuild.forEach(({ type, localized, target }, key)=>{
50
- const map = localized ? localizedRelations : nonLocalizedRelations;
51
- map.set(key, {
52
- type,
53
- target
54
- });
55
- });
56
- if (timestamps) {
57
- columns.createdAt = timestamp('created_at', {
58
- mode: 'string',
59
- precision: 3,
60
- withTimezone: true
61
- }).defaultNow().notNull();
62
- columns.updatedAt = timestamp('updated_at', {
63
- mode: 'string',
64
- precision: 3,
65
- withTimezone: true
66
- }).defaultNow().notNull();
67
- }
68
- const table = adapter.pgSchema.table(tableName, columns, (cols)=>{
69
- const extraConfig = Object.entries(baseExtraConfig).reduce((config, [key, func])=>{
70
- config[key] = func(cols);
71
- return config;
72
- }, {});
73
- const result = Object.entries(indexes).reduce((acc, [colName, func])=>{
74
- acc[colName] = func(cols);
75
- return acc;
76
- }, extraConfig);
77
- return result;
78
- });
79
- adapter.tables[tableName] = table;
80
- if (hasLocalizedField || localizedRelations.size) {
81
- const localeTableName = `${tableName}${adapter.localesSuffix}`;
82
- localesColumns.id = serial('id').primaryKey();
83
- localesColumns._locale = adapter.enums.enum__locales('_locale').notNull();
84
- localesColumns._parentID = parentIDColumnMap[idColType]('_parent_id').notNull();
85
- localesTable = adapter.pgSchema.table(localeTableName, localesColumns, (cols)=>{
86
- return Object.entries(localesIndexes).reduce((acc, [colName, func])=>{
87
- acc[colName] = func(cols);
88
- return acc;
89
- }, {
90
- _localeParent: unique(`${localeTableName}_locale_parent_id_unique`).on(cols._locale, cols._parentID),
91
- _parentIdFk: foreignKey({
92
- name: `${localeTableName}_parent_id_fk`,
93
- columns: [
94
- cols._parentID
95
- ],
96
- foreignColumns: [
97
- table.id
98
- ]
99
- }).onDelete('cascade')
100
- });
101
- });
102
- adapter.tables[localeTableName] = localesTable;
103
- adapter.relations[`relations_${localeTableName}`] = relations(localesTable, ({ many, one })=>{
104
- const result = {};
105
- result._parentID = one(table, {
106
- fields: [
107
- localesTable._parentID
108
- ],
109
- references: [
110
- table.id
111
- ],
112
- // name the relationship by what the many() relationName is
113
- relationName: '_locales'
114
- });
115
- localizedRelations.forEach(({ type, target }, key)=>{
116
- if (type === 'one') {
117
- result[key] = one(adapter.tables[target], {
118
- fields: [
119
- localesTable[key]
120
- ],
121
- references: [
122
- adapter.tables[target].id
123
- ],
124
- relationName: key
125
- });
126
- }
127
- if (type === 'many') {
128
- result[key] = many(adapter.tables[target], {
129
- relationName: key
130
- });
131
- }
132
- });
133
- return result;
134
- });
135
- }
136
- if (isRoot) {
137
- if (hasManyTextField) {
138
- const textsTableName = `${rootTableName}_texts`;
139
- const columns = {
140
- id: serial('id').primaryKey(),
141
- order: integer('order').notNull(),
142
- parent: parentIDColumnMap[idColType]('parent_id').notNull(),
143
- path: varchar('path').notNull(),
144
- text: varchar('text')
145
- };
146
- if (hasLocalizedManyTextField) {
147
- columns.locale = adapter.enums.enum__locales('locale');
148
- }
149
- textsTable = adapter.pgSchema.table(textsTableName, columns, (cols)=>{
150
- const config = {
151
- orderParentIdx: index(`${textsTableName}_order_parent_idx`).on(cols.order, cols.parent),
152
- parentFk: foreignKey({
153
- name: `${textsTableName}_parent_fk`,
154
- columns: [
155
- cols.parent
156
- ],
157
- foreignColumns: [
158
- table.id
159
- ]
160
- }).onDelete('cascade')
161
- };
162
- if (hasManyTextField === 'index') {
163
- config.text_idx = index(`${textsTableName}_text_idx`).on(cols.text);
164
- }
165
- if (hasLocalizedManyTextField) {
166
- config.localeParent = index(`${textsTableName}_locale_parent`).on(cols.locale, cols.parent);
167
- }
168
- return config;
169
- });
170
- adapter.tables[textsTableName] = textsTable;
171
- adapter.relations[`relations_${textsTableName}`] = relations(textsTable, ({ one })=>({
172
- parent: one(table, {
173
- fields: [
174
- textsTable.parent
175
- ],
176
- references: [
177
- table.id
178
- ],
179
- relationName: '_texts'
180
- })
181
- }));
182
- }
183
- if (hasManyNumberField) {
184
- const numbersTableName = `${rootTableName}_numbers`;
185
- const columns = {
186
- id: serial('id').primaryKey(),
187
- number: numeric('number'),
188
- order: integer('order').notNull(),
189
- parent: parentIDColumnMap[idColType]('parent_id').notNull(),
190
- path: varchar('path').notNull()
191
- };
192
- if (hasLocalizedManyNumberField) {
193
- columns.locale = adapter.enums.enum__locales('locale');
194
- }
195
- numbersTable = adapter.pgSchema.table(numbersTableName, columns, (cols)=>{
196
- const config = {
197
- orderParentIdx: index(`${numbersTableName}_order_parent_idx`).on(cols.order, cols.parent),
198
- parentFk: foreignKey({
199
- name: `${numbersTableName}_parent_fk`,
200
- columns: [
201
- cols.parent
202
- ],
203
- foreignColumns: [
204
- table.id
205
- ]
206
- }).onDelete('cascade')
207
- };
208
- if (hasManyNumberField === 'index') {
209
- config.numberIdx = index(`${numbersTableName}_number_idx`).on(cols.number);
210
- }
211
- if (hasLocalizedManyNumberField) {
212
- config.localeParent = index(`${numbersTableName}_locale_parent`).on(cols.locale, cols.parent);
213
- }
214
- return config;
215
- });
216
- adapter.tables[numbersTableName] = numbersTable;
217
- adapter.relations[`relations_${numbersTableName}`] = relations(numbersTable, ({ one })=>({
218
- parent: one(table, {
219
- fields: [
220
- numbersTable.parent
221
- ],
222
- references: [
223
- table.id
224
- ],
225
- relationName: '_numbers'
226
- })
227
- }));
228
- }
229
- if (relationships.size) {
230
- const relationshipColumns = {
231
- id: serial('id').primaryKey(),
232
- order: integer('order'),
233
- parent: parentIDColumnMap[idColType]('parent_id').notNull(),
234
- path: varchar('path').notNull()
235
- };
236
- if (hasLocalizedRelationshipField) {
237
- relationshipColumns.locale = adapter.enums.enum__locales('locale');
238
- }
239
- const relationExtraConfig = {};
240
- const relationshipsTableName = `${tableName}${adapter.relationshipsSuffix}`;
241
- relationships.forEach((relationTo)=>{
242
- const relationshipConfig = adapter.payload.collections[relationTo].config;
243
- const formattedRelationTo = createTableName({
244
- adapter,
245
- config: relationshipConfig,
246
- throwValidationError: true
247
- });
248
- let colType = adapter.idType === 'uuid' ? 'uuid' : 'integer';
249
- const relatedCollectionCustomIDType = adapter.payload.collections[relationshipConfig.slug]?.customIDType;
250
- if (relatedCollectionCustomIDType === 'number') colType = 'numeric';
251
- if (relatedCollectionCustomIDType === 'text') colType = 'varchar';
252
- relationshipColumns[`${relationTo}ID`] = parentIDColumnMap[colType](`${formattedRelationTo}_id`);
253
- relationExtraConfig[`${relationTo}IdFk`] = (cols)=>foreignKey({
254
- name: `${relationshipsTableName}_${toSnakeCase(relationTo)}_fk`,
255
- columns: [
256
- cols[`${relationTo}ID`]
257
- ],
258
- foreignColumns: [
259
- adapter.tables[formattedRelationTo].id
260
- ]
261
- }).onDelete('cascade');
262
- });
263
- relationshipsTable = adapter.pgSchema.table(relationshipsTableName, relationshipColumns, (cols)=>{
264
- const result = Object.entries(relationExtraConfig).reduce((config, [key, func])=>{
265
- config[key] = func(cols);
266
- return config;
267
- }, {
268
- order: index(`${relationshipsTableName}_order_idx`).on(cols.order),
269
- parentFk: foreignKey({
270
- name: `${relationshipsTableName}_parent_fk`,
271
- columns: [
272
- cols.parent
273
- ],
274
- foreignColumns: [
275
- table.id
276
- ]
277
- }).onDelete('cascade'),
278
- parentIdx: index(`${relationshipsTableName}_parent_idx`).on(cols.parent),
279
- pathIdx: index(`${relationshipsTableName}_path_idx`).on(cols.path)
280
- });
281
- if (hasLocalizedRelationshipField) {
282
- result.localeIdx = index(`${relationshipsTableName}_locale_idx`).on(cols.locale);
283
- }
284
- return result;
285
- });
286
- adapter.tables[relationshipsTableName] = relationshipsTable;
287
- adapter.relations[`relations_${relationshipsTableName}`] = relations(relationshipsTable, ({ one })=>{
288
- const result = {
289
- parent: one(table, {
290
- fields: [
291
- relationshipsTable.parent
292
- ],
293
- references: [
294
- table.id
295
- ],
296
- relationName: '_rels'
297
- })
298
- };
299
- relationships.forEach((relationTo)=>{
300
- const relatedTableName = createTableName({
301
- adapter,
302
- config: adapter.payload.collections[relationTo].config,
303
- throwValidationError: true
304
- });
305
- const idColumnName = `${relationTo}ID`;
306
- result[idColumnName] = one(adapter.tables[relatedTableName], {
307
- fields: [
308
- relationshipsTable[idColumnName]
309
- ],
310
- references: [
311
- adapter.tables[relatedTableName].id
312
- ],
313
- relationName: relationTo
314
- });
315
- });
316
- return result;
317
- });
318
- }
319
- }
320
- adapter.relations[`relations_${tableName}`] = relations(table, ({ many, one })=>{
321
- const result = {};
322
- nonLocalizedRelations.forEach(({ type, target }, key)=>{
323
- if (type === 'one') {
324
- result[key] = one(adapter.tables[target], {
325
- fields: [
326
- table[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
- if (hasLocalizedField) {
341
- result._locales = many(localesTable, {
342
- relationName: '_locales'
343
- });
344
- }
345
- if (hasManyTextField) {
346
- result._texts = many(textsTable, {
347
- relationName: '_texts'
348
- });
349
- }
350
- if (hasManyNumberField) {
351
- result._numbers = many(numbersTable, {
352
- relationName: '_numbers'
353
- });
354
- }
355
- if (relationships.size && relationshipsTable) {
356
- result._rels = many(relationshipsTable, {
357
- relationName: '_rels'
358
- });
359
- }
360
- return result;
361
- });
362
- return {
363
- hasManyNumberField,
364
- hasManyTextField,
365
- relationsToBuild
366
- };
367
- };
368
-
369
- //# sourceMappingURL=build.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/schema/build.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport type { Relation } from 'drizzle-orm'\nimport type {\n ForeignKeyBuilder,\n IndexBuilder,\n PgColumnBuilder,\n PgTableWithColumns,\n UniqueConstraintBuilder,\n} from 'drizzle-orm/pg-core'\nimport type { Field } from 'payload'\n\nimport { relations } from 'drizzle-orm'\nimport {\n foreignKey,\n index,\n integer,\n numeric,\n serial,\n timestamp,\n unique,\n varchar,\n} from 'drizzle-orm/pg-core'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { GenericColumns, GenericTable, IDType, PostgresAdapter } from '../types.js'\n\nimport { createTableName } from './createTableName.js'\nimport { parentIDColumnMap } from './parentIDColumnMap.js'\nimport { setColumnID } from './setColumnID.js'\nimport { traverseFields } from './traverseFields.js'\n\nexport type BaseExtraConfig = Record<\n string,\n (cols: GenericColumns) => ForeignKeyBuilder | IndexBuilder | UniqueConstraintBuilder\n>\n\nexport type RelationMap = Map<string, { localized: boolean; target: string; type: 'many' | 'one' }>\n\ntype Args = {\n adapter: PostgresAdapter\n baseColumns?: Record<string, PgColumnBuilder>\n baseExtraConfig?: BaseExtraConfig\n buildNumbers?: boolean\n buildRelationships?: boolean\n disableNotNull: boolean\n disableUnique: boolean\n fields: Field[]\n rootRelationsToBuild?: RelationMap\n rootRelationships?: Set<string>\n rootTableIDColType?: string\n rootTableName?: string\n tableName: string\n timestamps?: boolean\n versions: boolean\n}\n\ntype Result = {\n hasManyNumberField: 'index' | boolean\n hasManyTextField: 'index' | boolean\n relationsToBuild: RelationMap\n}\n\nexport const buildTable = ({\n adapter,\n baseColumns = {},\n baseExtraConfig = {},\n disableNotNull,\n disableUnique = false,\n fields,\n rootRelationsToBuild,\n rootRelationships,\n rootTableIDColType,\n rootTableName: incomingRootTableName,\n tableName,\n timestamps,\n versions,\n}: Args): Result => {\n const isRoot = !incomingRootTableName\n const rootTableName = incomingRootTableName || tableName\n const columns: Record<string, PgColumnBuilder> = baseColumns\n const indexes: Record<string, (cols: GenericColumns) => IndexBuilder> = {}\n\n const localesColumns: Record<string, PgColumnBuilder> = {}\n const localesIndexes: Record<string, (cols: GenericColumns) => IndexBuilder> = {}\n let localesTable: GenericTable | PgTableWithColumns<any>\n let textsTable: GenericTable | PgTableWithColumns<any>\n let numbersTable: GenericTable | PgTableWithColumns<any>\n\n // Relationships to the base collection\n const relationships: Set<string> = rootRelationships || new Set()\n\n let relationshipsTable: GenericTable | PgTableWithColumns<any>\n\n // Drizzle relations\n const relationsToBuild: RelationMap = new Map()\n\n const idColType: IDType = setColumnID({ adapter, columns, fields })\n\n const {\n hasLocalizedField,\n hasLocalizedManyNumberField,\n hasLocalizedManyTextField,\n hasLocalizedRelationshipField,\n hasManyNumberField,\n hasManyTextField,\n } = traverseFields({\n adapter,\n columns,\n disableNotNull,\n disableUnique,\n fields,\n indexes,\n localesColumns,\n localesIndexes,\n newTableName: tableName,\n parentTableName: tableName,\n relationsToBuild,\n relationships,\n rootRelationsToBuild: rootRelationsToBuild || relationsToBuild,\n rootTableIDColType: rootTableIDColType || idColType,\n rootTableName,\n versions,\n })\n\n // split the relationsToBuild by localized and non-localized\n const localizedRelations = new Map()\n const nonLocalizedRelations = new Map()\n\n relationsToBuild.forEach(({ type, localized, target }, key) => {\n const map = localized ? localizedRelations : nonLocalizedRelations\n map.set(key, { type, target })\n })\n\n if (timestamps) {\n columns.createdAt = timestamp('created_at', {\n mode: 'string',\n precision: 3,\n withTimezone: true,\n })\n .defaultNow()\n .notNull()\n columns.updatedAt = timestamp('updated_at', {\n mode: 'string',\n precision: 3,\n withTimezone: true,\n })\n .defaultNow()\n .notNull()\n }\n\n const table = adapter.pgSchema.table(tableName, columns, (cols) => {\n const extraConfig = Object.entries(baseExtraConfig).reduce((config, [key, func]) => {\n config[key] = func(cols)\n return config\n }, {})\n\n const result = Object.entries(indexes).reduce((acc, [colName, func]) => {\n acc[colName] = func(cols)\n return acc\n }, extraConfig)\n\n return result\n })\n\n adapter.tables[tableName] = table\n\n if (hasLocalizedField || localizedRelations.size) {\n const localeTableName = `${tableName}${adapter.localesSuffix}`\n localesColumns.id = serial('id').primaryKey()\n localesColumns._locale = adapter.enums.enum__locales('_locale').notNull()\n localesColumns._parentID = parentIDColumnMap[idColType]('_parent_id').notNull()\n\n localesTable = adapter.pgSchema.table(localeTableName, localesColumns, (cols) => {\n return Object.entries(localesIndexes).reduce(\n (acc, [colName, func]) => {\n acc[colName] = func(cols)\n return acc\n },\n {\n _localeParent: unique(`${localeTableName}_locale_parent_id_unique`).on(\n cols._locale,\n cols._parentID,\n ),\n _parentIdFk: foreignKey({\n name: `${localeTableName}_parent_id_fk`,\n columns: [cols._parentID],\n foreignColumns: [table.id],\n }).onDelete('cascade'),\n },\n )\n })\n\n adapter.tables[localeTableName] = localesTable\n\n adapter.relations[`relations_${localeTableName}`] = relations(localesTable, ({ many, one }) => {\n const result: Record<string, Relation<string>> = {}\n\n result._parentID = one(table, {\n fields: [localesTable._parentID],\n references: [table.id],\n // name the relationship by what the many() relationName is\n relationName: '_locales',\n })\n\n localizedRelations.forEach(({ type, target }, key) => {\n if (type === 'one') {\n result[key] = one(adapter.tables[target], {\n fields: [localesTable[key]],\n references: [adapter.tables[target].id],\n relationName: key,\n })\n }\n if (type === 'many') {\n result[key] = many(adapter.tables[target], {\n relationName: key,\n })\n }\n })\n\n return result\n })\n }\n\n if (isRoot) {\n if (hasManyTextField) {\n const textsTableName = `${rootTableName}_texts`\n const columns: Record<string, PgColumnBuilder> = {\n id: serial('id').primaryKey(),\n order: integer('order').notNull(),\n parent: parentIDColumnMap[idColType]('parent_id').notNull(),\n path: varchar('path').notNull(),\n text: varchar('text'),\n }\n\n if (hasLocalizedManyTextField) {\n columns.locale = adapter.enums.enum__locales('locale')\n }\n\n textsTable = adapter.pgSchema.table(textsTableName, columns, (cols) => {\n const config: Record<string, ForeignKeyBuilder | IndexBuilder> = {\n orderParentIdx: index(`${textsTableName}_order_parent_idx`).on(cols.order, cols.parent),\n parentFk: foreignKey({\n name: `${textsTableName}_parent_fk`,\n columns: [cols.parent],\n foreignColumns: [table.id],\n }).onDelete('cascade'),\n }\n\n if (hasManyTextField === 'index') {\n config.text_idx = index(`${textsTableName}_text_idx`).on(cols.text)\n }\n\n if (hasLocalizedManyTextField) {\n config.localeParent = index(`${textsTableName}_locale_parent`).on(\n cols.locale,\n cols.parent,\n )\n }\n\n return config\n })\n\n adapter.tables[textsTableName] = textsTable\n\n adapter.relations[`relations_${textsTableName}`] = relations(textsTable, ({ one }) => ({\n parent: one(table, {\n fields: [textsTable.parent],\n references: [table.id],\n relationName: '_texts',\n }),\n }))\n }\n\n if (hasManyNumberField) {\n const numbersTableName = `${rootTableName}_numbers`\n const columns: Record<string, PgColumnBuilder> = {\n id: serial('id').primaryKey(),\n number: numeric('number'),\n order: integer('order').notNull(),\n parent: parentIDColumnMap[idColType]('parent_id').notNull(),\n path: varchar('path').notNull(),\n }\n\n if (hasLocalizedManyNumberField) {\n columns.locale = adapter.enums.enum__locales('locale')\n }\n\n numbersTable = adapter.pgSchema.table(numbersTableName, columns, (cols) => {\n const config: Record<string, ForeignKeyBuilder | IndexBuilder> = {\n orderParentIdx: index(`${numbersTableName}_order_parent_idx`).on(cols.order, cols.parent),\n parentFk: foreignKey({\n name: `${numbersTableName}_parent_fk`,\n columns: [cols.parent],\n foreignColumns: [table.id],\n }).onDelete('cascade'),\n }\n\n if (hasManyNumberField === 'index') {\n config.numberIdx = index(`${numbersTableName}_number_idx`).on(cols.number)\n }\n\n if (hasLocalizedManyNumberField) {\n config.localeParent = index(`${numbersTableName}_locale_parent`).on(\n cols.locale,\n cols.parent,\n )\n }\n\n return config\n })\n\n adapter.tables[numbersTableName] = numbersTable\n\n adapter.relations[`relations_${numbersTableName}`] = relations(numbersTable, ({ one }) => ({\n parent: one(table, {\n fields: [numbersTable.parent],\n references: [table.id],\n relationName: '_numbers',\n }),\n }))\n }\n\n if (relationships.size) {\n const relationshipColumns: Record<string, PgColumnBuilder> = {\n id: serial('id').primaryKey(),\n order: integer('order'),\n parent: parentIDColumnMap[idColType]('parent_id').notNull(),\n path: varchar('path').notNull(),\n }\n\n if (hasLocalizedRelationshipField) {\n relationshipColumns.locale = adapter.enums.enum__locales('locale')\n }\n\n const relationExtraConfig: BaseExtraConfig = {}\n const relationshipsTableName = `${tableName}${adapter.relationshipsSuffix}`\n\n relationships.forEach((relationTo) => {\n const relationshipConfig = adapter.payload.collections[relationTo].config\n const formattedRelationTo = createTableName({\n adapter,\n config: relationshipConfig,\n throwValidationError: true,\n })\n let colType = adapter.idType === 'uuid' ? 'uuid' : 'integer'\n const relatedCollectionCustomIDType =\n adapter.payload.collections[relationshipConfig.slug]?.customIDType\n\n if (relatedCollectionCustomIDType === 'number') colType = 'numeric'\n if (relatedCollectionCustomIDType === 'text') colType = 'varchar'\n\n relationshipColumns[`${relationTo}ID`] = parentIDColumnMap[colType](\n `${formattedRelationTo}_id`,\n )\n\n relationExtraConfig[`${relationTo}IdFk`] = (cols) =>\n foreignKey({\n name: `${relationshipsTableName}_${toSnakeCase(relationTo)}_fk`,\n columns: [cols[`${relationTo}ID`]],\n foreignColumns: [adapter.tables[formattedRelationTo].id],\n }).onDelete('cascade')\n })\n\n relationshipsTable = adapter.pgSchema.table(\n relationshipsTableName,\n relationshipColumns,\n (cols) => {\n const result: Record<string, ForeignKeyBuilder | IndexBuilder> = Object.entries(\n relationExtraConfig,\n ).reduce(\n (config, [key, func]) => {\n config[key] = func(cols)\n return config\n },\n {\n order: index(`${relationshipsTableName}_order_idx`).on(cols.order),\n parentFk: foreignKey({\n name: `${relationshipsTableName}_parent_fk`,\n columns: [cols.parent],\n foreignColumns: [table.id],\n }).onDelete('cascade'),\n parentIdx: index(`${relationshipsTableName}_parent_idx`).on(cols.parent),\n pathIdx: index(`${relationshipsTableName}_path_idx`).on(cols.path),\n },\n )\n\n if (hasLocalizedRelationshipField) {\n result.localeIdx = index(`${relationshipsTableName}_locale_idx`).on(cols.locale)\n }\n\n return result\n },\n )\n\n adapter.tables[relationshipsTableName] = relationshipsTable\n\n adapter.relations[`relations_${relationshipsTableName}`] = relations(\n relationshipsTable,\n ({ one }) => {\n const result: Record<string, Relation<string>> = {\n parent: one(table, {\n fields: [relationshipsTable.parent],\n references: [table.id],\n relationName: '_rels',\n }),\n }\n\n relationships.forEach((relationTo) => {\n const relatedTableName = createTableName({\n adapter,\n config: adapter.payload.collections[relationTo].config,\n throwValidationError: true,\n })\n const idColumnName = `${relationTo}ID`\n result[idColumnName] = one(adapter.tables[relatedTableName], {\n fields: [relationshipsTable[idColumnName]],\n references: [adapter.tables[relatedTableName].id],\n relationName: relationTo,\n })\n })\n\n return result\n },\n )\n }\n }\n\n adapter.relations[`relations_${tableName}`] = relations(table, ({ many, one }) => {\n const result: Record<string, Relation<string>> = {}\n\n nonLocalizedRelations.forEach(({ type, target }, key) => {\n if (type === 'one') {\n result[key] = one(adapter.tables[target], {\n fields: [table[key]],\n references: [adapter.tables[target].id],\n relationName: key,\n })\n }\n if (type === 'many') {\n result[key] = many(adapter.tables[target], { relationName: key })\n }\n })\n\n if (hasLocalizedField) {\n result._locales = many(localesTable, { relationName: '_locales' })\n }\n\n if (hasManyTextField) {\n result._texts = many(textsTable, { relationName: '_texts' })\n }\n\n if (hasManyNumberField) {\n result._numbers = many(numbersTable, { relationName: '_numbers' })\n }\n\n if (relationships.size && relationshipsTable) {\n result._rels = many(relationshipsTable, {\n relationName: '_rels',\n })\n }\n\n return result\n })\n\n return { hasManyNumberField, hasManyTextField, relationsToBuild }\n}\n"],"names":["relations","foreignKey","index","integer","numeric","serial","timestamp","unique","varchar","toSnakeCase","createTableName","parentIDColumnMap","setColumnID","traverseFields","buildTable","adapter","baseColumns","baseExtraConfig","disableNotNull","disableUnique","fields","rootRelationsToBuild","rootRelationships","rootTableIDColType","rootTableName","incomingRootTableName","tableName","timestamps","versions","isRoot","columns","indexes","localesColumns","localesIndexes","localesTable","textsTable","numbersTable","relationships","Set","relationshipsTable","relationsToBuild","Map","idColType","hasLocalizedField","hasLocalizedManyNumberField","hasLocalizedManyTextField","hasLocalizedRelationshipField","hasManyNumberField","hasManyTextField","newTableName","parentTableName","localizedRelations","nonLocalizedRelations","forEach","type","localized","target","key","map","set","createdAt","mode","precision","withTimezone","defaultNow","notNull","updatedAt","table","pgSchema","cols","extraConfig","Object","entries","reduce","config","func","result","acc","colName","tables","size","localeTableName","localesSuffix","id","primaryKey","_locale","enums","enum__locales","_parentID","_localeParent","on","_parentIdFk","name","foreignColumns","onDelete","many","one","references","relationName","textsTableName","order","parent","path","text","locale","orderParentIdx","parentFk","text_idx","localeParent","numbersTableName","number","numberIdx","relationshipColumns","relationExtraConfig","relationshipsTableName","relationshipsSuffix","relationTo","relationshipConfig","payload","collections","formattedRelationTo","throwValidationError","colType","idType","relatedCollectionCustomIDType","slug","customIDType","parentIdx","pathIdx","localeIdx","relatedTableName","idColumnName","_locales","_texts","_numbers","_rels"],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import type { GenericColumn } from '../types.js';
2
- type CreateIndexArgs = {
3
- columnName: string;
4
- name: string | string[];
5
- tableName: string;
6
- unique?: boolean;
7
- };
8
- export declare const createIndex: ({ name, columnName, tableName, unique }: CreateIndexArgs) => (table: {
9
- [x: string]: GenericColumn;
10
- }) => import("drizzle-orm/pg-core").IndexBuilder;
11
- export {};
12
- //# sourceMappingURL=createIndex.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createIndex.d.ts","sourceRoot":"","sources":["../../src/schema/createIndex.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,KAAK,eAAe,GAAG;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,WAAW,4CAA6C,eAAe,aACnE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,aAAa,CAAA;CAAE,+CAc9C,CAAA"}
@@ -1,18 +0,0 @@
1
- /* eslint-disable no-param-reassign */ import { index, uniqueIndex } from 'drizzle-orm/pg-core';
2
- export const createIndex = ({ name, columnName, tableName, unique })=>{
3
- return (table)=>{
4
- let columns;
5
- if (Array.isArray(name)) {
6
- columns = name.map((columnName)=>table[columnName])// exclude fields were included in compound indexes but do not exist on the table
7
- .filter((col)=>typeof col !== 'undefined');
8
- } else {
9
- columns = [
10
- table[name]
11
- ];
12
- }
13
- if (unique) return uniqueIndex(`${tableName}_${columnName}_idx`).on(columns[0], ...columns.slice(1));
14
- return index(`${tableName}_${columnName}_idx`).on(columns[0], ...columns.slice(1));
15
- };
16
- };
17
-
18
- //# sourceMappingURL=createIndex.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/schema/createIndex.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport { index, uniqueIndex } from 'drizzle-orm/pg-core'\n\nimport type { GenericColumn } from '../types.js'\n\ntype CreateIndexArgs = {\n columnName: string\n name: string | string[]\n tableName: string\n unique?: boolean\n}\n\nexport const createIndex = ({ name, columnName, tableName, unique }: CreateIndexArgs) => {\n return (table: { [x: string]: GenericColumn }) => {\n let columns\n if (Array.isArray(name)) {\n columns = name\n .map((columnName) => table[columnName])\n // exclude fields were included in compound indexes but do not exist on the table\n .filter((col) => typeof col !== 'undefined')\n } else {\n columns = [table[name]]\n }\n if (unique)\n return uniqueIndex(`${tableName}_${columnName}_idx`).on(columns[0], ...columns.slice(1))\n return index(`${tableName}_${columnName}_idx`).on(columns[0], ...columns.slice(1))\n }\n}\n"],"names":["index","uniqueIndex","createIndex","name","columnName","tableName","unique","table","columns","Array","isArray","map","filter","col","on","slice"],"mappings":"AAAA,oCAAoC,GACpC,SAASA,KAAK,EAAEC,WAAW,QAAQ,sBAAqB;AAWxD,OAAO,MAAMC,cAAc,CAAC,EAAEC,IAAI,EAAEC,UAAU,EAAEC,SAAS,EAAEC,MAAM,EAAmB;IAClF,OAAO,CAACC;QACN,IAAIC;QACJ,IAAIC,MAAMC,OAAO,CAACP,OAAO;YACvBK,UAAUL,KACPQ,GAAG,CAAC,CAACP,aAAeG,KAAK,CAACH,WAAW,CACtC,iFAAiF;aAChFQ,MAAM,CAAC,CAACC,MAAQ,OAAOA,QAAQ;QACpC,OAAO;YACLL,UAAU;gBAACD,KAAK,CAACJ,KAAK;aAAC;QACzB;QACA,IAAIG,QACF,OAAOL,YAAY,CAAC,EAAEI,UAAU,CAAC,EAAED,WAAW,IAAI,CAAC,EAAEU,EAAE,CAACN,OAAO,CAAC,EAAE,KAAKA,QAAQO,KAAK,CAAC;QACvF,OAAOf,MAAM,CAAC,EAAEK,UAAU,CAAC,EAAED,WAAW,IAAI,CAAC,EAAEU,EAAE,CAACN,OAAO,CAAC,EAAE,KAAKA,QAAQO,KAAK,CAAC;IACjF;AACF,EAAC"}
@@ -1,30 +0,0 @@
1
- import type { DBIdentifierName } from 'payload';
2
- import type { PostgresAdapter } from '../types.js';
3
- type Args = {
4
- adapter: PostgresAdapter;
5
- /** The collection, global or field config **/
6
- config: {
7
- dbName?: DBIdentifierName;
8
- enumName?: DBIdentifierName;
9
- name?: string;
10
- slug?: string;
11
- };
12
- /** For nested tables passed for the user custom dbName functions to handle their own iterations */
13
- parentTableName?: string;
14
- /** For sub tables (array for example) this needs to include the parentTableName */
15
- prefix?: string;
16
- /** For tables based on fields that could have both enumName and dbName (ie: select with hasMany), default: 'dbName' */
17
- target?: 'dbName' | 'enumName';
18
- throwValidationError?: boolean;
19
- /** Adds the versions suffix to the default table name - should only be used on the base collection to avoid duplicate suffixing */
20
- versions?: boolean;
21
- /** Adds the versions suffix to custom dbName only - this is used while creating blocks / selects / arrays / etc */
22
- versionsCustomName?: boolean;
23
- };
24
- /**
25
- * Used to name database enums and tables
26
- * Returns the table or enum name for a given entity
27
- */
28
- export declare const createTableName: ({ adapter, config: { name, slug }, config, parentTableName, prefix, target, throwValidationError, versions, versionsCustomName, }: Args) => string;
29
- export {};
30
- //# sourceMappingURL=createTableName.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createTableName.d.ts","sourceRoot":"","sources":["../../src/schema/createTableName.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAK/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,eAAe,CAAA;IACxB,8CAA8C;IAC9C,MAAM,EAAE;QACN,MAAM,CAAC,EAAE,gBAAgB,CAAA;QACzB,QAAQ,CAAC,EAAE,gBAAgB,CAAA;QAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;IACD,mGAAmG;IACnG,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,uHAAuH;IACvH,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAA;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,mIAAmI;IACnI,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,mHAAmH;IACnH,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,sIAUzB,IAAI,KAAG,MAsCT,CAAA"}
@@ -1,31 +0,0 @@
1
- import { APIError } from 'payload';
2
- import toSnakeCase from 'to-snake-case';
3
- /**
4
- * Used to name database enums and tables
5
- * Returns the table or enum name for a given entity
6
- */ export const createTableName = ({ adapter, config: { name, slug }, config, parentTableName, prefix = '', target = 'dbName', throwValidationError = false, versions = false, versionsCustomName = false })=>{
7
- let customNameDefinition = config[target];
8
- let defaultTableName = `${prefix}${toSnakeCase(name ?? slug)}`;
9
- if (versions) defaultTableName = `_${defaultTableName}${adapter.versionsSuffix}`;
10
- let customTableNameResult;
11
- if (!customNameDefinition && target === 'enumName') {
12
- customNameDefinition = config['dbName'];
13
- }
14
- if (customNameDefinition) {
15
- customTableNameResult = typeof customNameDefinition === 'function' ? customNameDefinition({
16
- tableName: parentTableName
17
- }) : customNameDefinition;
18
- if (versionsCustomName) customTableNameResult = `_${customTableNameResult}${adapter.versionsSuffix}`;
19
- }
20
- const result = customTableNameResult || defaultTableName;
21
- adapter.tableNameMap.set(defaultTableName, result);
22
- if (!throwValidationError) {
23
- return result;
24
- }
25
- if (result.length > 63) {
26
- throw new APIError(`Exceeded max identifier length for table or enum name of 63 characters. Invalid name: ${result}`);
27
- }
28
- return result;
29
- };
30
-
31
- //# sourceMappingURL=createTableName.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/schema/createTableName.ts"],"sourcesContent":["import type { DBIdentifierName } from 'payload'\n\nimport { APIError } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { PostgresAdapter } from '../types.js'\n\ntype Args = {\n adapter: PostgresAdapter\n /** The collection, global or field config **/\n config: {\n dbName?: DBIdentifierName\n enumName?: DBIdentifierName\n name?: string\n slug?: string\n }\n /** For nested tables passed for the user custom dbName functions to handle their own iterations */\n parentTableName?: string\n /** For sub tables (array for example) this needs to include the parentTableName */\n prefix?: string\n /** For tables based on fields that could have both enumName and dbName (ie: select with hasMany), default: 'dbName' */\n target?: 'dbName' | 'enumName'\n throwValidationError?: boolean\n /** Adds the versions suffix to the default table name - should only be used on the base collection to avoid duplicate suffixing */\n versions?: boolean\n /** Adds the versions suffix to custom dbName only - this is used while creating blocks / selects / arrays / etc */\n versionsCustomName?: boolean\n}\n\n/**\n * Used to name database enums and tables\n * Returns the table or enum name for a given entity\n */\nexport const createTableName = ({\n adapter,\n config: { name, slug },\n config,\n parentTableName,\n prefix = '',\n target = 'dbName',\n throwValidationError = false,\n versions = false,\n versionsCustomName = false,\n}: Args): string => {\n let customNameDefinition = config[target]\n\n let defaultTableName = `${prefix}${toSnakeCase(name ?? slug)}`\n\n if (versions) defaultTableName = `_${defaultTableName}${adapter.versionsSuffix}`\n\n let customTableNameResult: string\n\n if (!customNameDefinition && target === 'enumName') {\n customNameDefinition = config['dbName']\n }\n\n if (customNameDefinition) {\n customTableNameResult =\n typeof customNameDefinition === 'function'\n ? customNameDefinition({ tableName: parentTableName })\n : customNameDefinition\n\n if (versionsCustomName)\n customTableNameResult = `_${customTableNameResult}${adapter.versionsSuffix}`\n }\n\n const result = customTableNameResult || defaultTableName\n\n adapter.tableNameMap.set(defaultTableName, result)\n\n if (!throwValidationError) {\n return result\n }\n\n if (result.length > 63) {\n throw new APIError(\n `Exceeded max identifier length for table or enum name of 63 characters. Invalid name: ${result}`,\n )\n }\n\n return result\n}\n"],"names":["APIError","toSnakeCase","createTableName","adapter","config","name","slug","parentTableName","prefix","target","throwValidationError","versions","versionsCustomName","customNameDefinition","defaultTableName","versionsSuffix","customTableNameResult","tableName","result","tableNameMap","set","length"],"mappings":"AAEA,SAASA,QAAQ,QAAQ,UAAS;AAClC,OAAOC,iBAAiB,gBAAe;AA0BvC;;;CAGC,GACD,OAAO,MAAMC,kBAAkB,CAAC,EAC9BC,OAAO,EACPC,QAAQ,EAAEC,IAAI,EAAEC,IAAI,EAAE,EACtBF,MAAM,EACNG,eAAe,EACfC,SAAS,EAAE,EACXC,SAAS,QAAQ,EACjBC,uBAAuB,KAAK,EAC5BC,WAAW,KAAK,EAChBC,qBAAqB,KAAK,EACrB;IACL,IAAIC,uBAAuBT,MAAM,CAACK,OAAO;IAEzC,IAAIK,mBAAmB,CAAC,EAAEN,OAAO,EAAEP,YAAYI,QAAQC,MAAM,CAAC;IAE9D,IAAIK,UAAUG,mBAAmB,CAAC,CAAC,EAAEA,iBAAiB,EAAEX,QAAQY,cAAc,CAAC,CAAC;IAEhF,IAAIC;IAEJ,IAAI,CAACH,wBAAwBJ,WAAW,YAAY;QAClDI,uBAAuBT,MAAM,CAAC,SAAS;IACzC;IAEA,IAAIS,sBAAsB;QACxBG,wBACE,OAAOH,yBAAyB,aAC5BA,qBAAqB;YAAEI,WAAWV;QAAgB,KAClDM;QAEN,IAAID,oBACFI,wBAAwB,CAAC,CAAC,EAAEA,sBAAsB,EAAEb,QAAQY,cAAc,CAAC,CAAC;IAChF;IAEA,MAAMG,SAASF,yBAAyBF;IAExCX,QAAQgB,YAAY,CAACC,GAAG,CAACN,kBAAkBI;IAE3C,IAAI,CAACR,sBAAsB;QACzB,OAAOQ;IACT;IAEA,IAAIA,OAAOG,MAAM,GAAG,IAAI;QACtB,MAAM,IAAIrB,SACR,CAAC,sFAAsF,EAAEkB,OAAO,CAAC;IAErG;IAEA,OAAOA;AACT,EAAC"}
@@ -1,3 +0,0 @@
1
- import type { Field } from 'payload';
2
- export declare const idToUUID: (fields: Field[]) => Field[];
3
- //# sourceMappingURL=idToUUID.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"idToUUID.d.ts","sourceRoot":"","sources":["../../src/schema/idToUUID.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,eAAO,MAAM,QAAQ,WAAY,KAAK,EAAE,KAAG,KAAK,EAU5C,CAAA"}
@@ -1,11 +0,0 @@
1
- export const idToUUID = (fields)=>fields.map((field)=>{
2
- if ('name' in field && field.name === 'id') {
3
- return {
4
- ...field,
5
- name: '_uuid'
6
- };
7
- }
8
- return field;
9
- });
10
-
11
- //# sourceMappingURL=idToUUID.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/schema/idToUUID.ts"],"sourcesContent":["import type { Field } from 'payload'\n\nexport const idToUUID = (fields: Field[]): Field[] =>\n fields.map((field) => {\n if ('name' in field && field.name === 'id') {\n return {\n ...field,\n name: '_uuid',\n }\n }\n\n return field\n })\n"],"names":["idToUUID","fields","map","field","name"],"mappings":"AAEA,OAAO,MAAMA,WAAW,CAACC,SACvBA,OAAOC,GAAG,CAAC,CAACC;QACV,IAAI,UAAUA,SAASA,MAAMC,IAAI,KAAK,MAAM;YAC1C,OAAO;gBACL,GAAGD,KAAK;gBACRC,MAAM;YACR;QACF;QAEA,OAAOD;IACT,GAAE"}
@@ -1,4 +0,0 @@
1
- import { integer, numeric, uuid, varchar } from 'drizzle-orm/pg-core';
2
- import type { IDType } from '../types.js';
3
- export declare const parentIDColumnMap: Record<IDType, typeof integer<string> | typeof numeric<string> | typeof uuid<string> | typeof varchar>;
4
- //# sourceMappingURL=parentIDColumnMap.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parentIDColumnMap.d.ts","sourceRoot":"","sources":["../../src/schema/parentIDColumnMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAErE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,eAAO,MAAM,iBAAiB,EAAE,MAAM,CACpC,MAAM,EACN,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,OAAO,CAMvF,CAAA"}
@@ -1,9 +0,0 @@
1
- import { integer, numeric, uuid, varchar } from 'drizzle-orm/pg-core';
2
- export const parentIDColumnMap = {
3
- integer,
4
- numeric,
5
- uuid,
6
- varchar
7
- };
8
-
9
- //# sourceMappingURL=parentIDColumnMap.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/schema/parentIDColumnMap.ts"],"sourcesContent":["import { integer, numeric, uuid, varchar } from 'drizzle-orm/pg-core'\n\nimport type { IDType } from '../types.js'\n\nexport const parentIDColumnMap: Record<\n IDType,\n typeof integer<string> | typeof numeric<string> | typeof uuid<string> | typeof varchar\n> = {\n integer,\n numeric,\n uuid,\n varchar,\n}\n"],"names":["integer","numeric","uuid","varchar","parentIDColumnMap"],"mappings":"AAAA,SAASA,OAAO,EAAEC,OAAO,EAAEC,IAAI,EAAEC,OAAO,QAAQ,sBAAqB;AAIrE,OAAO,MAAMC,oBAGT;IACFJ;IACAC;IACAC;IACAC;AACF,EAAC"}
@@ -1,11 +0,0 @@
1
- import type { PgColumnBuilder } from 'drizzle-orm/pg-core';
2
- import { type Field } from 'payload';
3
- import type { IDType, PostgresAdapter } from '../types.js';
4
- type Args = {
5
- adapter: PostgresAdapter;
6
- columns: Record<string, PgColumnBuilder>;
7
- fields: Field[];
8
- };
9
- export declare const setColumnID: ({ adapter, columns, fields }: Args) => IDType;
10
- export {};
11
- //# sourceMappingURL=setColumnID.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setColumnID.d.ts","sourceRoot":"","sources":["../../src/schema/setColumnID.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAG1D,OAAO,EAAE,KAAK,KAAK,EAAyB,MAAM,SAAS,CAAA;AAG3D,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE1D,KAAK,IAAI,GAAG;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAAC,MAAM,EAAE,KAAK,EAAE,CAAA;CAAE,CAAA;AACnG,eAAO,MAAM,WAAW,iCAAkC,IAAI,KAAG,MAuBhE,CAAA"}
@@ -1,24 +0,0 @@
1
- import { numeric, serial, uuid, varchar } from 'drizzle-orm/pg-core';
2
- import { flattenTopLevelFields } from 'payload';
3
- import { fieldAffectsData } from 'payload/shared';
4
- export const setColumnID = ({ adapter, columns, fields })=>{
5
- const idField = flattenTopLevelFields(fields).find((field)=>fieldAffectsData(field) && field.name === 'id');
6
- if (idField) {
7
- if (idField.type === 'number') {
8
- columns.id = numeric('id').primaryKey();
9
- return 'numeric';
10
- }
11
- if (idField.type === 'text') {
12
- columns.id = varchar('id').primaryKey();
13
- return 'varchar';
14
- }
15
- }
16
- if (adapter.idType === 'uuid') {
17
- columns.id = uuid('id').defaultRandom().primaryKey();
18
- return 'uuid';
19
- }
20
- columns.id = serial('id').primaryKey();
21
- return 'integer';
22
- };
23
-
24
- //# sourceMappingURL=setColumnID.js.map