@jmruthers/pace-core 0.5.44 → 0.5.45

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 (123) hide show
  1. package/dist/{DataTable-GU72TTL6.js → DataTable-PWLLTSP7.js} +5 -5
  2. package/dist/{chunk-D4ZF5QUY.js → chunk-2T6QEWMI.js} +2 -2
  3. package/dist/{chunk-OTQBUB66.js → chunk-3FAB54BI.js} +4 -4
  4. package/dist/{chunk-HEYEDETJ.js → chunk-3PNBACK3.js} +2 -2
  5. package/dist/{chunk-U7EDXJBG.js → chunk-6AQ7X3EE.js} +5 -5
  6. package/dist/{chunk-SFXM5VTP.js → chunk-D4X7PPGX.js} +3 -3
  7. package/dist/{chunk-DZSLRIE2.js → chunk-FZ7EBWOT.js} +3 -3
  8. package/dist/{chunk-KVMIO3BU.js → chunk-GIISFLMP.js} +3 -3
  9. package/dist/{chunk-7NAMQC3W.js → chunk-NYF3CUNC.js} +2 -2
  10. package/dist/{chunk-6CGBO4IS.js → chunk-OQ6DTLZ6.js} +34 -8
  11. package/dist/{chunk-6CGBO4IS.js.map → chunk-OQ6DTLZ6.js.map} +1 -1
  12. package/dist/{chunk-DWA6SCGM.js → chunk-VCHXOYD5.js} +3 -3
  13. package/dist/components.js +7 -7
  14. package/dist/hooks.js +4 -4
  15. package/dist/index.js +10 -10
  16. package/dist/providers.js +3 -3
  17. package/dist/rbac/index.js +5 -5
  18. package/dist/utils.js +1 -1
  19. package/docs/api/classes/ErrorBoundary.md +1 -1
  20. package/docs/api/classes/InvalidScopeError.md +1 -1
  21. package/docs/api/classes/MissingUserContextError.md +1 -1
  22. package/docs/api/classes/OrganisationContextRequiredError.md +1 -1
  23. package/docs/api/classes/PermissionDeniedError.md +1 -1
  24. package/docs/api/classes/PublicErrorBoundary.md +1 -1
  25. package/docs/api/classes/RBACAuditManager.md +1 -1
  26. package/docs/api/classes/RBACCache.md +1 -1
  27. package/docs/api/classes/RBACEngine.md +1 -1
  28. package/docs/api/classes/RBACError.md +1 -1
  29. package/docs/api/classes/RBACNotInitializedError.md +1 -1
  30. package/docs/api/classes/SecureSupabaseClient.md +1 -1
  31. package/docs/api/interfaces/AggregateConfig.md +1 -1
  32. package/docs/api/interfaces/ButtonProps.md +1 -1
  33. package/docs/api/interfaces/CardProps.md +1 -1
  34. package/docs/api/interfaces/ColorPalette.md +1 -1
  35. package/docs/api/interfaces/ColorShade.md +1 -1
  36. package/docs/api/interfaces/DataAccessRecord.md +1 -1
  37. package/docs/api/interfaces/DataTableAction.md +1 -1
  38. package/docs/api/interfaces/DataTableColumn.md +1 -1
  39. package/docs/api/interfaces/DataTableProps.md +1 -1
  40. package/docs/api/interfaces/DataTableToolbarButton.md +1 -1
  41. package/docs/api/interfaces/EmptyStateConfig.md +1 -1
  42. package/docs/api/interfaces/EnhancedNavigationMenuProps.md +1 -1
  43. package/docs/api/interfaces/EventContextType.md +1 -1
  44. package/docs/api/interfaces/EventLogoProps.md +1 -1
  45. package/docs/api/interfaces/EventProviderProps.md +1 -1
  46. package/docs/api/interfaces/FileSizeLimits.md +1 -1
  47. package/docs/api/interfaces/FileUploadProps.md +1 -1
  48. package/docs/api/interfaces/FooterProps.md +1 -1
  49. package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
  50. package/docs/api/interfaces/InputProps.md +1 -1
  51. package/docs/api/interfaces/LabelProps.md +1 -1
  52. package/docs/api/interfaces/LoginFormProps.md +1 -1
  53. package/docs/api/interfaces/NavigationAccessRecord.md +1 -1
  54. package/docs/api/interfaces/NavigationContextType.md +1 -1
  55. package/docs/api/interfaces/NavigationGuardProps.md +1 -1
  56. package/docs/api/interfaces/NavigationItem.md +1 -1
  57. package/docs/api/interfaces/NavigationMenuProps.md +1 -1
  58. package/docs/api/interfaces/NavigationProviderProps.md +1 -1
  59. package/docs/api/interfaces/Organisation.md +1 -1
  60. package/docs/api/interfaces/OrganisationContextType.md +1 -1
  61. package/docs/api/interfaces/OrganisationMembership.md +1 -1
  62. package/docs/api/interfaces/OrganisationProviderProps.md +1 -1
  63. package/docs/api/interfaces/OrganisationSecurityError.md +1 -1
  64. package/docs/api/interfaces/PaceAppLayoutProps.md +1 -1
  65. package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
  66. package/docs/api/interfaces/PageAccessRecord.md +1 -1
  67. package/docs/api/interfaces/PagePermissionContextType.md +1 -1
  68. package/docs/api/interfaces/PagePermissionGuardProps.md +1 -1
  69. package/docs/api/interfaces/PagePermissionProviderProps.md +1 -1
  70. package/docs/api/interfaces/PaletteData.md +1 -1
  71. package/docs/api/interfaces/PermissionEnforcerProps.md +1 -1
  72. package/docs/api/interfaces/PublicErrorBoundaryProps.md +1 -1
  73. package/docs/api/interfaces/PublicErrorBoundaryState.md +1 -1
  74. package/docs/api/interfaces/PublicLoadingSpinnerProps.md +1 -1
  75. package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
  76. package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
  77. package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
  78. package/docs/api/interfaces/RBACConfig.md +1 -1
  79. package/docs/api/interfaces/RBACContextType.md +1 -1
  80. package/docs/api/interfaces/RBACLogger.md +1 -1
  81. package/docs/api/interfaces/RBACProviderProps.md +1 -1
  82. package/docs/api/interfaces/RoleBasedRouterContextType.md +1 -1
  83. package/docs/api/interfaces/RoleBasedRouterProps.md +1 -1
  84. package/docs/api/interfaces/RouteAccessRecord.md +1 -1
  85. package/docs/api/interfaces/RouteConfig.md +1 -1
  86. package/docs/api/interfaces/SecureDataContextType.md +1 -1
  87. package/docs/api/interfaces/SecureDataProviderProps.md +1 -1
  88. package/docs/api/interfaces/StorageConfig.md +1 -1
  89. package/docs/api/interfaces/StorageFileInfo.md +1 -1
  90. package/docs/api/interfaces/StorageFileMetadata.md +1 -1
  91. package/docs/api/interfaces/StorageListOptions.md +1 -1
  92. package/docs/api/interfaces/StorageListResult.md +1 -1
  93. package/docs/api/interfaces/StorageUploadOptions.md +1 -1
  94. package/docs/api/interfaces/StorageUploadResult.md +1 -1
  95. package/docs/api/interfaces/StorageUrlOptions.md +1 -1
  96. package/docs/api/interfaces/StyleImport.md +1 -1
  97. package/docs/api/interfaces/ToastActionElement.md +1 -1
  98. package/docs/api/interfaces/ToastProps.md +1 -1
  99. package/docs/api/interfaces/UnifiedAuthContextType.md +1 -1
  100. package/docs/api/interfaces/UnifiedAuthProviderProps.md +1 -1
  101. package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
  102. package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
  103. package/docs/api/interfaces/UsePublicEventLogoOptions.md +1 -1
  104. package/docs/api/interfaces/UsePublicEventLogoReturn.md +1 -1
  105. package/docs/api/interfaces/UsePublicEventOptions.md +1 -1
  106. package/docs/api/interfaces/UsePublicEventReturn.md +1 -1
  107. package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
  108. package/docs/api/interfaces/UserEventAccess.md +1 -1
  109. package/docs/api/interfaces/UserMenuProps.md +1 -1
  110. package/docs/api/interfaces/UserProfile.md +1 -1
  111. package/docs/api/modules.md +3 -3
  112. package/package.json +1 -1
  113. package/src/providers/OrganisationProvider.tsx +38 -7
  114. /package/dist/{DataTable-GU72TTL6.js.map → DataTable-PWLLTSP7.js.map} +0 -0
  115. /package/dist/{chunk-D4ZF5QUY.js.map → chunk-2T6QEWMI.js.map} +0 -0
  116. /package/dist/{chunk-OTQBUB66.js.map → chunk-3FAB54BI.js.map} +0 -0
  117. /package/dist/{chunk-HEYEDETJ.js.map → chunk-3PNBACK3.js.map} +0 -0
  118. /package/dist/{chunk-U7EDXJBG.js.map → chunk-6AQ7X3EE.js.map} +0 -0
  119. /package/dist/{chunk-SFXM5VTP.js.map → chunk-D4X7PPGX.js.map} +0 -0
  120. /package/dist/{chunk-DZSLRIE2.js.map → chunk-FZ7EBWOT.js.map} +0 -0
  121. /package/dist/{chunk-KVMIO3BU.js.map → chunk-GIISFLMP.js.map} +0 -0
  122. /package/dist/{chunk-7NAMQC3W.js.map → chunk-NYF3CUNC.js.map} +0 -0
  123. /package/dist/{chunk-DWA6SCGM.js.map → chunk-VCHXOYD5.js.map} +0 -0
@@ -32,11 +32,11 @@ import {
32
32
  useDataTableContext,
33
33
  usePluginRegistry,
34
34
  useStateManager
35
- } from "./chunk-KVMIO3BU.js";
36
- import "./chunk-DZSLRIE2.js";
35
+ } from "./chunk-GIISFLMP.js";
36
+ import "./chunk-FZ7EBWOT.js";
37
37
  import "./chunk-GWSBHC4J.js";
38
38
  import "./chunk-7BNPOCLL.js";
39
- import "./chunk-HEYEDETJ.js";
39
+ import "./chunk-3PNBACK3.js";
40
40
  import {
41
41
  DataChunkManager,
42
42
  SearchIndex,
@@ -48,7 +48,7 @@ import {
48
48
  throttle,
49
49
  useDataTablePerformance
50
50
  } from "./chunk-SS3E6QLB.js";
51
- import "./chunk-6CGBO4IS.js";
51
+ import "./chunk-OQ6DTLZ6.js";
52
52
  import "./chunk-YDJW5XTN.js";
53
53
  import "./chunk-MZBUOP4P.js";
54
54
  import "./chunk-WJARTBCT.js";
@@ -97,4 +97,4 @@ export {
97
97
  usePluginRegistry,
98
98
  useStateManager
99
99
  };
100
- //# sourceMappingURL=DataTable-GU72TTL6.js.map
100
+ //# sourceMappingURL=DataTable-PWLLTSP7.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  init_UnifiedAuthProvider,
3
3
  useUnifiedAuth
4
- } from "./chunk-6CGBO4IS.js";
4
+ } from "./chunk-OQ6DTLZ6.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-D4ZF5QUY.js.map
389
+ //# sourceMappingURL=chunk-2T6QEWMI.js.map
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  useAccessLevel,
6
6
  useCan
7
- } from "./chunk-DZSLRIE2.js";
7
+ } from "./chunk-FZ7EBWOT.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-7NAMQC3W.js";
16
+ } from "./chunk-NYF3CUNC.js";
17
17
  import {
18
18
  init_RBACProvider,
19
19
  init_UnifiedAuthProvider,
20
20
  useUnifiedAuth
21
- } from "./chunk-6CGBO4IS.js";
21
+ } from "./chunk-OQ6DTLZ6.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-OTQBUB66.js.map
1932
+ //# sourceMappingURL=chunk-3FAB54BI.js.map
@@ -3,7 +3,7 @@ import {
3
3
  init_UnifiedAuthProvider,
4
4
  useOrganisations,
5
5
  useUnifiedAuth
6
- } from "./chunk-6CGBO4IS.js";
6
+ } from "./chunk-OQ6DTLZ6.js";
7
7
  import {
8
8
  DebugLogger,
9
9
  init_debugLogger,
@@ -261,4 +261,4 @@ export {
261
261
  EventProvider_exports,
262
262
  init_EventProvider
263
263
  };
264
- //# sourceMappingURL=chunk-HEYEDETJ.js.map
264
+ //# sourceMappingURL=chunk-3PNBACK3.js.map
@@ -15,7 +15,7 @@ import {
15
15
  SelectSeparator,
16
16
  SelectTrigger,
17
17
  SelectValue
18
- } from "./chunk-KVMIO3BU.js";
18
+ } from "./chunk-GIISFLMP.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-HEYEDETJ.js";
26
+ } from "./chunk-3PNBACK3.js";
27
27
  import {
28
28
  PublicErrorBoundary,
29
29
  useAppConfig,
30
30
  usePublicEventLogo,
31
31
  usePublicPageContext
32
- } from "./chunk-D4ZF5QUY.js";
32
+ } from "./chunk-2T6QEWMI.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-6CGBO4IS.js";
48
+ } from "./chunk-OQ6DTLZ6.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-U7EDXJBG.js.map
3293
+ //# sourceMappingURL=chunk-6AQ7X3EE.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  init_EventProvider
3
- } from "./chunk-HEYEDETJ.js";
3
+ } from "./chunk-3PNBACK3.js";
4
4
  import {
5
5
  init_AuthProvider,
6
6
  init_InactivityProvider,
7
7
  init_OrganisationProvider,
8
8
  init_UnifiedAuthProvider
9
- } from "./chunk-6CGBO4IS.js";
9
+ } from "./chunk-OQ6DTLZ6.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-SFXM5VTP.js.map
17
+ //# sourceMappingURL=chunk-D4X7PPGX.js.map
@@ -7,13 +7,13 @@ import {
7
7
  import {
8
8
  init_EventProvider,
9
9
  useEvents
10
- } from "./chunk-HEYEDETJ.js";
10
+ } from "./chunk-3PNBACK3.js";
11
11
  import {
12
12
  init_OrganisationProvider,
13
13
  init_UnifiedAuthProvider,
14
14
  useOrganisations,
15
15
  useUnifiedAuth
16
- } from "./chunk-6CGBO4IS.js";
16
+ } from "./chunk-OQ6DTLZ6.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-DZSLRIE2.js.map
509
+ //# sourceMappingURL=chunk-FZ7EBWOT.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  useCan
3
- } from "./chunk-DZSLRIE2.js";
3
+ } from "./chunk-FZ7EBWOT.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-6CGBO4IS.js";
17
+ } from "./chunk-OQ6DTLZ6.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-KVMIO3BU.js.map
5587
+ //# sourceMappingURL=chunk-GIISFLMP.js.map
@@ -3,7 +3,7 @@ import {
3
3
  init_UnifiedAuthProvider,
4
4
  useOrganisations,
5
5
  useUnifiedAuth
6
- } from "./chunk-6CGBO4IS.js";
6
+ } from "./chunk-OQ6DTLZ6.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-7NAMQC3W.js.map
382
+ //# sourceMappingURL=chunk-NYF3CUNC.js.map
@@ -7379,11 +7379,26 @@ function OrganisationProvider({ children }) {
7379
7379
  if (!memberships || memberships.length === 0) {
7380
7380
  throw new Error("User has no active organisation memberships");
7381
7381
  }
7382
+ memberships.forEach((membership, index) => {
7383
+ if (!membership.organisation_id || membership.organisation_id.trim() === "") {
7384
+ console.warn(`[OrganisationProvider] Membership ${index} has invalid organisation_id:`, membership);
7385
+ }
7386
+ });
7382
7387
  const organisationIds = memberships.map((m) => m.organisation_id).filter((id) => {
7383
- if (!id || typeof id !== "string") return false;
7388
+ if (!id || typeof id !== "string") {
7389
+ console.warn("[OrganisationProvider] Invalid organisation ID (not string):", id);
7390
+ return false;
7391
+ }
7384
7392
  const trimmedId = id.trim();
7385
- if (trimmedId === "") return false;
7386
- return /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(trimmedId);
7393
+ if (trimmedId === "") {
7394
+ console.warn("[OrganisationProvider] Empty organisation ID found");
7395
+ return false;
7396
+ }
7397
+ const isValidUuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(trimmedId);
7398
+ if (!isValidUuid) {
7399
+ console.warn("[OrganisationProvider] Invalid UUID format:", trimmedId);
7400
+ }
7401
+ return isValidUuid;
7387
7402
  });
7388
7403
  if (organisationIds.length === 0) {
7389
7404
  console.warn("[OrganisationProvider] No valid organisation IDs found in memberships:", memberships);
@@ -7413,14 +7428,23 @@ function OrganisationProvider({ children }) {
7413
7428
  const persistedOrgString = localStorage.getItem(STORAGE_KEYS2.SELECTED_ORGANISATION);
7414
7429
  if (persistedOrgString) {
7415
7430
  const persistedOrg = JSON.parse(persistedOrgString);
7416
- const validPersistedOrg = activeOrgs.find((org) => org.id === persistedOrg.id);
7417
- if (validPersistedOrg) {
7418
- initialOrg = validPersistedOrg;
7419
- DebugLogger.log("OrganisationProvider", "Restored persisted organisation:", initialOrg.display_name);
7431
+ if (persistedOrg.id && typeof persistedOrg.id === "string" && persistedOrg.id.trim() !== "") {
7432
+ const validPersistedOrg = activeOrgs.find((org) => org.id === persistedOrg.id);
7433
+ if (validPersistedOrg) {
7434
+ initialOrg = validPersistedOrg;
7435
+ DebugLogger.log("OrganisationProvider", "Restored persisted organisation:", initialOrg.display_name);
7436
+ } else {
7437
+ console.warn("[OrganisationProvider] Persisted organisation not found in active orgs, clearing cache");
7438
+ localStorage.removeItem(STORAGE_KEYS2.SELECTED_ORGANISATION);
7439
+ }
7440
+ } else {
7441
+ console.warn("[OrganisationProvider] Invalid persisted organisation ID, clearing cache");
7442
+ localStorage.removeItem(STORAGE_KEYS2.SELECTED_ORGANISATION);
7420
7443
  }
7421
7444
  }
7422
7445
  } catch (storageError) {
7423
7446
  console.warn("[OrganisationProvider] Failed to restore persisted organisation:", storageError);
7447
+ localStorage.removeItem(STORAGE_KEYS2.SELECTED_ORGANISATION);
7424
7448
  }
7425
7449
  if (!initialOrg) {
7426
7450
  const adminMembership = memberships.find((m) => m.role === "org_admin");
@@ -7469,6 +7493,8 @@ function OrganisationProvider({ children }) {
7469
7493
  setRoleMapState(/* @__PURE__ */ new Map());
7470
7494
  setIsLoading(false);
7471
7495
  setError(null);
7496
+ localStorage.removeItem(STORAGE_KEYS2.SELECTED_ORGANISATION);
7497
+ localStorage.removeItem(STORAGE_KEYS2.ORGANISATION_CONTEXT);
7472
7498
  }
7473
7499
  }, [user, session, supabase, isLoading, loadUserOrganisations]);
7474
7500
  const handleLogoutAndRedirect = useCallback7(async () => {
@@ -7719,4 +7745,4 @@ lodash/lodash.js:
7719
7745
  * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
7720
7746
  *)
7721
7747
  */
7722
- //# sourceMappingURL=chunk-6CGBO4IS.js.map
7748
+ //# sourceMappingURL=chunk-OQ6DTLZ6.js.map