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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (351) hide show
  1. package/dist/connect.d.ts.map +1 -1
  2. package/dist/connect.js +35 -12
  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 +57 -69
  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/fetchAndResave/traverseFields.d.ts.map +1 -1
  13. package/dist/predefinedMigrations/v2-v3/fetchAndResave/traverseFields.js +72 -67
  14. package/dist/predefinedMigrations/v2-v3/fetchAndResave/traverseFields.js.map +1 -1
  15. package/dist/predefinedMigrations/v2-v3/index.d.ts +2 -2
  16. package/dist/predefinedMigrations/v2-v3/index.d.ts.map +1 -1
  17. package/dist/predefinedMigrations/v2-v3/index.js +4 -4
  18. package/dist/predefinedMigrations/v2-v3/index.js.map +1 -1
  19. package/dist/predefinedMigrations/v2-v3/migrateRelationships.d.ts +5 -4
  20. package/dist/predefinedMigrations/v2-v3/migrateRelationships.d.ts.map +1 -1
  21. package/dist/predefinedMigrations/v2-v3/migrateRelationships.js +9 -3
  22. package/dist/predefinedMigrations/v2-v3/migrateRelationships.js.map +1 -1
  23. package/dist/predefinedMigrations/v2-v3/traverseFields.d.ts +3 -2
  24. package/dist/predefinedMigrations/v2-v3/traverseFields.d.ts.map +1 -1
  25. package/dist/predefinedMigrations/v2-v3/traverseFields.js +32 -32
  26. package/dist/predefinedMigrations/v2-v3/traverseFields.js.map +1 -1
  27. package/dist/types.d.ts +65 -78
  28. package/dist/types.d.ts.map +1 -1
  29. package/dist/types.js.map +1 -1
  30. package/license.md +22 -0
  31. package/package.json +21 -12
  32. package/dist/count.d.ts +0 -3
  33. package/dist/count.d.ts.map +0 -1
  34. package/dist/count.js +0 -41
  35. package/dist/count.js.map +0 -1
  36. package/dist/create.d.ts +0 -3
  37. package/dist/create.d.ts.map +0 -1
  38. package/dist/create.js +0 -19
  39. package/dist/create.js.map +0 -1
  40. package/dist/createGlobal.d.ts +0 -4
  41. package/dist/createGlobal.d.ts.map +0 -1
  42. package/dist/createGlobal.js +0 -19
  43. package/dist/createGlobal.js.map +0 -1
  44. package/dist/createGlobalVersion.d.ts +0 -5
  45. package/dist/createGlobalVersion.d.ts.map +0 -1
  46. package/dist/createGlobalVersion.js +0 -33
  47. package/dist/createGlobalVersion.js.map +0 -1
  48. package/dist/createMigration.d.ts +0 -3
  49. package/dist/createMigration.d.ts.map +0 -1
  50. package/dist/createMigration.js +0 -102
  51. package/dist/createMigration.js.map +0 -1
  52. package/dist/createVersion.d.ts +0 -4
  53. package/dist/createVersion.d.ts.map +0 -1
  54. package/dist/createVersion.js +0 -40
  55. package/dist/createVersion.js.map +0 -1
  56. package/dist/deleteMany.d.ts +0 -3
  57. package/dist/deleteMany.d.ts.map +0 -1
  58. package/dist/deleteMany.js +0 -28
  59. package/dist/deleteMany.js.map +0 -1
  60. package/dist/deleteOne.d.ts +0 -3
  61. package/dist/deleteOne.d.ts.map +0 -1
  62. package/dist/deleteOne.js +0 -59
  63. package/dist/deleteOne.js.map +0 -1
  64. package/dist/deleteVersions.d.ts +0 -3
  65. package/dist/deleteVersions.d.ts.map +0 -1
  66. package/dist/deleteVersions.js +0 -31
  67. package/dist/deleteVersions.js.map +0 -1
  68. package/dist/destroy.d.ts +0 -3
  69. package/dist/destroy.d.ts.map +0 -1
  70. package/dist/destroy.js +0 -15
  71. package/dist/destroy.js.map +0 -1
  72. package/dist/find/buildFindManyArgs.d.ts +0 -17
  73. package/dist/find/buildFindManyArgs.d.ts.map +0 -1
  74. package/dist/find/buildFindManyArgs.js +0 -65
  75. package/dist/find/buildFindManyArgs.js.map +0 -1
  76. package/dist/find/chainMethods.d.ts +0 -16
  77. package/dist/find/chainMethods.d.ts.map +0 -1
  78. package/dist/find/chainMethods.js +0 -12
  79. package/dist/find/chainMethods.js.map +0 -1
  80. package/dist/find/findMany.d.ts +0 -21
  81. package/dist/find/findMany.d.ts.map +0 -1
  82. package/dist/find/findMany.js +0 -152
  83. package/dist/find/findMany.js.map +0 -1
  84. package/dist/find/traverseFields.d.ts +0 -17
  85. package/dist/find/traverseFields.d.ts.map +0 -1
  86. package/dist/find/traverseFields.js +0 -156
  87. package/dist/find/traverseFields.js.map +0 -1
  88. package/dist/find.d.ts +0 -3
  89. package/dist/find.d.ts.map +0 -1
  90. package/dist/find.js +0 -21
  91. package/dist/find.js.map +0 -1
  92. package/dist/findGlobal.d.ts +0 -3
  93. package/dist/findGlobal.d.ts.map +0 -1
  94. package/dist/findGlobal.js +0 -23
  95. package/dist/findGlobal.js.map +0 -1
  96. package/dist/findGlobalVersions.d.ts +0 -3
  97. package/dist/findGlobalVersions.d.ts.map +0 -1
  98. package/dist/findGlobalVersions.js +0 -24
  99. package/dist/findGlobalVersions.js.map +0 -1
  100. package/dist/findOne.d.ts +0 -4
  101. package/dist/findOne.d.ts.map +0 -1
  102. package/dist/findOne.js +0 -21
  103. package/dist/findOne.js.map +0 -1
  104. package/dist/findVersions.d.ts +0 -3
  105. package/dist/findVersions.d.ts.map +0 -1
  106. package/dist/findVersions.js +0 -24
  107. package/dist/findVersions.js.map +0 -1
  108. package/dist/init.d.ts +0 -3
  109. package/dist/init.d.ts.map +0 -1
  110. package/dist/init.js +0 -91
  111. package/dist/init.js.map +0 -1
  112. package/dist/migrate.d.ts +0 -3
  113. package/dist/migrate.d.ts.map +0 -1
  114. package/dist/migrate.js +0 -99
  115. package/dist/migrate.js.map +0 -1
  116. package/dist/migrateDown.d.ts +0 -3
  117. package/dist/migrateDown.d.ts.map +0 -1
  118. package/dist/migrateDown.js +0 -63
  119. package/dist/migrateDown.js.map +0 -1
  120. package/dist/migrateFresh.d.ts +0 -8
  121. package/dist/migrateFresh.d.ts.map +0 -1
  122. package/dist/migrateFresh.js +0 -72
  123. package/dist/migrateFresh.js.map +0 -1
  124. package/dist/migrateRefresh.d.ts +0 -6
  125. package/dist/migrateRefresh.d.ts.map +0 -1
  126. package/dist/migrateRefresh.js +0 -102
  127. package/dist/migrateRefresh.js.map +0 -1
  128. package/dist/migrateReset.d.ts +0 -6
  129. package/dist/migrateReset.d.ts.map +0 -1
  130. package/dist/migrateReset.js +0 -82
  131. package/dist/migrateReset.js.map +0 -1
  132. package/dist/migrateStatus.d.ts +0 -3
  133. package/dist/migrateStatus.d.ts.map +0 -1
  134. package/dist/migrateStatus.js +0 -44
  135. package/dist/migrateStatus.js.map +0 -1
  136. package/dist/queries/buildAndOrConditions.d.ts +0 -16
  137. package/dist/queries/buildAndOrConditions.d.ts.map +0 -1
  138. package/dist/queries/buildAndOrConditions.js +0 -28
  139. package/dist/queries/buildAndOrConditions.js.map +0 -1
  140. package/dist/queries/buildQuery.d.ts +0 -30
  141. package/dist/queries/buildQuery.d.ts.map +0 -1
  142. package/dist/queries/buildQuery.js +0 -72
  143. package/dist/queries/buildQuery.js.map +0 -1
  144. package/dist/queries/createJSONQuery/convertPathToJSONTraversal.d.ts +0 -2
  145. package/dist/queries/createJSONQuery/convertPathToJSONTraversal.d.ts.map +0 -1
  146. package/dist/queries/createJSONQuery/convertPathToJSONTraversal.js +0 -14
  147. package/dist/queries/createJSONQuery/convertPathToJSONTraversal.js.map +0 -1
  148. package/dist/queries/createJSONQuery/formatJSONPathSegment.d.ts +0 -2
  149. package/dist/queries/createJSONQuery/formatJSONPathSegment.d.ts.map +0 -1
  150. package/dist/queries/createJSONQuery/formatJSONPathSegment.js +0 -5
  151. package/dist/queries/createJSONQuery/formatJSONPathSegment.js.map +0 -1
  152. package/dist/queries/createJSONQuery/index.d.ts +0 -10
  153. package/dist/queries/createJSONQuery/index.d.ts.map +0 -1
  154. package/dist/queries/createJSONQuery/index.js +0 -54
  155. package/dist/queries/createJSONQuery/index.js.map +0 -1
  156. package/dist/queries/getTableColumnFromPath.d.ts +0 -50
  157. package/dist/queries/getTableColumnFromPath.d.ts.map +0 -1
  158. package/dist/queries/getTableColumnFromPath.js +0 -516
  159. package/dist/queries/getTableColumnFromPath.js.map +0 -1
  160. package/dist/queries/operatorMap.d.ts +0 -18
  161. package/dist/queries/operatorMap.d.ts.map +0 -1
  162. package/dist/queries/operatorMap.js +0 -24
  163. package/dist/queries/operatorMap.js.map +0 -1
  164. package/dist/queries/parseParams.d.ts +0 -16
  165. package/dist/queries/parseParams.d.ts.map +0 -1
  166. package/dist/queries/parseParams.js +0 -183
  167. package/dist/queries/parseParams.js.map +0 -1
  168. package/dist/queries/sanitizeQueryValue.d.ts +0 -15
  169. package/dist/queries/sanitizeQueryValue.d.ts.map +0 -1
  170. package/dist/queries/sanitizeQueryValue.js +0 -89
  171. package/dist/queries/sanitizeQueryValue.js.map +0 -1
  172. package/dist/queries/selectDistinct.d.ts +0 -22
  173. package/dist/queries/selectDistinct.d.ts.map +0 -1
  174. package/dist/queries/selectDistinct.js +0 -30
  175. package/dist/queries/selectDistinct.js.map +0 -1
  176. package/dist/queryDrafts.d.ts +0 -3
  177. package/dist/queryDrafts.d.ts.map +0 -1
  178. package/dist/queryDrafts.js +0 -40
  179. package/dist/queryDrafts.js.map +0 -1
  180. package/dist/schema/build.d.ts +0 -34
  181. package/dist/schema/build.d.ts.map +0 -1
  182. package/dist/schema/build.js +0 -369
  183. package/dist/schema/build.js.map +0 -1
  184. package/dist/schema/createIndex.d.ts +0 -12
  185. package/dist/schema/createIndex.d.ts.map +0 -1
  186. package/dist/schema/createIndex.js +0 -18
  187. package/dist/schema/createIndex.js.map +0 -1
  188. package/dist/schema/createTableName.d.ts +0 -30
  189. package/dist/schema/createTableName.d.ts.map +0 -1
  190. package/dist/schema/createTableName.js +0 -31
  191. package/dist/schema/createTableName.js.map +0 -1
  192. package/dist/schema/idToUUID.d.ts +0 -3
  193. package/dist/schema/idToUUID.d.ts.map +0 -1
  194. package/dist/schema/idToUUID.js +0 -11
  195. package/dist/schema/idToUUID.js.map +0 -1
  196. package/dist/schema/parentIDColumnMap.d.ts +0 -4
  197. package/dist/schema/parentIDColumnMap.d.ts.map +0 -1
  198. package/dist/schema/parentIDColumnMap.js +0 -9
  199. package/dist/schema/parentIDColumnMap.js.map +0 -1
  200. package/dist/schema/setColumnID.d.ts +0 -11
  201. package/dist/schema/setColumnID.d.ts.map +0 -1
  202. package/dist/schema/setColumnID.js +0 -24
  203. package/dist/schema/setColumnID.js.map +0 -1
  204. package/dist/schema/traverseFields.d.ts +0 -36
  205. package/dist/schema/traverseFields.d.ts.map +0 -1
  206. package/dist/schema/traverseFields.js +0 -614
  207. package/dist/schema/traverseFields.js.map +0 -1
  208. package/dist/schema/validateExistingBlockIsIdentical.d.ts +0 -12
  209. package/dist/schema/validateExistingBlockIsIdentical.d.ts.map +0 -1
  210. package/dist/schema/validateExistingBlockIsIdentical.js +0 -76
  211. package/dist/schema/validateExistingBlockIsIdentical.js.map +0 -1
  212. package/dist/transactions/beginTransaction.d.ts +0 -3
  213. package/dist/transactions/beginTransaction.d.ts.map +0 -1
  214. package/dist/transactions/beginTransaction.js +0 -51
  215. package/dist/transactions/beginTransaction.js.map +0 -1
  216. package/dist/transactions/commitTransaction.d.ts +0 -3
  217. package/dist/transactions/commitTransaction.d.ts.map +0 -1
  218. package/dist/transactions/commitTransaction.js +0 -14
  219. package/dist/transactions/commitTransaction.js.map +0 -1
  220. package/dist/transactions/rollbackTransaction.d.ts +0 -3
  221. package/dist/transactions/rollbackTransaction.d.ts.map +0 -1
  222. package/dist/transactions/rollbackTransaction.js +0 -13
  223. package/dist/transactions/rollbackTransaction.js.map +0 -1
  224. package/dist/transform/read/hasManyNumber.d.ts +0 -10
  225. package/dist/transform/read/hasManyNumber.d.ts.map +0 -1
  226. package/dist/transform/read/hasManyNumber.js +0 -10
  227. package/dist/transform/read/hasManyNumber.js.map +0 -1
  228. package/dist/transform/read/hasManyText.d.ts +0 -10
  229. package/dist/transform/read/hasManyText.d.ts.map +0 -1
  230. package/dist/transform/read/hasManyText.js +0 -10
  231. package/dist/transform/read/hasManyText.js.map +0 -1
  232. package/dist/transform/read/index.d.ts +0 -13
  233. package/dist/transform/read/index.d.ts.map +0 -1
  234. package/dist/transform/read/index.js +0 -44
  235. package/dist/transform/read/index.js.map +0 -1
  236. package/dist/transform/read/relationship.d.ts +0 -10
  237. package/dist/transform/read/relationship.d.ts.map +0 -1
  238. package/dist/transform/read/relationship.js +0 -60
  239. package/dist/transform/read/relationship.js.map +0 -1
  240. package/dist/transform/read/traverseFields.d.ts +0 -57
  241. package/dist/transform/read/traverseFields.d.ts.map +0 -1
  242. package/dist/transform/read/traverseFields.js +0 -435
  243. package/dist/transform/read/traverseFields.js.map +0 -1
  244. package/dist/transform/write/array.d.ts +0 -26
  245. package/dist/transform/write/array.d.ts.map +0 -1
  246. package/dist/transform/write/array.js +0 -58
  247. package/dist/transform/write/array.js.map +0 -1
  248. package/dist/transform/write/blocks.d.ts +0 -25
  249. package/dist/transform/write/blocks.d.ts.map +0 -1
  250. package/dist/transform/write/blocks.js +0 -54
  251. package/dist/transform/write/blocks.js.map +0 -1
  252. package/dist/transform/write/index.d.ts +0 -13
  253. package/dist/transform/write/index.d.ts.map +0 -1
  254. package/dist/transform/write/index.js +0 -41
  255. package/dist/transform/write/index.js.map +0 -1
  256. package/dist/transform/write/numbers.d.ts +0 -8
  257. package/dist/transform/write/numbers.d.ts.map +0 -1
  258. package/dist/transform/write/numbers.js +0 -11
  259. package/dist/transform/write/numbers.js.map +0 -1
  260. package/dist/transform/write/relationships.d.ts +0 -10
  261. package/dist/transform/write/relationships.d.ts.map +0 -1
  262. package/dist/transform/write/relationships.js +0 -23
  263. package/dist/transform/write/relationships.js.map +0 -1
  264. package/dist/transform/write/selects.d.ts +0 -8
  265. package/dist/transform/write/selects.d.ts.map +0 -1
  266. package/dist/transform/write/selects.js +0 -20
  267. package/dist/transform/write/selects.js.map +0 -1
  268. package/dist/transform/write/texts.d.ts +0 -8
  269. package/dist/transform/write/texts.d.ts.map +0 -1
  270. package/dist/transform/write/texts.js +0 -11
  271. package/dist/transform/write/texts.js.map +0 -1
  272. package/dist/transform/write/traverseFields.d.ts +0 -50
  273. package/dist/transform/write/traverseFields.d.ts.map +0 -1
  274. package/dist/transform/write/traverseFields.js +0 -445
  275. package/dist/transform/write/traverseFields.js.map +0 -1
  276. package/dist/transform/write/types.d.ts +0 -43
  277. package/dist/transform/write/types.d.ts.map +0 -1
  278. package/dist/transform/write/types.js +0 -3
  279. package/dist/transform/write/types.js.map +0 -1
  280. package/dist/update.d.ts +0 -3
  281. package/dist/update.d.ts.map +0 -1
  282. package/dist/update.js +0 -54
  283. package/dist/update.js.map +0 -1
  284. package/dist/updateGlobal.d.ts +0 -4
  285. package/dist/updateGlobal.d.ts.map +0 -1
  286. package/dist/updateGlobal.js +0 -25
  287. package/dist/updateGlobal.js.map +0 -1
  288. package/dist/updateGlobalVersion.d.ts +0 -4
  289. package/dist/updateGlobalVersion.d.ts.map +0 -1
  290. package/dist/updateGlobalVersion.js +0 -36
  291. package/dist/updateGlobalVersion.js.map +0 -1
  292. package/dist/updateVersion.d.ts +0 -4
  293. package/dist/updateVersion.d.ts.map +0 -1
  294. package/dist/updateVersion.js +0 -36
  295. package/dist/updateVersion.js.map +0 -1
  296. package/dist/upsertRow/deleteExistingArrayRows.d.ts +0 -10
  297. package/dist/upsertRow/deleteExistingArrayRows.d.ts.map +0 -1
  298. package/dist/upsertRow/deleteExistingArrayRows.js +0 -10
  299. package/dist/upsertRow/deleteExistingArrayRows.js.map +0 -1
  300. package/dist/upsertRow/deleteExistingRowsByPath.d.ts +0 -14
  301. package/dist/upsertRow/deleteExistingRowsByPath.d.ts.map +0 -1
  302. package/dist/upsertRow/deleteExistingRowsByPath.js +0 -33
  303. package/dist/upsertRow/deleteExistingRowsByPath.js.map +0 -1
  304. package/dist/upsertRow/index.d.ts +0 -4
  305. package/dist/upsertRow/index.d.ts.map +0 -1
  306. package/dist/upsertRow/index.js +0 -281
  307. package/dist/upsertRow/index.js.map +0 -1
  308. package/dist/upsertRow/insertArrays.d.ts +0 -13
  309. package/dist/upsertRow/insertArrays.d.ts.map +0 -1
  310. package/dist/upsertRow/insertArrays.js +0 -68
  311. package/dist/upsertRow/insertArrays.js.map +0 -1
  312. package/dist/upsertRow/types.d.ts +0 -32
  313. package/dist/upsertRow/types.d.ts.map +0 -1
  314. package/dist/upsertRow/types.js +0 -3
  315. package/dist/upsertRow/types.js.map +0 -1
  316. package/dist/utilities/appendPrefixToKeys.d.ts +0 -2
  317. package/dist/utilities/appendPrefixToKeys.d.ts.map +0 -1
  318. package/dist/utilities/appendPrefixToKeys.js +0 -6
  319. package/dist/utilities/appendPrefixToKeys.js.map +0 -1
  320. package/dist/utilities/createBlocksMap.d.ts +0 -5
  321. package/dist/utilities/createBlocksMap.d.ts.map +0 -1
  322. package/dist/utilities/createBlocksMap.js +0 -29
  323. package/dist/utilities/createBlocksMap.js.map +0 -1
  324. package/dist/utilities/createMigrationTable.d.ts +0 -3
  325. package/dist/utilities/createMigrationTable.d.ts.map +0 -1
  326. package/dist/utilities/createMigrationTable.js +0 -13
  327. package/dist/utilities/createMigrationTable.js.map +0 -1
  328. package/dist/utilities/createRelationshipMap.d.ts +0 -2
  329. package/dist/utilities/createRelationshipMap.d.ts.map +0 -1
  330. package/dist/utilities/createRelationshipMap.js +0 -19
  331. package/dist/utilities/createRelationshipMap.js.map +0 -1
  332. package/dist/utilities/hasLocalesTable.d.ts +0 -3
  333. package/dist/utilities/hasLocalesTable.d.ts.map +0 -1
  334. package/dist/utilities/hasLocalesTable.js +0 -11
  335. package/dist/utilities/hasLocalesTable.js.map +0 -1
  336. package/dist/utilities/isArrayOfRows.d.ts +0 -2
  337. package/dist/utilities/isArrayOfRows.d.ts.map +0 -1
  338. package/dist/utilities/isArrayOfRows.js +0 -5
  339. package/dist/utilities/isArrayOfRows.js.map +0 -1
  340. package/dist/utilities/migrationTableExists.d.ts +0 -3
  341. package/dist/utilities/migrationTableExists.d.ts.map +0 -1
  342. package/dist/utilities/migrationTableExists.js +0 -9
  343. package/dist/utilities/migrationTableExists.js.map +0 -1
  344. package/dist/utilities/parseError.d.ts +0 -5
  345. package/dist/utilities/parseError.d.ts.map +0 -1
  346. package/dist/utilities/parseError.js +0 -17
  347. package/dist/utilities/parseError.js.map +0 -1
  348. package/dist/utilities/pushDevSchema.d.ts +0 -9
  349. package/dist/utilities/pushDevSchema.d.ts.map +0 -1
  350. package/dist/utilities/pushDevSchema.js +0 -58
  351. package/dist/utilities/pushDevSchema.js.map +0 -1
package/dist/types.d.ts CHANGED
@@ -1,100 +1,87 @@
1
- import type { ColumnBaseConfig, ColumnDataType, DrizzleConfig, ExtractTablesWithRelations, Relation, Relations } from 'drizzle-orm';
2
- import type { NodePgDatabase, NodePgQueryResultHKT } from 'drizzle-orm/node-postgres';
3
- import type { PgColumn, PgEnum, PgSchema, PgTableWithColumns, PgTransaction } from 'drizzle-orm/pg-core';
4
- import type { PgTableFn } from 'drizzle-orm/pg-core/table';
5
- import type { BaseDatabaseAdapter, Payload, PayloadRequestWithData } from 'payload';
1
+ import type { BasePostgresAdapter, GenericEnum, MigrateDownArgs, MigrateUpArgs, PostgresDB, PostgresSchemaHook } from '@payloadcms/drizzle/postgres';
2
+ import type { DrizzleAdapter } from '@payloadcms/drizzle/types';
3
+ import type { DrizzleConfig } from 'drizzle-orm';
4
+ import type { PgSchema, PgTableFn, PgTransactionConfig } from 'drizzle-orm/pg-core';
6
5
  import type { Pool, PoolConfig } from 'pg';
7
- export type DrizzleDB = NodePgDatabase<Record<string, unknown>>;
8
6
  export type Args = {
7
+ /**
8
+ * Transform the schema after it's built.
9
+ * You can use it to customize the schema with features that aren't supported by Payload.
10
+ * Examples may include: composite indices, generated columns, vectors
11
+ */
12
+ afterSchemaInit?: PostgresSchemaHook[];
13
+ /**
14
+ * Transform the schema before it's built.
15
+ * You can use it to preserve an existing database schema and if there are any collissions Payload will override them.
16
+ * To generate Drizzle schema from the database, see [Drizzle Kit introspection](https://orm.drizzle.team/kit-docs/commands#introspect--pull)
17
+ */
18
+ beforeSchemaInit?: PostgresSchemaHook[];
19
+ /**
20
+ * Pass `true` to disale auto database creation if it doesn't exist.
21
+ * @default false
22
+ */
23
+ disableCreateDatabase?: boolean;
24
+ extensions?: string[];
9
25
  idType?: 'serial' | 'uuid';
10
26
  localesSuffix?: string;
11
27
  logger?: DrizzleConfig['logger'];
12
28
  migrationDir?: string;
13
29
  pool: PoolConfig;
30
+ prodMigrations?: {
31
+ down: (args: MigrateDownArgs) => Promise<void>;
32
+ name: string;
33
+ up: (args: MigrateUpArgs) => Promise<void>;
34
+ }[];
14
35
  push?: boolean;
15
36
  relationshipsSuffix?: string;
16
- schemaName?: string;
17
- versionsSuffix?: string;
18
- };
19
- export type GenericColumn = PgColumn<ColumnBaseConfig<ColumnDataType, string>, Record<string, unknown>>;
20
- export type GenericColumns = {
21
- [x: string]: GenericColumn;
22
- };
23
- export type GenericTable = PgTableWithColumns<{
24
- columns: GenericColumns;
25
- dialect: string;
26
- name: string;
27
- schema: undefined;
28
- }>;
29
- export type GenericEnum = PgEnum<[string, ...string[]]>;
30
- export type GenericRelation = Relations<string, Record<string, Relation<string>>>;
31
- export type DrizzleTransaction = PgTransaction<NodePgQueryResultHKT, Record<string, unknown>, ExtractTablesWithRelations<Record<string, unknown>>>;
32
- export type PostgresAdapter = BaseDatabaseAdapter & {
33
- drizzle: DrizzleDB;
34
- enums: Record<string, GenericEnum>;
35
37
  /**
36
- * An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name
37
- * Used for returning properly formed errors from unique fields
38
+ * The schema name to use for the database
39
+ * @experimental This only works when there are not other tables or enums of the same name in the database under a different schema. Awaiting fix from Drizzle.
38
40
  */
39
- fieldConstraints: Record<string, Record<string, string>>;
40
- idType: Args['idType'];
41
- initializing: Promise<void>;
42
- localesSuffix?: string;
43
- logger: DrizzleConfig['logger'];
44
- pgSchema?: {
45
- table: PgTableFn;
46
- } | PgSchema;
47
- pool: Pool;
48
- poolOptions: Args['pool'];
49
- push: boolean;
50
- rejectInitializing: () => void;
51
- relations: Record<string, GenericRelation>;
52
- relationshipsSuffix?: string;
53
- resolveInitializing: () => void;
54
- schema: Record<string, GenericEnum | GenericRelation | GenericTable>;
55
- schemaName?: Args['schemaName'];
56
- sessions: {
57
- [id: string]: {
58
- db: DrizzleTransaction;
59
- reject: () => Promise<void>;
60
- resolve: () => Promise<void>;
61
- };
62
- };
63
- tableNameMap: Map<string, string>;
64
- tables: Record<string, GenericTable | PgTableWithColumns<any>>;
41
+ schemaName?: string;
42
+ tablesFilter?: string[];
43
+ transactionOptions?: false | PgTransactionConfig;
65
44
  versionsSuffix?: string;
66
45
  };
67
- export type IDType = 'integer' | 'numeric' | 'uuid' | 'varchar';
68
- export type PostgresAdapterResult = (args: {
69
- payload: Payload;
70
- }) => PostgresAdapter;
71
- export type MigrateUpArgs = {
72
- payload: Payload;
73
- req?: Partial<PayloadRequestWithData>;
74
- };
75
- export type MigrateDownArgs = {
76
- payload: Payload;
77
- req?: Partial<PayloadRequestWithData>;
78
- };
46
+ export type PostgresAdapter = {
47
+ pool: Pool;
48
+ poolOptions: PoolConfig;
49
+ } & BasePostgresAdapter;
79
50
  declare module 'payload' {
80
- interface DatabaseAdapter extends Omit<Args, 'migrationDir' | 'pool'>, BaseDatabaseAdapter {
81
- drizzle: DrizzleDB;
51
+ interface DatabaseAdapter extends Omit<Args, 'idType' | 'logger' | 'migrationDir' | 'pool'>, DrizzleAdapter {
52
+ afterSchemaInit: PostgresSchemaHook[];
53
+ beforeSchemaInit: PostgresSchemaHook[];
54
+ beginTransaction: (options?: PgTransactionConfig) => Promise<null | number | string>;
55
+ drizzle: PostgresDB;
82
56
  enums: Record<string, GenericEnum>;
57
+ extensions: Record<string, boolean>;
58
+ /**
59
+ * An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name
60
+ * Used for returning properly formed errors from unique fields
61
+ */
83
62
  fieldConstraints: Record<string, Record<string, string>>;
84
- localeSuffix?: string;
63
+ idType: Args['idType'];
64
+ initializing: Promise<void>;
65
+ localesSuffix?: string;
66
+ logger: DrizzleConfig['logger'];
67
+ pgSchema?: {
68
+ table: PgTableFn;
69
+ } | PgSchema;
85
70
  pool: Pool;
71
+ poolOptions: Args['pool'];
72
+ prodMigrations?: {
73
+ down: (args: MigrateDownArgs) => Promise<void>;
74
+ name: string;
75
+ up: (args: MigrateUpArgs) => Promise<void>;
76
+ }[];
86
77
  push: boolean;
87
- relations: Record<string, GenericRelation>;
78
+ rejectInitializing: () => void;
88
79
  relationshipsSuffix?: string;
89
- schema: Record<string, GenericEnum | GenericRelation | GenericTable>;
90
- sessions: {
91
- [id: string]: {
92
- db: DrizzleTransaction;
93
- reject: () => Promise<void>;
94
- resolve: () => Promise<void>;
95
- };
96
- };
97
- tables: Record<string, GenericTable>;
80
+ resolveInitializing: () => void;
81
+ schema: Record<string, unknown>;
82
+ schemaName?: Args['schemaName'];
83
+ tableNameMap: Map<string, string>;
84
+ tablesFilter?: string[];
98
85
  versionsSuffix?: string;
99
86
  }
100
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type {\n ColumnBaseConfig,\n ColumnDataType,\n DrizzleConfig,\n ExtractTablesWithRelations,\n Relation,\n Relations,\n} from 'drizzle-orm'\nimport type { NodePgDatabase, NodePgQueryResultHKT } from 'drizzle-orm/node-postgres'\nimport type {\n PgColumn,\n PgEnum,\n PgSchema,\n PgTableWithColumns,\n PgTransaction,\n} from 'drizzle-orm/pg-core'\nimport type { PgTableFn } from 'drizzle-orm/pg-core/table'\nimport type { BaseDatabaseAdapter, Payload, PayloadRequestWithData } from 'payload'\nimport type { Pool, PoolConfig } from 'pg'\n\nexport type DrizzleDB = NodePgDatabase<Record<string, unknown>>\n\nexport type Args = {\n idType?: 'serial' | 'uuid'\n localesSuffix?: string\n logger?: DrizzleConfig['logger']\n migrationDir?: string\n pool: PoolConfig\n push?: boolean\n relationshipsSuffix?: string\n schemaName?: string\n versionsSuffix?: string\n}\n\nexport type GenericColumn = PgColumn<\n ColumnBaseConfig<ColumnDataType, string>,\n Record<string, unknown>\n>\n\nexport type GenericColumns = {\n [x: string]: GenericColumn\n}\n\nexport type GenericTable = PgTableWithColumns<{\n columns: GenericColumns\n dialect: string\n name: string\n schema: undefined\n}>\n\nexport type GenericEnum = PgEnum<[string, ...string[]]>\n\nexport type GenericRelation = Relations<string, Record<string, Relation<string>>>\n\nexport type DrizzleTransaction = PgTransaction<\n NodePgQueryResultHKT,\n Record<string, unknown>,\n ExtractTablesWithRelations<Record<string, unknown>>\n>\n\nexport type PostgresAdapter = BaseDatabaseAdapter & {\n drizzle: DrizzleDB\n enums: Record<string, GenericEnum>\n /**\n * An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name\n * Used for returning properly formed errors from unique fields\n */\n fieldConstraints: Record<string, Record<string, string>>\n idType: Args['idType']\n initializing: Promise<void>\n localesSuffix?: string\n logger: DrizzleConfig['logger']\n pgSchema?: { table: PgTableFn } | PgSchema\n pool: Pool\n poolOptions: Args['pool']\n push: boolean\n rejectInitializing: () => void\n relations: Record<string, GenericRelation>\n relationshipsSuffix?: string\n resolveInitializing: () => void\n schema: Record<string, GenericEnum | GenericRelation | GenericTable>\n schemaName?: Args['schemaName']\n sessions: {\n [id: string]: {\n db: DrizzleTransaction\n reject: () => Promise<void>\n resolve: () => Promise<void>\n }\n }\n tableNameMap: Map<string, string>\n tables: Record<string, GenericTable | PgTableWithColumns<any>>\n versionsSuffix?: string\n}\n\nexport type IDType = 'integer' | 'numeric' | 'uuid' | 'varchar'\n\nexport type PostgresAdapterResult = (args: { payload: Payload }) => PostgresAdapter\n\nexport type MigrateUpArgs = { payload: Payload; req?: Partial<PayloadRequestWithData> }\nexport type MigrateDownArgs = { payload: Payload; req?: Partial<PayloadRequestWithData> }\n\ndeclare module 'payload' {\n export interface DatabaseAdapter\n extends Omit<Args, 'migrationDir' | 'pool'>,\n BaseDatabaseAdapter {\n drizzle: DrizzleDB\n enums: Record<string, GenericEnum>\n fieldConstraints: Record<string, Record<string, string>>\n localeSuffix?: string\n pool: Pool\n push: boolean\n relations: Record<string, GenericRelation>\n relationshipsSuffix?: string\n schema: Record<string, GenericEnum | GenericRelation | GenericTable>\n sessions: {\n [id: string]: {\n db: DrizzleTransaction\n reject: () => Promise<void>\n resolve: () => Promise<void>\n }\n }\n tables: Record<string, GenericTable>\n versionsSuffix?: string\n }\n}\n"],"names":[],"mappings":"AAmGA,WAAyF"}
1
+ {"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type {\n BasePostgresAdapter,\n GenericEnum,\n MigrateDownArgs,\n MigrateUpArgs,\n PostgresDB,\n PostgresSchemaHook,\n} from '@payloadcms/drizzle/postgres'\nimport type { DrizzleAdapter } from '@payloadcms/drizzle/types'\nimport type { DrizzleConfig } from 'drizzle-orm'\nimport type { PgSchema, PgTableFn, PgTransactionConfig } from 'drizzle-orm/pg-core'\nimport type { Pool, PoolConfig } from 'pg'\n\nexport type Args = {\n /**\n * Transform the schema after it's built.\n * You can use it to customize the schema with features that aren't supported by Payload.\n * Examples may include: composite indices, generated columns, vectors\n */\n afterSchemaInit?: PostgresSchemaHook[]\n /**\n * Transform the schema before it's built.\n * You can use it to preserve an existing database schema and if there are any collissions Payload will override them.\n * To generate Drizzle schema from the database, see [Drizzle Kit introspection](https://orm.drizzle.team/kit-docs/commands#introspect--pull)\n */\n beforeSchemaInit?: PostgresSchemaHook[]\n /**\n * Pass `true` to disale auto database creation if it doesn't exist.\n * @default false\n */\n disableCreateDatabase?: boolean\n extensions?: string[]\n idType?: 'serial' | 'uuid'\n localesSuffix?: string\n logger?: DrizzleConfig['logger']\n migrationDir?: string\n pool: PoolConfig\n prodMigrations?: {\n down: (args: MigrateDownArgs) => Promise<void>\n name: string\n up: (args: MigrateUpArgs) => Promise<void>\n }[]\n push?: boolean\n relationshipsSuffix?: string\n /**\n * The schema name to use for the database\n * @experimental This only works when there are not other tables or enums of the same name in the database under a different schema. Awaiting fix from Drizzle.\n */\n schemaName?: string\n tablesFilter?: string[]\n transactionOptions?: false | PgTransactionConfig\n versionsSuffix?: string\n}\n\nexport type PostgresAdapter = {\n pool: Pool\n poolOptions: PoolConfig\n} & BasePostgresAdapter\n\ndeclare module 'payload' {\n export interface DatabaseAdapter\n extends Omit<Args, 'idType' | 'logger' | 'migrationDir' | 'pool'>,\n DrizzleAdapter {\n afterSchemaInit: PostgresSchemaHook[]\n\n beforeSchemaInit: PostgresSchemaHook[]\n beginTransaction: (options?: PgTransactionConfig) => Promise<null | number | string>\n drizzle: PostgresDB\n enums: Record<string, GenericEnum>\n extensions: Record<string, boolean>\n /**\n * An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name\n * Used for returning properly formed errors from unique fields\n */\n fieldConstraints: Record<string, Record<string, string>>\n idType: Args['idType']\n initializing: Promise<void>\n localesSuffix?: string\n logger: DrizzleConfig['logger']\n pgSchema?: { table: PgTableFn } | PgSchema\n pool: Pool\n poolOptions: Args['pool']\n prodMigrations?: {\n down: (args: MigrateDownArgs) => Promise<void>\n name: string\n up: (args: MigrateUpArgs) => Promise<void>\n }[]\n push: boolean\n rejectInitializing: () => void\n relationshipsSuffix?: string\n resolveInitializing: () => void\n schema: Record<string, unknown>\n schemaName?: Args['schemaName']\n tableNameMap: Map<string, string>\n tablesFilter?: string[]\n versionsSuffix?: string\n }\n}\n"],"names":[],"mappings":"AAsDA,WAGuB"}
package/license.md ADDED
@@ -0,0 +1,22 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2018-2024 Payload CMS, Inc. <info@payloadcms.com>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ 'Software'), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/db-postgres",
3
- "version": "3.0.0-canary.f83d96a",
3
+ "version": "3.0.0-canary.fb04843",
4
4
  "description": "The officially supported Postgres database adapter for Payload",
5
5
  "homepage": "https://payloadcms.com",
6
6
  "repository": {
@@ -10,6 +10,13 @@
10
10
  },
11
11
  "license": "MIT",
12
12
  "author": "Payload <dev@payloadcms.com> (https://payloadcms.com)",
13
+ "maintainers": [
14
+ {
15
+ "name": "Payload",
16
+ "email": "info@payloadcms.com",
17
+ "url": "https://payloadcms.com"
18
+ }
19
+ ],
13
20
  "type": "module",
14
21
  "exports": {
15
22
  ".": {
@@ -35,25 +42,25 @@
35
42
  "mock.js"
36
43
  ],
37
44
  "dependencies": {
38
- "@libsql/client": "^0.5.2",
39
- "console-table-printer": "2.11.2",
40
- "drizzle-kit": "0.20.14-1f2c838",
41
- "drizzle-orm": "0.29.4",
45
+ "@types/pg": "8.10.2",
46
+ "console-table-printer": "2.12.1",
47
+ "drizzle-kit": "0.28.0",
48
+ "drizzle-orm": "0.36.1",
42
49
  "pg": "8.11.3",
43
50
  "prompts": "2.4.2",
44
51
  "to-snake-case": "1.0.0",
45
- "uuid": "10.0.0"
52
+ "uuid": "10.0.0",
53
+ "@payloadcms/drizzle": "3.0.0-canary.fb04843"
46
54
  },
47
55
  "devDependencies": {
48
56
  "@hyrious/esbuild-plugin-commonjs": "^0.2.4",
49
- "@types/pg": "8.10.2",
50
57
  "@types/to-snake-case": "1.0.0",
51
- "esbuild": "^0.21.4",
52
- "@payloadcms/eslint-config": "1.1.1",
53
- "payload": "3.0.0-canary.f83d96a"
58
+ "esbuild": "0.23.1",
59
+ "payload": "3.0.0-canary.fb04843",
60
+ "@payloadcms/eslint-config": "3.0.0-beta.112"
54
61
  },
55
62
  "peerDependencies": {
56
- "payload": "3.0.0-canary.f83d96a"
63
+ "payload": "3.0.0-canary.fb04843"
57
64
  },
58
65
  "scripts": {
59
66
  "build": "rimraf .dist && rimraf tsconfig.tsbuildinfo && pnpm build:types && pnpm build:swc && pnpm build:esbuild && pnpm renamePredefinedMigrations",
@@ -61,6 +68,8 @@
61
68
  "build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
62
69
  "build:types": "tsc --emitDeclarationOnly --outDir dist",
63
70
  "clean": "rimraf {dist,*.tsbuildinfo}",
64
- "renamePredefinedMigrations": "tsx ./scripts/renamePredefinedMigrations.ts"
71
+ "lint": "eslint .",
72
+ "lint:fix": "eslint . --fix",
73
+ "renamePredefinedMigrations": "node --no-deprecation --import @swc-node/register/esm-register ./scripts/renamePredefinedMigrations.ts"
65
74
  }
66
75
  }
package/dist/count.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import type { Count } from 'payload';
2
- export declare const count: Count;
3
- //# sourceMappingURL=count.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"count.d.ts","sourceRoot":"","sources":["../src/count.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAA6B,MAAM,SAAS,CAAA;AAW/D,eAAO,MAAM,KAAK,EAAE,KA0CnB,CAAA"}
package/dist/count.js DELETED
@@ -1,41 +0,0 @@
1
- import { sql } from 'drizzle-orm';
2
- import toSnakeCase from 'to-snake-case';
3
- import { chainMethods } from './find/chainMethods.js';
4
- import buildQuery from './queries/buildQuery.js';
5
- export const count = async function count({ collection, locale, req, where: whereArg }) {
6
- const collectionConfig = this.payload.collections[collection].config;
7
- const tableName = this.tableNameMap.get(toSnakeCase(collectionConfig.slug));
8
- const db = this.sessions[req.transactionID]?.db || this.drizzle;
9
- const table = this.tables[tableName];
10
- const { joins, where } = await buildQuery({
11
- adapter: this,
12
- fields: collectionConfig.fields,
13
- locale,
14
- tableName,
15
- where: whereArg
16
- });
17
- const selectCountMethods = [];
18
- Object.entries(joins).forEach(([joinTable, condition])=>{
19
- if (joinTable) {
20
- selectCountMethods.push({
21
- args: [
22
- this.tables[joinTable],
23
- condition
24
- ],
25
- method: 'leftJoin'
26
- });
27
- }
28
- });
29
- const countResult = await chainMethods({
30
- methods: selectCountMethods,
31
- query: db.select({
32
- count: sql`count
33
- (DISTINCT ${this.tables[tableName].id})`
34
- }).from(table).where(where)
35
- });
36
- return {
37
- totalDocs: Number(countResult[0].count)
38
- };
39
- };
40
-
41
- //# sourceMappingURL=count.js.map
package/dist/count.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/count.ts"],"sourcesContent":["import type { Count, SanitizedCollectionConfig } from 'payload'\n\nimport { sql } from 'drizzle-orm'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { ChainedMethods } from './find/chainMethods.js'\nimport type { PostgresAdapter } from './types.js'\n\nimport { chainMethods } from './find/chainMethods.js'\nimport buildQuery from './queries/buildQuery.js'\n\nexport const count: Count = async function count(\n this: PostgresAdapter,\n { collection, locale, req, where: whereArg },\n) {\n const collectionConfig: SanitizedCollectionConfig = this.payload.collections[collection].config\n\n const tableName = this.tableNameMap.get(toSnakeCase(collectionConfig.slug))\n\n const db = this.sessions[req.transactionID]?.db || this.drizzle\n const table = this.tables[tableName]\n\n const { joins, where } = await buildQuery({\n adapter: this,\n fields: collectionConfig.fields,\n locale,\n tableName,\n where: whereArg,\n })\n\n const selectCountMethods: ChainedMethods = []\n\n Object.entries(joins).forEach(([joinTable, condition]) => {\n if (joinTable) {\n selectCountMethods.push({\n args: [this.tables[joinTable], condition],\n method: 'leftJoin',\n })\n }\n })\n\n const countResult = await chainMethods({\n methods: selectCountMethods,\n query: db\n .select({\n count: sql<number>`count\n (DISTINCT ${this.tables[tableName].id})`,\n })\n .from(table)\n .where(where),\n })\n\n return { totalDocs: Number(countResult[0].count) }\n}\n"],"names":["sql","toSnakeCase","chainMethods","buildQuery","count","collection","locale","req","where","whereArg","collectionConfig","payload","collections","config","tableName","tableNameMap","get","slug","db","sessions","transactionID","drizzle","table","tables","joins","adapter","fields","selectCountMethods","Object","entries","forEach","joinTable","condition","push","args","method","countResult","methods","query","select","id","from","totalDocs","Number"],"mappings":"AAEA,SAASA,GAAG,QAAQ,cAAa;AACjC,OAAOC,iBAAiB,gBAAe;AAKvC,SAASC,YAAY,QAAQ,yBAAwB;AACrD,OAAOC,gBAAgB,0BAAyB;AAEhD,OAAO,MAAMC,QAAe,eAAeA,MAEzC,EAAEC,UAAU,EAAEC,MAAM,EAAEC,GAAG,EAAEC,OAAOC,QAAQ,EAAE;IAE5C,MAAMC,mBAA8C,IAAI,CAACC,OAAO,CAACC,WAAW,CAACP,WAAW,CAACQ,MAAM;IAE/F,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAACf,YAAYS,iBAAiBO,IAAI;IAEzE,MAAMC,KAAK,IAAI,CAACC,QAAQ,CAACZ,IAAIa,aAAa,CAAC,EAAEF,MAAM,IAAI,CAACG,OAAO;IAC/D,MAAMC,QAAQ,IAAI,CAACC,MAAM,CAACT,UAAU;IAEpC,MAAM,EAAEU,KAAK,EAAEhB,KAAK,EAAE,GAAG,MAAML,WAAW;QACxCsB,SAAS,IAAI;QACbC,QAAQhB,iBAAiBgB,MAAM;QAC/BpB;QACAQ;QACAN,OAAOC;IACT;IAEA,MAAMkB,qBAAqC,EAAE;IAE7CC,OAAOC,OAAO,CAACL,OAAOM,OAAO,CAAC,CAAC,CAACC,WAAWC,UAAU;QACnD,IAAID,WAAW;YACbJ,mBAAmBM,IAAI,CAAC;gBACtBC,MAAM;oBAAC,IAAI,CAACX,MAAM,CAACQ,UAAU;oBAAEC;iBAAU;gBACzCG,QAAQ;YACV;QACF;IACF;IAEA,MAAMC,cAAc,MAAMlC,aAAa;QACrCmC,SAASV;QACTW,OAAOpB,GACJqB,MAAM,CAAC;YACNnC,OAAOJ,GAAW,CAAC;sBACL,EAAE,IAAI,CAACuB,MAAM,CAACT,UAAU,CAAC0B,EAAE,CAAC,CAAC,CAAC;QAC9C,GACCC,IAAI,CAACnB,OACLd,KAAK,CAACA;IACX;IAEA,OAAO;QAAEkC,WAAWC,OAAOP,WAAW,CAAC,EAAE,CAAChC,KAAK;IAAE;AACnD,EAAC"}
package/dist/create.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import type { Create } from 'payload';
2
- export declare const create: Create;
3
- //# sourceMappingURL=create.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAQrC,eAAO,MAAM,MAAM,EAAE,MAoBpB,CAAA"}
package/dist/create.js DELETED
@@ -1,19 +0,0 @@
1
- import toSnakeCase from 'to-snake-case';
2
- import { upsertRow } from './upsertRow/index.js';
3
- export const create = async function create({ collection: collectionSlug, data, req }) {
4
- const db = this.sessions[req.transactionID]?.db || this.drizzle;
5
- const collection = this.payload.collections[collectionSlug].config;
6
- const tableName = this.tableNameMap.get(toSnakeCase(collection.slug));
7
- const result = await upsertRow({
8
- adapter: this,
9
- data,
10
- db,
11
- fields: collection.fields,
12
- operation: 'create',
13
- req,
14
- tableName
15
- });
16
- return result;
17
- };
18
-
19
- //# sourceMappingURL=create.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/create.ts"],"sourcesContent":["import type { Create } from 'payload'\n\nimport toSnakeCase from 'to-snake-case'\n\nimport type { PostgresAdapter } from './types.js'\n\nimport { upsertRow } from './upsertRow/index.js'\n\nexport const create: Create = async function create(\n this: PostgresAdapter,\n { collection: collectionSlug, data, req },\n) {\n const db = this.sessions[req.transactionID]?.db || this.drizzle\n const collection = this.payload.collections[collectionSlug].config\n\n const tableName = this.tableNameMap.get(toSnakeCase(collection.slug))\n\n const result = await upsertRow({\n adapter: this,\n data,\n db,\n fields: collection.fields,\n operation: 'create',\n req,\n tableName,\n })\n\n return result\n}\n"],"names":["toSnakeCase","upsertRow","create","collection","collectionSlug","data","req","db","sessions","transactionID","drizzle","payload","collections","config","tableName","tableNameMap","get","slug","result","adapter","fields","operation"],"mappings":"AAEA,OAAOA,iBAAiB,gBAAe;AAIvC,SAASC,SAAS,QAAQ,uBAAsB;AAEhD,OAAO,MAAMC,SAAiB,eAAeA,OAE3C,EAAEC,YAAYC,cAAc,EAAEC,IAAI,EAAEC,GAAG,EAAE;IAEzC,MAAMC,KAAK,IAAI,CAACC,QAAQ,CAACF,IAAIG,aAAa,CAAC,EAAEF,MAAM,IAAI,CAACG,OAAO;IAC/D,MAAMP,aAAa,IAAI,CAACQ,OAAO,CAACC,WAAW,CAACR,eAAe,CAACS,MAAM;IAElE,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAAChB,YAAYG,WAAWc,IAAI;IAEnE,MAAMC,SAAS,MAAMjB,UAAU;QAC7BkB,SAAS,IAAI;QACbd;QACAE;QACAa,QAAQjB,WAAWiB,MAAM;QACzBC,WAAW;QACXf;QACAQ;IACF;IAEA,OAAOI;AACT,EAAC"}
@@ -1,4 +0,0 @@
1
- import type { CreateGlobalArgs } from 'payload';
2
- import type { PostgresAdapter } from './types.js';
3
- export declare function createGlobal<T extends Record<string, unknown>>(this: PostgresAdapter, { slug, data, req }: CreateGlobalArgs): Promise<T>;
4
- //# sourceMappingURL=createGlobal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createGlobal.d.ts","sourceRoot":"","sources":["../src/createGlobal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAA0B,MAAM,SAAS,CAAA;AAIvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAIjD,wBAAsB,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,IAAI,EAAE,eAAe,EACrB,EAAE,IAAI,EAAE,IAAI,EAAE,GAAkC,EAAE,EAAE,gBAAgB,GACnE,OAAO,CAAC,CAAC,CAAC,CAiBZ"}
@@ -1,19 +0,0 @@
1
- import toSnakeCase from 'to-snake-case';
2
- import { upsertRow } from './upsertRow/index.js';
3
- export async function createGlobal({ slug, data, req = {} }) {
4
- const db = this.sessions[req.transactionID]?.db || this.drizzle;
5
- const globalConfig = this.payload.globals.config.find((config)=>config.slug === slug);
6
- const tableName = this.tableNameMap.get(toSnakeCase(globalConfig.slug));
7
- const result = await upsertRow({
8
- adapter: this,
9
- data,
10
- db,
11
- fields: globalConfig.fields,
12
- operation: 'create',
13
- req,
14
- tableName
15
- });
16
- return result;
17
- }
18
-
19
- //# sourceMappingURL=createGlobal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/createGlobal.ts"],"sourcesContent":["import type { CreateGlobalArgs, PayloadRequestWithData } from 'payload'\n\nimport toSnakeCase from 'to-snake-case'\n\nimport type { PostgresAdapter } from './types.js'\n\nimport { upsertRow } from './upsertRow/index.js'\n\nexport async function createGlobal<T extends Record<string, unknown>>(\n this: PostgresAdapter,\n { slug, data, req = {} as PayloadRequestWithData }: CreateGlobalArgs,\n): Promise<T> {\n const db = this.sessions[req.transactionID]?.db || this.drizzle\n const globalConfig = this.payload.globals.config.find((config) => config.slug === slug)\n\n const tableName = this.tableNameMap.get(toSnakeCase(globalConfig.slug))\n\n const result = await upsertRow<T>({\n adapter: this,\n data,\n db,\n fields: globalConfig.fields,\n operation: 'create',\n req,\n tableName,\n })\n\n return result\n}\n"],"names":["toSnakeCase","upsertRow","createGlobal","slug","data","req","db","sessions","transactionID","drizzle","globalConfig","payload","globals","config","find","tableName","tableNameMap","get","result","adapter","fields","operation"],"mappings":"AAEA,OAAOA,iBAAiB,gBAAe;AAIvC,SAASC,SAAS,QAAQ,uBAAsB;AAEhD,OAAO,eAAeC,aAEpB,EAAEC,IAAI,EAAEC,IAAI,EAAEC,MAAM,CAAC,CAA2B,EAAoB;IAEpE,MAAMC,KAAK,IAAI,CAACC,QAAQ,CAACF,IAAIG,aAAa,CAAC,EAAEF,MAAM,IAAI,CAACG,OAAO;IAC/D,MAAMC,eAAe,IAAI,CAACC,OAAO,CAACC,OAAO,CAACC,MAAM,CAACC,IAAI,CAAC,CAACD,SAAWA,OAAOV,IAAI,KAAKA;IAElF,MAAMY,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAACjB,YAAYU,aAAaP,IAAI;IAErE,MAAMe,SAAS,MAAMjB,UAAa;QAChCkB,SAAS,IAAI;QACbf;QACAE;QACAc,QAAQV,aAAaU,MAAM;QAC3BC,WAAW;QACXhB;QACAU;IACF;IAEA,OAAOG;AACT"}
@@ -1,5 +0,0 @@
1
- import type { TypeWithID, TypeWithVersion } from 'payload';
2
- import { type CreateGlobalVersionArgs } from 'payload';
3
- import type { PostgresAdapter } from './types.js';
4
- export declare function createGlobalVersion<T extends TypeWithID>(this: PostgresAdapter, { autosave, globalSlug, req, versionData, }: CreateGlobalVersionArgs): Promise<TypeWithVersion<T>>;
5
- //# sourceMappingURL=createGlobalVersion.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createGlobalVersion.d.ts","sourceRoot":"","sources":["../src/createGlobalVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA0B,UAAU,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAGlF,OAAO,EAAE,KAAK,uBAAuB,EAA4B,MAAM,SAAS,CAAA;AAGhF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAIjD,wBAAsB,mBAAmB,CAAC,CAAC,SAAS,UAAU,EAC5D,IAAI,EAAE,eAAe,EACrB,EACE,QAAQ,EACR,UAAU,EACV,GAAkC,EAClC,WAAW,GACZ,EAAE,uBAAuB,+BAgC3B"}
@@ -1,33 +0,0 @@
1
- import { sql } from 'drizzle-orm';
2
- import { buildVersionGlobalFields } from 'payload';
3
- import toSnakeCase from 'to-snake-case';
4
- import { upsertRow } from './upsertRow/index.js';
5
- export async function createGlobalVersion({ autosave, globalSlug, req = {}, versionData }) {
6
- const db = this.sessions[req.transactionID]?.db || this.drizzle;
7
- const global = this.payload.globals.config.find(({ slug })=>slug === globalSlug);
8
- const tableName = this.tableNameMap.get(`_${toSnakeCase(global.slug)}${this.versionsSuffix}`);
9
- const result = await upsertRow({
10
- adapter: this,
11
- data: {
12
- autosave,
13
- latest: true,
14
- version: versionData
15
- },
16
- db,
17
- fields: buildVersionGlobalFields(global),
18
- operation: 'create',
19
- req,
20
- tableName
21
- });
22
- const table = this.tables[tableName];
23
- if (global.versions.drafts) {
24
- await db.execute(sql`
25
- UPDATE ${table}
26
- SET latest = false
27
- WHERE ${table.id} != ${result.id};
28
- `);
29
- }
30
- return result;
31
- }
32
-
33
- //# sourceMappingURL=createGlobalVersion.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/createGlobalVersion.ts"],"sourcesContent":["import type { PayloadRequestWithData, TypeWithID, TypeWithVersion } from 'payload'\n\nimport { sql } from 'drizzle-orm'\nimport { type CreateGlobalVersionArgs, buildVersionGlobalFields } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { PostgresAdapter } from './types.js'\n\nimport { upsertRow } from './upsertRow/index.js'\n\nexport async function createGlobalVersion<T extends TypeWithID>(\n this: PostgresAdapter,\n {\n autosave,\n globalSlug,\n req = {} as PayloadRequestWithData,\n versionData,\n }: CreateGlobalVersionArgs,\n) {\n const db = this.sessions[req.transactionID]?.db || this.drizzle\n const global = this.payload.globals.config.find(({ slug }) => slug === globalSlug)\n\n const tableName = this.tableNameMap.get(`_${toSnakeCase(global.slug)}${this.versionsSuffix}`)\n\n const result = await upsertRow<TypeWithVersion<T>>({\n adapter: this,\n data: {\n autosave,\n latest: true,\n version: versionData,\n },\n db,\n fields: buildVersionGlobalFields(global),\n operation: 'create',\n req,\n tableName,\n })\n\n const table = this.tables[tableName]\n\n if (global.versions.drafts) {\n await db.execute(sql`\n UPDATE ${table}\n SET latest = false\n WHERE ${table.id} != ${result.id};\n `)\n }\n\n return result\n}\n"],"names":["sql","buildVersionGlobalFields","toSnakeCase","upsertRow","createGlobalVersion","autosave","globalSlug","req","versionData","db","sessions","transactionID","drizzle","global","payload","globals","config","find","slug","tableName","tableNameMap","get","versionsSuffix","result","adapter","data","latest","version","fields","operation","table","tables","versions","drafts","execute","id"],"mappings":"AAEA,SAASA,GAAG,QAAQ,cAAa;AACjC,SAAuCC,wBAAwB,QAAQ,UAAS;AAChF,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,SAAS,QAAQ,uBAAsB;AAEhD,OAAO,eAAeC,oBAEpB,EACEC,QAAQ,EACRC,UAAU,EACVC,MAAM,CAAC,CAA2B,EAClCC,WAAW,EACa;IAE1B,MAAMC,KAAK,IAAI,CAACC,QAAQ,CAACH,IAAII,aAAa,CAAC,EAAEF,MAAM,IAAI,CAACG,OAAO;IAC/D,MAAMC,SAAS,IAAI,CAACC,OAAO,CAACC,OAAO,CAACC,MAAM,CAACC,IAAI,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA,SAASZ;IAEvE,MAAMa,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAAC,CAAC,CAAC,EAAEnB,YAAYW,OAAOK,IAAI,EAAE,EAAE,IAAI,CAACI,cAAc,CAAC,CAAC;IAE5F,MAAMC,SAAS,MAAMpB,UAA8B;QACjDqB,SAAS,IAAI;QACbC,MAAM;YACJpB;YACAqB,QAAQ;YACRC,SAASnB;QACX;QACAC;QACAmB,QAAQ3B,yBAAyBY;QACjCgB,WAAW;QACXtB;QACAY;IACF;IAEA,MAAMW,QAAQ,IAAI,CAACC,MAAM,CAACZ,UAAU;IAEpC,IAAIN,OAAOmB,QAAQ,CAACC,MAAM,EAAE;QAC1B,MAAMxB,GAAGyB,OAAO,CAAClC,GAAG,CAAC;aACZ,EAAE8B,MAAM;;YAET,EAAEA,MAAMK,EAAE,CAAC,IAAI,EAAEZ,OAAOY,EAAE,CAAC;IACnC,CAAC;IACH;IAEA,OAAOZ;AACT"}
@@ -1,3 +0,0 @@
1
- import type { CreateMigration } from 'payload';
2
- export declare const createMigration: CreateMigration;
3
- //# sourceMappingURL=createMigration.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createMigration.d.ts","sourceRoot":"","sources":["../src/createMigration.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAyB,MAAM,SAAS,CAAA;AA2CrE,eAAO,MAAM,eAAe,EAAE,eA6F7B,CAAA"}
@@ -1,102 +0,0 @@
1
- /* eslint-disable no-restricted-syntax, no-await-in-loop */ import fs from 'fs';
2
- import { createRequire } from 'module';
3
- import path from 'path';
4
- import { getPredefinedMigration } from 'payload';
5
- import prompts from 'prompts';
6
- import { fileURLToPath } from 'url';
7
- const require = createRequire(import.meta.url);
8
- const migrationTemplate = ({ downSQL, imports, upSQL })=>`import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-postgres'
9
- ${imports ? `${imports}\n` : ''}
10
- export async function up({ payload, req }: MigrateUpArgs): Promise<void> {
11
- ${upSQL}
12
- };
13
-
14
- export async function down({ payload, req }: MigrateDownArgs): Promise<void> {
15
- ${downSQL}
16
- };
17
- `;
18
- const getDefaultDrizzleSnapshot = ()=>({
19
- id: '00000000-0000-0000-0000-000000000000',
20
- _meta: {
21
- columns: {},
22
- schemas: {},
23
- tables: {}
24
- },
25
- dialect: 'pg',
26
- enums: {},
27
- prevId: '00000000-0000-0000-0000-00000000000',
28
- schemas: {},
29
- tables: {},
30
- version: '5'
31
- });
32
- export const createMigration = async function createMigration({ file, forceAcceptWarning, migrationName, payload }) {
33
- const filename = fileURLToPath(import.meta.url);
34
- const dirname = path.dirname(filename);
35
- const dir = payload.db.migrationDir;
36
- if (!fs.existsSync(dir)) {
37
- fs.mkdirSync(dir);
38
- }
39
- const { generateDrizzleJson, generateMigration } = require('drizzle-kit/payload');
40
- const drizzleJsonAfter = generateDrizzleJson(this.schema);
41
- const [yyymmdd, hhmmss] = new Date().toISOString().split('T');
42
- const formattedDate = yyymmdd.replace(/\D/g, '');
43
- const formattedTime = hhmmss.split('.')[0].replace(/\D/g, '');
44
- let imports = '';
45
- let downSQL;
46
- let upSQL;
47
- ({ downSQL, imports, upSQL } = await getPredefinedMigration({
48
- dirname,
49
- file,
50
- migrationName,
51
- payload
52
- }));
53
- const timestamp = `${formattedDate}_${formattedTime}`;
54
- const name = migrationName || file?.split('/').slice(2).join('/');
55
- const fileName = `${timestamp}${name ? `_${name.replace(/\W/g, '_')}` : ''}`;
56
- const filePath = `${dir}/${fileName}`;
57
- let drizzleJsonBefore = getDefaultDrizzleSnapshot();
58
- if (!upSQL) {
59
- // Get latest migration snapshot
60
- const latestSnapshot = fs.readdirSync(dir).filter((file)=>file.endsWith('.json')).sort().reverse()?.[0];
61
- if (latestSnapshot) {
62
- drizzleJsonBefore = JSON.parse(fs.readFileSync(`${dir}/${latestSnapshot}`, 'utf8'));
63
- }
64
- const sqlStatementsUp = await generateMigration(drizzleJsonBefore, drizzleJsonAfter);
65
- const sqlStatementsDown = await generateMigration(drizzleJsonAfter, drizzleJsonBefore);
66
- const sqlExecute = 'await payload.db.drizzle.execute(sql`';
67
- if (sqlStatementsUp?.length) {
68
- upSQL = `${sqlExecute}\n ${sqlStatementsUp?.join('\n')}\`)`;
69
- }
70
- if (sqlStatementsDown?.length) {
71
- downSQL = `${sqlExecute}\n ${sqlStatementsDown?.join('\n')}\`)`;
72
- }
73
- if (!upSQL?.length && !downSQL?.length && !forceAcceptWarning) {
74
- const { confirm: shouldCreateBlankMigration } = await prompts({
75
- name: 'confirm',
76
- type: 'confirm',
77
- initial: false,
78
- message: 'No schema changes detected. Would you like to create a blank migration file?'
79
- }, {
80
- onCancel: ()=>{
81
- process.exit(0);
82
- }
83
- });
84
- if (!shouldCreateBlankMigration) {
85
- process.exit(0);
86
- }
87
- }
88
- }
89
- // write schema
90
- fs.writeFileSync(`${filePath}.json`, JSON.stringify(drizzleJsonAfter, null, 2));
91
- // write migration
92
- fs.writeFileSync(`${filePath}.ts`, migrationTemplate({
93
- downSQL: downSQL || ` // Migration code`,
94
- imports,
95
- upSQL: upSQL || ` // Migration code`
96
- }));
97
- payload.logger.info({
98
- msg: `Migration created at ${filePath}.ts`
99
- });
100
- };
101
-
102
- //# sourceMappingURL=createMigration.js.map