@coursebuilder/adapter-drizzle 2.1.1 → 3.0.0-canary.0.1de808999

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 (329) hide show
  1. package/dist/chunk-2CTSX6SR.js +145 -0
  2. package/dist/chunk-2M2XM4EQ.js +397 -0
  3. package/dist/chunk-2TFZWYLS.js +263 -0
  4. package/dist/chunk-3TRWZHL3.js +243 -0
  5. package/dist/chunk-4N2ECEUV.js +69 -0
  6. package/dist/{chunk-F56AI52P.js → chunk-63MYTNFA.js} +3 -3
  7. package/dist/{chunk-SIZFEXIS.js → chunk-6MRFUIH5.js} +2 -2
  8. package/dist/chunk-6WHKVXPL.js +109 -0
  9. package/dist/{chunk-WMCZWSAG.js → chunk-6YPHJWS2.js} +2 -2
  10. package/dist/{chunk-7FBSP3VD.js → chunk-AQKB7NUY.js} +4 -4
  11. package/dist/{chunk-PJORQUQP.js → chunk-BD3J6TQ5.js} +3 -3
  12. package/dist/{chunk-5NNBQJUP.js → chunk-BLDW3QUS.js} +2 -2
  13. package/dist/chunk-CN5LXLHU.js +252 -0
  14. package/dist/{chunk-M3WM5Q7W.js → chunk-CXNZM7MC.js} +3 -3
  15. package/dist/{chunk-DNBW5D64.js → chunk-DKJO4Y3K.js} +2 -2
  16. package/dist/chunk-DXAZKOCF.js +173 -0
  17. package/dist/{chunk-QKFITIXC.js → chunk-EHRARBRS.js} +2 -2
  18. package/dist/{chunk-CCXVDMTA.js → chunk-ET3QAIY7.js} +2 -2
  19. package/dist/chunk-H5REZLWW.js +63 -0
  20. package/dist/chunk-H736K5TN.js +7 -0
  21. package/dist/{chunk-WWBSNLRC.js → chunk-HJNM3PFW.js} +3 -3
  22. package/dist/chunk-JNPUM2MI.js +156 -0
  23. package/dist/{chunk-2I7NIOKI.js → chunk-KPBVZ44W.js} +2 -2
  24. package/dist/{chunk-OUJPUONP.js → chunk-LERR6HQ3.js} +2 -2
  25. package/dist/chunk-LSWGCJWO.js +328 -0
  26. package/dist/{chunk-UWUDJCJM.js → chunk-LZHZDFNZ.js} +2 -2
  27. package/dist/{chunk-PMCOC5PM.js → chunk-MGZMGDQ5.js} +2 -2
  28. package/dist/chunk-MINB3V5K.js +237 -0
  29. package/dist/{chunk-6SJORFGN.js → chunk-MP4CUWYC.js} +2 -2
  30. package/dist/{chunk-EZEQQJNH.js → chunk-MWYKBCT2.js} +3 -3
  31. package/dist/{chunk-SOOAUY4E.js → chunk-OCUEDXGE.js} +3 -3
  32. package/dist/{chunk-OFZECDCQ.js → chunk-ORRM7KVW.js} +2 -2
  33. package/dist/chunk-OWBFASNN.js +18 -0
  34. package/dist/chunk-P6G7UV6U.js +139 -0
  35. package/dist/{chunk-PNPTKVJ4.js → chunk-QGSAYLPA.js} +32 -23
  36. package/dist/chunk-QZ54UPHQ.js +300 -0
  37. package/dist/{chunk-NON5CXDH.js → chunk-RKGBBEVO.js} +2 -2
  38. package/dist/chunk-TCZZ6OTH.js +20 -0
  39. package/dist/{chunk-KIQLUFJX.js → chunk-U3YWHQZO.js} +3 -3
  40. package/dist/chunk-UKCW6T74.js +146 -0
  41. package/dist/chunk-UP5SZ5I4.js +55 -0
  42. package/dist/chunk-W5UWIWMA.js +74 -0
  43. package/dist/{chunk-65H5Y4PD.js → chunk-WJWJ6E5Y.js} +2 -2
  44. package/dist/chunk-WLL6VIPA.js +248 -0
  45. package/dist/chunk-XM6ULED3.js +210 -0
  46. package/dist/{chunk-2AW5KYAK.js → chunk-XYWXGVIK.js} +3 -3
  47. package/dist/{chunk-AP5HBIV4.js → chunk-Y7JBZEE3.js} +3 -3
  48. package/dist/chunk-YQS2KPYC.js +249 -0
  49. package/dist/chunk-ZDYVAW2C.js +133 -0
  50. package/dist/index.d.ts +5 -11
  51. package/dist/index.js +51 -29
  52. package/dist/lib/mysql/cms-resource-actions.cjs +15 -4490
  53. package/dist/lib/mysql/cms-resource-actions.cjs.map +1 -1
  54. package/dist/lib/mysql/cms-resource-actions.d.cts +8 -38
  55. package/dist/lib/mysql/cms-resource-actions.d.ts +8 -38
  56. package/dist/lib/mysql/cms-resource-actions.js +2 -2
  57. package/dist/lib/mysql/context.cjs +3380 -0
  58. package/dist/lib/mysql/context.cjs.map +1 -0
  59. package/dist/lib/mysql/context.d.cts +15 -0
  60. package/dist/lib/mysql/context.d.ts +15 -0
  61. package/dist/lib/mysql/context.js +34 -0
  62. package/dist/lib/mysql/context.js.map +1 -0
  63. package/dist/lib/mysql/index.cjs +3340 -12980
  64. package/dist/lib/mysql/index.cjs.map +1 -1
  65. package/dist/lib/mysql/index.d.cts +24 -14300
  66. package/dist/lib/mysql/index.d.ts +24 -14300
  67. package/dist/lib/mysql/index.js +54 -31
  68. package/dist/lib/mysql/ports/auth-storage.cjs +84 -0
  69. package/dist/lib/mysql/ports/auth-storage.cjs.map +1 -0
  70. package/dist/lib/mysql/ports/auth-storage.d.cts +22 -0
  71. package/dist/lib/mysql/ports/auth-storage.d.ts +22 -0
  72. package/dist/lib/mysql/ports/auth-storage.js +8 -0
  73. package/dist/lib/mysql/ports/auth-storage.js.map +1 -0
  74. package/dist/lib/mysql/ports/catalog.cjs +428 -0
  75. package/dist/lib/mysql/ports/catalog.cjs.map +1 -0
  76. package/dist/lib/mysql/ports/catalog.d.cts +24 -0
  77. package/dist/lib/mysql/ports/catalog.d.ts +24 -0
  78. package/dist/lib/mysql/ports/catalog.js +8 -0
  79. package/dist/lib/mysql/ports/catalog.js.map +1 -0
  80. package/dist/lib/mysql/ports/content-resource.cjs +321 -0
  81. package/dist/lib/mysql/ports/content-resource.cjs.map +1 -0
  82. package/dist/lib/mysql/ports/content-resource.d.cts +23 -0
  83. package/dist/lib/mysql/ports/content-resource.d.ts +23 -0
  84. package/dist/lib/mysql/ports/content-resource.js +8 -0
  85. package/dist/lib/mysql/ports/content-resource.js.map +1 -0
  86. package/dist/lib/mysql/ports/coupon.cjs +264 -0
  87. package/dist/lib/mysql/ports/coupon.cjs.map +1 -0
  88. package/dist/lib/mysql/ports/coupon.d.cts +22 -0
  89. package/dist/lib/mysql/ports/coupon.d.ts +22 -0
  90. package/dist/lib/mysql/ports/coupon.js +8 -0
  91. package/dist/lib/mysql/ports/coupon.js.map +1 -0
  92. package/dist/lib/mysql/ports/entitlement.cjs +90 -0
  93. package/dist/lib/mysql/ports/entitlement.cjs.map +1 -0
  94. package/dist/lib/mysql/ports/entitlement.d.cts +22 -0
  95. package/dist/lib/mysql/ports/entitlement.d.ts +22 -0
  96. package/dist/lib/mysql/ports/entitlement.js +8 -0
  97. package/dist/lib/mysql/ports/entitlement.js.map +1 -0
  98. package/dist/lib/mysql/ports/identity.cjs +154 -0
  99. package/dist/lib/mysql/ports/identity.cjs.map +1 -0
  100. package/dist/lib/mysql/ports/identity.d.cts +22 -0
  101. package/dist/lib/mysql/ports/identity.d.ts +22 -0
  102. package/dist/lib/mysql/ports/identity.js +8 -0
  103. package/dist/lib/mysql/ports/identity.js.map +1 -0
  104. package/dist/lib/mysql/ports/merchant.cjs +194 -0
  105. package/dist/lib/mysql/ports/merchant.cjs.map +1 -0
  106. package/dist/lib/mysql/ports/merchant.d.cts +22 -0
  107. package/dist/lib/mysql/ports/merchant.d.ts +22 -0
  108. package/dist/lib/mysql/ports/merchant.js +8 -0
  109. package/dist/lib/mysql/ports/merchant.js.map +1 -0
  110. package/dist/lib/mysql/ports/organization.cjs +166 -0
  111. package/dist/lib/mysql/ports/organization.cjs.map +1 -0
  112. package/dist/lib/mysql/ports/organization.d.cts +22 -0
  113. package/dist/lib/mysql/ports/organization.d.ts +22 -0
  114. package/dist/lib/mysql/ports/organization.js +8 -0
  115. package/dist/lib/mysql/ports/organization.js.map +1 -0
  116. package/dist/lib/mysql/ports/progress.cjs +284 -0
  117. package/dist/lib/mysql/ports/progress.cjs.map +1 -0
  118. package/dist/lib/mysql/ports/progress.d.cts +22 -0
  119. package/dist/lib/mysql/ports/progress.d.ts +22 -0
  120. package/dist/lib/mysql/ports/progress.js +8 -0
  121. package/dist/lib/mysql/ports/progress.js.map +1 -0
  122. package/dist/lib/mysql/ports/purchase.cjs +349 -0
  123. package/dist/lib/mysql/ports/purchase.cjs.map +1 -0
  124. package/dist/lib/mysql/ports/purchase.d.cts +23 -0
  125. package/dist/lib/mysql/ports/purchase.d.ts +23 -0
  126. package/dist/lib/mysql/ports/purchase.js +8 -0
  127. package/dist/lib/mysql/ports/purchase.js.map +1 -0
  128. package/dist/lib/mysql/ports/subscription.cjs +76 -0
  129. package/dist/lib/mysql/ports/subscription.cjs.map +1 -0
  130. package/dist/lib/mysql/ports/subscription.d.cts +22 -0
  131. package/dist/lib/mysql/ports/subscription.d.ts +22 -0
  132. package/dist/lib/mysql/ports/subscription.js +8 -0
  133. package/dist/lib/mysql/ports/subscription.js.map +1 -0
  134. package/dist/lib/mysql/schema.cjs +3373 -0
  135. package/dist/lib/mysql/schema.cjs.map +1 -0
  136. package/dist/lib/mysql/schema.d.cts +14385 -0
  137. package/dist/lib/mysql/schema.d.ts +14385 -0
  138. package/dist/lib/mysql/schema.js +35 -0
  139. package/dist/lib/mysql/schema.js.map +1 -0
  140. package/dist/lib/mysql/schemas/auth/accounts.cjs.map +1 -1
  141. package/dist/lib/mysql/schemas/auth/accounts.js +12 -12
  142. package/dist/lib/mysql/schemas/auth/device-access-token.cjs.map +1 -1
  143. package/dist/lib/mysql/schemas/auth/device-access-token.js +13 -13
  144. package/dist/lib/mysql/schemas/auth/device-verification.cjs.map +1 -1
  145. package/dist/lib/mysql/schemas/auth/device-verification.js +13 -13
  146. package/dist/lib/mysql/schemas/auth/permissions.js +2 -2
  147. package/dist/lib/mysql/schemas/auth/personal-access-token.cjs.map +1 -1
  148. package/dist/lib/mysql/schemas/auth/personal-access-token.js +13 -13
  149. package/dist/lib/mysql/schemas/auth/profiles.cjs.map +1 -1
  150. package/dist/lib/mysql/schemas/auth/profiles.js +12 -12
  151. package/dist/lib/mysql/schemas/auth/role-permissions.cjs.map +1 -1
  152. package/dist/lib/mysql/schemas/auth/role-permissions.js +13 -13
  153. package/dist/lib/mysql/schemas/auth/roles.cjs.map +1 -1
  154. package/dist/lib/mysql/schemas/auth/roles.js +12 -12
  155. package/dist/lib/mysql/schemas/auth/sessions.cjs.map +1 -1
  156. package/dist/lib/mysql/schemas/auth/sessions.js +13 -13
  157. package/dist/lib/mysql/schemas/auth/user-permissions.cjs.map +1 -1
  158. package/dist/lib/mysql/schemas/auth/user-permissions.js +12 -12
  159. package/dist/lib/mysql/schemas/auth/user-prefs.cjs.map +1 -1
  160. package/dist/lib/mysql/schemas/auth/user-prefs.js +12 -12
  161. package/dist/lib/mysql/schemas/auth/user-roles.cjs.map +1 -1
  162. package/dist/lib/mysql/schemas/auth/user-roles.js +12 -12
  163. package/dist/lib/mysql/schemas/auth/users.cjs +5 -1
  164. package/dist/lib/mysql/schemas/auth/users.cjs.map +1 -1
  165. package/dist/lib/mysql/schemas/auth/users.js +12 -12
  166. package/dist/lib/mysql/schemas/auth/verification-tokens.js +2 -2
  167. package/dist/lib/mysql/schemas/commerce/coupon.cjs.map +1 -1
  168. package/dist/lib/mysql/schemas/commerce/coupon.js +12 -12
  169. package/dist/lib/mysql/schemas/commerce/merchant-account.js +2 -2
  170. package/dist/lib/mysql/schemas/commerce/merchant-charge.cjs.map +1 -1
  171. package/dist/lib/mysql/schemas/commerce/merchant-charge.js +12 -12
  172. package/dist/lib/mysql/schemas/commerce/merchant-coupon.js +2 -2
  173. package/dist/lib/mysql/schemas/commerce/merchant-customer.js +2 -2
  174. package/dist/lib/mysql/schemas/commerce/merchant-events.js +3 -3
  175. package/dist/lib/mysql/schemas/commerce/merchant-price.js +2 -2
  176. package/dist/lib/mysql/schemas/commerce/merchant-product.js +2 -2
  177. package/dist/lib/mysql/schemas/commerce/merchant-session.js +2 -2
  178. package/dist/lib/mysql/schemas/commerce/merchant-subscription.cjs.map +1 -1
  179. package/dist/lib/mysql/schemas/commerce/merchant-subscription.js +12 -12
  180. package/dist/lib/mysql/schemas/commerce/price.cjs.map +1 -1
  181. package/dist/lib/mysql/schemas/commerce/price.js +12 -12
  182. package/dist/lib/mysql/schemas/commerce/product.cjs.map +1 -1
  183. package/dist/lib/mysql/schemas/commerce/product.js +12 -12
  184. package/dist/lib/mysql/schemas/commerce/purchase-user-transfer.cjs.map +1 -1
  185. package/dist/lib/mysql/schemas/commerce/purchase-user-transfer.js +13 -13
  186. package/dist/lib/mysql/schemas/commerce/purchase.cjs +11 -2
  187. package/dist/lib/mysql/schemas/commerce/purchase.cjs.map +1 -1
  188. package/dist/lib/mysql/schemas/commerce/purchase.js +12 -12
  189. package/dist/lib/mysql/schemas/commerce/subscription.cjs +6 -1
  190. package/dist/lib/mysql/schemas/commerce/subscription.cjs.map +1 -1
  191. package/dist/lib/mysql/schemas/commerce/subscription.js +12 -12
  192. package/dist/lib/mysql/schemas/commerce/upgradable-products.cjs.map +1 -1
  193. package/dist/lib/mysql/schemas/commerce/upgradable-products.js +13 -13
  194. package/dist/lib/mysql/schemas/communication/comment.cjs +5 -1
  195. package/dist/lib/mysql/schemas/communication/comment.cjs.map +1 -1
  196. package/dist/lib/mysql/schemas/communication/comment.js +12 -12
  197. package/dist/lib/mysql/schemas/communication/communication-channel.js +2 -2
  198. package/dist/lib/mysql/schemas/communication/communication-preference-types.js +2 -2
  199. package/dist/lib/mysql/schemas/communication/communication-preferences.cjs +5 -1
  200. package/dist/lib/mysql/schemas/communication/communication-preferences.cjs.map +1 -1
  201. package/dist/lib/mysql/schemas/communication/communication-preferences.js +12 -12
  202. package/dist/lib/mysql/schemas/communication/question-response.cjs.map +1 -1
  203. package/dist/lib/mysql/schemas/communication/question-response.js +13 -13
  204. package/dist/lib/mysql/schemas/content/content-contributions.cjs +5 -1
  205. package/dist/lib/mysql/schemas/content/content-contributions.cjs.map +1 -1
  206. package/dist/lib/mysql/schemas/content/content-contributions.js +12 -12
  207. package/dist/lib/mysql/schemas/content/content-resource-product.cjs.map +1 -1
  208. package/dist/lib/mysql/schemas/content/content-resource-product.js +12 -12
  209. package/dist/lib/mysql/schemas/content/content-resource-resource.cjs.map +1 -1
  210. package/dist/lib/mysql/schemas/content/content-resource-resource.js +12 -12
  211. package/dist/lib/mysql/schemas/content/content-resource-tag.cjs.map +1 -1
  212. package/dist/lib/mysql/schemas/content/content-resource-tag.js +12 -12
  213. package/dist/lib/mysql/schemas/content/content-resource-version.cjs.map +1 -1
  214. package/dist/lib/mysql/schemas/content/content-resource-version.js +12 -12
  215. package/dist/lib/mysql/schemas/content/content-resource.cjs +5 -1
  216. package/dist/lib/mysql/schemas/content/content-resource.cjs.map +1 -1
  217. package/dist/lib/mysql/schemas/content/content-resource.js +12 -12
  218. package/dist/lib/mysql/schemas/content/contribution-types.js +2 -2
  219. package/dist/lib/mysql/schemas/content/lesson-progress.js +2 -2
  220. package/dist/lib/mysql/schemas/content/resource-progress.js +2 -2
  221. package/dist/lib/mysql/schemas/content/tag-tag.cjs.map +1 -1
  222. package/dist/lib/mysql/schemas/content/tag-tag.js +12 -12
  223. package/dist/lib/mysql/schemas/content/tag.cjs.map +1 -1
  224. package/dist/lib/mysql/schemas/content/tag.js +12 -12
  225. package/dist/lib/mysql/schemas/entitlements/entitlement-type.js +2 -2
  226. package/dist/lib/mysql/schemas/entitlements/entitlement.cjs +11 -2
  227. package/dist/lib/mysql/schemas/entitlements/entitlement.cjs.map +1 -1
  228. package/dist/lib/mysql/schemas/entitlements/entitlement.js +13 -13
  229. package/dist/lib/mysql/schemas/org/organization-membership-roles.cjs +11 -2
  230. package/dist/lib/mysql/schemas/org/organization-membership-roles.cjs.map +1 -1
  231. package/dist/lib/mysql/schemas/org/organization-membership-roles.js +12 -12
  232. package/dist/lib/mysql/schemas/org/organization-memberships.cjs +11 -2
  233. package/dist/lib/mysql/schemas/org/organization-memberships.cjs.map +1 -1
  234. package/dist/lib/mysql/schemas/org/organization-memberships.d.cts +16 -0
  235. package/dist/lib/mysql/schemas/org/organization-memberships.d.ts +16 -0
  236. package/dist/lib/mysql/schemas/org/organization-memberships.js +12 -12
  237. package/dist/lib/mysql/schemas/org/organizations.cjs +11 -2
  238. package/dist/lib/mysql/schemas/org/organizations.cjs.map +1 -1
  239. package/dist/lib/mysql/schemas/org/organizations.d.cts +16 -0
  240. package/dist/lib/mysql/schemas/org/organizations.d.ts +16 -0
  241. package/dist/lib/mysql/schemas/org/organizations.js +12 -12
  242. package/dist/lib/mysql/utils.js +1 -1
  243. package/dist/lib/mysql/workflows/content-resource-workflow-utils.cjs +40 -0
  244. package/dist/lib/mysql/workflows/content-resource-workflow-utils.cjs.map +1 -0
  245. package/dist/lib/mysql/workflows/content-resource-workflow-utils.d.cts +4 -0
  246. package/dist/lib/mysql/workflows/content-resource-workflow-utils.d.ts +4 -0
  247. package/dist/lib/mysql/workflows/content-resource-workflow-utils.js +10 -0
  248. package/dist/lib/mysql/workflows/content-resource-workflow-utils.js.map +1 -0
  249. package/dist/lib/mysql/workflows/create-cohort.cjs +184 -0
  250. package/dist/lib/mysql/workflows/create-cohort.cjs.map +1 -0
  251. package/dist/lib/mysql/workflows/create-cohort.d.cts +24 -0
  252. package/dist/lib/mysql/workflows/create-cohort.d.ts +24 -0
  253. package/dist/lib/mysql/workflows/create-cohort.js +9 -0
  254. package/dist/lib/mysql/workflows/create-cohort.js.map +1 -0
  255. package/dist/lib/mysql/workflows/create-event-series.cjs +283 -0
  256. package/dist/lib/mysql/workflows/create-event-series.cjs.map +1 -0
  257. package/dist/lib/mysql/workflows/create-event-series.d.cts +24 -0
  258. package/dist/lib/mysql/workflows/create-event-series.d.ts +24 -0
  259. package/dist/lib/mysql/workflows/create-event-series.js +9 -0
  260. package/dist/lib/mysql/workflows/create-event-series.js.map +1 -0
  261. package/dist/lib/mysql/workflows/create-event.cjs +194 -0
  262. package/dist/lib/mysql/workflows/create-event.cjs.map +1 -0
  263. package/dist/lib/mysql/workflows/create-event.d.cts +24 -0
  264. package/dist/lib/mysql/workflows/create-event.d.ts +24 -0
  265. package/dist/lib/mysql/workflows/create-event.js +9 -0
  266. package/dist/lib/mysql/workflows/create-event.js.map +1 -0
  267. package/dist/lib/mysql/workflows/create-merchant-charge-and-purchase.cjs +231 -0
  268. package/dist/lib/mysql/workflows/create-merchant-charge-and-purchase.cjs.map +1 -0
  269. package/dist/lib/mysql/workflows/create-merchant-charge-and-purchase.d.cts +22 -0
  270. package/dist/lib/mysql/workflows/create-merchant-charge-and-purchase.d.ts +22 -0
  271. package/dist/lib/mysql/workflows/create-merchant-charge-and-purchase.js +8 -0
  272. package/dist/lib/mysql/workflows/create-merchant-charge-and-purchase.js.map +1 -0
  273. package/dist/lib/mysql/workflows/create-workshop.cjs +286 -0
  274. package/dist/lib/mysql/workflows/create-workshop.cjs.map +1 -0
  275. package/dist/lib/mysql/workflows/create-workshop.d.cts +24 -0
  276. package/dist/lib/mysql/workflows/create-workshop.d.ts +24 -0
  277. package/dist/lib/mysql/workflows/create-workshop.js +9 -0
  278. package/dist/lib/mysql/workflows/create-workshop.js.map +1 -0
  279. package/dist/lib/mysql/workflows/redeem-full-price-coupon.cjs +130 -0
  280. package/dist/lib/mysql/workflows/redeem-full-price-coupon.cjs.map +1 -0
  281. package/dist/lib/mysql/workflows/redeem-full-price-coupon.d.cts +24 -0
  282. package/dist/lib/mysql/workflows/redeem-full-price-coupon.d.ts +24 -0
  283. package/dist/lib/mysql/workflows/redeem-full-price-coupon.js +8 -0
  284. package/dist/lib/mysql/workflows/redeem-full-price-coupon.js.map +1 -0
  285. package/dist/lib/mysql/workflows/transfer-purchase-to-user.cjs +95 -0
  286. package/dist/lib/mysql/workflows/transfer-purchase-to-user.cjs.map +1 -0
  287. package/dist/lib/mysql/workflows/transfer-purchase-to-user.d.cts +30 -0
  288. package/dist/lib/mysql/workflows/transfer-purchase-to-user.d.ts +30 -0
  289. package/dist/lib/mysql/workflows/transfer-purchase-to-user.js +8 -0
  290. package/dist/lib/mysql/workflows/transfer-purchase-to-user.js.map +1 -0
  291. package/dist/lib/utils.d.cts +1 -10
  292. package/dist/lib/utils.d.ts +1 -10
  293. package/dist/lib/utils.js +1 -1
  294. package/dist/types.d.ts +14 -0
  295. package/dist/types.js +1 -0
  296. package/package.json +10 -6
  297. package/src/index.ts +3 -2
  298. package/src/lib/mysql/context.ts +20 -0
  299. package/src/lib/mysql/index.ts +118 -4873
  300. package/src/lib/mysql/ports/auth-storage.ts +139 -0
  301. package/src/lib/mysql/ports/catalog.ts +610 -0
  302. package/src/lib/mysql/ports/content-resource.ts +442 -0
  303. package/src/lib/mysql/ports/coupon.ts +387 -0
  304. package/src/lib/mysql/ports/entitlement.ts +96 -0
  305. package/src/lib/mysql/ports/identity.ts +160 -0
  306. package/src/lib/mysql/ports/merchant.ts +274 -0
  307. package/src/lib/mysql/ports/organization.ts +216 -0
  308. package/src/lib/mysql/ports/progress.ts +366 -0
  309. package/src/lib/mysql/ports/purchase.ts +517 -0
  310. package/src/lib/mysql/ports/subscription.ts +93 -0
  311. package/src/lib/mysql/schema.ts +374 -0
  312. package/src/lib/mysql/schemas/org/organization-memberships.ts +7 -0
  313. package/src/lib/mysql/schemas/org/organizations.ts +8 -0
  314. package/src/lib/mysql/workflows/content-resource-workflow-utils.ts +22 -0
  315. package/src/lib/mysql/workflows/create-cohort.ts +239 -0
  316. package/src/lib/mysql/workflows/create-event-series.ts +384 -0
  317. package/src/lib/mysql/workflows/create-event.ts +232 -0
  318. package/src/lib/mysql/workflows/create-merchant-charge-and-purchase.ts +365 -0
  319. package/src/lib/mysql/workflows/create-workshop.ts +372 -0
  320. package/src/lib/mysql/workflows/redeem-full-price-coupon.ts +179 -0
  321. package/src/lib/mysql/workflows/transfer-purchase-to-user.ts +142 -0
  322. package/src/types.ts +33 -0
  323. package/dist/authjs.d.ts +0 -27
  324. package/dist/authjs.js +0 -1
  325. package/dist/chunk-2X5XVNDN.js +0 -12
  326. package/dist/chunk-62VSIVME.js +0 -4714
  327. package/dist/chunk-RVXF3JZ7.js +0 -8732
  328. package/dist/chunk-WEJL5OFI.js +0 -8732
  329. package/src/authjs.ts +0 -34
@@ -0,0 +1,63 @@
1
+ import {
2
+ __name
3
+ } from "./chunk-H736K5TN.js";
4
+
5
+ // src/lib/mysql/ports/auth-storage.ts
6
+ import { addSeconds, isAfter } from "date-fns";
7
+ import { and, eq } from "drizzle-orm";
8
+ function createAuthStoragePort({ client, tables }) {
9
+ const { accounts, sessions, users, verificationTokens } = tables;
10
+ return {
11
+ createSession: async (data) => {
12
+ await client.insert(sessions).values(data);
13
+ return await client.select().from(sessions).where(eq(sessions.sessionToken, data.sessionToken)).then((res) => res[0]);
14
+ },
15
+ getSessionAndUser: async (data) => {
16
+ return await client.select({
17
+ session: sessions,
18
+ user: users
19
+ }).from(sessions).where(eq(sessions.sessionToken, data)).innerJoin(users, eq(users.id, sessions.userId)).then((res) => res[0]) ?? null;
20
+ },
21
+ updateSession: async (data) => {
22
+ await client.update(sessions).set(data).where(eq(sessions.sessionToken, data.sessionToken));
23
+ return await client.select().from(sessions).where(eq(sessions.sessionToken, data.sessionToken)).then((res) => res[0]);
24
+ },
25
+ deleteSession: async (sessionToken) => {
26
+ const session = await client.select().from(sessions).where(eq(sessions.sessionToken, sessionToken)).then((res) => res[0]) ?? null;
27
+ await client.delete(sessions).where(eq(sessions.sessionToken, sessionToken));
28
+ return session;
29
+ },
30
+ useVerificationToken: async (token) => {
31
+ try {
32
+ const deletedToken = await client.select().from(verificationTokens).where(and(eq(verificationTokens.identifier, token.identifier), eq(verificationTokens.token, token.token))).then((res) => res[0]) ?? null;
33
+ if (deletedToken?.createdAt) {
34
+ const TIMEOUT_IN_SECONDS = 90;
35
+ const expireMultipleClicks = addSeconds(deletedToken.createdAt, TIMEOUT_IN_SECONDS);
36
+ const now = /* @__PURE__ */ new Date();
37
+ if (isAfter(expireMultipleClicks, now)) {
38
+ const { id: _, ...verificationToken } = token;
39
+ return deletedToken;
40
+ }
41
+ await client.delete(verificationTokens).where(and(eq(verificationTokens.identifier, token.identifier), eq(verificationTokens.token, token.token)));
42
+ return deletedToken;
43
+ }
44
+ return deletedToken;
45
+ } catch (err) {
46
+ throw new Error("No verification token found.");
47
+ }
48
+ },
49
+ deleteUser: async (id) => {
50
+ const user = await client.select().from(users).where(eq(users.id, id)).then((res) => res[0] ?? null);
51
+ await client.delete(users).where(eq(users.id, id));
52
+ await client.delete(sessions).where(eq(sessions.userId, id));
53
+ await client.delete(accounts).where(eq(accounts.userId, id));
54
+ return user;
55
+ }
56
+ };
57
+ }
58
+ __name(createAuthStoragePort, "createAuthStoragePort");
59
+
60
+ export {
61
+ createAuthStoragePort
62
+ };
63
+ //# sourceMappingURL=chunk-H5REZLWW.js.map
@@ -0,0 +1,7 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+
4
+ export {
5
+ __name
6
+ };
7
+ //# sourceMappingURL=chunk-H736K5TN.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  getUsersSchema
3
- } from "./chunk-PNPTKVJ4.js";
3
+ } from "./chunk-QGSAYLPA.js";
4
4
  import {
5
5
  __name
6
- } from "./chunk-2X5XVNDN.js";
6
+ } from "./chunk-H736K5TN.js";
7
7
 
8
8
  // src/lib/mysql/schemas/auth/device-verification.ts
9
9
  import { relations, sql } from "drizzle-orm";
@@ -60,4 +60,4 @@ export {
60
60
  getDeviceVerificationSchema,
61
61
  getDeviceVerificationRelationsSchema
62
62
  };
63
- //# sourceMappingURL=chunk-WWBSNLRC.js.map
63
+ //# sourceMappingURL=chunk-HJNM3PFW.js.map
@@ -0,0 +1,156 @@
1
+ import {
2
+ guid,
3
+ normalizeExpirationDate
4
+ } from "./chunk-OWBFASNN.js";
5
+ import {
6
+ __name
7
+ } from "./chunk-H736K5TN.js";
8
+
9
+ // src/lib/mysql/workflows/create-event.ts
10
+ import slugify from "@sindresorhus/slugify";
11
+ import { ContentResourceSchema } from "@coursebuilder/core/schemas/content-resource-schema";
12
+ import { logger as baseLogger } from "@coursebuilder/utils/logger";
13
+ var logger = baseLogger;
14
+ function createEventWorkflow({ client, tables }, operations) {
15
+ const { contentResource, contentResourceTag } = tables;
16
+ return {
17
+ async createEvent(input, userId) {
18
+ const hash = guid();
19
+ const newEventId = slugify(`${input.type}~${hash}`);
20
+ const newEvent = {
21
+ id: newEventId,
22
+ type: "event",
23
+ fields: {
24
+ title: input.fields.title,
25
+ state: "draft",
26
+ visibility: "public",
27
+ slug: slugify(`${input.fields.title}~${hash}`),
28
+ description: input.fields.description,
29
+ startsAt: input.fields.startsAt,
30
+ endsAt: input.fields.endsAt
31
+ },
32
+ createdById: userId
33
+ };
34
+ await client.insert(contentResource).values(newEvent);
35
+ const event = await operations.getEvent(newEventId, {
36
+ withResources: true,
37
+ withTags: true,
38
+ withProducts: true,
39
+ withPricing: true
40
+ });
41
+ const parsedEvent = ContentResourceSchema.safeParse(event);
42
+ if (!parsedEvent.success) {
43
+ logger.error(new Error("Error parsing event resource"));
44
+ throw new Error("Error parsing event resource");
45
+ }
46
+ if (input.fields.price && input.fields.price > 0) {
47
+ try {
48
+ const product = await operations.createProduct({
49
+ name: input.fields.title,
50
+ price: input.fields.price,
51
+ quantityAvailable: input.fields.quantity ?? -1,
52
+ type: "live",
53
+ state: "published",
54
+ visibility: "public"
55
+ });
56
+ if (product) {
57
+ const resourceProduct = await operations.addResourceToProduct({
58
+ resource: parsedEvent.data,
59
+ productId: product.id,
60
+ userId
61
+ });
62
+ if (!resourceProduct) {
63
+ logger.error(new Error("Failed to add resource to product"));
64
+ logger.debug("event.addResourceToProduct.failed", {
65
+ eventId: newEventId,
66
+ productId: product.id,
67
+ userId
68
+ });
69
+ } else {
70
+ logger.debug("event.addResourceToProduct.success", {
71
+ eventId: newEventId,
72
+ productId: product.id,
73
+ userId
74
+ });
75
+ }
76
+ if (input.coupon?.enabled && input.coupon.percentageDiscount && input.coupon.expires) {
77
+ try {
78
+ const finalExpires = normalizeExpirationDate(input.coupon.expires);
79
+ const couponInput = {
80
+ quantity: "1",
81
+ maxUses: -1,
82
+ expires: finalExpires || null,
83
+ restrictedToProductId: product.id,
84
+ percentageDiscount: input.coupon.percentageDiscount,
85
+ status: 1,
86
+ default: true,
87
+ fields: {
88
+ bypassSoldOut: false
89
+ }
90
+ };
91
+ await operations.createCoupon(couponInput);
92
+ logger.debug("event.create.coupon.success", {
93
+ eventId: newEventId,
94
+ productId: product.id,
95
+ userId,
96
+ percentageDiscount: input.coupon.percentageDiscount
97
+ });
98
+ } catch (couponError) {
99
+ logger.error(new Error(`Failed to create coupon for event: ${couponError}`));
100
+ logger.debug("event.create.coupon.failed", {
101
+ eventId: newEventId,
102
+ productId: product.id,
103
+ userId
104
+ });
105
+ }
106
+ }
107
+ } else {
108
+ logger.error(new Error("Failed to create product"));
109
+ logger.debug("event.create.product.failed", {
110
+ eventId: newEventId,
111
+ userId,
112
+ price: input.fields.price
113
+ });
114
+ }
115
+ } catch (error) {
116
+ logger.error(new Error(`Error creating and associating product: ${error}`));
117
+ logger.debug("event.create.product.failed", {
118
+ eventId: newEventId,
119
+ userId,
120
+ price: input.fields.price
121
+ });
122
+ }
123
+ }
124
+ if (input.fields.tagIds) {
125
+ try {
126
+ await client.insert(contentResourceTag).values(input.fields.tagIds.map((tag) => ({
127
+ contentResourceId: newEventId,
128
+ tagId: tag.id,
129
+ createdAt: /* @__PURE__ */ new Date(),
130
+ updatedAt: /* @__PURE__ */ new Date(),
131
+ position: 0
132
+ })));
133
+ logger.debug("event.create.tags.success", {
134
+ eventId: newEventId,
135
+ userId,
136
+ tagIds: input.fields.tagIds
137
+ });
138
+ } catch (error) {
139
+ logger.error(new Error(`Error associating tags with event: ${error}`));
140
+ logger.debug("event.create.tags.failed", {
141
+ eventId: newEventId,
142
+ userId,
143
+ tagIds: input.fields.tagIds
144
+ });
145
+ }
146
+ }
147
+ return parsedEvent.data;
148
+ }
149
+ };
150
+ }
151
+ __name(createEventWorkflow, "createEventWorkflow");
152
+
153
+ export {
154
+ createEventWorkflow
155
+ };
156
+ //# sourceMappingURL=chunk-JNPUM2MI.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  __name
3
- } from "./chunk-2X5XVNDN.js";
3
+ } from "./chunk-H736K5TN.js";
4
4
 
5
5
  // src/lib/mysql/schemas/commerce/merchant-product.ts
6
6
  import { sql } from "drizzle-orm";
@@ -45,4 +45,4 @@ __name(getMerchantProductSchema, "getMerchantProductSchema");
45
45
  export {
46
46
  getMerchantProductSchema
47
47
  };
48
- //# sourceMappingURL=chunk-2I7NIOKI.js.map
48
+ //# sourceMappingURL=chunk-KPBVZ44W.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  __name
3
- } from "./chunk-2X5XVNDN.js";
3
+ } from "./chunk-H736K5TN.js";
4
4
 
5
5
  // src/lib/mysql/schemas/auth/verification-tokens.ts
6
6
  import { primaryKey, timestamp, varchar } from "drizzle-orm/mysql-core";
@@ -33,4 +33,4 @@ __name(getVerificationTokensSchema, "getVerificationTokensSchema");
33
33
  export {
34
34
  getVerificationTokensSchema
35
35
  };
36
- //# sourceMappingURL=chunk-OUJPUONP.js.map
36
+ //# sourceMappingURL=chunk-LERR6HQ3.js.map
@@ -0,0 +1,328 @@
1
+ import {
2
+ __name
3
+ } from "./chunk-H736K5TN.js";
4
+
5
+ // src/lib/mysql/ports/purchase.ts
6
+ import { and, asc, eq, inArray, isNull, not, or } from "drizzle-orm";
7
+ import { v4 } from "uuid";
8
+ import { z } from "zod";
9
+ import { merchantChargeSchema, purchaseSchema, purchaseUserTransferSchema, upgradableProductSchema, userSchema } from "@coursebuilder/core/schemas";
10
+ import { logger as baseLogger } from "@coursebuilder/utils/logger";
11
+ var logger = baseLogger;
12
+ function toError(error) {
13
+ return error instanceof Error ? error : new Error(String(error));
14
+ }
15
+ __name(toError, "toError");
16
+ function createPurchasePort({ client, tables }) {
17
+ const { purchases: purchaseTable, purchaseUserTransfer, merchantCharge, merchantCustomer, merchantSession, upgradableProducts } = tables;
18
+ const purchasePort = {
19
+ createPurchaseTransfer: async (options) => {
20
+ const id = `put_${v4()}`;
21
+ await client.insert(purchaseUserTransfer).values({
22
+ id,
23
+ purchaseId: options.purchaseId,
24
+ sourceUserId: options.sourceUserId,
25
+ expiresAt: options.expiresAt
26
+ });
27
+ },
28
+ getExistingNonBulkValidPurchasesOfProduct: async ({ userId, productId }) => {
29
+ const existingPurchases = await client.query.purchases.findMany({
30
+ where: and(eq(purchaseTable.userId, userId), productId ? eq(purchaseTable.productId, productId) : void 0, eq(purchaseTable.status, "Valid"), isNull(purchaseTable.bulkCouponId))
31
+ });
32
+ return z.array(purchaseSchema).parse(existingPurchases);
33
+ },
34
+ async getPurchasesForBulkCouponId(bulkCouponId) {
35
+ return z.array(purchaseSchema.extend({
36
+ user: userSchema
37
+ })).parse(await client.query.purchases.findMany({
38
+ where: eq(purchaseTable.bulkCouponId, bulkCouponId),
39
+ with: {
40
+ user: true
41
+ }
42
+ }));
43
+ },
44
+ async getPurchaseCountForProduct(productId) {
45
+ return await client.query.purchases.findMany({
46
+ where: and(eq(purchaseTable.productId, productId), inArray(purchaseTable.status, [
47
+ "Valid",
48
+ "Restricted"
49
+ ]))
50
+ }).then((res) => res.length);
51
+ },
52
+ async getPurchase(purchaseId) {
53
+ const purchase = await client.query.purchases.findFirst({
54
+ where: eq(purchaseTable.id, purchaseId)
55
+ });
56
+ return purchase ? purchaseSchema.parse(purchase) : null;
57
+ },
58
+ async createPurchase(options) {
59
+ const newPurchaseId = options.id || `purchase-${v4()}`;
60
+ await client.insert(purchaseTable).values({
61
+ ...options,
62
+ id: newPurchaseId
63
+ });
64
+ const newPurchase = await purchasePort.getPurchase(newPurchaseId);
65
+ return purchaseSchema.parse(newPurchase);
66
+ },
67
+ async getPurchaseForStripeCharge(stripeChargeId) {
68
+ logger.debug("getPurchaseForStripeCharge", {
69
+ stripeChargeId
70
+ });
71
+ const chargeForPurchase = merchantChargeSchema.nullable().parse(await client.query.merchantCharge.findFirst({
72
+ where: eq(merchantCharge.identifier, stripeChargeId)
73
+ }) || null);
74
+ if (!chargeForPurchase) {
75
+ logger.debug("getPurchaseForStripeCharge: no matching charge", {
76
+ stripeChargeId,
77
+ idPrefix: stripeChargeId?.substring(0, 3)
78
+ });
79
+ return null;
80
+ }
81
+ const purchase = purchaseSchema.safeParse(await client.query.purchases.findFirst({
82
+ where: eq(purchaseTable.merchantChargeId, chargeForPurchase.id),
83
+ with: {
84
+ user: true,
85
+ product: true,
86
+ bulkCoupon: true
87
+ }
88
+ }));
89
+ if (!purchase.success) {
90
+ return null;
91
+ }
92
+ return purchase.data;
93
+ },
94
+ async getPurchaseByCheckoutSessionId(checkoutSessionId) {
95
+ logger.debug("getPurchaseByCheckoutSessionId", {
96
+ checkoutSessionId
97
+ });
98
+ const session = await client.query.merchantSession.findFirst({
99
+ where: eq(merchantSession.identifier, checkoutSessionId)
100
+ });
101
+ if (!session) {
102
+ logger.debug("getPurchaseByCheckoutSessionId: no matching session", {
103
+ checkoutSessionId
104
+ });
105
+ return null;
106
+ }
107
+ const purchase = purchaseSchema.safeParse(await client.query.purchases.findFirst({
108
+ where: eq(purchaseTable.merchantSessionId, String(session.id)),
109
+ with: {
110
+ user: true,
111
+ product: true,
112
+ bulkCoupon: true
113
+ }
114
+ }));
115
+ if (!purchase.success) {
116
+ return null;
117
+ }
118
+ return purchase.data;
119
+ },
120
+ async getPurchaseUserTransferById(options) {
121
+ const purchaseTransferData = await client.query.purchaseUserTransfer.findFirst({
122
+ where: eq(purchaseUserTransfer.id, options.id),
123
+ with: {
124
+ sourceUser: true,
125
+ targetUser: true,
126
+ purchase: true
127
+ }
128
+ });
129
+ return purchaseUserTransferSchema.merge(z.object({
130
+ sourceUser: userSchema,
131
+ targetUser: userSchema.nullable(),
132
+ purchase: purchaseSchema,
133
+ organizationId: z.string().nullable()
134
+ })).nullable().parse(purchaseTransferData);
135
+ },
136
+ async getPurchaseWithUser(purchaseId) {
137
+ const purchaseData = await client.query.purchases.findFirst({
138
+ where: eq(purchaseTable.id, purchaseId),
139
+ with: {
140
+ user: true
141
+ }
142
+ }) || null;
143
+ const parsedPurchase = purchaseSchema.merge(z.object({
144
+ user: userSchema
145
+ })).nullable().safeParse(purchaseData);
146
+ if (!parsedPurchase.success) {
147
+ logger.error(parsedPurchase.error, {
148
+ event: "adapter.purchase.parse_failed",
149
+ purchaseId
150
+ });
151
+ return null;
152
+ }
153
+ return parsedPurchase.data;
154
+ },
155
+ async getPurchasesForUser(userId) {
156
+ if (!userId) {
157
+ return [];
158
+ }
159
+ const visiblePurchaseStates = [
160
+ "Valid",
161
+ "Refunded",
162
+ "Restricted"
163
+ ];
164
+ const userPurchases = await client.query.purchases.findMany({
165
+ where: and(eq(purchaseTable.userId, userId), inArray(purchaseTable.status, visiblePurchaseStates)),
166
+ with: {
167
+ user: true,
168
+ product: true,
169
+ bulkCoupon: true
170
+ },
171
+ orderBy: asc(purchaseTable.createdAt)
172
+ });
173
+ const parsedPurchases = z.array(purchaseSchema).safeParse(userPurchases);
174
+ if (!parsedPurchases.success) {
175
+ logger.error(parsedPurchases.error, {
176
+ event: "adapter.purchase.list.parse_failed",
177
+ purchaseCount: userPurchases.length,
178
+ userId
179
+ });
180
+ return [];
181
+ }
182
+ return parsedPurchases.data;
183
+ },
184
+ async getPurchaseDetails(purchaseId, userId) {
185
+ const visiblePurchaseStates = [
186
+ "Valid",
187
+ "Refunded",
188
+ "Restricted"
189
+ ];
190
+ const userPurchases = await client.query.purchases.findMany({
191
+ where: and(eq(purchaseTable.userId, userId), inArray(purchaseTable.status, visiblePurchaseStates)),
192
+ with: {
193
+ user: true,
194
+ product: true,
195
+ bulkCoupon: true
196
+ },
197
+ orderBy: asc(purchaseTable.createdAt)
198
+ });
199
+ const parsedPurchases = z.array(purchaseSchema).safeParse(userPurchases);
200
+ const allPurchases = parsedPurchases.success ? parsedPurchases.data : [];
201
+ const thePurchase = await client.query.purchases.findFirst({
202
+ where: and(eq(purchaseTable.id, purchaseId), eq(purchaseTable.userId, userId)),
203
+ with: {
204
+ user: true,
205
+ product: true,
206
+ bulkCoupon: true
207
+ }
208
+ });
209
+ const parsedPurchase = purchaseSchema.safeParse(thePurchase);
210
+ if (!parsedPurchase.success) {
211
+ logger.error(parsedPurchase.error, {
212
+ event: "adapter.purchase.details.parse_failed",
213
+ purchaseId,
214
+ userId
215
+ });
216
+ return {
217
+ availableUpgrades: []
218
+ };
219
+ }
220
+ const purchaseCanUpgrade = [
221
+ "Valid",
222
+ "Restricted"
223
+ ].includes(parsedPurchase.data.state || "");
224
+ let availableUpgrades = [];
225
+ if (purchaseCanUpgrade) {
226
+ availableUpgrades = await client.query.upgradableProducts.findMany({
227
+ where: and(eq(upgradableProducts.upgradableFromId, parsedPurchase.data.product?.id), not(inArray(upgradableProducts.upgradableToId, allPurchases.map((p) => p.product?.id)))),
228
+ with: {
229
+ upgradableTo: true,
230
+ upgradableFrom: true
231
+ }
232
+ });
233
+ }
234
+ const existingPurchase = purchaseSchema.optional().nullable().parse(await client.query.purchases.findFirst({
235
+ where: and(eq(purchaseTable.userId, userId), eq(purchaseTable.productId, parsedPurchase.data.productId), inArray(purchaseTable.status, [
236
+ "Valid",
237
+ "Restricted"
238
+ ]), isNull(purchaseTable.bulkCouponId), not(eq(purchaseTable.id, parsedPurchase.data.id))),
239
+ with: {
240
+ user: true,
241
+ product: true,
242
+ bulkCoupon: true
243
+ }
244
+ }) || null);
245
+ return {
246
+ availableUpgrades: z.array(upgradableProductSchema).parse(availableUpgrades),
247
+ existingPurchase,
248
+ purchase: parsedPurchase.data
249
+ };
250
+ },
251
+ async transferPurchasesToNewUser(options) {
252
+ await client.transaction(async (trx) => {
253
+ const charges = await trx.select({
254
+ id: merchantCharge.id
255
+ }).from(merchantCharge).where(eq(merchantCharge.merchantCustomerId, options.merchantCustomerId));
256
+ const chargeIds = charges.map(({ id }) => id);
257
+ if (chargeIds.length > 0) {
258
+ await trx.update(purchaseTable).set({
259
+ userId: options.userId
260
+ }).where(inArray(purchaseTable.merchantChargeId, chargeIds));
261
+ await trx.update(merchantCharge).set({
262
+ userId: options.userId
263
+ }).where(inArray(merchantCharge.id, chargeIds));
264
+ }
265
+ await trx.update(merchantCustomer).set({
266
+ userId: options.userId
267
+ }).where(eq(merchantCustomer.id, options.merchantCustomerId));
268
+ });
269
+ },
270
+ async updatePurchaseStatusForCharge(chargeId, status) {
271
+ try {
272
+ logger.debug("adapter.purchase.status_update.started", {
273
+ chargeId,
274
+ status
275
+ });
276
+ const merchantChargeForPurchase = await client.query.merchantCharge.findFirst({
277
+ where: or(eq(merchantCharge.identifier, chargeId), eq(merchantCharge.id, chargeId))
278
+ });
279
+ logger.debug("adapter.purchase.status_update.charge_resolved", {
280
+ chargeId,
281
+ merchantChargeId: merchantChargeForPurchase?.id ?? null,
282
+ merchantChargeIdentifier: merchantChargeForPurchase?.identifier ?? null
283
+ });
284
+ const parsedMerchantChargeForPurchase = merchantChargeSchema.parse(merchantChargeForPurchase);
285
+ if (!parsedMerchantChargeForPurchase)
286
+ throw new Error(`no-charge-found-for-purchase ${chargeId}`);
287
+ const purchase = await client.query.purchases.findFirst({
288
+ where: eq(purchaseTable.merchantChargeId, parsedMerchantChargeForPurchase.id)
289
+ });
290
+ const parsedPurchase = purchaseSchema.nullable().parse(purchase);
291
+ if (parsedPurchase) {
292
+ await client.update(purchaseTable).set({
293
+ status
294
+ }).where(eq(purchaseTable.id, parsedPurchase.id));
295
+ const newPurchase = await client.query.purchases.findFirst({
296
+ where: eq(purchaseTable.id, parsedPurchase.id)
297
+ });
298
+ return purchaseSchema.optional().parse(newPurchase);
299
+ } else {
300
+ throw new Error(`no-purchase-found-for-charge ${chargeId}`);
301
+ }
302
+ } catch (e) {
303
+ logger.error(toError(e), {
304
+ chargeId,
305
+ event: "adapter.purchase.status_update.failed",
306
+ status
307
+ });
308
+ throw e;
309
+ }
310
+ },
311
+ async updatePurchaseUserTransferTransferState(options) {
312
+ await client.update(purchaseUserTransfer).set({
313
+ transferState: options.transferState
314
+ }).where(eq(purchaseUserTransfer.id, options.id));
315
+ const purchaseUserTransferData = await client.query.purchaseUserTransfer.findFirst({
316
+ where: eq(purchaseUserTransfer.id, options.id)
317
+ }) || null;
318
+ return purchaseUserTransferSchema.nullable().parse(purchaseUserTransferData);
319
+ }
320
+ };
321
+ return purchasePort;
322
+ }
323
+ __name(createPurchasePort, "createPurchasePort");
324
+
325
+ export {
326
+ createPurchasePort
327
+ };
328
+ //# sourceMappingURL=chunk-LSWGCJWO.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  __name
3
- } from "./chunk-2X5XVNDN.js";
3
+ } from "./chunk-H736K5TN.js";
4
4
 
5
5
  // src/lib/mysql/schemas/auth/permissions.ts
6
6
  import { relations } from "drizzle-orm";
@@ -41,4 +41,4 @@ export {
41
41
  getPermissionsSchema,
42
42
  getPermissionsRelationsSchema
43
43
  };
44
- //# sourceMappingURL=chunk-UWUDJCJM.js.map
44
+ //# sourceMappingURL=chunk-LZHZDFNZ.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  __name
3
- } from "./chunk-2X5XVNDN.js";
3
+ } from "./chunk-H736K5TN.js";
4
4
 
5
5
  // src/lib/mysql/schemas/commerce/merchant-price.ts
6
6
  import { sql } from "drizzle-orm";
@@ -48,4 +48,4 @@ __name(getMerchantPriceSchema, "getMerchantPriceSchema");
48
48
  export {
49
49
  getMerchantPriceSchema
50
50
  };
51
- //# sourceMappingURL=chunk-PMCOC5PM.js.map
51
+ //# sourceMappingURL=chunk-MGZMGDQ5.js.map