@headless-lms/core 0.2.0 → 0.4.0

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/assets/events.d.ts +42 -24
  2. package/dist/assets/events.js +1 -1
  3. package/dist/assets/events.js.map +1 -1
  4. package/dist/assets/file-urls.d.ts +20 -0
  5. package/dist/assets/file-urls.js +25 -0
  6. package/dist/assets/file-urls.js.map +1 -0
  7. package/dist/assets/index.d.ts +6 -4
  8. package/dist/assets/index.js +4 -2
  9. package/dist/assets/jobs.d.ts +15 -0
  10. package/dist/assets/jobs.js +30 -0
  11. package/dist/assets/jobs.js.map +1 -0
  12. package/dist/assets/model.d.ts +2 -2
  13. package/dist/assets/ports.d.ts +46 -15
  14. package/dist/assets/service.d.ts +38 -7
  15. package/dist/assets/service.js +287 -38
  16. package/dist/assets/service.js.map +1 -1
  17. package/dist/automations/actions.d.ts +13 -24
  18. package/dist/automations/actions.js +106 -42
  19. package/dist/automations/actions.js.map +1 -1
  20. package/dist/automations/catalog.js +226 -3
  21. package/dist/automations/catalog.js.map +1 -1
  22. package/dist/automations/community-derivations.d.ts +14 -0
  23. package/dist/automations/community-derivations.js +439 -0
  24. package/dist/automations/community-derivations.js.map +1 -0
  25. package/dist/automations/community-mail.d.ts +98 -0
  26. package/dist/automations/community-mail.js +70 -0
  27. package/dist/automations/community-mail.js.map +1 -0
  28. package/dist/automations/events.d.ts +18 -0
  29. package/dist/automations/index.d.ts +13 -4
  30. package/dist/automations/index.js +10 -2
  31. package/dist/automations/model.d.ts +10 -3
  32. package/dist/automations/model.js +15 -2
  33. package/dist/automations/model.js.map +1 -1
  34. package/dist/automations/notifications/debounce.d.ts +25 -0
  35. package/dist/automations/notifications/debounce.js +93 -0
  36. package/dist/automations/notifications/debounce.js.map +1 -0
  37. package/dist/automations/notifications/defaults.d.ts +8 -0
  38. package/dist/automations/notifications/defaults.js +316 -0
  39. package/dist/automations/notifications/defaults.js.map +1 -0
  40. package/dist/automations/notifications/delivery.d.ts +28 -0
  41. package/dist/automations/notifications/delivery.js +88 -0
  42. package/dist/automations/notifications/delivery.js.map +1 -0
  43. package/dist/automations/notifications/processor.d.ts +64 -0
  44. package/dist/automations/notifications/processor.js +270 -0
  45. package/dist/automations/notifications/processor.js.map +1 -0
  46. package/dist/automations/notifications/rules/content.d.ts +6 -0
  47. package/dist/automations/notifications/rules/content.js +39 -0
  48. package/dist/automations/notifications/rules/content.js.map +1 -0
  49. package/dist/automations/notifications/rules/discussion.d.ts +7 -0
  50. package/dist/automations/notifications/rules/discussion.js +678 -0
  51. package/dist/automations/notifications/rules/discussion.js.map +1 -0
  52. package/dist/automations/notifications/rules/entitlements.d.ts +6 -0
  53. package/dist/automations/notifications/rules/entitlements.js +249 -0
  54. package/dist/automations/notifications/rules/entitlements.js.map +1 -0
  55. package/dist/automations/notifications/rules/index.d.ts +6 -0
  56. package/dist/automations/notifications/rules/index.js +15 -0
  57. package/dist/automations/notifications/rules/index.js.map +1 -0
  58. package/dist/automations/notifications/rules/organizations.d.ts +6 -0
  59. package/dist/automations/notifications/rules/organizations.js +28 -0
  60. package/dist/automations/notifications/rules/organizations.js.map +1 -0
  61. package/dist/automations/notifications/rules/recipients.d.ts +32 -0
  62. package/dist/automations/notifications/rules/recipients.js +99 -0
  63. package/dist/automations/notifications/rules/recipients.js.map +1 -0
  64. package/dist/automations/notifications/service.d.ts +27 -0
  65. package/dist/automations/notifications/service.js +45 -0
  66. package/dist/automations/notifications/service.js.map +1 -0
  67. package/dist/automations/notifications/types.d.ts +7 -0
  68. package/dist/automations/notifications/types.js +473 -0
  69. package/dist/automations/notifications/types.js.map +1 -0
  70. package/dist/automations/ports.d.ts +121 -3
  71. package/dist/automations/schedule.d.ts +6 -0
  72. package/dist/automations/schedule.js +41 -0
  73. package/dist/automations/schedule.js.map +1 -0
  74. package/dist/automations/service.d.ts +20 -4
  75. package/dist/automations/service.js +246 -45
  76. package/dist/automations/service.js.map +1 -1
  77. package/dist/content/events.d.ts +712 -50
  78. package/dist/content/events.js +55 -1
  79. package/dist/content/events.js.map +1 -1
  80. package/dist/content/index.d.ts +6 -4
  81. package/dist/content/index.js +3 -1
  82. package/dist/content/model.d.ts +2 -2
  83. package/dist/content/notification-categories.d.ts +36 -0
  84. package/dist/content/notification-categories.js +64 -0
  85. package/dist/content/notification-categories.js.map +1 -0
  86. package/dist/content/ports.d.ts +90 -18
  87. package/dist/content/service.d.ts +57 -18
  88. package/dist/content/service.js +520 -25
  89. package/dist/content/service.js.map +1 -1
  90. package/dist/content/titles.d.ts +22 -0
  91. package/dist/content/titles.js +69 -0
  92. package/dist/content/titles.js.map +1 -0
  93. package/dist/content/types.d.ts +2 -2
  94. package/dist/discussion/authors.d.ts +10 -0
  95. package/dist/discussion/authors.js +23 -0
  96. package/dist/discussion/authors.js.map +1 -0
  97. package/dist/discussion/chats.d.ts +109 -0
  98. package/dist/discussion/chats.js +831 -0
  99. package/dist/discussion/chats.js.map +1 -0
  100. package/dist/discussion/digests.d.ts +24 -0
  101. package/dist/discussion/digests.js +104 -0
  102. package/dist/discussion/digests.js.map +1 -0
  103. package/dist/discussion/events.d.ts +785 -56
  104. package/dist/discussion/events.js +165 -5
  105. package/dist/discussion/events.js.map +1 -1
  106. package/dist/discussion/index.d.ts +12 -3
  107. package/dist/discussion/index.js +9 -1
  108. package/dist/discussion/jobs.d.ts +16 -0
  109. package/dist/discussion/jobs.js +40 -0
  110. package/dist/discussion/jobs.js.map +1 -0
  111. package/dist/discussion/mentions.d.ts +11 -0
  112. package/dist/discussion/mentions.js +35 -0
  113. package/dist/discussion/mentions.js.map +1 -0
  114. package/dist/discussion/ports.d.ts +372 -28
  115. package/dist/discussion/ports.js +6 -1
  116. package/dist/discussion/ports.js.map +1 -0
  117. package/dist/discussion/posts.d.ts +113 -0
  118. package/dist/discussion/posts.js +775 -0
  119. package/dist/discussion/posts.js.map +1 -0
  120. package/dist/discussion/service.d.ts +42 -11
  121. package/dist/discussion/service.js +364 -85
  122. package/dist/discussion/service.js.map +1 -1
  123. package/dist/discussion/subscriptions.d.ts +37 -0
  124. package/dist/discussion/subscriptions.js +99 -0
  125. package/dist/discussion/subscriptions.js.map +1 -0
  126. package/dist/discussion/titles.d.ts +26 -0
  127. package/dist/discussion/titles.js +84 -0
  128. package/dist/discussion/titles.js.map +1 -0
  129. package/dist/entitlements/events.d.ts +178 -11
  130. package/dist/entitlements/events.js +28 -1
  131. package/dist/entitlements/events.js.map +1 -1
  132. package/dist/entitlements/index.d.ts +6 -4
  133. package/dist/entitlements/index.js +3 -1
  134. package/dist/entitlements/jobs.d.ts +12 -0
  135. package/dist/entitlements/jobs.js +18 -0
  136. package/dist/entitlements/jobs.js.map +1 -0
  137. package/dist/entitlements/model.d.ts +3 -2
  138. package/dist/entitlements/ports.d.ts +128 -11
  139. package/dist/entitlements/rules.d.ts +12 -0
  140. package/dist/entitlements/rules.js +17 -0
  141. package/dist/entitlements/rules.js.map +1 -0
  142. package/dist/entitlements/service.d.ts +57 -3
  143. package/dist/entitlements/service.js +492 -2
  144. package/dist/entitlements/service.js.map +1 -1
  145. package/dist/identity/access.d.ts +6 -0
  146. package/dist/identity/access.js +7 -0
  147. package/dist/identity/access.js.map +1 -0
  148. package/dist/identity/devices.d.ts +30 -0
  149. package/dist/identity/devices.js +107 -0
  150. package/dist/identity/devices.js.map +1 -0
  151. package/dist/identity/events.d.ts +2 -2
  152. package/dist/identity/index.d.ts +7 -4
  153. package/dist/identity/index.js +4 -1
  154. package/dist/identity/model.d.ts +2 -1
  155. package/dist/identity/notification-settings.d.ts +28 -0
  156. package/dist/identity/notification-settings.js +113 -0
  157. package/dist/identity/notification-settings.js.map +1 -0
  158. package/dist/identity/ports.d.ts +97 -3
  159. package/dist/identity/service.d.ts +14 -3
  160. package/dist/identity/service.js +62 -5
  161. package/dist/identity/service.js.map +1 -1
  162. package/dist/integrations/events.d.ts +3 -3
  163. package/dist/integrations/model.js +1 -1
  164. package/dist/integrations/model.js.map +1 -1
  165. package/dist/integrations/service.js +2 -2
  166. package/dist/integrations/service.js.map +1 -1
  167. package/dist/organizations/access-scopes.d.ts +19 -0
  168. package/dist/organizations/access-scopes.js +89 -0
  169. package/dist/organizations/access-scopes.js.map +1 -0
  170. package/dist/organizations/events.d.ts +75 -33
  171. package/dist/organizations/events.js +6 -0
  172. package/dist/organizations/events.js.map +1 -1
  173. package/dist/organizations/index.d.ts +8 -6
  174. package/dist/organizations/index.js +5 -3
  175. package/dist/organizations/members.d.ts +8 -5
  176. package/dist/organizations/members.js.map +1 -1
  177. package/dist/organizations/notification-categories.d.ts +32 -0
  178. package/dist/organizations/notification-categories.js +51 -0
  179. package/dist/organizations/notification-categories.js.map +1 -0
  180. package/dist/organizations/ports.d.ts +17 -11
  181. package/dist/organizations/roles.d.ts +6 -10
  182. package/dist/organizations/roles.js +19 -7
  183. package/dist/organizations/roles.js.map +1 -1
  184. package/dist/organizations/service.d.ts +22 -11
  185. package/dist/organizations/service.js +164 -47
  186. package/dist/organizations/service.js.map +1 -1
  187. package/dist/organizations/types.d.ts +1 -10
  188. package/dist/progress/events.d.ts +14 -14
  189. package/dist/progress/index.d.ts +2 -2
  190. package/dist/progress/ports.d.ts +6 -1
  191. package/dist/progress/service.d.ts +3 -1
  192. package/dist/progress/service.js +6 -2
  193. package/dist/progress/service.js.map +1 -1
  194. package/dist/reporting/admin/index.d.ts +4 -0
  195. package/dist/reporting/admin/index.js +2 -0
  196. package/dist/reporting/admin/model.d.ts +108 -0
  197. package/dist/reporting/admin/ports.d.ts +27 -0
  198. package/dist/reporting/admin/service.d.ts +22 -0
  199. package/dist/reporting/admin/service.js +38 -0
  200. package/dist/reporting/admin/service.js.map +1 -0
  201. package/dist/reporting/member/index.d.ts +5 -0
  202. package/dist/reporting/member/index.js +2 -0
  203. package/dist/reporting/member/model.d.ts +157 -0
  204. package/dist/reporting/member/ports.d.ts +48 -0
  205. package/dist/reporting/member/service.d.ts +92 -0
  206. package/dist/reporting/member/service.js +364 -0
  207. package/dist/reporting/member/service.js.map +1 -0
  208. package/dist/shared/actor.d.ts +9 -0
  209. package/dist/shared/errors.d.ts +19 -1
  210. package/dist/shared/errors.js +27 -1
  211. package/dist/shared/errors.js.map +1 -1
  212. package/dist/shared/id.d.ts +14 -0
  213. package/dist/shared/id.js +15 -1
  214. package/dist/shared/id.js.map +1 -1
  215. package/dist/shared/mailer.d.ts +15 -2
  216. package/dist/shared/mailer.js +32 -5
  217. package/dist/shared/mailer.js.map +1 -1
  218. package/dist/shared/network.d.ts +10 -0
  219. package/dist/shared/network.js +211 -0
  220. package/dist/shared/network.js.map +1 -0
  221. package/dist/shared/notification-categories.d.ts +16 -0
  222. package/dist/shared/notification-categories.js +94 -0
  223. package/dist/shared/notification-categories.js.map +1 -0
  224. package/dist/shared/notification-settings.d.ts +14 -0
  225. package/dist/shared/notification-settings.js +61 -0
  226. package/dist/shared/notification-settings.js.map +1 -0
  227. package/dist/shared/ports.d.ts +48 -2
  228. package/dist/shared/settings.d.ts +2 -1
  229. package/dist/shared/settings.js +1 -0
  230. package/dist/shared/settings.js.map +1 -1
  231. package/dist/types/assets.d.ts +2 -2
  232. package/dist/types/automations.d.ts +15 -1
  233. package/dist/types/content.d.ts +2 -2
  234. package/dist/types/discussion.d.ts +11 -3
  235. package/dist/types/email-templates.d.ts +216 -1
  236. package/dist/types/entitlements.d.ts +2 -2
  237. package/dist/types/identity.d.ts +48 -2
  238. package/dist/types/index.d.ts +9 -8
  239. package/dist/types/notifications.d.ts +157 -0
  240. package/dist/types/ports.d.ts +6 -0
  241. package/dist/types/schemas/assets.d.ts +65 -37
  242. package/dist/types/schemas/assets.js +17 -12
  243. package/dist/types/schemas/assets.js.map +1 -1
  244. package/dist/types/schemas/automations.d.ts +9 -1
  245. package/dist/types/schemas/automations.js +13 -6
  246. package/dist/types/schemas/automations.js.map +1 -1
  247. package/dist/types/schemas/content.d.ts +396 -3
  248. package/dist/types/schemas/content.js +161 -3
  249. package/dist/types/schemas/content.js.map +1 -1
  250. package/dist/types/schemas/discussion.d.ts +443 -3
  251. package/dist/types/schemas/discussion.js +233 -4
  252. package/dist/types/schemas/discussion.js.map +1 -1
  253. package/dist/types/schemas/entitlements.d.ts +36 -2
  254. package/dist/types/schemas/entitlements.js +23 -1
  255. package/dist/types/schemas/entitlements.js.map +1 -1
  256. package/dist/types/schemas/identity.d.ts +27 -1
  257. package/dist/types/schemas/identity.js +14 -2
  258. package/dist/types/schemas/identity.js.map +1 -1
  259. package/dist/types/schemas/index.d.ts +9 -8
  260. package/dist/types/schemas/index.js +9 -8
  261. package/dist/types/schemas/notifications.d.ts +95 -0
  262. package/dist/types/schemas/notifications.js +56 -0
  263. package/dist/types/schemas/notifications.js.map +1 -0
  264. package/dist/types/schemas/organizations.d.ts +8 -0
  265. package/dist/types/schemas/organizations.js +2 -0
  266. package/dist/types/schemas/organizations.js.map +1 -1
  267. package/dist/types/schemas/progress.d.ts +3 -3
  268. package/dist/types/schemas/shared.d.ts +3 -1
  269. package/dist/types/schemas/shared.js +5 -1
  270. package/dist/types/schemas/shared.js.map +1 -1
  271. package/package.json +2 -2
  272. package/dist/reporting/courses/index.d.ts +0 -4
  273. package/dist/reporting/courses/index.js +0 -2
  274. package/dist/reporting/courses/model.d.ts +0 -24
  275. package/dist/reporting/courses/ports.d.ts +0 -13
  276. package/dist/reporting/courses/service.d.ts +0 -19
  277. package/dist/reporting/courses/service.js +0 -20
  278. package/dist/reporting/courses/service.js.map +0 -1
  279. package/dist/reporting/dashboard/index.d.ts +0 -4
  280. package/dist/reporting/dashboard/index.js +0 -2
  281. package/dist/reporting/dashboard/model.d.ts +0 -14
  282. package/dist/reporting/dashboard/ports.d.ts +0 -13
  283. package/dist/reporting/dashboard/service.d.ts +0 -19
  284. package/dist/reporting/dashboard/service.js +0 -20
  285. package/dist/reporting/dashboard/service.js.map +0 -1
  286. package/dist/reporting/learn/index.d.ts +0 -5
  287. package/dist/reporting/learn/index.js +0 -2
  288. package/dist/reporting/learn/model.d.ts +0 -23
  289. package/dist/reporting/learn/ports.d.ts +0 -43
  290. package/dist/reporting/learn/service.d.ts +0 -49
  291. package/dist/reporting/learn/service.js +0 -116
  292. package/dist/reporting/learn/service.js.map +0 -1
  293. package/dist/reporting/students/index.d.ts +0 -4
  294. package/dist/reporting/students/index.js +0 -2
  295. package/dist/reporting/students/model.d.ts +0 -51
  296. package/dist/reporting/students/model.js +0 -1
  297. package/dist/reporting/students/ports.d.ts +0 -15
  298. package/dist/reporting/students/ports.js +0 -1
  299. package/dist/reporting/students/service.d.ts +0 -20
  300. package/dist/reporting/students/service.js +0 -23
  301. package/dist/reporting/students/service.js.map +0 -1
  302. /package/dist/reporting/{courses → admin}/model.js +0 -0
  303. /package/dist/reporting/{courses → admin}/ports.js +0 -0
  304. /package/dist/reporting/{dashboard → member}/model.js +0 -0
  305. /package/dist/reporting/{dashboard → member}/ports.js +0 -0
  306. /package/dist/{reporting/learn/model.js → shared/actor.js} +0 -0
  307. /package/dist/{reporting/learn/ports.js → types/notifications.js} +0 -0
@@ -20,9 +20,9 @@ declare const organizationEvents: {
20
20
  updatedAt: unknown;
21
21
  }, import("zod").ZodObject<{
22
22
  id: import("zod").ZodString;
23
- name: import("zod").ZodString;
24
23
  createdAt: import("zod").ZodCoercedDate<unknown>;
25
24
  updatedAt: import("zod").ZodCoercedDate<unknown>;
25
+ name: import("zod").ZodString;
26
26
  slug: import("zod").ZodString;
27
27
  ownerId: import("zod").ZodString;
28
28
  }, import("zod/v4/core").$strip>>;
@@ -44,9 +44,9 @@ declare const organizationEvents: {
44
44
  updatedAt: unknown;
45
45
  }, import("zod").ZodObject<{
46
46
  id: import("zod").ZodString;
47
- name: import("zod").ZodString;
48
47
  createdAt: import("zod").ZodCoercedDate<unknown>;
49
48
  updatedAt: import("zod").ZodCoercedDate<unknown>;
49
+ name: import("zod").ZodString;
50
50
  slug: import("zod").ZodString;
51
51
  ownerId: import("zod").ZodString;
52
52
  }, import("zod/v4/core").$strip>>;
@@ -68,9 +68,9 @@ declare const organizationEvents: {
68
68
  updatedAt: unknown;
69
69
  }, import("zod").ZodObject<{
70
70
  id: import("zod").ZodString;
71
- name: import("zod").ZodString;
72
71
  createdAt: import("zod").ZodCoercedDate<unknown>;
73
72
  updatedAt: import("zod").ZodCoercedDate<unknown>;
73
+ name: import("zod").ZodString;
74
74
  slug: import("zod").ZodString;
75
75
  ownerId: import("zod").ZodString;
76
76
  }, import("zod/v4/core").$strip>>;
@@ -78,7 +78,7 @@ declare const organizationEvents: {
78
78
  id: string;
79
79
  orgId: string;
80
80
  userId: string;
81
- role: "owner" | "admin" | "instructor" | "student";
81
+ role: "owner" | "admin" | "instructor" | "moderator" | "student";
82
82
  status: "active" | "invited";
83
83
  createdAt: Date;
84
84
  updatedAt: Date;
@@ -86,32 +86,33 @@ declare const organizationEvents: {
86
86
  id: string;
87
87
  orgId: string;
88
88
  userId: string;
89
- role: "owner" | "admin" | "instructor" | "student";
89
+ role: "owner" | "admin" | "instructor" | "moderator" | "student";
90
90
  status: "active" | "invited";
91
91
  createdAt: unknown;
92
92
  updatedAt: unknown;
93
93
  }, import("zod").ZodObject<{
94
- orgId: import("zod").ZodString;
95
94
  id: import("zod").ZodString;
95
+ orgId: import("zod").ZodString;
96
96
  createdAt: import("zod").ZodCoercedDate<unknown>;
97
97
  updatedAt: import("zod").ZodCoercedDate<unknown>;
98
98
  status: import("zod").ZodEnum<{
99
99
  active: "active";
100
100
  invited: "invited";
101
101
  }>;
102
- userId: import("zod").ZodString;
103
102
  role: import("zod").ZodEnum<{
104
103
  owner: "owner";
105
104
  admin: "admin";
106
105
  instructor: "instructor";
106
+ moderator: "moderator";
107
107
  student: "student";
108
108
  }>;
109
+ userId: import("zod").ZodString;
109
110
  }, import("zod/v4/core").$strip>>;
110
111
  orgUserDeleted: RuntimeEventDefinition<VersionedDomainEvent<{
111
112
  id: string;
112
113
  orgId: string;
113
114
  userId: string;
114
- role: "owner" | "admin" | "instructor" | "student";
115
+ role: "owner" | "admin" | "instructor" | "moderator" | "student";
115
116
  status: "active" | "invited";
116
117
  createdAt: Date;
117
118
  updatedAt: Date;
@@ -119,32 +120,67 @@ declare const organizationEvents: {
119
120
  id: string;
120
121
  orgId: string;
121
122
  userId: string;
122
- role: "owner" | "admin" | "instructor" | "student";
123
+ role: "owner" | "admin" | "instructor" | "moderator" | "student";
123
124
  status: "active" | "invited";
124
125
  createdAt: unknown;
125
126
  updatedAt: unknown;
126
127
  }, import("zod").ZodObject<{
127
- orgId: import("zod").ZodString;
128
128
  id: import("zod").ZodString;
129
+ orgId: import("zod").ZodString;
129
130
  createdAt: import("zod").ZodCoercedDate<unknown>;
130
131
  updatedAt: import("zod").ZodCoercedDate<unknown>;
131
132
  status: import("zod").ZodEnum<{
132
133
  active: "active";
133
134
  invited: "invited";
134
135
  }>;
136
+ role: import("zod").ZodEnum<{
137
+ owner: "owner";
138
+ admin: "admin";
139
+ instructor: "instructor";
140
+ moderator: "moderator";
141
+ student: "student";
142
+ }>;
135
143
  userId: import("zod").ZodString;
144
+ }, import("zod/v4/core").$strip>>;
145
+ orgUserUpdated: RuntimeEventDefinition<VersionedDomainEvent<{
146
+ id: string;
147
+ orgId: string;
148
+ userId: string;
149
+ role: "owner" | "admin" | "instructor" | "moderator" | "student";
150
+ status: "active" | "invited";
151
+ createdAt: Date;
152
+ updatedAt: Date;
153
+ }, "organization.user.updated", 1>, {
154
+ id: string;
155
+ orgId: string;
156
+ userId: string;
157
+ role: "owner" | "admin" | "instructor" | "moderator" | "student";
158
+ status: "active" | "invited";
159
+ createdAt: unknown;
160
+ updatedAt: unknown;
161
+ }, import("zod").ZodObject<{
162
+ id: import("zod").ZodString;
163
+ orgId: import("zod").ZodString;
164
+ createdAt: import("zod").ZodCoercedDate<unknown>;
165
+ updatedAt: import("zod").ZodCoercedDate<unknown>;
166
+ status: import("zod").ZodEnum<{
167
+ active: "active";
168
+ invited: "invited";
169
+ }>;
136
170
  role: import("zod").ZodEnum<{
137
171
  owner: "owner";
138
172
  admin: "admin";
139
173
  instructor: "instructor";
174
+ moderator: "moderator";
140
175
  student: "student";
141
176
  }>;
177
+ userId: import("zod").ZodString;
142
178
  }, import("zod/v4/core").$strip>>;
143
179
  inviteCreated: RuntimeEventDefinition<VersionedDomainEvent<{
144
180
  id: string;
145
181
  orgId: string;
146
182
  email: string;
147
- role: "admin" | "instructor" | "student";
183
+ role: "admin" | "instructor" | "moderator" | "student";
148
184
  status: "pending" | "accepted" | "rejected" | "canceled";
149
185
  invitedBy: string;
150
186
  tokenHash: string | null;
@@ -155,7 +191,7 @@ declare const organizationEvents: {
155
191
  id: string;
156
192
  orgId: string;
157
193
  email: string;
158
- role: "admin" | "instructor" | "student";
194
+ role: "admin" | "instructor" | "moderator" | "student";
159
195
  status: "pending" | "accepted" | "rejected" | "canceled";
160
196
  invitedBy: string;
161
197
  tokenHash: string | null;
@@ -163,8 +199,8 @@ declare const organizationEvents: {
163
199
  createdAt: unknown;
164
200
  updatedAt: unknown;
165
201
  }, import("zod").ZodObject<{
166
- orgId: import("zod").ZodString;
167
202
  id: import("zod").ZodString;
203
+ orgId: import("zod").ZodString;
168
204
  createdAt: import("zod").ZodCoercedDate<unknown>;
169
205
  updatedAt: import("zod").ZodCoercedDate<unknown>;
170
206
  status: import("zod").ZodEnum<{
@@ -174,19 +210,20 @@ declare const organizationEvents: {
174
210
  canceled: "canceled";
175
211
  }>;
176
212
  expiresAt: import("zod").ZodNullable<import("zod").ZodCoercedDate<unknown>>;
177
- email: import("zod").ZodEmail;
178
213
  role: import("zod").ZodEnum<{
179
214
  admin: "admin";
180
215
  instructor: "instructor";
216
+ moderator: "moderator";
181
217
  student: "student";
182
218
  }>;
219
+ email: import("zod").ZodEmail;
183
220
  invitedBy: import("zod").ZodString;
184
221
  }, import("zod/v4/core").$strip>>;
185
222
  inviteAccepted: RuntimeEventDefinition<VersionedDomainEvent<{
186
223
  id: string;
187
224
  orgId: string;
188
225
  email: string;
189
- role: "admin" | "instructor" | "student";
226
+ role: "admin" | "instructor" | "moderator" | "student";
190
227
  status: "pending" | "accepted" | "rejected" | "canceled";
191
228
  invitedBy: string;
192
229
  tokenHash: string | null;
@@ -197,7 +234,7 @@ declare const organizationEvents: {
197
234
  id: string;
198
235
  orgId: string;
199
236
  email: string;
200
- role: "admin" | "instructor" | "student";
237
+ role: "admin" | "instructor" | "moderator" | "student";
201
238
  status: "pending" | "accepted" | "rejected" | "canceled";
202
239
  invitedBy: string;
203
240
  tokenHash: string | null;
@@ -205,8 +242,8 @@ declare const organizationEvents: {
205
242
  createdAt: unknown;
206
243
  updatedAt: unknown;
207
244
  }, import("zod").ZodObject<{
208
- orgId: import("zod").ZodString;
209
245
  id: import("zod").ZodString;
246
+ orgId: import("zod").ZodString;
210
247
  createdAt: import("zod").ZodCoercedDate<unknown>;
211
248
  updatedAt: import("zod").ZodCoercedDate<unknown>;
212
249
  status: import("zod").ZodEnum<{
@@ -216,19 +253,20 @@ declare const organizationEvents: {
216
253
  canceled: "canceled";
217
254
  }>;
218
255
  expiresAt: import("zod").ZodNullable<import("zod").ZodCoercedDate<unknown>>;
219
- email: import("zod").ZodEmail;
220
256
  role: import("zod").ZodEnum<{
221
257
  admin: "admin";
222
258
  instructor: "instructor";
259
+ moderator: "moderator";
223
260
  student: "student";
224
261
  }>;
262
+ email: import("zod").ZodEmail;
225
263
  invitedBy: import("zod").ZodString;
226
264
  }, import("zod/v4/core").$strip>>;
227
265
  inviteCanceled: RuntimeEventDefinition<VersionedDomainEvent<{
228
266
  id: string;
229
267
  orgId: string;
230
268
  email: string;
231
- role: "admin" | "instructor" | "student";
269
+ role: "admin" | "instructor" | "moderator" | "student";
232
270
  status: "pending" | "accepted" | "rejected" | "canceled";
233
271
  invitedBy: string;
234
272
  tokenHash: string | null;
@@ -239,7 +277,7 @@ declare const organizationEvents: {
239
277
  id: string;
240
278
  orgId: string;
241
279
  email: string;
242
- role: "admin" | "instructor" | "student";
280
+ role: "admin" | "instructor" | "moderator" | "student";
243
281
  status: "pending" | "accepted" | "rejected" | "canceled";
244
282
  invitedBy: string;
245
283
  tokenHash: string | null;
@@ -251,7 +289,7 @@ declare const organizationEvents: {
251
289
  id: string;
252
290
  orgId: string;
253
291
  userId: string;
254
- role: "owner" | "admin" | "instructor" | "student";
292
+ role: "owner" | "admin" | "instructor" | "moderator" | "student";
255
293
  status: "active" | "invited";
256
294
  createdAt: Date;
257
295
  updatedAt: Date;
@@ -259,32 +297,33 @@ declare const organizationEvents: {
259
297
  id: string;
260
298
  orgId: string;
261
299
  userId: string;
262
- role: "owner" | "admin" | "instructor" | "student";
300
+ role: "owner" | "admin" | "instructor" | "moderator" | "student";
263
301
  status: "active" | "invited";
264
302
  createdAt: unknown;
265
303
  updatedAt: unknown;
266
304
  }, import("zod").ZodObject<{
267
- orgId: import("zod").ZodString;
268
305
  id: import("zod").ZodString;
306
+ orgId: import("zod").ZodString;
269
307
  createdAt: import("zod").ZodCoercedDate<unknown>;
270
308
  updatedAt: import("zod").ZodCoercedDate<unknown>;
271
309
  status: import("zod").ZodEnum<{
272
310
  active: "active";
273
311
  invited: "invited";
274
312
  }>;
275
- userId: import("zod").ZodString;
276
313
  role: import("zod").ZodEnum<{
277
314
  owner: "owner";
278
315
  admin: "admin";
279
316
  instructor: "instructor";
317
+ moderator: "moderator";
280
318
  student: "student";
281
319
  }>;
320
+ userId: import("zod").ZodString;
282
321
  }, import("zod/v4/core").$strip>>;
283
322
  studentDeleted: RuntimeEventDefinition<VersionedDomainEvent<{
284
323
  id: string;
285
324
  orgId: string;
286
325
  userId: string;
287
- role: "owner" | "admin" | "instructor" | "student";
326
+ role: "owner" | "admin" | "instructor" | "moderator" | "student";
288
327
  status: "active" | "invited";
289
328
  createdAt: Date;
290
329
  updatedAt: Date;
@@ -292,32 +331,33 @@ declare const organizationEvents: {
292
331
  id: string;
293
332
  orgId: string;
294
333
  userId: string;
295
- role: "owner" | "admin" | "instructor" | "student";
334
+ role: "owner" | "admin" | "instructor" | "moderator" | "student";
296
335
  status: "active" | "invited";
297
336
  createdAt: unknown;
298
337
  updatedAt: unknown;
299
338
  }, import("zod").ZodObject<{
300
- orgId: import("zod").ZodString;
301
339
  id: import("zod").ZodString;
340
+ orgId: import("zod").ZodString;
302
341
  createdAt: import("zod").ZodCoercedDate<unknown>;
303
342
  updatedAt: import("zod").ZodCoercedDate<unknown>;
304
343
  status: import("zod").ZodEnum<{
305
344
  active: "active";
306
345
  invited: "invited";
307
346
  }>;
308
- userId: import("zod").ZodString;
309
347
  role: import("zod").ZodEnum<{
310
348
  owner: "owner";
311
349
  admin: "admin";
312
350
  instructor: "instructor";
351
+ moderator: "moderator";
313
352
  student: "student";
314
353
  }>;
354
+ userId: import("zod").ZodString;
315
355
  }, import("zod/v4/core").$strip>>;
316
356
  studentLinked: RuntimeEventDefinition<VersionedDomainEvent<{
317
357
  id: string;
318
358
  orgId: string;
319
359
  userId: string;
320
- role: "owner" | "admin" | "instructor" | "student";
360
+ role: "owner" | "admin" | "instructor" | "moderator" | "student";
321
361
  status: "active" | "invited";
322
362
  createdAt: Date;
323
363
  updatedAt: Date;
@@ -325,26 +365,27 @@ declare const organizationEvents: {
325
365
  id: string;
326
366
  orgId: string;
327
367
  userId: string;
328
- role: "owner" | "admin" | "instructor" | "student";
368
+ role: "owner" | "admin" | "instructor" | "moderator" | "student";
329
369
  status: "active" | "invited";
330
370
  createdAt: unknown;
331
371
  updatedAt: unknown;
332
372
  }, import("zod").ZodObject<{
333
- orgId: import("zod").ZodString;
334
373
  id: import("zod").ZodString;
374
+ orgId: import("zod").ZodString;
335
375
  createdAt: import("zod").ZodCoercedDate<unknown>;
336
376
  updatedAt: import("zod").ZodCoercedDate<unknown>;
337
377
  status: import("zod").ZodEnum<{
338
378
  active: "active";
339
379
  invited: "invited";
340
380
  }>;
341
- userId: import("zod").ZodString;
342
381
  role: import("zod").ZodEnum<{
343
382
  owner: "owner";
344
383
  admin: "admin";
345
384
  instructor: "instructor";
385
+ moderator: "moderator";
346
386
  student: "student";
347
387
  }>;
388
+ userId: import("zod").ZodString;
348
389
  }, import("zod/v4/core").$strip>>;
349
390
  };
350
391
  type OrganizationCreated = EventOf<typeof organizationEvents.organizationCreated>;
@@ -352,6 +393,7 @@ type OrganizationUpdated = EventOf<typeof organizationEvents.organizationUpdated
352
393
  type OrganizationDeleted = EventOf<typeof organizationEvents.organizationDeleted>;
353
394
  type OrgUserLinked = EventOf<typeof organizationEvents.orgUserLinked>;
354
395
  type OrgUserDeleted = EventOf<typeof organizationEvents.orgUserDeleted>;
396
+ type OrgUserUpdated = EventOf<typeof organizationEvents.orgUserUpdated>;
355
397
  type InviteCreated = EventOf<typeof organizationEvents.inviteCreated>;
356
398
  type InviteAccepted = EventOf<typeof organizationEvents.inviteAccepted>;
357
399
  type InviteCanceled = EventOf<typeof organizationEvents.inviteCanceled>;
@@ -360,5 +402,5 @@ type StudentDeleted = EventOf<typeof organizationEvents.studentDeleted>;
360
402
  type StudentLinked = EventOf<typeof organizationEvents.studentLinked>;
361
403
  type OrganizationEvent = EventOfValues<typeof organizationEvents>;
362
404
  //#endregion
363
- export { InviteAccepted, InviteCanceled, InviteCreated, OrgUserDeleted, OrgUserLinked, OrganizationCreated, OrganizationDeleted, OrganizationEvent, OrganizationUpdated, StudentCreated, StudentDeleted, StudentLinked, organizationEvents };
405
+ export { InviteAccepted, InviteCanceled, InviteCreated, OrgUserDeleted, OrgUserLinked, OrgUserUpdated, OrganizationCreated, OrganizationDeleted, OrganizationEvent, OrganizationUpdated, StudentCreated, StudentDeleted, StudentLinked, organizationEvents };
364
406
  //# sourceMappingURL=events.d.ts.map
@@ -60,6 +60,12 @@ const organizationEvents = {
60
60
  data: orgUserSchema,
61
61
  publicData: publicOrgUser
62
62
  }),
63
+ orgUserUpdated: defineEvent({
64
+ type: "organization.user.updated",
65
+ version: 1,
66
+ data: orgUserSchema,
67
+ publicData: publicOrgUser
68
+ }),
63
69
  inviteCreated: defineEvent({
64
70
  type: "organization.invite.created",
65
71
  version: 1,
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","names":[],"sources":["../../src/organizations/events.ts"],"sourcesContent":["import { inviteSchema, organizationSchema, orgUserSchema } from '../types/schemas/index.js';\nimport { defineEvent, type EventOf, type EventOfValues } from '../shared/ports.js';\n\nconst publicOrganization = organizationSchema\n .pick({\n id: true,\n name: true,\n slug: true,\n ownerId: true,\n createdAt: true,\n updatedAt: true,\n })\n .strip();\n\nconst publicOrgUser = orgUserSchema\n .pick({\n id: true,\n orgId: true,\n userId: true,\n role: true,\n status: true,\n createdAt: true,\n updatedAt: true,\n })\n .strip();\n\nconst publicInvite = inviteSchema\n .pick({\n id: true,\n orgId: true,\n email: true,\n role: true,\n status: true,\n invitedBy: true,\n expiresAt: true,\n createdAt: true,\n updatedAt: true,\n })\n .strip();\n\nexport const organizationEvents = {\n organizationCreated: defineEvent({\n type: 'organization.created',\n version: 1,\n data: organizationSchema,\n publicData: publicOrganization,\n }),\n organizationUpdated: defineEvent({\n type: 'organization.updated',\n version: 1,\n data: organizationSchema,\n publicData: publicOrganization,\n }),\n organizationDeleted: defineEvent({\n type: 'organization.deleted',\n version: 1,\n data: organizationSchema,\n publicData: publicOrganization,\n }),\n orgUserLinked: defineEvent({\n type: 'organization.user.linked',\n version: 1,\n data: orgUserSchema,\n publicData: publicOrgUser,\n }),\n orgUserDeleted: defineEvent({\n type: 'organization.user.deleted',\n version: 1,\n data: orgUserSchema,\n publicData: publicOrgUser,\n }),\n inviteCreated: defineEvent({\n type: 'organization.invite.created',\n version: 1,\n data: inviteSchema,\n publicData: publicInvite,\n }),\n inviteAccepted: defineEvent({\n type: 'organization.invite.accepted',\n version: 1,\n data: inviteSchema,\n publicData: publicInvite,\n }),\n inviteCanceled: defineEvent({\n type: 'organization.invite.canceled',\n version: 1,\n data: inviteSchema,\n }),\n studentCreated: defineEvent({\n type: 'organization.student.created',\n version: 1,\n data: orgUserSchema,\n publicData: publicOrgUser,\n }),\n studentDeleted: defineEvent({\n type: 'organization.student.deleted',\n version: 1,\n data: orgUserSchema,\n publicData: publicOrgUser,\n }),\n studentLinked: defineEvent({\n type: 'organization.student.linked',\n version: 1,\n data: orgUserSchema,\n publicData: publicOrgUser,\n }),\n};\n\nexport type OrganizationCreated = EventOf<typeof organizationEvents.organizationCreated>;\nexport type OrganizationUpdated = EventOf<typeof organizationEvents.organizationUpdated>;\nexport type OrganizationDeleted = EventOf<typeof organizationEvents.organizationDeleted>;\nexport type OrgUserLinked = EventOf<typeof organizationEvents.orgUserLinked>;\nexport type OrgUserDeleted = EventOf<typeof organizationEvents.orgUserDeleted>;\nexport type InviteCreated = EventOf<typeof organizationEvents.inviteCreated>;\nexport type InviteAccepted = EventOf<typeof organizationEvents.inviteAccepted>;\nexport type InviteCanceled = EventOf<typeof organizationEvents.inviteCanceled>;\nexport type StudentCreated = EventOf<typeof organizationEvents.studentCreated>;\nexport type StudentDeleted = EventOf<typeof organizationEvents.studentDeleted>;\nexport type StudentLinked = EventOf<typeof organizationEvents.studentLinked>;\nexport type OrganizationEvent = EventOfValues<typeof organizationEvents>;\n"],"mappings":";;;AAGA,MAAM,qBAAqB,mBACxB,KAAK;CACJ,IAAI;CACJ,MAAM;CACN,MAAM;CACN,SAAS;CACT,WAAW;CACX,WAAW;AACb,CAAC,CAAC,CACD,MAAM;AAET,MAAM,gBAAgB,cACnB,KAAK;CACJ,IAAI;CACJ,OAAO;CACP,QAAQ;CACR,MAAM;CACN,QAAQ;CACR,WAAW;CACX,WAAW;AACb,CAAC,CAAC,CACD,MAAM;AAET,MAAM,eAAe,aAClB,KAAK;CACJ,IAAI;CACJ,OAAO;CACP,OAAO;CACP,MAAM;CACN,QAAQ;CACR,WAAW;CACX,WAAW;CACX,WAAW;CACX,WAAW;AACb,CAAC,CAAC,CACD,MAAM;AAET,MAAa,qBAAqB;CAChC,qBAAqB,YAAY;EAC/B,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,qBAAqB,YAAY;EAC/B,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,qBAAqB,YAAY;EAC/B,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,eAAe,YAAY;EACzB,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,gBAAgB,YAAY;EAC1B,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,eAAe,YAAY;EACzB,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,gBAAgB,YAAY;EAC1B,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,gBAAgB,YAAY;EAC1B,MAAM;EACN,SAAS;EACT,MAAM;CACR,CAAC;CACD,gBAAgB,YAAY;EAC1B,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,gBAAgB,YAAY;EAC1B,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,eAAe,YAAY;EACzB,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;AACH"}
1
+ {"version":3,"file":"events.js","names":[],"sources":["../../src/organizations/events.ts"],"sourcesContent":["import { inviteSchema, organizationSchema, orgUserSchema } from '../types/schemas/index.js';\nimport { defineEvent, type EventOf, type EventOfValues } from '../shared/ports.js';\n\nconst publicOrganization = organizationSchema\n .pick({\n id: true,\n name: true,\n slug: true,\n ownerId: true,\n createdAt: true,\n updatedAt: true,\n })\n .strip();\n\nconst publicOrgUser = orgUserSchema\n .pick({\n id: true,\n orgId: true,\n userId: true,\n role: true,\n status: true,\n createdAt: true,\n updatedAt: true,\n })\n .strip();\n\nconst publicInvite = inviteSchema\n .pick({\n id: true,\n orgId: true,\n email: true,\n role: true,\n status: true,\n invitedBy: true,\n expiresAt: true,\n createdAt: true,\n updatedAt: true,\n })\n .strip();\n\nexport const organizationEvents = {\n organizationCreated: defineEvent({\n type: 'organization.created',\n version: 1,\n data: organizationSchema,\n publicData: publicOrganization,\n }),\n organizationUpdated: defineEvent({\n type: 'organization.updated',\n version: 1,\n data: organizationSchema,\n publicData: publicOrganization,\n }),\n organizationDeleted: defineEvent({\n type: 'organization.deleted',\n version: 1,\n data: organizationSchema,\n publicData: publicOrganization,\n }),\n orgUserLinked: defineEvent({\n type: 'organization.user.linked',\n version: 1,\n data: orgUserSchema,\n publicData: publicOrgUser,\n }),\n orgUserDeleted: defineEvent({\n type: 'organization.user.deleted',\n version: 1,\n data: orgUserSchema,\n publicData: publicOrgUser,\n }),\n orgUserUpdated: defineEvent({\n type: 'organization.user.updated',\n version: 1,\n data: orgUserSchema,\n publicData: publicOrgUser,\n }),\n inviteCreated: defineEvent({\n type: 'organization.invite.created',\n version: 1,\n data: inviteSchema,\n publicData: publicInvite,\n }),\n inviteAccepted: defineEvent({\n type: 'organization.invite.accepted',\n version: 1,\n data: inviteSchema,\n publicData: publicInvite,\n }),\n inviteCanceled: defineEvent({\n type: 'organization.invite.canceled',\n version: 1,\n data: inviteSchema,\n }),\n studentCreated: defineEvent({\n type: 'organization.student.created',\n version: 1,\n data: orgUserSchema,\n publicData: publicOrgUser,\n }),\n studentDeleted: defineEvent({\n type: 'organization.student.deleted',\n version: 1,\n data: orgUserSchema,\n publicData: publicOrgUser,\n }),\n studentLinked: defineEvent({\n type: 'organization.student.linked',\n version: 1,\n data: orgUserSchema,\n publicData: publicOrgUser,\n }),\n};\n\nexport type OrganizationCreated = EventOf<typeof organizationEvents.organizationCreated>;\nexport type OrganizationUpdated = EventOf<typeof organizationEvents.organizationUpdated>;\nexport type OrganizationDeleted = EventOf<typeof organizationEvents.organizationDeleted>;\nexport type OrgUserLinked = EventOf<typeof organizationEvents.orgUserLinked>;\nexport type OrgUserDeleted = EventOf<typeof organizationEvents.orgUserDeleted>;\nexport type OrgUserUpdated = EventOf<typeof organizationEvents.orgUserUpdated>;\nexport type InviteCreated = EventOf<typeof organizationEvents.inviteCreated>;\nexport type InviteAccepted = EventOf<typeof organizationEvents.inviteAccepted>;\nexport type InviteCanceled = EventOf<typeof organizationEvents.inviteCanceled>;\nexport type StudentCreated = EventOf<typeof organizationEvents.studentCreated>;\nexport type StudentDeleted = EventOf<typeof organizationEvents.studentDeleted>;\nexport type StudentLinked = EventOf<typeof organizationEvents.studentLinked>;\nexport type OrganizationEvent = EventOfValues<typeof organizationEvents>;\n"],"mappings":";;;AAGA,MAAM,qBAAqB,mBACxB,KAAK;CACJ,IAAI;CACJ,MAAM;CACN,MAAM;CACN,SAAS;CACT,WAAW;CACX,WAAW;AACb,CAAC,CAAC,CACD,MAAM;AAET,MAAM,gBAAgB,cACnB,KAAK;CACJ,IAAI;CACJ,OAAO;CACP,QAAQ;CACR,MAAM;CACN,QAAQ;CACR,WAAW;CACX,WAAW;AACb,CAAC,CAAC,CACD,MAAM;AAET,MAAM,eAAe,aAClB,KAAK;CACJ,IAAI;CACJ,OAAO;CACP,OAAO;CACP,MAAM;CACN,QAAQ;CACR,WAAW;CACX,WAAW;CACX,WAAW;CACX,WAAW;AACb,CAAC,CAAC,CACD,MAAM;AAET,MAAa,qBAAqB;CAChC,qBAAqB,YAAY;EAC/B,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,qBAAqB,YAAY;EAC/B,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,qBAAqB,YAAY;EAC/B,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,eAAe,YAAY;EACzB,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,gBAAgB,YAAY;EAC1B,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,gBAAgB,YAAY;EAC1B,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,eAAe,YAAY;EACzB,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,gBAAgB,YAAY;EAC1B,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,gBAAgB,YAAY;EAC1B,MAAM;EACN,SAAS;EACT,MAAM;CACR,CAAC;CACD,gBAAgB,YAAY;EAC1B,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,gBAAgB,YAAY;EAC1B,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,eAAe,YAAY;EACzB,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;AACH"}
@@ -1,11 +1,13 @@
1
1
  import { AcceptInviteInput, AddOrgUserInput, CreateInviteInput, CreateOrgUserInput, Invite, InviteRole, NewOrganizationInput, OrgUser, OrgUserStatus, Organization, Role, UpdateOrgUserInput } from "../types/schemas/organizations.js";
2
2
  import { InviteId, OrgUserId, OrganizationId } from "../types/organizations.js";
3
- import { AuthHeaders } from "../identity/ports.js";
4
- import { InviteAccepted, InviteCanceled, InviteCreated, OrgUserDeleted, OrgUserLinked, OrganizationCreated, OrganizationDeleted, OrganizationEvent, OrganizationUpdated, StudentCreated, StudentDeleted, StudentLinked, organizationEvents } from "./events.js";
5
3
  import "./model.js";
6
- import { Capability, Permission, ROLES, STAFF_ROLES, STUDENT_ROLE, StaffRole, capability, isRole, isStaffRole, normalizeRole, parseRole } from "./roles.js";
7
- import { Member, MemberStatus, MembersQuery, OrganizationRuleError, Page } from "./members.js";
8
- import { CreateOrganizationInput, LinkOrgUserInput, ResendStudentInviteInput, UnlinkOrgUserInput, UpdateOrganizationInput, UpdatePersonInput, UpdateStudentInput } from "./types.js";
4
+ import { Capability, Permission, ROLES, STAFF_ROLES, STUDENT_ROLE, StaffRole, TeamRole, canModerate, capability, isRole, isStaffRole, normalizeRole, parseRole } from "./roles.js";
5
+ import { InviteError, Member, MemberRoleChange, MemberStatus, MembersQuery, OrganizationRuleError, Page } from "./members.js";
6
+ import { CreateOrganizationInput, LinkOrgUserInput, ResendStudentInviteInput, UnlinkOrgUserInput, UpdateOrganizationInput } from "./types.js";
7
+ import { AuthHeaders } from "../identity/ports.js";
9
8
  import { AuthOrganization, MemberRecord, MemberWriteContext, MembersRepository, NewInviteRow, NewOrganizationRow, OrgAdmin, OrganizationService, OrganizationsRepository } from "./ports.js";
10
9
  import { OrganizationServiceImpl } from "./service.js";
11
- export { type AcceptInviteInput, type AddOrgUserInput, type AuthHeaders, type AuthOrganization, type Capability, type CreateInviteInput, type CreateOrgUserInput, type CreateOrganizationInput, type Invite, type InviteAccepted, type InviteCanceled, type InviteCreated, type InviteId, type InviteRole, type LinkOrgUserInput, type Member, type MemberRecord, type MemberStatus, type MemberWriteContext, type MembersQuery, type MembersRepository, type NewInviteRow, type NewOrganizationInput, type NewOrganizationRow, type OrgAdmin, type OrgUser, type OrgUserDeleted, type OrgUserId, type OrgUserLinked, type OrgUserStatus, type Organization, type OrganizationCreated, type OrganizationDeleted, type OrganizationEvent, type OrganizationId, OrganizationRuleError, type OrganizationService, OrganizationServiceImpl, type OrganizationUpdated, type OrganizationsRepository, type Page, type Permission, ROLES, type ResendStudentInviteInput, type Role, STAFF_ROLES, STUDENT_ROLE, type StaffRole, type StudentCreated, type StudentDeleted, type StudentLinked, type UnlinkOrgUserInput, type UpdateOrgUserInput, type UpdateOrganizationInput, type UpdatePersonInput, type UpdateStudentInput, capability, isRole, isStaffRole, normalizeRole, organizationEvents, parseRole };
10
+ import { OrgNotificationCategories } from "./notification-categories.js";
11
+ import { InviteAccepted, InviteCanceled, InviteCreated, OrgUserDeleted, OrgUserLinked, OrgUserUpdated, OrganizationCreated, OrganizationDeleted, OrganizationEvent, OrganizationUpdated, StudentCreated, StudentDeleted, StudentLinked, organizationEvents } from "./events.js";
12
+ import { ACCESS_SCOPES, AccessScope, SCOPE_PERMISSION, ScopeOption, assertRoleHoldsScopes, isAccessScope, isDeleteScope, roleHoldsScope, scopeOptions, scopesForRole } from "./access-scopes.js";
13
+ export { ACCESS_SCOPES, type AcceptInviteInput, AccessScope, type AddOrgUserInput, type AuthHeaders, type AuthOrganization, type Capability, type CreateInviteInput, type CreateOrgUserInput, type CreateOrganizationInput, type Invite, type InviteAccepted, type InviteCanceled, type InviteCreated, InviteError, type InviteId, type InviteRole, type LinkOrgUserInput, type Member, type MemberRecord, type MemberRoleChange, type MemberStatus, type MemberWriteContext, type MembersQuery, type MembersRepository, type NewInviteRow, type NewOrganizationInput, type NewOrganizationRow, type OrgAdmin, OrgNotificationCategories, type OrgUser, type OrgUserDeleted, type OrgUserId, type OrgUserLinked, type OrgUserStatus, type OrgUserUpdated, type Organization, type OrganizationCreated, type OrganizationDeleted, type OrganizationEvent, type OrganizationId, OrganizationRuleError, type OrganizationService, OrganizationServiceImpl, type OrganizationUpdated, type OrganizationsRepository, type Page, type Permission, ROLES, type ResendStudentInviteInput, type Role, SCOPE_PERMISSION, STAFF_ROLES, STUDENT_ROLE, ScopeOption, type StaffRole, type StudentCreated, type StudentDeleted, type StudentLinked, type TeamRole, type UnlinkOrgUserInput, type UpdateOrgUserInput, type UpdateOrganizationInput, assertRoleHoldsScopes, canModerate, capability, isAccessScope, isDeleteScope, isRole, isStaffRole, normalizeRole, organizationEvents, parseRole, roleHoldsScope, scopeOptions, scopesForRole };
@@ -1,5 +1,7 @@
1
- import { ROLES, STAFF_ROLES, STUDENT_ROLE, capability, isRole, isStaffRole, normalizeRole, parseRole } from "./roles.js";
2
- import { OrganizationRuleError } from "./members.js";
1
+ import { ROLES, STAFF_ROLES, STUDENT_ROLE, canModerate, capability, isRole, isStaffRole, normalizeRole, parseRole } from "./roles.js";
2
+ import { InviteError, OrganizationRuleError } from "./members.js";
3
3
  import { organizationEvents } from "./events.js";
4
4
  import { OrganizationServiceImpl } from "./service.js";
5
- export { OrganizationRuleError, OrganizationServiceImpl, ROLES, STAFF_ROLES, STUDENT_ROLE, capability, isRole, isStaffRole, normalizeRole, organizationEvents, parseRole };
5
+ import { OrgNotificationCategories } from "./notification-categories.js";
6
+ import { ACCESS_SCOPES, SCOPE_PERMISSION, assertRoleHoldsScopes, isAccessScope, isDeleteScope, roleHoldsScope, scopeOptions, scopesForRole } from "./access-scopes.js";
7
+ export { ACCESS_SCOPES, InviteError, OrgNotificationCategories, OrganizationRuleError, OrganizationServiceImpl, ROLES, SCOPE_PERMISSION, STAFF_ROLES, STUDENT_ROLE, assertRoleHoldsScopes, canModerate, capability, isAccessScope, isDeleteScope, isRole, isStaffRole, normalizeRole, organizationEvents, parseRole, roleHoldsScope, scopeOptions, scopesForRole };
@@ -1,20 +1,23 @@
1
- import { OrgUserProfile } from "../types/schemas/organizations.js";
1
+ import { OrgUserProfile, Role } from "../types/schemas/organizations.js";
2
2
  import "../types/index.js";
3
- import { StaffRole } from "./roles.js";
3
+ import { TeamRole } from "./roles.js";
4
4
  //#region src/organizations/members.d.ts
5
5
  type MemberStatus = 'active' | 'invited';
6
6
  interface Member extends OrgUserProfile {
7
- role: StaffRole;
7
+ role: TeamRole;
8
8
  status: MemberStatus;
9
9
  joinedAt: string | null;
10
10
  invitedAt: string | null;
11
11
  }
12
+ interface MemberRoleChange extends Omit<Member, 'role'> {
13
+ role: Role;
14
+ }
12
15
  interface MembersQuery {
13
16
  page: number;
14
17
  pageSize: number;
15
18
  search?: string | undefined;
16
19
  sort?: string | undefined;
17
- role?: StaffRole | undefined;
20
+ role?: TeamRole | undefined;
18
21
  status?: MemberStatus | undefined;
19
22
  }
20
23
  interface Page<T> {
@@ -28,5 +31,5 @@ declare class InviteError extends Error {
28
31
  constructor(message: string);
29
32
  }
30
33
  //#endregion
31
- export { InviteError, Member, MemberStatus, MembersQuery, OrganizationRuleError, Page };
34
+ export { InviteError, Member, MemberRoleChange, MemberStatus, MembersQuery, OrganizationRuleError, Page };
32
35
  //# sourceMappingURL=members.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"members.js","names":[],"sources":["../../src/organizations/members.ts"],"sourcesContent":["// organizations context — member-management types (invite / change-role / remove).\n// The operational surface over the org's members and pending invites. Roles\n// come from ./roles.ts (the single role model); writes go through Better Auth.\nimport type { StaffRole } from './roles.js';\nimport type { OrgUserProfile } from '../types/index.js';\n\nexport type MemberStatus = 'active' | 'invited';\n\nexport interface Member extends OrgUserProfile {\n role: StaffRole;\n status: MemberStatus;\n joinedAt: string | null;\n invitedAt: string | null;\n}\n\nexport interface MembersQuery {\n page: number;\n pageSize: number;\n search?: string | undefined;\n sort?: string | undefined;\n role?: StaffRole | undefined;\n status?: MemberStatus | undefined;\n}\n\nexport interface Page<T> {\n rows: T[];\n total: number;\n page: number;\n pageSize: number;\n}\n\nexport class OrganizationRuleError extends Error {}\nexport class InviteError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'InviteError';\n }\n}\n"],"mappings":";AA+BA,IAAa,wBAAb,cAA2C,MAAM,CAAC;AAClD,IAAa,cAAb,cAAiC,MAAM;CACrC,YAAY,SAAiB;EAC3B,MAAM,OAAO;EACb,KAAK,OAAO;CACd;AACF"}
1
+ {"version":3,"file":"members.js","names":[],"sources":["../../src/organizations/members.ts"],"sourcesContent":["// organizations context — member-management types (invite / change-role / remove).\n// The operational surface over the org's members and pending invites. Roles\n// come from ./roles.ts (the single role model); writes go through Better Auth.\nimport type { Role, TeamRole } from './roles.js';\nimport type { OrgUserProfile } from '../types/index.js';\n\nexport type MemberStatus = 'active' | 'invited';\n\nexport interface Member extends OrgUserProfile {\n role: TeamRole;\n status: MemberStatus;\n joinedAt: string | null;\n invitedAt: string | null;\n}\n\nexport interface MemberRoleChange extends Omit<Member, 'role'> {\n role: Role;\n}\n\nexport interface MembersQuery {\n page: number;\n pageSize: number;\n search?: string | undefined;\n sort?: string | undefined;\n role?: TeamRole | undefined;\n status?: MemberStatus | undefined;\n}\n\nexport interface Page<T> {\n rows: T[];\n total: number;\n page: number;\n pageSize: number;\n}\n\nexport class OrganizationRuleError extends Error {}\nexport class InviteError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'InviteError';\n }\n}\n"],"mappings":";AAmCA,IAAa,wBAAb,cAA2C,MAAM,CAAC;AAClD,IAAa,cAAb,cAAiC,MAAM;CACrC,YAAY,SAAiB;EAC3B,MAAM,OAAO;EACb,KAAK,OAAO;CACd;AACF"}
@@ -0,0 +1,32 @@
1
+ import { Logger } from "../types/ports.js";
2
+ import { NotificationCategory } from "../types/notifications.js";
3
+ import "../types/index.js";
4
+ import { ChannelRegistry, NotificationCategoryService, NotificationTypeRegistry } from "../shared/ports.js";
5
+ import { SettingsService } from "../shared/settings.js";
6
+ //#region src/organizations/notification-categories.d.ts
7
+ type OrgNotificationCategoriesParams = {
8
+ settings: SettingsService;
9
+ types: NotificationTypeRegistry;
10
+ channels: ChannelRegistry;
11
+ logger?: Logger;
12
+ };
13
+ declare class OrgNotificationCategories implements NotificationCategoryService {
14
+ private readonly settings;
15
+ private readonly types;
16
+ private readonly channels;
17
+ private readonly logger;
18
+ constructor(params: OrgNotificationCategoriesParams);
19
+ get(orgId: string, scopeId: string): Promise<{
20
+ categories: NotificationCategory[];
21
+ source: 'default' | 'stored';
22
+ }>;
23
+ replace(orgId: string, scopeId: string, categories: NotificationCategory[]): Promise<{
24
+ categories: NotificationCategory[];
25
+ source: 'stored';
26
+ }>;
27
+ reset(orgId: string, scopeId: string): Promise<void>;
28
+ defaults(): NotificationCategory[];
29
+ }
30
+ //#endregion
31
+ export { OrgNotificationCategories, OrgNotificationCategoriesParams };
32
+ //# sourceMappingURL=notification-categories.d.ts.map
@@ -0,0 +1,51 @@
1
+ import { noopLogger } from "../shared/logger.js";
2
+ import "../shared/settings.js";
3
+ import { assertValidCategoryList, offeringConfigured, storedCategoryList } from "../shared/notification-categories.js";
4
+ //#region src/organizations/notification-categories.ts
5
+ var OrgNotificationCategories = class {
6
+ settings;
7
+ types;
8
+ channels;
9
+ logger;
10
+ constructor(params) {
11
+ this.settings = params.settings;
12
+ this.types = params.types;
13
+ this.channels = params.channels;
14
+ this.logger = params.logger ?? noopLogger;
15
+ }
16
+ async get(orgId, scopeId) {
17
+ const stored = storedCategoryList((await this.settings.get(orgId, "organizations", scopeId))?.notificationCategories);
18
+ return stored ? {
19
+ categories: offeringConfigured(stored, this.channels.list()),
20
+ source: "stored"
21
+ } : {
22
+ categories: this.defaults(),
23
+ source: "default"
24
+ };
25
+ }
26
+ async replace(orgId, scopeId, categories) {
27
+ const configured = this.channels.list();
28
+ assertValidCategoryList(categories, "org", this.types, configured);
29
+ const ordered = offeringConfigured(categories, configured);
30
+ await this.settings.patch(orgId, "organizations", scopeId, { notificationCategories: ordered });
31
+ this.logger.info("org notification categories replaced", {
32
+ orgId,
33
+ keys: categories.map((category) => category.key)
34
+ });
35
+ return {
36
+ categories: ordered,
37
+ source: "stored"
38
+ };
39
+ }
40
+ async reset(orgId, scopeId) {
41
+ await this.settings.patch(orgId, "organizations", scopeId, { notificationCategories: null });
42
+ this.logger.info("org notification categories reset", { orgId });
43
+ }
44
+ defaults() {
45
+ return this.types.defaults("org");
46
+ }
47
+ };
48
+ //#endregion
49
+ export { OrgNotificationCategories };
50
+
51
+ //# sourceMappingURL=notification-categories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification-categories.js","names":[],"sources":["../../src/organizations/notification-categories.ts"],"sourcesContent":["import type { NotificationCategory } from '../types/index.js';\nimport type {\n ChannelRegistry,\n Logger,\n NotificationCategoryService,\n NotificationTypeRegistry,\n} from '../shared/ports.js';\nimport { noopLogger } from '../shared/logger.js';\nimport { SettingsNamespace, type SettingsService } from '../shared/settings.js';\nimport {\n assertValidCategoryList,\n offeringConfigured,\n storedCategoryList,\n} from '../shared/notification-categories.js';\n\nexport type OrgNotificationCategoriesParams = {\n settings: SettingsService;\n types: NotificationTypeRegistry;\n channels: ChannelRegistry;\n logger?: Logger;\n};\n\nexport class OrgNotificationCategories implements NotificationCategoryService {\n private readonly settings: SettingsService;\n private readonly types: NotificationTypeRegistry;\n private readonly channels: ChannelRegistry;\n private readonly logger: Logger;\n\n constructor(params: OrgNotificationCategoriesParams) {\n this.settings = params.settings;\n this.types = params.types;\n this.channels = params.channels;\n this.logger = params.logger ?? noopLogger;\n }\n\n async get(\n orgId: string,\n scopeId: string,\n ): Promise<{ categories: NotificationCategory[]; source: 'default' | 'stored' }> {\n const value = await this.settings.get<Record<string, unknown>>(\n orgId,\n SettingsNamespace.organizations,\n scopeId,\n );\n const stored = storedCategoryList(value?.notificationCategories);\n return stored\n ? { categories: offeringConfigured(stored, this.channels.list()), source: 'stored' }\n : { categories: this.defaults(), source: 'default' };\n }\n\n async replace(\n orgId: string,\n scopeId: string,\n categories: NotificationCategory[],\n ): Promise<{ categories: NotificationCategory[]; source: 'stored' }> {\n const configured = this.channels.list();\n assertValidCategoryList(categories, 'org', this.types, configured);\n const ordered = offeringConfigured(categories, configured);\n await this.settings.patch(orgId, SettingsNamespace.organizations, scopeId, {\n notificationCategories: ordered,\n });\n this.logger.info('org notification categories replaced', {\n orgId,\n keys: categories.map((category) => category.key),\n });\n return { categories: ordered, source: 'stored' };\n }\n\n async reset(orgId: string, scopeId: string): Promise<void> {\n await this.settings.patch(orgId, SettingsNamespace.organizations, scopeId, {\n notificationCategories: null,\n });\n this.logger.info('org notification categories reset', { orgId });\n }\n\n defaults(): NotificationCategory[] {\n return this.types.defaults('org');\n }\n}\n"],"mappings":";;;;AAsBA,IAAa,4BAAb,MAA8E;CAC5E;CACA;CACA;CACA;CAEA,YAAY,QAAyC;EACnD,KAAK,WAAW,OAAO;EACvB,KAAK,QAAQ,OAAO;EACpB,KAAK,WAAW,OAAO;EACvB,KAAK,SAAS,OAAO,UAAU;CACjC;CAEA,MAAM,IACJ,OACA,SAC+E;EAM/E,MAAM,SAAS,oBAAmB,MALd,KAAK,SAAS,IAChC,OAAA,iBAEA,OACF,EAAA,EACyC,sBAAsB;EAC/D,OAAO,SACH;GAAE,YAAY,mBAAmB,QAAQ,KAAK,SAAS,KAAK,CAAC;GAAG,QAAQ;EAAS,IACjF;GAAE,YAAY,KAAK,SAAS;GAAG,QAAQ;EAAU;CACvD;CAEA,MAAM,QACJ,OACA,SACA,YACmE;EACnE,MAAM,aAAa,KAAK,SAAS,KAAK;EACtC,wBAAwB,YAAY,OAAO,KAAK,OAAO,UAAU;EACjE,MAAM,UAAU,mBAAmB,YAAY,UAAU;EACzD,MAAM,KAAK,SAAS,MAAM,OAAA,iBAAwC,SAAS,EACzE,wBAAwB,QAC1B,CAAC;EACD,KAAK,OAAO,KAAK,wCAAwC;GACvD;GACA,MAAM,WAAW,KAAK,aAAa,SAAS,GAAG;EACjD,CAAC;EACD,OAAO;GAAE,YAAY;GAAS,QAAQ;EAAS;CACjD;CAEA,MAAM,MAAM,OAAe,SAAgC;EACzD,MAAM,KAAK,SAAS,MAAM,OAAA,iBAAwC,SAAS,EACzE,wBAAwB,KAC1B,CAAC;EACD,KAAK,OAAO,KAAK,qCAAqC,EAAE,MAAM,CAAC;CACjE;CAEA,WAAmC;EACjC,OAAO,KAAK,MAAM,SAAS,KAAK;CAClC;AACF"}