@churchapps/apphelper 0.18.0 → 0.20.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 (176) hide show
  1. package/dist/components/ImageEditor.d.ts.map +1 -1
  2. package/dist/components/ImageEditor.js +0 -2
  3. package/dist/components/ImageEditor.js.map +1 -1
  4. package/dist/components/PageHeader.d.ts +4 -0
  5. package/dist/components/PageHeader.d.ts.map +1 -1
  6. package/dist/components/PageHeader.js +23 -26
  7. package/dist/components/PageHeader.js.map +1 -1
  8. package/dist/components/conversations/Conversations.d.ts +1 -7
  9. package/dist/components/conversations/Conversations.d.ts.map +1 -1
  10. package/dist/components/conversations/Conversations.js +1 -7
  11. package/dist/components/conversations/Conversations.js.map +1 -1
  12. package/dist/components/header/SiteHeader.d.ts.map +1 -1
  13. package/dist/components/header/SiteHeader.js +8 -12
  14. package/dist/components/header/SiteHeader.js.map +1 -1
  15. package/dist/components/notes/AddNote.d.ts.map +1 -1
  16. package/dist/components/notes/AddNote.js +2 -6
  17. package/dist/components/notes/AddNote.js.map +1 -1
  18. package/dist/components/notes/Notes.d.ts.map +1 -1
  19. package/dist/components/notes/Notes.js +3 -8
  20. package/dist/components/notes/Notes.js.map +1 -1
  21. package/dist/components/notes/SubscriptionToggle.d.ts +3 -19
  22. package/dist/components/notes/SubscriptionToggle.d.ts.map +1 -1
  23. package/dist/components/notes/SubscriptionToggle.js +3 -19
  24. package/dist/components/notes/SubscriptionToggle.js.map +1 -1
  25. package/dist/components/wrapper/PrivateMessageDetails.d.ts.map +1 -1
  26. package/dist/components/wrapper/PrivateMessageDetails.js +0 -2
  27. package/dist/components/wrapper/PrivateMessageDetails.js.map +1 -1
  28. package/dist/donations/components/CardForm.js.map +1 -1
  29. package/dist/donations/components/KingdomFundingTokenForm.d.ts.map +1 -1
  30. package/dist/donations/components/KingdomFundingTokenForm.js +2 -6
  31. package/dist/donations/components/KingdomFundingTokenForm.js.map +1 -1
  32. package/dist/donations/components/MultiGatewayDonationForm.d.ts.map +1 -1
  33. package/dist/donations/components/MultiGatewayDonationForm.js +8 -18
  34. package/dist/donations/components/MultiGatewayDonationForm.js.map +1 -1
  35. package/dist/donations/components/NonAuthDonation.d.ts.map +1 -1
  36. package/dist/donations/components/NonAuthDonation.js +0 -3
  37. package/dist/donations/components/NonAuthDonation.js.map +1 -1
  38. package/dist/donations/components/NonAuthDonationInner.d.ts.map +1 -1
  39. package/dist/donations/components/NonAuthDonationInner.js +1 -9
  40. package/dist/donations/components/NonAuthDonationInner.js.map +1 -1
  41. package/dist/donations/components/PayPalHostedFields.d.ts.map +1 -1
  42. package/dist/donations/components/PayPalHostedFields.js +0 -1
  43. package/dist/donations/components/PayPalHostedFields.js.map +1 -1
  44. package/dist/donations/components/PayPalNonAuthDonationInner.d.ts.map +1 -1
  45. package/dist/donations/components/PayPalNonAuthDonationInner.js +3 -11
  46. package/dist/donations/components/PayPalNonAuthDonationInner.js.map +1 -1
  47. package/dist/donations/components/PaymentMethods.d.ts.map +1 -1
  48. package/dist/donations/components/PaymentMethods.js +3 -14
  49. package/dist/donations/components/PaymentMethods.js.map +1 -1
  50. package/dist/donations/components/RecurringDonations.d.ts.map +1 -1
  51. package/dist/donations/components/RecurringDonations.js +1 -6
  52. package/dist/donations/components/RecurringDonations.js.map +1 -1
  53. package/dist/donations/helpers/DonationHelper.d.ts.map +1 -1
  54. package/dist/donations/helpers/DonationHelper.js +1 -4
  55. package/dist/donations/helpers/DonationHelper.js.map +1 -1
  56. package/dist/donations/providers/PayPalProvider.d.ts.map +1 -1
  57. package/dist/donations/providers/PayPalProvider.js +2 -9
  58. package/dist/donations/providers/PayPalProvider.js.map +1 -1
  59. package/dist/donations/providers/StripeInstanceContext.d.ts.map +1 -1
  60. package/dist/donations/providers/StripeInstanceContext.js +1 -3
  61. package/dist/donations/providers/StripeInstanceContext.js.map +1 -1
  62. package/dist/donations/providers/StripeProvider.d.ts.map +1 -1
  63. package/dist/donations/providers/StripeProvider.js +4 -12
  64. package/dist/donations/providers/StripeProvider.js.map +1 -1
  65. package/dist/donations/providers/index.d.ts.map +1 -1
  66. package/dist/donations/providers/index.js +0 -3
  67. package/dist/donations/providers/index.js.map +1 -1
  68. package/dist/donations/providers/registry.d.ts.map +1 -1
  69. package/dist/donations/providers/registry.js +1 -3
  70. package/dist/donations/providers/registry.js.map +1 -1
  71. package/dist/donations/providers/types.d.ts +2 -0
  72. package/dist/donations/providers/types.d.ts.map +1 -1
  73. package/dist/forms/components/FormSubmissionEdit.d.ts.map +1 -1
  74. package/dist/forms/components/FormSubmissionEdit.js +0 -3
  75. package/dist/forms/components/FormSubmissionEdit.js.map +1 -1
  76. package/dist/helpers/ConversationStore.d.ts +1 -13
  77. package/dist/helpers/ConversationStore.d.ts.map +1 -1
  78. package/dist/helpers/ConversationStore.js +4 -21
  79. package/dist/helpers/ConversationStore.js.map +1 -1
  80. package/dist/helpers/NotificationService.d.ts +0 -34
  81. package/dist/helpers/NotificationService.d.ts.map +1 -1
  82. package/dist/helpers/NotificationService.js +2 -59
  83. package/dist/helpers/NotificationService.js.map +1 -1
  84. package/dist/helpers/PresenceStore.d.ts +1 -8
  85. package/dist/helpers/PresenceStore.d.ts.map +1 -1
  86. package/dist/helpers/PresenceStore.js +1 -8
  87. package/dist/helpers/PresenceStore.js.map +1 -1
  88. package/dist/helpers/SocketHelper.d.ts.map +1 -1
  89. package/dist/helpers/SocketHelper.js +3 -18
  90. package/dist/helpers/SocketHelper.js.map +1 -1
  91. package/dist/helpers/SubscriptionManager.d.ts +1 -8
  92. package/dist/helpers/SubscriptionManager.d.ts.map +1 -1
  93. package/dist/helpers/SubscriptionManager.js +3 -22
  94. package/dist/helpers/SubscriptionManager.js.map +1 -1
  95. package/dist/helpers/WebPushHelper.d.ts +3 -17
  96. package/dist/helpers/WebPushHelper.d.ts.map +1 -1
  97. package/dist/helpers/WebPushHelper.js +3 -17
  98. package/dist/helpers/WebPushHelper.js.map +1 -1
  99. package/dist/helpers/createEmotionCache.d.ts.map +1 -1
  100. package/dist/helpers/createEmotionCache.js +1 -3
  101. package/dist/helpers/createEmotionCache.js.map +1 -1
  102. package/dist/hooks/useConversation.d.ts +1 -9
  103. package/dist/hooks/useConversation.d.ts.map +1 -1
  104. package/dist/hooks/useConversation.js +4 -12
  105. package/dist/hooks/useConversation.js.map +1 -1
  106. package/dist/hooks/useNotifications.d.ts +1 -19
  107. package/dist/hooks/useNotifications.d.ts.map +1 -1
  108. package/dist/hooks/useNotifications.js +1 -24
  109. package/dist/hooks/useNotifications.js.map +1 -1
  110. package/dist/login/LoginPage.d.ts.map +1 -1
  111. package/dist/login/LoginPage.js +11 -14
  112. package/dist/login/LoginPage.js.map +1 -1
  113. package/dist/login/components/Login.d.ts.map +1 -1
  114. package/dist/login/components/Login.js +2 -1
  115. package/dist/login/components/Login.js.map +1 -1
  116. package/dist/login/components/Register.d.ts.map +1 -1
  117. package/dist/login/components/Register.js +4 -3
  118. package/dist/login/components/Register.js.map +1 -1
  119. package/dist/login/components/SsoButtons.d.ts +3 -0
  120. package/dist/login/components/SsoButtons.d.ts.map +1 -0
  121. package/dist/login/components/SsoButtons.js +51 -0
  122. package/dist/login/components/SsoButtons.js.map +1 -0
  123. package/dist/login/index.d.ts +1 -0
  124. package/dist/login/index.d.ts.map +1 -1
  125. package/dist/login/index.js +1 -0
  126. package/dist/login/index.js.map +1 -1
  127. package/dist/markdown/components/htmlEditor/plugins/HtmlToolbarPlugin.d.ts.map +1 -1
  128. package/dist/markdown/components/htmlEditor/plugins/HtmlToolbarPlugin.js +0 -7
  129. package/dist/markdown/components/htmlEditor/plugins/HtmlToolbarPlugin.js.map +1 -1
  130. package/dist/markdown/components/htmlEditor/utils/cleanHtml.d.ts +1 -4
  131. package/dist/markdown/components/htmlEditor/utils/cleanHtml.d.ts.map +1 -1
  132. package/dist/markdown/components/htmlEditor/utils/cleanHtml.js +1 -17
  133. package/dist/markdown/components/htmlEditor/utils/cleanHtml.js.map +1 -1
  134. package/dist/markdown/components/markdownEditor/MarkdownPreviewLight.d.ts.map +1 -1
  135. package/dist/markdown/components/markdownEditor/MarkdownPreviewLight.js +5 -10
  136. package/dist/markdown/components/markdownEditor/MarkdownPreviewLight.js.map +1 -1
  137. package/dist/markdown/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.d.ts.map +1 -1
  138. package/dist/markdown/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.js +4 -11
  139. package/dist/markdown/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.js.map +1 -1
  140. package/dist/markdown/components/markdownEditor/plugins/ToolbarPlugin.d.ts.map +1 -1
  141. package/dist/markdown/components/markdownEditor/plugins/ToolbarPlugin.js +0 -2
  142. package/dist/markdown/components/markdownEditor/plugins/ToolbarPlugin.js.map +1 -1
  143. package/dist/markdown/components/markdownEditor/plugins/customLink/FloatingLinkEditor.d.ts.map +1 -1
  144. package/dist/markdown/components/markdownEditor/plugins/customLink/FloatingLinkEditor.js +1 -3
  145. package/dist/markdown/components/markdownEditor/plugins/customLink/FloatingLinkEditor.js.map +1 -1
  146. package/dist/public/locales/en.json +7 -3
  147. package/dist/website/components/Element.d.ts.map +1 -1
  148. package/dist/website/components/Element.js +2 -3
  149. package/dist/website/components/Element.js.map +1 -1
  150. package/dist/website/components/admin/calendar/CuratedEventCalendar.d.ts.map +1 -1
  151. package/dist/website/components/admin/calendar/CuratedEventCalendar.js +1 -3
  152. package/dist/website/components/admin/calendar/CuratedEventCalendar.js.map +1 -1
  153. package/dist/website/components/elementTypes/CalendarElement.d.ts +1 -5
  154. package/dist/website/components/elementTypes/CalendarElement.d.ts.map +1 -1
  155. package/dist/website/components/elementTypes/CalendarElement.js.map +1 -1
  156. package/dist/website/components/elementTypes/RawHTMLElement.d.ts.map +1 -1
  157. package/dist/website/components/elementTypes/RawHTMLElement.js +1 -3
  158. package/dist/website/components/elementTypes/RawHTMLElement.js.map +1 -1
  159. package/dist/website/components/eventCalendar/EventCalendar.d.ts.map +1 -1
  160. package/dist/website/components/eventCalendar/EventCalendar.js +1 -3
  161. package/dist/website/components/eventCalendar/EventCalendar.js.map +1 -1
  162. package/dist/website/components/groups/GroupCard.d.ts.map +1 -1
  163. package/dist/website/components/groups/GroupCard.js.map +1 -1
  164. package/dist/website/components/groups/GroupsBrowser.d.ts +2 -2
  165. package/dist/website/components/groups/GroupsBrowser.d.ts.map +1 -1
  166. package/dist/website/components/video/LiveStream.d.ts.map +1 -1
  167. package/dist/website/components/video/LiveStream.js.map +1 -1
  168. package/dist/website/helpers/StyleHelper.d.ts.map +1 -1
  169. package/dist/website/helpers/StyleHelper.js +1 -9
  170. package/dist/website/helpers/StyleHelper.js.map +1 -1
  171. package/dist/website/helpers/imageOptimizer.d.ts.map +1 -1
  172. package/dist/website/helpers/imageOptimizer.js +0 -3
  173. package/dist/website/helpers/imageOptimizer.js.map +1 -1
  174. package/dist/website/helpers/interfaces.d.ts +1 -7
  175. package/dist/website/helpers/interfaces.d.ts.map +1 -1
  176. package/package.json +2 -2
@@ -10,9 +10,6 @@ export class NotificationService {
10
10
  this.isInitialized = false;
11
11
  this.currentPersonId = null;
12
12
  this.loadTimeout = null;
13
- /**
14
- * Initialize the notification service with user context
15
- */
16
13
  this.initInFlight = null;
17
14
  this.changeUnsubscribe = null;
18
15
  }
@@ -25,18 +22,14 @@ export class NotificationService {
25
22
  async initialize(context) {
26
23
  const targetPersonId = context?.person?.id || null;
27
24
  const targetChurchId = context?.userChurch?.church?.id || null;
28
- // Re-init when context changes (church switch / different sign-in)
29
25
  if (this.isInitialized) {
30
26
  if (targetPersonId === this.currentPersonId && targetChurchId === SocketHelper.getPersonChurch().churchId) {
31
27
  return;
32
28
  }
33
- // context changed — tear down room subscriptions and conversation cache so they re-join under the new tenant
34
29
  SubscriptionManager.reset();
35
30
  ConversationStore.reset();
36
31
  }
37
- // Coalesce concurrent initialize() calls so multiple components mounting at once
38
- // don't each open their own WebSocket. The first caller drives the init; everyone
39
- // else awaits the same promise.
32
+ // Coalesce concurrent calls to avoid multiple WebSocket opens.
40
33
  if (this.initInFlight)
41
34
  return this.initInFlight;
42
35
  this.initInFlight = this.runInitialize(targetPersonId, targetChurchId, context);
@@ -50,28 +43,23 @@ export class NotificationService {
50
43
  async runInitialize(targetPersonId, targetChurchId, context) {
51
44
  try {
52
45
  this.currentPersonId = targetPersonId;
53
- // Initialize WebSocket connection (cleanup is idempotent — re-init reconnects cleanly)
54
46
  await SocketHelper.init();
55
- // Bind the singleton change listener once so future church switches reset cleanly
56
47
  if (!this.changeUnsubscribe) {
57
48
  this.changeUnsubscribe = SocketHelper.onPersonChurchChange(() => {
58
49
  SubscriptionManager.reset();
59
50
  ConversationStore.reset();
60
51
  });
61
52
  }
62
- // Set person/church context for websocket — triggers join of "alerts" room
63
53
  if (targetPersonId && targetChurchId) {
64
54
  SocketHelper.setPersonChurch({ personId: targetPersonId, churchId: targetChurchId });
65
55
  }
66
56
  else {
67
57
  console.warn("⚠️ NotificationService: Missing person/church IDs, cannot set socket context");
68
58
  }
69
- // Register handlers for notification updates + conversation broadcasts + reconnect rejoin
70
59
  this.registerWebSocketHandlers();
71
60
  ConversationStore.ensureHandlers();
72
61
  PresenceStore.ensureHandlers();
73
62
  SubscriptionManager.setupRejoin();
74
- // Load initial notification counts
75
63
  await this.loadNotificationCounts();
76
64
  this.isInitialized = true;
77
65
  }
@@ -80,11 +68,7 @@ export class NotificationService {
80
68
  throw error;
81
69
  }
82
70
  }
83
- /**
84
- * Register websocket handlers for real-time notification updates
85
- */
86
71
  registerWebSocketHandlers() {
87
- // Handler for new private messages
88
72
  SocketHelper.addHandler("privateMessage", "NotificationService-PM", (data) => {
89
73
  try {
90
74
  if (!this.applyCountsFromPayload(data))
@@ -94,7 +78,6 @@ export class NotificationService {
94
78
  console.error("❌ NotificationService: Error handling privateMessage socket event:", error);
95
79
  }
96
80
  });
97
- // Handler for general notifications
98
81
  SocketHelper.addHandler("notification", "NotificationService-Notification", (data) => {
99
82
  try {
100
83
  if (!this.applyCountsFromPayload(data))
@@ -104,9 +87,7 @@ export class NotificationService {
104
87
  console.error("❌ NotificationService: Error handling notification socket event:", error);
105
88
  }
106
89
  });
107
- // Handler for message updates that could affect notification counts
108
90
  SocketHelper.addHandler("message", "NotificationService-MessageUpdate", (data) => {
109
- // Only update counts if the message update involves the current person
110
91
  if (data?.message?.personId === this.currentPersonId ||
111
92
  data?.notifyPersonId === this.currentPersonId) {
112
93
  try {
@@ -117,15 +98,10 @@ export class NotificationService {
117
98
  }
118
99
  }
119
100
  });
120
- // Handler for reconnect events
121
101
  SocketHelper.addHandler("reconnect", "NotificationService-Reconnect", (data) => {
122
- this.loadNotificationCounts(); // Don't debounce reconnect - need immediate update
102
+ this.loadNotificationCounts();
123
103
  });
124
104
  }
125
- /**
126
- * If the socket payload carries fresh counts, apply them directly and skip the
127
- * extra API round-trip. Returns true when counts were applied.
128
- */
129
105
  applyCountsFromPayload(data) {
130
106
  const counts = data?.counts;
131
107
  if (!counts || typeof counts !== "object")
@@ -137,9 +113,6 @@ export class NotificationService {
137
113
  this.updateCounts({ notificationCount, pmCount });
138
114
  return true;
139
115
  }
140
- /**
141
- * Load notification counts from the API with debouncing
142
- */
143
116
  debouncedLoadNotificationCounts() {
144
117
  if (this.loadTimeout) {
145
118
  clearTimeout(this.loadTimeout);
@@ -148,18 +121,13 @@ export class NotificationService {
148
121
  this.loadNotificationCounts();
149
122
  }, 300); // 300ms debounce
150
123
  }
151
- /**
152
- * Load notification counts from the API
153
- */
154
124
  async loadNotificationCounts() {
155
125
  try {
156
- // Use the unreadCount endpoint which returns both notification and PM counts
157
126
  const counts = await ApiHelper.get("/notifications/unreadCount", "MessagingApi");
158
127
  const newCounts = {
159
128
  notificationCount: counts?.notificationCount || 0,
160
129
  pmCount: counts?.pmCount || 0
161
130
  };
162
- // Update counts and notify listeners
163
131
  this.updateCounts(newCounts);
164
132
  }
165
133
  catch (error) {
@@ -172,15 +140,11 @@ export class NotificationService {
172
140
  // Don't throw - just log the error and keep existing counts
173
141
  }
174
142
  }
175
- /**
176
- * Update counts and notify all listeners
177
- */
178
143
  updateCounts(newCounts) {
179
144
  const countsChanged = this.counts.notificationCount !== newCounts.notificationCount ||
180
145
  this.counts.pmCount !== newCounts.pmCount;
181
146
  if (countsChanged) {
182
147
  this.counts = { ...newCounts };
183
- // Notify all listeners
184
148
  this.listeners.forEach((listener, index) => {
185
149
  try {
186
150
  listener(this.counts);
@@ -191,45 +155,28 @@ export class NotificationService {
191
155
  });
192
156
  }
193
157
  }
194
- /**
195
- * Subscribe to notification count changes
196
- */
197
158
  subscribe(listener) {
198
159
  this.listeners.push(listener);
199
- // Immediately call with current counts
200
160
  listener(this.counts);
201
- // Return unsubscribe function
202
161
  return () => {
203
162
  this.listeners = this.listeners.filter(l => l !== listener);
204
163
  };
205
164
  }
206
- /**
207
- * Get current notification counts
208
- */
209
165
  getCounts() {
210
166
  return { ...this.counts };
211
167
  }
212
- /**
213
- * Manually refresh notification counts
214
- */
215
168
  async refresh() {
216
169
  await this.loadNotificationCounts();
217
170
  }
218
- /**
219
- * Cleanup the service
220
- */
221
171
  cleanup() {
222
- // Clear any pending timeout
223
172
  if (this.loadTimeout) {
224
173
  clearTimeout(this.loadTimeout);
225
174
  this.loadTimeout = null;
226
175
  }
227
- // Remove websocket handlers
228
176
  SocketHelper.removeHandler("NotificationService-PM");
229
177
  SocketHelper.removeHandler("NotificationService-Notification");
230
178
  SocketHelper.removeHandler("NotificationService-MessageUpdate");
231
179
  SocketHelper.removeHandler("NotificationService-Reconnect");
232
- // Clear listeners
233
180
  this.listeners = [];
234
181
  if (this.changeUnsubscribe) {
235
182
  this.changeUnsubscribe();
@@ -237,14 +184,10 @@ export class NotificationService {
237
184
  }
238
185
  SubscriptionManager.reset();
239
186
  ConversationStore.reset();
240
- // Reset state
241
187
  this.counts = { notificationCount: 0, pmCount: 0 };
242
188
  this.currentPersonId = null;
243
189
  this.isInitialized = false;
244
190
  }
245
- /**
246
- * Check if service is initialized
247
- */
248
191
  isReady() {
249
192
  return this.isInitialized && SocketHelper.isConnected();
250
193
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationService.js","sourceRoot":"","sources":["../../src/helpers/NotificationService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NotificationService.js","sourceRoot":"","sources":["../../src/helpers/NotificationService.ts"],"names":[],"mappings":"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"}
@@ -9,14 +9,7 @@ export interface PresenceSnapshot {
9
9
  viewers: PresenceViewer[];
10
10
  }
11
11
  type Listener = (snapshot: PresenceSnapshot) => void;
12
- /**
13
- * In-memory cache of presence (attendance) per conversationId. Mirrors ConversationStore's
14
- * pattern: registers the "attendance" socket handler exactly once, applies broadcasts to
15
- * whichever conversations are currently open, and notifies subscribers.
16
- *
17
- * Server-side, attendance is derived from the Connection rows joined to the conversation
18
- * and rebroadcast on every join/leave, so consumers see updates without polling.
19
- */
12
+ /** In-memory cache of presence per conversation; socket handler registered once, rebroadcast on server join/leave so no polling needed */
20
13
  export declare class PresenceStore {
21
14
  private static snapshots;
22
15
  private static listeners;
@@ -1 +1 @@
1
- {"version":3,"file":"PresenceStore.d.ts","sourceRoot":"","sources":["../../src/helpers/PresenceStore.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAAG,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE;AACvF,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B;AAED,KAAK,QAAQ,GAAG,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAErD;;;;;;;GAOG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,SAAS,CAA4C;IACpE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAyC;IACjE,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAS;IAE1C,MAAM,CAAC,cAAc,aAYnB;IAEF,MAAM,CAAC,KAAK,aAGV;IAEF,MAAM,CAAC,GAAG,GAAI,gBAAgB,MAAM,KAAG,gBAAgB,GAAG,IAAI,CAE5D;IAEF,MAAM,CAAC,SAAS,GAAI,gBAAgB,MAAM,EAAE,UAAU,QAAQ,KAAG,CAAC,MAAM,IAAI,CAAC,CAgB3E;IAEF,OAAO,CAAC,MAAM,CAAC,MAAM,CAOnB;IAEF,OAAO,CAAC,MAAM,CAAC,SAAS,CAKtB;IAEF,OAAO,CAAC,MAAM,CAAC,MAAM,CAQnB;IAEF,MAAM,CAAC,MAAM,GAAI,gBAAgB,MAAM,KAAG,IAAI,CAG5C;CACH"}
1
+ {"version":3,"file":"PresenceStore.d.ts","sourceRoot":"","sources":["../../src/helpers/PresenceStore.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAAG,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE;AACvF,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B;AAED,KAAK,QAAQ,GAAG,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAErD,0IAA0I;AAC1I,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,SAAS,CAA4C;IACpE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAyC;IACjE,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAS;IAE1C,MAAM,CAAC,cAAc,aAYnB;IAEF,MAAM,CAAC,KAAK,aAGV;IAEF,MAAM,CAAC,GAAG,GAAI,gBAAgB,MAAM,KAAG,gBAAgB,GAAG,IAAI,CAE5D;IAEF,MAAM,CAAC,SAAS,GAAI,gBAAgB,MAAM,EAAE,UAAU,QAAQ,KAAG,CAAC,MAAM,IAAI,CAAC,CAgB3E;IAEF,OAAO,CAAC,MAAM,CAAC,MAAM,CAOnB;IAEF,OAAO,CAAC,MAAM,CAAC,SAAS,CAKtB;IAEF,OAAO,CAAC,MAAM,CAAC,MAAM,CAQnB;IAEF,MAAM,CAAC,MAAM,GAAI,gBAAgB,MAAM,KAAG,IAAI,CAG5C;CACH"}
@@ -1,12 +1,5 @@
1
1
  import { SocketHelper } from "./SocketHelper";
2
- /**
3
- * In-memory cache of presence (attendance) per conversationId. Mirrors ConversationStore's
4
- * pattern: registers the "attendance" socket handler exactly once, applies broadcasts to
5
- * whichever conversations are currently open, and notifies subscribers.
6
- *
7
- * Server-side, attendance is derived from the Connection rows joined to the conversation
8
- * and rebroadcast on every join/leave, so consumers see updates without polling.
9
- */
2
+ /** In-memory cache of presence per conversation; socket handler registered once, rebroadcast on server join/leave so no polling needed */
10
3
  export class PresenceStore {
11
4
  }
12
5
  PresenceStore.snapshots = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"PresenceStore.js","sourceRoot":"","sources":["../../src/helpers/PresenceStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PresenceStore.js","sourceRoot":"","sources":["../../src/helpers/PresenceStore.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SocketHelper.d.ts","sourceRoot":"","sources":["../../src/helpers/SocketHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,4BAA4B,EAAE,sBAAsB,EAAmD,MAAM,qBAAqB,CAAC;AAEjK,qBAAa,YAAY;IACvB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;IACzB,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,cAAc,EAAE,4BAA4B,EAAE,CAAM;IAC3D,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAA0E;IACzG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAkB;IAE5C,MAAM,CAAC,eAAe,GAAI,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,UAiBlE;IAEF,MAAM,CAAC,eAAe,QAAO;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAEjE;IAEF,MAAM,CAAC,oBAAoB,GAAI,UAAU,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,IAAI,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,KAAK,IAAI,gBAKzJ;IAEF,OAAO,CAAC,MAAM,CAAC,eAAe,CAAiI;IAE/J,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAyC;IAEzE,MAAM,CAAC,eAAe,GAAI,UAAU,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,gBAK5D;IAEF,MAAM,CAAC,qBAAqB,aAY1B;IAEF,MAAM,CAAC,IAAI,sBA0DT;IAEF,MAAM,CAAC,UAAU,GAAI,QAAQ,MAAM,EAAE,IAAI,MAAM,EAAE,eAAe,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,UAOjF;IAEF,MAAM,CAAC,aAAa,GAAI,IAAI,MAAM,UAEhC;IAEF,MAAM,CAAC,sBAAsB,GAAI,QAAQ,MAAM,UAE7C;IAEF,MAAM,CAAC,gBAAgB,aAErB;IAEF,MAAM,CAAC,aAAa,GAAI,SAAS,sBAAsB,UA4BrD;IAEF,MAAM,CAAC,OAAO,aAcZ;IAEF,MAAM,CAAC,UAAU,aAEf;IAEF,MAAM,CAAC,WAAW,QAAO,OAAO,CAE9B;IAEF,MAAM,CAAC,kBAAkB,QAAO,MAAM,CAUpC;IAGF,MAAM,CAAC,kBAAkB,mBAmBvB;CAEH"}
1
+ {"version":3,"file":"SocketHelper.d.ts","sourceRoot":"","sources":["../../src/helpers/SocketHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,4BAA4B,EAAE,sBAAsB,EAAmD,MAAM,qBAAqB,CAAC;AAEjK,qBAAa,YAAY;IACvB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;IACzB,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,cAAc,EAAE,4BAA4B,EAAE,CAAM;IAC3D,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAA0E;IACzG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAkB;IAE5C,MAAM,CAAC,eAAe,GAAI,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,UAclE;IAEF,MAAM,CAAC,eAAe,QAAO;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAEjE;IAEF,MAAM,CAAC,oBAAoB,GAAI,UAAU,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,IAAI,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,KAAK,IAAI,gBAKzJ;IAEF,OAAO,CAAC,MAAM,CAAC,eAAe,CAAiI;IAE/J,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAyC;IAEzE,MAAM,CAAC,eAAe,GAAI,UAAU,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,gBAK5D;IAEF,MAAM,CAAC,qBAAqB,aAY1B;IAEF,MAAM,CAAC,IAAI,sBAqDT;IAEF,MAAM,CAAC,UAAU,GAAI,QAAQ,MAAM,EAAE,IAAI,MAAM,EAAE,eAAe,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,UAOjF;IAEF,MAAM,CAAC,aAAa,GAAI,IAAI,MAAM,UAEhC;IAEF,MAAM,CAAC,sBAAsB,GAAI,QAAQ,MAAM,UAE7C;IAEF,MAAM,CAAC,gBAAgB,aAErB;IAEF,MAAM,CAAC,aAAa,GAAI,SAAS,sBAAsB,UA2BrD;IAEF,MAAM,CAAC,OAAO,aAaZ;IAEF,MAAM,CAAC,UAAU,aAEf;IAEF,MAAM,CAAC,WAAW,QAAO,OAAO,CAE9B;IAEF,MAAM,CAAC,kBAAkB,QAAO,MAAM,CAUpC;IAEF,MAAM,CAAC,kBAAkB,mBAWvB;CAEH"}
@@ -13,9 +13,6 @@ SocketHelper.setPersonChurch = (pc) => {
13
13
  const personChanged = pc.personId !== _a.personIdChurchId.personId;
14
14
  if (!churchChanged && !personChanged)
15
15
  return;
16
- // If we're already connected and the church/person changed, fire the changed callbacks
17
- // so caches scoped to the previous tenant get cleared. Each subscriber decides whether
18
- // it cares about church-only vs person-only changes.
19
16
  if (_a.personIdChurchId.churchId || _a.personIdChurchId.personId) {
20
17
  _a.changeListeners.forEach((cb) => {
21
18
  try {
@@ -59,12 +56,10 @@ SocketHelper.createAlertConnection = () => {
59
56
  }
60
57
  };
61
58
  SocketHelper.init = async () => {
62
- // Idempotent: if a socket is already open or connecting, do not tear it down.
59
+ // Idempotent: don't tear down an open or connecting socket; wait for socketId instead.
63
60
  if (_a.socket && (_a.socket.readyState === _a.socket.OPEN || _a.socket.readyState === _a.socket.CONNECTING)) {
64
- // If we already have a socketId, the connection is fully usable — return immediately.
65
61
  if (_a.socketId)
66
62
  return;
67
- // Otherwise wait briefly for socketId to arrive instead of tearing down.
68
63
  await new Promise((resolve) => {
69
64
  const start = Date.now();
70
65
  const tick = () => {
@@ -141,8 +136,7 @@ SocketHelper.handleMessage = (payload) => {
141
136
  const previousId = _a.socketId;
142
137
  _a.socketId = payload.data;
143
138
  _a.createAlertConnection();
144
- // Notify listeners that a socketId is available — used by SubscriptionManager
145
- // to flush rooms that called joinRoom before the socket finished connecting.
139
+ // Notify SubscriptionManager to flush pending joinRoom calls.
146
140
  if (!previousId) {
147
141
  _a.socketIdListeners.forEach((cb) => {
148
142
  try {
@@ -172,14 +166,13 @@ SocketHelper.handleMessage = (payload) => {
172
166
  };
173
167
  SocketHelper.cleanup = () => {
174
168
  _a.isCleanedUp = true;
175
- // Close socket connection
176
169
  if (_a.socket && _a.socket.readyState !== _a.socket.CLOSED) {
177
170
  try {
178
171
  _a.socket.close();
179
172
  }
180
173
  catch { /* ignore */ }
181
174
  }
182
- // Clear references but preserve handlers - they should persist across reconnects
175
+ // Preserve handlers across reconnects.
183
176
  _a.socket = null;
184
177
  _a.socketId = null;
185
178
  _a.personIdChurchId = { personId: "", churchId: "" };
@@ -201,7 +194,6 @@ SocketHelper.getConnectionState = () => {
201
194
  default: return "UNKNOWN";
202
195
  }
203
196
  };
204
- // Global cleanup on window unload
205
197
  SocketHelper.setupGlobalCleanup = () => {
206
198
  if (typeof window !== "undefined") {
207
199
  const cleanup = () => {
@@ -209,13 +201,6 @@ SocketHelper.setupGlobalCleanup = () => {
209
201
  };
210
202
  window.addEventListener("beforeunload", cleanup);
211
203
  window.addEventListener("unload", cleanup);
212
- // Also cleanup on page visibility change (when tab is closed)
213
- document.addEventListener("visibilitychange", () => {
214
- if (document.visibilityState === "hidden") {
215
- // Optional: cleanup when tab becomes hidden
216
- // SocketHelper.cleanup();
217
- }
218
- });
219
204
  return cleanup;
220
205
  }
221
206
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SocketHelper.js","sourceRoot":"","sources":["../../src/helpers/SocketHelper.ts"],"names":[],"mappings":";AAAA,OAAO,EAA6E,SAAS,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAEjK,MAAM,OAAO,YAAY;;;AAGhB,2BAAc,GAAmC,EAAE,AAArC,CAAsC;AAC5C,6BAAgB,GAA2C,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,AAAzE,CAA0E;AAC1F,wBAAW,GAAY,KAAK,AAAjB,CAAkB;AAErC,4BAAe,GAAG,CAAC,EAA0C,EAAE,EAAE;IACtE,IAAI,CAAC,EAAE,EAAE,QAAQ,IAAI,CAAC,EAAE,EAAE,QAAQ;QAAE,OAAO;IAC3C,MAAM,aAAa,GAAG,EAAE,CAAC,QAAQ,KAAK,EAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;IACrE,MAAM,aAAa,GAAG,EAAE,CAAC,QAAQ,KAAK,EAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;IACrE,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa;QAAE,OAAO;IAE7C,uFAAuF;IACvF,uFAAuF;IACvF,qDAAqD;IACrD,IAAI,EAAI,CAAC,gBAAgB,CAAC,QAAQ,IAAI,EAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;QACrE,EAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YAClC,IAAI,CAAC;gBAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YAAC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBAAC,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,GAAG,CAAC,CAAC;YAAC,CAAC;QACvI,CAAC,CAAC,CAAC;IACL,CAAC;IAED,EAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC3B,EAAI,CAAC,qBAAqB,EAAE,CAAC;AAC/B,CAAC,AAjBqB,CAiBpB;AAEK,4BAAe,GAAG,GAA2C,EAAE;IACpE,OAAO,EAAE,GAAG,EAAI,CAAC,gBAAgB,EAAE,CAAC;AACtC,CAAC,AAFqB,CAEpB;AAEK,iCAAoB,GAAG,CAAC,QAA4H,EAAE,EAAE;IAC7J,EAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpC,OAAO,GAAG,EAAE;QACV,EAAI,CAAC,eAAe,GAAG,EAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;IAC1E,CAAC,CAAC;AACJ,CAAC,AAL0B,CAKzB;AAEa,4BAAe,GAA8H,EAAE,AAAhI,CAAiI;AAEhJ,8BAAiB,GAAsC,EAAE,AAAxC,CAAyC;AAElE,4BAAe,GAAG,CAAC,QAAoC,EAAE,EAAE;IAChE,EAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9C,OAAO,GAAG,EAAE;QACV,EAAY,CAAC,iBAAiB,GAAG,EAAY,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;IAC9F,CAAC,CAAC;AACJ,CAAC,AALqB,CAKpB;AAEK,kCAAqB,GAAG,GAAG,EAAE;IAClC,IAAI,EAAY,CAAC,gBAAgB,CAAC,QAAQ,IAAI,EAAY,CAAC,QAAQ,EAAE,CAAC;QACpE,MAAM,UAAU,GAAwB;YACtC,cAAc,EAAE,QAAQ;YACxB,QAAQ,EAAE,EAAY,CAAC,gBAAgB,CAAC,QAAQ;YAChD,WAAW,EAAE,MAAM;YACnB,QAAQ,EAAE,EAAY,CAAC,QAAQ;YAC/B,QAAQ,EAAE,EAAY,CAAC,gBAAgB,CAAC,QAAQ;SACjD,CAAC;QAEF,SAAS,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC,CAAC;IACxE,CAAC;AACH,CAAC,AAZ2B,CAY1B;AAEK,iBAAI,GAAG,KAAK,IAAI,EAAE;IACvB,8EAA8E;IAC9E,IAAI,EAAY,CAAC,MAAM,IAAI,CAAC,EAAY,CAAC,MAAM,CAAC,UAAU,KAAK,EAAY,CAAC,MAAM,CAAC,IAAI,IAAI,EAAY,CAAC,MAAM,CAAC,UAAU,KAAK,EAAY,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9J,sFAAsF;QACtF,IAAI,EAAY,CAAC,QAAQ;YAAE,OAAO;QAClC,yEAAyE;QACzE,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,GAAG,EAAE;gBAChB,IAAI,EAAY,CAAC,QAAQ;oBAAE,OAAO,OAAO,EAAE,CAAC;gBAC5C,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI;oBAAE,OAAO,OAAO,EAAE,CAAC;gBAChD,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACvB,CAAC,CAAC;YACF,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,CAAC;QACH,IAAI,EAAY,CAAC,QAAQ;YAAE,OAAO;IACpC,CAAC;IAED,EAAY,CAAC,OAAO,EAAE,CAAC;IACvB,EAAY,CAAC,WAAW,GAAG,KAAK,CAAC;IAEjC,IAAI,EAAY,CAAC,MAAM,IAAI,EAAY,CAAC,MAAM,CAAC,UAAU,KAAK,EAAY,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACzF,IAAI,CAAC;YACH,EAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACpC,IAAI,CAAC;YACH,EAAY,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;YAEhF,EAAY,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,KAAK,EAAE,EAAE;gBACxC,IAAI,EAAY,CAAC,WAAW;oBAAE,OAAO;gBAErC,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACvC,EAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACtC,CAAC;gBAAC,MAAM,CAAC,CAAC,yBAAyB,CAAC,CAAC;YACvC,CAAC,CAAC;YAEF,EAAY,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,IAAI,EAAE;gBACtC,EAAY,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAElC,UAAU,CAAC,GAAG,EAAE;oBACd,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC,EAAE,IAAI,CAAC,CAAC;YACX,CAAC,CAAC;YAEF,EAAY,CAAC,MAAM,CAAC,OAAO,GAAG,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC;YAE9C,EAAY,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE;gBACtC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC;QAEJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,AA1DU,CA0DT;AAEK,uBAAU,GAAG,CAAC,MAAc,EAAE,EAAU,EAAE,aAAkC,EAAE,EAAE;IACrF,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,EAAY,CAAC,cAAc,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAC3E,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,QAAQ,CAAC,aAAa,GAAG,aAAa,CAAC;IACzC,CAAC;SAAM,CAAC;QACN,EAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;IAClE,CAAC;AACH,CAAC,AAPgB,CAOf;AAEK,0BAAa,GAAG,CAAC,EAAU,EAAE,EAAE;IACpC,EAAY,CAAC,cAAc,GAAG,EAAY,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AACjG,CAAC,AAFmB,CAElB;AAEK,mCAAsB,GAAG,CAAC,MAAc,EAAE,EAAE;IACjD,EAAY,CAAC,cAAc,GAAG,EAAY,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;AACzG,CAAC,AAF4B,CAE3B;AAEK,6BAAgB,GAAG,GAAG,EAAE;IAC7B,EAAY,CAAC,cAAc,GAAG,EAAE,CAAC;AACnC,CAAC,AAFsB,CAErB;AAEK,0BAAa,GAAG,CAAC,OAA+B,EAAE,EAAE;IACzD,IAAI,EAAY,CAAC,WAAW;QAAE,OAAO;IAErC,IAAI,CAAC;QACH,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,EAAY,CAAC,QAAQ,CAAC;YACzC,EAAY,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;YACrC,EAAY,CAAC,qBAAqB,EAAE,CAAC;YACrC,8EAA8E;YAC9E,6EAA6E;YAC7E,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,EAAY,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;oBAC5C,IAAI,CAAC;wBAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAAC,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBAAC,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAC;oBAAC,CAAC;gBACxG,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC,EAAY,CAAC,cAAc,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YACnG,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACnC,IAAI,CAAC;oBACH,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACtC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;AACH,CAAC,AA5BmB,CA4BlB;AAEK,oBAAO,GAAG,GAAG,EAAE;IACpB,EAAY,CAAC,WAAW,GAAG,IAAI,CAAC;IAEhC,0BAA0B;IAC1B,IAAI,EAAY,CAAC,MAAM,IAAI,EAAY,CAAC,MAAM,CAAC,UAAU,KAAK,EAAY,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACzF,IAAI,CAAC;YACH,EAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;IAED,iFAAiF;IACjF,EAAY,CAAC,MAAM,GAAG,IAAI,CAAC;IAC3B,EAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC7B,EAAY,CAAC,gBAAgB,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACjE,CAAC,AAda,CAcZ;AAEK,uBAAU,GAAG,GAAG,EAAE;IACvB,EAAY,CAAC,OAAO,EAAE,CAAC;AACzB,CAAC,AAFgB,CAEf;AAEK,wBAAW,GAAG,GAAY,EAAE;IACjC,OAAO,EAAY,CAAC,MAAM,IAAI,EAAY,CAAC,MAAM,CAAC,UAAU,KAAK,EAAY,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5F,CAAC,AAFiB,CAEhB;AAEK,+BAAkB,GAAG,GAAW,EAAE;IACvC,IAAI,CAAC,EAAY,CAAC,MAAM;QAAE,OAAO,eAAe,CAAC;IAEjD,QAAQ,EAAY,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACvC,KAAK,EAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,YAAY,CAAC;QACzD,KAAK,EAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,MAAM,CAAC;QAC7C,KAAK,EAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,SAAS,CAAC;QACnD,KAAK,EAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,QAAQ,CAAC;QACjD,OAAO,CAAC,CAAC,OAAO,SAAS,CAAC;IAC5B,CAAC;AACH,CAAC,AAVwB,CAUvB;AAEF,kCAAkC;AAC3B,+BAAkB,GAAG,GAAG,EAAE;IAC/B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,EAAY,CAAC,OAAO,EAAE,CAAC;QACzB,CAAC,CAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE3C,8DAA8D;QAC9D,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,GAAG,EAAE;YACjD,IAAI,QAAQ,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;gBAC1C,4CAA4C;gBAC5C,0BAA0B;YAC5B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC,AAnBwB,CAmBvB"}
1
+ {"version":3,"file":"SocketHelper.js","sourceRoot":"","sources":["../../src/helpers/SocketHelper.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,4 @@
1
- /**
2
- * Tracks which conversation rooms the current tab has joined.
3
- * Backed by a single WebSocket (SocketHelper) and the server's /messaging/connections endpoint.
4
- *
5
- * - joinRoom: ref-counted POST /connections
6
- * - leaveRoom: decrements ref; DELETE /connections/:churchId/:conversationId/:socketId at zero
7
- * - rejoinAll: re-issues every active POST after a socket reconnect
8
- */
1
+ /** Tracks conversation room subscriptions via ref-counted WebSocket connections. */
9
2
  export declare class SubscriptionManager {
10
3
  private static counts;
11
4
  private static rejoinHandlerRegistered;
@@ -1 +1 @@
1
- {"version":3,"file":"SubscriptionManager.d.ts","sourceRoot":"","sources":["../../src/helpers/SubscriptionManager.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,CAAkC;IACvD,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAS;IAE/C,MAAM,CAAC,WAAW,aAkBhB;IAEF,MAAM,CAAC,QAAQ,GAAU,gBAAgB,MAAM,EAAE,UAAU,MAAM,EAAE,WAAW,MAAM,EAAE,cAAc,MAAM,mBAOxG;IAQF,OAAO,CAAC,MAAM,CAAC,aAAa,CAAyD;IACrF,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAO;IAEvC,MAAM,CAAC,SAAS,GAAU,gBAAgB,MAAM,EAAE,UAAU,MAAM,mBAyBhE;IAEF,MAAM,CAAC,SAAS,sBAOd;IAEF,MAAM,CAAC,KAAK,aAEV;IAEF,MAAM,CAAC,QAAQ,GAAI,UAAU,MAAM,EAAE,gBAAgB,MAAM,KAAG,OAAO,CAEnE;IAEF,OAAO,CAAC,MAAM,CAAC,cAAc,CAc3B;IAEF,OAAO,CAAC,MAAM,CAAC,GAAG,CAAiF;CACpG"}
1
+ {"version":3,"file":"SubscriptionManager.d.ts","sourceRoot":"","sources":["../../src/helpers/SubscriptionManager.ts"],"names":[],"mappings":"AAGA,oFAAoF;AACpF,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,CAAkC;IACvD,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAS;IAE/C,MAAM,CAAC,WAAW,aAahB;IAEF,MAAM,CAAC,QAAQ,GAAU,gBAAgB,MAAM,EAAE,UAAU,MAAM,EAAE,WAAW,MAAM,EAAE,cAAc,MAAM,mBAOxG;IAGF,OAAO,CAAC,MAAM,CAAC,aAAa,CAAyD;IACrF,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAO;IAEvC,MAAM,CAAC,SAAS,GAAU,gBAAgB,MAAM,EAAE,UAAU,MAAM,mBAuBhE;IAEF,MAAM,CAAC,SAAS,sBAOd;IAEF,MAAM,CAAC,KAAK,aAEV;IAEF,MAAM,CAAC,QAAQ,GAAI,UAAU,MAAM,EAAE,gBAAgB,MAAM,KAAG,OAAO,CAEnE;IAEF,OAAO,CAAC,MAAM,CAAC,cAAc,CAc3B;IAEF,OAAO,CAAC,MAAM,CAAC,GAAG,CAAiF;CACpG"}
@@ -1,14 +1,7 @@
1
1
  var _a;
2
2
  import { ApiHelper } from "@churchapps/helpers";
3
3
  import { SocketHelper } from "./SocketHelper";
4
- /**
5
- * Tracks which conversation rooms the current tab has joined.
6
- * Backed by a single WebSocket (SocketHelper) and the server's /messaging/connections endpoint.
7
- *
8
- * - joinRoom: ref-counted POST /connections
9
- * - leaveRoom: decrements ref; DELETE /connections/:churchId/:conversationId/:socketId at zero
10
- * - rejoinAll: re-issues every active POST after a socket reconnect
11
- */
4
+ /** Tracks conversation room subscriptions via ref-counted WebSocket connections. */
12
5
  export class SubscriptionManager {
13
6
  }
14
7
  _a = SubscriptionManager;
@@ -21,15 +14,10 @@ SubscriptionManager.setupRejoin = () => {
21
14
  SocketHelper.addHandler("reconnect", "SubscriptionManager-Rejoin", () => {
22
15
  _a.rejoinAll();
23
16
  });
24
- // Components may call joinRoom while the socket is still mid-handshake (no socketId yet).
25
- // We record the intent in `counts`; this listener flushes those pending joins to the server
26
- // as soon as socketId arrives.
17
+ // joinRoom calls may arrive before socketId is ready; flush when ready or if already present.
27
18
  SocketHelper.onSocketIdReady(() => {
28
19
  _a.rejoinAll();
29
20
  });
30
- // setupRejoin is called from NotificationService.runInitialize *after* SocketHelper.init
31
- // completes — so socketId may already be present by the time we register the listener.
32
- // In that case there's no future socketId event to wait for; flush any pending joins now.
33
21
  if (SocketHelper.socketId) {
34
22
  _a.rejoinAll().catch(() => { });
35
23
  }
@@ -43,12 +31,7 @@ SubscriptionManager.joinRoom = async (conversationId, churchId, personId, displa
43
31
  _a.setupRejoin();
44
32
  await _a.postConnection(conversationId, churchId, personId, displayName);
45
33
  };
46
- // Debounced DELETE: when count hits zero, schedule the server-side leave a short
47
- // delay later. If joinRoom comes back within that window (React StrictMode dev
48
- // mount/cleanup/mount, or a useEffect dep update that immediately re-mounts), the
49
- // pending DELETE is canceled and the server-side row is preserved — preventing the
50
- // race where the inbound broadcast lands between DELETE and the next POST and
51
- // finds an empty room.
34
+ // Debounce DELETE to avoid race where broadcast lands between DELETE and next POST (React StrictMode).
52
35
  SubscriptionManager.pendingLeaves = new Map();
53
36
  SubscriptionManager.LEAVE_DEBOUNCE_MS = 300;
54
37
  SubscriptionManager.leaveRoom = async (conversationId, churchId) => {
@@ -62,13 +45,11 @@ SubscriptionManager.leaveRoom = async (conversationId, churchId) => {
62
45
  return;
63
46
  }
64
47
  _a.counts.delete(key);
65
- // Debounce the actual DELETE — see comment above.
66
48
  const existing = _a.pendingLeaves.get(key);
67
49
  if (existing)
68
50
  clearTimeout(existing);
69
51
  const timer = setTimeout(async () => {
70
52
  _a.pendingLeaves.delete(key);
71
- // If something rejoined in the meantime, abort.
72
53
  if ((_a.counts.get(key) ?? 0) > 0)
73
54
  return;
74
55
  if (!SocketHelper.socketId)
@@ -1 +1 @@
1
- {"version":3,"file":"SubscriptionManager.js","sourceRoot":"","sources":["../../src/helpers/SubscriptionManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SubscriptionManager.js","sourceRoot":"","sources":["../../src/helpers/SubscriptionManager.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,4 @@
1
- /**
2
- * Cross-app helper for registering a Web Push subscription with the MessagingApi.
3
- * Hosts call WebPushHelper.configure({ scope, appName }) once at boot, then
4
- * WebPushHelper.subscribe() at login (and on userChurch changes).
5
- *
6
- * The server stores the subscription under the active userChurch's churchId, so
7
- * switching churches without re-enrolling would leave the device tied to the wrong
8
- * tenant — call subscribe() again after each church switch.
9
- */
1
+ /** Cross-app helper for registering a Web Push subscription with the MessagingApi. */
10
2
  export declare const WebPushHelper: {
11
3
  configure(options: {
12
4
  scope?: string;
@@ -20,15 +12,9 @@ export declare const WebPushHelper: {
20
12
  isStandalone(): boolean;
21
13
  getRegistration(): Promise<ServiceWorkerRegistration | null>;
22
14
  getExistingSubscription(): Promise<PushSubscription | null>;
23
- /**
24
- * Subscribe (or re-enroll) the active user. Safe to call multiple times — the server
25
- * upserts based on (churchId, fcmToken). Call after login and after any userChurch change.
26
- */
15
+ /** Subscribe (or re-enroll) the active user. Safe to call multiple times. */
27
16
  subscribe(): Promise<PushSubscription | null>;
28
- /**
29
- * Re-enroll the existing subscription (no permission prompt). Use this on userChurch
30
- * change so the device record updates to the new church without re-prompting the user.
31
- */
17
+ /** Re-enroll the existing subscription without re-prompting. */
32
18
  refreshEnrollment(): Promise<void>;
33
19
  unsubscribe(): Promise<void>;
34
20
  postSubscription(sub: PushSubscription): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"WebPushHelper.d.ts","sourceRoot":"","sources":["../../src/helpers/WebPushHelper.ts"],"names":[],"mappings":"AAwBA;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa;uBACL;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;uBAhBjC,OAAO;kBAuBf,OAAO;uBAIF,OAAO;oBAOV,OAAO;;oBAeP,OAAO;uBAOE,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC;+BAMjC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAOjE;;;OAGG;iBACgB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IA6BnD;;;OAGG;yBACwB,OAAO,CAAC,IAAI,CAAC;mBAOnB,OAAO,CAAC,IAAI,CAAC;0BAUN,gBAAgB;CAc7C,CAAC"}
1
+ {"version":3,"file":"WebPushHelper.d.ts","sourceRoot":"","sources":["../../src/helpers/WebPushHelper.ts"],"names":[],"mappings":"AAwBA,sFAAsF;AACtF,eAAO,MAAM,aAAa;uBACL;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;uBARjC,OAAO;kBAef,OAAO;uBAIF,OAAO;oBAOV,OAAO;;oBAeP,OAAO;uBAOE,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC;+BAKjC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAMjE,6EAA6E;iBAC1D,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IA6BnD,gEAAgE;yBACrC,OAAO,CAAC,IAAI,CAAC;mBAOnB,OAAO,CAAC,IAAI,CAAC;0BASN,gBAAgB;CAa7C,CAAC"}
@@ -17,15 +17,7 @@ const isSupported = () => typeof window !== "undefined" &&
17
17
  "serviceWorker" in navigator &&
18
18
  "PushManager" in window &&
19
19
  "Notification" in window;
20
- /**
21
- * Cross-app helper for registering a Web Push subscription with the MessagingApi.
22
- * Hosts call WebPushHelper.configure({ scope, appName }) once at boot, then
23
- * WebPushHelper.subscribe() at login (and on userChurch changes).
24
- *
25
- * The server stores the subscription under the active userChurch's churchId, so
26
- * switching churches without re-enrolling would leave the device tied to the wrong
27
- * tenant — call subscribe() again after each church switch.
28
- */
20
+ /** Cross-app helper for registering a Web Push subscription with the MessagingApi. */
29
21
  export const WebPushHelper = {
30
22
  configure(options) {
31
23
  if (options.scope)
@@ -100,10 +92,7 @@ export const WebPushHelper = {
100
92
  return null;
101
93
  }
102
94
  },
103
- /**
104
- * Subscribe (or re-enroll) the active user. Safe to call multiple times — the server
105
- * upserts based on (churchId, fcmToken). Call after login and after any userChurch change.
106
- */
95
+ /** Subscribe (or re-enroll) the active user. Safe to call multiple times. */
107
96
  async subscribe() {
108
97
  if (!isSupported() || !UserHelper.user?.id)
109
98
  return null;
@@ -132,10 +121,7 @@ export const WebPushHelper = {
132
121
  WebPushHelper.setOptedOut(false);
133
122
  return subscription;
134
123
  },
135
- /**
136
- * Re-enroll the existing subscription (no permission prompt). Use this on userChurch
137
- * change so the device record updates to the new church without re-prompting the user.
138
- */
124
+ /** Re-enroll the existing subscription without re-prompting. */
139
125
  async refreshEnrollment() {
140
126
  if (!isSupported() || !UserHelper.user?.id)
141
127
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"WebPushHelper.js","sourceRoot":"","sources":["../../src/helpers/WebPushHelper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebPushHelper.js","sourceRoot":"","sources":["../../src/helpers/WebPushHelper.ts"],"names":[],"mappings":"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"}