@jmruthers/pace-core 0.5.185 → 0.5.187

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 (300) hide show
  1. package/dist/{DataTable-Z9NLVJh0.d.ts → DataTable-IVYljGJ6.d.ts} +1 -1
  2. package/dist/{DataTable-IX2NBUTP.js → DataTable-K3RJRSOX.js} +7 -7
  3. package/dist/{PublicPageProvider-BABf6JCh.d.ts → PublicPageProvider-DrLDztHt.d.ts} +214 -107
  4. package/dist/{UnifiedAuthProvider-A4BCQRJY.js → UnifiedAuthProvider-B76OWOAT.js} +2 -2
  5. package/dist/{api-BMFCXVQX.js → api-YP7XD5L6.js} +3 -3
  6. package/dist/{audit-WRS3KJKI.js → audit-B5P6FFIR.js} +2 -2
  7. package/dist/{chunk-445GEP27.js → chunk-3IC5WCMO.js} +33 -8
  8. package/dist/chunk-3IC5WCMO.js.map +1 -0
  9. package/dist/{chunk-OKI34GZD.js → chunk-3NFNJOO7.js} +8 -8
  10. package/dist/chunk-3NFNJOO7.js.map +1 -0
  11. package/dist/{chunk-FSFQFJCU.js → chunk-63FOKYGO.js} +174 -6
  12. package/dist/chunk-63FOKYGO.js.map +1 -0
  13. package/dist/{chunk-MX3EIJGQ.js → chunk-C4OYJOV4.js} +631 -97
  14. package/dist/chunk-C4OYJOV4.js.map +1 -0
  15. package/dist/{chunk-HGPQUCBC.js → chunk-FMTK4XNN.js} +3 -3
  16. package/dist/{chunk-U6WNSFX5.js → chunk-HEHYGYOX.js} +279 -44
  17. package/dist/chunk-HEHYGYOX.js.map +1 -0
  18. package/dist/{chunk-XAUHJD3L.js → chunk-K2JGDXGU.js} +2 -2
  19. package/dist/{chunk-HC67NW5K.js → chunk-LBBUPSSC.js} +863 -552
  20. package/dist/chunk-LBBUPSSC.js.map +1 -0
  21. package/dist/{chunk-IXSNYUCT.js → chunk-SAUPYVLF.js} +1 -1
  22. package/dist/chunk-SAUPYVLF.js.map +1 -0
  23. package/dist/{chunk-AISXLWGZ.js → chunk-T6ZJVI3A.js} +27 -23
  24. package/dist/chunk-T6ZJVI3A.js.map +1 -0
  25. package/dist/{chunk-STTZQK2I.js → chunk-ULX5FYEM.js} +9 -7
  26. package/dist/chunk-ULX5FYEM.js.map +1 -0
  27. package/dist/{chunk-FXFJRTKI.js → chunk-WK2Y6TGA.js} +3 -3
  28. package/dist/chunk-WK2Y6TGA.js.map +1 -0
  29. package/dist/chunk-YHCN776L.js +447 -0
  30. package/dist/chunk-YHCN776L.js.map +1 -0
  31. package/dist/components.d.ts +4 -4
  32. package/dist/components.js +12 -10
  33. package/dist/components.js.map +1 -1
  34. package/dist/{database.generated-CBmg2950.d.ts → database.generated-DI89OQeI.d.ts} +63 -9
  35. package/dist/{file-reference-BjR39ktt.d.ts → file-reference-D037xOFK.d.ts} +3 -1
  36. package/dist/hooks.d.ts +265 -6
  37. package/dist/hooks.js +148 -49
  38. package/dist/hooks.js.map +1 -1
  39. package/dist/index.d.ts +25 -10
  40. package/dist/index.js +65 -30
  41. package/dist/index.js.map +1 -1
  42. package/dist/providers.js +1 -1
  43. package/dist/rbac/index.d.ts +125 -8
  44. package/dist/rbac/index.js +27 -7
  45. package/dist/{types-DUyCRSTj.d.ts → types-Bwgl--Xo.d.ts} +162 -1
  46. package/dist/types.d.ts +2 -2
  47. package/dist/types.js +1 -1
  48. package/dist/{usePublicRouteParams-CvnC3d-e.d.ts → usePublicRouteParams-CTDELQ7H.d.ts} +3 -3
  49. package/dist/utils.d.ts +214 -4
  50. package/dist/utils.js +22 -2
  51. package/dist/utils.js.map +1 -1
  52. package/docs/api/classes/ColumnFactory.md +1 -1
  53. package/docs/api/classes/ErrorBoundary.md +1 -1
  54. package/docs/api/classes/InvalidScopeError.md +1 -1
  55. package/docs/api/classes/Logger.md +1 -1
  56. package/docs/api/classes/MissingUserContextError.md +1 -1
  57. package/docs/api/classes/OrganisationContextRequiredError.md +1 -1
  58. package/docs/api/classes/PermissionDeniedError.md +1 -1
  59. package/docs/api/classes/RBACAuditManager.md +21 -17
  60. package/docs/api/classes/RBACCache.md +31 -23
  61. package/docs/api/classes/RBACEngine.md +6 -6
  62. package/docs/api/classes/RBACError.md +1 -1
  63. package/docs/api/classes/RBACNotInitializedError.md +1 -1
  64. package/docs/api/classes/SecureSupabaseClient.md +5 -5
  65. package/docs/api/classes/StorageUtils.md +1 -1
  66. package/docs/api/enums/FileCategory.md +1 -1
  67. package/docs/api/enums/LogLevel.md +1 -1
  68. package/docs/api/enums/RBACErrorCode.md +1 -1
  69. package/docs/api/enums/RPCFunction.md +1 -1
  70. package/docs/api/interfaces/AddressFieldProps.md +241 -0
  71. package/docs/api/interfaces/AddressFieldRef.md +94 -0
  72. package/docs/api/interfaces/AggregateConfig.md +1 -1
  73. package/docs/api/interfaces/AutocompleteOptions.md +75 -0
  74. package/docs/api/interfaces/BadgeProps.md +1 -1
  75. package/docs/api/interfaces/ButtonProps.md +1 -1
  76. package/docs/api/interfaces/CalendarProps.md +1 -1
  77. package/docs/api/interfaces/CardProps.md +1 -1
  78. package/docs/api/interfaces/ColorPalette.md +1 -1
  79. package/docs/api/interfaces/ColorShade.md +1 -1
  80. package/docs/api/interfaces/ComplianceResult.md +1 -1
  81. package/docs/api/interfaces/DataAccessRecord.md +1 -1
  82. package/docs/api/interfaces/DataRecord.md +1 -1
  83. package/docs/api/interfaces/DataTableAction.md +1 -1
  84. package/docs/api/interfaces/DataTableColumn.md +1 -1
  85. package/docs/api/interfaces/DataTableProps.md +1 -1
  86. package/docs/api/interfaces/DataTableToolbarButton.md +1 -1
  87. package/docs/api/interfaces/DatabaseComplianceResult.md +1 -1
  88. package/docs/api/interfaces/DatabaseIssue.md +1 -1
  89. package/docs/api/interfaces/EmptyStateConfig.md +1 -1
  90. package/docs/api/interfaces/EnhancedNavigationMenuProps.md +1 -1
  91. package/docs/api/interfaces/EventAppRoleData.md +1 -1
  92. package/docs/api/interfaces/ExportColumn.md +1 -1
  93. package/docs/api/interfaces/ExportOptions.md +1 -1
  94. package/docs/api/interfaces/FileDisplayProps.md +15 -15
  95. package/docs/api/interfaces/FileMetadata.md +1 -1
  96. package/docs/api/interfaces/FileReference.md +1 -1
  97. package/docs/api/interfaces/FileSizeLimits.md +1 -1
  98. package/docs/api/interfaces/FileUploadOptions.md +33 -9
  99. package/docs/api/interfaces/FileUploadProps.md +36 -14
  100. package/docs/api/interfaces/FooterProps.md +1 -1
  101. package/docs/api/interfaces/FormFieldProps.md +1 -1
  102. package/docs/api/interfaces/FormProps.md +1 -1
  103. package/docs/api/interfaces/GrantEventAppRoleParams.md +1 -1
  104. package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
  105. package/docs/api/interfaces/InputProps.md +1 -1
  106. package/docs/api/interfaces/LabelProps.md +1 -1
  107. package/docs/api/interfaces/LoggerConfig.md +1 -1
  108. package/docs/api/interfaces/LoginFormProps.md +1 -1
  109. package/docs/api/interfaces/NavigationAccessRecord.md +1 -1
  110. package/docs/api/interfaces/NavigationContextType.md +1 -1
  111. package/docs/api/interfaces/NavigationGuardProps.md +1 -1
  112. package/docs/api/interfaces/NavigationItem.md +1 -1
  113. package/docs/api/interfaces/NavigationMenuProps.md +1 -1
  114. package/docs/api/interfaces/NavigationProviderProps.md +1 -1
  115. package/docs/api/interfaces/Organisation.md +1 -1
  116. package/docs/api/interfaces/OrganisationContextType.md +1 -1
  117. package/docs/api/interfaces/OrganisationMembership.md +1 -1
  118. package/docs/api/interfaces/OrganisationProviderProps.md +1 -1
  119. package/docs/api/interfaces/OrganisationSecurityError.md +1 -1
  120. package/docs/api/interfaces/PaceAppLayoutProps.md +1 -1
  121. package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
  122. package/docs/api/interfaces/PageAccessRecord.md +1 -1
  123. package/docs/api/interfaces/PagePermissionContextType.md +1 -1
  124. package/docs/api/interfaces/PagePermissionGuardProps.md +11 -11
  125. package/docs/api/interfaces/PagePermissionProviderProps.md +1 -1
  126. package/docs/api/interfaces/PaletteData.md +1 -1
  127. package/docs/api/interfaces/ParsedAddress.md +120 -0
  128. package/docs/api/interfaces/PermissionEnforcerProps.md +1 -1
  129. package/docs/api/interfaces/ProgressProps.md +1 -1
  130. package/docs/api/interfaces/ProtectedRouteProps.md +6 -6
  131. package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
  132. package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
  133. package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
  134. package/docs/api/interfaces/QuickFix.md +1 -1
  135. package/docs/api/interfaces/RBACAccessValidateParams.md +1 -1
  136. package/docs/api/interfaces/RBACAccessValidateResult.md +1 -1
  137. package/docs/api/interfaces/RBACAuditLogParams.md +1 -1
  138. package/docs/api/interfaces/RBACAuditLogResult.md +1 -1
  139. package/docs/api/interfaces/RBACConfig.md +27 -4
  140. package/docs/api/interfaces/RBACContext.md +1 -1
  141. package/docs/api/interfaces/RBACLogger.md +5 -5
  142. package/docs/api/interfaces/RBACPageAccessCheckParams.md +1 -1
  143. package/docs/api/interfaces/RBACPerformanceMetrics.md +138 -0
  144. package/docs/api/interfaces/RBACPermissionCheckParams.md +1 -1
  145. package/docs/api/interfaces/RBACPermissionCheckResult.md +1 -1
  146. package/docs/api/interfaces/RBACPermissionsGetParams.md +1 -1
  147. package/docs/api/interfaces/RBACPermissionsGetResult.md +1 -1
  148. package/docs/api/interfaces/RBACResult.md +1 -1
  149. package/docs/api/interfaces/RBACRoleGrantParams.md +1 -1
  150. package/docs/api/interfaces/RBACRoleGrantResult.md +1 -1
  151. package/docs/api/interfaces/RBACRoleRevokeParams.md +1 -1
  152. package/docs/api/interfaces/RBACRoleRevokeResult.md +1 -1
  153. package/docs/api/interfaces/RBACRoleValidateParams.md +1 -1
  154. package/docs/api/interfaces/RBACRoleValidateResult.md +1 -1
  155. package/docs/api/interfaces/RBACRolesListParams.md +1 -1
  156. package/docs/api/interfaces/RBACRolesListResult.md +1 -1
  157. package/docs/api/interfaces/RBACSessionTrackParams.md +1 -1
  158. package/docs/api/interfaces/RBACSessionTrackResult.md +1 -1
  159. package/docs/api/interfaces/ResourcePermissions.md +1 -1
  160. package/docs/api/interfaces/RevokeEventAppRoleParams.md +1 -1
  161. package/docs/api/interfaces/RoleBasedRouterContextType.md +1 -1
  162. package/docs/api/interfaces/RoleBasedRouterProps.md +1 -1
  163. package/docs/api/interfaces/RoleManagementResult.md +1 -1
  164. package/docs/api/interfaces/RouteAccessRecord.md +1 -1
  165. package/docs/api/interfaces/RouteConfig.md +1 -1
  166. package/docs/api/interfaces/RuntimeComplianceResult.md +1 -1
  167. package/docs/api/interfaces/SecureDataContextType.md +1 -1
  168. package/docs/api/interfaces/SecureDataProviderProps.md +1 -1
  169. package/docs/api/interfaces/SessionRestorationLoaderProps.md +1 -1
  170. package/docs/api/interfaces/SetupIssue.md +1 -1
  171. package/docs/api/interfaces/StorageConfig.md +1 -1
  172. package/docs/api/interfaces/StorageFileInfo.md +1 -1
  173. package/docs/api/interfaces/StorageFileMetadata.md +1 -1
  174. package/docs/api/interfaces/StorageListOptions.md +1 -1
  175. package/docs/api/interfaces/StorageListResult.md +1 -1
  176. package/docs/api/interfaces/StorageUploadOptions.md +1 -1
  177. package/docs/api/interfaces/StorageUploadResult.md +1 -1
  178. package/docs/api/interfaces/StorageUrlOptions.md +1 -1
  179. package/docs/api/interfaces/StyleImport.md +1 -1
  180. package/docs/api/interfaces/SwitchProps.md +1 -1
  181. package/docs/api/interfaces/TabsContentProps.md +1 -1
  182. package/docs/api/interfaces/TabsListProps.md +1 -1
  183. package/docs/api/interfaces/TabsProps.md +1 -1
  184. package/docs/api/interfaces/TabsTriggerProps.md +1 -1
  185. package/docs/api/interfaces/TextareaProps.md +1 -1
  186. package/docs/api/interfaces/ToastActionElement.md +1 -1
  187. package/docs/api/interfaces/ToastProps.md +1 -1
  188. package/docs/api/interfaces/UnifiedAuthContextType.md +1 -1
  189. package/docs/api/interfaces/UnifiedAuthProviderProps.md +1 -1
  190. package/docs/api/interfaces/UseFormDialogOptions.md +1 -1
  191. package/docs/api/interfaces/UseFormDialogReturn.md +1 -1
  192. package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
  193. package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
  194. package/docs/api/interfaces/UsePublicEventLogoOptions.md +2 -2
  195. package/docs/api/interfaces/UsePublicEventLogoReturn.md +1 -1
  196. package/docs/api/interfaces/UsePublicEventOptions.md +1 -1
  197. package/docs/api/interfaces/UsePublicEventReturn.md +1 -1
  198. package/docs/api/interfaces/UsePublicFileDisplayOptions.md +2 -2
  199. package/docs/api/interfaces/UsePublicFileDisplayReturn.md +1 -1
  200. package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
  201. package/docs/api/interfaces/UseResolvedScopeOptions.md +2 -2
  202. package/docs/api/interfaces/UseResolvedScopeReturn.md +1 -1
  203. package/docs/api/interfaces/UseResourcePermissionsOptions.md +1 -1
  204. package/docs/api/interfaces/UserEventAccess.md +1 -1
  205. package/docs/api/interfaces/UserMenuProps.md +1 -1
  206. package/docs/api/interfaces/UserProfile.md +1 -1
  207. package/docs/api/modules.md +328 -69
  208. package/docs/api-reference/components.md +26 -12
  209. package/docs/best-practices/performance.md +11 -0
  210. package/docs/implementation-guides/file-reference-system.md +24 -2
  211. package/docs/implementation-guides/file-upload-storage.md +38 -1
  212. package/docs/rbac/README.md +2 -1
  213. package/docs/rbac/api-reference.md +11 -0
  214. package/docs/rbac/performance.md +320 -0
  215. package/docs/standards/01-architecture-standard.md +5 -0
  216. package/docs/standards/05-security-standard.md +12 -0
  217. package/package.json +1 -1
  218. package/scripts/check-pace-core-compliance.js +512 -0
  219. package/src/components/AddressField/AddressField.test.tsx +411 -0
  220. package/src/components/AddressField/AddressField.tsx +323 -0
  221. package/src/components/AddressField/README.md +336 -0
  222. package/src/components/AddressField/index.ts +10 -0
  223. package/src/components/AddressField/types.ts +65 -0
  224. package/src/components/FileDisplay/FileDisplay.test.tsx +454 -0
  225. package/src/components/FileDisplay/FileDisplay.tsx +28 -1
  226. package/src/components/FileUpload/FileUpload.test.tsx +2 -0
  227. package/src/components/FileUpload/FileUpload.tsx +7 -1
  228. package/src/components/Header/Header.tsx +2 -5
  229. package/src/components/ProtectedRoute/ProtectedRoute.tsx +134 -1
  230. package/src/components/index.ts +2 -0
  231. package/src/hooks/__tests__/useFileDisplay.unit.test.ts +30 -5
  232. package/src/hooks/__tests__/useOrganisationSecurity.unit.test.tsx +11 -10
  233. package/src/hooks/__tests__/usePublicFileDisplay.test.ts +31 -6
  234. package/src/hooks/index.ts +9 -0
  235. package/src/hooks/public/usePublicFileDisplay.ts +8 -10
  236. package/src/hooks/useAddressAutocomplete.test.ts +318 -0
  237. package/src/hooks/useAddressAutocomplete.ts +268 -0
  238. package/src/hooks/useFileDisplay.ts +3 -15
  239. package/src/hooks/useFileReference.test.ts +21 -3
  240. package/src/hooks/useFileReference.ts +3 -24
  241. package/src/hooks/useFileUrlCache.ts +246 -0
  242. package/src/hooks/useInactivityTracker.ts +31 -20
  243. package/src/hooks/useOrganisationSecurity.test.ts +10 -7
  244. package/src/hooks/useOrganisationSecurity.ts +3 -3
  245. package/src/hooks/usePreventTabReload.ts +106 -0
  246. package/src/hooks/useQueryCache.ts +315 -0
  247. package/src/hooks/useSecureDataAccess.ts +2 -2
  248. package/src/index.ts +2 -0
  249. package/src/providers/services/EventServiceProvider.tsx +4 -1
  250. package/src/rbac/__tests__/rbac-role-isolation.test.ts +456 -0
  251. package/src/rbac/api.test.ts +21 -6
  252. package/src/rbac/api.ts +32 -11
  253. package/src/rbac/audit-batched.ts +223 -0
  254. package/src/rbac/audit-enhanced.ts +2 -2
  255. package/src/rbac/audit.test.ts +6 -5
  256. package/src/rbac/audit.ts +34 -6
  257. package/src/rbac/cache-invalidation.ts +63 -12
  258. package/src/rbac/cache.test.ts +2 -2
  259. package/src/rbac/cache.ts +61 -14
  260. package/src/rbac/components/PagePermissionGuard.tsx +19 -10
  261. package/src/rbac/components/__tests__/PagePermissionGuard.performance.test.tsx +248 -0
  262. package/src/rbac/config.ts +9 -0
  263. package/src/rbac/engine.ts +2 -21
  264. package/src/rbac/hooks/usePermissions.ts +21 -5
  265. package/src/rbac/index.ts +19 -0
  266. package/src/rbac/performance.ts +210 -0
  267. package/src/rbac/request-deduplication.ts +87 -0
  268. package/src/rbac/utils/deep-equal.ts +93 -0
  269. package/src/styles/core.css +5 -5
  270. package/src/types/database.generated.ts +63 -9
  271. package/src/types/file-reference.ts +3 -1
  272. package/src/utils/file-reference/__tests__/file-reference.test.ts +89 -8
  273. package/src/utils/file-reference/index.ts +56 -17
  274. package/src/utils/google-places/googlePlacesUtils.test.ts +403 -0
  275. package/src/utils/google-places/googlePlacesUtils.ts +475 -0
  276. package/src/utils/google-places/index.ts +26 -0
  277. package/src/utils/google-places/loadGoogleMapsScript.ts +207 -0
  278. package/src/utils/google-places/types.ts +94 -0
  279. package/src/utils/index.ts +23 -0
  280. package/src/utils/request-deduplication.ts +165 -0
  281. package/src/utils/security/secureDataAccess.ts +1 -1
  282. package/src/utils/storage/helpers.ts +211 -4
  283. package/dist/chunk-445GEP27.js.map +0 -1
  284. package/dist/chunk-AISXLWGZ.js.map +0 -1
  285. package/dist/chunk-FMUCXFII.js +0 -76
  286. package/dist/chunk-FMUCXFII.js.map +0 -1
  287. package/dist/chunk-FSFQFJCU.js.map +0 -1
  288. package/dist/chunk-FXFJRTKI.js.map +0 -1
  289. package/dist/chunk-HC67NW5K.js.map +0 -1
  290. package/dist/chunk-IXSNYUCT.js.map +0 -1
  291. package/dist/chunk-MX3EIJGQ.js.map +0 -1
  292. package/dist/chunk-OKI34GZD.js.map +0 -1
  293. package/dist/chunk-STTZQK2I.js.map +0 -1
  294. package/dist/chunk-U6WNSFX5.js.map +0 -1
  295. /package/dist/{DataTable-IX2NBUTP.js.map → DataTable-K3RJRSOX.js.map} +0 -0
  296. /package/dist/{UnifiedAuthProvider-A4BCQRJY.js.map → UnifiedAuthProvider-B76OWOAT.js.map} +0 -0
  297. /package/dist/{api-BMFCXVQX.js.map → api-YP7XD5L6.js.map} +0 -0
  298. /package/dist/{audit-WRS3KJKI.js.map → audit-B5P6FFIR.js.map} +0 -0
  299. /package/dist/{chunk-HGPQUCBC.js.map → chunk-FMTK4XNN.js.map} +0 -0
  300. /package/dist/{chunk-XAUHJD3L.js.map → chunk-K2JGDXGU.js.map} +0 -0
package/dist/index.d.ts CHANGED
@@ -9,23 +9,23 @@ export { O as Organisation, a as OrganisationMembership, g as OrganisationSecuri
9
9
  import { S as SessionRestorationState } from './auth-BZOJqrdd.js';
10
10
  export { A as AccessLevel, E as EventAppRole, G as GlobalRole, I as InvalidScopeError, M as MissingUserContextError, O as Operation, e as OrganisationContextRequiredError, c as OrganisationRole, P as Permission, a as PermissionCheck, d as PermissionDeniedError, b as PermissionMap, R as RBACError, f as RBACNotInitializedError, S as Scope, U as UUID } from './types-UU913iLA.js';
11
11
  export { A as AccessLevelContext, s as AuditEventType, P as PermissionSource, d as RBACAccessValidateParams, e as RBACAccessValidateResult, q as RBACAuditLogParams, r as RBACAuditLogResult, t as RBACContext, w as RBACErrorCode, v as RBACFunctionResponse, f as RBACPageAccessCheckParams, R as RBACPermissionCheckParams, a as RBACPermissionCheckResult, b as RBACPermissionsGetParams, c as RBACPermissionsGetResult, u as RBACResult, g as RBACRoleGrantParams, h as RBACRoleGrantResult, i as RBACRoleRevokeParams, j as RBACRoleRevokeResult, m as RBACRoleValidateParams, n as RBACRoleValidateResult, k as RBACRolesListParams, l as RBACRolesListResult, o as RBACSessionTrackParams, p as RBACSessionTrackResult, x as RPCFunction, S as SessionType } from './functions-D_kgHktt.js';
12
- export { ALL_PERMISSIONS, AccessLevelGuard, AllPermissions, CACHE_PATTERNS, ComplianceResult, DataAccessRecord, DatabaseComplianceResult, DatabaseIssue, EVENT_APP_PERMISSIONS, EnhancedNavigationMenu, EnhancedNavigationMenuProps, EventAppRoleData, GLOBAL_PERMISSIONS, GrantEventAppRoleParams, NavigationAccessRecord, NavigationContextType, NavigationGuard, NavigationGuardProps, NavigationProvider, NavigationProviderProps, ORGANISATION_PERMISSIONS, PAGE_PERMISSIONS, PageAccessRecord, PagePermissionContextType, PagePermissionGuard, PagePermissionGuardProps, PagePermissionProvider, PagePermissionProviderProps, PermissionEnforcer, PermissionEnforcerProps, PermissionGuard, QuickFix, RBACAuditManager, RBACCache, RBACConfig, RBACEngine, RBACLogger, ResourcePermissions, RevokeEventAppRoleParams, RoleBasedRouter, RoleBasedRouterContextType, RoleBasedRouterProps, RoleManagementResult, RouteAccessRecord, RouteConfig, RuntimeComplianceResult, SecureDataContextType, SecureDataProvider, SecureDataProviderProps, SecureSupabaseClient, SetupIssue, UseResolvedScopeOptions, UseResolvedScopeReturn, UseResourcePermissionsOptions, checkRuntimeCompliance, createAuditManager, createRBACConfig, createRBACEngine, createRBACExpressMiddleware, createRBACMiddleware, createSecureClient, emitAuditEvent, fromSupabaseClient, getAccessLevel, getCustomAuthCodeFixes, getDirectSupabaseAuthFixes, getDuplicateConfigFixes, getGlobalAuditManager, getPermissionMap, getPermissionsForRole, getQuickFixes, getRBACConfig, getRBACLogger, getRoleContext, getSetupIssues, getUnprotectedPageFixes, hasAllPermissions, hasAnyPermission, hasAnyPermissionCached, hasPermission, hasPermissionCached, isDebugMode, isDevelopmentMode, isPermitted, isPermittedCached, isRBACInitialized, isValidPermission, rbacCache, resolveAppContext, setGlobalAuditManager, setupRBAC, useAccessLevel, useCachedPermissions, useCan, useHasAllPermissions, useHasAnyPermission, useMultiplePermissions, useNavigationPermissions, usePagePermissions, usePermissions, useRBAC, useResolvedScope, useResourcePermissions, useRoleBasedRouter, useRoleManagement, useSecureData, useSecureSupabase, validateAndWarn, validateDatabaseConfiguration, validateRBACSetup, withAccessLevelGuard, withPermissionGuard, withRoleGuard } from './rbac/index.js';
13
- export { A as Alert, n as AlertDescription, m as AlertTitle, o as Avatar, q as AvatarFallback, p as AvatarImage, r as Badge, s as BadgeProps, t as BadgeVariant, B as Button, a as ButtonProps, al as Calendar, am as CalendarProps, C as Card, g as CardActions, f as CardContent, e as CardDescription, c as CardFooter, b as CardHeader, h as CardProps, d as CardTitle, u as Checkbox, J as Dialog, U as DialogBody, O as DialogClose, Q as DialogContent, X as DialogDescription, V as DialogFooter, R as DialogHeader, M as DialogOverlay, K as DialogPortal, W as DialogTitle, N as DialogTrigger, aT as ErrorBoundary, aZ as EventSelector, b0 as FileDisplay, b1 as FileDisplayProps, a_ as FileUpload, a$ as FileUploadProps, aJ as Footer, aK as FooterProps, aC as Form, aD as FormField, aF as FormFieldProps, aE as FormProps, aI as Header, I as Input, j as InputProps, L as Label, k as LabelProps, aW as LoadingSpinner, aG as LoginForm, aH as LoginFormProps, aP as NavigationItem, aN as NavigationMenu, aO as NavigationMenuProps, bm as NavigationMode, aQ as OrganisationSelector, bj as PaceAppLayout, bi as PaceAppLayoutProps, bl as PaceLoginPage, bk as PaceLoginPageProps, bo as PasswordChangeForm, P as Progress, w as ProgressProps, aL as ProtectedRoute, aM as ProtectedRouteProps, bb as PublicPageFooter, bh as PublicPageFooterProps, ba as PublicPageHeader, bg as PublicPageHeaderProps, b9 as PublicPageLayout, bf as PublicPageLayoutProps, bc as PublicPageProvider, a5 as Select, a9 as SelectContent, a6 as SelectGroup, ab as SelectItem, aa as SelectLabel, ac as SelectSeparator, a8 as SelectTrigger, a7 as SelectValue, aX as SessionRestorationLoader, aY as SessionRestorationLoaderProps, S as Switch, v as SwitchProps, x as Table, z as TableBody, D as TableCaption, E as TableCell, F as TableFooter, G as TableHead, y as TableHeader, H as TableRow, ad as Tabs, ag as TabsContent, ak as TabsContentProps, ae as TabsList, ai as TabsListProps, ah as TabsProps, af as TabsTrigger, aj as TabsTriggerProps, T as Textarea, l as TextareaProps, an as Toast, ap as ToastAction, av as ToastActionElement, au as ToastClose, at as ToastDescription, aw as ToastProps, aq as ToastProvider, as as ToastTitle, ar as ToastViewport, ao as Toaster, ax as Tooltip, az as TooltipContent, aA as TooltipProvider, aB as TooltipRoot, ay as TooltipTrigger, b8 as UseFileReferenceForRecordReturn, b6 as UseFileReferenceOptions, b7 as UseFileReferenceReturn, aS as UserMenu, bn as UserMenuProps, b2 as useFileReference, b4 as useFileReferenceById, b3 as useFileReferenceForRecord, b5 as useFilesByCategory, be as useIsPublicPage, bd as usePublicPageContext } from './PublicPageProvider-BABf6JCh.js';
12
+ export { ALL_PERMISSIONS, AccessLevelGuard, AllPermissions, CACHE_PATTERNS, ComplianceResult, DataAccessRecord, DatabaseComplianceResult, DatabaseIssue, EVENT_APP_PERMISSIONS, EnhancedNavigationMenu, EnhancedNavigationMenuProps, EventAppRoleData, GLOBAL_PERMISSIONS, GrantEventAppRoleParams, NavigationAccessRecord, NavigationContextType, NavigationGuard, NavigationGuardProps, NavigationProvider, NavigationProviderProps, ORGANISATION_PERMISSIONS, PAGE_PERMISSIONS, PageAccessRecord, PagePermissionContextType, PagePermissionGuard, PagePermissionGuardProps, PagePermissionProvider, PagePermissionProviderProps, PermissionEnforcer, PermissionEnforcerProps, PermissionGuard, QuickFix, RBACAuditManager, RBACCache, RBACConfig, RBACEngine, RBACLogger, RBACPerformanceMetrics, ResourcePermissions, RevokeEventAppRoleParams, RoleBasedRouter, RoleBasedRouterContextType, RoleBasedRouterProps, RoleManagementResult, RouteAccessRecord, RouteConfig, RuntimeComplianceResult, SecureDataContextType, SecureDataProvider, SecureDataProviderProps, SecureSupabaseClient, SetupIssue, UseResolvedScopeOptions, UseResolvedScopeReturn, UseResourcePermissionsOptions, checkRuntimeCompliance, clearInFlightRequests, createAuditManager, createRBACConfig, createRBACEngine, createRBACExpressMiddleware, createRBACMiddleware, createSecureClient, disablePerformanceMonitoring, emitAuditEvent, enablePerformanceMonitoring, fromSupabaseClient, getAccessLevel, getCustomAuthCodeFixes, getDirectSupabaseAuthFixes, getDuplicateConfigFixes, getGlobalAuditManager, getInFlightRequestCount, getPerformanceMetrics, getPerformanceSummary, getPermissionMap, getPermissionsForRole, getQuickFixes, getRBACConfig, getRBACLogger, getRoleContext, getSetupIssues, getUnprotectedPageFixes, hasAllPermissions, hasAnyPermission, hasAnyPermissionCached, hasPermission, hasPermissionCached, isDebugMode, isDevelopmentMode, isPerformanceMonitoringEnabled, isPermitted, isPermittedCached, isRBACInitialized, isValidPermission, rbacCache, recordAuditEvent, recordPermissionCheck, resetPerformanceMetrics, resolveAppContext, setGlobalAuditManager, setupRBAC, useAccessLevel, useCachedPermissions, useCan, useHasAllPermissions, useHasAnyPermission, useMultiplePermissions, useNavigationPermissions, usePagePermissions, usePermissions, useRBAC, useResolvedScope, useResourcePermissions, useRoleBasedRouter, useRoleManagement, useSecureData, useSecureSupabase, validateAndWarn, validateDatabaseConfiguration, validateRBACSetup, withAccessLevelGuard, withPermissionGuard, withRoleGuard } from './rbac/index.js';
13
+ export { A as AddressField, k as AddressFieldProps, l as AddressFieldRef, o as Alert, q as AlertDescription, p as AlertTitle, r as Avatar, t as AvatarFallback, s as AvatarImage, u as Badge, v as BadgeProps, w as BadgeVariant, B as Button, a as ButtonProps, ao as Calendar, ap as CalendarProps, C as Card, g as CardActions, f as CardContent, e as CardDescription, c as CardFooter, b as CardHeader, h as CardProps, d as CardTitle, x as Checkbox, N as Dialog, X as DialogBody, U as DialogClose, V as DialogContent, _ as DialogDescription, Y as DialogFooter, W as DialogHeader, Q as DialogOverlay, O as DialogPortal, Z as DialogTitle, R as DialogTrigger, aW as ErrorBoundary, b0 as EventSelector, b3 as FileDisplay, b4 as FileDisplayProps, b1 as FileUpload, b2 as FileUploadProps, aM as Footer, aN as FooterProps, aF as Form, aG as FormField, aI as FormFieldProps, aH as FormProps, aL as Header, I as Input, j as InputProps, L as Label, m as LabelProps, aZ as LoadingSpinner, aJ as LoginForm, aK as LoginFormProps, aS as NavigationItem, aQ as NavigationMenu, aR as NavigationMenuProps, bp as NavigationMode, aT as OrganisationSelector, bm as PaceAppLayout, bl as PaceAppLayoutProps, bo as PaceLoginPage, bn as PaceLoginPageProps, br as PasswordChangeForm, P as Progress, z as ProgressProps, aO as ProtectedRoute, aP as ProtectedRouteProps, be as PublicPageFooter, bk as PublicPageFooterProps, bd as PublicPageHeader, bj as PublicPageHeaderProps, bc as PublicPageLayout, bi as PublicPageLayoutProps, bf as PublicPageProvider, a8 as Select, ac as SelectContent, a9 as SelectGroup, ae as SelectItem, ad as SelectLabel, af as SelectSeparator, ab as SelectTrigger, aa as SelectValue, a_ as SessionRestorationLoader, a$ as SessionRestorationLoaderProps, S as Switch, y as SwitchProps, D as Table, F as TableBody, G as TableCaption, H as TableCell, J as TableFooter, K as TableHead, E as TableHeader, M as TableRow, ag as Tabs, aj as TabsContent, an as TabsContentProps, ah as TabsList, al as TabsListProps, ak as TabsProps, ai as TabsTrigger, am as TabsTriggerProps, T as Textarea, n as TextareaProps, aq as Toast, as as ToastAction, ay as ToastActionElement, ax as ToastClose, aw as ToastDescription, az as ToastProps, at as ToastProvider, av as ToastTitle, au as ToastViewport, ar as Toaster, aA as Tooltip, aC as TooltipContent, aD as TooltipProvider, aE as TooltipRoot, aB as TooltipTrigger, bb as UseFileReferenceForRecordReturn, b9 as UseFileReferenceOptions, ba as UseFileReferenceReturn, aV as UserMenu, bq as UserMenuProps, b5 as useFileReference, b7 as useFileReferenceById, b6 as useFileReferenceForRecord, b8 as useFilesByCategory, bh as useIsPublicPage, bg as usePublicPageContext } from './PublicPageProvider-DrLDztHt.js';
14
14
  export { u as useToast } from './useToast-C8gR5ir4.js';
15
- export { D as DataTable, a as DataTableProps } from './DataTable-Z9NLVJh0.js';
16
- import { c as DataRecord, a as DataTableAction, D as DataTableColumn } from './types-DUyCRSTj.js';
17
- export { A as AggregateConfig, e as DataTableFeatureConfig, b as DataTableToolbarButton, E as EmptyStateConfig, h as ExportOptions, G as GetRowId } from './types-DUyCRSTj.js';
15
+ export { D as DataTable, a as DataTableProps } from './DataTable-IVYljGJ6.js';
16
+ import { d as DataRecord, a as DataTableAction, D as DataTableColumn } from './types-Bwgl--Xo.js';
17
+ export { c as AggregateConfig, A as AutocompleteOptions, f as DataTableFeatureConfig, b as DataTableToolbarButton, E as EmptyStateConfig, j as ExportOptions, G as GetRowId, P as ParsedAddress } from './types-Bwgl--Xo.js';
18
18
  import { ColumnDef } from '@tanstack/react-table';
19
- import { H as FileSizeLimits, I as StorageConfig, S as StorageUploadOptions, J as StorageFileMetadata, a as StorageUploadResult, K as StorageUrlOptions, b as StorageListOptions, c as StorageListResult } from './usePublicRouteParams-CvnC3d-e.js';
20
- export { d as StorageFileInfo, i as UseFormDialogOptions, j as UseFormDialogReturn, F as UsePublicEventLogoOptions, E as UsePublicEventLogoReturn, B as UsePublicEventOptions, A as UsePublicEventReturn, D as UsePublicFileDisplayOptions, C as UsePublicFileDisplayReturn, G as UsePublicRouteParamsReturn, n as clearPublicEventCache, q as clearPublicFileDisplayCache, t as clearPublicLogoCache, z as extractEventCodeFromPath, y as generatePublicRoutePath, o as getPublicEventCacheStats, r as getPublicFileDisplayCacheStats, v as getPublicLogoCacheStats, k as useAppConfig, u as useEventTheme, h as useFormDialog, e as useOrganisationPermissions, f as useOrganisationSecurity, m as usePublicEvent, x as usePublicEventCode, s as usePublicEventLogo, p as usePublicFileDisplay, w as usePublicRouteParams, g as useZodForm } from './usePublicRouteParams-CvnC3d-e.js';
19
+ import { F as FileSizeLimits, S as StorageConfig, a as StorageUploadOptions, b as StorageFileMetadata, c as StorageUploadResult, d as StorageUrlOptions, e as StorageListOptions, f as StorageListResult } from './usePublicRouteParams-CTDELQ7H.js';
20
+ export { m as StorageFileInfo, U as UseFormDialogOptions, h as UseFormDialogReturn, H as UsePublicEventLogoOptions, G as UsePublicEventLogoReturn, C as UsePublicEventOptions, B as UsePublicEventReturn, E as UsePublicFileDisplayOptions, D as UsePublicFileDisplayReturn, I as UsePublicRouteParamsReturn, o as clearPublicEventCache, r as clearPublicFileDisplayCache, v as clearPublicLogoCache, A as extractEventCodeFromPath, z as generatePublicRoutePath, p as getPublicEventCacheStats, s as getPublicFileDisplayCacheStats, w as getPublicLogoCacheStats, k as useAppConfig, l as useEventTheme, g as useFormDialog, i as useOrganisationPermissions, j as useOrganisationSecurity, n as usePublicEvent, y as usePublicEventCode, t as usePublicEventLogo, q as usePublicFileDisplay, x as usePublicRouteParams, u as useZodForm } from './usePublicRouteParams-CTDELQ7H.js';
21
21
  export { z } from 'zod';
22
- export { F as FileCategory, b as FileMetadata, a as FileReference, c as FileUploadOptions } from './file-reference-BjR39ktt.js';
22
+ export { F as FileCategory, b as FileMetadata, a as FileReference, c as FileUploadOptions } from './file-reference-D037xOFK.js';
23
23
  import { SupabaseClient } from '@supabase/supabase-js';
24
24
  export { StyleImport, getAllStylePaths, getStylePath, styleConfig } from './styles/index.js';
25
25
  export { ColorPalette, ColorShade, PaletteData, applyPalette, clearPalette, parseAndNormalizeEventColours } from './theming/runtime.js';
26
26
  import 'clsx';
27
27
  import './core-CUElvH_C.js';
28
- import './database.generated-CBmg2950.js';
28
+ import './database.generated-DI89OQeI.js';
29
29
  import '@radix-ui/react-label';
30
30
  import '@radix-ui/react-avatar';
31
31
  import '@radix-ui/react-checkbox';
@@ -747,6 +747,21 @@ declare function getSignedUrl(supabase: SupabaseClient, path: string, options: S
747
747
  url: string;
748
748
  expiresAt: string;
749
749
  } | null>;
750
+ /**
751
+ * Generate URLs for multiple file references in parallel
752
+ * This batches URL generation to reduce sequential requests and uses caching
753
+ * @param supabase - Supabase client instance
754
+ * @param fileReferences - Array of file references to generate URLs for
755
+ * @param options - URL options including expiry time and organisation ID
756
+ * @returns Map of file ID to URL string (only includes successful URL generations)
757
+ */
758
+ declare function generateFileUrlsBatch(supabase: SupabaseClient, fileReferences: Array<{
759
+ id: string;
760
+ file_path: string;
761
+ is_public: boolean;
762
+ }>, options: StorageUrlOptions & {
763
+ orgId?: string;
764
+ }): Promise<Map<string, string>>;
750
765
  /**
751
766
  * Delete a file from storage
752
767
  * @param supabase - Supabase client instance
@@ -819,4 +834,4 @@ declare class StorageUtils {
819
834
  static archiveFile: typeof archiveFile;
820
835
  }
821
836
 
822
- export { APP_PATH_MAPPING, ColumnFactory, DEFAULT_FILE_SIZE_LIMIT, DataRecord, DataTableAction, DataTableColumn, type ExportColumn, FILE_SIZE_LIMITS, FileSizeLimits, InactivityWarningModal, type InactivityWarningModalProps, OrganisationContextType, OrganisationProvider, type OrganisationProviderProps, STORAGE_CONFIG, StorageConfig, StorageFileMetadata, StorageListOptions, StorageListResult, StorageUploadOptions, StorageUploadResult, StorageUrlOptions, StorageUtils, type UseInactivityTrackerOptions, type UseInactivityTrackerReturn, archiveFile, average, count, deleteFile, downloadFile, exportToCSV, exportToCSVWithTableRows, extractFileMetadata, generateCSVContent, generateFilePath, generateUniqueFileName, getBucketName, getFileSizeLimit, getPublicUrl, getSignedUrl, listFiles, max, min, sum, uploadFile, useAuthService, useEventService, useEvents, useInactivityService, useInactivityTracker, useOrganisationService, useOrganisations, useSessionRestoration, validateFileSize };
837
+ export { APP_PATH_MAPPING, ColumnFactory, DEFAULT_FILE_SIZE_LIMIT, DataRecord, DataTableAction, DataTableColumn, type ExportColumn, FILE_SIZE_LIMITS, FileSizeLimits, InactivityWarningModal, type InactivityWarningModalProps, OrganisationContextType, OrganisationProvider, type OrganisationProviderProps, STORAGE_CONFIG, StorageConfig, StorageFileMetadata, StorageListOptions, StorageListResult, StorageUploadOptions, StorageUploadResult, StorageUrlOptions, StorageUtils, type UseInactivityTrackerOptions, type UseInactivityTrackerReturn, archiveFile, average, count, deleteFile, downloadFile, exportToCSV, exportToCSVWithTableRows, extractFileMetadata, generateCSVContent, generateFilePath, generateFileUrlsBatch, generateUniqueFileName, getBucketName, getFileSizeLimit, getPublicUrl, getSignedUrl, listFiles, max, min, sum, uploadFile, useAuthService, useEventService, useEvents, useInactivityService, useInactivityTracker, useOrganisationService, useOrganisations, useSessionRestoration, validateFileSize };
package/dist/index.js CHANGED
@@ -40,8 +40,9 @@ import {
40
40
  withAccessLevelGuard,
41
41
  withPermissionGuard,
42
42
  withRoleGuard
43
- } from "./chunk-AISXLWGZ.js";
43
+ } from "./chunk-T6ZJVI3A.js";
44
44
  import {
45
+ AddressField,
45
46
  Avatar,
46
47
  AvatarFallback,
47
48
  AvatarImage,
@@ -93,7 +94,7 @@ import {
93
94
  useFileReferenceById,
94
95
  useFileReferenceForRecord,
95
96
  useFilesByCategory
96
- } from "./chunk-HC67NW5K.js";
97
+ } from "./chunk-LBBUPSSC.js";
97
98
  import {
98
99
  Alert,
99
100
  AlertDescription,
@@ -143,7 +144,7 @@ import {
143
144
  max,
144
145
  min,
145
146
  sum
146
- } from "./chunk-HGPQUCBC.js";
147
+ } from "./chunk-FMTK4XNN.js";
147
148
  import {
148
149
  SecureSupabaseClient,
149
150
  createSecureClient,
@@ -160,14 +161,20 @@ import {
160
161
  useResourcePermissions,
161
162
  useRoleManagement,
162
163
  useSecureSupabase
163
- } from "./chunk-445GEP27.js";
164
+ } from "./chunk-3IC5WCMO.js";
164
165
  import {
165
166
  CACHE_PATTERNS,
166
167
  RBACCache,
167
168
  RBACEngine,
169
+ clearInFlightRequests,
168
170
  createRBACConfig,
169
171
  createRBACEngine,
172
+ disablePerformanceMonitoring,
173
+ enablePerformanceMonitoring,
170
174
  getAccessLevel,
175
+ getInFlightRequestCount,
176
+ getPerformanceMetrics,
177
+ getPerformanceSummary,
171
178
  getPermissionMap,
172
179
  getRBACConfig,
173
180
  getRBACLogger,
@@ -177,19 +184,23 @@ import {
177
184
  hasPermission,
178
185
  isDebugMode,
179
186
  isDevelopmentMode,
187
+ isPerformanceMonitoringEnabled,
180
188
  isPermitted,
181
189
  isPermittedCached,
182
190
  rbacCache,
191
+ recordAuditEvent,
192
+ recordPermissionCheck,
193
+ resetPerformanceMetrics,
183
194
  resolveAppContext,
184
195
  setupRBAC
185
- } from "./chunk-U6WNSFX5.js";
196
+ } from "./chunk-HEHYGYOX.js";
186
197
  import {
187
198
  RBACAuditManager,
188
199
  createAuditManager,
189
200
  emitAuditEvent,
190
201
  getGlobalAuditManager,
191
202
  setGlobalAuditManager
192
- } from "./chunk-FSFQFJCU.js";
203
+ } from "./chunk-63FOKYGO.js";
193
204
  import {
194
205
  StorageUtils,
195
206
  clearPublicEventCache,
@@ -206,8 +217,8 @@ import {
206
217
  usePublicEventLogo,
207
218
  usePublicRouteParams,
208
219
  useZodForm
209
- } from "./chunk-OKI34GZD.js";
210
- import "./chunk-STTZQK2I.js";
220
+ } from "./chunk-3NFNJOO7.js";
221
+ import "./chunk-ULX5FYEM.js";
211
222
  import {
212
223
  APP_PATH_MAPPING,
213
224
  DEFAULT_FILE_SIZE_LIMIT,
@@ -221,6 +232,7 @@ import {
221
232
  downloadFile,
222
233
  extractFileMetadata,
223
234
  generateFilePath,
235
+ generateFileUrlsBatch,
224
236
  generateUniqueFileName,
225
237
  getBucketName,
226
238
  getFileSizeLimit,
@@ -235,14 +247,14 @@ import {
235
247
  usePublicFileDisplay,
236
248
  usePublicPageContext,
237
249
  validateFileSize
238
- } from "./chunk-MX3EIJGQ.js";
250
+ } from "./chunk-C4OYJOV4.js";
239
251
  import {
240
252
  useToast
241
253
  } from "./chunk-6C4YBBJM.js";
242
254
  import {
243
255
  useEvents,
244
256
  useOrganisations
245
- } from "./chunk-XAUHJD3L.js";
257
+ } from "./chunk-K2JGDXGU.js";
246
258
  import "./chunk-KQCRWDSA.js";
247
259
  import {
248
260
  EventServiceProvider,
@@ -255,10 +267,10 @@ import {
255
267
  useOrganisationService,
256
268
  useSessionRestoration,
257
269
  useUnifiedAuth
258
- } from "./chunk-FXFJRTKI.js";
270
+ } from "./chunk-WK2Y6TGA.js";
259
271
  import {
260
272
  FileCategory
261
- } from "./chunk-IXSNYUCT.js";
273
+ } from "./chunk-SAUPYVLF.js";
262
274
  import "./chunk-QXHPKYJV.js";
263
275
  import {
264
276
  emailSchema,
@@ -295,7 +307,7 @@ import {
295
307
  cn
296
308
  } from "./chunk-R77UEZ4E.js";
297
309
  import "./chunk-F2IMUDXZ.js";
298
- import "./chunk-FMUCXFII.js";
310
+ import "./chunk-YHCN776L.js";
299
311
  import "./chunk-VBXEHIUJ.js";
300
312
  import {
301
313
  getAllStylePaths,
@@ -475,6 +487,7 @@ function useInactivityTracker({
475
487
  const countdownIntervalRef = useRef(null);
476
488
  const lastActivityRef = useRef(Date.now());
477
489
  const channelRef = useRef(null);
490
+ const throttledResetActivityRef = useRef(null);
478
491
  const clearTimers = useCallback2(() => {
479
492
  if (timeoutRef.current) {
480
493
  clearTimeout(timeoutRef.current);
@@ -576,33 +589,41 @@ function useInactivityTracker({
576
589
  } catch (error) {
577
590
  logger.warn("useInactivityTracker", "Failed to check persisted activity time:", error);
578
591
  }
579
- const throttledResetActivity = throttle((event) => {
580
- resetActivity();
581
- }, 100);
582
- const addEventListeners = () => {
583
- ACTIVITY_EVENTS.forEach((event) => {
584
- document.addEventListener(event, throttledResetActivity, { passive: true });
585
- });
586
- };
587
- const removeEventListeners = () => {
592
+ if (throttledResetActivityRef.current) {
588
593
  ACTIVITY_EVENTS.forEach((event) => {
589
- document.removeEventListener(event, throttledResetActivity);
594
+ document.removeEventListener(event, throttledResetActivityRef.current);
590
595
  });
591
- };
592
- addEventListeners();
596
+ }
597
+ throttledResetActivityRef.current = throttle((event) => {
598
+ resetActivity();
599
+ }, 100);
600
+ ACTIVITY_EVENTS.forEach((event) => {
601
+ document.addEventListener(event, throttledResetActivityRef.current, { passive: true });
602
+ });
593
603
  resetActivity(true);
594
604
  return () => {
595
- removeEventListeners();
605
+ if (throttledResetActivityRef.current) {
606
+ ACTIVITY_EVENTS.forEach((event) => {
607
+ document.removeEventListener(event, throttledResetActivityRef.current);
608
+ });
609
+ throttledResetActivityRef.current = null;
610
+ }
596
611
  clearTimers();
597
612
  if (channelRef.current) {
598
613
  channelRef.current.close();
599
614
  channelRef.current = null;
600
615
  }
601
616
  };
602
- }, [enabled, isTracking, channelName, storageKey, idleTimeoutMs, warnBeforeMs, onIdle, onWarning]);
617
+ }, [enabled, isTracking, channelName, storageKey, idleTimeoutMs, warnBeforeMs, onIdle, onWarning, onActivity, resetActivity]);
603
618
  const stopTracking = useCallback2(() => {
604
619
  setIsTracking(false);
605
620
  clearTimers();
621
+ if (throttledResetActivityRef.current) {
622
+ ACTIVITY_EVENTS.forEach((event) => {
623
+ document.removeEventListener(event, throttledResetActivityRef.current);
624
+ });
625
+ throttledResetActivityRef.current = null;
626
+ }
606
627
  if (channelRef.current) {
607
628
  channelRef.current.close();
608
629
  channelRef.current = null;
@@ -614,8 +635,9 @@ function useInactivityTracker({
614
635
  return cleanup;
615
636
  } else {
616
637
  stopTracking();
638
+ return void 0;
617
639
  }
618
- }, [enabled, idleTimeoutMs, warnBeforeMs]);
640
+ }, [enabled, idleTimeoutMs, warnBeforeMs, startTracking, stopTracking]);
619
641
  useEffect2(() => {
620
642
  return () => {
621
643
  clearTimers();
@@ -671,8 +693,9 @@ var createSecureDataAccess = (supabase, organisationId, isSuperAdmin = false) =>
671
693
  "medi_profile_versions",
672
694
  "pace_consent",
673
695
  "pace_contact",
674
- "pace_id_documents",
675
- "pace_qualifications",
696
+ "pace_identification",
697
+ "pace_identification_type",
698
+ "pace_qualification",
676
699
  "form_responses",
677
700
  "form_response_values",
678
701
  "forms",
@@ -867,6 +890,7 @@ export {
867
890
  ALL_PERMISSIONS,
868
891
  APP_PATH_MAPPING,
869
892
  AccessLevelGuard,
893
+ AddressField,
870
894
  Alert,
871
895
  AlertDescription,
872
896
  AlertTitle,
@@ -994,6 +1018,7 @@ export {
994
1018
  archiveFile,
995
1019
  average,
996
1020
  checkRuntimeCompliance,
1021
+ clearInFlightRequests,
997
1022
  clearPalette,
998
1023
  clearPublicEventCache,
999
1024
  clearPublicFileDisplayCache,
@@ -1009,9 +1034,11 @@ export {
1009
1034
  createSecureClient,
1010
1035
  createSecureDataAccess,
1011
1036
  deleteFile,
1037
+ disablePerformanceMonitoring,
1012
1038
  downloadFile,
1013
1039
  emailSchema,
1014
1040
  emitAuditEvent,
1041
+ enablePerformanceMonitoring,
1015
1042
  exportToCSV,
1016
1043
  exportToCSVWithTableRows,
1017
1044
  extractEventCodeFromPath,
@@ -1030,6 +1057,7 @@ export {
1030
1057
  fromZonedTime,
1031
1058
  generateCSVContent,
1032
1059
  generateFilePath,
1060
+ generateFileUrlsBatch,
1033
1061
  generatePublicRoutePath,
1034
1062
  generateUniqueFileName,
1035
1063
  getAccessLevel,
@@ -1043,6 +1071,9 @@ export {
1043
1071
  getDuplicateConfigFixes,
1044
1072
  getFileSizeLimit,
1045
1073
  getGlobalAuditManager,
1074
+ getInFlightRequestCount,
1075
+ getPerformanceMetrics,
1076
+ getPerformanceSummary,
1046
1077
  getPermissionMap,
1047
1078
  getPermissionsForRole,
1048
1079
  getPublicEventCacheStats,
@@ -1067,6 +1098,7 @@ export {
1067
1098
  hasPermissionCached,
1068
1099
  isDebugMode,
1069
1100
  isDevelopmentMode,
1101
+ isPerformanceMonitoringEnabled,
1070
1102
  isPermitted,
1071
1103
  isPermittedCached,
1072
1104
  isRBACInitialized,
@@ -1080,6 +1112,9 @@ export {
1080
1112
  passwordSchema,
1081
1113
  phoneSchema,
1082
1114
  rbacCache,
1115
+ recordAuditEvent,
1116
+ recordPermissionCheck,
1117
+ resetPerformanceMetrics,
1083
1118
  resolveAppContext,
1084
1119
  roundToNearestMinutes,
1085
1120
  setAppConfig,