@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,377 @@
1
+ import { relations } from 'drizzle-orm';
2
+ import { foreignKey, index, integer, numeric, serial, timestamp, unique, varchar } from 'drizzle-orm/pg-core';
3
+ import toSnakeCase from 'to-snake-case';
4
+ import { createTableName } from '../../createTableName.js';
5
+ import { parentIDColumnMap } from './parentIDColumnMap.js';
6
+ import { setColumnID } from './setColumnID.js';
7
+ import { traverseFields } from './traverseFields.js';
8
+ export const buildTable = ({ adapter, baseColumns = {}, baseExtraConfig = {}, disableNotNull, disableUnique = false, fields, rootRelationships, rootRelationsToBuild, rootTableIDColType, rootTableName: incomingRootTableName, tableName, timestamps, versions, withinLocalizedArrayOrBlock })=>{
9
+ const isRoot = !incomingRootTableName;
10
+ const rootTableName = incomingRootTableName || tableName;
11
+ const columns = baseColumns;
12
+ const indexes = {};
13
+ const localesColumns = {};
14
+ const localesIndexes = {};
15
+ let localesTable;
16
+ let textsTable;
17
+ let numbersTable;
18
+ // Relationships to the base collection
19
+ const relationships = rootRelationships || new Set();
20
+ let relationshipsTable;
21
+ // Drizzle relations
22
+ const relationsToBuild = new Map();
23
+ const idColType = setColumnID({
24
+ adapter,
25
+ columns,
26
+ fields
27
+ });
28
+ const { hasLocalizedField, hasLocalizedManyNumberField, hasLocalizedManyTextField, hasLocalizedRelationshipField, hasManyNumberField, hasManyTextField } = traverseFields({
29
+ adapter,
30
+ columns,
31
+ disableNotNull,
32
+ disableUnique,
33
+ fields,
34
+ indexes,
35
+ localesColumns,
36
+ localesIndexes,
37
+ newTableName: tableName,
38
+ parentTableName: tableName,
39
+ relationships,
40
+ relationsToBuild,
41
+ rootRelationsToBuild: rootRelationsToBuild || relationsToBuild,
42
+ rootTableIDColType: rootTableIDColType || idColType,
43
+ rootTableName,
44
+ versions,
45
+ withinLocalizedArrayOrBlock
46
+ });
47
+ // split the relationsToBuild by localized and non-localized
48
+ const localizedRelations = new Map();
49
+ const nonLocalizedRelations = new Map();
50
+ relationsToBuild.forEach(({ type, localized, target }, key)=>{
51
+ const map = localized ? localizedRelations : nonLocalizedRelations;
52
+ map.set(key, {
53
+ type,
54
+ target
55
+ });
56
+ });
57
+ if (timestamps) {
58
+ columns.createdAt = timestamp('created_at', {
59
+ mode: 'string',
60
+ precision: 3,
61
+ withTimezone: true
62
+ }).defaultNow().notNull();
63
+ columns.updatedAt = timestamp('updated_at', {
64
+ mode: 'string',
65
+ precision: 3,
66
+ withTimezone: true
67
+ }).defaultNow().notNull();
68
+ }
69
+ const table = adapter.pgSchema.table(tableName, columns, (cols)=>{
70
+ const extraConfig = Object.entries(baseExtraConfig).reduce((config, [key, func])=>{
71
+ config[key] = func(cols);
72
+ return config;
73
+ }, {});
74
+ const result = Object.entries(indexes).reduce((acc, [colName, func])=>{
75
+ acc[colName] = func(cols);
76
+ return acc;
77
+ }, extraConfig);
78
+ return result;
79
+ });
80
+ adapter.tables[tableName] = table;
81
+ if (hasLocalizedField || localizedRelations.size) {
82
+ const localeTableName = `${tableName}${adapter.localesSuffix}`;
83
+ localesColumns.id = serial('id').primaryKey();
84
+ localesColumns._locale = adapter.enums.enum__locales('_locale').notNull();
85
+ localesColumns._parentID = parentIDColumnMap[idColType]('_parent_id').notNull();
86
+ localesTable = adapter.pgSchema.table(localeTableName, localesColumns, (cols)=>{
87
+ return Object.entries(localesIndexes).reduce((acc, [colName, func])=>{
88
+ acc[colName] = func(cols);
89
+ return acc;
90
+ }, {
91
+ _localeParent: unique(`${localeTableName}_locale_parent_id_unique`).on(cols._locale, cols._parentID),
92
+ _parentIdFk: foreignKey({
93
+ name: `${localeTableName}_parent_id_fk`,
94
+ columns: [
95
+ cols._parentID
96
+ ],
97
+ foreignColumns: [
98
+ table.id
99
+ ]
100
+ }).onDelete('cascade')
101
+ });
102
+ });
103
+ adapter.tables[localeTableName] = localesTable;
104
+ adapter.relations[`relations_${localeTableName}`] = relations(localesTable, ({ many, one })=>{
105
+ const result = {};
106
+ result._parentID = one(table, {
107
+ fields: [
108
+ localesTable._parentID
109
+ ],
110
+ references: [
111
+ table.id
112
+ ],
113
+ // name the relationship by what the many() relationName is
114
+ relationName: '_locales'
115
+ });
116
+ localizedRelations.forEach(({ type, target }, key)=>{
117
+ if (type === 'one') {
118
+ result[key] = one(adapter.tables[target], {
119
+ fields: [
120
+ localesTable[key]
121
+ ],
122
+ references: [
123
+ adapter.tables[target].id
124
+ ],
125
+ relationName: key
126
+ });
127
+ }
128
+ if (type === 'many') {
129
+ result[key] = many(adapter.tables[target], {
130
+ relationName: key
131
+ });
132
+ }
133
+ });
134
+ return result;
135
+ });
136
+ }
137
+ if (isRoot) {
138
+ if (hasManyTextField) {
139
+ const textsTableName = `${rootTableName}_texts`;
140
+ const columns = {
141
+ id: serial('id').primaryKey(),
142
+ order: integer('order').notNull(),
143
+ parent: parentIDColumnMap[idColType]('parent_id').notNull(),
144
+ path: varchar('path').notNull(),
145
+ text: varchar('text')
146
+ };
147
+ if (hasLocalizedManyTextField) {
148
+ columns.locale = adapter.enums.enum__locales('locale');
149
+ }
150
+ textsTable = adapter.pgSchema.table(textsTableName, columns, (cols)=>{
151
+ const config = {
152
+ orderParentIdx: index(`${textsTableName}_order_parent_idx`).on(cols.order, cols.parent),
153
+ parentFk: foreignKey({
154
+ name: `${textsTableName}_parent_fk`,
155
+ columns: [
156
+ cols.parent
157
+ ],
158
+ foreignColumns: [
159
+ table.id
160
+ ]
161
+ }).onDelete('cascade')
162
+ };
163
+ if (hasManyTextField === 'index') {
164
+ config.text_idx = index(`${textsTableName}_text_idx`).on(cols.text);
165
+ }
166
+ if (hasLocalizedManyTextField) {
167
+ config.localeParent = index(`${textsTableName}_locale_parent`).on(cols.locale, cols.parent);
168
+ }
169
+ return config;
170
+ });
171
+ adapter.tables[textsTableName] = textsTable;
172
+ adapter.relations[`relations_${textsTableName}`] = relations(textsTable, ({ one })=>({
173
+ parent: one(table, {
174
+ fields: [
175
+ textsTable.parent
176
+ ],
177
+ references: [
178
+ table.id
179
+ ],
180
+ relationName: '_texts'
181
+ })
182
+ }));
183
+ }
184
+ if (hasManyNumberField) {
185
+ const numbersTableName = `${rootTableName}_numbers`;
186
+ const columns = {
187
+ id: serial('id').primaryKey(),
188
+ number: numeric('number'),
189
+ order: integer('order').notNull(),
190
+ parent: parentIDColumnMap[idColType]('parent_id').notNull(),
191
+ path: varchar('path').notNull()
192
+ };
193
+ if (hasLocalizedManyNumberField) {
194
+ columns.locale = adapter.enums.enum__locales('locale');
195
+ }
196
+ numbersTable = adapter.pgSchema.table(numbersTableName, columns, (cols)=>{
197
+ const config = {
198
+ orderParentIdx: index(`${numbersTableName}_order_parent_idx`).on(cols.order, cols.parent),
199
+ parentFk: foreignKey({
200
+ name: `${numbersTableName}_parent_fk`,
201
+ columns: [
202
+ cols.parent
203
+ ],
204
+ foreignColumns: [
205
+ table.id
206
+ ]
207
+ }).onDelete('cascade')
208
+ };
209
+ if (hasManyNumberField === 'index') {
210
+ config.numberIdx = index(`${numbersTableName}_number_idx`).on(cols.number);
211
+ }
212
+ if (hasLocalizedManyNumberField) {
213
+ config.localeParent = index(`${numbersTableName}_locale_parent`).on(cols.locale, cols.parent);
214
+ }
215
+ return config;
216
+ });
217
+ adapter.tables[numbersTableName] = numbersTable;
218
+ adapter.relations[`relations_${numbersTableName}`] = relations(numbersTable, ({ one })=>({
219
+ parent: one(table, {
220
+ fields: [
221
+ numbersTable.parent
222
+ ],
223
+ references: [
224
+ table.id
225
+ ],
226
+ relationName: '_numbers'
227
+ })
228
+ }));
229
+ }
230
+ if (relationships.size) {
231
+ const relationshipColumns = {
232
+ id: serial('id').primaryKey(),
233
+ order: integer('order'),
234
+ parent: parentIDColumnMap[idColType]('parent_id').notNull(),
235
+ path: varchar('path').notNull()
236
+ };
237
+ if (hasLocalizedRelationshipField) {
238
+ relationshipColumns.locale = adapter.enums.enum__locales('locale');
239
+ }
240
+ const relationExtraConfig = {};
241
+ const relationshipsTableName = `${tableName}${adapter.relationshipsSuffix}`;
242
+ relationships.forEach((relationTo)=>{
243
+ const relationshipConfig = adapter.payload.collections[relationTo].config;
244
+ const formattedRelationTo = createTableName({
245
+ adapter,
246
+ config: relationshipConfig,
247
+ throwValidationError: true
248
+ });
249
+ let colType = adapter.idType === 'uuid' ? 'uuid' : 'integer';
250
+ const relatedCollectionCustomIDType = adapter.payload.collections[relationshipConfig.slug]?.customIDType;
251
+ if (relatedCollectionCustomIDType === 'number') {
252
+ colType = 'numeric';
253
+ }
254
+ if (relatedCollectionCustomIDType === 'text') {
255
+ colType = 'varchar';
256
+ }
257
+ relationshipColumns[`${relationTo}ID`] = parentIDColumnMap[colType](`${formattedRelationTo}_id`);
258
+ relationExtraConfig[`${relationTo}IdFk`] = (cols)=>foreignKey({
259
+ name: `${relationshipsTableName}_${toSnakeCase(relationTo)}_fk`,
260
+ columns: [
261
+ cols[`${relationTo}ID`]
262
+ ],
263
+ foreignColumns: [
264
+ adapter.tables[formattedRelationTo].id
265
+ ]
266
+ }).onDelete('cascade');
267
+ });
268
+ relationshipsTable = adapter.pgSchema.table(relationshipsTableName, relationshipColumns, (cols)=>{
269
+ const result = Object.entries(relationExtraConfig).reduce((config, [key, func])=>{
270
+ config[key] = func(cols);
271
+ return config;
272
+ }, {
273
+ order: index(`${relationshipsTableName}_order_idx`).on(cols.order),
274
+ parentFk: foreignKey({
275
+ name: `${relationshipsTableName}_parent_fk`,
276
+ columns: [
277
+ cols.parent
278
+ ],
279
+ foreignColumns: [
280
+ table.id
281
+ ]
282
+ }).onDelete('cascade'),
283
+ parentIdx: index(`${relationshipsTableName}_parent_idx`).on(cols.parent),
284
+ pathIdx: index(`${relationshipsTableName}_path_idx`).on(cols.path)
285
+ });
286
+ if (hasLocalizedRelationshipField) {
287
+ result.localeIdx = index(`${relationshipsTableName}_locale_idx`).on(cols.locale);
288
+ }
289
+ return result;
290
+ });
291
+ adapter.tables[relationshipsTableName] = relationshipsTable;
292
+ adapter.relations[`relations_${relationshipsTableName}`] = relations(relationshipsTable, ({ one })=>{
293
+ const result = {
294
+ parent: one(table, {
295
+ fields: [
296
+ relationshipsTable.parent
297
+ ],
298
+ references: [
299
+ table.id
300
+ ],
301
+ relationName: '_rels'
302
+ })
303
+ };
304
+ relationships.forEach((relationTo)=>{
305
+ const relatedTableName = createTableName({
306
+ adapter,
307
+ config: adapter.payload.collections[relationTo].config,
308
+ throwValidationError: true
309
+ });
310
+ const idColumnName = `${relationTo}ID`;
311
+ result[idColumnName] = one(adapter.tables[relatedTableName], {
312
+ fields: [
313
+ relationshipsTable[idColumnName]
314
+ ],
315
+ references: [
316
+ adapter.tables[relatedTableName].id
317
+ ],
318
+ relationName: relationTo
319
+ });
320
+ });
321
+ return result;
322
+ });
323
+ }
324
+ }
325
+ adapter.relations[`relations_${tableName}`] = relations(table, ({ many, one })=>{
326
+ const result = {};
327
+ nonLocalizedRelations.forEach(({ type, target }, key)=>{
328
+ if (type === 'one') {
329
+ result[key] = one(adapter.tables[target], {
330
+ fields: [
331
+ table[key]
332
+ ],
333
+ references: [
334
+ adapter.tables[target].id
335
+ ],
336
+ relationName: key
337
+ });
338
+ }
339
+ if (type === 'many') {
340
+ result[key] = many(adapter.tables[target], {
341
+ relationName: key
342
+ });
343
+ }
344
+ });
345
+ if (hasLocalizedField) {
346
+ result._locales = many(localesTable, {
347
+ relationName: '_locales'
348
+ });
349
+ }
350
+ if (hasManyTextField) {
351
+ result._texts = many(textsTable, {
352
+ relationName: '_texts'
353
+ });
354
+ }
355
+ if (hasManyNumberField) {
356
+ result._numbers = many(numbersTable, {
357
+ relationName: '_numbers'
358
+ });
359
+ }
360
+ if (relationships.size && relationshipsTable) {
361
+ result._rels = many(relationshipsTable, {
362
+ relationName: '_rels'
363
+ });
364
+ }
365
+ return result;
366
+ });
367
+ return {
368
+ hasLocalizedManyNumberField,
369
+ hasLocalizedManyTextField,
370
+ hasLocalizedRelationshipField,
371
+ hasManyNumberField,
372
+ hasManyTextField,
373
+ relationsToBuild
374
+ };
375
+ };
376
+
377
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/postgres/schema/build.ts"],"sourcesContent":["import type { Relation } from 'drizzle-orm'\nimport type {\n ForeignKeyBuilder,\n IndexBuilder,\n PgColumnBuilder,\n PgTableWithColumns,\n} from 'drizzle-orm/pg-core'\nimport type { Field } from 'payload'\n\nimport { relations } from 'drizzle-orm'\nimport {\n foreignKey,\n index,\n integer,\n numeric,\n serial,\n timestamp,\n unique,\n varchar,\n} from 'drizzle-orm/pg-core'\nimport toSnakeCase from 'to-snake-case'\n\nimport type {\n BaseExtraConfig,\n BasePostgresAdapter,\n GenericColumns,\n GenericTable,\n IDType,\n RelationMap,\n} from '../types.js'\n\nimport { createTableName } from '../../createTableName.js'\nimport { parentIDColumnMap } from './parentIDColumnMap.js'\nimport { setColumnID } from './setColumnID.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype Args = {\n adapter: BasePostgresAdapter\n baseColumns?: Record<string, PgColumnBuilder>\n /**\n * After table is created, run these functions to add extra config to the table\n * ie. indexes, multiple columns, etc\n */\n baseExtraConfig?: BaseExtraConfig\n buildNumbers?: boolean\n buildRelationships?: boolean\n disableNotNull: boolean\n disableUnique: boolean\n fields: Field[]\n rootRelationships?: Set<string>\n rootRelationsToBuild?: RelationMap\n rootTableIDColType?: string\n rootTableName?: string\n tableName: string\n timestamps?: boolean\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 hasLocalizedManyNumberField: boolean\n hasLocalizedManyTextField: boolean\n hasLocalizedRelationshipField: boolean\n hasManyNumberField: 'index' | boolean\n hasManyTextField: 'index' | boolean\n relationsToBuild: RelationMap\n}\n\nexport const buildTable = ({\n adapter,\n baseColumns = {},\n baseExtraConfig = {},\n disableNotNull,\n disableUnique = false,\n fields,\n rootRelationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName: incomingRootTableName,\n tableName,\n timestamps,\n versions,\n withinLocalizedArrayOrBlock,\n}: Args): Result => {\n const isRoot = !incomingRootTableName\n const rootTableName = incomingRootTableName || tableName\n const columns: Record<string, PgColumnBuilder> = baseColumns\n const indexes: Record<string, (cols: GenericColumns) => IndexBuilder> = {}\n\n const localesColumns: Record<string, PgColumnBuilder> = {}\n const localesIndexes: Record<string, (cols: GenericColumns) => IndexBuilder> = {}\n let localesTable: GenericTable | PgTableWithColumns<any>\n let textsTable: GenericTable | PgTableWithColumns<any>\n let numbersTable: GenericTable | PgTableWithColumns<any>\n\n // Relationships to the base collection\n const relationships: Set<string> = rootRelationships || new Set()\n\n let relationshipsTable: GenericTable | PgTableWithColumns<any>\n\n // Drizzle relations\n const relationsToBuild: RelationMap = new Map()\n\n const idColType: IDType = setColumnID({ adapter, columns, fields })\n\n const {\n hasLocalizedField,\n hasLocalizedManyNumberField,\n hasLocalizedManyTextField,\n hasLocalizedRelationshipField,\n hasManyNumberField,\n hasManyTextField,\n } = traverseFields({\n adapter,\n columns,\n disableNotNull,\n disableUnique,\n fields,\n indexes,\n localesColumns,\n localesIndexes,\n newTableName: tableName,\n parentTableName: tableName,\n relationships,\n relationsToBuild,\n rootRelationsToBuild: rootRelationsToBuild || relationsToBuild,\n rootTableIDColType: rootTableIDColType || idColType,\n rootTableName,\n versions,\n withinLocalizedArrayOrBlock,\n })\n\n // split the relationsToBuild by localized and non-localized\n const localizedRelations = new Map()\n const nonLocalizedRelations = new Map()\n\n relationsToBuild.forEach(({ type, localized, target }, key) => {\n const map = localized ? localizedRelations : nonLocalizedRelations\n map.set(key, { type, target })\n })\n\n if (timestamps) {\n columns.createdAt = timestamp('created_at', {\n mode: 'string',\n precision: 3,\n withTimezone: true,\n })\n .defaultNow()\n .notNull()\n columns.updatedAt = timestamp('updated_at', {\n mode: 'string',\n precision: 3,\n withTimezone: true,\n })\n .defaultNow()\n .notNull()\n }\n\n const table = adapter.pgSchema.table(tableName, columns, (cols) => {\n const extraConfig = Object.entries(baseExtraConfig).reduce((config, [key, func]) => {\n config[key] = func(cols)\n return config\n }, {})\n\n const result = Object.entries(indexes).reduce((acc, [colName, func]) => {\n acc[colName] = func(cols)\n return acc\n }, extraConfig)\n\n return result\n })\n\n adapter.tables[tableName] = table\n\n if (hasLocalizedField || localizedRelations.size) {\n const localeTableName = `${tableName}${adapter.localesSuffix}`\n localesColumns.id = serial('id').primaryKey()\n localesColumns._locale = adapter.enums.enum__locales('_locale').notNull()\n localesColumns._parentID = parentIDColumnMap[idColType]('_parent_id').notNull()\n\n localesTable = adapter.pgSchema.table(localeTableName, localesColumns, (cols) => {\n return Object.entries(localesIndexes).reduce(\n (acc, [colName, func]) => {\n acc[colName] = func(cols)\n return acc\n },\n {\n _localeParent: unique(`${localeTableName}_locale_parent_id_unique`).on(\n cols._locale,\n cols._parentID,\n ),\n _parentIdFk: foreignKey({\n name: `${localeTableName}_parent_id_fk`,\n columns: [cols._parentID],\n foreignColumns: [table.id],\n }).onDelete('cascade'),\n },\n )\n })\n\n adapter.tables[localeTableName] = localesTable\n\n adapter.relations[`relations_${localeTableName}`] = relations(localesTable, ({ many, one }) => {\n const result: Record<string, Relation<string>> = {}\n\n result._parentID = one(table, {\n fields: [localesTable._parentID],\n references: [table.id],\n // name the relationship by what the many() relationName is\n relationName: '_locales',\n })\n\n localizedRelations.forEach(({ type, target }, key) => {\n if (type === 'one') {\n result[key] = one(adapter.tables[target], {\n fields: [localesTable[key]],\n references: [adapter.tables[target].id],\n relationName: key,\n })\n }\n if (type === 'many') {\n result[key] = many(adapter.tables[target], {\n relationName: key,\n })\n }\n })\n\n return result\n })\n }\n\n if (isRoot) {\n if (hasManyTextField) {\n const textsTableName = `${rootTableName}_texts`\n const columns: Record<string, PgColumnBuilder> = {\n id: serial('id').primaryKey(),\n order: integer('order').notNull(),\n parent: parentIDColumnMap[idColType]('parent_id').notNull(),\n path: varchar('path').notNull(),\n text: varchar('text'),\n }\n\n if (hasLocalizedManyTextField) {\n columns.locale = adapter.enums.enum__locales('locale')\n }\n\n textsTable = adapter.pgSchema.table(textsTableName, columns, (cols) => {\n const config: Record<string, ForeignKeyBuilder | IndexBuilder> = {\n orderParentIdx: index(`${textsTableName}_order_parent_idx`).on(cols.order, cols.parent),\n parentFk: foreignKey({\n name: `${textsTableName}_parent_fk`,\n columns: [cols.parent],\n foreignColumns: [table.id],\n }).onDelete('cascade'),\n }\n\n if (hasManyTextField === 'index') {\n config.text_idx = index(`${textsTableName}_text_idx`).on(cols.text)\n }\n\n if (hasLocalizedManyTextField) {\n config.localeParent = index(`${textsTableName}_locale_parent`).on(\n cols.locale,\n cols.parent,\n )\n }\n\n return config\n })\n\n adapter.tables[textsTableName] = textsTable\n\n adapter.relations[`relations_${textsTableName}`] = relations(textsTable, ({ one }) => ({\n parent: one(table, {\n fields: [textsTable.parent],\n references: [table.id],\n relationName: '_texts',\n }),\n }))\n }\n\n if (hasManyNumberField) {\n const numbersTableName = `${rootTableName}_numbers`\n const columns: Record<string, PgColumnBuilder> = {\n id: serial('id').primaryKey(),\n number: numeric('number'),\n order: integer('order').notNull(),\n parent: parentIDColumnMap[idColType]('parent_id').notNull(),\n path: varchar('path').notNull(),\n }\n\n if (hasLocalizedManyNumberField) {\n columns.locale = adapter.enums.enum__locales('locale')\n }\n\n numbersTable = adapter.pgSchema.table(numbersTableName, columns, (cols) => {\n const config: Record<string, ForeignKeyBuilder | IndexBuilder> = {\n orderParentIdx: index(`${numbersTableName}_order_parent_idx`).on(cols.order, cols.parent),\n parentFk: foreignKey({\n name: `${numbersTableName}_parent_fk`,\n columns: [cols.parent],\n foreignColumns: [table.id],\n }).onDelete('cascade'),\n }\n\n if (hasManyNumberField === 'index') {\n config.numberIdx = index(`${numbersTableName}_number_idx`).on(cols.number)\n }\n\n if (hasLocalizedManyNumberField) {\n config.localeParent = index(`${numbersTableName}_locale_parent`).on(\n cols.locale,\n cols.parent,\n )\n }\n\n return config\n })\n\n adapter.tables[numbersTableName] = numbersTable\n\n adapter.relations[`relations_${numbersTableName}`] = relations(numbersTable, ({ one }) => ({\n parent: one(table, {\n fields: [numbersTable.parent],\n references: [table.id],\n relationName: '_numbers',\n }),\n }))\n }\n\n if (relationships.size) {\n const relationshipColumns: Record<string, PgColumnBuilder> = {\n id: serial('id').primaryKey(),\n order: integer('order'),\n parent: parentIDColumnMap[idColType]('parent_id').notNull(),\n path: varchar('path').notNull(),\n }\n\n if (hasLocalizedRelationshipField) {\n relationshipColumns.locale = adapter.enums.enum__locales('locale')\n }\n\n const relationExtraConfig: BaseExtraConfig = {}\n const relationshipsTableName = `${tableName}${adapter.relationshipsSuffix}`\n\n relationships.forEach((relationTo) => {\n const relationshipConfig = adapter.payload.collections[relationTo].config\n const formattedRelationTo = createTableName({\n adapter,\n config: relationshipConfig,\n throwValidationError: true,\n })\n let colType = adapter.idType === 'uuid' ? 'uuid' : 'integer'\n const relatedCollectionCustomIDType =\n adapter.payload.collections[relationshipConfig.slug]?.customIDType\n\n if (relatedCollectionCustomIDType === 'number') {\n colType = 'numeric'\n }\n if (relatedCollectionCustomIDType === 'text') {\n colType = 'varchar'\n }\n\n relationshipColumns[`${relationTo}ID`] = parentIDColumnMap[colType](\n `${formattedRelationTo}_id`,\n )\n\n relationExtraConfig[`${relationTo}IdFk`] = (cols) =>\n foreignKey({\n name: `${relationshipsTableName}_${toSnakeCase(relationTo)}_fk`,\n columns: [cols[`${relationTo}ID`]],\n foreignColumns: [adapter.tables[formattedRelationTo].id],\n }).onDelete('cascade')\n })\n\n relationshipsTable = adapter.pgSchema.table(\n relationshipsTableName,\n relationshipColumns,\n (cols) => {\n const result: Record<string, ForeignKeyBuilder | IndexBuilder> = Object.entries(\n relationExtraConfig,\n ).reduce(\n (config, [key, func]) => {\n config[key] = func(cols)\n return config\n },\n {\n order: index(`${relationshipsTableName}_order_idx`).on(cols.order),\n parentFk: foreignKey({\n name: `${relationshipsTableName}_parent_fk`,\n columns: [cols.parent],\n foreignColumns: [table.id],\n }).onDelete('cascade'),\n parentIdx: index(`${relationshipsTableName}_parent_idx`).on(cols.parent),\n pathIdx: index(`${relationshipsTableName}_path_idx`).on(cols.path),\n },\n )\n\n if (hasLocalizedRelationshipField) {\n result.localeIdx = index(`${relationshipsTableName}_locale_idx`).on(cols.locale)\n }\n\n return result\n },\n )\n\n adapter.tables[relationshipsTableName] = relationshipsTable\n\n adapter.relations[`relations_${relationshipsTableName}`] = relations(\n relationshipsTable,\n ({ one }) => {\n const result: Record<string, Relation<string>> = {\n parent: one(table, {\n fields: [relationshipsTable.parent],\n references: [table.id],\n relationName: '_rels',\n }),\n }\n\n relationships.forEach((relationTo) => {\n const relatedTableName = createTableName({\n adapter,\n config: adapter.payload.collections[relationTo].config,\n throwValidationError: true,\n })\n const idColumnName = `${relationTo}ID`\n result[idColumnName] = one(adapter.tables[relatedTableName], {\n fields: [relationshipsTable[idColumnName]],\n references: [adapter.tables[relatedTableName].id],\n relationName: relationTo,\n })\n })\n\n return result\n },\n )\n }\n }\n\n adapter.relations[`relations_${tableName}`] = relations(table, ({ many, one }) => {\n const result: Record<string, Relation<string>> = {}\n\n nonLocalizedRelations.forEach(({ type, target }, key) => {\n if (type === 'one') {\n result[key] = one(adapter.tables[target], {\n fields: [table[key]],\n references: [adapter.tables[target].id],\n relationName: key,\n })\n }\n if (type === 'many') {\n result[key] = many(adapter.tables[target], { relationName: key })\n }\n })\n\n if (hasLocalizedField) {\n result._locales = many(localesTable, { relationName: '_locales' })\n }\n\n if (hasManyTextField) {\n result._texts = many(textsTable, { relationName: '_texts' })\n }\n\n if (hasManyNumberField) {\n result._numbers = many(numbersTable, { relationName: '_numbers' })\n }\n\n if (relationships.size && relationshipsTable) {\n result._rels = many(relationshipsTable, {\n relationName: '_rels',\n })\n }\n\n return result\n })\n\n return {\n hasLocalizedManyNumberField,\n hasLocalizedManyTextField,\n hasLocalizedRelationshipField,\n hasManyNumberField,\n hasManyTextField,\n relationsToBuild,\n }\n}\n"],"names":["relations","foreignKey","index","integer","numeric","serial","timestamp","unique","varchar","toSnakeCase","createTableName","parentIDColumnMap","setColumnID","traverseFields","buildTable","adapter","baseColumns","baseExtraConfig","disableNotNull","disableUnique","fields","rootRelationships","rootRelationsToBuild","rootTableIDColType","rootTableName","incomingRootTableName","tableName","timestamps","versions","withinLocalizedArrayOrBlock","isRoot","columns","indexes","localesColumns","localesIndexes","localesTable","textsTable","numbersTable","relationships","Set","relationshipsTable","relationsToBuild","Map","idColType","hasLocalizedField","hasLocalizedManyNumberField","hasLocalizedManyTextField","hasLocalizedRelationshipField","hasManyNumberField","hasManyTextField","newTableName","parentTableName","localizedRelations","nonLocalizedRelations","forEach","type","localized","target","key","map","set","createdAt","mode","precision","withTimezone","defaultNow","notNull","updatedAt","table","pgSchema","cols","extraConfig","Object","entries","reduce","config","func","result","acc","colName","tables","size","localeTableName","localesSuffix","id","primaryKey","_locale","enums","enum__locales","_parentID","_localeParent","on","_parentIdFk","name","foreignColumns","onDelete","many","one","references","relationName","textsTableName","order","parent","path","text","locale","orderParentIdx","parentFk","text_idx","localeParent","numbersTableName","number","numberIdx","relationshipColumns","relationExtraConfig","relationshipsTableName","relationshipsSuffix","relationTo","relationshipConfig","payload","collections","formattedRelationTo","throwValidationError","colType","idType","relatedCollectionCustomIDType","slug","customIDType","parentIdx","pathIdx","localeIdx","relatedTableName","idColumnName","_locales","_texts","_numbers","_rels"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { GenericColumn } from '../types.js';
2
+ type CreateIndexArgs = {
3
+ columnName: string;
4
+ name: string | string[];
5
+ tableName: string;
6
+ unique?: boolean;
7
+ };
8
+ export declare const createIndex: ({ name, columnName, tableName, unique }: CreateIndexArgs) => (table: {
9
+ [x: string]: GenericColumn;
10
+ }) => import("drizzle-orm/pg-core").IndexBuilder;
11
+ export {};
12
+ //# sourceMappingURL=createIndex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createIndex.d.ts","sourceRoot":"","sources":["../../../src/postgres/schema/createIndex.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,KAAK,eAAe,GAAG;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,WAAW,4CAA6C,eAAe,aACnE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,aAAa,CAAA;CAAE,+CAe9C,CAAA"}
@@ -0,0 +1,20 @@
1
+ import { index, uniqueIndex } from 'drizzle-orm/pg-core';
2
+ export const createIndex = ({ name, columnName, tableName, unique })=>{
3
+ return (table)=>{
4
+ let columns;
5
+ if (Array.isArray(name)) {
6
+ columns = name.map((columnName)=>table[columnName])// exclude fields were included in compound indexes but do not exist on the table
7
+ .filter((col)=>typeof col !== 'undefined');
8
+ } else {
9
+ columns = [
10
+ table[name]
11
+ ];
12
+ }
13
+ if (unique) {
14
+ return uniqueIndex(`${tableName}_${columnName}_idx`).on(columns[0], ...columns.slice(1));
15
+ }
16
+ return index(`${tableName}_${columnName}_idx`).on(columns[0], ...columns.slice(1));
17
+ };
18
+ };
19
+
20
+ //# sourceMappingURL=createIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/postgres/schema/createIndex.ts"],"sourcesContent":["import { index, uniqueIndex } from 'drizzle-orm/pg-core'\n\nimport type { GenericColumn } from '../types.js'\n\ntype CreateIndexArgs = {\n columnName: string\n name: string | string[]\n tableName: string\n unique?: boolean\n}\n\nexport const createIndex = ({ name, columnName, tableName, unique }: CreateIndexArgs) => {\n return (table: { [x: string]: GenericColumn }) => {\n let columns\n if (Array.isArray(name)) {\n columns = name\n .map((columnName) => table[columnName])\n // exclude fields were included in compound indexes but do not exist on the table\n .filter((col) => typeof col !== 'undefined')\n } else {\n columns = [table[name]]\n }\n if (unique) {\n return uniqueIndex(`${tableName}_${columnName}_idx`).on(columns[0], ...columns.slice(1))\n }\n return index(`${tableName}_${columnName}_idx`).on(columns[0], ...columns.slice(1))\n }\n}\n"],"names":["index","uniqueIndex","createIndex","name","columnName","tableName","unique","table","columns","Array","isArray","map","filter","col","on","slice"],"mappings":"AAAA,SAASA,KAAK,EAAEC,WAAW,QAAQ,sBAAqB;AAWxD,OAAO,MAAMC,cAAc,CAAC,EAAEC,IAAI,EAAEC,UAAU,EAAEC,SAAS,EAAEC,MAAM,EAAmB;IAClF,OAAO,CAACC;QACN,IAAIC;QACJ,IAAIC,MAAMC,OAAO,CAACP,OAAO;YACvBK,UAAUL,KACPQ,GAAG,CAAC,CAACP,aAAeG,KAAK,CAACH,WAAW,CACtC,iFAAiF;aAChFQ,MAAM,CAAC,CAACC,MAAQ,OAAOA,QAAQ;QACpC,OAAO;YACLL,UAAU;gBAACD,KAAK,CAACJ,KAAK;aAAC;QACzB;QACA,IAAIG,QAAQ;YACV,OAAOL,YAAY,CAAC,EAAEI,UAAU,CAAC,EAAED,WAAW,IAAI,CAAC,EAAEU,EAAE,CAACN,OAAO,CAAC,EAAE,KAAKA,QAAQO,KAAK,CAAC;QACvF;QACA,OAAOf,MAAM,CAAC,EAAEK,UAAU,CAAC,EAAED,WAAW,IAAI,CAAC,EAAEU,EAAE,CAACN,OAAO,CAAC,EAAE,KAAKA,QAAQO,KAAK,CAAC;IACjF;AACF,EAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Field } from 'payload';
2
+ export declare const idToUUID: (fields: Field[]) => Field[];
3
+ //# sourceMappingURL=idToUUID.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"idToUUID.d.ts","sourceRoot":"","sources":["../../../src/postgres/schema/idToUUID.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,eAAO,MAAM,QAAQ,WAAY,KAAK,EAAE,KAAG,KAAK,EAU5C,CAAA"}
@@ -0,0 +1,11 @@
1
+ export const idToUUID = (fields)=>fields.map((field)=>{
2
+ if ('name' in field && field.name === 'id') {
3
+ return {
4
+ ...field,
5
+ name: '_uuid'
6
+ };
7
+ }
8
+ return field;
9
+ });
10
+
11
+ //# sourceMappingURL=idToUUID.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/postgres/schema/idToUUID.ts"],"sourcesContent":["import type { Field } from 'payload'\n\nexport const idToUUID = (fields: Field[]): Field[] =>\n fields.map((field) => {\n if ('name' in field && field.name === 'id') {\n return {\n ...field,\n name: '_uuid',\n }\n }\n\n return field\n })\n"],"names":["idToUUID","fields","map","field","name"],"mappings":"AAEA,OAAO,MAAMA,WAAW,CAACC,SACvBA,OAAOC,GAAG,CAAC,CAACC;QACV,IAAI,UAAUA,SAASA,MAAMC,IAAI,KAAK,MAAM;YAC1C,OAAO;gBACL,GAAGD,KAAK;gBACRC,MAAM;YACR;QACF;QAEA,OAAOD;IACT,GAAE"}
@@ -0,0 +1,4 @@
1
+ import { integer, numeric, uuid, varchar } from 'drizzle-orm/pg-core';
2
+ import type { IDType } from '../types.js';
3
+ export declare const parentIDColumnMap: Record<IDType, typeof integer<string> | typeof numeric<string> | typeof uuid<string> | typeof varchar>;
4
+ //# sourceMappingURL=parentIDColumnMap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parentIDColumnMap.d.ts","sourceRoot":"","sources":["../../../src/postgres/schema/parentIDColumnMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAErE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,eAAO,MAAM,iBAAiB,EAAE,MAAM,CACpC,MAAM,EACN,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,OAAO,CAMvF,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { integer, numeric, uuid, varchar } from 'drizzle-orm/pg-core';
2
+ export const parentIDColumnMap = {
3
+ integer,
4
+ numeric,
5
+ uuid,
6
+ varchar
7
+ };
8
+
9
+ //# sourceMappingURL=parentIDColumnMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/postgres/schema/parentIDColumnMap.ts"],"sourcesContent":["import { integer, numeric, uuid, varchar } from 'drizzle-orm/pg-core'\n\nimport type { IDType } from '../types.js'\n\nexport const parentIDColumnMap: Record<\n IDType,\n typeof integer<string> | typeof numeric<string> | typeof uuid<string> | typeof varchar\n> = {\n integer,\n numeric,\n uuid,\n varchar,\n}\n"],"names":["integer","numeric","uuid","varchar","parentIDColumnMap"],"mappings":"AAAA,SAASA,OAAO,EAAEC,OAAO,EAAEC,IAAI,EAAEC,OAAO,QAAQ,sBAAqB;AAIrE,OAAO,MAAMC,oBAGT;IACFJ;IACAC;IACAC;IACAC;AACF,EAAC"}
@@ -0,0 +1,11 @@
1
+ import type { PgColumnBuilder } from 'drizzle-orm/pg-core';
2
+ import { type Field } from 'payload';
3
+ import type { BasePostgresAdapter, IDType } from '../types.js';
4
+ type Args = {
5
+ adapter: BasePostgresAdapter;
6
+ columns: Record<string, PgColumnBuilder>;
7
+ fields: Field[];
8
+ };
9
+ export declare const setColumnID: ({ adapter, columns, fields }: Args) => IDType;
10
+ export {};
11
+ //# sourceMappingURL=setColumnID.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setColumnID.d.ts","sourceRoot":"","sources":["../../../src/postgres/schema/setColumnID.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAG1D,OAAO,EAAE,KAAK,KAAK,EAAyB,MAAM,SAAS,CAAA;AAG3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAE9D,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,mBAAmB,CAAA;IAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IACxC,MAAM,EAAE,KAAK,EAAE,CAAA;CAChB,CAAA;AACD,eAAO,MAAM,WAAW,iCAAkC,IAAI,KAAG,MAuBhE,CAAA"}
@@ -0,0 +1,24 @@
1
+ import { numeric, serial, uuid, varchar } from 'drizzle-orm/pg-core';
2
+ import { flattenTopLevelFields } from 'payload';
3
+ import { fieldAffectsData } from 'payload/shared';
4
+ export const setColumnID = ({ adapter, columns, fields })=>{
5
+ const idField = flattenTopLevelFields(fields).find((field)=>fieldAffectsData(field) && field.name === 'id');
6
+ if (idField) {
7
+ if (idField.type === 'number') {
8
+ columns.id = numeric('id').primaryKey();
9
+ return 'numeric';
10
+ }
11
+ if (idField.type === 'text') {
12
+ columns.id = varchar('id').primaryKey();
13
+ return 'varchar';
14
+ }
15
+ }
16
+ if (adapter.idType === 'uuid') {
17
+ columns.id = uuid('id').defaultRandom().primaryKey();
18
+ return 'uuid';
19
+ }
20
+ columns.id = serial('id').primaryKey();
21
+ return 'integer';
22
+ };
23
+
24
+ //# sourceMappingURL=setColumnID.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/postgres/schema/setColumnID.ts"],"sourcesContent":["import type { PgColumnBuilder } from 'drizzle-orm/pg-core'\n\nimport { numeric, serial, uuid, varchar } from 'drizzle-orm/pg-core'\nimport { type Field, flattenTopLevelFields } from 'payload'\nimport { fieldAffectsData } from 'payload/shared'\n\nimport type { BasePostgresAdapter, IDType } from '../types.js'\n\ntype Args = {\n adapter: BasePostgresAdapter\n columns: Record<string, PgColumnBuilder>\n fields: Field[]\n}\nexport const setColumnID = ({ adapter, columns, fields }: Args): IDType => {\n const idField = flattenTopLevelFields(fields).find(\n (field) => fieldAffectsData(field) && field.name === 'id',\n )\n if (idField) {\n if (idField.type === 'number') {\n columns.id = numeric('id').primaryKey()\n return 'numeric'\n }\n\n if (idField.type === 'text') {\n columns.id = varchar('id').primaryKey()\n return 'varchar'\n }\n }\n\n if (adapter.idType === 'uuid') {\n columns.id = uuid('id').defaultRandom().primaryKey()\n return 'uuid'\n }\n\n columns.id = serial('id').primaryKey()\n return 'integer'\n}\n"],"names":["numeric","serial","uuid","varchar","flattenTopLevelFields","fieldAffectsData","setColumnID","adapter","columns","fields","idField","find","field","name","type","id","primaryKey","idType","defaultRandom"],"mappings":"AAEA,SAASA,OAAO,EAAEC,MAAM,EAAEC,IAAI,EAAEC,OAAO,QAAQ,sBAAqB;AACpE,SAAqBC,qBAAqB,QAAQ,UAAS;AAC3D,SAASC,gBAAgB,QAAQ,iBAAgB;AASjD,OAAO,MAAMC,cAAc,CAAC,EAAEC,OAAO,EAAEC,OAAO,EAAEC,MAAM,EAAQ;IAC5D,MAAMC,UAAUN,sBAAsBK,QAAQE,IAAI,CAChD,CAACC,QAAUP,iBAAiBO,UAAUA,MAAMC,IAAI,KAAK;IAEvD,IAAIH,SAAS;QACX,IAAIA,QAAQI,IAAI,KAAK,UAAU;YAC7BN,QAAQO,EAAE,GAAGf,QAAQ,MAAMgB,UAAU;YACrC,OAAO;QACT;QAEA,IAAIN,QAAQI,IAAI,KAAK,QAAQ;YAC3BN,QAAQO,EAAE,GAAGZ,QAAQ,MAAMa,UAAU;YACrC,OAAO;QACT;IACF;IAEA,IAAIT,QAAQU,MAAM,KAAK,QAAQ;QAC7BT,QAAQO,EAAE,GAAGb,KAAK,MAAMgB,aAAa,GAAGF,UAAU;QAClD,OAAO;IACT;IAEAR,QAAQO,EAAE,GAAGd,OAAO,MAAMe,UAAU;IACpC,OAAO;AACT,EAAC"}
@@ -0,0 +1,40 @@
1
+ import type { IndexBuilder, PgColumnBuilder } from 'drizzle-orm/pg-core';
2
+ import type { Field, TabAsField } from 'payload';
3
+ import type { BasePostgresAdapter, GenericColumns, RelationMap } from '../types.js';
4
+ type Args = {
5
+ adapter: BasePostgresAdapter;
6
+ columnPrefix?: string;
7
+ columns: Record<string, PgColumnBuilder>;
8
+ disableNotNull: boolean;
9
+ disableUnique?: boolean;
10
+ fieldPrefix?: string;
11
+ fields: (Field | TabAsField)[];
12
+ forceLocalized?: boolean;
13
+ indexes: Record<string, (cols: GenericColumns) => IndexBuilder>;
14
+ localesColumns: Record<string, PgColumnBuilder>;
15
+ localesIndexes: Record<string, (cols: GenericColumns) => IndexBuilder>;
16
+ newTableName: string;
17
+ parentTableName: string;
18
+ relationships: Set<string>;
19
+ relationsToBuild: RelationMap;
20
+ rootRelationsToBuild?: RelationMap;
21
+ rootTableIDColType: string;
22
+ rootTableName: string;
23
+ versions: boolean;
24
+ /**
25
+ * Tracks whether or not this table is built
26
+ * from the result of a localized array or block field at some point
27
+ */
28
+ withinLocalizedArrayOrBlock?: boolean;
29
+ };
30
+ type Result = {
31
+ hasLocalizedField: boolean;
32
+ hasLocalizedManyNumberField: boolean;
33
+ hasLocalizedManyTextField: boolean;
34
+ hasLocalizedRelationshipField: boolean;
35
+ hasManyNumberField: 'index' | boolean;
36
+ hasManyTextField: 'index' | boolean;
37
+ };
38
+ export declare const traverseFields: ({ adapter, columnPrefix, columns, disableNotNull, disableUnique, fieldPrefix, fields, forceLocalized, indexes, localesColumns, localesIndexes, newTableName, parentTableName, relationships, relationsToBuild, rootRelationsToBuild, rootTableIDColType, rootTableName, versions, withinLocalizedArrayOrBlock, }: Args) => Result;
39
+ export {};
40
+ //# sourceMappingURL=traverseFields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../src/postgres/schema/traverseFields.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACxE,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAqBhD,OAAO,KAAK,EAEV,mBAAmB,EACnB,cAAc,EAEd,WAAW,EACZ,MAAM,aAAa,CAAA;AAWpB,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,mBAAmB,CAAA;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IACxC,cAAc,EAAE,OAAO,CAAA;IACvB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE,CAAA;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,YAAY,CAAC,CAAA;IAC/D,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IAC/C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,YAAY,CAAC,CAAA;IACtE,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,gBAAgB,EAAE,WAAW,CAAA;IAC7B,oBAAoB,CAAC,EAAE,WAAW,CAAA;IAClC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,OAAO,CAAA;IACjB;;;OAGG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAA;CACtC,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,iBAAiB,EAAE,OAAO,CAAA;IAC1B,2BAA2B,EAAE,OAAO,CAAA;IACpC,yBAAyB,EAAE,OAAO,CAAA;IAClC,6BAA6B,EAAE,OAAO,CAAA;IACtC,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAAA;IACrC,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,cAAc,qTAqBxB,IAAI,KAAG,MA2zBT,CAAA"}