@coursebuilder/adapter-drizzle 2.1.0 → 3.0.0-canary.0.0c9beb2ae

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 (307) hide show
  1. package/dist/{chunk-KIQLUFJX.js → chunk-2GW3BJE2.js} +2 -2
  2. package/dist/{chunk-M3WM5Q7W.js → chunk-33ZN7FN7.js} +2 -2
  3. package/dist/chunk-4VZJQAPV.js +74 -0
  4. package/dist/chunk-5FLS4ZBX.js +109 -0
  5. package/dist/chunk-5YR5M22S.js +147 -0
  6. package/dist/chunk-6XQ6C3IX.js +18 -0
  7. package/dist/chunk-AIDM2CH6.js +146 -0
  8. package/dist/chunk-ALTODDUX.js +173 -0
  9. package/dist/chunk-AZY2VRAE.js +63 -0
  10. package/dist/chunk-BS7T27VL.js +239 -0
  11. package/dist/chunk-CN3FCRLR.js +55 -0
  12. package/dist/chunk-EAXC4CQD.js +245 -0
  13. package/dist/chunk-EDDG2YFS.js +249 -0
  14. package/dist/chunk-EDKWCMA7.js +210 -0
  15. package/dist/{chunk-CFSRMUNC.js → chunk-EDM6DKA5.js} +2 -2
  16. package/dist/{chunk-EZEQQJNH.js → chunk-EIQBTF5J.js} +2 -2
  17. package/dist/chunk-FYT7RTVW.js +248 -0
  18. package/dist/{chunk-DUFH5L2F.js → chunk-INZTF6QV.js} +2 -2
  19. package/dist/{chunk-3AF6MZQ7.js → chunk-JVHX4JHA.js} +2 -2
  20. package/dist/chunk-LWEKWDLC.js +300 -0
  21. package/dist/chunk-OJPEBGGE.js +139 -0
  22. package/dist/chunk-QKOSV34V.js +16268 -0
  23. package/dist/chunk-QO3QE3LE.js +330 -0
  24. package/dist/chunk-QQKNNFFB.js +399 -0
  25. package/dist/chunk-RBHCV3UW.js +20 -0
  26. package/dist/chunk-TNH2C27F.js +252 -0
  27. package/dist/chunk-TNWNW666.js +133 -0
  28. package/dist/chunk-VBEXYQ6L.js +156 -0
  29. package/dist/chunk-W3ILNMLD.js +265 -0
  30. package/dist/chunk-WJ2ZUXL3.js +71 -0
  31. package/dist/{chunk-4SWTV7Z3.js → chunk-WUMDFFN3.js} +2 -2
  32. package/dist/{chunk-FJGNLVE4.js → chunk-X7DRYXB7.js} +2 -2
  33. package/dist/{chunk-PNPTKVJ4.js → chunk-XUBZKYH6.js} +24 -15
  34. package/dist/{chunk-MYG6PCE3.js → chunk-ZY4AFKUQ.js} +2 -2
  35. package/dist/index.d.ts +5 -11
  36. package/dist/index.js +42 -19
  37. package/dist/lib/mysql/cms-resource-actions.cjs +15932 -4129
  38. package/dist/lib/mysql/cms-resource-actions.cjs.map +1 -1
  39. package/dist/lib/mysql/cms-resource-actions.d.cts +10 -25
  40. package/dist/lib/mysql/cms-resource-actions.d.ts +10 -25
  41. package/dist/lib/mysql/cms-resource-actions.js +2 -1
  42. package/dist/lib/mysql/context.cjs +3380 -0
  43. package/dist/lib/mysql/context.cjs.map +1 -0
  44. package/dist/lib/mysql/context.d.cts +15 -0
  45. package/dist/lib/mysql/context.d.ts +15 -0
  46. package/dist/lib/mysql/context.js +34 -0
  47. package/dist/lib/mysql/context.js.map +1 -0
  48. package/dist/lib/mysql/index.cjs +21648 -15013
  49. package/dist/lib/mysql/index.cjs.map +1 -1
  50. package/dist/lib/mysql/index.d.cts +24 -14300
  51. package/dist/lib/mysql/index.d.ts +24 -14300
  52. package/dist/lib/mysql/index.js +47 -23
  53. package/dist/lib/mysql/ports/auth-storage.cjs +84 -0
  54. package/dist/lib/mysql/ports/auth-storage.cjs.map +1 -0
  55. package/dist/lib/mysql/ports/auth-storage.d.cts +22 -0
  56. package/dist/lib/mysql/ports/auth-storage.d.ts +22 -0
  57. package/dist/lib/mysql/ports/auth-storage.js +8 -0
  58. package/dist/lib/mysql/ports/auth-storage.js.map +1 -0
  59. package/dist/lib/mysql/ports/catalog.cjs +16688 -0
  60. package/dist/lib/mysql/ports/catalog.cjs.map +1 -0
  61. package/dist/lib/mysql/ports/catalog.d.cts +24 -0
  62. package/dist/lib/mysql/ports/catalog.d.ts +24 -0
  63. package/dist/lib/mysql/ports/catalog.js +9 -0
  64. package/dist/lib/mysql/ports/catalog.js.map +1 -0
  65. package/dist/lib/mysql/ports/content-resource.cjs +321 -0
  66. package/dist/lib/mysql/ports/content-resource.cjs.map +1 -0
  67. package/dist/lib/mysql/ports/content-resource.d.cts +23 -0
  68. package/dist/lib/mysql/ports/content-resource.d.ts +23 -0
  69. package/dist/lib/mysql/ports/content-resource.js +8 -0
  70. package/dist/lib/mysql/ports/content-resource.js.map +1 -0
  71. package/dist/lib/mysql/ports/coupon.cjs +16524 -0
  72. package/dist/lib/mysql/ports/coupon.cjs.map +1 -0
  73. package/dist/lib/mysql/ports/coupon.d.cts +22 -0
  74. package/dist/lib/mysql/ports/coupon.d.ts +22 -0
  75. package/dist/lib/mysql/ports/coupon.js +9 -0
  76. package/dist/lib/mysql/ports/coupon.js.map +1 -0
  77. package/dist/lib/mysql/ports/entitlement.cjs +16350 -0
  78. package/dist/lib/mysql/ports/entitlement.cjs.map +1 -0
  79. package/dist/lib/mysql/ports/entitlement.d.cts +22 -0
  80. package/dist/lib/mysql/ports/entitlement.d.ts +22 -0
  81. package/dist/lib/mysql/ports/entitlement.js +9 -0
  82. package/dist/lib/mysql/ports/entitlement.js.map +1 -0
  83. package/dist/lib/mysql/ports/identity.cjs +154 -0
  84. package/dist/lib/mysql/ports/identity.cjs.map +1 -0
  85. package/dist/lib/mysql/ports/identity.d.cts +22 -0
  86. package/dist/lib/mysql/ports/identity.d.ts +22 -0
  87. package/dist/lib/mysql/ports/identity.js +8 -0
  88. package/dist/lib/mysql/ports/identity.js.map +1 -0
  89. package/dist/lib/mysql/ports/merchant.cjs +194 -0
  90. package/dist/lib/mysql/ports/merchant.cjs.map +1 -0
  91. package/dist/lib/mysql/ports/merchant.d.cts +22 -0
  92. package/dist/lib/mysql/ports/merchant.d.ts +22 -0
  93. package/dist/lib/mysql/ports/merchant.js +8 -0
  94. package/dist/lib/mysql/ports/merchant.js.map +1 -0
  95. package/dist/lib/mysql/ports/organization.cjs +16426 -0
  96. package/dist/lib/mysql/ports/organization.cjs.map +1 -0
  97. package/dist/lib/mysql/ports/organization.d.cts +22 -0
  98. package/dist/lib/mysql/ports/organization.d.ts +22 -0
  99. package/dist/lib/mysql/ports/organization.js +9 -0
  100. package/dist/lib/mysql/ports/organization.js.map +1 -0
  101. package/dist/lib/mysql/ports/progress.cjs +16544 -0
  102. package/dist/lib/mysql/ports/progress.cjs.map +1 -0
  103. package/dist/lib/mysql/ports/progress.d.cts +22 -0
  104. package/dist/lib/mysql/ports/progress.d.ts +22 -0
  105. package/dist/lib/mysql/ports/progress.js +9 -0
  106. package/dist/lib/mysql/ports/progress.js.map +1 -0
  107. package/dist/lib/mysql/ports/purchase.cjs +16609 -0
  108. package/dist/lib/mysql/ports/purchase.cjs.map +1 -0
  109. package/dist/lib/mysql/ports/purchase.d.cts +23 -0
  110. package/dist/lib/mysql/ports/purchase.d.ts +23 -0
  111. package/dist/lib/mysql/ports/purchase.js +9 -0
  112. package/dist/lib/mysql/ports/purchase.js.map +1 -0
  113. package/dist/lib/mysql/ports/subscription.cjs +76 -0
  114. package/dist/lib/mysql/ports/subscription.cjs.map +1 -0
  115. package/dist/lib/mysql/ports/subscription.d.cts +22 -0
  116. package/dist/lib/mysql/ports/subscription.d.ts +22 -0
  117. package/dist/lib/mysql/ports/subscription.js +8 -0
  118. package/dist/lib/mysql/ports/subscription.js.map +1 -0
  119. package/dist/lib/mysql/schema.cjs +3373 -0
  120. package/dist/lib/mysql/schema.cjs.map +1 -0
  121. package/dist/lib/mysql/schema.d.cts +14385 -0
  122. package/dist/lib/mysql/schema.d.ts +14385 -0
  123. package/dist/lib/mysql/schema.js +35 -0
  124. package/dist/lib/mysql/schema.js.map +1 -0
  125. package/dist/lib/mysql/schemas/auth/accounts.cjs.map +1 -1
  126. package/dist/lib/mysql/schemas/auth/accounts.js +6 -6
  127. package/dist/lib/mysql/schemas/auth/device-access-token.cjs.map +1 -1
  128. package/dist/lib/mysql/schemas/auth/device-access-token.js +7 -7
  129. package/dist/lib/mysql/schemas/auth/device-verification.cjs.map +1 -1
  130. package/dist/lib/mysql/schemas/auth/device-verification.js +7 -7
  131. package/dist/lib/mysql/schemas/auth/personal-access-token.cjs.map +1 -1
  132. package/dist/lib/mysql/schemas/auth/personal-access-token.js +7 -7
  133. package/dist/lib/mysql/schemas/auth/profiles.cjs.map +1 -1
  134. package/dist/lib/mysql/schemas/auth/profiles.js +6 -6
  135. package/dist/lib/mysql/schemas/auth/role-permissions.cjs.map +1 -1
  136. package/dist/lib/mysql/schemas/auth/role-permissions.js +7 -7
  137. package/dist/lib/mysql/schemas/auth/roles.cjs.map +1 -1
  138. package/dist/lib/mysql/schemas/auth/roles.js +6 -6
  139. package/dist/lib/mysql/schemas/auth/sessions.cjs.map +1 -1
  140. package/dist/lib/mysql/schemas/auth/sessions.js +7 -7
  141. package/dist/lib/mysql/schemas/auth/user-permissions.cjs.map +1 -1
  142. package/dist/lib/mysql/schemas/auth/user-permissions.js +6 -6
  143. package/dist/lib/mysql/schemas/auth/user-prefs.cjs.map +1 -1
  144. package/dist/lib/mysql/schemas/auth/user-prefs.js +6 -6
  145. package/dist/lib/mysql/schemas/auth/user-roles.cjs.map +1 -1
  146. package/dist/lib/mysql/schemas/auth/user-roles.js +6 -6
  147. package/dist/lib/mysql/schemas/auth/users.cjs +5 -1
  148. package/dist/lib/mysql/schemas/auth/users.cjs.map +1 -1
  149. package/dist/lib/mysql/schemas/auth/users.js +6 -6
  150. package/dist/lib/mysql/schemas/commerce/coupon.cjs.map +1 -1
  151. package/dist/lib/mysql/schemas/commerce/coupon.js +6 -6
  152. package/dist/lib/mysql/schemas/commerce/merchant-charge.cjs.map +1 -1
  153. package/dist/lib/mysql/schemas/commerce/merchant-charge.js +6 -6
  154. package/dist/lib/mysql/schemas/commerce/merchant-subscription.cjs.map +1 -1
  155. package/dist/lib/mysql/schemas/commerce/merchant-subscription.js +6 -6
  156. package/dist/lib/mysql/schemas/commerce/price.cjs.map +1 -1
  157. package/dist/lib/mysql/schemas/commerce/price.js +6 -6
  158. package/dist/lib/mysql/schemas/commerce/product.cjs.map +1 -1
  159. package/dist/lib/mysql/schemas/commerce/product.js +6 -6
  160. package/dist/lib/mysql/schemas/commerce/purchase-user-transfer.cjs.map +1 -1
  161. package/dist/lib/mysql/schemas/commerce/purchase-user-transfer.js +7 -7
  162. package/dist/lib/mysql/schemas/commerce/purchase.cjs +11 -2
  163. package/dist/lib/mysql/schemas/commerce/purchase.cjs.map +1 -1
  164. package/dist/lib/mysql/schemas/commerce/purchase.js +6 -6
  165. package/dist/lib/mysql/schemas/commerce/subscription.cjs +6 -1
  166. package/dist/lib/mysql/schemas/commerce/subscription.cjs.map +1 -1
  167. package/dist/lib/mysql/schemas/commerce/subscription.js +6 -6
  168. package/dist/lib/mysql/schemas/commerce/upgradable-products.cjs.map +1 -1
  169. package/dist/lib/mysql/schemas/commerce/upgradable-products.js +7 -7
  170. package/dist/lib/mysql/schemas/communication/comment.cjs +5 -1
  171. package/dist/lib/mysql/schemas/communication/comment.cjs.map +1 -1
  172. package/dist/lib/mysql/schemas/communication/comment.js +6 -6
  173. package/dist/lib/mysql/schemas/communication/communication-preferences.cjs +5 -1
  174. package/dist/lib/mysql/schemas/communication/communication-preferences.cjs.map +1 -1
  175. package/dist/lib/mysql/schemas/communication/communication-preferences.js +6 -6
  176. package/dist/lib/mysql/schemas/communication/question-response.cjs.map +1 -1
  177. package/dist/lib/mysql/schemas/communication/question-response.js +7 -7
  178. package/dist/lib/mysql/schemas/content/content-contributions.cjs +5 -1
  179. package/dist/lib/mysql/schemas/content/content-contributions.cjs.map +1 -1
  180. package/dist/lib/mysql/schemas/content/content-contributions.js +6 -6
  181. package/dist/lib/mysql/schemas/content/content-resource-product.cjs.map +1 -1
  182. package/dist/lib/mysql/schemas/content/content-resource-product.js +6 -6
  183. package/dist/lib/mysql/schemas/content/content-resource-resource.cjs.map +1 -1
  184. package/dist/lib/mysql/schemas/content/content-resource-resource.js +6 -6
  185. package/dist/lib/mysql/schemas/content/content-resource-tag.cjs.map +1 -1
  186. package/dist/lib/mysql/schemas/content/content-resource-tag.js +6 -6
  187. package/dist/lib/mysql/schemas/content/content-resource-version.cjs.map +1 -1
  188. package/dist/lib/mysql/schemas/content/content-resource-version.js +6 -6
  189. package/dist/lib/mysql/schemas/content/content-resource.cjs +5 -1
  190. package/dist/lib/mysql/schemas/content/content-resource.cjs.map +1 -1
  191. package/dist/lib/mysql/schemas/content/content-resource.js +6 -6
  192. package/dist/lib/mysql/schemas/content/tag-tag.cjs.map +1 -1
  193. package/dist/lib/mysql/schemas/content/tag-tag.js +6 -6
  194. package/dist/lib/mysql/schemas/content/tag.cjs.map +1 -1
  195. package/dist/lib/mysql/schemas/content/tag.js +6 -6
  196. package/dist/lib/mysql/schemas/entitlements/entitlement.cjs +11 -2
  197. package/dist/lib/mysql/schemas/entitlements/entitlement.cjs.map +1 -1
  198. package/dist/lib/mysql/schemas/entitlements/entitlement.js +7 -7
  199. package/dist/lib/mysql/schemas/org/organization-membership-roles.cjs +11 -2
  200. package/dist/lib/mysql/schemas/org/organization-membership-roles.cjs.map +1 -1
  201. package/dist/lib/mysql/schemas/org/organization-membership-roles.js +6 -6
  202. package/dist/lib/mysql/schemas/org/organization-memberships.cjs +11 -2
  203. package/dist/lib/mysql/schemas/org/organization-memberships.cjs.map +1 -1
  204. package/dist/lib/mysql/schemas/org/organization-memberships.d.cts +16 -0
  205. package/dist/lib/mysql/schemas/org/organization-memberships.d.ts +16 -0
  206. package/dist/lib/mysql/schemas/org/organization-memberships.js +6 -6
  207. package/dist/lib/mysql/schemas/org/organizations.cjs +11 -2
  208. package/dist/lib/mysql/schemas/org/organizations.cjs.map +1 -1
  209. package/dist/lib/mysql/schemas/org/organizations.d.cts +16 -0
  210. package/dist/lib/mysql/schemas/org/organizations.d.ts +16 -0
  211. package/dist/lib/mysql/schemas/org/organizations.js +6 -6
  212. package/dist/lib/mysql/workflows/content-resource-workflow-utils.cjs +40 -0
  213. package/dist/lib/mysql/workflows/content-resource-workflow-utils.cjs.map +1 -0
  214. package/dist/lib/mysql/workflows/content-resource-workflow-utils.d.cts +4 -0
  215. package/dist/lib/mysql/workflows/content-resource-workflow-utils.d.ts +4 -0
  216. package/dist/lib/mysql/workflows/content-resource-workflow-utils.js +10 -0
  217. package/dist/lib/mysql/workflows/content-resource-workflow-utils.js.map +1 -0
  218. package/dist/lib/mysql/workflows/create-cohort.cjs +184 -0
  219. package/dist/lib/mysql/workflows/create-cohort.cjs.map +1 -0
  220. package/dist/lib/mysql/workflows/create-cohort.d.cts +24 -0
  221. package/dist/lib/mysql/workflows/create-cohort.d.ts +24 -0
  222. package/dist/lib/mysql/workflows/create-cohort.js +9 -0
  223. package/dist/lib/mysql/workflows/create-cohort.js.map +1 -0
  224. package/dist/lib/mysql/workflows/create-event-series.cjs +283 -0
  225. package/dist/lib/mysql/workflows/create-event-series.cjs.map +1 -0
  226. package/dist/lib/mysql/workflows/create-event-series.d.cts +24 -0
  227. package/dist/lib/mysql/workflows/create-event-series.d.ts +24 -0
  228. package/dist/lib/mysql/workflows/create-event-series.js +9 -0
  229. package/dist/lib/mysql/workflows/create-event-series.js.map +1 -0
  230. package/dist/lib/mysql/workflows/create-event.cjs +194 -0
  231. package/dist/lib/mysql/workflows/create-event.cjs.map +1 -0
  232. package/dist/lib/mysql/workflows/create-event.d.cts +24 -0
  233. package/dist/lib/mysql/workflows/create-event.d.ts +24 -0
  234. package/dist/lib/mysql/workflows/create-event.js +9 -0
  235. package/dist/lib/mysql/workflows/create-event.js.map +1 -0
  236. package/dist/lib/mysql/workflows/create-merchant-charge-and-purchase.cjs +231 -0
  237. package/dist/lib/mysql/workflows/create-merchant-charge-and-purchase.cjs.map +1 -0
  238. package/dist/lib/mysql/workflows/create-merchant-charge-and-purchase.d.cts +22 -0
  239. package/dist/lib/mysql/workflows/create-merchant-charge-and-purchase.d.ts +22 -0
  240. package/dist/lib/mysql/workflows/create-merchant-charge-and-purchase.js +8 -0
  241. package/dist/lib/mysql/workflows/create-merchant-charge-and-purchase.js.map +1 -0
  242. package/dist/lib/mysql/workflows/create-workshop.cjs +286 -0
  243. package/dist/lib/mysql/workflows/create-workshop.cjs.map +1 -0
  244. package/dist/lib/mysql/workflows/create-workshop.d.cts +24 -0
  245. package/dist/lib/mysql/workflows/create-workshop.d.ts +24 -0
  246. package/dist/lib/mysql/workflows/create-workshop.js +9 -0
  247. package/dist/lib/mysql/workflows/create-workshop.js.map +1 -0
  248. package/dist/lib/mysql/workflows/redeem-full-price-coupon.cjs +130 -0
  249. package/dist/lib/mysql/workflows/redeem-full-price-coupon.cjs.map +1 -0
  250. package/dist/lib/mysql/workflows/redeem-full-price-coupon.d.cts +24 -0
  251. package/dist/lib/mysql/workflows/redeem-full-price-coupon.d.ts +24 -0
  252. package/dist/lib/mysql/workflows/redeem-full-price-coupon.js +8 -0
  253. package/dist/lib/mysql/workflows/redeem-full-price-coupon.js.map +1 -0
  254. package/dist/lib/mysql/workflows/transfer-purchase-to-user.cjs +95 -0
  255. package/dist/lib/mysql/workflows/transfer-purchase-to-user.cjs.map +1 -0
  256. package/dist/lib/mysql/workflows/transfer-purchase-to-user.d.cts +30 -0
  257. package/dist/lib/mysql/workflows/transfer-purchase-to-user.d.ts +30 -0
  258. package/dist/lib/mysql/workflows/transfer-purchase-to-user.js +8 -0
  259. package/dist/lib/mysql/workflows/transfer-purchase-to-user.js.map +1 -0
  260. package/dist/lib/utils.d.cts +1 -10
  261. package/dist/lib/utils.d.ts +1 -10
  262. package/dist/types.d.ts +14 -0
  263. package/dist/types.js +1 -0
  264. package/package.json +9 -5
  265. package/src/index.ts +3 -2
  266. package/src/lib/mysql/cms-resource-actions.ts +37 -0
  267. package/src/lib/mysql/context.ts +20 -0
  268. package/src/lib/mysql/index.ts +118 -4872
  269. package/src/lib/mysql/ports/auth-storage.ts +139 -0
  270. package/src/lib/mysql/ports/catalog.ts +610 -0
  271. package/src/lib/mysql/ports/content-resource.ts +442 -0
  272. package/src/lib/mysql/ports/coupon.ts +387 -0
  273. package/src/lib/mysql/ports/entitlement.ts +96 -0
  274. package/src/lib/mysql/ports/identity.ts +160 -0
  275. package/src/lib/mysql/ports/merchant.ts +274 -0
  276. package/src/lib/mysql/ports/organization.ts +216 -0
  277. package/src/lib/mysql/ports/progress.ts +366 -0
  278. package/src/lib/mysql/ports/purchase.ts +517 -0
  279. package/src/lib/mysql/ports/subscription.ts +93 -0
  280. package/src/lib/mysql/schema.ts +374 -0
  281. package/src/lib/mysql/schemas/org/organization-memberships.ts +7 -0
  282. package/src/lib/mysql/schemas/org/organizations.ts +8 -0
  283. package/src/lib/mysql/workflows/content-resource-workflow-utils.ts +22 -0
  284. package/src/lib/mysql/workflows/create-cohort.ts +239 -0
  285. package/src/lib/mysql/workflows/create-event-series.ts +384 -0
  286. package/src/lib/mysql/workflows/create-event.ts +232 -0
  287. package/src/lib/mysql/workflows/create-merchant-charge-and-purchase.ts +365 -0
  288. package/src/lib/mysql/workflows/create-workshop.ts +372 -0
  289. package/src/lib/mysql/workflows/redeem-full-price-coupon.ts +179 -0
  290. package/src/lib/mysql/workflows/transfer-purchase-to-user.ts +142 -0
  291. package/src/types.ts +33 -0
  292. package/dist/authjs.d.ts +0 -27
  293. package/dist/authjs.js +0 -1
  294. package/dist/chunk-25RKHMRM.js +0 -8729
  295. package/dist/chunk-2AW5KYAK.js +0 -101
  296. package/dist/chunk-3EF5ZXLG.js +0 -101
  297. package/dist/chunk-7FBSP3VD.js +0 -78
  298. package/dist/chunk-AP5HBIV4.js +0 -112
  299. package/dist/chunk-F56AI52P.js +0 -49
  300. package/dist/chunk-HAQZSRJL.js +0 -4696
  301. package/dist/chunk-I2U5PTWN.js +0 -79
  302. package/dist/chunk-IBQGXFEX.js +0 -8729
  303. package/dist/chunk-PJORQUQP.js +0 -58
  304. package/dist/chunk-W6RPAAKG.js +0 -2144
  305. package/dist/chunk-WKJTU24D.js +0 -88
  306. package/dist/chunk-WWBSNLRC.js +0 -63
  307. package/src/authjs.ts +0 -34
@@ -0,0 +1,330 @@
1
+ import {
2
+ external_exports
3
+ } from "./chunk-QKOSV34V.js";
4
+ import {
5
+ __name
6
+ } from "./chunk-2X5XVNDN.js";
7
+
8
+ // src/lib/mysql/ports/purchase.ts
9
+ import { and, asc, eq, inArray, isNull, not, or } from "drizzle-orm";
10
+ import { v4 } from "uuid";
11
+ import { merchantChargeSchema, purchaseSchema, purchaseUserTransferSchema, upgradableProductSchema, userSchema } from "@coursebuilder/core/schemas";
12
+ import { logger as baseLogger } from "@coursebuilder/utils/logger";
13
+ var logger = baseLogger;
14
+ function toError(error) {
15
+ return error instanceof Error ? error : new Error(String(error));
16
+ }
17
+ __name(toError, "toError");
18
+ function createPurchasePort({ client, tables }) {
19
+ const { purchases: purchaseTable, purchaseUserTransfer, merchantCharge, merchantCustomer, merchantSession, upgradableProducts } = tables;
20
+ const purchasePort = {
21
+ createPurchaseTransfer: async (options) => {
22
+ const id = `put_${v4()}`;
23
+ await client.insert(purchaseUserTransfer).values({
24
+ id,
25
+ purchaseId: options.purchaseId,
26
+ sourceUserId: options.sourceUserId,
27
+ expiresAt: options.expiresAt
28
+ });
29
+ },
30
+ getExistingNonBulkValidPurchasesOfProduct: async ({ userId, productId }) => {
31
+ const existingPurchases = await client.query.purchases.findMany({
32
+ where: and(eq(purchaseTable.userId, userId), productId ? eq(purchaseTable.productId, productId) : void 0, eq(purchaseTable.status, "Valid"), isNull(purchaseTable.bulkCouponId))
33
+ });
34
+ return external_exports.array(purchaseSchema).parse(existingPurchases);
35
+ },
36
+ async getPurchasesForBulkCouponId(bulkCouponId) {
37
+ return external_exports.array(purchaseSchema.extend({
38
+ user: userSchema
39
+ })).parse(await client.query.purchases.findMany({
40
+ where: eq(purchaseTable.bulkCouponId, bulkCouponId),
41
+ with: {
42
+ user: true
43
+ }
44
+ }));
45
+ },
46
+ async getPurchaseCountForProduct(productId) {
47
+ return await client.query.purchases.findMany({
48
+ where: and(eq(purchaseTable.productId, productId), inArray(purchaseTable.status, [
49
+ "Valid",
50
+ "Restricted"
51
+ ]))
52
+ }).then((res) => res.length);
53
+ },
54
+ async getPurchase(purchaseId) {
55
+ const purchase = await client.query.purchases.findFirst({
56
+ where: eq(purchaseTable.id, purchaseId)
57
+ });
58
+ return purchase ? purchaseSchema.parse(purchase) : null;
59
+ },
60
+ async createPurchase(options) {
61
+ const newPurchaseId = options.id || `purchase-${v4()}`;
62
+ await client.insert(purchaseTable).values({
63
+ ...options,
64
+ id: newPurchaseId
65
+ });
66
+ const newPurchase = await purchasePort.getPurchase(newPurchaseId);
67
+ return purchaseSchema.parse(newPurchase);
68
+ },
69
+ async getPurchaseForStripeCharge(stripeChargeId) {
70
+ logger.debug("getPurchaseForStripeCharge", {
71
+ stripeChargeId
72
+ });
73
+ const chargeForPurchase = merchantChargeSchema.nullable().parse(await client.query.merchantCharge.findFirst({
74
+ where: eq(merchantCharge.identifier, stripeChargeId)
75
+ }) || null);
76
+ if (!chargeForPurchase) {
77
+ logger.debug("getPurchaseForStripeCharge: no matching charge", {
78
+ stripeChargeId,
79
+ idPrefix: stripeChargeId?.substring(0, 3)
80
+ });
81
+ return null;
82
+ }
83
+ const purchase = purchaseSchema.safeParse(await client.query.purchases.findFirst({
84
+ where: eq(purchaseTable.merchantChargeId, chargeForPurchase.id),
85
+ with: {
86
+ user: true,
87
+ product: true,
88
+ bulkCoupon: true
89
+ }
90
+ }));
91
+ if (!purchase.success) {
92
+ return null;
93
+ }
94
+ return purchase.data;
95
+ },
96
+ async getPurchaseByCheckoutSessionId(checkoutSessionId) {
97
+ logger.debug("getPurchaseByCheckoutSessionId", {
98
+ checkoutSessionId
99
+ });
100
+ const session = await client.query.merchantSession.findFirst({
101
+ where: eq(merchantSession.identifier, checkoutSessionId)
102
+ });
103
+ if (!session) {
104
+ logger.debug("getPurchaseByCheckoutSessionId: no matching session", {
105
+ checkoutSessionId
106
+ });
107
+ return null;
108
+ }
109
+ const purchase = purchaseSchema.safeParse(await client.query.purchases.findFirst({
110
+ where: eq(purchaseTable.merchantSessionId, String(session.id)),
111
+ with: {
112
+ user: true,
113
+ product: true,
114
+ bulkCoupon: true
115
+ }
116
+ }));
117
+ if (!purchase.success) {
118
+ return null;
119
+ }
120
+ return purchase.data;
121
+ },
122
+ async getPurchaseUserTransferById(options) {
123
+ const purchaseTransferData = await client.query.purchaseUserTransfer.findFirst({
124
+ where: eq(purchaseUserTransfer.id, options.id),
125
+ with: {
126
+ sourceUser: true,
127
+ targetUser: true,
128
+ purchase: true
129
+ }
130
+ });
131
+ return purchaseUserTransferSchema.merge(external_exports.object({
132
+ sourceUser: userSchema,
133
+ targetUser: userSchema.nullable(),
134
+ purchase: purchaseSchema,
135
+ organizationId: external_exports.string().nullable()
136
+ })).nullable().parse(purchaseTransferData);
137
+ },
138
+ async getPurchaseWithUser(purchaseId) {
139
+ const purchaseData = await client.query.purchases.findFirst({
140
+ where: eq(purchaseTable.id, purchaseId),
141
+ with: {
142
+ user: true
143
+ }
144
+ }) || null;
145
+ const parsedPurchase = purchaseSchema.merge(external_exports.object({
146
+ user: userSchema
147
+ })).nullable().safeParse(purchaseData);
148
+ if (!parsedPurchase.success) {
149
+ logger.error(parsedPurchase.error, {
150
+ event: "adapter.purchase.parse_failed",
151
+ purchaseId
152
+ });
153
+ return null;
154
+ }
155
+ return parsedPurchase.data;
156
+ },
157
+ async getPurchasesForUser(userId) {
158
+ if (!userId) {
159
+ return [];
160
+ }
161
+ const visiblePurchaseStates = [
162
+ "Valid",
163
+ "Refunded",
164
+ "Restricted"
165
+ ];
166
+ const userPurchases = await client.query.purchases.findMany({
167
+ where: and(eq(purchaseTable.userId, userId), inArray(purchaseTable.status, visiblePurchaseStates)),
168
+ with: {
169
+ user: true,
170
+ product: true,
171
+ bulkCoupon: true
172
+ },
173
+ orderBy: asc(purchaseTable.createdAt)
174
+ });
175
+ const parsedPurchases = external_exports.array(purchaseSchema).safeParse(userPurchases);
176
+ if (!parsedPurchases.success) {
177
+ logger.error(parsedPurchases.error, {
178
+ event: "adapter.purchase.list.parse_failed",
179
+ purchaseCount: userPurchases.length,
180
+ userId
181
+ });
182
+ return [];
183
+ }
184
+ return parsedPurchases.data;
185
+ },
186
+ async getPurchaseDetails(purchaseId, userId) {
187
+ const visiblePurchaseStates = [
188
+ "Valid",
189
+ "Refunded",
190
+ "Restricted"
191
+ ];
192
+ const userPurchases = await client.query.purchases.findMany({
193
+ where: and(eq(purchaseTable.userId, userId), inArray(purchaseTable.status, visiblePurchaseStates)),
194
+ with: {
195
+ user: true,
196
+ product: true,
197
+ bulkCoupon: true
198
+ },
199
+ orderBy: asc(purchaseTable.createdAt)
200
+ });
201
+ const parsedPurchases = external_exports.array(purchaseSchema).safeParse(userPurchases);
202
+ const allPurchases = parsedPurchases.success ? parsedPurchases.data : [];
203
+ const thePurchase = await client.query.purchases.findFirst({
204
+ where: and(eq(purchaseTable.id, purchaseId), eq(purchaseTable.userId, userId)),
205
+ with: {
206
+ user: true,
207
+ product: true,
208
+ bulkCoupon: true
209
+ }
210
+ });
211
+ const parsedPurchase = purchaseSchema.safeParse(thePurchase);
212
+ if (!parsedPurchase.success) {
213
+ logger.error(parsedPurchase.error, {
214
+ event: "adapter.purchase.details.parse_failed",
215
+ purchaseId,
216
+ userId
217
+ });
218
+ return {
219
+ availableUpgrades: []
220
+ };
221
+ }
222
+ const purchaseCanUpgrade = [
223
+ "Valid",
224
+ "Restricted"
225
+ ].includes(parsedPurchase.data.state || "");
226
+ let availableUpgrades = [];
227
+ if (purchaseCanUpgrade) {
228
+ availableUpgrades = await client.query.upgradableProducts.findMany({
229
+ where: and(eq(upgradableProducts.upgradableFromId, parsedPurchase.data.product?.id), not(inArray(upgradableProducts.upgradableToId, allPurchases.map((p) => p.product?.id)))),
230
+ with: {
231
+ upgradableTo: true,
232
+ upgradableFrom: true
233
+ }
234
+ });
235
+ }
236
+ const existingPurchase = purchaseSchema.optional().nullable().parse(await client.query.purchases.findFirst({
237
+ where: and(eq(purchaseTable.userId, userId), eq(purchaseTable.productId, parsedPurchase.data.productId), inArray(purchaseTable.status, [
238
+ "Valid",
239
+ "Restricted"
240
+ ]), isNull(purchaseTable.bulkCouponId), not(eq(purchaseTable.id, parsedPurchase.data.id))),
241
+ with: {
242
+ user: true,
243
+ product: true,
244
+ bulkCoupon: true
245
+ }
246
+ }) || null);
247
+ return {
248
+ availableUpgrades: external_exports.array(upgradableProductSchema).parse(availableUpgrades),
249
+ existingPurchase,
250
+ purchase: parsedPurchase.data
251
+ };
252
+ },
253
+ async transferPurchasesToNewUser(options) {
254
+ await client.transaction(async (trx) => {
255
+ const charges = await trx.select({
256
+ id: merchantCharge.id
257
+ }).from(merchantCharge).where(eq(merchantCharge.merchantCustomerId, options.merchantCustomerId));
258
+ const chargeIds = charges.map(({ id }) => id);
259
+ if (chargeIds.length > 0) {
260
+ await trx.update(purchaseTable).set({
261
+ userId: options.userId
262
+ }).where(inArray(purchaseTable.merchantChargeId, chargeIds));
263
+ await trx.update(merchantCharge).set({
264
+ userId: options.userId
265
+ }).where(inArray(merchantCharge.id, chargeIds));
266
+ }
267
+ await trx.update(merchantCustomer).set({
268
+ userId: options.userId
269
+ }).where(eq(merchantCustomer.id, options.merchantCustomerId));
270
+ });
271
+ },
272
+ async updatePurchaseStatusForCharge(chargeId, status) {
273
+ try {
274
+ logger.debug("adapter.purchase.status_update.started", {
275
+ chargeId,
276
+ status
277
+ });
278
+ const merchantChargeForPurchase = await client.query.merchantCharge.findFirst({
279
+ where: or(eq(merchantCharge.identifier, chargeId), eq(merchantCharge.id, chargeId))
280
+ });
281
+ logger.debug("adapter.purchase.status_update.charge_resolved", {
282
+ chargeId,
283
+ merchantChargeId: merchantChargeForPurchase?.id ?? null,
284
+ merchantChargeIdentifier: merchantChargeForPurchase?.identifier ?? null
285
+ });
286
+ const parsedMerchantChargeForPurchase = merchantChargeSchema.parse(merchantChargeForPurchase);
287
+ if (!parsedMerchantChargeForPurchase)
288
+ throw new Error(`no-charge-found-for-purchase ${chargeId}`);
289
+ const purchase = await client.query.purchases.findFirst({
290
+ where: eq(purchaseTable.merchantChargeId, parsedMerchantChargeForPurchase.id)
291
+ });
292
+ const parsedPurchase = purchaseSchema.nullable().parse(purchase);
293
+ if (parsedPurchase) {
294
+ await client.update(purchaseTable).set({
295
+ status
296
+ }).where(eq(purchaseTable.id, parsedPurchase.id));
297
+ const newPurchase = await client.query.purchases.findFirst({
298
+ where: eq(purchaseTable.id, parsedPurchase.id)
299
+ });
300
+ return purchaseSchema.optional().parse(newPurchase);
301
+ } else {
302
+ throw new Error(`no-purchase-found-for-charge ${chargeId}`);
303
+ }
304
+ } catch (e) {
305
+ logger.error(toError(e), {
306
+ chargeId,
307
+ event: "adapter.purchase.status_update.failed",
308
+ status
309
+ });
310
+ throw e;
311
+ }
312
+ },
313
+ async updatePurchaseUserTransferTransferState(options) {
314
+ await client.update(purchaseUserTransfer).set({
315
+ transferState: options.transferState
316
+ }).where(eq(purchaseUserTransfer.id, options.id));
317
+ const purchaseUserTransferData = await client.query.purchaseUserTransfer.findFirst({
318
+ where: eq(purchaseUserTransfer.id, options.id)
319
+ }) || null;
320
+ return purchaseUserTransferSchema.nullable().parse(purchaseUserTransferData);
321
+ }
322
+ };
323
+ return purchasePort;
324
+ }
325
+ __name(createPurchasePort, "createPurchasePort");
326
+
327
+ export {
328
+ createPurchasePort
329
+ };
330
+ //# sourceMappingURL=chunk-QO3QE3LE.js.map