@payloadcms/drizzle 3.0.0-beta.100

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (378) hide show
  1. package/README.md +3 -0
  2. package/dist/count.d.ts +3 -0
  3. package/dist/count.d.ts.map +1 -0
  4. package/dist/count.js +25 -0
  5. package/dist/count.js.map +1 -0
  6. package/dist/create.d.ts +3 -0
  7. package/dist/create.d.ts.map +1 -0
  8. package/dist/create.js +19 -0
  9. package/dist/create.js.map +1 -0
  10. package/dist/createGlobal.d.ts +4 -0
  11. package/dist/createGlobal.d.ts.map +1 -0
  12. package/dist/createGlobal.js +19 -0
  13. package/dist/createGlobal.js.map +1 -0
  14. package/dist/createGlobalVersion.d.ts +4 -0
  15. package/dist/createGlobalVersion.d.ts.map +1 -0
  16. package/dist/createGlobalVersion.js +36 -0
  17. package/dist/createGlobalVersion.js.map +1 -0
  18. package/dist/createTableName.d.ts +31 -0
  19. package/dist/createTableName.d.ts.map +1 -0
  20. package/dist/createTableName.js +35 -0
  21. package/dist/createTableName.js.map +1 -0
  22. package/dist/createVersion.d.ts +4 -0
  23. package/dist/createVersion.d.ts.map +1 -0
  24. package/dist/createVersion.js +45 -0
  25. package/dist/createVersion.js.map +1 -0
  26. package/dist/deleteMany.d.ts +3 -0
  27. package/dist/deleteMany.d.ts.map +1 -0
  28. package/dist/deleteMany.js +32 -0
  29. package/dist/deleteMany.js.map +1 -0
  30. package/dist/deleteOne.d.ts +3 -0
  31. package/dist/deleteOne.d.ts.map +1 -0
  32. package/dist/deleteOne.js +63 -0
  33. package/dist/deleteOne.js.map +1 -0
  34. package/dist/deleteVersions.d.ts +3 -0
  35. package/dist/deleteVersions.d.ts.map +1 -0
  36. package/dist/deleteVersions.js +35 -0
  37. package/dist/deleteVersions.js.map +1 -0
  38. package/dist/destroy.d.ts +3 -0
  39. package/dist/destroy.d.ts.map +1 -0
  40. package/dist/destroy.js +17 -0
  41. package/dist/destroy.js.map +1 -0
  42. package/dist/exports/postgres.d.ts +14 -0
  43. package/dist/exports/postgres.d.ts.map +1 -0
  44. package/dist/exports/postgres.js +15 -0
  45. package/dist/exports/postgres.js.map +1 -0
  46. package/dist/find/buildFindManyArgs.d.ts +17 -0
  47. package/dist/find/buildFindManyArgs.d.ts.map +1 -0
  48. package/dist/find/buildFindManyArgs.js +66 -0
  49. package/dist/find/buildFindManyArgs.js.map +1 -0
  50. package/dist/find/chainMethods.d.ts +16 -0
  51. package/dist/find/chainMethods.d.ts.map +1 -0
  52. package/dist/find/chainMethods.js +12 -0
  53. package/dist/find/chainMethods.js.map +1 -0
  54. package/dist/find/findMany.d.ts +21 -0
  55. package/dist/find/findMany.d.ts.map +1 -0
  56. package/dist/find/findMany.js +141 -0
  57. package/dist/find/findMany.js.map +1 -0
  58. package/dist/find/traverseFields.d.ts +18 -0
  59. package/dist/find/traverseFields.d.ts.map +1 -0
  60. package/dist/find/traverseFields.js +164 -0
  61. package/dist/find/traverseFields.js.map +1 -0
  62. package/dist/find.d.ts +3 -0
  63. package/dist/find.d.ts.map +1 -0
  64. package/dist/find.js +21 -0
  65. package/dist/find.js.map +1 -0
  66. package/dist/findGlobal.d.ts +3 -0
  67. package/dist/findGlobal.d.ts.map +1 -0
  68. package/dist/findGlobal.js +23 -0
  69. package/dist/findGlobal.js.map +1 -0
  70. package/dist/findGlobalVersions.d.ts +3 -0
  71. package/dist/findGlobalVersions.d.ts.map +1 -0
  72. package/dist/findGlobalVersions.js +24 -0
  73. package/dist/findGlobalVersions.js.map +1 -0
  74. package/dist/findMigrationDir.d.ts +16 -0
  75. package/dist/findMigrationDir.d.ts.map +1 -0
  76. package/dist/findMigrationDir.js +38 -0
  77. package/dist/findMigrationDir.js.map +1 -0
  78. package/dist/findOne.d.ts +4 -0
  79. package/dist/findOne.d.ts.map +1 -0
  80. package/dist/findOne.js +21 -0
  81. package/dist/findOne.js.map +1 -0
  82. package/dist/findVersions.d.ts +3 -0
  83. package/dist/findVersions.d.ts.map +1 -0
  84. package/dist/findVersions.js +24 -0
  85. package/dist/findVersions.js.map +1 -0
  86. package/dist/index.d.ts +38 -0
  87. package/dist/index.d.ts.map +1 -0
  88. package/dist/index.js +38 -0
  89. package/dist/index.js.map +1 -0
  90. package/dist/migrate.d.ts +3 -0
  91. package/dist/migrate.d.ts.map +1 -0
  92. package/dist/migrate.js +94 -0
  93. package/dist/migrate.js.map +1 -0
  94. package/dist/migrateDown.d.ts +3 -0
  95. package/dist/migrateDown.d.ts.map +1 -0
  96. package/dist/migrateDown.js +63 -0
  97. package/dist/migrateDown.js.map +1 -0
  98. package/dist/migrateFresh.d.ts +8 -0
  99. package/dist/migrateFresh.d.ts.map +1 -0
  100. package/dist/migrateFresh.js +76 -0
  101. package/dist/migrateFresh.js.map +1 -0
  102. package/dist/migrateRefresh.d.ts +6 -0
  103. package/dist/migrateRefresh.d.ts.map +1 -0
  104. package/dist/migrateRefresh.js +103 -0
  105. package/dist/migrateRefresh.js.map +1 -0
  106. package/dist/migrateReset.d.ts +6 -0
  107. package/dist/migrateReset.d.ts.map +1 -0
  108. package/dist/migrateReset.js +84 -0
  109. package/dist/migrateReset.js.map +1 -0
  110. package/dist/migrateStatus.d.ts +3 -0
  111. package/dist/migrateStatus.d.ts.map +1 -0
  112. package/dist/migrateStatus.js +43 -0
  113. package/dist/migrateStatus.js.map +1 -0
  114. package/dist/postgres/countDistinct.d.ts +3 -0
  115. package/dist/postgres/countDistinct.d.ts.map +1 -0
  116. package/dist/postgres/countDistinct.js +24 -0
  117. package/dist/postgres/countDistinct.js.map +1 -0
  118. package/dist/postgres/createJSONQuery/convertPathToJSONTraversal.d.ts +2 -0
  119. package/dist/postgres/createJSONQuery/convertPathToJSONTraversal.d.ts.map +1 -0
  120. package/dist/postgres/createJSONQuery/convertPathToJSONTraversal.js +16 -0
  121. package/dist/postgres/createJSONQuery/convertPathToJSONTraversal.js.map +1 -0
  122. package/dist/postgres/createJSONQuery/formatJSONPathSegment.d.ts +2 -0
  123. package/dist/postgres/createJSONQuery/formatJSONPathSegment.d.ts.map +1 -0
  124. package/dist/postgres/createJSONQuery/formatJSONPathSegment.js +5 -0
  125. package/dist/postgres/createJSONQuery/formatJSONPathSegment.js.map +1 -0
  126. package/dist/postgres/createJSONQuery/index.d.ts +10 -0
  127. package/dist/postgres/createJSONQuery/index.d.ts.map +1 -0
  128. package/dist/postgres/createJSONQuery/index.js +54 -0
  129. package/dist/postgres/createJSONQuery/index.js.map +1 -0
  130. package/dist/postgres/createMigration.d.ts +3 -0
  131. package/dist/postgres/createMigration.d.ts.map +1 -0
  132. package/dist/postgres/createMigration.js +92 -0
  133. package/dist/postgres/createMigration.js.map +1 -0
  134. package/dist/postgres/defaultSnapshot.d.ts +3 -0
  135. package/dist/postgres/defaultSnapshot.d.ts.map +1 -0
  136. package/dist/postgres/defaultSnapshot.js +17 -0
  137. package/dist/postgres/defaultSnapshot.js.map +1 -0
  138. package/dist/postgres/deleteWhere.d.ts +3 -0
  139. package/dist/postgres/deleteWhere.d.ts.map +1 -0
  140. package/dist/postgres/deleteWhere.js +6 -0
  141. package/dist/postgres/deleteWhere.js.map +1 -0
  142. package/dist/postgres/dropDatabase.d.ts +3 -0
  143. package/dist/postgres/dropDatabase.d.ts.map +1 -0
  144. package/dist/postgres/dropDatabase.js +9 -0
  145. package/dist/postgres/dropDatabase.js.map +1 -0
  146. package/dist/postgres/execute.d.ts +3 -0
  147. package/dist/postgres/execute.d.ts.map +1 -0
  148. package/dist/postgres/execute.js +11 -0
  149. package/dist/postgres/execute.js.map +1 -0
  150. package/dist/postgres/getMigrationTemplate.d.ts +4 -0
  151. package/dist/postgres/getMigrationTemplate.d.ts.map +1 -0
  152. package/dist/postgres/getMigrationTemplate.js +13 -0
  153. package/dist/postgres/getMigrationTemplate.js.map +1 -0
  154. package/dist/postgres/init.d.ts +3 -0
  155. package/dist/postgres/init.d.ts.map +1 -0
  156. package/dist/postgres/init.js +95 -0
  157. package/dist/postgres/init.js.map +1 -0
  158. package/dist/postgres/insert.d.ts +3 -0
  159. package/dist/postgres/insert.d.ts.map +1 -0
  160. package/dist/postgres/insert.js +12 -0
  161. package/dist/postgres/insert.js.map +1 -0
  162. package/dist/postgres/requireDrizzleKit.d.ts +3 -0
  163. package/dist/postgres/requireDrizzleKit.d.ts.map +1 -0
  164. package/dist/postgres/requireDrizzleKit.js +5 -0
  165. package/dist/postgres/requireDrizzleKit.js.map +1 -0
  166. package/dist/postgres/schema/build.d.ts +40 -0
  167. package/dist/postgres/schema/build.d.ts.map +1 -0
  168. package/dist/postgres/schema/build.js +377 -0
  169. package/dist/postgres/schema/build.js.map +1 -0
  170. package/dist/postgres/schema/createIndex.d.ts +12 -0
  171. package/dist/postgres/schema/createIndex.d.ts.map +1 -0
  172. package/dist/postgres/schema/createIndex.js +20 -0
  173. package/dist/postgres/schema/createIndex.js.map +1 -0
  174. package/dist/postgres/schema/idToUUID.d.ts +3 -0
  175. package/dist/postgres/schema/idToUUID.d.ts.map +1 -0
  176. package/dist/postgres/schema/idToUUID.js +11 -0
  177. package/dist/postgres/schema/idToUUID.js.map +1 -0
  178. package/dist/postgres/schema/parentIDColumnMap.d.ts +4 -0
  179. package/dist/postgres/schema/parentIDColumnMap.d.ts.map +1 -0
  180. package/dist/postgres/schema/parentIDColumnMap.js +9 -0
  181. package/dist/postgres/schema/parentIDColumnMap.js.map +1 -0
  182. package/dist/postgres/schema/setColumnID.d.ts +11 -0
  183. package/dist/postgres/schema/setColumnID.d.ts.map +1 -0
  184. package/dist/postgres/schema/setColumnID.js +24 -0
  185. package/dist/postgres/schema/setColumnID.js.map +1 -0
  186. package/dist/postgres/schema/traverseFields.d.ts +40 -0
  187. package/dist/postgres/schema/traverseFields.d.ts.map +1 -0
  188. package/dist/postgres/schema/traverseFields.js +712 -0
  189. package/dist/postgres/schema/traverseFields.js.map +1 -0
  190. package/dist/postgres/schema/withDefault.d.ts +4 -0
  191. package/dist/postgres/schema/withDefault.d.ts.map +1 -0
  192. package/dist/postgres/schema/withDefault.js +12 -0
  193. package/dist/postgres/schema/withDefault.js.map +1 -0
  194. package/dist/postgres/types.d.ts +112 -0
  195. package/dist/postgres/types.d.ts.map +1 -0
  196. package/dist/postgres/types.js +3 -0
  197. package/dist/postgres/types.js.map +1 -0
  198. package/dist/queries/buildAndOrConditions.d.ts +16 -0
  199. package/dist/queries/buildAndOrConditions.d.ts.map +1 -0
  200. package/dist/queries/buildAndOrConditions.js +26 -0
  201. package/dist/queries/buildAndOrConditions.js.map +1 -0
  202. package/dist/queries/buildQuery.d.ts +29 -0
  203. package/dist/queries/buildQuery.d.ts.map +1 -0
  204. package/dist/queries/buildQuery.js +72 -0
  205. package/dist/queries/buildQuery.js.map +1 -0
  206. package/dist/queries/getTableAlias.d.ts +13 -0
  207. package/dist/queries/getTableAlias.d.ts.map +1 -0
  208. package/dist/queries/getTableAlias.js +20 -0
  209. package/dist/queries/getTableAlias.js.map +1 -0
  210. package/dist/queries/getTableColumnFromPath.d.ts +51 -0
  211. package/dist/queries/getTableColumnFromPath.d.ts.map +1 -0
  212. package/dist/queries/getTableColumnFromPath.js +534 -0
  213. package/dist/queries/getTableColumnFromPath.js.map +1 -0
  214. package/dist/queries/operatorMap.d.ts +6 -0
  215. package/dist/queries/operatorMap.d.ts.map +1 -0
  216. package/dist/queries/operatorMap.js +24 -0
  217. package/dist/queries/operatorMap.js.map +1 -0
  218. package/dist/queries/parseParams.d.ts +16 -0
  219. package/dist/queries/parseParams.d.ts.map +1 -0
  220. package/dist/queries/parseParams.js +188 -0
  221. package/dist/queries/parseParams.js.map +1 -0
  222. package/dist/queries/sanitizeQueryValue.d.ts +15 -0
  223. package/dist/queries/sanitizeQueryValue.d.ts.map +1 -0
  224. package/dist/queries/sanitizeQueryValue.js +128 -0
  225. package/dist/queries/sanitizeQueryValue.js.map +1 -0
  226. package/dist/queries/selectDistinct.d.ts +21 -0
  227. package/dist/queries/selectDistinct.d.ts.map +1 -0
  228. package/dist/queries/selectDistinct.js +38 -0
  229. package/dist/queries/selectDistinct.js.map +1 -0
  230. package/dist/queryDrafts.d.ts +3 -0
  231. package/dist/queryDrafts.d.ts.map +1 -0
  232. package/dist/queryDrafts.js +39 -0
  233. package/dist/queryDrafts.js.map +1 -0
  234. package/dist/transactions/beginTransaction.d.ts +3 -0
  235. package/dist/transactions/beginTransaction.d.ts.map +1 -0
  236. package/dist/transactions/beginTransaction.js +50 -0
  237. package/dist/transactions/beginTransaction.js.map +1 -0
  238. package/dist/transactions/commitTransaction.d.ts +3 -0
  239. package/dist/transactions/commitTransaction.d.ts.map +1 -0
  240. package/dist/transactions/commitTransaction.js +17 -0
  241. package/dist/transactions/commitTransaction.js.map +1 -0
  242. package/dist/transactions/rollbackTransaction.d.ts +3 -0
  243. package/dist/transactions/rollbackTransaction.d.ts.map +1 -0
  244. package/dist/transactions/rollbackTransaction.js +14 -0
  245. package/dist/transactions/rollbackTransaction.js.map +1 -0
  246. package/dist/transform/read/hasManyNumber.d.ts +11 -0
  247. package/dist/transform/read/hasManyNumber.d.ts.map +1 -0
  248. package/dist/transform/read/hasManyNumber.js +20 -0
  249. package/dist/transform/read/hasManyNumber.js.map +1 -0
  250. package/dist/transform/read/hasManyText.d.ts +11 -0
  251. package/dist/transform/read/hasManyText.d.ts.map +1 -0
  252. package/dist/transform/read/hasManyText.js +20 -0
  253. package/dist/transform/read/hasManyText.js.map +1 -0
  254. package/dist/transform/read/index.d.ts +13 -0
  255. package/dist/transform/read/index.d.ts.map +1 -0
  256. package/dist/transform/read/index.js +44 -0
  257. package/dist/transform/read/index.js.map +1 -0
  258. package/dist/transform/read/relationship.d.ts +11 -0
  259. package/dist/transform/read/relationship.d.ts.map +1 -0
  260. package/dist/transform/read/relationship.js +69 -0
  261. package/dist/transform/read/relationship.js.map +1 -0
  262. package/dist/transform/read/traverseFields.d.ts +60 -0
  263. package/dist/transform/read/traverseFields.d.ts.map +1 -0
  264. package/dist/transform/read/traverseFields.js +456 -0
  265. package/dist/transform/read/traverseFields.js.map +1 -0
  266. package/dist/transform/write/array.d.ts +31 -0
  267. package/dist/transform/write/array.d.ts.map +1 -0
  268. package/dist/transform/write/array.js +62 -0
  269. package/dist/transform/write/array.js.map +1 -0
  270. package/dist/transform/write/blocks.d.ts +30 -0
  271. package/dist/transform/write/blocks.d.ts.map +1 -0
  272. package/dist/transform/write/blocks.js +66 -0
  273. package/dist/transform/write/blocks.js.map +1 -0
  274. package/dist/transform/write/index.d.ts +13 -0
  275. package/dist/transform/write/index.d.ts.map +1 -0
  276. package/dist/transform/write/index.js +41 -0
  277. package/dist/transform/write/index.js.map +1 -0
  278. package/dist/transform/write/numbers.d.ts +8 -0
  279. package/dist/transform/write/numbers.d.ts.map +1 -0
  280. package/dist/transform/write/numbers.js +11 -0
  281. package/dist/transform/write/numbers.js.map +1 -0
  282. package/dist/transform/write/relationships.d.ts +10 -0
  283. package/dist/transform/write/relationships.d.ts.map +1 -0
  284. package/dist/transform/write/relationships.js +27 -0
  285. package/dist/transform/write/relationships.js.map +1 -0
  286. package/dist/transform/write/selects.d.ts +8 -0
  287. package/dist/transform/write/selects.d.ts.map +1 -0
  288. package/dist/transform/write/selects.js +20 -0
  289. package/dist/transform/write/selects.js.map +1 -0
  290. package/dist/transform/write/texts.d.ts +8 -0
  291. package/dist/transform/write/texts.d.ts.map +1 -0
  292. package/dist/transform/write/texts.js +11 -0
  293. package/dist/transform/write/texts.js.map +1 -0
  294. package/dist/transform/write/traverseFields.d.ts +55 -0
  295. package/dist/transform/write/traverseFields.d.ts.map +1 -0
  296. package/dist/transform/write/traverseFields.js +474 -0
  297. package/dist/transform/write/traverseFields.js.map +1 -0
  298. package/dist/transform/write/types.d.ts +43 -0
  299. package/dist/transform/write/types.d.ts.map +1 -0
  300. package/dist/transform/write/types.js +3 -0
  301. package/dist/transform/write/types.js.map +1 -0
  302. package/dist/types.d.ts +145 -0
  303. package/dist/types.d.ts.map +1 -0
  304. package/dist/types.js +3 -0
  305. package/dist/types.js.map +1 -0
  306. package/dist/update.d.ts +3 -0
  307. package/dist/update.d.ts.map +1 -0
  308. package/dist/update.js +54 -0
  309. package/dist/update.js.map +1 -0
  310. package/dist/updateGlobal.d.ts +4 -0
  311. package/dist/updateGlobal.d.ts.map +1 -0
  312. package/dist/updateGlobal.js +25 -0
  313. package/dist/updateGlobal.js.map +1 -0
  314. package/dist/updateGlobalVersion.d.ts +4 -0
  315. package/dist/updateGlobalVersion.d.ts.map +1 -0
  316. package/dist/updateGlobalVersion.js +36 -0
  317. package/dist/updateGlobalVersion.js.map +1 -0
  318. package/dist/updateVersion.d.ts +4 -0
  319. package/dist/updateVersion.d.ts.map +1 -0
  320. package/dist/updateVersion.js +36 -0
  321. package/dist/updateVersion.js.map +1 -0
  322. package/dist/upsertRow/deleteExistingArrayRows.d.ts +10 -0
  323. package/dist/upsertRow/deleteExistingArrayRows.d.ts.map +1 -0
  324. package/dist/upsertRow/deleteExistingArrayRows.js +14 -0
  325. package/dist/upsertRow/deleteExistingArrayRows.js.map +1 -0
  326. package/dist/upsertRow/deleteExistingRowsByPath.d.ts +14 -0
  327. package/dist/upsertRow/deleteExistingRowsByPath.d.ts.map +1 -0
  328. package/dist/upsertRow/deleteExistingRowsByPath.js +45 -0
  329. package/dist/upsertRow/deleteExistingRowsByPath.js.map +1 -0
  330. package/dist/upsertRow/index.d.ts +4 -0
  331. package/dist/upsertRow/index.d.ts.map +1 -0
  332. package/dist/upsertRow/index.js +372 -0
  333. package/dist/upsertRow/index.js.map +1 -0
  334. package/dist/upsertRow/insertArrays.d.ts +13 -0
  335. package/dist/upsertRow/insertArrays.d.ts.map +1 -0
  336. package/dist/upsertRow/insertArrays.js +76 -0
  337. package/dist/upsertRow/insertArrays.js.map +1 -0
  338. package/dist/upsertRow/types.d.ts +32 -0
  339. package/dist/upsertRow/types.d.ts.map +1 -0
  340. package/dist/upsertRow/types.js +3 -0
  341. package/dist/upsertRow/types.js.map +1 -0
  342. package/dist/utilities/appendPrefixToKeys.d.ts +2 -0
  343. package/dist/utilities/appendPrefixToKeys.d.ts.map +1 -0
  344. package/dist/utilities/appendPrefixToKeys.js +6 -0
  345. package/dist/utilities/appendPrefixToKeys.js.map +1 -0
  346. package/dist/utilities/createBlocksMap.d.ts +5 -0
  347. package/dist/utilities/createBlocksMap.d.ts.map +1 -0
  348. package/dist/utilities/createBlocksMap.js +31 -0
  349. package/dist/utilities/createBlocksMap.js.map +1 -0
  350. package/dist/utilities/createRelationshipMap.d.ts +2 -0
  351. package/dist/utilities/createRelationshipMap.d.ts.map +1 -0
  352. package/dist/utilities/createRelationshipMap.js +21 -0
  353. package/dist/utilities/createRelationshipMap.js.map +1 -0
  354. package/dist/utilities/hasLocalesTable.d.ts +3 -0
  355. package/dist/utilities/hasLocalesTable.d.ts.map +1 -0
  356. package/dist/utilities/hasLocalesTable.js +21 -0
  357. package/dist/utilities/hasLocalesTable.js.map +1 -0
  358. package/dist/utilities/isArrayOfRows.d.ts +2 -0
  359. package/dist/utilities/isArrayOfRows.d.ts.map +1 -0
  360. package/dist/utilities/isArrayOfRows.js +5 -0
  361. package/dist/utilities/isArrayOfRows.js.map +1 -0
  362. package/dist/utilities/migrationTableExists.d.ts +3 -0
  363. package/dist/utilities/migrationTableExists.d.ts.map +1 -0
  364. package/dist/utilities/migrationTableExists.js +25 -0
  365. package/dist/utilities/migrationTableExists.js.map +1 -0
  366. package/dist/utilities/parseError.d.ts +5 -0
  367. package/dist/utilities/parseError.d.ts.map +1 -0
  368. package/dist/utilities/parseError.js +15 -0
  369. package/dist/utilities/parseError.js.map +1 -0
  370. package/dist/utilities/pushDevSchema.d.ts +9 -0
  371. package/dist/utilities/pushDevSchema.d.ts.map +1 -0
  372. package/dist/utilities/pushDevSchema.js +55 -0
  373. package/dist/utilities/pushDevSchema.js.map +1 -0
  374. package/dist/utilities/validateExistingBlockIsIdentical.d.ts +11 -0
  375. package/dist/utilities/validateExistingBlockIsIdentical.d.ts.map +1 -0
  376. package/dist/utilities/validateExistingBlockIsIdentical.js +76 -0
  377. package/dist/utilities/validateExistingBlockIsIdentical.js.map +1 -0
  378. package/package.json +62 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/postgres/schema/traverseFields.ts"],"sourcesContent":["import type { Relation } from 'drizzle-orm'\nimport type { IndexBuilder, PgColumnBuilder } from 'drizzle-orm/pg-core'\nimport type { Field, TabAsField } from 'payload'\n\nimport { relations } from 'drizzle-orm'\nimport {\n boolean,\n foreignKey,\n index,\n integer,\n jsonb,\n numeric,\n PgNumericBuilder,\n PgUUIDBuilder,\n PgVarcharBuilder,\n text,\n timestamp,\n varchar,\n} from 'drizzle-orm/pg-core'\nimport { InvalidConfiguration } from 'payload'\nimport { fieldAffectsData, optionIsObject } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type {\n BaseExtraConfig,\n BasePostgresAdapter,\n GenericColumns,\n IDType,\n RelationMap,\n} from '../types.js'\n\nimport { createTableName } from '../../createTableName.js'\nimport { hasLocalesTable } from '../../utilities/hasLocalesTable.js'\nimport { validateExistingBlockIsIdentical } from '../../utilities/validateExistingBlockIsIdentical.js'\nimport { buildTable } from './build.js'\nimport { createIndex } from './createIndex.js'\nimport { idToUUID } from './idToUUID.js'\nimport { parentIDColumnMap } from './parentIDColumnMap.js'\nimport { withDefault } from './withDefault.js'\n\ntype Args = {\n adapter: BasePostgresAdapter\n columnPrefix?: string\n columns: Record<string, PgColumnBuilder>\n disableNotNull: boolean\n disableUnique?: boolean\n fieldPrefix?: string\n fields: (Field | TabAsField)[]\n forceLocalized?: boolean\n indexes: Record<string, (cols: GenericColumns) => IndexBuilder>\n localesColumns: Record<string, PgColumnBuilder>\n localesIndexes: Record<string, (cols: GenericColumns) => IndexBuilder>\n newTableName: string\n parentTableName: string\n relationships: Set<string>\n relationsToBuild: RelationMap\n rootRelationsToBuild?: RelationMap\n rootTableIDColType: string\n rootTableName: string\n versions: boolean\n /**\n * Tracks whether or not this table is built\n * from the result of a localized array or block field at some point\n */\n withinLocalizedArrayOrBlock?: boolean\n}\n\ntype Result = {\n hasLocalizedField: boolean\n hasLocalizedManyNumberField: boolean\n hasLocalizedManyTextField: boolean\n hasLocalizedRelationshipField: boolean\n hasManyNumberField: 'index' | boolean\n hasManyTextField: 'index' | boolean\n}\n\nexport const traverseFields = ({\n adapter,\n columnPrefix,\n columns,\n disableNotNull,\n disableUnique = false,\n fieldPrefix,\n fields,\n forceLocalized,\n indexes,\n localesColumns,\n localesIndexes,\n newTableName,\n parentTableName,\n relationships,\n relationsToBuild,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n versions,\n withinLocalizedArrayOrBlock,\n}: Args): Result => {\n const throwValidationError = true\n let hasLocalizedField = false\n let hasLocalizedRelationshipField = false\n let hasManyTextField: 'index' | boolean = false\n let hasLocalizedManyTextField = false\n let hasManyNumberField: 'index' | boolean = false\n let hasLocalizedManyNumberField = false\n\n let parentIDColType: IDType = 'integer'\n if (columns.id instanceof PgUUIDBuilder) {\n parentIDColType = 'uuid'\n }\n if (columns.id instanceof PgNumericBuilder) {\n parentIDColType = 'numeric'\n }\n if (columns.id instanceof PgVarcharBuilder) {\n parentIDColType = 'varchar'\n }\n\n fields.forEach((field) => {\n if ('name' in field && field.name === 'id') {\n return\n }\n let columnName: string\n let fieldName: string\n\n let targetTable = columns\n let targetIndexes = indexes\n\n if (fieldAffectsData(field)) {\n columnName = `${columnPrefix || ''}${field.name[0] === '_' ? '_' : ''}${toSnakeCase(\n field.name,\n )}`\n fieldName = `${fieldPrefix?.replace('.', '_') || ''}${field.name}`\n\n // If field is localized,\n // add the column to the locale table instead of main table\n if (\n adapter.payload.config.localization &&\n (field.localized || forceLocalized) &&\n field.type !== 'array' &&\n field.type !== 'blocks' &&\n (('hasMany' in field && field.hasMany !== true) || !('hasMany' in field))\n ) {\n hasLocalizedField = true\n targetTable = localesColumns\n targetIndexes = localesIndexes\n }\n\n if (\n (field.unique || field.index) &&\n !['array', 'blocks', 'group', 'point', 'relationship', 'upload'].includes(field.type) &&\n !('hasMany' in field && field.hasMany === true)\n ) {\n const unique = disableUnique !== true && field.unique\n if (unique) {\n const constraintValue = `${fieldPrefix || ''}${field.name}`\n if (!adapter.fieldConstraints?.[rootTableName]) {\n adapter.fieldConstraints[rootTableName] = {}\n }\n adapter.fieldConstraints[rootTableName][`${columnName}_idx`] = constraintValue\n }\n targetIndexes[`${newTableName}_${field.name}Idx`] = createIndex({\n name: fieldName,\n columnName,\n tableName: newTableName,\n unique,\n })\n }\n }\n\n switch (field.type) {\n case 'text': {\n if (field.hasMany) {\n const isLocalized =\n Boolean(field.localized && adapter.payload.config.localization) ||\n withinLocalizedArrayOrBlock\n\n if (isLocalized) {\n hasLocalizedManyTextField = true\n }\n\n if (field.index) {\n hasManyTextField = 'index'\n } else if (!hasManyTextField) {\n hasManyTextField = true\n }\n\n if (field.unique) {\n throw new InvalidConfiguration(\n 'Unique is not supported in Postgres for hasMany text fields.',\n )\n }\n } else {\n targetTable[fieldName] = withDefault(varchar(columnName), field)\n }\n break\n }\n case 'email':\n case 'code':\n case 'textarea': {\n targetTable[fieldName] = withDefault(varchar(columnName), field)\n break\n }\n\n case 'number': {\n if (field.hasMany) {\n const isLocalized =\n Boolean(field.localized && adapter.payload.config.localization) ||\n withinLocalizedArrayOrBlock\n\n if (isLocalized) {\n hasLocalizedManyNumberField = true\n }\n\n if (field.index) {\n hasManyNumberField = 'index'\n } else if (!hasManyNumberField) {\n hasManyNumberField = true\n }\n\n if (field.unique) {\n throw new InvalidConfiguration(\n 'Unique is not supported in Postgres for hasMany number fields.',\n )\n }\n } else {\n targetTable[fieldName] = withDefault(numeric(columnName), field)\n }\n break\n }\n\n case 'richText':\n case 'json': {\n targetTable[fieldName] = withDefault(jsonb(columnName), field)\n break\n }\n\n case 'date': {\n targetTable[fieldName] = withDefault(\n timestamp(columnName, {\n mode: 'string',\n precision: 3,\n withTimezone: true,\n }),\n field,\n )\n break\n }\n\n case 'point': {\n break\n }\n\n case 'radio':\n case 'select': {\n const enumName = createTableName({\n adapter,\n config: field,\n parentTableName: newTableName,\n prefix: `enum_${newTableName}_`,\n target: 'enumName',\n throwValidationError,\n })\n\n adapter.enums[enumName] = adapter.pgSchema.enum(\n enumName,\n field.options.map((option) => {\n if (optionIsObject(option)) {\n return option.value\n }\n\n return option\n }) as [string, ...string[]],\n )\n\n if (field.type === 'select' && field.hasMany) {\n const selectTableName = createTableName({\n adapter,\n config: field,\n parentTableName: newTableName,\n prefix: `${newTableName}_`,\n throwValidationError,\n versionsCustomName: versions,\n })\n const baseColumns: Record<string, PgColumnBuilder> = {\n order: integer('order').notNull(),\n parent: parentIDColumnMap[parentIDColType]('parent_id').notNull(),\n value: adapter.enums[enumName]('value'),\n }\n\n const baseExtraConfig: BaseExtraConfig = {\n orderIdx: (cols) => index(`${selectTableName}_order_idx`).on(cols.order),\n parentFk: (cols) =>\n foreignKey({\n name: `${selectTableName}_parent_fk`,\n columns: [cols.parent],\n foreignColumns: [adapter.tables[parentTableName].id],\n }).onDelete('cascade'),\n parentIdx: (cols) => index(`${selectTableName}_parent_idx`).on(cols.parent),\n }\n\n const isLocalized =\n Boolean(field.localized && adapter.payload.config.localization) ||\n withinLocalizedArrayOrBlock\n\n if (isLocalized) {\n baseColumns.locale = adapter.enums.enum__locales('locale').notNull()\n baseExtraConfig.localeIdx = (cols) =>\n index(`${selectTableName}_locale_idx`).on(cols.locale)\n }\n\n if (field.index) {\n baseExtraConfig.value = (cols) => index(`${selectTableName}_value_idx`).on(cols.value)\n }\n\n buildTable({\n adapter,\n baseColumns,\n baseExtraConfig,\n disableNotNull,\n disableUnique,\n fields: [],\n rootTableName,\n tableName: selectTableName,\n versions,\n })\n\n relationsToBuild.set(fieldName, {\n type: 'many',\n // selects have their own localized table, independent of the base table.\n localized: false,\n target: selectTableName,\n })\n\n adapter.relations[`relations_${selectTableName}`] = relations(\n adapter.tables[selectTableName],\n ({ one }) => ({\n parent: one(adapter.tables[parentTableName], {\n fields: [adapter.tables[selectTableName].parent],\n references: [adapter.tables[parentTableName].id],\n relationName: fieldName,\n }),\n }),\n )\n } else {\n targetTable[fieldName] = withDefault(adapter.enums[enumName](fieldName), field)\n }\n break\n }\n\n case 'checkbox': {\n targetTable[fieldName] = withDefault(boolean(columnName), field)\n break\n }\n\n case 'array': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n\n const arrayTableName = createTableName({\n adapter,\n config: field,\n parentTableName: newTableName,\n prefix: `${newTableName}_`,\n throwValidationError,\n versionsCustomName: versions,\n })\n\n const baseColumns: Record<string, PgColumnBuilder> = {\n _order: integer('_order').notNull(),\n _parentID: parentIDColumnMap[parentIDColType]('_parent_id').notNull(),\n }\n\n const baseExtraConfig: BaseExtraConfig = {\n _orderIdx: (cols) => index(`${arrayTableName}_order_idx`).on(cols._order),\n _parentIDFk: (cols) =>\n foreignKey({\n name: `${arrayTableName}_parent_id_fk`,\n columns: [cols['_parentID']],\n foreignColumns: [adapter.tables[parentTableName].id],\n }).onDelete('cascade'),\n _parentIDIdx: (cols) => index(`${arrayTableName}_parent_id_idx`).on(cols._parentID),\n }\n\n const isLocalized =\n Boolean(field.localized && adapter.payload.config.localization) ||\n withinLocalizedArrayOrBlock\n\n if (isLocalized) {\n baseColumns._locale = adapter.enums.enum__locales('_locale').notNull()\n baseExtraConfig._localeIdx = (cols) =>\n index(`${arrayTableName}_locale_idx`).on(cols._locale)\n }\n\n const {\n hasLocalizedManyNumberField: subHasLocalizedManyNumberField,\n hasLocalizedManyTextField: subHasLocalizedManyTextField,\n hasLocalizedRelationshipField: subHasLocalizedRelationshipField,\n hasManyNumberField: subHasManyNumberField,\n hasManyTextField: subHasManyTextField,\n relationsToBuild: subRelationsToBuild,\n } = buildTable({\n adapter,\n baseColumns,\n baseExtraConfig,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fields: disableUnique ? idToUUID(field.fields) : field.fields,\n rootRelationships: relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n tableName: arrayTableName,\n versions,\n withinLocalizedArrayOrBlock: isLocalized,\n })\n\n if (subHasLocalizedManyNumberField) {\n hasLocalizedManyNumberField = subHasLocalizedManyNumberField\n }\n\n if (subHasLocalizedRelationshipField) {\n hasLocalizedRelationshipField = subHasLocalizedRelationshipField\n }\n\n if (subHasLocalizedManyTextField) {\n hasLocalizedManyTextField = subHasLocalizedManyTextField\n }\n\n if (subHasManyTextField) {\n if (!hasManyTextField || subHasManyTextField === 'index') {\n hasManyTextField = subHasManyTextField\n }\n }\n if (subHasManyNumberField) {\n if (!hasManyNumberField || subHasManyNumberField === 'index') {\n hasManyNumberField = subHasManyNumberField\n }\n }\n\n relationsToBuild.set(fieldName, {\n type: 'many',\n // arrays have their own localized table, independent of the base table.\n localized: false,\n target: arrayTableName,\n })\n\n adapter.relations[`relations_${arrayTableName}`] = relations(\n adapter.tables[arrayTableName],\n ({ many, one }) => {\n const result: Record<string, Relation<string>> = {\n _parentID: one(adapter.tables[parentTableName], {\n fields: [adapter.tables[arrayTableName]._parentID],\n references: [adapter.tables[parentTableName].id],\n relationName: fieldName,\n }),\n }\n\n if (hasLocalesTable(field.fields)) {\n result._locales = many(adapter.tables[`${arrayTableName}${adapter.localesSuffix}`], {\n relationName: '_locales',\n })\n }\n\n subRelationsToBuild.forEach(({ type, localized, target }, key) => {\n if (type === 'one') {\n const arrayWithLocalized = localized\n ? `${arrayTableName}${adapter.localesSuffix}`\n : arrayTableName\n result[key] = one(adapter.tables[target], {\n fields: [adapter.tables[arrayWithLocalized][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 return result\n },\n )\n\n break\n }\n\n case 'blocks': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n\n field.blocks.forEach((block) => {\n const blockTableName = createTableName({\n adapter,\n config: block,\n parentTableName: rootTableName,\n prefix: `${rootTableName}_blocks_`,\n throwValidationError,\n versionsCustomName: versions,\n })\n if (!adapter.tables[blockTableName]) {\n const baseColumns: Record<string, PgColumnBuilder> = {\n _order: integer('_order').notNull(),\n _parentID: parentIDColumnMap[rootTableIDColType]('_parent_id').notNull(),\n _path: text('_path').notNull(),\n }\n\n const baseExtraConfig: BaseExtraConfig = {\n _orderIdx: (cols) => index(`${blockTableName}_order_idx`).on(cols._order),\n _parentIdFk: (cols) =>\n foreignKey({\n name: `${blockTableName}_parent_id_fk`,\n columns: [cols._parentID],\n foreignColumns: [adapter.tables[rootTableName].id],\n }).onDelete('cascade'),\n _parentIDIdx: (cols) => index(`${blockTableName}_parent_id_idx`).on(cols._parentID),\n _pathIdx: (cols) => index(`${blockTableName}_path_idx`).on(cols._path),\n }\n\n const isLocalized =\n Boolean(field.localized && adapter.payload.config.localization) ||\n withinLocalizedArrayOrBlock\n\n if (isLocalized) {\n baseColumns._locale = adapter.enums.enum__locales('_locale').notNull()\n baseExtraConfig._localeIdx = (cols) =>\n index(`${blockTableName}_locale_idx`).on(cols._locale)\n }\n\n const {\n hasLocalizedManyNumberField: subHasLocalizedManyNumberField,\n hasLocalizedManyTextField: subHasLocalizedManyTextField,\n hasLocalizedRelationshipField: subHasLocalizedRelationshipField,\n hasManyNumberField: subHasManyNumberField,\n hasManyTextField: subHasManyTextField,\n relationsToBuild: subRelationsToBuild,\n } = buildTable({\n adapter,\n baseColumns,\n baseExtraConfig,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fields: disableUnique ? idToUUID(block.fields) : block.fields,\n rootRelationships: relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n tableName: blockTableName,\n versions,\n withinLocalizedArrayOrBlock: isLocalized,\n })\n\n if (subHasLocalizedManyNumberField) {\n hasLocalizedManyNumberField = subHasLocalizedManyNumberField\n }\n\n if (subHasLocalizedRelationshipField) {\n hasLocalizedRelationshipField = subHasLocalizedRelationshipField\n }\n\n if (subHasLocalizedManyTextField) {\n hasLocalizedManyTextField = subHasLocalizedManyTextField\n }\n\n if (subHasManyTextField) {\n if (!hasManyTextField || subHasManyTextField === 'index') {\n hasManyTextField = subHasManyTextField\n }\n }\n\n if (subHasManyNumberField) {\n if (!hasManyNumberField || subHasManyNumberField === 'index') {\n hasManyNumberField = subHasManyNumberField\n }\n }\n\n adapter.relations[`relations_${blockTableName}`] = relations(\n adapter.tables[blockTableName],\n ({ many, one }) => {\n const result: Record<string, Relation<string>> = {\n _parentID: one(adapter.tables[rootTableName], {\n fields: [adapter.tables[blockTableName]._parentID],\n references: [adapter.tables[rootTableName].id],\n relationName: `_blocks_${block.slug}`,\n }),\n }\n\n if (hasLocalesTable(block.fields)) {\n result._locales = many(\n adapter.tables[`${blockTableName}${adapter.localesSuffix}`],\n { relationName: '_locales' },\n )\n }\n\n subRelationsToBuild.forEach(({ type, localized, target }, key) => {\n if (type === 'one') {\n const blockWithLocalized = localized\n ? `${blockTableName}${adapter.localesSuffix}`\n : blockTableName\n result[key] = one(adapter.tables[target], {\n fields: [adapter.tables[blockWithLocalized][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 return result\n },\n )\n } else if (process.env.NODE_ENV !== 'production' && !versions) {\n validateExistingBlockIsIdentical({\n block,\n localized: field.localized,\n rootTableName,\n table: adapter.tables[blockTableName],\n tableLocales: adapter.tables[`${blockTableName}${adapter.localesSuffix}`],\n })\n }\n // blocks relationships are defined from the collection or globals table down to the block, bypassing any subBlocks\n rootRelationsToBuild.set(`_blocks_${block.slug}`, {\n type: 'many',\n // blocks are not localized on the parent table\n localized: false,\n target: blockTableName,\n })\n })\n\n break\n }\n\n case 'tab':\n case 'group': {\n if (!('name' in field)) {\n const {\n hasLocalizedField: groupHasLocalizedField,\n hasLocalizedManyNumberField: groupHasLocalizedManyNumberField,\n hasLocalizedManyTextField: groupHasLocalizedManyTextField,\n hasLocalizedRelationshipField: groupHasLocalizedRelationshipField,\n hasManyNumberField: groupHasManyNumberField,\n hasManyTextField: groupHasManyTextField,\n } = traverseFields({\n adapter,\n columnPrefix,\n columns,\n disableNotNull,\n disableUnique,\n fieldPrefix,\n fields: field.fields,\n forceLocalized,\n indexes,\n localesColumns,\n localesIndexes,\n newTableName,\n parentTableName,\n relationships,\n relationsToBuild,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n versions,\n withinLocalizedArrayOrBlock,\n })\n\n if (groupHasLocalizedField) {\n hasLocalizedField = true\n }\n if (groupHasLocalizedRelationshipField) {\n hasLocalizedRelationshipField = true\n }\n if (groupHasManyTextField) {\n hasManyTextField = true\n }\n if (groupHasLocalizedManyTextField) {\n hasLocalizedManyTextField = true\n }\n if (groupHasManyNumberField) {\n hasManyNumberField = true\n }\n if (groupHasLocalizedManyNumberField) {\n hasLocalizedManyNumberField = true\n }\n break\n }\n\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n\n const {\n hasLocalizedField: groupHasLocalizedField,\n hasLocalizedManyNumberField: groupHasLocalizedManyNumberField,\n hasLocalizedManyTextField: groupHasLocalizedManyTextField,\n hasLocalizedRelationshipField: groupHasLocalizedRelationshipField,\n hasManyNumberField: groupHasManyNumberField,\n hasManyTextField: groupHasManyTextField,\n } = traverseFields({\n adapter,\n columnPrefix: `${columnName}_`,\n columns,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fieldPrefix: `${fieldName}.`,\n fields: field.fields,\n forceLocalized: field.localized,\n indexes,\n localesColumns,\n localesIndexes,\n newTableName: `${parentTableName}_${columnName}`,\n parentTableName,\n relationships,\n relationsToBuild,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n versions,\n withinLocalizedArrayOrBlock,\n })\n\n if (groupHasLocalizedField) {\n hasLocalizedField = true\n }\n if (groupHasLocalizedRelationshipField) {\n hasLocalizedRelationshipField = true\n }\n if (groupHasManyTextField) {\n hasManyTextField = true\n }\n if (groupHasLocalizedManyTextField) {\n hasLocalizedManyTextField = true\n }\n if (groupHasManyNumberField) {\n hasManyNumberField = true\n }\n if (groupHasLocalizedManyNumberField) {\n hasLocalizedManyNumberField = true\n }\n break\n }\n\n case 'tabs': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n\n const {\n hasLocalizedField: tabHasLocalizedField,\n hasLocalizedManyNumberField: tabHasLocalizedManyNumberField,\n hasLocalizedManyTextField: tabHasLocalizedManyTextField,\n hasLocalizedRelationshipField: tabHasLocalizedRelationshipField,\n hasManyNumberField: tabHasManyNumberField,\n hasManyTextField: tabHasManyTextField,\n } = traverseFields({\n adapter,\n columnPrefix,\n columns,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fieldPrefix,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n forceLocalized,\n indexes,\n localesColumns,\n localesIndexes,\n newTableName,\n parentTableName,\n relationships,\n relationsToBuild,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n versions,\n withinLocalizedArrayOrBlock,\n })\n\n if (tabHasLocalizedField) {\n hasLocalizedField = true\n }\n if (tabHasLocalizedRelationshipField) {\n hasLocalizedRelationshipField = true\n }\n if (tabHasManyTextField) {\n hasManyTextField = true\n }\n if (tabHasLocalizedManyTextField) {\n hasLocalizedManyTextField = true\n }\n if (tabHasManyNumberField) {\n hasManyNumberField = true\n }\n if (tabHasLocalizedManyNumberField) {\n hasLocalizedManyNumberField = true\n }\n break\n }\n\n case 'row':\n case 'collapsible': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n const {\n hasLocalizedField: rowHasLocalizedField,\n hasLocalizedManyNumberField: rowHasLocalizedManyNumberField,\n hasLocalizedManyTextField: rowHasLocalizedManyTextField,\n hasLocalizedRelationshipField: rowHasLocalizedRelationshipField,\n hasManyNumberField: rowHasManyNumberField,\n hasManyTextField: rowHasManyTextField,\n } = traverseFields({\n adapter,\n columnPrefix,\n columns,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fieldPrefix,\n fields: field.fields,\n forceLocalized,\n indexes,\n localesColumns,\n localesIndexes,\n newTableName,\n parentTableName,\n relationships,\n relationsToBuild,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n versions,\n withinLocalizedArrayOrBlock,\n })\n\n if (rowHasLocalizedField) {\n hasLocalizedField = true\n }\n if (rowHasLocalizedRelationshipField) {\n hasLocalizedRelationshipField = true\n }\n if (rowHasManyTextField) {\n hasManyTextField = true\n }\n if (rowHasLocalizedManyTextField) {\n hasLocalizedManyTextField = true\n }\n if (rowHasManyNumberField) {\n hasManyNumberField = true\n }\n if (rowHasLocalizedManyNumberField) {\n hasLocalizedManyNumberField = true\n }\n break\n }\n\n case 'relationship':\n case 'upload':\n if (Array.isArray(field.relationTo)) {\n field.relationTo.forEach((relation) => relationships.add(relation))\n } else if (field.hasMany) {\n relationships.add(field.relationTo)\n } else {\n // simple relationships get a column on the targetTable with a foreign key to the relationTo table\n const relationshipConfig = adapter.payload.collections[field.relationTo].config\n\n const tableName = adapter.tableNameMap.get(toSnakeCase(field.relationTo))\n\n // get the id type of the related collection\n let colType = adapter.idType === 'uuid' ? 'uuid' : 'integer'\n const relatedCollectionCustomID = relationshipConfig.fields.find(\n (field) => fieldAffectsData(field) && field.name === 'id',\n )\n if (relatedCollectionCustomID?.type === 'number') {\n colType = 'numeric'\n }\n if (relatedCollectionCustomID?.type === 'text') {\n colType = 'varchar'\n }\n\n // make the foreign key column for relationship using the correct id column type\n targetTable[fieldName] = parentIDColumnMap[colType](`${columnName}_id`).references(\n () => adapter.tables[tableName].id,\n { onDelete: 'set null' },\n )\n\n // add relationship to table\n relationsToBuild.set(fieldName, {\n type: 'one',\n localized: adapter.payload.config.localization && field.localized,\n target: tableName,\n })\n\n // add notNull when not required\n if (!disableNotNull && field.required && !field.admin?.condition) {\n targetTable[fieldName].notNull()\n }\n break\n }\n\n if (\n Boolean(field.localized && adapter.payload.config.localization) ||\n withinLocalizedArrayOrBlock\n ) {\n hasLocalizedRelationshipField = true\n }\n\n break\n\n default:\n break\n }\n\n const condition = field.admin && field.admin.condition\n\n if (\n !disableNotNull &&\n targetTable[fieldName] &&\n 'required' in field &&\n field.required &&\n !condition\n ) {\n targetTable[fieldName].notNull()\n }\n })\n\n return {\n hasLocalizedField,\n hasLocalizedManyNumberField,\n hasLocalizedManyTextField,\n hasLocalizedRelationshipField,\n hasManyNumberField,\n hasManyTextField,\n }\n}\n"],"names":["relations","boolean","foreignKey","index","integer","jsonb","numeric","PgNumericBuilder","PgUUIDBuilder","PgVarcharBuilder","text","timestamp","varchar","InvalidConfiguration","fieldAffectsData","optionIsObject","toSnakeCase","createTableName","hasLocalesTable","validateExistingBlockIsIdentical","buildTable","createIndex","idToUUID","parentIDColumnMap","withDefault","traverseFields","adapter","columnPrefix","columns","disableNotNull","disableUnique","fieldPrefix","fields","forceLocalized","indexes","localesColumns","localesIndexes","newTableName","parentTableName","relationships","relationsToBuild","rootRelationsToBuild","rootTableIDColType","rootTableName","versions","withinLocalizedArrayOrBlock","throwValidationError","hasLocalizedField","hasLocalizedRelationshipField","hasManyTextField","hasLocalizedManyTextField","hasManyNumberField","hasLocalizedManyNumberField","parentIDColType","id","forEach","field","name","columnName","fieldName","targetTable","targetIndexes","replace","payload","config","localization","localized","type","hasMany","unique","includes","constraintValue","fieldConstraints","tableName","isLocalized","Boolean","mode","precision","withTimezone","enumName","prefix","target","enums","pgSchema","enum","options","map","option","value","selectTableName","versionsCustomName","baseColumns","order","notNull","parent","baseExtraConfig","orderIdx","cols","on","parentFk","foreignColumns","tables","onDelete","parentIdx","locale","enum__locales","localeIdx","set","one","references","relationName","disableNotNullFromHere","admin","condition","arrayTableName","_order","_parentID","_orderIdx","_parentIDFk","_parentIDIdx","_locale","_localeIdx","subHasLocalizedManyNumberField","subHasLocalizedManyTextField","subHasLocalizedRelationshipField","subHasManyNumberField","subHasManyTextField","subRelationsToBuild","rootRelationships","many","result","_locales","localesSuffix","key","arrayWithLocalized","blocks","block","blockTableName","_path","_parentIdFk","_pathIdx","slug","blockWithLocalized","process","env","NODE_ENV","table","tableLocales","groupHasLocalizedField","groupHasLocalizedManyNumberField","groupHasLocalizedManyTextField","groupHasLocalizedRelationshipField","groupHasManyNumberField","groupHasManyTextField","tabHasLocalizedField","tabHasLocalizedManyNumberField","tabHasLocalizedManyTextField","tabHasLocalizedRelationshipField","tabHasManyNumberField","tabHasManyTextField","tabs","tab","rowHasLocalizedField","rowHasLocalizedManyNumberField","rowHasLocalizedManyTextField","rowHasLocalizedRelationshipField","rowHasManyNumberField","rowHasManyTextField","Array","isArray","relationTo","relation","add","relationshipConfig","collections","tableNameMap","get","colType","idType","relatedCollectionCustomID","find","required"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { PgColumnBuilder } from 'drizzle-orm/pg-core';
2
+ import type { FieldAffectingData } from 'payload';
3
+ export declare const withDefault: (column: PgColumnBuilder, field: FieldAffectingData) => PgColumnBuilder;
4
+ //# sourceMappingURL=withDefault.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withDefault.d.ts","sourceRoot":"","sources":["../../../src/postgres/schema/withDefault.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAEjD,eAAO,MAAM,WAAW,WACd,eAAe,SAChB,kBAAkB,KACxB,eAWF,CAAA"}
@@ -0,0 +1,12 @@
1
+ export const withDefault = (column, field)=>{
2
+ if (typeof field.defaultValue === 'undefined' || typeof field.defaultValue === 'function') {
3
+ return column;
4
+ }
5
+ if (typeof field.defaultValue === 'string' && field.defaultValue.includes("'")) {
6
+ const escapedString = field.defaultValue.replaceAll("'", "''");
7
+ return column.default(escapedString);
8
+ }
9
+ return column.default(field.defaultValue);
10
+ };
11
+
12
+ //# sourceMappingURL=withDefault.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/postgres/schema/withDefault.ts"],"sourcesContent":["import type { PgColumnBuilder } from 'drizzle-orm/pg-core'\nimport type { FieldAffectingData } from 'payload'\n\nexport const withDefault = (\n column: PgColumnBuilder,\n field: FieldAffectingData,\n): PgColumnBuilder => {\n if (typeof field.defaultValue === 'undefined' || typeof field.defaultValue === 'function') {\n return column\n }\n\n if (typeof field.defaultValue === 'string' && field.defaultValue.includes(\"'\")) {\n const escapedString = field.defaultValue.replaceAll(\"'\", \"''\")\n return column.default(escapedString)\n }\n\n return column.default(field.defaultValue)\n}\n"],"names":["withDefault","column","field","defaultValue","includes","escapedString","replaceAll","default"],"mappings":"AAGA,OAAO,MAAMA,cAAc,CACzBC,QACAC;IAEA,IAAI,OAAOA,MAAMC,YAAY,KAAK,eAAe,OAAOD,MAAMC,YAAY,KAAK,YAAY;QACzF,OAAOF;IACT;IAEA,IAAI,OAAOC,MAAMC,YAAY,KAAK,YAAYD,MAAMC,YAAY,CAACC,QAAQ,CAAC,MAAM;QAC9E,MAAMC,gBAAgBH,MAAMC,YAAY,CAACG,UAAU,CAAC,KAAK;QACzD,OAAOL,OAAOM,OAAO,CAACF;IACxB;IAEA,OAAOJ,OAAOM,OAAO,CAACL,MAAMC,YAAY;AAC1C,EAAC"}
@@ -0,0 +1,112 @@
1
+ import type { DrizzleSnapshotJSON } from 'drizzle-kit/api';
2
+ import type { ColumnBaseConfig, ColumnDataType, DrizzleConfig, Relation, Relations, SQL } from 'drizzle-orm';
3
+ import type { NodePgDatabase } from 'drizzle-orm/node-postgres';
4
+ import type { ForeignKeyBuilder, IndexBuilder, PgColumn, PgEnum, pgEnum, PgInsertOnConflictDoUpdateConfig, PgSchema, PgTableWithColumns, UniqueConstraintBuilder } from 'drizzle-orm/pg-core';
5
+ import type { PgTableFn } from 'drizzle-orm/pg-core/table';
6
+ import type { Payload, PayloadRequest } from 'payload';
7
+ import type { QueryResult } from 'pg';
8
+ import type { Operators } from '../index.js';
9
+ import type { BuildQueryJoinAliases, DrizzleAdapter, TransactionPg } from '../types.js';
10
+ export type BaseExtraConfig = Record<string, (cols: GenericColumns) => ForeignKeyBuilder | IndexBuilder | UniqueConstraintBuilder>;
11
+ export type RelationMap = Map<string, {
12
+ localized: boolean;
13
+ target: string;
14
+ type: 'many' | 'one';
15
+ }>;
16
+ export type GenericColumn = PgColumn<ColumnBaseConfig<ColumnDataType, string>, Record<string, unknown>>;
17
+ export type GenericColumns = {
18
+ [x: string]: GenericColumn;
19
+ };
20
+ export type GenericTable = PgTableWithColumns<{
21
+ columns: GenericColumns;
22
+ dialect: string;
23
+ name: string;
24
+ schema: string;
25
+ }>;
26
+ export type GenericEnum = PgEnum<[string, ...string[]]>;
27
+ export type GenericRelation = Relations<string, Record<string, Relation<string>>>;
28
+ export type PostgresDB = NodePgDatabase<Record<string, unknown>>;
29
+ export type CountDistinct = (args: {
30
+ db: PostgresDB | TransactionPg;
31
+ joins: BuildQueryJoinAliases;
32
+ tableName: string;
33
+ where: SQL;
34
+ }) => Promise<number>;
35
+ export type DeleteWhere = (args: {
36
+ db: PostgresDB | TransactionPg;
37
+ tableName: string;
38
+ where: SQL;
39
+ }) => Promise<void>;
40
+ export type DropDatabase = (args: {
41
+ adapter: BasePostgresAdapter;
42
+ }) => Promise<void>;
43
+ export type Execute<T> = (args: {
44
+ db?: PostgresDB | TransactionPg;
45
+ drizzle?: PostgresDB;
46
+ raw?: string;
47
+ sql?: SQL<unknown>;
48
+ }) => Promise<QueryResult<Record<string, T>>>;
49
+ export type Insert = (args: {
50
+ db: PostgresDB | TransactionPg;
51
+ onConflictDoUpdate?: PgInsertOnConflictDoUpdateConfig<any>;
52
+ tableName: string;
53
+ values: Record<string, unknown> | Record<string, unknown>[];
54
+ }) => Promise<Record<string, unknown>[]>;
55
+ type Schema = {
56
+ enum: typeof pgEnum;
57
+ table: PgTableFn;
58
+ } | PgSchema;
59
+ export type BasePostgresAdapter = {
60
+ countDistinct: CountDistinct;
61
+ defaultDrizzleSnapshot: DrizzleSnapshotJSON;
62
+ deleteWhere: DeleteWhere;
63
+ drizzle: PostgresDB;
64
+ dropDatabase: DropDatabase;
65
+ enums: Record<string, GenericEnum>;
66
+ execute: Execute<unknown>;
67
+ /**
68
+ * 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
69
+ * Used for returning properly formed errors from unique fields
70
+ */
71
+ fieldConstraints: Record<string, Record<string, string>>;
72
+ idType: 'serial' | 'uuid';
73
+ initializing: Promise<void>;
74
+ insert: Insert;
75
+ localesSuffix?: string;
76
+ logger: DrizzleConfig['logger'];
77
+ operators: Operators;
78
+ pgSchema?: Schema;
79
+ prodMigrations?: {
80
+ down: (args: MigrateDownArgs) => Promise<void>;
81
+ name: string;
82
+ up: (args: MigrateUpArgs) => Promise<void>;
83
+ }[];
84
+ push: boolean;
85
+ rejectInitializing: () => void;
86
+ relations: Record<string, GenericRelation>;
87
+ relationshipsSuffix?: string;
88
+ resolveInitializing: () => void;
89
+ schemaName?: string;
90
+ sessions: {
91
+ [id: string]: {
92
+ db: PostgresDB | TransactionPg;
93
+ reject: () => Promise<void>;
94
+ resolve: () => Promise<void>;
95
+ };
96
+ };
97
+ tableNameMap: Map<string, string>;
98
+ tables: Record<string, GenericTable>;
99
+ versionsSuffix?: string;
100
+ } & PostgresDrizzleAdapter;
101
+ export type PostgresDrizzleAdapter = Omit<DrizzleAdapter, 'countDistinct' | 'deleteWhere' | 'drizzle' | 'dropDatabase' | 'execute' | 'insert' | 'operators' | 'relations'>;
102
+ export type IDType = 'integer' | 'numeric' | 'uuid' | 'varchar';
103
+ export type MigrateUpArgs = {
104
+ payload: Payload;
105
+ req?: Partial<PayloadRequest>;
106
+ };
107
+ export type MigrateDownArgs = {
108
+ payload: Payload;
109
+ req?: Partial<PayloadRequest>;
110
+ };
111
+ export {};
112
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/postgres/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { };
2
+
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/postgres/types.ts"],"sourcesContent":["import type { DrizzleSnapshotJSON } from 'drizzle-kit/api'\nimport type {\n ColumnBaseConfig,\n ColumnDataType,\n DrizzleConfig,\n Relation,\n Relations,\n SQL,\n} from 'drizzle-orm'\nimport type { NodePgDatabase } from 'drizzle-orm/node-postgres'\nimport type {\n ForeignKeyBuilder,\n IndexBuilder,\n PgColumn,\n PgEnum,\n pgEnum,\n PgInsertOnConflictDoUpdateConfig,\n PgSchema,\n PgTableWithColumns,\n UniqueConstraintBuilder,\n} from 'drizzle-orm/pg-core'\nimport type { PgTableFn } from 'drizzle-orm/pg-core/table'\nimport type { Payload, PayloadRequest } from 'payload'\nimport type { QueryResult } from 'pg'\n\nimport type { Operators } from '../index.js'\nimport type { BuildQueryJoinAliases, DrizzleAdapter, TransactionPg } from '../types.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\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: string\n}>\n\nexport type GenericEnum = PgEnum<[string, ...string[]]>\n\nexport type GenericRelation = Relations<string, Record<string, Relation<string>>>\n\nexport type PostgresDB = NodePgDatabase<Record<string, unknown>>\n\nexport type CountDistinct = (args: {\n db: PostgresDB | TransactionPg\n joins: BuildQueryJoinAliases\n tableName: string\n where: SQL\n}) => Promise<number>\n\nexport type DeleteWhere = (args: {\n db: PostgresDB | TransactionPg\n tableName: string\n where: SQL\n}) => Promise<void>\n\nexport type DropDatabase = (args: { adapter: BasePostgresAdapter }) => Promise<void>\n\nexport type Execute<T> = (args: {\n db?: PostgresDB | TransactionPg\n drizzle?: PostgresDB\n raw?: string\n sql?: SQL<unknown>\n}) => Promise<QueryResult<Record<string, T>>>\n\nexport type Insert = (args: {\n db: PostgresDB | TransactionPg\n onConflictDoUpdate?: PgInsertOnConflictDoUpdateConfig<any>\n tableName: string\n values: Record<string, unknown> | Record<string, unknown>[]\n}) => Promise<Record<string, unknown>[]>\n\ntype Schema =\n | {\n enum: typeof pgEnum\n table: PgTableFn\n }\n | PgSchema\n\nexport type BasePostgresAdapter = {\n countDistinct: CountDistinct\n defaultDrizzleSnapshot: DrizzleSnapshotJSON\n deleteWhere: DeleteWhere\n drizzle: PostgresDB\n dropDatabase: DropDatabase\n enums: Record<string, GenericEnum>\n execute: Execute<unknown>\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: 'serial' | 'uuid'\n initializing: Promise<void>\n insert: Insert\n localesSuffix?: string\n logger: DrizzleConfig['logger']\n operators: Operators\n pgSchema?: Schema\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 relations: Record<string, GenericRelation>\n relationshipsSuffix?: string\n resolveInitializing: () => void\n schemaName?: string\n sessions: {\n [id: string]: {\n db: PostgresDB | TransactionPg\n reject: () => Promise<void>\n resolve: () => Promise<void>\n }\n }\n tableNameMap: Map<string, string>\n tables: Record<string, GenericTable>\n versionsSuffix?: string\n} & PostgresDrizzleAdapter\n\nexport type PostgresDrizzleAdapter = Omit<\n DrizzleAdapter,\n | 'countDistinct'\n | 'deleteWhere'\n | 'drizzle'\n | 'dropDatabase'\n | 'execute'\n | 'insert'\n | 'operators'\n | 'relations'\n>\n\nexport type IDType = 'integer' | 'numeric' | 'uuid' | 'varchar'\n\nexport type MigrateUpArgs = { payload: Payload; req?: Partial<PayloadRequest> }\nexport type MigrateDownArgs = { payload: Payload; req?: Partial<PayloadRequest> }\n"],"names":[],"mappings":"AAuJA,WAAiF"}
@@ -0,0 +1,16 @@
1
+ import type { SQL } from 'drizzle-orm';
2
+ import type { Field, Where } from 'payload';
3
+ import type { DrizzleAdapter, GenericColumn } from '../types.js';
4
+ import type { BuildQueryJoinAliases } from './buildQuery.js';
5
+ export declare function buildAndOrConditions({ adapter, fields, joins, locale, selectFields, tableName, where, }: {
6
+ adapter: DrizzleAdapter;
7
+ collectionSlug?: string;
8
+ fields: Field[];
9
+ globalSlug?: string;
10
+ joins: BuildQueryJoinAliases;
11
+ locale?: string;
12
+ selectFields: Record<string, GenericColumn>;
13
+ tableName: string;
14
+ where: Where[];
15
+ }): Promise<SQL[]>;
16
+ //# sourceMappingURL=buildAndOrConditions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildAndOrConditions.d.ts","sourceRoot":"","sources":["../../src/queries/buildAndOrConditions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAI5D,wBAAsB,oBAAoB,CAAC,EACzC,OAAO,EACP,MAAM,EACN,KAAK,EACL,MAAM,EACN,YAAY,EACZ,SAAS,EACT,KAAK,GACN,EAAE;IACD,OAAO,EAAE,cAAc,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,qBAAqB,CAAA;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC3C,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,KAAK,EAAE,CAAA;CACf,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAuBjB"}
@@ -0,0 +1,26 @@
1
+ import { parseParams } from './parseParams.js';
2
+ export async function buildAndOrConditions({ adapter, fields, joins, locale, selectFields, tableName, where }) {
3
+ const completedConditions = [];
4
+ // Loop over all AND / OR operations and add them to the AND / OR query param
5
+ // Operations should come through as an array
6
+ for (const condition of where){
7
+ // If the operation is properly formatted as an object
8
+ if (typeof condition === 'object') {
9
+ const result = await parseParams({
10
+ adapter,
11
+ fields,
12
+ joins,
13
+ locale,
14
+ selectFields,
15
+ tableName,
16
+ where: condition
17
+ });
18
+ if (result && Object.keys(result).length > 0) {
19
+ completedConditions.push(result);
20
+ }
21
+ }
22
+ }
23
+ return completedConditions;
24
+ }
25
+
26
+ //# sourceMappingURL=buildAndOrConditions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/queries/buildAndOrConditions.ts"],"sourcesContent":["import type { SQL } from 'drizzle-orm'\nimport type { Field, Where } from 'payload'\n\nimport type { DrizzleAdapter, GenericColumn } from '../types.js'\nimport type { BuildQueryJoinAliases } from './buildQuery.js'\n\nimport { parseParams } from './parseParams.js'\n\nexport async function buildAndOrConditions({\n adapter,\n fields,\n joins,\n locale,\n selectFields,\n tableName,\n where,\n}: {\n adapter: DrizzleAdapter\n collectionSlug?: string\n fields: Field[]\n globalSlug?: string\n joins: BuildQueryJoinAliases\n locale?: string\n selectFields: Record<string, GenericColumn>\n tableName: string\n where: Where[]\n}): Promise<SQL[]> {\n const completedConditions = []\n // Loop over all AND / OR operations and add them to the AND / OR query param\n // Operations should come through as an array\n\n for (const condition of where) {\n // If the operation is properly formatted as an object\n if (typeof condition === 'object') {\n const result = await parseParams({\n adapter,\n fields,\n joins,\n locale,\n selectFields,\n tableName,\n where: condition,\n })\n if (result && Object.keys(result).length > 0) {\n completedConditions.push(result)\n }\n }\n }\n return completedConditions\n}\n"],"names":["parseParams","buildAndOrConditions","adapter","fields","joins","locale","selectFields","tableName","where","completedConditions","condition","result","Object","keys","length","push"],"mappings":"AAMA,SAASA,WAAW,QAAQ,mBAAkB;AAE9C,OAAO,eAAeC,qBAAqB,EACzCC,OAAO,EACPC,MAAM,EACNC,KAAK,EACLC,MAAM,EACNC,YAAY,EACZC,SAAS,EACTC,KAAK,EAWN;IACC,MAAMC,sBAAsB,EAAE;IAC9B,6EAA6E;IAC7E,6CAA6C;IAE7C,KAAK,MAAMC,aAAaF,MAAO;QAC7B,sDAAsD;QACtD,IAAI,OAAOE,cAAc,UAAU;YACjC,MAAMC,SAAS,MAAMX,YAAY;gBAC/BE;gBACAC;gBACAC;gBACAC;gBACAC;gBACAC;gBACAC,OAAOE;YACT;YACA,IAAIC,UAAUC,OAAOC,IAAI,CAACF,QAAQG,MAAM,GAAG,GAAG;gBAC5CL,oBAAoBM,IAAI,CAACJ;YAC3B;QACF;IACF;IACA,OAAOF;AACT"}
@@ -0,0 +1,29 @@
1
+ import type { SQL } from 'drizzle-orm';
2
+ import type { PgTableWithColumns } from 'drizzle-orm/pg-core';
3
+ import type { Field, Where } from 'payload';
4
+ import { asc, desc } from 'drizzle-orm';
5
+ import type { DrizzleAdapter, GenericColumn, GenericTable } from '../types.js';
6
+ export type BuildQueryJoinAliases = {
7
+ condition: SQL;
8
+ table: GenericTable | PgTableWithColumns<any>;
9
+ }[];
10
+ type BuildQueryArgs = {
11
+ adapter: DrizzleAdapter;
12
+ fields: Field[];
13
+ locale?: string;
14
+ sort?: string;
15
+ tableName: string;
16
+ where: Where;
17
+ };
18
+ type Result = {
19
+ joins: BuildQueryJoinAliases;
20
+ orderBy: {
21
+ column: GenericColumn;
22
+ order: typeof asc | typeof desc;
23
+ };
24
+ selectFields: Record<string, GenericColumn>;
25
+ where: SQL;
26
+ };
27
+ declare const buildQuery: ({ adapter, fields, locale, sort, tableName, where: incomingWhere, }: BuildQueryArgs) => Promise<Result>;
28
+ export default buildQuery;
29
+ //# sourceMappingURL=buildQuery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildQuery.d.ts","sourceRoot":"","sources":["../../src/queries/buildQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE3C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAEvC,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAK9E,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,GAAG,CAAA;IACd,KAAK,EAAE,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAA;CAC9C,EAAE,CAAA;AAEH,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,cAAc,CAAA;IACvB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,KAAK,EAAE,qBAAqB,CAAA;IAC5B,OAAO,EAAE;QACP,MAAM,EAAE,aAAa,CAAA;QACrB,KAAK,EAAE,OAAO,GAAG,GAAG,OAAO,IAAI,CAAA;KAChC,CAAA;IACD,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC3C,KAAK,EAAE,GAAG,CAAA;CACX,CAAA;AACD,QAAA,MAAM,UAAU,wEAOb,cAAc,KAAG,OAAO,CAAC,MAAM,CA2EjC,CAAA;AAED,eAAe,UAAU,CAAA"}
@@ -0,0 +1,72 @@
1
+ import { asc, desc } from 'drizzle-orm';
2
+ import { getTableColumnFromPath } from './getTableColumnFromPath.js';
3
+ import { parseParams } from './parseParams.js';
4
+ const buildQuery = async function buildQuery({ adapter, fields, locale, sort, tableName, where: incomingWhere }) {
5
+ const selectFields = {
6
+ id: adapter.tables[tableName].id
7
+ };
8
+ const joins = [];
9
+ const orderBy = {
10
+ column: null,
11
+ order: null
12
+ };
13
+ if (sort) {
14
+ let sortPath;
15
+ if (sort[0] === '-') {
16
+ sortPath = sort.substring(1);
17
+ orderBy.order = desc;
18
+ } else {
19
+ sortPath = sort;
20
+ orderBy.order = asc;
21
+ }
22
+ try {
23
+ const { columnName: sortTableColumnName, table: sortTable } = getTableColumnFromPath({
24
+ adapter,
25
+ collectionPath: sortPath,
26
+ fields,
27
+ joins,
28
+ locale,
29
+ pathSegments: sortPath.replace(/__/g, '.').split('.'),
30
+ selectFields,
31
+ tableName,
32
+ value: sortPath
33
+ });
34
+ orderBy.column = sortTable?.[sortTableColumnName];
35
+ } catch (err) {
36
+ // continue
37
+ }
38
+ }
39
+ if (!orderBy?.column) {
40
+ orderBy.order = desc;
41
+ const createdAt = adapter.tables[tableName]?.createdAt;
42
+ if (createdAt) {
43
+ orderBy.column = createdAt;
44
+ } else {
45
+ orderBy.column = adapter.tables[tableName].id;
46
+ }
47
+ }
48
+ if (orderBy.column) {
49
+ selectFields.sort = orderBy.column;
50
+ }
51
+ let where;
52
+ if (incomingWhere && Object.keys(incomingWhere).length > 0) {
53
+ where = await parseParams({
54
+ adapter,
55
+ fields,
56
+ joins,
57
+ locale,
58
+ selectFields,
59
+ tableName,
60
+ where: incomingWhere
61
+ });
62
+ }
63
+ return {
64
+ joins,
65
+ orderBy,
66
+ selectFields,
67
+ where
68
+ };
69
+ };
70
+ export default buildQuery;
71
+
72
+ //# sourceMappingURL=buildQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/queries/buildQuery.ts"],"sourcesContent":["import type { SQL } from 'drizzle-orm'\nimport type { PgTableWithColumns } from 'drizzle-orm/pg-core'\nimport type { Field, Where } from 'payload'\n\nimport { asc, desc } from 'drizzle-orm'\n\nimport type { DrizzleAdapter, GenericColumn, GenericTable } from '../types.js'\n\nimport { getTableColumnFromPath } from './getTableColumnFromPath.js'\nimport { parseParams } from './parseParams.js'\n\nexport type BuildQueryJoinAliases = {\n condition: SQL\n table: GenericTable | PgTableWithColumns<any>\n}[]\n\ntype BuildQueryArgs = {\n adapter: DrizzleAdapter\n fields: Field[]\n locale?: string\n sort?: string\n tableName: string\n where: Where\n}\n\ntype Result = {\n joins: BuildQueryJoinAliases\n orderBy: {\n column: GenericColumn\n order: typeof asc | typeof desc\n }\n selectFields: Record<string, GenericColumn>\n where: SQL\n}\nconst buildQuery = async function buildQuery({\n adapter,\n fields,\n locale,\n sort,\n tableName,\n where: incomingWhere,\n}: BuildQueryArgs): Promise<Result> {\n const selectFields: Record<string, GenericColumn> = {\n id: adapter.tables[tableName].id,\n }\n const joins: BuildQueryJoinAliases = []\n\n const orderBy: Result['orderBy'] = {\n column: null,\n order: null,\n }\n\n if (sort) {\n let sortPath\n\n if (sort[0] === '-') {\n sortPath = sort.substring(1)\n orderBy.order = desc\n } else {\n sortPath = sort\n orderBy.order = asc\n }\n\n try {\n const { columnName: sortTableColumnName, table: sortTable } = getTableColumnFromPath({\n adapter,\n collectionPath: sortPath,\n fields,\n joins,\n locale,\n pathSegments: sortPath.replace(/__/g, '.').split('.'),\n selectFields,\n tableName,\n value: sortPath,\n })\n orderBy.column = sortTable?.[sortTableColumnName]\n } catch (err) {\n // continue\n }\n }\n\n if (!orderBy?.column) {\n orderBy.order = desc\n const createdAt = adapter.tables[tableName]?.createdAt\n\n if (createdAt) {\n orderBy.column = createdAt\n } else {\n orderBy.column = adapter.tables[tableName].id\n }\n }\n\n if (orderBy.column) {\n selectFields.sort = orderBy.column\n }\n\n let where: SQL\n\n if (incomingWhere && Object.keys(incomingWhere).length > 0) {\n where = await parseParams({\n adapter,\n fields,\n joins,\n locale,\n selectFields,\n tableName,\n where: incomingWhere,\n })\n }\n\n return {\n joins,\n orderBy,\n selectFields,\n where,\n }\n}\n\nexport default buildQuery\n"],"names":["asc","desc","getTableColumnFromPath","parseParams","buildQuery","adapter","fields","locale","sort","tableName","where","incomingWhere","selectFields","id","tables","joins","orderBy","column","order","sortPath","substring","columnName","sortTableColumnName","table","sortTable","collectionPath","pathSegments","replace","split","value","err","createdAt","Object","keys","length"],"mappings":"AAIA,SAASA,GAAG,EAAEC,IAAI,QAAQ,cAAa;AAIvC,SAASC,sBAAsB,QAAQ,8BAA6B;AACpE,SAASC,WAAW,QAAQ,mBAAkB;AAyB9C,MAAMC,aAAa,eAAeA,WAAW,EAC3CC,OAAO,EACPC,MAAM,EACNC,MAAM,EACNC,IAAI,EACJC,SAAS,EACTC,OAAOC,aAAa,EACL;IACf,MAAMC,eAA8C;QAClDC,IAAIR,QAAQS,MAAM,CAACL,UAAU,CAACI,EAAE;IAClC;IACA,MAAME,QAA+B,EAAE;IAEvC,MAAMC,UAA6B;QACjCC,QAAQ;QACRC,OAAO;IACT;IAEA,IAAIV,MAAM;QACR,IAAIW;QAEJ,IAAIX,IAAI,CAAC,EAAE,KAAK,KAAK;YACnBW,WAAWX,KAAKY,SAAS,CAAC;YAC1BJ,QAAQE,KAAK,GAAGjB;QAClB,OAAO;YACLkB,WAAWX;YACXQ,QAAQE,KAAK,GAAGlB;QAClB;QAEA,IAAI;YACF,MAAM,EAAEqB,YAAYC,mBAAmB,EAAEC,OAAOC,SAAS,EAAE,GAAGtB,uBAAuB;gBACnFG;gBACAoB,gBAAgBN;gBAChBb;gBACAS;gBACAR;gBACAmB,cAAcP,SAASQ,OAAO,CAAC,OAAO,KAAKC,KAAK,CAAC;gBACjDhB;gBACAH;gBACAoB,OAAOV;YACT;YACAH,QAAQC,MAAM,GAAGO,WAAW,CAACF,oBAAoB;QACnD,EAAE,OAAOQ,KAAK;QACZ,WAAW;QACb;IACF;IAEA,IAAI,CAACd,SAASC,QAAQ;QACpBD,QAAQE,KAAK,GAAGjB;QAChB,MAAM8B,YAAY1B,QAAQS,MAAM,CAACL,UAAU,EAAEsB;QAE7C,IAAIA,WAAW;YACbf,QAAQC,MAAM,GAAGc;QACnB,OAAO;YACLf,QAAQC,MAAM,GAAGZ,QAAQS,MAAM,CAACL,UAAU,CAACI,EAAE;QAC/C;IACF;IAEA,IAAIG,QAAQC,MAAM,EAAE;QAClBL,aAAaJ,IAAI,GAAGQ,QAAQC,MAAM;IACpC;IAEA,IAAIP;IAEJ,IAAIC,iBAAiBqB,OAAOC,IAAI,CAACtB,eAAeuB,MAAM,GAAG,GAAG;QAC1DxB,QAAQ,MAAMP,YAAY;YACxBE;YACAC;YACAS;YACAR;YACAK;YACAH;YACAC,OAAOC;QACT;IACF;IAEA,OAAO;QACLI;QACAC;QACAJ;QACAF;IACF;AACF;AAEA,eAAeN,WAAU"}
@@ -0,0 +1,13 @@
1
+ import type { PgTableWithColumns } from 'drizzle-orm/pg-core';
2
+ import type { SQLiteTableWithColumns } from 'drizzle-orm/sqlite-core';
3
+ import type { DrizzleAdapter } from '../types.js';
4
+ type Table = PgTableWithColumns<any> | SQLiteTableWithColumns<any>;
5
+ export declare const getTableAlias: ({ adapter, tableName, }: {
6
+ adapter: DrizzleAdapter;
7
+ tableName: string;
8
+ }) => {
9
+ newAliasTable: Table;
10
+ newAliasTableName: string;
11
+ };
12
+ export {};
13
+ //# sourceMappingURL=getTableAlias.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTableAlias.d.ts","sourceRoot":"","sources":["../../src/queries/getTableAlias.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAOrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,KAAK,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;AAClE,eAAO,MAAM,aAAa,4BAGvB;IACD,OAAO,EAAE,cAAc,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;CAClB,KAAG;IACF,aAAa,EAAE,KAAK,CAAA;IACpB,iBAAiB,EAAE,MAAM,CAAA;CAa1B,CAAA"}
@@ -0,0 +1,20 @@
1
+ import { alias } from 'drizzle-orm/pg-core';
2
+ import { alias as aliasSQLite } from 'drizzle-orm/sqlite-core/alias';
3
+ import toSnakeCase from 'to-snake-case';
4
+ import { v4 as uuid } from 'uuid';
5
+ export const getTableAlias = ({ adapter, tableName })=>{
6
+ const newAliasTableName = toSnakeCase(uuid());
7
+ let newAliasTable;
8
+ if (adapter.name === 'postgres') {
9
+ newAliasTable = alias(adapter.tables[tableName], newAliasTableName);
10
+ }
11
+ if (adapter.name === 'sqlite') {
12
+ newAliasTable = aliasSQLite(adapter.tables[tableName], newAliasTableName);
13
+ }
14
+ return {
15
+ newAliasTable,
16
+ newAliasTableName
17
+ };
18
+ };
19
+
20
+ //# sourceMappingURL=getTableAlias.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/queries/getTableAlias.ts"],"sourcesContent":["import type { PgTableWithColumns } from 'drizzle-orm/pg-core'\nimport type { SQLiteTableWithColumns } from 'drizzle-orm/sqlite-core'\n\nimport { alias } from 'drizzle-orm/pg-core'\nimport { alias as aliasSQLite } from 'drizzle-orm/sqlite-core/alias'\nimport toSnakeCase from 'to-snake-case'\nimport { v4 as uuid } from 'uuid'\n\nimport type { DrizzleAdapter } from '../types.js'\n\ntype Table = PgTableWithColumns<any> | SQLiteTableWithColumns<any>\nexport const getTableAlias = ({\n adapter,\n tableName,\n}: {\n adapter: DrizzleAdapter\n tableName: string\n}): {\n newAliasTable: Table\n newAliasTableName: string\n} => {\n const newAliasTableName = toSnakeCase(uuid())\n let newAliasTable\n\n if (adapter.name === 'postgres') {\n newAliasTable = alias(adapter.tables[tableName], newAliasTableName)\n }\n if (adapter.name === 'sqlite') {\n newAliasTable = aliasSQLite(adapter.tables[tableName], newAliasTableName)\n }\n\n return { newAliasTable, newAliasTableName }\n}\n"],"names":["alias","aliasSQLite","toSnakeCase","v4","uuid","getTableAlias","adapter","tableName","newAliasTableName","newAliasTable","name","tables"],"mappings":"AAGA,SAASA,KAAK,QAAQ,sBAAqB;AAC3C,SAASA,SAASC,WAAW,QAAQ,gCAA+B;AACpE,OAAOC,iBAAiB,gBAAe;AACvC,SAASC,MAAMC,IAAI,QAAQ,OAAM;AAKjC,OAAO,MAAMC,gBAAgB,CAAC,EAC5BC,OAAO,EACPC,SAAS,EAIV;IAIC,MAAMC,oBAAoBN,YAAYE;IACtC,IAAIK;IAEJ,IAAIH,QAAQI,IAAI,KAAK,YAAY;QAC/BD,gBAAgBT,MAAMM,QAAQK,MAAM,CAACJ,UAAU,EAAEC;IACnD;IACA,IAAIF,QAAQI,IAAI,KAAK,UAAU;QAC7BD,gBAAgBR,YAAYK,QAAQK,MAAM,CAACJ,UAAU,EAAEC;IACzD;IAEA,OAAO;QAAEC;QAAeD;IAAkB;AAC5C,EAAC"}
@@ -0,0 +1,51 @@
1
+ import type { SQL } from 'drizzle-orm';
2
+ import type { PgTableWithColumns } from 'drizzle-orm/pg-core';
3
+ import type { SQLiteTableWithColumns } from 'drizzle-orm/sqlite-core';
4
+ import type { Field, FieldAffectingData, TabAsField } from 'payload';
5
+ import type { DrizzleAdapter, GenericColumn } from '../types.js';
6
+ import type { BuildQueryJoinAliases } from './buildQuery.js';
7
+ type Constraint = {
8
+ columnName: string;
9
+ table: PgTableWithColumns<any> | SQLiteTableWithColumns<any>;
10
+ value: unknown;
11
+ };
12
+ type TableColumn = {
13
+ columnName?: string;
14
+ constraints: Constraint[];
15
+ field: FieldAffectingData;
16
+ getNotNullColumnByValue?: (val: unknown) => string;
17
+ pathSegments?: string[];
18
+ rawColumn?: SQL;
19
+ table: PgTableWithColumns<any> | SQLiteTableWithColumns<any>;
20
+ };
21
+ type Args = {
22
+ adapter: DrizzleAdapter;
23
+ aliasTable?: PgTableWithColumns<any> | SQLiteTableWithColumns<any>;
24
+ collectionPath: string;
25
+ columnPrefix?: string;
26
+ constraintPath?: string;
27
+ constraints?: Constraint[];
28
+ fields: (Field | TabAsField)[];
29
+ joins: BuildQueryJoinAliases;
30
+ locale?: string;
31
+ pathSegments: string[];
32
+ rootTableName?: string;
33
+ selectFields: Record<string, GenericColumn>;
34
+ tableName: string;
35
+ /**
36
+ * If creating a new table name for arrays and blocks, this suffix should be appended to the table name
37
+ */
38
+ tableNameSuffix?: string;
39
+ /**
40
+ * The raw value of the query before sanitization
41
+ */
42
+ value: unknown;
43
+ };
44
+ /**
45
+ * Transforms path to table and column name
46
+ * Adds tables to `join`
47
+ * @returns TableColumn
48
+ */
49
+ export declare const getTableColumnFromPath: ({ adapter, aliasTable, collectionPath, columnPrefix, constraintPath: incomingConstraintPath, constraints, fields, joins, locale: incomingLocale, pathSegments: incomingSegments, rootTableName: incomingRootTableName, selectFields, tableName, tableNameSuffix, value, }: Args) => TableColumn;
50
+ export {};
51
+ //# sourceMappingURL=getTableColumnFromPath.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTableColumnFromPath.d.ts","sourceRoot":"","sources":["../../src/queries/getTableColumnFromPath.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AACrE,OAAO,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAe,UAAU,EAAa,MAAM,SAAS,CAAA;AAO5F,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAI5D,KAAK,UAAU,GAAG;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;IAC5D,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,UAAU,EAAE,CAAA;IACzB,KAAK,EAAE,kBAAkB,CAAA;IACzB,uBAAuB,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAA;IAClD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,SAAS,CAAC,EAAE,GAAG,CAAA;IACf,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;CAC7D,CAAA;AAED,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;IAClE,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;IAC1B,MAAM,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE,CAAA;IAC9B,KAAK,EAAE,qBAAqB,CAAA;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC3C,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;OAEG;IACH,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AACD;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,8QAgBhC,IAAI,KAAG,WAglBT,CAAA"}