@coursebuilder/adapter-drizzle 2.1.1 → 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 (296) 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-7FBSP3VD.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-F56AI52P.js → chunk-INZTF6QV.js} +2 -2
  19. package/dist/{chunk-AP5HBIV4.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-PJORQUQP.js → chunk-WUMDFFN3.js} +2 -2
  32. package/dist/{chunk-2AW5KYAK.js → chunk-X7DRYXB7.js} +2 -2
  33. package/dist/{chunk-PNPTKVJ4.js → chunk-XUBZKYH6.js} +24 -15
  34. package/dist/{chunk-WWBSNLRC.js → chunk-ZY4AFKUQ.js} +2 -2
  35. package/dist/index.d.ts +5 -11
  36. package/dist/index.js +41 -18
  37. package/dist/lib/mysql/cms-resource-actions.cjs +15912 -4127
  38. package/dist/lib/mysql/cms-resource-actions.cjs.map +1 -1
  39. package/dist/lib/mysql/cms-resource-actions.d.cts +8 -38
  40. package/dist/lib/mysql/cms-resource-actions.d.ts +8 -38
  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 +21875 -15261
  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 +46 -22
  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 +4 -4
  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 +5 -5
  129. package/dist/lib/mysql/schemas/auth/device-verification.cjs.map +1 -1
  130. package/dist/lib/mysql/schemas/auth/device-verification.js +5 -5
  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 +5 -5
  133. package/dist/lib/mysql/schemas/auth/profiles.cjs.map +1 -1
  134. package/dist/lib/mysql/schemas/auth/profiles.js +4 -4
  135. package/dist/lib/mysql/schemas/auth/role-permissions.cjs.map +1 -1
  136. package/dist/lib/mysql/schemas/auth/role-permissions.js +5 -5
  137. package/dist/lib/mysql/schemas/auth/roles.cjs.map +1 -1
  138. package/dist/lib/mysql/schemas/auth/roles.js +4 -4
  139. package/dist/lib/mysql/schemas/auth/sessions.cjs.map +1 -1
  140. package/dist/lib/mysql/schemas/auth/sessions.js +5 -5
  141. package/dist/lib/mysql/schemas/auth/user-permissions.cjs.map +1 -1
  142. package/dist/lib/mysql/schemas/auth/user-permissions.js +4 -4
  143. package/dist/lib/mysql/schemas/auth/user-prefs.cjs.map +1 -1
  144. package/dist/lib/mysql/schemas/auth/user-prefs.js +4 -4
  145. package/dist/lib/mysql/schemas/auth/user-roles.cjs.map +1 -1
  146. package/dist/lib/mysql/schemas/auth/user-roles.js +4 -4
  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 +4 -4
  150. package/dist/lib/mysql/schemas/commerce/coupon.cjs.map +1 -1
  151. package/dist/lib/mysql/schemas/commerce/coupon.js +4 -4
  152. package/dist/lib/mysql/schemas/commerce/merchant-charge.cjs.map +1 -1
  153. package/dist/lib/mysql/schemas/commerce/merchant-charge.js +4 -4
  154. package/dist/lib/mysql/schemas/commerce/merchant-subscription.cjs.map +1 -1
  155. package/dist/lib/mysql/schemas/commerce/merchant-subscription.js +4 -4
  156. package/dist/lib/mysql/schemas/commerce/price.cjs.map +1 -1
  157. package/dist/lib/mysql/schemas/commerce/price.js +4 -4
  158. package/dist/lib/mysql/schemas/commerce/product.cjs.map +1 -1
  159. package/dist/lib/mysql/schemas/commerce/product.js +4 -4
  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 +5 -5
  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 +4 -4
  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 +4 -4
  168. package/dist/lib/mysql/schemas/commerce/upgradable-products.cjs.map +1 -1
  169. package/dist/lib/mysql/schemas/commerce/upgradable-products.js +5 -5
  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 +4 -4
  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 +4 -4
  176. package/dist/lib/mysql/schemas/communication/question-response.cjs.map +1 -1
  177. package/dist/lib/mysql/schemas/communication/question-response.js +5 -5
  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 +4 -4
  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 +4 -4
  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 +4 -4
  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 +4 -4
  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 +4 -4
  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 +4 -4
  192. package/dist/lib/mysql/schemas/content/tag-tag.cjs.map +1 -1
  193. package/dist/lib/mysql/schemas/content/tag-tag.js +4 -4
  194. package/dist/lib/mysql/schemas/content/tag.cjs.map +1 -1
  195. package/dist/lib/mysql/schemas/content/tag.js +4 -4
  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 +5 -5
  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 +4 -4
  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 +4 -4
  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 +4 -4
  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/context.ts +20 -0
  267. package/src/lib/mysql/index.ts +118 -4873
  268. package/src/lib/mysql/ports/auth-storage.ts +139 -0
  269. package/src/lib/mysql/ports/catalog.ts +610 -0
  270. package/src/lib/mysql/ports/content-resource.ts +442 -0
  271. package/src/lib/mysql/ports/coupon.ts +387 -0
  272. package/src/lib/mysql/ports/entitlement.ts +96 -0
  273. package/src/lib/mysql/ports/identity.ts +160 -0
  274. package/src/lib/mysql/ports/merchant.ts +274 -0
  275. package/src/lib/mysql/ports/organization.ts +216 -0
  276. package/src/lib/mysql/ports/progress.ts +366 -0
  277. package/src/lib/mysql/ports/purchase.ts +517 -0
  278. package/src/lib/mysql/ports/subscription.ts +93 -0
  279. package/src/lib/mysql/schema.ts +374 -0
  280. package/src/lib/mysql/schemas/org/organization-memberships.ts +7 -0
  281. package/src/lib/mysql/schemas/org/organizations.ts +8 -0
  282. package/src/lib/mysql/workflows/content-resource-workflow-utils.ts +22 -0
  283. package/src/lib/mysql/workflows/create-cohort.ts +239 -0
  284. package/src/lib/mysql/workflows/create-event-series.ts +384 -0
  285. package/src/lib/mysql/workflows/create-event.ts +232 -0
  286. package/src/lib/mysql/workflows/create-merchant-charge-and-purchase.ts +365 -0
  287. package/src/lib/mysql/workflows/create-workshop.ts +372 -0
  288. package/src/lib/mysql/workflows/redeem-full-price-coupon.ts +179 -0
  289. package/src/lib/mysql/workflows/transfer-purchase-to-user.ts +142 -0
  290. package/src/types.ts +33 -0
  291. package/dist/authjs.d.ts +0 -27
  292. package/dist/authjs.js +0 -1
  293. package/dist/chunk-62VSIVME.js +0 -4714
  294. package/dist/chunk-RVXF3JZ7.js +0 -8732
  295. package/dist/chunk-WEJL5OFI.js +0 -8732
  296. package/src/authjs.ts +0 -34
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getContentResourceSchema,
3
3
  getUsersSchema
4
- } from "./chunk-PNPTKVJ4.js";
4
+ } from "./chunk-XUBZKYH6.js";
5
5
  import {
6
6
  __name
7
7
  } from "./chunk-2X5XVNDN.js";
@@ -98,4 +98,4 @@ export {
98
98
  getQuestionResponseSchema,
99
99
  getQuestionResponseRelationsSchema
100
100
  };
101
- //# sourceMappingURL=chunk-KIQLUFJX.js.map
101
+ //# sourceMappingURL=chunk-2GW3BJE2.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getUsersSchema
3
- } from "./chunk-PNPTKVJ4.js";
3
+ } from "./chunk-XUBZKYH6.js";
4
4
  import {
5
5
  __name
6
6
  } from "./chunk-2X5XVNDN.js";
@@ -85,4 +85,4 @@ export {
85
85
  getPersonalAccessTokenSchema,
86
86
  getPersonalAccessTokenRelationsSchema
87
87
  };
88
- //# sourceMappingURL=chunk-M3WM5Q7W.js.map
88
+ //# sourceMappingURL=chunk-33ZN7FN7.js.map
@@ -0,0 +1,74 @@
1
+ import {
2
+ __name
3
+ } from "./chunk-2X5XVNDN.js";
4
+
5
+ // src/lib/mysql/workflows/transfer-purchase-to-user.ts
6
+ import { eq } from "drizzle-orm";
7
+ import { v4 } from "uuid";
8
+ import { merchantChargeSchema, userSchema } from "@coursebuilder/core/schemas";
9
+ import { merchantCustomerSchema } from "@coursebuilder/core/schemas/merchant-customer-schema";
10
+ function createTransferPurchaseToUserWorkflow({ client, tables }, paymentProvider, operations) {
11
+ const { users, purchases: purchaseTable, purchaseUserTransfer, merchantCharge, merchantCustomer } = tables;
12
+ return {
13
+ transferPurchaseToUser: async (options) => {
14
+ const { purchaseId, targetUserId, sourceUserId } = options;
15
+ const transferId = `put_${v4()}`;
16
+ await client.transaction(async (trx) => {
17
+ const purchase = await trx.select().from(purchaseTable).where(eq(purchaseTable.id, purchaseId)).for("update").then((rows) => rows[0]);
18
+ if (!purchase)
19
+ throw new Error("No purchase found");
20
+ if (purchase.userId !== sourceUserId)
21
+ throw new Error("Invalid source user");
22
+ await trx.update(purchaseTable).set({
23
+ userId: targetUserId
24
+ }).where(eq(purchaseTable.id, purchase.id));
25
+ await trx.insert(purchaseUserTransfer).values({
26
+ id: transferId,
27
+ purchaseId: purchase.id,
28
+ sourceUserId,
29
+ targetUserId,
30
+ transferState: "COMPLETED",
31
+ completedAt: /* @__PURE__ */ new Date()
32
+ });
33
+ if (paymentProvider && purchase.merchantChargeId) {
34
+ await trx.update(merchantCharge).set({
35
+ userId: targetUserId
36
+ }).where(eq(merchantCharge.id, purchase.merchantChargeId));
37
+ const updatedMerchantCharge = merchantChargeSchema.parse(await trx.query.merchantCharge.findFirst({
38
+ where: eq(merchantCharge.id, purchase.merchantChargeId)
39
+ }));
40
+ await trx.update(merchantCustomer).set({
41
+ userId: targetUserId
42
+ }).where(eq(merchantCustomer.id, updatedMerchantCharge.merchantCustomerId));
43
+ const updatedMerchantCustomer = merchantCustomerSchema.parse(await trx.query.merchantCustomer.findFirst({
44
+ where: eq(merchantCustomer.id, updatedMerchantCharge.merchantCustomerId)
45
+ }));
46
+ const targetUser = userSchema.parse(await trx.query.users.findFirst({
47
+ where: eq(users.id, targetUserId)
48
+ }));
49
+ const sourceUser = userSchema.parse(await trx.query.users.findFirst({
50
+ where: eq(users.id, sourceUserId)
51
+ }));
52
+ await paymentProvider.updateCustomer(updatedMerchantCustomer.identifier, {
53
+ email: targetUser.email,
54
+ name: targetUser.name || sourceUser.name || "",
55
+ metadata: {
56
+ transferId,
57
+ transferredFrom: sourceUser.email,
58
+ transferredOn: (/* @__PURE__ */ new Date()).toISOString()
59
+ }
60
+ });
61
+ }
62
+ });
63
+ return await operations.getPurchaseUserTransferById({
64
+ id: transferId
65
+ });
66
+ }
67
+ };
68
+ }
69
+ __name(createTransferPurchaseToUserWorkflow, "createTransferPurchaseToUserWorkflow");
70
+
71
+ export {
72
+ createTransferPurchaseToUserWorkflow
73
+ };
74
+ //# sourceMappingURL=chunk-4VZJQAPV.js.map
@@ -0,0 +1,109 @@
1
+ import {
2
+ __name
3
+ } from "./chunk-2X5XVNDN.js";
4
+
5
+ // src/lib/mysql/workflows/redeem-full-price-coupon.ts
6
+ import { and, eq } from "drizzle-orm";
7
+ import { v4 } from "uuid";
8
+ import { logger } from "@coursebuilder/utils/logger";
9
+ import { validateCoupon } from "@coursebuilder/commerce/validate-coupon";
10
+ var normalizeLearnerEmail = /* @__PURE__ */ __name((email) => email.trim().toLowerCase().replace(/\s+/g, "+"), "normalizeLearnerEmail");
11
+ function createRedeemFullPriceCouponWorkflow({ client, tables }, operations) {
12
+ const { purchases: purchaseTable } = tables;
13
+ return {
14
+ async redeemFullPriceCoupon(options) {
15
+ const { email: baseEmail, couponId, productIds, currentUserId, redeemingProductId } = options;
16
+ const email = normalizeLearnerEmail(String(baseEmail));
17
+ const coupon = await operations.getCouponWithBulkPurchases(couponId);
18
+ const productId = coupon && coupon.restrictedToProductId || redeemingProductId;
19
+ if (!productId)
20
+ throw new Error(`unable-to-find-any-product-id`);
21
+ const couponValidation = validateCoupon(coupon, productIds);
22
+ if (coupon && couponValidation.isRedeemable) {
23
+ const bulkCouponRedemption = Boolean(coupon.maxUses > 1);
24
+ const { user } = await operations.findOrCreateUser(email);
25
+ if (!user)
26
+ throw new Error(`unable-to-create-user-${email}`);
27
+ const currentUser = currentUserId ? await operations.getUserById(currentUserId) : null;
28
+ const redeemingForCurrentUser = currentUser?.id === user.id;
29
+ if (bulkCouponRedemption) {
30
+ const existingValidRedemption = await client.query.purchases.findFirst({
31
+ where: and(eq(purchaseTable.redeemedBulkCouponId, coupon.id), eq(purchaseTable.userId, user.id), eq(purchaseTable.status, "Valid"))
32
+ });
33
+ if (existingValidRedemption) {
34
+ logger.info("adapter.coupon.redeem.duplicate_team_seat", {
35
+ couponId: coupon.id,
36
+ currentUserId,
37
+ email,
38
+ productId,
39
+ purchaseId: existingValidRedemption.id,
40
+ userId: user.id
41
+ });
42
+ return {
43
+ error: {
44
+ message: "team-seat-redemption-already-claimed"
45
+ },
46
+ redeemingForCurrentUser,
47
+ purchase: null
48
+ };
49
+ }
50
+ }
51
+ const existingPurchases = await operations.getExistingNonBulkValidPurchasesOfProduct({
52
+ userId: user.id,
53
+ productId
54
+ });
55
+ if (existingPurchases.length > 0) {
56
+ const errorMessage = `already-purchased-${email}`;
57
+ logger.info("adapter.coupon.redeem.already_purchased", {
58
+ couponId: coupon.id,
59
+ currentUserId,
60
+ email,
61
+ productId,
62
+ userId: user.id
63
+ });
64
+ return {
65
+ error: {
66
+ message: errorMessage
67
+ },
68
+ redeemingForCurrentUser,
69
+ purchase: null
70
+ };
71
+ throw new Error(errorMessage);
72
+ }
73
+ const purchaseId = `purchase-${v4()}`;
74
+ const userMemberships = await operations.getMembershipsForUser(user.id);
75
+ const organizationId = coupon.organizationId || userMemberships.find((m) => m.organization.name?.includes(user.email))?.organizationId;
76
+ await operations.createPurchase({
77
+ id: purchaseId,
78
+ userId: user.id,
79
+ couponId: bulkCouponRedemption ? null : coupon.id,
80
+ redeemedBulkCouponId: bulkCouponRedemption ? coupon.id : null,
81
+ productId,
82
+ totalAmount: "0",
83
+ organizationId,
84
+ metadata: {
85
+ couponUsedId: bulkCouponRedemption ? null : coupon.id
86
+ }
87
+ });
88
+ const newPurchase = await operations.getPurchase(purchaseId);
89
+ await operations.incrementCouponUsedCount(coupon.id);
90
+ await operations.createPurchaseTransfer({
91
+ sourceUserId: user.id,
92
+ purchaseId,
93
+ expiresAt: new Date(Date.now() + 1e3 * 60 * 60 * 24 * 7)
94
+ });
95
+ return {
96
+ purchase: newPurchase,
97
+ redeemingForCurrentUser
98
+ };
99
+ }
100
+ return null;
101
+ }
102
+ };
103
+ }
104
+ __name(createRedeemFullPriceCouponWorkflow, "createRedeemFullPriceCouponWorkflow");
105
+
106
+ export {
107
+ createRedeemFullPriceCouponWorkflow
108
+ };
109
+ //# sourceMappingURL=chunk-5FLS4ZBX.js.map
@@ -0,0 +1,147 @@
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/organization.ts
9
+ import { and, eq } from "drizzle-orm";
10
+ import { OrganizationMemberSchema } from "@coursebuilder/core/schemas/organization-member";
11
+ import { OrganizationSchema } from "@coursebuilder/core/schemas/organization-schema";
12
+ function createOrganizationPort({ client, tables }) {
13
+ const { organization: organizationTable, organizationMemberships: organizationMembershipTable, organizationMembershipRoles: organizationMembershipRoleTable, roles: roleTable } = tables;
14
+ const getOrganization = /* @__PURE__ */ __name(async (organizationId) => {
15
+ return OrganizationSchema.parse(await client.query.organization.findFirst({
16
+ where: eq(organizationTable.id, organizationId)
17
+ }));
18
+ }, "getOrganization");
19
+ const getPersonalOrganization = /* @__PURE__ */ __name(async (userId) => {
20
+ return OrganizationSchema.nullable().parse(await client.query.organization.findFirst({
21
+ where: eq(organizationTable.personalOrganizationUserId, userId)
22
+ }) ?? null);
23
+ }, "getPersonalOrganization");
24
+ return {
25
+ createOrganization: async (options) => {
26
+ const organizationId = crypto.randomUUID();
27
+ await client.insert(organizationTable).values({
28
+ ...options,
29
+ id: organizationId
30
+ });
31
+ return getOrganization(organizationId);
32
+ },
33
+ getOrganization,
34
+ getPersonalOrganization,
35
+ createPersonalOrganization: async ({ userId, name }) => {
36
+ await client.insert(organizationTable).values({
37
+ id: crypto.randomUUID(),
38
+ name,
39
+ personalOrganizationUserId: userId
40
+ }).onDuplicateKeyUpdate({
41
+ set: {
42
+ personalOrganizationUserId: userId
43
+ }
44
+ });
45
+ const organization = await getPersonalOrganization(userId);
46
+ if (!organization) {
47
+ throw new Error("Failed to create durable personal organization");
48
+ }
49
+ return organization;
50
+ },
51
+ addMemberToOrganization: async (options) => {
52
+ const membershipWhere = options.personalOrganizationUserId ? eq(organizationMembershipTable.personalOrganizationUserId, options.personalOrganizationUserId) : and(eq(organizationMembershipTable.organizationId, options.organizationId), eq(organizationMembershipTable.userId, options.userId));
53
+ const currentMembership = await client.query.organizationMemberships.findFirst({
54
+ where: membershipWhere,
55
+ with: {
56
+ organization: true,
57
+ user: true
58
+ }
59
+ });
60
+ if (!currentMembership) {
61
+ const insert = client.insert(organizationMembershipTable).values({
62
+ ...options,
63
+ id: crypto.randomUUID()
64
+ });
65
+ if (options.personalOrganizationUserId) {
66
+ await insert.onDuplicateKeyUpdate({
67
+ set: {
68
+ userId: options.userId
69
+ }
70
+ });
71
+ } else {
72
+ await insert;
73
+ }
74
+ }
75
+ return OrganizationMemberSchema.parse(await client.query.organizationMemberships.findFirst({
76
+ where: membershipWhere,
77
+ with: {
78
+ organization: true,
79
+ user: true
80
+ }
81
+ }));
82
+ },
83
+ removeMemberFromOrganization: async (options) => {
84
+ await client.delete(organizationMembershipTable).where(and(eq(organizationMembershipTable.organizationId, options.organizationId), eq(organizationMembershipTable.userId, options.userId)));
85
+ },
86
+ addRoleForMember: async (options) => {
87
+ await client.insert(roleTable).values({
88
+ name: options.role,
89
+ organizationId: options.organizationId,
90
+ id: crypto.randomUUID()
91
+ }).onDuplicateKeyUpdate({
92
+ set: {
93
+ name: options.role
94
+ }
95
+ });
96
+ const role = external_exports.object({
97
+ id: external_exports.string()
98
+ }).parse(await client.query.roles.findFirst({
99
+ where: and(eq(roleTable.organizationId, options.organizationId), eq(roleTable.name, options.role))
100
+ }));
101
+ await client.insert(organizationMembershipRoleTable).values({
102
+ organizationId: options.organizationId,
103
+ organizationMembershipId: options.memberId,
104
+ roleId: role.id
105
+ }).onDuplicateKeyUpdate({
106
+ set: {
107
+ roleId: role.id
108
+ }
109
+ });
110
+ },
111
+ removeRoleForMember: async (options) => {
112
+ const existingRole = external_exports.object({
113
+ id: external_exports.string()
114
+ }).nullable().parse(await client.query.roles.findFirst({
115
+ where: and(eq(roleTable.organizationId, options.organizationId), eq(roleTable.name, options.role))
116
+ }));
117
+ const roleId = existingRole?.id;
118
+ if (roleId) {
119
+ await client.delete(organizationMembershipRoleTable).where(and(eq(organizationMembershipRoleTable.roleId, roleId), eq(organizationMembershipRoleTable.organizationMembershipId, options.memberId)));
120
+ }
121
+ },
122
+ getMembershipsForUser: async (userId) => {
123
+ return OrganizationMemberSchema.array().parse(await client.query.organizationMemberships.findMany({
124
+ where: eq(organizationMembershipTable.userId, userId),
125
+ with: {
126
+ organization: true,
127
+ user: true
128
+ }
129
+ }) || []);
130
+ },
131
+ getOrganizationMembers: async (organizationId) => {
132
+ return OrganizationMemberSchema.array().parse(await client.query.organizationMemberships.findMany({
133
+ where: eq(organizationMembershipTable.organizationId, organizationId),
134
+ with: {
135
+ organization: true,
136
+ user: true
137
+ }
138
+ }) || []);
139
+ }
140
+ };
141
+ }
142
+ __name(createOrganizationPort, "createOrganizationPort");
143
+
144
+ export {
145
+ createOrganizationPort
146
+ };
147
+ //# sourceMappingURL=chunk-5YR5M22S.js.map
@@ -0,0 +1,18 @@
1
+ import {
2
+ __name
3
+ } from "./chunk-2X5XVNDN.js";
4
+
5
+ // src/lib/mysql/workflows/content-resource-workflow-utils.ts
6
+ import { customAlphabet } from "nanoid";
7
+ var guid = customAlphabet("1234567890abcdefghijklmnopqrstuvwxyz", 5);
8
+ var normalizeExpirationDate = /* @__PURE__ */ __name((date) => {
9
+ if (!date)
10
+ return void 0;
11
+ return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), 23, 59, 59, 0));
12
+ }, "normalizeExpirationDate");
13
+
14
+ export {
15
+ guid,
16
+ normalizeExpirationDate
17
+ };
18
+ //# sourceMappingURL=chunk-6XQ6C3IX.js.map
@@ -0,0 +1,146 @@
1
+ import {
2
+ guid,
3
+ normalizeExpirationDate
4
+ } from "./chunk-6XQ6C3IX.js";
5
+ import {
6
+ __name
7
+ } from "./chunk-2X5XVNDN.js";
8
+
9
+ // src/lib/mysql/workflows/create-cohort.ts
10
+ import slugify from "@sindresorhus/slugify";
11
+ import { asc, eq } from "drizzle-orm";
12
+ import { ContentResourceSchema } from "@coursebuilder/core/schemas/content-resource-schema";
13
+ import { logger as baseLogger } from "@coursebuilder/utils/logger";
14
+ var logger = baseLogger;
15
+ function createCohortWorkflow({ client, tables }, operations) {
16
+ const { contentResource, contentResourceResource, contentResourceProduct, contentResourceTag } = tables;
17
+ return {
18
+ async createCohort(input, userId) {
19
+ const hash = guid();
20
+ const cohortId = `cohort~${hash}`;
21
+ const cohort = await client.transaction(async (tx) => {
22
+ await tx.insert(contentResource).values({
23
+ id: cohortId,
24
+ type: "cohort",
25
+ createdById: userId,
26
+ fields: {
27
+ title: input.cohort.title,
28
+ description: input.cohort.description,
29
+ state: "draft",
30
+ visibility: "unlisted",
31
+ slug: slugify(`${input.cohort.title}~${hash}`),
32
+ startsAt: input.dates.start,
33
+ endsAt: input.dates.end
34
+ }
35
+ });
36
+ const cohort2 = await tx.query.contentResource.findFirst({
37
+ where: eq(contentResource.id, cohortId),
38
+ with: {
39
+ resources: {
40
+ with: {
41
+ resource: true
42
+ },
43
+ orderBy: asc(contentResourceResource.position)
44
+ }
45
+ }
46
+ });
47
+ if (!cohort2) {
48
+ throw new Error("Failed to create cohort");
49
+ }
50
+ const parsedCohort = ContentResourceSchema.safeParse(cohort2);
51
+ if (!parsedCohort.success) {
52
+ throw new Error("Invalid cohort data");
53
+ }
54
+ if (input.cohort.tagIds) {
55
+ await tx.insert(contentResourceTag).values(input.cohort.tagIds.map((tag) => ({
56
+ contentResourceId: cohortId,
57
+ tagId: tag.id,
58
+ createdAt: /* @__PURE__ */ new Date(),
59
+ updatedAt: /* @__PURE__ */ new Date(),
60
+ position: 0
61
+ })));
62
+ }
63
+ let position = 0;
64
+ for (const workshop of input.workshops) {
65
+ await tx.insert(contentResourceResource).values({
66
+ resourceOfId: cohortId,
67
+ resourceId: workshop.id,
68
+ position
69
+ });
70
+ position++;
71
+ }
72
+ return parsedCohort.data;
73
+ });
74
+ let product = null;
75
+ if (input.createProduct && input.pricing.price && input.pricing.price > 0) {
76
+ try {
77
+ product = await operations.createProduct({
78
+ name: input.cohort.title,
79
+ price: input.pricing.price,
80
+ quantityAvailable: -1,
81
+ type: "cohort",
82
+ state: "published",
83
+ visibility: "public",
84
+ openEnrollment: (/* @__PURE__ */ new Date()).toISOString(),
85
+ closeEnrollment: input.dates.start.toISOString()
86
+ });
87
+ if (product) {
88
+ await client.insert(contentResourceProduct).values({
89
+ resourceId: cohortId,
90
+ productId: product.id,
91
+ position: 0,
92
+ metadata: {
93
+ addedBy: userId
94
+ }
95
+ });
96
+ if (input.coupon?.enabled && input.coupon.percentageDiscount && input.coupon.expires) {
97
+ try {
98
+ const finalExpires = normalizeExpirationDate(input.coupon.expires);
99
+ await operations.createCoupon({
100
+ percentageDiscount: input.coupon.percentageDiscount,
101
+ expires: finalExpires || null,
102
+ restrictedToProductId: product.id,
103
+ default: true,
104
+ maxUses: -1,
105
+ quantity: "-1",
106
+ status: 1,
107
+ fields: {}
108
+ });
109
+ logger.debug("cohort.create.coupon.success", {
110
+ cohortId,
111
+ productId: product.id,
112
+ userId,
113
+ percentageDiscount: input.coupon.percentageDiscount
114
+ });
115
+ } catch (couponError) {
116
+ logger.error(new Error(`Failed to create coupon for cohort: ${couponError}`));
117
+ logger.debug("cohort.create.coupon.failed", {
118
+ cohortId,
119
+ productId: product.id,
120
+ userId
121
+ });
122
+ }
123
+ }
124
+ }
125
+ } catch (productError) {
126
+ logger.error(new Error(`Failed to create product for cohort: ${productError}`));
127
+ logger.debug("cohort.create.product.failed", {
128
+ cohortId,
129
+ userId,
130
+ price: input.pricing.price
131
+ });
132
+ }
133
+ }
134
+ return {
135
+ cohort,
136
+ product
137
+ };
138
+ }
139
+ };
140
+ }
141
+ __name(createCohortWorkflow, "createCohortWorkflow");
142
+
143
+ export {
144
+ createCohortWorkflow
145
+ };
146
+ //# sourceMappingURL=chunk-AIDM2CH6.js.map