@jmruthers/pace-core 0.5.42 → 0.5.44

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 (142) hide show
  1. package/dist/{DataTable-DCW3J4YX.js → DataTable-GU72TTL6.js} +5 -5
  2. package/dist/{UnifiedAuthProvider-DGQsy-vY.d.ts → UnifiedAuthProvider-CQNiemcB.d.ts} +2 -2
  3. package/dist/{chunk-P27KH7XF.js → chunk-6CGBO4IS.js} +126 -192
  4. package/dist/chunk-6CGBO4IS.js.map +1 -0
  5. package/dist/{chunk-RL267HOF.js → chunk-7NAMQC3W.js} +2 -2
  6. package/dist/{chunk-BLZBTCBT.js → chunk-D4ZF5QUY.js} +2 -2
  7. package/dist/{chunk-APHGXR2D.js → chunk-DWA6SCGM.js} +3 -3
  8. package/dist/{chunk-CL2MCHIO.js → chunk-DZSLRIE2.js} +3 -3
  9. package/dist/{chunk-XC6XWRP6.js → chunk-HEYEDETJ.js} +6 -58
  10. package/dist/chunk-HEYEDETJ.js.map +1 -0
  11. package/dist/{chunk-ZSXH6L7D.js → chunk-KVMIO3BU.js} +3 -3
  12. package/dist/{chunk-YXTIVGX3.js → chunk-OTQBUB66.js} +4 -4
  13. package/dist/{chunk-ZRWNGBDJ.js → chunk-SFXM5VTP.js} +3 -3
  14. package/dist/{chunk-2DUJJPO2.js → chunk-U7EDXJBG.js} +5 -5
  15. package/dist/components.d.ts +1 -1
  16. package/dist/components.js +7 -7
  17. package/dist/hooks.js +4 -4
  18. package/dist/index.d.ts +1 -1
  19. package/dist/index.js +10 -10
  20. package/dist/providers.d.ts +1 -1
  21. package/dist/providers.js +3 -3
  22. package/dist/rbac/index.js +5 -5
  23. package/dist/utils.js +1 -1
  24. package/docs/api/classes/ErrorBoundary.md +1 -1
  25. package/docs/api/classes/InvalidScopeError.md +1 -1
  26. package/docs/api/classes/MissingUserContextError.md +1 -1
  27. package/docs/api/classes/OrganisationContextRequiredError.md +1 -1
  28. package/docs/api/classes/PermissionDeniedError.md +1 -1
  29. package/docs/api/classes/PublicErrorBoundary.md +1 -1
  30. package/docs/api/classes/RBACAuditManager.md +1 -1
  31. package/docs/api/classes/RBACCache.md +1 -1
  32. package/docs/api/classes/RBACEngine.md +1 -1
  33. package/docs/api/classes/RBACError.md +1 -1
  34. package/docs/api/classes/RBACNotInitializedError.md +1 -1
  35. package/docs/api/classes/SecureSupabaseClient.md +1 -1
  36. package/docs/api/interfaces/AggregateConfig.md +1 -1
  37. package/docs/api/interfaces/ButtonProps.md +1 -1
  38. package/docs/api/interfaces/CardProps.md +1 -1
  39. package/docs/api/interfaces/ColorPalette.md +1 -1
  40. package/docs/api/interfaces/ColorShade.md +1 -1
  41. package/docs/api/interfaces/DataAccessRecord.md +1 -1
  42. package/docs/api/interfaces/DataTableAction.md +1 -1
  43. package/docs/api/interfaces/DataTableColumn.md +1 -1
  44. package/docs/api/interfaces/DataTableProps.md +1 -1
  45. package/docs/api/interfaces/DataTableToolbarButton.md +1 -1
  46. package/docs/api/interfaces/EmptyStateConfig.md +1 -1
  47. package/docs/api/interfaces/EnhancedNavigationMenuProps.md +1 -1
  48. package/docs/api/interfaces/EventContextType.md +7 -7
  49. package/docs/api/interfaces/EventLogoProps.md +1 -1
  50. package/docs/api/interfaces/EventProviderProps.md +2 -2
  51. package/docs/api/interfaces/FileSizeLimits.md +1 -1
  52. package/docs/api/interfaces/FileUploadProps.md +1 -1
  53. package/docs/api/interfaces/FooterProps.md +1 -1
  54. package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
  55. package/docs/api/interfaces/InputProps.md +1 -1
  56. package/docs/api/interfaces/LabelProps.md +1 -1
  57. package/docs/api/interfaces/LoginFormProps.md +1 -1
  58. package/docs/api/interfaces/NavigationAccessRecord.md +1 -1
  59. package/docs/api/interfaces/NavigationContextType.md +1 -1
  60. package/docs/api/interfaces/NavigationGuardProps.md +1 -1
  61. package/docs/api/interfaces/NavigationItem.md +1 -1
  62. package/docs/api/interfaces/NavigationMenuProps.md +1 -1
  63. package/docs/api/interfaces/NavigationProviderProps.md +1 -1
  64. package/docs/api/interfaces/Organisation.md +1 -1
  65. package/docs/api/interfaces/OrganisationContextType.md +1 -1
  66. package/docs/api/interfaces/OrganisationMembership.md +1 -1
  67. package/docs/api/interfaces/OrganisationProviderProps.md +1 -1
  68. package/docs/api/interfaces/OrganisationSecurityError.md +1 -1
  69. package/docs/api/interfaces/PaceAppLayoutProps.md +1 -1
  70. package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
  71. package/docs/api/interfaces/PageAccessRecord.md +1 -1
  72. package/docs/api/interfaces/PagePermissionContextType.md +1 -1
  73. package/docs/api/interfaces/PagePermissionGuardProps.md +1 -1
  74. package/docs/api/interfaces/PagePermissionProviderProps.md +1 -1
  75. package/docs/api/interfaces/PaletteData.md +1 -1
  76. package/docs/api/interfaces/PermissionEnforcerProps.md +1 -1
  77. package/docs/api/interfaces/PublicErrorBoundaryProps.md +1 -1
  78. package/docs/api/interfaces/PublicErrorBoundaryState.md +1 -1
  79. package/docs/api/interfaces/PublicLoadingSpinnerProps.md +1 -1
  80. package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
  81. package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
  82. package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
  83. package/docs/api/interfaces/RBACConfig.md +1 -1
  84. package/docs/api/interfaces/RBACContextType.md +1 -1
  85. package/docs/api/interfaces/RBACLogger.md +1 -1
  86. package/docs/api/interfaces/RBACProviderProps.md +1 -1
  87. package/docs/api/interfaces/RoleBasedRouterContextType.md +1 -1
  88. package/docs/api/interfaces/RoleBasedRouterProps.md +1 -1
  89. package/docs/api/interfaces/RouteAccessRecord.md +1 -1
  90. package/docs/api/interfaces/RouteConfig.md +1 -1
  91. package/docs/api/interfaces/SecureDataContextType.md +1 -1
  92. package/docs/api/interfaces/SecureDataProviderProps.md +1 -1
  93. package/docs/api/interfaces/StorageConfig.md +1 -1
  94. package/docs/api/interfaces/StorageFileInfo.md +1 -1
  95. package/docs/api/interfaces/StorageFileMetadata.md +1 -1
  96. package/docs/api/interfaces/StorageListOptions.md +1 -1
  97. package/docs/api/interfaces/StorageListResult.md +1 -1
  98. package/docs/api/interfaces/StorageUploadOptions.md +1 -1
  99. package/docs/api/interfaces/StorageUploadResult.md +1 -1
  100. package/docs/api/interfaces/StorageUrlOptions.md +1 -1
  101. package/docs/api/interfaces/StyleImport.md +1 -1
  102. package/docs/api/interfaces/ToastActionElement.md +1 -1
  103. package/docs/api/interfaces/ToastProps.md +1 -1
  104. package/docs/api/interfaces/UnifiedAuthContextType.md +1 -1
  105. package/docs/api/interfaces/UnifiedAuthProviderProps.md +1 -1
  106. package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
  107. package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
  108. package/docs/api/interfaces/UsePublicEventLogoOptions.md +1 -1
  109. package/docs/api/interfaces/UsePublicEventLogoReturn.md +1 -1
  110. package/docs/api/interfaces/UsePublicEventOptions.md +1 -1
  111. package/docs/api/interfaces/UsePublicEventReturn.md +1 -1
  112. package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
  113. package/docs/api/interfaces/UserEventAccess.md +1 -1
  114. package/docs/api/interfaces/UserMenuProps.md +1 -1
  115. package/docs/api/interfaces/UserProfile.md +1 -1
  116. package/docs/api/modules.md +5 -5
  117. package/package.json +1 -1
  118. package/src/components/DataTable/__tests__/DataTable.comprehensive.test.tsx +756 -0
  119. package/src/components/DataTable/__tests__/DataTable.test.tsx +880 -0
  120. package/src/components/DataTable/__tests__/DataTableCore.test.tsx +702 -0
  121. package/src/components/PrintButton/__tests__/PrintButton.test.tsx +271 -0
  122. package/src/providers/AuthProvider.tsx +131 -230
  123. package/src/providers/EventProvider.tsx +5 -14
  124. package/src/providers/OrganisationProvider.tsx +37 -6
  125. package/src/providers/__tests__/AuthProvider.test.tsx +619 -0
  126. package/src/providers/__tests__/EventProvider.test.tsx +190 -0
  127. package/src/providers/__tests__/InactivityProvider.test.tsx +645 -0
  128. package/src/providers/__tests__/OrganisationProvider.test.tsx +343 -0
  129. package/src/providers/__tests__/README.md +167 -0
  130. package/src/providers/__tests__/UnifiedAuthProvider.test.tsx +581 -0
  131. package/src/rbac/__tests__/rbac-core.test.tsx +277 -0
  132. package/dist/chunk-P27KH7XF.js.map +0 -1
  133. package/dist/chunk-XC6XWRP6.js.map +0 -1
  134. /package/dist/{DataTable-DCW3J4YX.js.map → DataTable-GU72TTL6.js.map} +0 -0
  135. /package/dist/{chunk-RL267HOF.js.map → chunk-7NAMQC3W.js.map} +0 -0
  136. /package/dist/{chunk-BLZBTCBT.js.map → chunk-D4ZF5QUY.js.map} +0 -0
  137. /package/dist/{chunk-APHGXR2D.js.map → chunk-DWA6SCGM.js.map} +0 -0
  138. /package/dist/{chunk-CL2MCHIO.js.map → chunk-DZSLRIE2.js.map} +0 -0
  139. /package/dist/{chunk-ZSXH6L7D.js.map → chunk-KVMIO3BU.js.map} +0 -0
  140. /package/dist/{chunk-YXTIVGX3.js.map → chunk-OTQBUB66.js.map} +0 -0
  141. /package/dist/{chunk-ZRWNGBDJ.js.map → chunk-SFXM5VTP.js.map} +0 -0
  142. /package/dist/{chunk-2DUJJPO2.js.map → chunk-U7EDXJBG.js.map} +0 -0
@@ -3,7 +3,7 @@ import {
3
3
  init_UnifiedAuthProvider,
4
4
  useOrganisations,
5
5
  useUnifiedAuth
6
- } from "./chunk-P27KH7XF.js";
6
+ } from "./chunk-6CGBO4IS.js";
7
7
  import {
8
8
  init_organisationContext,
9
9
  setOrganisationContext
@@ -379,4 +379,4 @@ function useSecureDataAccess() {
379
379
  export {
380
380
  useSecureDataAccess
381
381
  };
382
- //# sourceMappingURL=chunk-RL267HOF.js.map
382
+ //# sourceMappingURL=chunk-7NAMQC3W.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  init_UnifiedAuthProvider,
3
3
  useUnifiedAuth
4
- } from "./chunk-P27KH7XF.js";
4
+ } from "./chunk-6CGBO4IS.js";
5
5
 
6
6
  // src/components/PublicLayout/PublicErrorBoundary.tsx
7
7
  import React, { Component } from "react";
@@ -386,4 +386,4 @@ export {
386
386
  clearPublicLogoCache,
387
387
  getPublicLogoCacheStats
388
388
  };
389
- //# sourceMappingURL=chunk-BLZBTCBT.js.map
389
+ //# sourceMappingURL=chunk-D4ZF5QUY.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  usePublicPageContext
3
- } from "./chunk-BLZBTCBT.js";
3
+ } from "./chunk-D4ZF5QUY.js";
4
4
  import {
5
5
  init_OrganisationProvider,
6
6
  init_UnifiedAuthProvider,
7
7
  useOrganisations,
8
8
  useUnifiedAuth
9
- } from "./chunk-P27KH7XF.js";
9
+ } from "./chunk-6CGBO4IS.js";
10
10
 
11
11
  // src/hooks/useOrganisationPermissions.ts
12
12
  init_OrganisationProvider();
@@ -519,4 +519,4 @@ export {
519
519
  generatePublicRoutePath,
520
520
  extractEventCodeFromPath
521
521
  };
522
- //# sourceMappingURL=chunk-APHGXR2D.js.map
522
+ //# sourceMappingURL=chunk-DWA6SCGM.js.map
@@ -7,13 +7,13 @@ import {
7
7
  import {
8
8
  init_EventProvider,
9
9
  useEvents
10
- } from "./chunk-XC6XWRP6.js";
10
+ } from "./chunk-HEYEDETJ.js";
11
11
  import {
12
12
  init_OrganisationProvider,
13
13
  init_UnifiedAuthProvider,
14
14
  useOrganisations,
15
15
  useUnifiedAuth
16
- } from "./chunk-P27KH7XF.js";
16
+ } from "./chunk-6CGBO4IS.js";
17
17
 
18
18
  // src/rbac/hooks/useRBAC.ts
19
19
  init_UnifiedAuthProvider();
@@ -506,4 +506,4 @@ export {
506
506
  useHasAllPermissions,
507
507
  useCachedPermissions
508
508
  };
509
- //# sourceMappingURL=chunk-CL2MCHIO.js.map
509
+ //# sourceMappingURL=chunk-DZSLRIE2.js.map
@@ -3,7 +3,7 @@ import {
3
3
  init_UnifiedAuthProvider,
4
4
  useOrganisations,
5
5
  useUnifiedAuth
6
- } from "./chunk-P27KH7XF.js";
6
+ } from "./chunk-6CGBO4IS.js";
7
7
  import {
8
8
  DebugLogger,
9
9
  init_debugLogger,
@@ -15,51 +15,6 @@ import {
15
15
  __export
16
16
  } from "./chunk-PLDDJCW6.js";
17
17
 
18
- // src/utils/appIdResolver.ts
19
- async function getAppId(supabase, appName) {
20
- try {
21
- const { data, error } = await supabase.from("rbac_apps").select("id").ilike("name", appName).eq("is_active", true).single();
22
- if (error) {
23
- console.error("Failed to resolve app ID for app name:", appName, error);
24
- return null;
25
- }
26
- return data?.id || null;
27
- } catch (error) {
28
- console.error("Error resolving app ID for app name:", appName, error);
29
- return null;
30
- }
31
- }
32
- var CachedAppIdResolver, cachedAppIdResolver;
33
- var init_appIdResolver = __esm({
34
- "src/utils/appIdResolver.ts"() {
35
- "use strict";
36
- CachedAppIdResolver = class {
37
- constructor() {
38
- this.cache = /* @__PURE__ */ new Map();
39
- this.ttl = 5 * 60 * 1e3;
40
- }
41
- // 5 minutes
42
- async getAppId(supabase, appName) {
43
- const now = Date.now();
44
- const cached = this.cache.get(appName);
45
- if (cached && cached.expires > now) {
46
- return cached.id;
47
- }
48
- const id = await getAppId(supabase, appName);
49
- this.cache.set(appName, { id, expires: now + this.ttl });
50
- return id;
51
- }
52
- clearCache() {
53
- this.cache.clear();
54
- }
55
- clearCacheForApp(appName) {
56
- this.cache.delete(appName);
57
- }
58
- };
59
- cachedAppIdResolver = new CachedAppIdResolver();
60
- }
61
- });
62
-
63
18
  // src/providers/EventProvider.tsx
64
19
  var EventProvider_exports = {};
65
20
  __export(EventProvider_exports, {
@@ -180,19 +135,13 @@ function EventProvider({ children }) {
180
135
  await ensureOrganisationContext();
181
136
  await setOrganisationContext(supabase, selectedOrganisation.id);
182
137
  }
183
- const appId = await cachedAppIdResolver.getAppId(supabase, appName);
184
- if (!appId) {
185
- throw new Error(`App ID not found for app name: ${appName}`);
186
- }
187
138
  DebugLogger.log("EventProvider", "Calling get_pace_user_events RPC with:", {
188
- user_uuid: user.id,
189
- app_id: appId,
190
- p_organisation_id: selectedOrganisation.id
139
+ user_id: user.id,
140
+ org_id: selectedOrganisation.id
191
141
  });
192
142
  const response = await supabase.rpc("get_pace_user_events", {
193
- user_uuid: user.id,
194
- app_id: appId,
195
- p_organisation_id: selectedOrganisation.id
143
+ user_id: user.id,
144
+ org_id: selectedOrganisation.id
196
145
  });
197
146
  const { data, error: rpcError } = response || {};
198
147
  DebugLogger.log("EventProvider", "RPC response:", {
@@ -295,7 +244,6 @@ var init_EventProvider = __esm({
295
244
  init_OrganisationProvider();
296
245
  init_organisationContext();
297
246
  init_debugLogger();
298
- init_appIdResolver();
299
247
  EventContext = createContext(void 0);
300
248
  useEvents = () => {
301
249
  const context = useContext(EventContext);
@@ -313,4 +261,4 @@ export {
313
261
  EventProvider_exports,
314
262
  init_EventProvider
315
263
  };
316
- //# sourceMappingURL=chunk-XC6XWRP6.js.map
264
+ //# sourceMappingURL=chunk-HEYEDETJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/providers/EventProvider.tsx"],"sourcesContent":["import React, {\n createContext,\n useContext,\n useState,\n useEffect,\n useLayoutEffect,\n useCallback,\n useRef,\n useMemo,\n} from 'react';\nimport { useUnifiedAuth } from './UnifiedAuthProvider';\nimport { useOrganisations } from './OrganisationProvider';\nimport { setOrganisationContext } from '../utils/organisationContext';\nimport { DebugLogger } from '../utils/debugLogger';\n\nimport { Event } from '../types/unified';\n\nexport interface EventContextType {\n events: Event[];\n selectedEvent: Event | null;\n isLoading: boolean;\n error: Error | null;\n setSelectedEvent: (event: Event | null) => void;\n refreshEvents: () => Promise<void>;\n}\n\nconst EventContext = createContext<EventContextType | undefined>(undefined);\n\nexport const useEvents = () => {\n const context = useContext(EventContext);\n if (context === undefined) {\n throw new Error('useEvents must be used within an EventProvider');\n }\n return context;\n};\n\nexport interface EventProviderProps {\n children: React.ReactNode;\n}\n\n// Helper function to get the next event by date\nfunction getNextEventByDate(events: Event[]): Event | null {\n if (!events || events.length === 0) {\n return null;\n }\n\n const now = new Date();\n const futureEvents = events.filter(event => {\n if (!event.event_date) return false;\n const eventDate = new Date(event.event_date);\n return eventDate >= now;\n });\n\n if (futureEvents.length === 0) {\n return null;\n }\n\n // Sort by date (ascending) to get the next event\n const sortedFutureEvents = futureEvents.sort((a, b) => {\n const dateA = new Date(a.event_date!);\n const dateB = new Date(b.event_date!);\n return dateA.getTime() - dateB.getTime();\n });\n\n return sortedFutureEvents[0];\n}\n\nexport function EventProvider({ children }: EventProviderProps) {\n const [events, setEvents] = useState<Event[]>([]);\n const [selectedEvent, setSelectedEventState] = useState<Event | null>(null);\n const [isLoading, setIsLoading] = useState(true);\n const [error, setError] = useState<Error | null>(null);\n const { user, session, supabase, appName, setSelectedEventId } = useUnifiedAuth();\n \n // Refs to prevent infinite loops\n const isInitializedRef = useRef(false);\n const isFetchingRef = useRef(false);\n const hasAutoSelectedRef = useRef(false);\n const userClearedEventRef = useRef(false);\n const setSelectedEventIdRef = useRef(setSelectedEventId);\n \n // Try to get organisation context, but don't fail if not available\n let selectedOrganisation = null;\n let ensureOrganisationContext = null;\n \n try {\n const orgContext = useOrganisations();\n selectedOrganisation = orgContext.selectedOrganisation;\n ensureOrganisationContext = orgContext.ensureOrganisationContext;\n } catch (error) {\n console.warn('[EventProvider] Organisation context not available:', error);\n }\n\n // Load persisted event selection with tab-scoped storage\n const loadPersistedEvent = useCallback(async (events: Event[]) => {\n try {\n // Try sessionStorage first (tab-specific)\n let persistedEventId = sessionStorage.getItem('pace-core-selected-event');\n \n // Fallback to localStorage if no sessionStorage value (for new tabs)\n if (!persistedEventId) {\n persistedEventId = localStorage.getItem('pace-core-selected-event');\n // If we found a value in localStorage, also store it in sessionStorage for this tab\n if (persistedEventId) {\n sessionStorage.setItem('pace-core-selected-event', persistedEventId);\n }\n }\n \n if (persistedEventId && events.length > 0) {\n const persistedEvent = events.find(event => event.event_id === persistedEventId);\n if (persistedEvent) {\n DebugLogger.log('EventProvider', 'Restoring persisted event:', persistedEvent.event_name);\n setSelectedEventState(persistedEvent);\n setSelectedEventId(persistedEventId);\n return true;\n }\n }\n } catch (error) {\n console.warn('[EventProvider] Failed to load persisted event:', error);\n }\n return false;\n }, [setSelectedEventId]);\n\n // Persist event selection with tab-scoped storage\n const persistEventSelection = useCallback((eventId: string) => {\n try {\n // Store in sessionStorage for tab-specific persistence\n sessionStorage.setItem('pace-core-selected-event', eventId);\n // Also store in localStorage as fallback for new tabs\n localStorage.setItem('pace-core-selected-event', eventId);\n } catch (error) {\n console.warn('[EventProvider] Failed to persist event selection:', error);\n }\n }, []);\n\n // Auto-select next event\n const autoSelectNextEvent = useCallback((events: Event[]) => {\n const nextEvent = getNextEventByDate(events);\n if (nextEvent) {\n DebugLogger.log('EventProvider', 'Auto-selecting next event:', nextEvent.event_name);\n setSelectedEventState(nextEvent);\n setSelectedEventId(nextEvent.event_id);\n persistEventSelection(nextEvent.event_id);\n }\n }, [setSelectedEventId, persistEventSelection]);\n\n // Main fetch function\n const fetchEvents = useCallback(async () => {\n if (!user || !session || !supabase || !appName || !selectedOrganisation) {\n DebugLogger.log('EventProvider', 'Missing required dependencies, skipping fetch');\n setIsLoading(false);\n return;\n }\n\n // Prevent multiple simultaneous fetches\n if (isFetchingRef.current) {\n DebugLogger.log('EventProvider', 'Already fetching events, skipping');\n return;\n }\n\n DebugLogger.log('EventProvider', 'User and organisation found, fetching events for:', {\n userId: user.id,\n appName: appName,\n organisationId: selectedOrganisation.id,\n organisationName: selectedOrganisation.display_name\n });\n\n isFetchingRef.current = true;\n let isMounted = true;\n\n try {\n // Ensure organisation context is set\n if (ensureOrganisationContext) {\n await ensureOrganisationContext();\n await setOrganisationContext(supabase, selectedOrganisation.id);\n }\n\n // Resolve app name to app ID\n // Call the RPC function\n DebugLogger.log('EventProvider', 'Calling get_pace_user_events RPC with:', {\n user_id: user.id,\n org_id: selectedOrganisation.id\n });\n\n const response = await supabase.rpc('get_pace_user_events', {\n user_id: user.id,\n org_id: selectedOrganisation.id,\n });\n \n const { data, error: rpcError } = response || {};\n\n DebugLogger.log('EventProvider', 'RPC response:', {\n data,\n error: rpcError,\n dataLength: data?.length || 0,\n organisationId: selectedOrganisation.id\n });\n\n if (rpcError) {\n throw new Error(rpcError.message || 'Failed to fetch events');\n }\n\n if (isMounted) {\n const eventsData = data || [];\n setEvents(eventsData);\n setError(null);\n\n // Note: Event colors are now managed by useEventTheme hook based on route and selected event\n // This prevents unwanted color cycling on non-event pages\n\n // Reset auto-selection ref for new events\n hasAutoSelectedRef.current = false;\n\n // Try to restore persisted event first\n await loadPersistedEvent(eventsData);\n }\n } catch (err) {\n console.error('[EventProvider] Error fetching events:', err);\n const _error = err instanceof Error ? err : new Error('Unknown error occurred');\n \n if (isMounted) {\n setError(_error);\n setEvents([]);\n }\n } finally {\n if (isMounted) {\n setIsLoading(false);\n }\n isFetchingRef.current = false;\n }\n\n return () => {\n isMounted = false;\n };\n }, [user, session, supabase, appName, selectedOrganisation, ensureOrganisationContext, loadPersistedEvent, autoSelectNextEvent]);\n\n // Initialize events only once\n useEffect(() => {\n if (!isInitializedRef.current) {\n isInitializedRef.current = true;\n fetchEvents();\n }\n }, [fetchEvents]);\n\n // Update ref when setSelectedEventId changes\n useEffect(() => {\n setSelectedEventIdRef.current = setSelectedEventId;\n }, [setSelectedEventId]);\n\n // Auto-select next event when events are loaded and no event is selected\n useLayoutEffect(() => {\n if (events.length > 0 && !selectedEvent && !hasAutoSelectedRef.current && !userClearedEventRef.current) {\n const nextEvent = getNextEventByDate(events);\n if (nextEvent) {\n DebugLogger.log('EventProvider', 'Auto-selecting next event:', nextEvent.event_name);\n hasAutoSelectedRef.current = true;\n setSelectedEventState(nextEvent);\n setSelectedEventIdRef.current(nextEvent.event_id);\n persistEventSelection(nextEvent.event_id);\n }\n }\n }, [events, selectedEvent]);\n\n const setSelectedEvent = useCallback((event: Event | null) => {\n if (event) {\n // SECURITY: Validate event belongs to current organisation\n try {\n if (selectedOrganisation && event.organisation_id !== selectedOrganisation.id) {\n console.error('[EventProvider] Event organisation_id does not match selected organisation');\n return;\n }\n } catch (error) {\n // Silently handle validation errors\n }\n\n setSelectedEventState(event);\n setSelectedEventId(event.event_id);\n persistEventSelection(event.event_id);\n // Reset the user cleared flag when selecting an event\n userClearedEventRef.current = false;\n } else {\n setSelectedEventState(null);\n setSelectedEventId(null);\n // Clear both sessionStorage and localStorage\n sessionStorage.removeItem('pace-core-selected-event');\n localStorage.removeItem('pace-core-selected-event');\n // Reset the auto-selection flag when clearing the event\n hasAutoSelectedRef.current = false;\n // Mark that user explicitly cleared the event to prevent auto-selection\n userClearedEventRef.current = true;\n }\n }, [selectedOrganisation, setSelectedEventId, persistEventSelection]);\n\n const refreshEvents = useCallback(async () => {\n isInitializedRef.current = false;\n isFetchingRef.current = false;\n // Reset the user cleared flag when refreshing events\n userClearedEventRef.current = false;\n await fetchEvents();\n }, [fetchEvents]);\n\n // Memoize the context value to prevent unnecessary re-renders\n const contextValue: EventContextType = useMemo(() => ({\n events,\n selectedEvent,\n isLoading,\n error,\n setSelectedEvent,\n refreshEvents,\n }), [events, selectedEvent, isLoading, error, setSelectedEvent, refreshEvents]);\n\n return (\n <EventContext.Provider value={contextValue}>\n {children}\n </EventContext.Provider>\n );\n}"],"mappings":"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","names":["error","events"]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  useCan
3
- } from "./chunk-CL2MCHIO.js";
3
+ } from "./chunk-DZSLRIE2.js";
4
4
  import {
5
5
  useDataTablePerformance
6
6
  } from "./chunk-SS3E6QLB.js";
@@ -14,7 +14,7 @@ import {
14
14
  init_Button,
15
15
  init_UnifiedAuthProvider,
16
16
  useUnifiedAuth
17
- } from "./chunk-P27KH7XF.js";
17
+ } from "./chunk-6CGBO4IS.js";
18
18
  import {
19
19
  getCurrentAppName,
20
20
  init_appNameResolver
@@ -5584,4 +5584,4 @@ export {
5584
5584
  GroupHeader,
5585
5585
  EditableRow
5586
5586
  };
5587
- //# sourceMappingURL=chunk-ZSXH6L7D.js.map
5587
+ //# sourceMappingURL=chunk-KVMIO3BU.js.map
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  useAccessLevel,
6
6
  useCan
7
- } from "./chunk-CL2MCHIO.js";
7
+ } from "./chunk-DZSLRIE2.js";
8
8
  import {
9
9
  OrganisationContextRequiredError,
10
10
  RBACCache,
@@ -13,12 +13,12 @@ import {
13
13
  } from "./chunk-GWSBHC4J.js";
14
14
  import {
15
15
  useSecureDataAccess
16
- } from "./chunk-RL267HOF.js";
16
+ } from "./chunk-7NAMQC3W.js";
17
17
  import {
18
18
  init_RBACProvider,
19
19
  init_UnifiedAuthProvider,
20
20
  useUnifiedAuth
21
- } from "./chunk-P27KH7XF.js";
21
+ } from "./chunk-6CGBO4IS.js";
22
22
  import {
23
23
  getCurrentAppName,
24
24
  init_appNameResolver
@@ -1929,4 +1929,4 @@ export {
1929
1929
  getPermissionsForRole,
1930
1930
  ALL_PERMISSIONS
1931
1931
  };
1932
- //# sourceMappingURL=chunk-YXTIVGX3.js.map
1932
+ //# sourceMappingURL=chunk-OTQBUB66.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  init_EventProvider
3
- } from "./chunk-XC6XWRP6.js";
3
+ } from "./chunk-HEYEDETJ.js";
4
4
  import {
5
5
  init_AuthProvider,
6
6
  init_InactivityProvider,
7
7
  init_OrganisationProvider,
8
8
  init_UnifiedAuthProvider
9
- } from "./chunk-P27KH7XF.js";
9
+ } from "./chunk-6CGBO4IS.js";
10
10
 
11
11
  // src/providers/index.ts
12
12
  init_EventProvider();
@@ -14,4 +14,4 @@ init_OrganisationProvider();
14
14
  init_UnifiedAuthProvider();
15
15
  init_AuthProvider();
16
16
  init_InactivityProvider();
17
- //# sourceMappingURL=chunk-ZRWNGBDJ.js.map
17
+ //# sourceMappingURL=chunk-SFXM5VTP.js.map
@@ -15,7 +15,7 @@ import {
15
15
  SelectSeparator,
16
16
  SelectTrigger,
17
17
  SelectValue
18
- } from "./chunk-ZSXH6L7D.js";
18
+ } from "./chunk-KVMIO3BU.js";
19
19
  import {
20
20
  isPermitted
21
21
  } from "./chunk-GWSBHC4J.js";
@@ -23,13 +23,13 @@ import {
23
23
  EventProvider_exports,
24
24
  init_EventProvider,
25
25
  useEvents
26
- } from "./chunk-XC6XWRP6.js";
26
+ } from "./chunk-HEYEDETJ.js";
27
27
  import {
28
28
  PublicErrorBoundary,
29
29
  useAppConfig,
30
30
  usePublicEventLogo,
31
31
  usePublicPageContext
32
- } from "./chunk-BLZBTCBT.js";
32
+ } from "./chunk-D4ZF5QUY.js";
33
33
  import {
34
34
  Button,
35
35
  Dialog,
@@ -45,7 +45,7 @@ import {
45
45
  init_UnifiedAuthProvider,
46
46
  useOrganisations,
47
47
  useUnifiedAuth
48
- } from "./chunk-P27KH7XF.js";
48
+ } from "./chunk-6CGBO4IS.js";
49
49
  import {
50
50
  LoadingSpinner
51
51
  } from "./chunk-CDQ3PX7L.js";
@@ -3290,4 +3290,4 @@ export {
3290
3290
  PublicPageDiagnostic,
3291
3291
  PublicPageContextChecker
3292
3292
  };
3293
- //# sourceMappingURL=chunk-2DUJJPO2.js.map
3293
+ //# sourceMappingURL=chunk-U7EDXJBG.js.map
@@ -1,4 +1,4 @@
1
- export { b as UnifiedAuthContextType, U as UnifiedAuthProvider, a as UnifiedAuthProviderProps, u as useUnifiedAuth } from './UnifiedAuthProvider-DGQsy-vY.js';
1
+ export { b as UnifiedAuthContextType, U as UnifiedAuthProvider, a as UnifiedAuthProviderProps, u as useUnifiedAuth } from './UnifiedAuthProvider-CQNiemcB.js';
2
2
  export { A as Alert, r as AlertDescription, q as AlertTitle, s as Avatar, u as AvatarFallback, t as AvatarImage, B as Button, g as ButtonProps, C as Card, m as CardActions, b6 as CardActionsProps, l as CardContent, k as CardDescription, i as CardFooter, h as CardHeader, n as CardProps, j as CardTitle, v as Checkbox, aX as DefaultPublicErrorFallback, D as Dialog, H as DialogBody, z as DialogClose, E as DialogContent, b9 as DialogContentProps, M as DialogDescription, be as DialogDescriptionProps, J as DialogFooter, bc as DialogFooterProps, G as DialogHeader, bb as DialogHeaderProps, x as DialogOverlay, ba as DialogOverlayProps, w as DialogPortal, b7 as DialogProps, bf as DialogSize, K as DialogTitle, bd as DialogTitleProps, y as DialogTrigger, b8 as DialogTriggerProps, aq as ErrorBoundary, bi as ErrorBoundaryProps, bj as ErrorBoundaryState, aS as EventLogo, aT as EventLogoCompact, aU as EventLogoLarge, b2 as EventLogoProps, as as EventSelector, av as FileUpload, aw as FileUploadProps, af as Footer, ag as FooterProps, ab as Form, bg as FormProps, ae as Header, I as Input, o as InputProps, L as Label, p as LabelProps, ar as LoadingSpinner, ac as LoginForm, ad as LoginFormProps, aj as NavigationItem, ah as NavigationMenu, ai as NavigationMenuProps, at as OrganisationSelector, bh as OrganisationSelectorProps, am as PaceAppLayout, an as PaceAppLayoutProps, ao as PaceLoginPage, ap as PaceLoginPageProps, au as PasswordResetForm, P as Progress, aV as PublicErrorBoundary, b3 as PublicErrorBoundaryProps, b4 as PublicErrorBoundaryState, a_ as PublicLoadingSkeleton, aY as PublicLoadingSpinner, aZ as PublicLoadingSpinnerFullPage, b5 as PublicLoadingSpinnerProps, aR as PublicPageContextChecker, aP as PublicPageDebugger, aQ as PublicPageDiagnostic, aO as PublicPageFooter, b1 as PublicPageFooterProps, aK as PublicPageHeader, b0 as PublicPageHeaderProps, aI as PublicPageLayout, a$ as PublicPageLayoutProps, aL as PublicPageProvider, N as Select, T as SelectContent, O as SelectGroup, V as SelectItem, U as SelectLabel, W as SelectSeparator, R as SelectTrigger, Q as SelectValue, az as Table, aB as TableBody, aC as TableCaption, aD as TableCell, aE as TableFooter, aF as TableHead, aA as TableHeader, aG as TableRow, X as Toast, Z as ToastAction, a4 as ToastActionElement, a2 as ToastClose, a1 as ToastDescription, a5 as ToastProps, _ as ToastProvider, a0 as ToastTitle, $ as ToastViewport, Y as Toaster, a6 as Tooltip, a8 as TooltipContent, a9 as TooltipProvider, aa as TooltipRoot, a7 as TooltipTrigger, bk as UseStorageOptions, bl as UseStorageReturn, ak as UserMenu, aW as useErrorBoundary, ay as useFileUpload, aN as useIsPublicPage, aJ as usePublicPageContext, aM as usePublicPageProviderContext, ax as useStorage, a3 as useToast } from './PublicLoadingSpinner-Bq_-BeK-.js';
3
3
  export { D as DataTable, a as DataTableProps } from './DataTable-DqDDvBfI.js';
4
4
  export { A as AggregateConfig, D as DataRecord, f as DataTableAction, a as DataTableColumn, g as DataTableToolbarButton, E as EmptyStateConfig, G as GetRowId } from './types-E5WSpEtz.js';
@@ -49,7 +49,7 @@ import {
49
49
  usePublicPageContext as usePublicPageContext2,
50
50
  useStorage,
51
51
  useToast
52
- } from "./chunk-2DUJJPO2.js";
52
+ } from "./chunk-U7EDXJBG.js";
53
53
  import {
54
54
  Alert,
55
55
  AlertDescription,
@@ -72,14 +72,14 @@ import {
72
72
  SelectSeparator,
73
73
  SelectTrigger,
74
74
  SelectValue
75
- } from "./chunk-ZSXH6L7D.js";
75
+ } from "./chunk-KVMIO3BU.js";
76
76
  import {
77
77
  useRBAC
78
- } from "./chunk-CL2MCHIO.js";
78
+ } from "./chunk-DZSLRIE2.js";
79
79
  import "./chunk-GWSBHC4J.js";
80
80
  import "./chunk-7BNPOCLL.js";
81
- import "./chunk-ZRWNGBDJ.js";
82
- import "./chunk-XC6XWRP6.js";
81
+ import "./chunk-SFXM5VTP.js";
82
+ import "./chunk-HEYEDETJ.js";
83
83
  import {
84
84
  DefaultPublicErrorFallback,
85
85
  PublicErrorBoundary,
@@ -87,7 +87,7 @@ import {
87
87
  useErrorBoundary,
88
88
  useIsPublicPage,
89
89
  usePublicPageContext
90
- } from "./chunk-BLZBTCBT.js";
90
+ } from "./chunk-D4ZF5QUY.js";
91
91
  import "./chunk-SS3E6QLB.js";
92
92
  import {
93
93
  Button,
@@ -112,7 +112,7 @@ import {
112
112
  init_Tooltip2 as init_Tooltip,
113
113
  init_UnifiedAuthProvider,
114
114
  useUnifiedAuth
115
- } from "./chunk-P27KH7XF.js";
115
+ } from "./chunk-6CGBO4IS.js";
116
116
  import "./chunk-YDJW5XTN.js";
117
117
  import {
118
118
  LoadingSpinner
package/dist/hooks.js CHANGED
@@ -8,20 +8,20 @@ import {
8
8
  usePublicEvent,
9
9
  usePublicEventCode,
10
10
  usePublicRouteParams
11
- } from "./chunk-APHGXR2D.js";
11
+ } from "./chunk-DWA6SCGM.js";
12
12
  import {
13
13
  useSecureDataAccess
14
- } from "./chunk-RL267HOF.js";
14
+ } from "./chunk-7NAMQC3W.js";
15
15
  import {
16
16
  clearPublicLogoCache,
17
17
  getPublicLogoCacheStats,
18
18
  useAppConfig,
19
19
  usePublicEventLogo
20
- } from "./chunk-BLZBTCBT.js";
20
+ } from "./chunk-D4ZF5QUY.js";
21
21
  import {
22
22
  useDataTablePerformance
23
23
  } from "./chunk-SS3E6QLB.js";
24
- import "./chunk-P27KH7XF.js";
24
+ import "./chunk-6CGBO4IS.js";
25
25
  import "./chunk-YDJW5XTN.js";
26
26
  import {
27
27
  useComponentPerformance
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { b as UnifiedAuthContextType, U as UnifiedAuthProvider, a as UnifiedAuthProviderProps, u as useUnifiedAuth } from './UnifiedAuthProvider-DGQsy-vY.js';
1
+ export { b as UnifiedAuthContextType, U as UnifiedAuthProvider, a as UnifiedAuthProviderProps, u as useUnifiedAuth } from './UnifiedAuthProvider-CQNiemcB.js';
2
2
  export { EventContextType, EventProvider, EventProviderProps, OrganisationProvider, useEvents, useOrganisations } from './providers.js';
3
3
  export { O as Organisation, b as OrganisationContextType, a as OrganisationMembership, c as OrganisationProviderProps, d as OrganisationSecurityError, U as UserProfile } from './organisation-CO3Sh3_D.js';
4
4
  import * as react_jsx_runtime from 'react/jsx-runtime';
package/dist/index.js CHANGED
@@ -31,7 +31,7 @@ import {
31
31
  withAccessLevelGuard,
32
32
  withPermissionGuard,
33
33
  withRoleGuard
34
- } from "./chunk-YXTIVGX3.js";
34
+ } from "./chunk-OTQBUB66.js";
35
35
  import "./chunk-TYHR5X4W.js";
36
36
  import {
37
37
  APP_PATH_MAPPING,
@@ -101,7 +101,7 @@ import {
101
101
  useStorage,
102
102
  useToast,
103
103
  validateFileSize
104
- } from "./chunk-2DUJJPO2.js";
104
+ } from "./chunk-U7EDXJBG.js";
105
105
  import {
106
106
  Alert,
107
107
  AlertDescription,
@@ -124,7 +124,7 @@ import {
124
124
  SelectSeparator,
125
125
  SelectTrigger,
126
126
  SelectValue
127
- } from "./chunk-ZSXH6L7D.js";
127
+ } from "./chunk-KVMIO3BU.js";
128
128
  import {
129
129
  useAccessLevel,
130
130
  useCachedPermissions,
@@ -134,7 +134,7 @@ import {
134
134
  useMultiplePermissions,
135
135
  usePermissions,
136
136
  useRBAC as useRBAC2
137
- } from "./chunk-CL2MCHIO.js";
137
+ } from "./chunk-DZSLRIE2.js";
138
138
  import {
139
139
  CACHE_PATTERNS,
140
140
  RBACCache,
@@ -162,12 +162,12 @@ import {
162
162
  getGlobalAuditManager,
163
163
  setGlobalAuditManager
164
164
  } from "./chunk-7BNPOCLL.js";
165
- import "./chunk-ZRWNGBDJ.js";
165
+ import "./chunk-SFXM5VTP.js";
166
166
  import {
167
167
  EventProvider,
168
168
  init_EventProvider,
169
169
  useEvents
170
- } from "./chunk-XC6XWRP6.js";
170
+ } from "./chunk-HEYEDETJ.js";
171
171
  import {
172
172
  clearPublicEventCache,
173
173
  extractEventCodeFromPath,
@@ -178,8 +178,8 @@ import {
178
178
  usePublicEvent,
179
179
  usePublicEventCode,
180
180
  usePublicRouteParams
181
- } from "./chunk-APHGXR2D.js";
182
- import "./chunk-RL267HOF.js";
181
+ } from "./chunk-DWA6SCGM.js";
182
+ import "./chunk-7NAMQC3W.js";
183
183
  import {
184
184
  DefaultPublicErrorFallback,
185
185
  PublicErrorBoundary,
@@ -191,7 +191,7 @@ import {
191
191
  useIsPublicPage,
192
192
  usePublicEventLogo,
193
193
  usePublicPageContext
194
- } from "./chunk-BLZBTCBT.js";
194
+ } from "./chunk-D4ZF5QUY.js";
195
195
  import "./chunk-SS3E6QLB.js";
196
196
  import {
197
197
  Button,
@@ -226,7 +226,7 @@ import {
226
226
  useOrganisations,
227
227
  useRBAC,
228
228
  useUnifiedAuth
229
- } from "./chunk-P27KH7XF.js";
229
+ } from "./chunk-6CGBO4IS.js";
230
230
  import "./chunk-YDJW5XTN.js";
231
231
  import {
232
232
  getAppConfig,
@@ -3,7 +3,7 @@ import React__default from 'react';
3
3
  import { r as Event } from './unified-CMPjE_fv.js';
4
4
  import { c as OrganisationProviderProps, b as OrganisationContextType } from './organisation-CO3Sh3_D.js';
5
5
  export { O as Organisation, a as OrganisationMembership, d as OrganisationSecurityError } from './organisation-CO3Sh3_D.js';
6
- export { A as AuthContextType, e as AuthProvider, d as AuthProviderProps, I as InactivityContextType, h as InactivityProvider, g as InactivityProviderProps, b as UnifiedAuthContextType, U as UnifiedAuthProvider, a as UnifiedAuthProviderProps, c as useAuth, f as useInactivity, u as useUnifiedAuth } from './UnifiedAuthProvider-DGQsy-vY.js';
6
+ export { A as AuthContextType, d as AuthProvider, c as AuthProviderProps, I as InactivityContextType, h as InactivityProvider, g as InactivityProviderProps, b as UnifiedAuthContextType, U as UnifiedAuthProvider, a as UnifiedAuthProviderProps, e as useAuth, f as useInactivity, u as useUnifiedAuth } from './UnifiedAuthProvider-CQNiemcB.js';
7
7
  export { U as UserEventAccess } from './RBACProvider-BO4ilsQB.js';
8
8
  import '@supabase/supabase-js';
9
9
 
package/dist/providers.js CHANGED
@@ -1,8 +1,8 @@
1
- import "./chunk-ZRWNGBDJ.js";
1
+ import "./chunk-SFXM5VTP.js";
2
2
  import {
3
3
  EventProvider,
4
4
  useEvents
5
- } from "./chunk-XC6XWRP6.js";
5
+ } from "./chunk-HEYEDETJ.js";
6
6
  import {
7
7
  AuthProvider,
8
8
  InactivityProvider,
@@ -12,7 +12,7 @@ import {
12
12
  useInactivity,
13
13
  useOrganisations,
14
14
  useUnifiedAuth
15
- } from "./chunk-P27KH7XF.js";
15
+ } from "./chunk-6CGBO4IS.js";
16
16
  import "./chunk-YDJW5XTN.js";
17
17
  import "./chunk-WJARTBCT.js";
18
18
  import "./chunk-PLDDJCW6.js";
@@ -31,7 +31,7 @@ import {
31
31
  withAccessLevelGuard,
32
32
  withPermissionGuard,
33
33
  withRoleGuard
34
- } from "../chunk-YXTIVGX3.js";
34
+ } from "../chunk-OTQBUB66.js";
35
35
  import "../chunk-TYHR5X4W.js";
36
36
  import {
37
37
  useAccessLevel,
@@ -42,7 +42,7 @@ import {
42
42
  useMultiplePermissions,
43
43
  usePermissions,
44
44
  useRBAC as useRBAC2
45
- } from "../chunk-CL2MCHIO.js";
45
+ } from "../chunk-DZSLRIE2.js";
46
46
  import {
47
47
  CACHE_PATTERNS,
48
48
  RBACCache,
@@ -70,12 +70,12 @@ import {
70
70
  getGlobalAuditManager,
71
71
  setGlobalAuditManager
72
72
  } from "../chunk-7BNPOCLL.js";
73
- import "../chunk-XC6XWRP6.js";
74
- import "../chunk-RL267HOF.js";
73
+ import "../chunk-HEYEDETJ.js";
74
+ import "../chunk-7NAMQC3W.js";
75
75
  import {
76
76
  RBACProvider,
77
77
  useRBAC
78
- } from "../chunk-P27KH7XF.js";
78
+ } from "../chunk-6CGBO4IS.js";
79
79
  import "../chunk-YDJW5XTN.js";
80
80
  import "../chunk-MZBUOP4P.js";
81
81
  import "../chunk-WJARTBCT.js";
package/dist/utils.js CHANGED
@@ -545,7 +545,7 @@ function createLazyComponent(importFn, componentName, options = {}) {
545
545
  return WrappedComponent;
546
546
  }
547
547
  var LazyDataTable = createLazyComponent(
548
- () => import("./DataTable-DCW3J4YX.js").then((module) => ({ default: module.DataTable })),
548
+ () => import("./DataTable-GU72TTL6.js").then((module) => ({ default: module.DataTable })),
549
549
  "DataTable"
550
550
  );
551
551
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.42](../README.md) / [Exports](../modules.md) / ErrorBoundary
1
+ [@jmruthers/pace-core - v0.5.44](../README.md) / [Exports](../modules.md) / ErrorBoundary
2
2
 
3
3
  # Class: ErrorBoundary
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.42](../README.md) / [Exports](../modules.md) / InvalidScopeError
1
+ [@jmruthers/pace-core - v0.5.44](../README.md) / [Exports](../modules.md) / InvalidScopeError
2
2
 
3
3
  # Class: InvalidScopeError
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.42](../README.md) / [Exports](../modules.md) / MissingUserContextError
1
+ [@jmruthers/pace-core - v0.5.44](../README.md) / [Exports](../modules.md) / MissingUserContextError
2
2
 
3
3
  # Class: MissingUserContextError
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.42](../README.md) / [Exports](../modules.md) / OrganisationContextRequiredError
1
+ [@jmruthers/pace-core - v0.5.44](../README.md) / [Exports](../modules.md) / OrganisationContextRequiredError
2
2
 
3
3
  # Class: OrganisationContextRequiredError
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.42](../README.md) / [Exports](../modules.md) / PermissionDeniedError
1
+ [@jmruthers/pace-core - v0.5.44](../README.md) / [Exports](../modules.md) / PermissionDeniedError
2
2
 
3
3
  # Class: PermissionDeniedError
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.42](../README.md) / [Exports](../modules.md) / PublicErrorBoundary
1
+ [@jmruthers/pace-core - v0.5.44](../README.md) / [Exports](../modules.md) / PublicErrorBoundary
2
2
 
3
3
  # Class: PublicErrorBoundary
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.42](../README.md) / [Exports](../modules.md) / RBACAuditManager
1
+ [@jmruthers/pace-core - v0.5.44](../README.md) / [Exports](../modules.md) / RBACAuditManager
2
2
 
3
3
  # Class: RBACAuditManager
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.42](../README.md) / [Exports](../modules.md) / RBACCache
1
+ [@jmruthers/pace-core - v0.5.44](../README.md) / [Exports](../modules.md) / RBACCache
2
2
 
3
3
  # Class: RBACCache
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.42](../README.md) / [Exports](../modules.md) / RBACEngine
1
+ [@jmruthers/pace-core - v0.5.44](../README.md) / [Exports](../modules.md) / RBACEngine
2
2
 
3
3
  # Class: RBACEngine
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.42](../README.md) / [Exports](../modules.md) / RBACError
1
+ [@jmruthers/pace-core - v0.5.44](../README.md) / [Exports](../modules.md) / RBACError
2
2
 
3
3
  # Class: RBACError
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.42](../README.md) / [Exports](../modules.md) / RBACNotInitializedError
1
+ [@jmruthers/pace-core - v0.5.44](../README.md) / [Exports](../modules.md) / RBACNotInitializedError
2
2
 
3
3
  # Class: RBACNotInitializedError
4
4