@jmruthers/pace-core 0.6.8 → 0.6.10
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.
- package/CHANGELOG.md +3 -0
- package/audit-tool/audits/02-project-structure.cjs +97 -32
- package/audit-tool/audits/03-architecture.cjs +145 -19
- package/audit-tool/audits/04-code-quality.cjs +86 -1
- package/audit-tool/audits/06-security-rbac.cjs +109 -11
- package/cursor-rules/02-project-structure.mdc +2 -26
- package/cursor-rules/05-styling.mdc +84 -6
- package/cursor-rules/06-security-rbac.mdc +124 -1
- package/dist/{DataTable-6RMSCQJ6.js → DataTable-SAXFG4XI.js} +11 -13
- package/dist/{AuthService-DmfO5rGS.d.ts → InactivityServiceProvider-DHryoh6K.d.ts} +24 -249
- package/dist/UnifiedAuthProvider-BBD2PS3Q.js +7 -0
- package/dist/{UnifiedAuthProvider-CKvHP1MK.d.ts → UnifiedAuthProvider-CiBAl9-s.d.ts} +34 -22
- package/dist/{api-7P7DI652.js → api-F47QJ7FX.js} +3 -3
- package/dist/assets/app-icons/admin_favicon.svg +462 -0
- package/dist/assets/app-icons/base_favicon.svg +85 -0
- package/dist/assets/app-icons/cake_favicon.svg +68 -0
- package/dist/assets/app-icons/core_favicon.svg +256 -0
- package/dist/assets/app-icons/gear_favicon.svg +91 -0
- package/dist/assets/app-icons/medi_favicon.svg +92 -0
- package/dist/assets/app-icons/mint_favicon.svg +83 -0
- package/dist/assets/app-icons/pace_favicon.svg +49 -0
- package/dist/assets/app-icons/pump_favicon.svg +68 -0
- package/dist/assets/app-icons/seed_favicon.svg +91 -0
- package/dist/assets/app-icons/team_favicon.svg +67 -0
- package/dist/assets/app-icons/trac_favicon.svg +112 -0
- package/dist/assets/app-icons/trip_favicon.svg +102 -0
- package/dist/audit-Z6ZZBWLU.js +3 -0
- package/dist/chunk-3GWSPISD.js +61 -0
- package/dist/{chunk-4DDCYDQ3.js → chunk-66R6RLUZ.js} +12 -27
- package/dist/{chunk-FYHN4DD5.js → chunk-7YDC7LMU.js} +80 -8
- package/dist/{chunk-S7DKJPLT.js → chunk-BCTXBU6U.js} +22 -17
- package/dist/{chunk-TTRFSOKR.js → chunk-BTHN5MKC.js} +4 -4
- package/dist/{chunk-A3W6LW53.js → chunk-DDMPHZ3D.js} +6 -18
- package/dist/{chunk-MPBLMWVR.js → chunk-FBZ7U3ID.js} +140 -92
- package/dist/chunk-FN52B75D.js +246 -0
- package/dist/{chunk-5W2A3DRC.js → chunk-JJEYZ3DX.js} +5 -4
- package/dist/chunk-KPYQWGFQ.js +183 -0
- package/dist/{chunk-IUBRCBSY.js → chunk-KSNLMI7N.js} +14 -8
- package/dist/chunk-KYURMOQM.js +977 -0
- package/dist/{chunk-LX6U42O3.js → chunk-LNHFAF4X.js} +160 -58
- package/dist/{chunk-NKHKXPI4.js → chunk-MPY44PWB.js} +683 -627
- package/dist/{chunk-AHU7G2R5.js → chunk-NIU6DPQV.js} +10 -6
- package/dist/{chunk-HF6O3O37.js → chunk-RMLY6KB5.js} +1 -1
- package/dist/{chunk-6GLLNA6U.js → chunk-SACF5YSM.js} +1 -1
- package/dist/{chunk-EURB7QFZ.js → chunk-TFIPNIPE.js} +867 -534
- package/dist/{chunk-OJ4SKRSV.js → chunk-UZNAFKGW.js} +25 -5
- package/dist/chunk-W46INAVW.js +1216 -0
- package/dist/chunk-X5EAU5G7.js +793 -0
- package/dist/{chunk-T5CVK4R3.js → chunk-Y4PF6HIM.js} +110 -64
- package/dist/components.d.ts +8 -86
- package/dist/components.js +21 -55
- package/dist/{database.generated-CcnC_DRc.d.ts → database.generated-DT8JTZiP.d.ts} +12 -12
- package/dist/eslint-rules/rules/05-styling.cjs +507 -0
- package/dist/eslint-rules/rules/06-security-rbac.cjs +10 -0
- package/dist/{event-CW5YB_2p.d.ts → event-WTAQuGcq.d.ts} +1 -1
- package/dist/{functions-lBy5L2ry.d.ts → functions-DH45k8ec.d.ts} +1 -1
- package/dist/hooks.d.ts +12 -11
- package/dist/hooks.js +69 -44
- package/dist/index.d.ts +380 -32
- package/dist/index.js +46 -32
- package/dist/papaparseLoader-WG2UXQ22.js +7 -0
- package/dist/providers.d.ts +28 -14
- package/dist/providers.js +5 -5
- package/dist/rbac/eslint-rules.js +2 -2
- package/dist/rbac/index.d.ts +58 -214
- package/dist/rbac/index.js +11 -11
- package/dist/theming/runtime.d.ts +9 -3
- package/dist/theming/runtime.js +2 -2
- package/dist/{timezone-BZe_eUxx.d.ts → timezone-K-ptz3HO.d.ts} +22 -23
- package/dist/{types-t9H8qKRw.d.ts → types-BE2sEHKd.d.ts} +1 -1
- package/dist/{types-BeoeWV5I.d.ts → types-CvOPXWWZ.d.ts} +6 -5
- package/dist/{types-DXstZpNI.d.ts → types-D05dCGma.d.ts} +56 -149
- package/dist/types-Dr8sNhER.d.ts +50 -0
- package/dist/types.d.ts +5 -5
- package/dist/{PublicPageProvider-CIGSujI2.d.ts → usePublicPageContext-vxBlEHO9.d.ts} +294 -151
- package/dist/{usePublicRouteParams-MamNgwqe.d.ts → usePublicRouteParams-G3Ks53mk.d.ts} +8 -7
- package/dist/utils.d.ts +301 -137
- package/dist/utils.js +42 -41
- package/dist/{validation-643vUDZW.d.ts → validation-g5n0hDkh.d.ts} +2 -2
- package/docs/api/modules.md +542 -549
- package/docs/api-reference/components.md +5 -5
- package/docs/api-reference/rpc-functions.md +3 -3
- package/docs/implementation-guides/data-tables.md +256 -8
- package/docs/rbac/RBAC_CONTRACT.md +0 -12
- package/docs/standards/2-project-structure-standards.md +12 -74
- package/docs/standards/6-security-rbac-standards.md +222 -7
- package/docs/standards/7-api-tech-stack-standards.md +91 -3
- package/docs/testing/README.md +10 -0
- package/docs/testing/test-setup-for-consumers.md +914 -0
- package/eslint-config-pace-core.cjs +4 -0
- package/package.json +1 -1
- package/scripts/eslint-audit.cjs +110 -11
- package/src/__mocks__/lucide-react.ts +0 -2
- package/src/__tests__/helpers/__tests__/test-utils.test.tsx +0 -2
- package/src/__tests__/index.test.ts +532 -0
- package/src/__tests__/integration/UserProfile.test.tsx +1 -1
- package/src/__tests__/rbac/PagePermissionGuard.test.tsx +10 -8
- package/src/__tests__/rls-policies.test.ts +3 -2
- package/src/assets/app-icons/admin_favicon.svg +462 -0
- package/src/assets/app-icons/base_favicon.svg +85 -0
- package/src/assets/app-icons/cake_favicon.svg +68 -0
- package/src/assets/app-icons/core_favicon.svg +256 -0
- package/src/assets/app-icons/gear_favicon.svg +91 -0
- package/src/assets/app-icons/index.ts +83 -0
- package/src/assets/app-icons/medi_favicon.svg +92 -0
- package/src/assets/app-icons/mint_favicon.svg +83 -0
- package/src/assets/app-icons/pace_favicon.svg +49 -0
- package/src/assets/app-icons/pump_favicon.svg +68 -0
- package/src/assets/app-icons/seed_favicon.svg +91 -0
- package/src/assets/app-icons/team_favicon.svg +67 -0
- package/src/assets/app-icons/trac_favicon.svg +112 -0
- package/src/assets/app-icons/trip_favicon.svg +102 -0
- package/src/components/AddressField/AddressField.test.tsx +378 -3
- package/src/components/AddressField/AddressField.tsx +2 -2
- package/src/components/AddressField/types.ts +2 -2
- package/src/components/Alert/Alert.test.tsx +35 -25
- package/src/components/Alert/Alert.tsx +8 -8
- package/src/components/AppSwitcher/AppSwitcher.test.tsx +1250 -0
- package/src/components/AppSwitcher/AppSwitcher.tsx +315 -0
- package/src/components/Avatar/Avatar.test.tsx +11 -1
- package/src/components/Avatar/Avatar.tsx +3 -2
- package/src/components/Badge/Badge.test.tsx +11 -1
- package/src/components/Button/Button.test.tsx +13 -3
- package/src/components/Calendar/Calendar.test.tsx +523 -131
- package/src/components/Calendar/Calendar.tsx +107 -488
- package/src/components/Card/Card.test.tsx +220 -249
- package/src/components/Checkbox/Checkbox.test.tsx +58 -174
- package/src/components/ContextSelector/ContextSelector.tsx +3 -3
- package/src/components/ContextSelector/__tests__/ContextSelector.test.tsx +360 -0
- package/src/components/DataTable/DataTable.tsx +2 -2
- package/src/components/DataTable/__tests__/DataTable.comprehensive.test.tsx +1 -1
- package/src/components/DataTable/__tests__/DataTable.export.test.tsx +2 -2
- package/src/components/DataTable/__tests__/DataTable.grouping-aggregation.test.tsx +1 -1
- package/src/components/DataTable/__tests__/DataTable.select-label-display.test.tsx +485 -0
- package/src/components/DataTable/__tests__/DataTable.test.tsx +2 -2
- package/src/components/DataTable/__tests__/DataTableCore.test-setup.ts +1 -1
- package/src/components/DataTable/__tests__/DataTableCore.test.tsx +76 -580
- package/src/components/DataTable/__tests__/README.md +1 -1
- package/src/components/DataTable/__tests__/a11y.basic.test.tsx +1 -1
- package/src/components/DataTable/__tests__/keyboard.test.tsx +1 -1
- package/src/components/DataTable/__tests__/pagination.modes.test.tsx +1 -3
- package/src/components/DataTable/__tests__/ssr.strict-mode.test.tsx +0 -6
- package/src/components/DataTable/__tests__/test-utils/sharedTestUtils.tsx +14 -6
- package/src/components/DataTable/components/ActionButtons.tsx +9 -4
- package/src/components/DataTable/components/BulkOperationsDropdown.tsx +3 -3
- package/src/components/DataTable/components/ColumnFilter.tsx +2 -7
- package/src/components/DataTable/components/DataTableCore.tsx +44 -52
- package/src/components/DataTable/components/DataTableLayout.tsx +37 -26
- package/src/components/DataTable/components/DataTableModals.tsx +118 -30
- package/src/components/DataTable/components/DataTableToolbar.tsx +2 -2
- package/src/components/DataTable/components/EditFields.tsx +6 -47
- package/src/components/DataTable/components/EditableRow.tsx +8 -8
- package/src/components/DataTable/components/EmptyState.tsx +6 -3
- package/src/components/DataTable/components/FilterRow.tsx +18 -11
- package/src/components/DataTable/components/GroupingDropdown.tsx +0 -1
- package/src/components/DataTable/components/ImportModal.tsx +305 -133
- package/src/components/DataTable/components/LoadingState.tsx +2 -2
- package/src/components/DataTable/components/PaginationControls.tsx +0 -4
- package/src/components/DataTable/components/RowComponent.tsx +42 -22
- package/src/components/DataTable/components/UnifiedTableBody.tsx +52 -12
- package/src/components/DataTable/components/__tests__/AccessDeniedPage.test.tsx +51 -463
- package/src/components/DataTable/components/__tests__/ActionButtons.test.tsx +122 -116
- package/src/components/DataTable/components/__tests__/BulkOperationsDropdown.test.tsx +40 -68
- package/src/components/DataTable/components/__tests__/ColumnFilter.test.tsx +9 -137
- package/src/components/DataTable/components/__tests__/ColumnVisibilityDropdown.test.tsx +57 -17
- package/src/components/DataTable/components/__tests__/DataTableCore.test.tsx +792 -0
- package/src/components/DataTable/components/__tests__/DataTableErrorBoundary.test.tsx +24 -65
- package/src/components/DataTable/components/__tests__/DataTableLayout.test.tsx +467 -0
- package/src/components/DataTable/components/__tests__/DataTableModals.test.tsx +8 -125
- package/src/components/DataTable/components/__tests__/DataTableToolbar.test.tsx +528 -56
- package/src/components/DataTable/components/__tests__/EditFields.test.tsx +526 -0
- package/src/components/DataTable/components/__tests__/EditableRow.test.tsx +1 -68
- package/src/components/DataTable/components/__tests__/EmptyState.test.tsx +8 -25
- package/src/components/DataTable/components/__tests__/FilterRow.test.tsx +3 -62
- package/src/components/DataTable/components/__tests__/GroupingDropdown.test.tsx +9 -14
- package/src/components/DataTable/components/__tests__/ImportModal.test.tsx +50 -186
- package/src/components/DataTable/components/__tests__/LoadingState.test.tsx +39 -97
- package/src/components/DataTable/components/__tests__/PaginationControls.test.tsx +13 -103
- package/src/components/DataTable/components/__tests__/RowComponent.test.tsx +629 -0
- package/src/components/DataTable/components/__tests__/SortIndicator.test.tsx +135 -0
- package/src/components/DataTable/components/__tests__/UnifiedTableBody.test.tsx +31 -171
- package/src/components/DataTable/components/__tests__/cellValueUtils.test.ts +453 -0
- package/src/components/DataTable/components/hooks/useImportModalFocus.test.ts +184 -0
- package/src/components/DataTable/components/hooks/usePermissionTracking.test.ts +381 -0
- package/src/components/DataTable/context/DataTableContext.tsx +9 -10
- package/src/components/DataTable/context/__tests__/DataTableContext.test.tsx +12 -26
- package/src/components/DataTable/core/ColumnFactory.ts +3 -3
- package/src/components/DataTable/core/ColumnManager.ts +0 -1
- package/src/components/DataTable/core/DataManager.ts +4 -2
- package/src/components/DataTable/core/LocalDataAdapter.ts +1 -1
- package/src/components/DataTable/core/PluginRegistry.ts +2 -2
- package/src/components/DataTable/core/__tests__/ActionManager.test.ts +114 -2
- package/src/components/DataTable/core/__tests__/ColumnFactory.test.ts +103 -5
- package/src/components/DataTable/core/__tests__/ColumnManager.test.ts +57 -0
- package/src/components/DataTable/core/__tests__/DataManager.test.ts +63 -0
- package/src/components/DataTable/core/__tests__/LocalDataAdapter.test.ts +42 -9
- package/src/components/DataTable/core/__tests__/PluginRegistry.test.ts +29 -7
- package/src/components/DataTable/core/__tests__/StateManager.test.ts +58 -4
- package/src/components/DataTable/hooks/__tests__/useColumnOrderPersistence.test.ts +16 -21
- package/src/components/DataTable/hooks/__tests__/useColumnVisibilityPersistence.test.ts +93 -4
- package/src/components/DataTable/hooks/__tests__/useDataTableConfiguration.test.ts +227 -54
- package/src/components/DataTable/hooks/__tests__/useDataTableDataPipeline.test.ts +215 -62
- package/src/components/DataTable/hooks/__tests__/useDataTablePermissions.test.ts +217 -39
- package/src/components/DataTable/hooks/__tests__/useDataTableState.test.ts +101 -6
- package/src/components/DataTable/hooks/__tests__/useEffectiveColumnOrder.test.ts +157 -27
- package/src/components/DataTable/hooks/__tests__/useHierarchicalState.test.ts +80 -0
- package/src/components/DataTable/hooks/__tests__/useKeyboardNavigation.test.ts +787 -0
- package/src/components/DataTable/hooks/__tests__/useServerSideDataEffect.test.ts +258 -0
- package/src/components/DataTable/hooks/__tests__/useTableColumns.test.ts +298 -23
- package/src/components/DataTable/hooks/__tests__/useTableHandlers.test.ts +440 -0
- package/src/components/DataTable/hooks/useColumnOrderPersistence.ts +12 -9
- package/src/components/DataTable/hooks/useColumnVisibilityPersistence.ts +12 -9
- package/src/components/DataTable/hooks/useDataTableConfiguration.ts +1 -1
- package/src/components/DataTable/hooks/useDataTablePermissions.ts +11 -22
- package/src/components/DataTable/hooks/useDataTableState.ts +20 -24
- package/src/components/DataTable/hooks/useKeyboardNavigation.ts +5 -5
- package/src/components/DataTable/hooks/useServerSideDataEffect.ts +13 -1
- package/src/components/DataTable/hooks/useTableColumns.ts +36 -38
- package/src/components/DataTable/hooks/useTableHandlers.ts +8 -20
- package/src/components/DataTable/index.ts +24 -2
- package/src/components/DataTable/types.ts +6 -3
- package/src/components/DataTable/utils/__tests__/a11yUtils.test.ts +3 -67
- package/src/components/DataTable/utils/__tests__/aggregationUtils.test.ts +288 -0
- package/src/components/DataTable/utils/__tests__/errorHandling.test.ts +3 -60
- package/src/components/DataTable/utils/__tests__/flexibleImport.test.ts +1 -1
- package/src/components/DataTable/utils/__tests__/hierarchicalSorting.test.ts +9 -21
- package/src/components/DataTable/utils/__tests__/hierarchicalUtils.test.ts +102 -86
- package/src/components/DataTable/utils/__tests__/paginationUtils.test.ts +593 -0
- package/src/components/DataTable/utils/__tests__/rowUtils.test.ts +33 -49
- package/src/components/DataTable/utils/__tests__/selectFieldUtils.test.ts +208 -0
- package/src/components/DataTable/utils/a11yUtils.ts +1 -1
- package/src/components/DataTable/utils/aggregationUtils.ts +5 -5
- package/src/components/DataTable/utils/errorHandling.ts +3 -1
- package/src/components/DataTable/utils/exportUtils.ts +1 -1
- package/src/components/DataTable/utils/flexibleImport.ts +2 -2
- package/src/components/DataTable/utils/hierarchicalSorting.ts +3 -3
- package/src/components/DataTable/utils/paginationUtils.ts +1 -1
- package/src/components/DataTable/utils/performanceUtils.ts +1 -1
- package/src/components/DataTable/utils/selectFieldUtils.ts +127 -0
- package/src/components/DatePickerWithTimezone/DatePickerWithTimezone.test.tsx +17 -24
- package/src/components/DatePickerWithTimezone/DatePickerWithTimezone.tsx +1 -1
- package/src/components/DateTimeField/DateTimeField.test.tsx +2 -15
- package/src/components/DateTimeField/DateTimeField.tsx +1 -1
- package/src/components/Dialog/Dialog.test.tsx +2007 -407
- package/src/components/Dialog/Dialog.tsx +97 -192
- package/src/components/ErrorBoundary/ErrorBoundary.test.tsx +2 -62
- package/src/components/ErrorBoundary/ErrorBoundaryContext.context.ts +17 -0
- package/src/components/ErrorBoundary/ErrorBoundaryContext.tsx +2 -45
- package/src/components/ErrorBoundary/ErrorBoundaryContext.types.ts +41 -0
- package/src/components/ErrorBoundary/index.ts +3 -4
- package/src/components/ErrorBoundary/useErrorBoundaryContext.ts +20 -0
- package/src/components/FileDisplay/FileDisplay.test.tsx +454 -222
- package/src/components/FileDisplay/FileDisplay.tsx +14 -12
- package/src/components/FileDisplay/index.tsx +1 -1
- package/src/components/FileUpload/FileUpload.test.tsx +54 -18
- package/src/components/FileUpload/FileUpload.tsx +10 -7
- package/src/components/FileUpload/index.tsx +1 -1
- package/src/components/Footer/Footer.test.tsx +33 -114
- package/src/components/Form/Form.test.tsx +388 -68
- package/src/components/Form/Form.tsx +57 -42
- package/src/components/Header/Header.test.tsx +645 -154
- package/src/components/Header/Header.tsx +52 -43
- package/src/components/InactivityWarningModal/InactivityWarningModal.test.tsx +35 -76
- package/src/components/Input/Input.test.tsx +34 -120
- package/src/components/Label/Label.test.tsx +47 -46
- package/src/components/LoadingSpinner/LoadingSpinner.test.tsx +9 -12
- package/src/components/LoginForm/LoginForm.test.tsx +0 -1
- package/src/components/NavigationMenu/NavigationMenu.test.tsx +1399 -82
- package/src/components/NavigationMenu/NavigationMenu.tsx +2 -2
- package/src/components/NavigationMenu/__tests__/useNavigationFiltering.test.ts +1934 -0
- package/src/components/NavigationMenu/useNavigationFiltering.ts +5 -15
- package/src/components/PaceAppLayout/PaceAppLayout.edge-cases.test.tsx +1307 -0
- package/src/components/PaceAppLayout/PaceAppLayout.integration.test.tsx +47 -46
- package/src/components/PaceAppLayout/PaceAppLayout.performance.test.tsx +81 -38
- package/src/components/PaceAppLayout/PaceAppLayout.security.test.tsx +87 -66
- package/src/components/PaceAppLayout/PaceAppLayout.test.tsx +245 -39
- package/src/components/PaceAppLayout/PaceAppLayout.tsx +14 -20
- package/src/components/PaceAppLayout/README.md +0 -9
- package/src/components/PaceAppLayout/test-setup.tsx +15 -9
- package/src/components/PaceLoginPage/PaceLoginPage.test.tsx +759 -3
- package/src/components/PaceLoginPage/PaceLoginPage.tsx +2 -3
- package/src/components/PasswordChange/PasswordChangeForm.test.tsx +1 -1
- package/src/components/Progress/Progress.test.tsx +127 -1
- package/src/components/ProtectedRoute/ProtectedRoute.test.tsx +1196 -4
- package/src/components/ProtectedRoute/ProtectedRoute.tsx +24 -6
- package/src/components/PublicLayout/PublicLayout.test.tsx +1435 -14
- package/src/components/PublicLayout/PublicPageContext.ts +28 -0
- package/src/components/PublicLayout/PublicPageLayout.tsx +6 -6
- package/src/components/PublicLayout/PublicPageProvider.tsx +2 -41
- package/src/components/PublicLayout/usePublicPageContext.ts +36 -0
- package/src/components/Select/Select.test.tsx +46 -9
- package/src/components/Select/Select.tsx +31 -24
- package/src/components/Select/__tests__/context.test.tsx +56 -0
- package/src/components/Select/hooks/__tests__/useSelectEvents.test.ts +279 -0
- package/src/components/Select/hooks/__tests__/useSelectSearch.test.tsx +295 -0
- package/src/components/Select/hooks/__tests__/useSelectState.test.ts +254 -0
- package/src/components/Select/hooks/useSelectState.ts +16 -16
- package/src/components/Select/types.ts +3 -0
- package/src/components/Select/utils/__tests__/text.test.tsx +104 -0
- package/src/components/SessionRestorationLoader/SessionRestorationLoader.test.tsx +28 -112
- package/src/components/Switch/Switch.test.tsx +57 -153
- package/src/components/Table/Table.test.tsx +47 -317
- package/src/components/Tabs/Tabs.tsx +3 -3
- package/src/components/Textarea/Textarea.test.tsx +11 -38
- package/src/components/Toast/Toast.test.tsx +78 -569
- package/src/components/Tooltip/Tooltip.test.tsx +4 -21
- package/src/components/UserMenu/UserMenu.test.tsx +1 -21
- package/src/components/UserMenu/UserMenu.tsx +3 -6
- package/src/components/__tests__/index.test.ts +346 -0
- package/src/components/index.ts +12 -1
- package/src/constants/__tests__/performance.test.ts +91 -0
- package/src/hooks/__tests__/ServiceHooks.test.tsx +239 -129
- package/src/hooks/__tests__/hooks.integration.test.tsx +4 -3
- package/src/hooks/__tests__/useApiFetch.unit.test.ts +1 -1
- package/src/hooks/__tests__/useAppConfig.unit.test.ts +88 -29
- package/src/hooks/__tests__/useComponentPerformance.unit.test.tsx +282 -98
- package/src/hooks/__tests__/useDataTablePerformance.unit.test.ts +53 -109
- package/src/hooks/__tests__/useDataTableState.test.ts +143 -49
- package/src/hooks/__tests__/useDebounce.unit.test.ts +94 -19
- package/src/hooks/__tests__/useEvents.unit.test.ts +100 -125
- package/src/hooks/__tests__/useFileDisplay.test.ts +540 -0
- package/src/hooks/__tests__/useFileDisplay.unit.test.ts +1 -4
- package/src/hooks/__tests__/useFileUrl.unit.test.ts +27 -247
- package/src/hooks/__tests__/useFileUrlCache.test.ts +246 -56
- package/src/hooks/__tests__/useFocusManagement.unit.test.ts +442 -68
- package/src/hooks/__tests__/useFocusTrap.unit.test.tsx +345 -560
- package/src/hooks/__tests__/useFormDialog.test.ts +51 -222
- package/src/hooks/__tests__/useInactivityTracker.unit.test.ts +1 -1
- package/src/hooks/__tests__/useKeyboardShortcuts.unit.test.ts +1 -4
- package/src/hooks/__tests__/useOrganisationPermissions.unit.test.tsx +0 -1
- package/src/hooks/__tests__/usePerformanceMonitor.unit.test.ts +1 -1
- package/src/hooks/__tests__/usePermissionCache.test.ts +506 -0
- package/src/hooks/__tests__/usePreventTabReload.test.ts +255 -36
- package/src/hooks/__tests__/usePublicEvent.simple.test.ts +17 -8
- package/src/hooks/__tests__/usePublicEvent.test.ts +16 -24
- package/src/hooks/__tests__/usePublicEvent.unit.test.ts +12 -4
- package/src/hooks/__tests__/usePublicFileDisplay.test.ts +3 -6
- package/src/hooks/__tests__/usePublicRouteParams.unit.test.ts +1 -2
- package/src/hooks/__tests__/useQueryCache.test.ts +313 -66
- package/src/hooks/__tests__/useSessionDraft.test.ts +496 -103
- package/src/hooks/__tests__/useSessionRestoration.unit.test.tsx +2 -2
- package/src/hooks/__tests__/useStorage.unit.test.ts +72 -102
- package/src/hooks/__tests__/useToast.test.ts +413 -0
- package/src/hooks/__tests__/useToast.unit.test.tsx +1 -1
- package/src/hooks/__tests__/useZodForm.unit.test.tsx +175 -21
- package/src/hooks/index.ts +13 -1
- package/src/hooks/public/usePublicEvent.test.ts +304 -0
- package/src/hooks/public/usePublicEvent.ts +11 -11
- package/src/hooks/public/usePublicEventLogo.test.ts +655 -120
- package/src/hooks/public/usePublicEventLogo.ts +2 -2
- package/src/hooks/public/usePublicFileDisplay.test.ts +723 -0
- package/src/hooks/public/usePublicFileDisplay.ts +79 -49
- package/src/hooks/public/usePublicRouteParams.test.ts +595 -0
- package/src/hooks/public/usePublicRouteParams.ts +2 -2
- package/src/hooks/services/useAuthService.ts +1 -1
- package/src/hooks/services/useEventService.ts +1 -1
- package/src/hooks/useAccessibleApps.test.ts +400 -0
- package/src/hooks/useAccessibleApps.ts +264 -0
- package/src/hooks/useAddressAutocomplete.test.ts +165 -42
- package/src/hooks/useAddressAutocomplete.ts +41 -28
- package/src/hooks/useAppConfig.ts +13 -3
- package/src/hooks/useDataTablePerformance.ts +13 -12
- package/src/hooks/useDataTableState.ts +5 -5
- package/src/hooks/useEventTheme.test.ts +66 -17
- package/src/hooks/useEventTheme.ts +1 -1
- package/src/hooks/useEvents.ts +8 -1
- package/src/hooks/useFileDisplay.ts +66 -33
- package/src/hooks/useFileReference.test.ts +365 -87
- package/src/hooks/useFileReference.ts +2 -6
- package/src/hooks/useFileUrlCache.ts +4 -1
- package/src/hooks/useFormDialog.ts +2 -2
- package/src/hooks/useInactivityTracker.ts +3 -3
- package/src/hooks/useOrganisationPermissions.test.ts +1 -2
- package/src/hooks/useOrganisationPermissions.ts +1 -4
- package/src/hooks/useOrganisationSecurity.test.ts +1 -30
- package/src/hooks/useOrganisationSecurity.ts +3 -3
- package/src/hooks/useOrganisations.ts +1 -1
- package/src/hooks/usePerformanceMonitor.ts +1 -1
- package/src/hooks/usePermissionCache.ts +2 -6
- package/src/hooks/useQueryCache.ts +7 -7
- package/src/hooks/useSessionDraft.ts +14 -11
- package/src/hooks/useSessionRestoration.ts +1 -1
- package/src/hooks/useStorage.ts +75 -40
- package/src/hooks/useToast.ts +2 -2
- package/src/hooks/useZodForm.ts +3 -3
- package/src/icons/__tests__/index.test.ts +133 -0
- package/src/icons/index.ts +1 -1
- package/src/index.ts +43 -4
- package/src/providers/OrganisationProvider.test.tsx +40 -0
- package/src/providers/OrganisationProvider.tsx +5 -5
- package/src/providers/UnifiedAuthProvider.smoke.test.tsx +7 -12
- package/src/providers/__tests__/AuthProvider.test.tsx +22 -91
- package/src/providers/__tests__/EventProvider.test.tsx +16 -80
- package/src/providers/__tests__/InactivityProvider.test.tsx +29 -173
- package/src/providers/__tests__/OrganisationProvider.test.tsx +4 -5
- package/src/providers/__tests__/OrganisationProvider.wrapper.test.tsx +591 -0
- package/src/providers/__tests__/ProviderLifecycle.test.tsx +80 -196
- package/src/providers/__tests__/UnifiedAuthProvider.test.tsx +40 -133
- package/src/providers/__tests__/index.test.ts +138 -0
- package/src/providers/services/AuthServiceContext.ts +27 -0
- package/src/providers/services/AuthServiceProvider.tsx +81 -20
- package/src/providers/services/EventServiceContext.ts +25 -0
- package/src/providers/services/EventServiceProvider.tsx +11 -20
- package/src/providers/services/InactivityServiceContext.ts +25 -0
- package/src/providers/services/InactivityServiceProvider.tsx +7 -17
- package/src/providers/services/OrganisationServiceContext.ts +25 -0
- package/src/providers/services/OrganisationServiceProvider.tsx +7 -17
- package/src/providers/services/UnifiedAuthContext.ts +99 -0
- package/src/providers/services/UnifiedAuthProvider.test.tsx +212 -0
- package/src/providers/services/UnifiedAuthProvider.tsx +38 -143
- package/src/providers/services/__tests__/AuthServiceProvider.integration.test.tsx +61 -95
- package/src/providers/services/__tests__/AuthServiceProvider.test.tsx +638 -0
- package/src/providers/services/__tests__/EventServiceProvider.test.tsx +839 -0
- package/src/providers/services/__tests__/InactivityServiceProvider.test.tsx +662 -0
- package/src/providers/services/__tests__/OrganisationServiceProvider.test.tsx +440 -0
- package/src/providers/services/__tests__/UnifiedAuthProvider.advanced.test.tsx +435 -0
- package/src/providers/services/__tests__/UnifiedAuthProvider.appId.test.tsx +408 -0
- package/src/providers/services/__tests__/UnifiedAuthProvider.integration.test.tsx +55 -48
- package/src/providers/services/__tests__/contexts.test.tsx +281 -0
- package/src/providers/services/__tests__/useUnifiedAuth.test.tsx +251 -0
- package/src/providers/services/useUnifiedAuth.ts +29 -0
- package/src/rbac/README.md +5 -5
- package/src/rbac/__tests__/adapters.comprehensive.test.tsx +9 -14
- package/src/rbac/__tests__/audit-batched.test.ts +550 -0
- package/src/rbac/__tests__/auth-rbac-security.integration.test.tsx +1 -14
- package/src/rbac/__tests__/auth-rbac.e2e.test.tsx +43 -12
- package/src/rbac/__tests__/cache-invalidation.test.ts +8 -14
- package/src/rbac/__tests__/engine.comprehensive.test.ts +2 -7
- package/src/rbac/__tests__/index.test.ts +107 -0
- package/src/rbac/__tests__/performance.test.ts +451 -0
- package/src/rbac/__tests__/rbac-core.test.tsx +2 -2
- package/src/rbac/__tests__/rbac-engine-core-logic.test.ts +0 -5
- package/src/rbac/__tests__/rbac-engine-simplified.test.ts +1 -7
- package/src/rbac/__tests__/rbac-functions.test.ts +0 -1
- package/src/rbac/__tests__/rbac-integration.test.ts +0 -1
- package/src/rbac/__tests__/scenarios.user-role.test.tsx +21 -32
- package/src/rbac/adapters.test.tsx +654 -0
- package/src/rbac/adapters.tsx +24 -9
- package/src/rbac/api.test.ts +13 -217
- package/src/rbac/api.ts +85 -16
- package/src/rbac/audit-batched.ts +5 -4
- package/src/rbac/audit.test.ts +225 -28
- package/src/rbac/audit.ts +22 -17
- package/src/rbac/cache-invalidation.ts +18 -15
- package/src/rbac/cache.test.ts +123 -63
- package/src/rbac/cache.ts +3 -4
- package/src/rbac/components/AccessDenied.tsx +20 -18
- package/src/rbac/components/NavigationGuard.tsx +10 -8
- package/src/rbac/components/PagePermissionGuard.tsx +27 -25
- package/src/rbac/components/__tests__/AccessDenied.test.tsx +324 -0
- package/src/rbac/components/__tests__/NavigationGuard.test.tsx +242 -71
- package/src/rbac/components/__tests__/PagePermissionGuard.performance.test.tsx +20 -37
- package/src/rbac/components/__tests__/PagePermissionGuard.race-condition.test.tsx +18 -17
- package/src/rbac/components/__tests__/PagePermissionGuard.test.tsx +452 -129
- package/src/rbac/components/__tests__/PagePermissionGuard.verification.test.tsx +14 -13
- package/src/rbac/config.test.ts +131 -48
- package/src/rbac/config.ts +11 -8
- package/src/rbac/docs/event-based-apps.md +26 -13
- package/src/rbac/engine.test.ts +496 -146
- package/src/rbac/engine.ts +53 -13
- package/src/rbac/errors.test.ts +99 -87
- package/src/rbac/eslint-rules.js +2 -2
- package/src/rbac/hooks/__tests__/usePermissions.integration.test.ts +0 -5
- package/src/rbac/hooks/__tests__/useSecureSupabase.test.ts +601 -1
- package/src/rbac/hooks/permissions/__tests__/useAccessLevel.test.ts +622 -0
- package/src/rbac/hooks/permissions/__tests__/useCan.test.ts +798 -0
- package/src/rbac/hooks/permissions/__tests__/useMultiplePermissions.test.ts +843 -0
- package/src/rbac/hooks/permissions/__tests__/usePermissions.test.ts +545 -0
- package/src/rbac/hooks/permissions/useAccessLevel.ts +7 -8
- package/src/rbac/hooks/permissions/useCan.ts +12 -10
- package/src/rbac/hooks/permissions/useMultiplePermissions.ts +57 -8
- package/src/rbac/hooks/permissions/usePermissions.ts +15 -14
- package/src/rbac/hooks/useCan.test.ts +319 -3
- package/src/rbac/hooks/usePermissions.test.ts +426 -0
- package/src/rbac/hooks/usePermissions.ts +5 -7
- package/src/rbac/hooks/useRBAC.test.ts +1669 -2
- package/src/rbac/hooks/useRBAC.ts +7 -11
- package/src/rbac/hooks/useResolvedScope.test.ts +442 -5
- package/src/rbac/hooks/useResolvedScope.ts +4 -1
- package/src/rbac/hooks/useResourcePermissions.test.ts +538 -1
- package/src/rbac/hooks/useResourcePermissions.ts +9 -7
- package/src/rbac/hooks/useRoleManagement.test.ts +659 -1
- package/src/rbac/hooks/useRoleManagement.ts +16 -12
- package/src/rbac/hooks/useSecureSupabase.ts +11 -12
- package/src/rbac/index.ts +32 -32
- package/src/rbac/permissions.test.ts +149 -68
- package/src/rbac/permissions.ts +0 -3
- package/src/rbac/request-deduplication.test.ts +347 -0
- package/src/rbac/secureClient.test.ts +112 -159
- package/src/rbac/secureClient.ts +46 -26
- package/src/rbac/security.test.ts +125 -44
- package/src/rbac/security.ts +7 -6
- package/src/rbac/types.test.ts +236 -0
- package/src/rbac/types.ts +7 -5
- package/src/rbac/utils/__tests__/clientSecurity.test.ts +192 -0
- package/src/rbac/utils/__tests__/contextValidator.test.ts +1 -3
- package/src/rbac/utils/__tests__/deep-equal.test.ts +23 -0
- package/src/rbac/utils/__tests__/eventContext.test.ts +10 -57
- package/src/rbac/utils/clientSecurity.ts +6 -4
- package/src/rbac/utils/contextValidator.ts +1 -2
- package/src/rbac/utils/eventContext.ts +2 -2
- package/src/services/AuthService.ts +13 -11
- package/src/services/EventService.ts +4 -5
- package/src/services/OrganisationService.ts +13 -30
- package/src/services/__tests__/AuthService.edge-cases.test.ts +746 -0
- package/src/services/__tests__/AuthService.restoreSession.test.ts +23 -3
- package/src/services/__tests__/AuthService.test.ts +4 -8
- package/src/services/__tests__/BaseService.edge-cases.test.ts +506 -0
- package/src/services/__tests__/BaseService.test.ts +49 -0
- package/src/services/__tests__/EventService.edge-cases.test.ts +633 -0
- package/src/services/__tests__/EventService.eventColours.test.ts +0 -12
- package/src/services/__tests__/EventService.test.ts +0 -7
- package/src/services/__tests__/InactivityService.edge-cases.test.ts +492 -0
- package/src/services/__tests__/InactivityService.lifecycle.test.ts +0 -5
- package/src/services/__tests__/OrganisationService.edge-cases.test.ts +633 -0
- package/src/services/base/BaseService.test.ts +214 -0
- package/src/services/interfaces/IOrganisationService.ts +0 -1
- package/src/services/interfaces/__tests__/IAuthService.test.ts +190 -0
- package/src/services/interfaces/__tests__/IEventService.test.ts +176 -0
- package/src/services/interfaces/__tests__/IInactivityService.test.ts +183 -0
- package/src/services/interfaces/__tests__/IOrganisationService.test.ts +207 -0
- package/src/styles/core.css +1 -0
- package/src/theming/__tests__/runtime.test.ts +29 -94
- package/src/theming/parseEventColours.ts +18 -9
- package/src/theming/runtime.ts +1 -5
- package/src/types/__tests__/core.test.ts +397 -0
- package/src/types/__tests__/database-generated.test.ts +78 -0
- package/src/types/__tests__/file-reference.test.ts +270 -366
- package/src/types/__tests__/guards.test.ts +26 -26
- package/src/types/__tests__/index.test.ts +265 -0
- package/src/types/__tests__/type-validation.test.ts +3 -3
- package/src/types/__tests__/validation.test.ts +0 -2
- package/src/types/auth.ts +0 -1
- package/src/types/database.generated.ts +9 -9
- package/src/types/event.ts +1 -1
- package/src/types/rpc-responses.ts +33 -0
- package/src/types/supabase.ts +1 -2
- package/src/types/vitest-globals.d.ts +1 -1
- package/src/utils/__tests__/bundleAnalysis.unit.test.ts +64 -77
- package/src/utils/__tests__/dynamicUtils.unit.test.ts +13 -0
- package/src/utils/__tests__/formatDate.unit.test.ts +1 -1
- package/src/utils/__tests__/lazyLoad.unit.test.tsx +0 -1
- package/src/utils/__tests__/logger.unit.test.ts +1 -1
- package/src/utils/__tests__/performanceBenchmark.test.ts +1 -2
- package/src/utils/__tests__/performanceBudgets.unit.test.ts +48 -13
- package/src/utils/__tests__/request-deduplication.test.ts +349 -0
- package/src/utils/__tests__/secureDataAccess.unit.test.ts +0 -1
- package/src/utils/__tests__/timezone.test.ts +1 -1
- package/src/utils/__tests__/validation.unit.test.ts +1 -2
- package/src/utils/__tests__/validationUtils.unit.test.ts +1 -1
- package/src/utils/app/appConfig.test.ts +235 -0
- package/src/utils/app/appIdResolver.test.ts +188 -20
- package/src/utils/app/appNameResolver.test.ts +18 -10
- package/src/utils/app/appNameResolver.ts +11 -9
- package/src/utils/app/appPortMap.test.ts +125 -0
- package/src/utils/app/appPortMap.ts +51 -0
- package/src/utils/app/buildAppUrl.test.ts +273 -0
- package/src/utils/app/buildAppUrl.ts +114 -0
- package/src/utils/audit/audit.test.ts +354 -39
- package/src/utils/context/organisationContext.test.ts +10 -4
- package/src/utils/context/organisationContext.ts +5 -5
- package/src/utils/context/sessionTracking.test.ts +354 -0
- package/src/utils/core/__tests__/cn.test.ts +66 -0
- package/src/utils/core/__tests__/debugLogger.test.ts +113 -0
- package/src/utils/core/__tests__/logger.test.ts +217 -0
- package/src/utils/core/debugLogger.ts +15 -8
- package/src/utils/core/logger.ts +20 -16
- package/src/utils/device/deviceFingerprint.test.ts +8 -5
- package/src/utils/device/deviceFingerprint.ts +3 -3
- package/src/utils/dynamic/__tests__/dynamicUtils.test.ts +185 -0
- package/src/utils/dynamic/__tests__/lazyLoad.test.tsx +156 -0
- package/src/utils/dynamic/createLazyComponent.tsx +38 -0
- package/src/utils/dynamic/dynamicUtils.ts +6 -6
- package/src/utils/dynamic/lazyLoad.tsx +8 -36
- package/src/utils/dynamic/papaparseLoader.ts +7 -0
- package/src/utils/file-reference/__tests__/file-reference.test.ts +583 -145
- package/src/utils/file-reference/index.ts +0 -1
- package/src/utils/formatting/formatDate.test.ts +22 -148
- package/src/utils/formatting/formatDateTime.test.ts +41 -119
- package/src/utils/formatting/formatDateTimeTimezone.test.ts +40 -84
- package/src/utils/formatting/formatNumber.test.ts +259 -0
- package/src/utils/formatting/formatTime.test.ts +36 -128
- package/src/utils/formatting/formatting.ts +1 -1
- package/src/utils/google-places/googlePlacesUtils.test.ts +72 -3
- package/src/utils/google-places/googlePlacesUtils.ts +15 -2
- package/src/utils/google-places/loadGoogleMapsScript.test.ts +58 -1
- package/src/utils/google-places/loadGoogleMapsScript.ts +2 -1
- package/src/utils/index.ts +52 -11
- package/src/utils/location/location.test.ts +18 -115
- package/src/utils/performance/__tests__/bundleAnalysis.test.ts +148 -0
- package/src/utils/performance/__tests__/performanceBenchmark.test.ts +251 -0
- package/src/utils/performance/__tests__/performanceBudgets.test.ts +241 -0
- package/src/utils/performance/bundleAnalysis.ts +16 -22
- package/src/utils/performance/performanceBenchmark.ts +12 -4
- package/src/utils/performance/performanceBudgets.ts +9 -6
- package/src/utils/permissions/__tests__/permissionTypes.test.ts +149 -0
- package/src/utils/permissions/permissionUtils.test.ts +20 -42
- package/src/utils/persistence/__tests__/keyDerivation.test.ts +180 -9
- package/src/utils/persistence/__tests__/sensitiveFieldDetection.test.ts +164 -16
- package/src/utils/persistence/sensitiveFieldDetection.ts +2 -2
- package/src/utils/request-deduplication.ts +6 -4
- package/src/utils/security/auth-utils.ts +7 -7
- package/src/utils/security/secureDataAccess.test.ts +22 -191
- package/src/utils/security/secureErrors.test.ts +163 -0
- package/src/utils/security/secureStorage.test.ts +156 -0
- package/src/utils/security/secureStorage.ts +1 -1
- package/src/utils/security/security.test.ts +204 -0
- package/src/utils/security/securityMonitor.test.ts +90 -0
- package/src/utils/security/securityMonitor.ts +1 -1
- package/src/utils/storage/__tests__/config.unit.test.ts +239 -0
- package/src/utils/storage/__tests__/index.unit.test.ts +64 -12
- package/src/utils/storage/helpers.test.ts +757 -430
- package/src/utils/storage/helpers.ts +1 -2
- package/src/utils/storage/{index.ts → storageUtils.ts} +1 -36
- package/src/utils/storage/types.ts +2 -2
- package/src/utils/supabase/createBaseClient.test.ts +201 -0
- package/src/utils/supabase/createBaseClient.ts +27 -8
- package/src/utils/timezone/timezone.test.ts +25 -43
- package/src/utils/validation/__tests__/common.test.ts +115 -0
- package/src/utils/validation/__tests__/csrf.test.ts +65 -0
- package/src/utils/validation/__tests__/htmlSanitization.unit.test.ts +27 -7
- package/src/utils/validation/__tests__/passwordSchema.test.ts +164 -0
- package/src/utils/validation/__tests__/schema.test.ts +127 -0
- package/src/utils/validation/__tests__/sqlInjectionProtection.test.ts +76 -3
- package/src/utils/validation/__tests__/user.test.ts +173 -0
- package/src/utils/validation/__tests__/validation.test.ts +197 -0
- package/src/utils/validation/__tests__/validationUtils.test.ts +265 -43
- package/src/utils/validation/htmlSanitization.ts +27 -31
- package/src/utils/validation/schema.ts +6 -3
- package/src/utils/validation/sqlInjectionProtection.ts +2 -2
- package/src/vite-env.d.ts +6 -0
- package/dist/DataTable-DRUIgtUH.d.ts +0 -166
- package/dist/UnifiedAuthProvider-7SNDOWYD.js +0 -7
- package/dist/audit-MYQXYZFU.js +0 -3
- package/dist/chunk-7ILTDCL2.js +0 -80
- package/dist/chunk-EF2UGZWY.js +0 -611
- package/dist/chunk-FEJLJNWA.js +0 -181
- package/dist/chunk-GS5672WG.js +0 -2003
- package/dist/chunk-S6ZQKDY6.js +0 -62
- package/dist/chunk-Z2FNRKF3.js +0 -994
- package/dist/useToast-AyaT-x7p.d.ts +0 -68
- package/src/components/DataTable/components/index.ts +0 -16
- package/src/components/DataTable/core/index.ts +0 -1
- package/src/components/DataTable/hooks/index.ts +0 -13
- package/src/components/DataTable/utils/index.ts +0 -9
- package/src/components/PublicLayout/index.ts +0 -32
- package/src/hooks/__tests__/usePermissionCache.simple.test.ts +0 -192
- package/src/hooks/__tests__/usePermissionCache.unit.test.ts +0 -741
- package/src/hooks/public/index.ts +0 -36
- package/src/hooks/usePermissionCache.test.ts +0 -536
- package/src/rbac/__tests__/isSuperAdmin.real.test.ts +0 -82
- package/src/rbac/audit-enhanced.ts +0 -384
- package/src/rbac/compliance/database-validator.ts +0 -165
- package/src/rbac/compliance/index.ts +0 -48
- package/src/rbac/compliance/pattern-detector.ts +0 -553
- package/src/rbac/compliance/quick-fix-suggestions.ts +0 -209
- package/src/rbac/compliance/runtime-compliance.ts +0 -99
- package/src/rbac/compliance/setup-validator.ts +0 -131
- package/src/rbac/components/index.ts +0 -26
- package/src/rbac/hooks/index.ts +0 -34
- package/src/rbac/hooks/permissions/index.ts +0 -4
- package/src/rbac/hooks/useRBAC.simple.test.ts +0 -95
- package/src/rbac/utils/__tests__/eventContext.unit.test.ts +0 -490
- package/src/utils/app/appNameResolver.simple.test.ts +0 -212
- package/src/utils/google-places/index.ts +0 -26
- package/src/utils/location/index.ts +0 -16
- package/src/utils/storage/__tests__/helpers.unit.test.ts +0 -332
- package/src/utils/timezone/index.ts +0 -17
- package/src/utils/validation/index.ts +0 -73
package/dist/index.js
CHANGED
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
export { ALL_PERMISSIONS, EVENT_APP_PERMISSIONS, GLOBAL_PERMISSIONS, NavigationGuard, ORGANISATION_PERMISSIONS, PAGE_PERMISSIONS, PagePermissionGuard, RBACErrorCode, RPCFunction,
|
|
2
|
-
export { AddressField, Avatar, Badge, Calendar, ContextSelector, FileDisplay, FileUpload, Footer, Form, FormField, Header, LoginForm, NavigationMenu, PaceAppLayout, PaceLoginPage, PasswordChangeForm, ProtectedRoute, PublicPageFooter, PublicPageHeader, PublicPageLayout, SessionRestorationLoader, Switch, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport, Toaster, UserMenu, useFileReference, useFileReferenceById, useFileReferenceForRecord, useFilesByCategory } from './chunk-
|
|
3
|
-
export { AccessDenied } from './chunk-
|
|
4
|
-
import { Dialog, DialogContent, DialogHeader } from './chunk-
|
|
5
|
-
export {
|
|
6
|
-
import { Button } from './chunk-
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
9
|
-
|
|
10
|
-
export {
|
|
11
|
-
export {
|
|
12
|
-
|
|
13
|
-
export {
|
|
1
|
+
export { ALL_PERMISSIONS, EVENT_APP_PERMISSIONS, GLOBAL_PERMISSIONS, NavigationGuard, ORGANISATION_PERMISSIONS, PAGE_PERMISSIONS, PagePermissionGuard, RBACErrorCode, RPCFunction, createRBACExpressMiddleware, createRBACMiddleware, isValidPermission, useResourcePermissions, useRoleManagement, withAccessLevelGuard, withPermissionGuard, withRoleGuard } from './chunk-W46INAVW.js';
|
|
2
|
+
export { AddressField, AppSwitcher, Avatar, Badge, Calendar, ContextSelector, DEFAULT_APP_PORT_MAP, DatePickerWithTimezone, ErrorBoundary, ErrorBoundaryProvider, FileDisplay, FileUpload, Footer, Form, FormField, Header, LoginForm, NavigationMenu, PaceAppLayout, PaceLoginPage, PasswordChangeForm, ProtectedRoute, PublicPageFooter, PublicPageHeader, PublicPageLayout, PublicPageProvider, SessionRestorationLoader, Switch, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport, Toaster, UserMenu, buildAppUrl, getAllAppPorts, getAppPort, useAccessibleApps, useFileReference, useFileReferenceById, useFileReferenceForRecord, useFilesByCategory } from './chunk-TFIPNIPE.js';
|
|
3
|
+
export { AccessDenied, SECURE_CLIENT_SYMBOL, SecureSupabaseClient, createSecureClient, fromSupabaseClient, isSecureClient, useEvents, useRBAC, useSecureSupabase, warnIfInsecureClient } from './chunk-X5EAU5G7.js';
|
|
4
|
+
import { Dialog, DialogContent, DialogHeader } from './chunk-MPY44PWB.js';
|
|
5
|
+
export { Checkbox, ColumnFactory, DataTable, Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogPortal, DialogTitle, DialogTrigger, Input, Label, Progress, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, average, count, exportToCSV, exportToCSVWithTableRows, generateCSVContent, max, min, sum } from './chunk-MPY44PWB.js';
|
|
6
|
+
import { Card, Button } from './chunk-KYURMOQM.js';
|
|
7
|
+
export { Alert, AlertDescription, AlertTitle, Button, Card, CardActions, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Tooltip, TooltipContent, TooltipProvider, TooltipRoot, TooltipTrigger, useAccessLevel, useCan, useMultiplePermissions, usePermissions, useResolvedScope } from './chunk-KYURMOQM.js';
|
|
8
|
+
export { clearPublicEventCache, clearPublicLogoCache, extractEventCodeFromPath, generatePublicRoutePath, getPublicEventCacheStats, getPublicLogoCacheStats, useFormDialog, useOrganisationPermissions, usePublicEvent, usePublicEventCode, usePublicEventLogo, usePublicRouteParams, useZodForm } from './chunk-66R6RLUZ.js';
|
|
9
|
+
import { generateFilePath, generateUniqueFileName, extractFileMetadata, uploadFile, getPublicUrl, getSignedUrl, deleteFile, downloadFile, listFiles, archiveFile } from './chunk-FBZ7U3ID.js';
|
|
10
|
+
export { APP_PATH_MAPPING, DEFAULT_FILE_SIZE_LIMIT, FILE_SIZE_LIMITS, STORAGE_CONFIG, archiveFile, clearPublicFileDisplayCache, deleteFile, downloadFile, extractFileMetadata, generateFilePath, generateFileUrlsBatch, generateUniqueFileName, getBucketName, getFileSizeLimit, getPublicFileDisplayCacheStats, getPublicUrl, getSignedUrl, listFiles, uploadFile, useEventTheme, usePublicFileDisplay, validateFileSize } from './chunk-FBZ7U3ID.js';
|
|
11
|
+
export { applyPalette, clearPalette, parseAndNormalizeEventColours } from './chunk-JJEYZ3DX.js';
|
|
12
|
+
export { useOrganisationSecurity } from './chunk-KPYQWGFQ.js';
|
|
13
|
+
export { useToast } from './chunk-BCTXBU6U.js';
|
|
14
|
+
export { useAppConfig, useIsPublicPage, usePublicPageContext } from './chunk-3GWSPISD.js';
|
|
14
15
|
import './chunk-C7NSAPTL.js';
|
|
15
|
-
import { OrganisationServiceContext, UnifiedAuthContext, OrganisationServiceProvider } from './chunk-
|
|
16
|
-
export { EventServiceProvider, InactivityServiceProvider, OrganisationServiceProvider, UnifiedAuthProvider, useAuthService, useEventService, useInactivityService, useOrganisationService, useOrganisations, useSessionRestoration, useUnifiedAuth } from './chunk-
|
|
17
|
-
export { CACHE_PATTERNS, RBACCache, RBACEngine, clearInFlightRequests, createRBACConfig, createRBACEngine, disablePerformanceMonitoring, enablePerformanceMonitoring, getAccessLevel, getInFlightRequestCount, getPerformanceMetrics, getPerformanceSummary, getPermissionMap, getRBACConfig, getRBACLogger, getRoleContext, hasAllPermissions, hasAnyPermission, isDebugMode, isDevelopmentMode, isPerformanceMonitoringEnabled, isPermitted, isPermittedCached, rbacCache, recordAuditEvent, recordPermissionCheck, resetPerformanceMetrics, resolveAppContext, setupRBAC } from './chunk-
|
|
18
|
-
export { RBACAuditManager, createAuditManager, emitAuditEvent, getGlobalAuditManager, setGlobalAuditManager } from './chunk-
|
|
16
|
+
import { OrganisationServiceContext, UnifiedAuthContext, OrganisationServiceProvider } from './chunk-Y4PF6HIM.js';
|
|
17
|
+
export { EventServiceProvider, InactivityServiceProvider, OrganisationServiceProvider, UnifiedAuthProvider, useAuthService, useEventService, useInactivityService, useOrganisationService, useOrganisations, useSessionRestoration, useUnifiedAuth } from './chunk-Y4PF6HIM.js';
|
|
18
|
+
export { CACHE_PATTERNS, RBACCache, RBACEngine, clearInFlightRequests, createRBACConfig, createRBACEngine, disablePerformanceMonitoring, enablePerformanceMonitoring, getAccessLevel, getInFlightRequestCount, getPerformanceMetrics, getPerformanceSummary, getPermissionMap, getRBACConfig, getRBACLogger, getRoleContext, hasAllPermissions, hasAnyPermission, isDebugMode, isDevelopmentMode, isPerformanceMonitoringEnabled, isPermitted, isPermittedCached, isRBACInitialized, rbacCache, recordAuditEvent, recordPermissionCheck, resetPerformanceMetrics, resolveAppContext, setupRBAC } from './chunk-LNHFAF4X.js';
|
|
19
|
+
export { RBACAuditManager, createAuditManager, emitAuditEvent, getGlobalAuditManager, setGlobalAuditManager } from './chunk-NIU6DPQV.js';
|
|
19
20
|
export { FileCategory } from './chunk-6QYDGKQY.js';
|
|
20
21
|
import './chunk-4SXLQIZO.js';
|
|
21
|
-
export { createBaseClient, emailSchema, formatCompactNumber, formatCurrency, formatDate, formatDateTime, formatFileSize, formatNumber, formatPercent, formatTime, getAppConfig, getCurrentAppId, getCurrentAppName, nameSchema, passwordSchema, phoneSchema, sanitizeFormData, sanitizeUserInput, setAppConfig, urlSchema, useSessionTracking } from './chunk-
|
|
22
|
-
export { formatInTimeZone, formatTimeInTimeZone, fromZonedTime, getTimeZoneDifference, getTimezoneAbbreviation, getUserTimeZone, roundToNearestMinutes, toZonedTime } from './chunk-
|
|
23
|
-
export {
|
|
24
|
-
import './chunk-
|
|
25
|
-
|
|
26
|
-
import
|
|
27
|
-
|
|
28
|
-
import './chunk-
|
|
29
|
-
|
|
30
|
-
export { LogLevel, Logger, createLogger, logger } from './chunk-TTRFSOKR.js';
|
|
22
|
+
export { createBaseClient, emailSchema, formatCompactNumber, formatCurrency, formatDate, formatDateTime, formatFileSize, formatNumber, formatPercent, formatTime, getAppConfig, getCurrentAppId, getCurrentAppName, nameSchema, passwordSchema, phoneSchema, sanitizeFormData, sanitizeUserInput, setAppConfig, urlSchema, useSessionTracking } from './chunk-KSNLMI7N.js';
|
|
23
|
+
export { formatInTimeZone, formatTimeInTimeZone, fromZonedTime, getTimeZoneDifference, getTimezoneAbbreviation, getUserTimeZone, roundToNearestMinutes, toZonedTime } from './chunk-FN52B75D.js';
|
|
24
|
+
export { sanitizeHtml } from './chunk-DDMPHZ3D.js';
|
|
25
|
+
import { cn } from './chunk-UZNAFKGW.js';
|
|
26
|
+
export { LoadingSpinner, cn } from './chunk-UZNAFKGW.js';
|
|
27
|
+
import './chunk-7YDC7LMU.js';
|
|
28
|
+
import './chunk-RMLY6KB5.js';
|
|
29
|
+
import { logger } from './chunk-BTHN5MKC.js';
|
|
30
|
+
export { LogLevel, Logger, createLogger, logger } from './chunk-BTHN5MKC.js';
|
|
31
31
|
export { getAllStylePaths, getStylePath, styleConfig } from './chunk-UH3NTO3F.js';
|
|
32
32
|
import './chunk-3RG5ZIWI.js';
|
|
33
33
|
import { useContext, useState, useEffect, useCallback, useRef } from 'react';
|
|
@@ -37,9 +37,9 @@ export { z } from 'zod';
|
|
|
37
37
|
|
|
38
38
|
function OrganisationProvider({
|
|
39
39
|
children,
|
|
40
|
-
requireOrganisationContext,
|
|
41
|
-
autoSelectPrimaryOrganisation,
|
|
42
|
-
onOrganisationChange
|
|
40
|
+
requireOrganisationContext: _requireOrganisationContext,
|
|
41
|
+
autoSelectPrimaryOrganisation: _autoSelectPrimaryOrganisation,
|
|
42
|
+
onOrganisationChange: _onOrganisationChange
|
|
43
43
|
}) {
|
|
44
44
|
const existingOrganisationService = useContext(OrganisationServiceContext);
|
|
45
45
|
const authContext = useContext(UnifiedAuthContext);
|
|
@@ -295,7 +295,7 @@ function useInactivityTracker({
|
|
|
295
295
|
document.removeEventListener(event, throttledResetActivityRef.current);
|
|
296
296
|
});
|
|
297
297
|
}
|
|
298
|
-
throttledResetActivityRef.current = throttle((
|
|
298
|
+
throttledResetActivityRef.current = throttle((_event) => {
|
|
299
299
|
resetActivity();
|
|
300
300
|
}, 100);
|
|
301
301
|
ACTIVITY_EVENTS.forEach((event) => {
|
|
@@ -579,4 +579,18 @@ var createSecureDataAccess = (supabase, organisationId, isSuperAdmin = false) =>
|
|
|
579
579
|
};
|
|
580
580
|
};
|
|
581
581
|
|
|
582
|
-
|
|
582
|
+
// src/utils/storage/storageUtils.ts
|
|
583
|
+
var StorageUtils = class {
|
|
584
|
+
};
|
|
585
|
+
StorageUtils.generateFilePath = generateFilePath;
|
|
586
|
+
StorageUtils.generateUniqueFileName = generateUniqueFileName;
|
|
587
|
+
StorageUtils.extractFileMetadata = extractFileMetadata;
|
|
588
|
+
StorageUtils.uploadFile = uploadFile;
|
|
589
|
+
StorageUtils.getPublicUrl = getPublicUrl;
|
|
590
|
+
StorageUtils.getSignedUrl = getSignedUrl;
|
|
591
|
+
StorageUtils.deleteFile = deleteFile;
|
|
592
|
+
StorageUtils.downloadFile = downloadFile;
|
|
593
|
+
StorageUtils.listFiles = listFiles;
|
|
594
|
+
StorageUtils.archiveFile = archiveFile;
|
|
595
|
+
|
|
596
|
+
export { InactivityWarningModal, OrganisationProvider, StorageUtils, createSecureDataAccess, useInactivityTracker };
|
package/dist/providers.d.ts
CHANGED
|
@@ -1,26 +1,40 @@
|
|
|
1
|
-
export {
|
|
2
|
-
import {
|
|
3
|
-
export { a as
|
|
1
|
+
export { d as UnifiedAuthContext, b as UnifiedAuthContextType, U as UnifiedAuthProvider, a as UnifiedAuthProviderProps, c as UserEventAccess, u as useUnifiedAuth } from './UnifiedAuthProvider-CiBAl9-s.js';
|
|
2
|
+
import { O as OrganisationService, I as InactivityService } from './InactivityServiceProvider-DHryoh6K.js';
|
|
3
|
+
export { a as EventServiceProvider, E as EventServiceProviderProps, e as InactivityServiceProvider, d as InactivityServiceProviderProps, c as OrganisationServiceProvider, b as OrganisationServiceProviderProps } from './InactivityServiceProvider-DHryoh6K.js';
|
|
4
4
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
5
|
+
import * as React from 'react';
|
|
5
6
|
import React__default from 'react';
|
|
6
7
|
import { SupabaseClient } from '@supabase/supabase-js';
|
|
7
|
-
import
|
|
8
|
-
import './event-CW5YB_2p.js';
|
|
8
|
+
import './event-WTAQuGcq.js';
|
|
9
9
|
import './core-CUElvH_C.js';
|
|
10
|
+
import './auth-BZOJqrdd.js';
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
|
-
*
|
|
13
|
-
* Provides
|
|
13
|
+
* Organisation service context type.
|
|
14
|
+
* Provides organisation service instance to React components.
|
|
14
15
|
*/
|
|
15
|
-
interface
|
|
16
|
-
|
|
17
|
-
sessionRestoration: SessionRestorationState;
|
|
16
|
+
interface OrganisationServiceContextType {
|
|
17
|
+
organisationService: OrganisationService;
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
|
-
* Context for
|
|
21
|
-
* Provides
|
|
20
|
+
* Context for OrganisationService.
|
|
21
|
+
* Provides organisation service instance to React components.
|
|
22
|
+
*/
|
|
23
|
+
declare const OrganisationServiceContext: React.Context<OrganisationServiceContextType | null>;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Inactivity service context type.
|
|
27
|
+
* Provides inactivity service instance to React components.
|
|
22
28
|
*/
|
|
23
|
-
|
|
29
|
+
interface InactivityServiceContextType {
|
|
30
|
+
inactivityService: InactivityService;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Context for InactivityService.
|
|
34
|
+
* Provides inactivity service instance to React components.
|
|
35
|
+
*/
|
|
36
|
+
declare const InactivityServiceContext: React.Context<InactivityServiceContextType | null>;
|
|
37
|
+
|
|
24
38
|
/**
|
|
25
39
|
* Props for the AuthServiceProvider component.
|
|
26
40
|
*/
|
|
@@ -38,4 +52,4 @@ interface AuthServiceProviderProps {
|
|
|
38
52
|
*/
|
|
39
53
|
declare function AuthServiceProvider({ children, supabaseClient, appName }: AuthServiceProviderProps): react_jsx_runtime.JSX.Element;
|
|
40
54
|
|
|
41
|
-
export {
|
|
55
|
+
export { AuthServiceProvider, type AuthServiceProviderProps, InactivityServiceContext, type InactivityServiceContextType, OrganisationServiceContext, type OrganisationServiceContextType };
|
package/dist/providers.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import './chunk-C7NSAPTL.js';
|
|
2
|
-
export {
|
|
3
|
-
import './chunk-
|
|
4
|
-
import './chunk-
|
|
2
|
+
export { AuthServiceProvider, EventServiceProvider, InactivityServiceContext, InactivityServiceProvider, OrganisationServiceContext, OrganisationServiceProvider, UnifiedAuthContext, UnifiedAuthProvider, useUnifiedAuth } from './chunk-Y4PF6HIM.js';
|
|
3
|
+
import './chunk-LNHFAF4X.js';
|
|
4
|
+
import './chunk-NIU6DPQV.js';
|
|
5
5
|
import './chunk-4SXLQIZO.js';
|
|
6
|
-
import './chunk-
|
|
7
|
-
import './chunk-
|
|
6
|
+
import './chunk-RMLY6KB5.js';
|
|
7
|
+
import './chunk-BTHN5MKC.js';
|
|
8
8
|
import './chunk-3RG5ZIWI.js';
|
|
@@ -195,7 +195,7 @@ var eslint_rules_default = {
|
|
|
195
195
|
`
|
|
196
196
|
if (error) {
|
|
197
197
|
console.error('RBAC error:', error);
|
|
198
|
-
return <
|
|
198
|
+
return <Alert variant="destructive"><AlertDescription>Error loading permissions</AlertDescription></Alert>;
|
|
199
199
|
}`
|
|
200
200
|
);
|
|
201
201
|
}
|
|
@@ -236,7 +236,7 @@ var eslint_rules_default = {
|
|
|
236
236
|
node,
|
|
237
237
|
`
|
|
238
238
|
if (isLoading) {
|
|
239
|
-
return
|
|
239
|
+
return null; // or use a loading component
|
|
240
240
|
}`
|
|
241
241
|
);
|
|
242
242
|
}
|
package/dist/rbac/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { U as UUID, g as PermissionCacheKey, h as AuditEventSource, i as RBACAuditEvent, a as PermissionCheck, S as Scope, A as AccessLevel, b as PermissionMap, j as RBACAppContext, k as RBACRoleContext, l as UserRBACContext, P as Permission } from '../types-
|
|
2
|
-
export { E as EventAppRole, G as GlobalRole, I as InvalidScopeError, M as MissingUserContextError, O as Operation, e as OrganisationContextRequiredError, c as OrganisationRole, d as PermissionDeniedError, R as RBACError, f as RBACNotInitializedError } from '../types-
|
|
3
|
-
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-
|
|
1
|
+
import { U as UUID, g as PermissionCacheKey, h as AuditEventSource, i as RBACAuditEvent, a as PermissionCheck, S as Scope, A as AccessLevel, b as PermissionMap, j as RBACAppContext, k as RBACRoleContext, l as UserRBACContext, P as Permission } from '../types-CvOPXWWZ.js';
|
|
2
|
+
export { E as EventAppRole, G as GlobalRole, I as InvalidScopeError, M as MissingUserContextError, O as Operation, e as OrganisationContextRequiredError, c as OrganisationRole, d as PermissionDeniedError, R as RBACError, f as RBACNotInitializedError } from '../types-CvOPXWWZ.js';
|
|
3
|
+
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-DH45k8ec.js';
|
|
4
4
|
import { SupabaseClient } from '@supabase/supabase-js';
|
|
5
|
-
import { D as Database } from '../database.generated-
|
|
5
|
+
import { D as Database } from '../database.generated-DT8JTZiP.js';
|
|
6
6
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
7
7
|
import React__default from 'react';
|
|
8
|
-
import { a as NavigationItem } from '../types-
|
|
8
|
+
import { a as NavigationItem } from '../types-BE2sEHKd.js';
|
|
9
9
|
import '../core-CUElvH_C.js';
|
|
10
10
|
|
|
11
11
|
/**
|
|
@@ -567,7 +567,7 @@ interface PermissionCheckAuditEvent {
|
|
|
567
567
|
duration_ms: number;
|
|
568
568
|
cache_hit?: boolean;
|
|
569
569
|
cache_source?: 'memory' | 'database' | 'rpc';
|
|
570
|
-
metadata?: Record<string,
|
|
570
|
+
metadata?: Record<string, unknown>;
|
|
571
571
|
}
|
|
572
572
|
/**
|
|
573
573
|
* Audit event payload for permission denied
|
|
@@ -581,7 +581,7 @@ interface PermissionDeniedAuditEvent {
|
|
|
581
581
|
pageId?: UUID;
|
|
582
582
|
permission: string;
|
|
583
583
|
source: AuditEventSource;
|
|
584
|
-
metadata?: Record<string,
|
|
584
|
+
metadata?: Record<string, unknown>;
|
|
585
585
|
}
|
|
586
586
|
/**
|
|
587
587
|
* Audit event payload for role granted
|
|
@@ -594,7 +594,7 @@ interface RoleGrantedAuditEvent {
|
|
|
594
594
|
appId?: UUID;
|
|
595
595
|
role: string;
|
|
596
596
|
grantedBy: UUID;
|
|
597
|
-
metadata?: Record<string,
|
|
597
|
+
metadata?: Record<string, unknown>;
|
|
598
598
|
}
|
|
599
599
|
/**
|
|
600
600
|
* Audit event payload for role revoked
|
|
@@ -607,7 +607,7 @@ interface RoleRevokedAuditEvent {
|
|
|
607
607
|
appId?: UUID;
|
|
608
608
|
role: string;
|
|
609
609
|
revokedBy: UUID;
|
|
610
|
-
metadata?: Record<string,
|
|
610
|
+
metadata?: Record<string, unknown>;
|
|
611
611
|
}
|
|
612
612
|
/**
|
|
613
613
|
* Audit event payload for RLS denied
|
|
@@ -618,7 +618,7 @@ interface RLSDeniedAuditEvent {
|
|
|
618
618
|
organisationId: UUID;
|
|
619
619
|
table: string;
|
|
620
620
|
operation: string;
|
|
621
|
-
metadata?: Record<string,
|
|
621
|
+
metadata?: Record<string, unknown>;
|
|
622
622
|
}
|
|
623
623
|
/**
|
|
624
624
|
* Union type for all audit events
|
|
@@ -1176,14 +1176,14 @@ declare function useResourcePermissions(resource: string, options?: UseResourceP
|
|
|
1176
1176
|
* function MyComponent() {
|
|
1177
1177
|
* const { accessLevel, isLoading, error } = useAccessLevel(userId, scope);
|
|
1178
1178
|
*
|
|
1179
|
-
* if (isLoading) return
|
|
1180
|
-
* if (error) return <
|
|
1179
|
+
* if (isLoading) return null; // or use a loading component
|
|
1180
|
+
* if (error) return <Alert variant="destructive"><AlertDescription>Error: {error.message}</AlertDescription></Alert>;
|
|
1181
1181
|
*
|
|
1182
1182
|
* return (
|
|
1183
|
-
*
|
|
1184
|
-
* Access Level: {accessLevel}
|
|
1183
|
+
* <>
|
|
1184
|
+
* <p>Access Level: {accessLevel}</p>
|
|
1185
1185
|
* {accessLevel >= AccessLevel.ADMIN && <AdminPanel />}
|
|
1186
|
-
*
|
|
1186
|
+
* </>
|
|
1187
1187
|
* );
|
|
1188
1188
|
* }
|
|
1189
1189
|
* ```
|
|
@@ -1211,10 +1211,10 @@ declare function useAccessLevel(userId: UUID, scope: Scope): {
|
|
|
1211
1211
|
* function MyComponent() {
|
|
1212
1212
|
* const { can, isLoading, error } = useCan(userId, scope, 'read:users');
|
|
1213
1213
|
*
|
|
1214
|
-
* if (isLoading) return
|
|
1215
|
-
* if (error) return <
|
|
1214
|
+
* if (isLoading) return null; // or use a loading component
|
|
1215
|
+
* if (error) return <Alert variant="destructive"><AlertDescription>Error: {error.message}</AlertDescription></Alert>;
|
|
1216
1216
|
*
|
|
1217
|
-
* return can ? <UserList /> : <
|
|
1217
|
+
* return can ? <UserList /> : <AccessDenied />;
|
|
1218
1218
|
* }
|
|
1219
1219
|
* ```
|
|
1220
1220
|
*/
|
|
@@ -1250,15 +1250,15 @@ precomputedSuperAdmin?: boolean | null, appName?: string): {
|
|
|
1250
1250
|
* ['read:users', 'create:users', 'update:users']
|
|
1251
1251
|
* );
|
|
1252
1252
|
*
|
|
1253
|
-
* if (isLoading) return
|
|
1254
|
-
* if (error) return <
|
|
1253
|
+
* if (isLoading) return null; // or use a loading component
|
|
1254
|
+
* if (error) return <Alert variant="destructive"><AlertDescription>Error: {error.message}</AlertDescription></Alert>;
|
|
1255
1255
|
*
|
|
1256
1256
|
* return (
|
|
1257
|
-
*
|
|
1257
|
+
* <>
|
|
1258
1258
|
* {results['read:users'] && <UserList />}
|
|
1259
1259
|
* {results['create:users'] && <CreateUserButton />}
|
|
1260
1260
|
* {results['update:users'] && <EditUserButton />}
|
|
1261
|
-
*
|
|
1261
|
+
* </>
|
|
1262
1262
|
* );
|
|
1263
1263
|
* }
|
|
1264
1264
|
* ```
|
|
@@ -1289,14 +1289,14 @@ declare function useMultiplePermissions(userId: UUID, scope: Scope, permissions:
|
|
|
1289
1289
|
* appId
|
|
1290
1290
|
* );
|
|
1291
1291
|
*
|
|
1292
|
-
* if (isLoading) return
|
|
1293
|
-
* if (error) return <
|
|
1292
|
+
* if (isLoading) return null; // or use a loading component
|
|
1293
|
+
* if (error) return <Alert variant="destructive"><AlertDescription>Error: {error.message}</AlertDescription></Alert>;
|
|
1294
1294
|
*
|
|
1295
1295
|
* return (
|
|
1296
|
-
*
|
|
1296
|
+
* <>
|
|
1297
1297
|
* {permissions['read:users'] && <UserList />}
|
|
1298
1298
|
* {permissions['create:users'] && <CreateUserButton />}
|
|
1299
|
-
*
|
|
1299
|
+
* </>
|
|
1300
1300
|
* );
|
|
1301
1301
|
* }
|
|
1302
1302
|
* ```
|
|
@@ -1324,6 +1324,7 @@ declare function usePermissions(userId: UUID, organisationId: string | undefined
|
|
|
1324
1324
|
* @example
|
|
1325
1325
|
* ```tsx
|
|
1326
1326
|
* import { useRoleManagement } from '@jmruthers/pace-core/rbac';
|
|
1327
|
+
* import { Button } from '@jmruthers/pace-core';
|
|
1327
1328
|
*
|
|
1328
1329
|
* function UserRolesComponent() {
|
|
1329
1330
|
* const {
|
|
@@ -1361,10 +1362,10 @@ declare function usePermissions(userId: UUID, organisationId: string | undefined
|
|
|
1361
1362
|
* };
|
|
1362
1363
|
*
|
|
1363
1364
|
* return (
|
|
1364
|
-
*
|
|
1365
|
-
* <
|
|
1366
|
-
* <
|
|
1367
|
-
*
|
|
1365
|
+
* <>
|
|
1366
|
+
* <Button onClick={handleGrantGlobalRole}>Grant Super Admin</Button>
|
|
1367
|
+
* <Button onClick={handleGrantOrgRole}>Grant Org Admin</Button>
|
|
1368
|
+
* </>
|
|
1368
1369
|
* );
|
|
1369
1370
|
* }
|
|
1370
1371
|
* ```
|
|
@@ -1464,7 +1465,7 @@ declare function useRoleManagement(): {
|
|
|
1464
1465
|
* const supabase = useSecureSupabase();
|
|
1465
1466
|
*
|
|
1466
1467
|
* if (!supabase) {
|
|
1467
|
-
* return
|
|
1468
|
+
* return null; // or use a loading component
|
|
1468
1469
|
* }
|
|
1469
1470
|
*
|
|
1470
1471
|
* const fetchData = async () => {
|
|
@@ -1474,7 +1475,7 @@ declare function useRoleManagement(): {
|
|
|
1474
1475
|
* // Organisation context is automatically injected
|
|
1475
1476
|
* };
|
|
1476
1477
|
*
|
|
1477
|
-
* return
|
|
1478
|
+
* return <>...</>;
|
|
1478
1479
|
* }
|
|
1479
1480
|
* ```
|
|
1480
1481
|
*
|
|
@@ -1566,7 +1567,7 @@ declare function useRoleManagement(): {
|
|
|
1566
1567
|
* const supabase = useSecureSupabase();
|
|
1567
1568
|
*
|
|
1568
1569
|
* if (!supabase) {
|
|
1569
|
-
* return
|
|
1570
|
+
* return null; // or use a loading component
|
|
1570
1571
|
* }
|
|
1571
1572
|
*
|
|
1572
1573
|
* // Use supabase client - organisation context is automatically injected
|
|
@@ -1592,6 +1593,18 @@ declare function useSecureSupabase(baseClient?: SupabaseClient<Database> | null)
|
|
|
1592
1593
|
* These are optional utilities for server-side applications.
|
|
1593
1594
|
*/
|
|
1594
1595
|
|
|
1596
|
+
/**
|
|
1597
|
+
* Request interface for server handlers
|
|
1598
|
+
* Used by permission and access level guards
|
|
1599
|
+
*/
|
|
1600
|
+
interface ServerRequest {
|
|
1601
|
+
user?: {
|
|
1602
|
+
id: string;
|
|
1603
|
+
};
|
|
1604
|
+
organisationId?: string;
|
|
1605
|
+
eventId?: string;
|
|
1606
|
+
appId?: string;
|
|
1607
|
+
}
|
|
1595
1608
|
/**
|
|
1596
1609
|
* Permission Guard for Server Handlers
|
|
1597
1610
|
*
|
|
@@ -1612,10 +1625,10 @@ declare function useSecureSupabase(baseClient?: SupabaseClient<Database> | null)
|
|
|
1612
1625
|
* );
|
|
1613
1626
|
* ```
|
|
1614
1627
|
*/
|
|
1615
|
-
declare function withPermissionGuard<T extends
|
|
1628
|
+
declare function withPermissionGuard<T extends readonly [ServerRequest, ...unknown[]], R>(config: {
|
|
1616
1629
|
permission: Permission;
|
|
1617
1630
|
pageId?: UUID;
|
|
1618
|
-
}, handler: (...args: T) => Promise<
|
|
1631
|
+
}, handler: (...args: T) => Promise<R>): (...args: T) => Promise<R>;
|
|
1619
1632
|
/**
|
|
1620
1633
|
* Access Level Guard for Server Handlers
|
|
1621
1634
|
*
|
|
@@ -1636,7 +1649,7 @@ declare function withPermissionGuard<T extends any[]>(config: {
|
|
|
1636
1649
|
* );
|
|
1637
1650
|
* ```
|
|
1638
1651
|
*/
|
|
1639
|
-
declare function withAccessLevelGuard<T extends
|
|
1652
|
+
declare function withAccessLevelGuard<T extends readonly [ServerRequest, ...unknown[]], R>(minLevel: 'viewer' | 'participant' | 'planner' | 'admin' | 'super', handler: (...args: T) => Promise<R>): (...args: T) => Promise<R>;
|
|
1640
1653
|
/**
|
|
1641
1654
|
* Role Guard for Server Handlers
|
|
1642
1655
|
*
|
|
@@ -1662,12 +1675,12 @@ declare function withAccessLevelGuard<T extends any[]>(minLevel: 'viewer' | 'par
|
|
|
1662
1675
|
* );
|
|
1663
1676
|
* ```
|
|
1664
1677
|
*/
|
|
1665
|
-
declare function withRoleGuard<T extends
|
|
1678
|
+
declare function withRoleGuard<T extends readonly [ServerRequest, ...unknown[]], R>(config: {
|
|
1666
1679
|
globalRoles?: string[];
|
|
1667
1680
|
organisationRoles?: string[];
|
|
1668
1681
|
eventAppRoles?: string[];
|
|
1669
1682
|
requireAll?: boolean;
|
|
1670
|
-
}, handler: (...args: T) => Promise<
|
|
1683
|
+
}, handler: (...args: T) => Promise<R>): (...args: T) => Promise<R>;
|
|
1671
1684
|
/**
|
|
1672
1685
|
* Next.js Middleware for RBAC
|
|
1673
1686
|
*
|
|
@@ -1758,6 +1771,12 @@ declare function createRBACExpressMiddleware(config: {
|
|
|
1758
1771
|
* @param config - Optional configuration
|
|
1759
1772
|
*/
|
|
1760
1773
|
declare function setupRBAC(supabase: SupabaseClient<Database>, config?: Partial<RBACConfig>): void;
|
|
1774
|
+
/**
|
|
1775
|
+
* Check if RBAC system is initialized
|
|
1776
|
+
*
|
|
1777
|
+
* @returns True if RBAC is initialized
|
|
1778
|
+
*/
|
|
1779
|
+
declare function isRBACInitialized(): boolean;
|
|
1761
1780
|
/**
|
|
1762
1781
|
* Get user's access level in a scope
|
|
1763
1782
|
*
|
|
@@ -2035,179 +2054,4 @@ declare const ALL_PERMISSIONS: {
|
|
|
2035
2054
|
};
|
|
2036
2055
|
type AllPermissions = typeof ALL_PERMISSIONS;
|
|
2037
2056
|
|
|
2038
|
-
|
|
2039
|
-
* RBAC Setup Validator
|
|
2040
|
-
* @package @jmruthers/pace-core
|
|
2041
|
-
* @module RBAC/Compliance/SetupValidator
|
|
2042
|
-
* @since 1.0.0
|
|
2043
|
-
*
|
|
2044
|
-
* This module provides utilities to validate RBAC setup state.
|
|
2045
|
-
*/
|
|
2046
|
-
interface SetupIssue {
|
|
2047
|
-
type: 'not-initialized' | 'missing-config' | 'invalid-config' | 'missing-provider-context';
|
|
2048
|
-
message: string;
|
|
2049
|
-
recommendation: string;
|
|
2050
|
-
}
|
|
2051
|
-
interface ComplianceResult {
|
|
2052
|
-
isCompliant: boolean;
|
|
2053
|
-
issues: SetupIssue[];
|
|
2054
|
-
}
|
|
2055
|
-
/**
|
|
2056
|
-
* Check if RBAC system is initialized
|
|
2057
|
-
*
|
|
2058
|
-
* @returns true if RBAC is initialized, false otherwise
|
|
2059
|
-
*/
|
|
2060
|
-
declare function isRBACInitialized(): boolean;
|
|
2061
|
-
/**
|
|
2062
|
-
* Get setup issues
|
|
2063
|
-
*
|
|
2064
|
-
* @returns Array of setup issues
|
|
2065
|
-
*/
|
|
2066
|
-
declare function getSetupIssues(): SetupIssue[];
|
|
2067
|
-
/**
|
|
2068
|
-
* Validate RBAC setup
|
|
2069
|
-
*
|
|
2070
|
-
* @returns Compliance result with issues and recommendations
|
|
2071
|
-
*/
|
|
2072
|
-
declare function validateRBACSetup(): ComplianceResult;
|
|
2073
|
-
|
|
2074
|
-
/**
|
|
2075
|
-
* Pattern Detector for RBAC Compliance
|
|
2076
|
-
* @package @jmruthers/pace-core
|
|
2077
|
-
* @module RBAC/Compliance/PatternDetector
|
|
2078
|
-
* @since 1.0.0
|
|
2079
|
-
*
|
|
2080
|
-
* This module provides static and runtime pattern detection for RBAC violations.
|
|
2081
|
-
* It detects direct RPC calls, direct table queries, and other non-standard patterns.
|
|
2082
|
-
*/
|
|
2083
|
-
interface PatternViolation {
|
|
2084
|
-
type: 'direct-rpc-call' | 'direct-table-query' | 'bypass-pattern' | 'custom-component' | 'hardcoded-role-check' | 'custom-permission-utility' | 'ui-only-access-control' | 'permission-bypass-comment' | 'resource-permission-string-literal' | 'permission-wrapper-function';
|
|
2085
|
-
file?: string;
|
|
2086
|
-
line?: number;
|
|
2087
|
-
message: string;
|
|
2088
|
-
recommendation: string;
|
|
2089
|
-
}
|
|
2090
|
-
interface PatternDetectionResult {
|
|
2091
|
-
violations: PatternViolation[];
|
|
2092
|
-
isCompliant: boolean;
|
|
2093
|
-
summary: {
|
|
2094
|
-
directRpcCalls: number;
|
|
2095
|
-
directTableQueries: number;
|
|
2096
|
-
bypassPatterns: number;
|
|
2097
|
-
customComponents: number;
|
|
2098
|
-
hardcodedRoleChecks: number;
|
|
2099
|
-
customPermissionUtilities: number;
|
|
2100
|
-
uiOnlyAccessControl: number;
|
|
2101
|
-
permissionBypassComments: number;
|
|
2102
|
-
resourcePermissionStringLiterals: number;
|
|
2103
|
-
permissionWrapperFunctions: number;
|
|
2104
|
-
};
|
|
2105
|
-
}
|
|
2106
|
-
|
|
2107
|
-
/**
|
|
2108
|
-
* Runtime Compliance Checking
|
|
2109
|
-
* @package @jmruthers/pace-core
|
|
2110
|
-
* @module RBAC/Compliance/RuntimeCompliance
|
|
2111
|
-
* @since 1.0.0
|
|
2112
|
-
*
|
|
2113
|
-
* This module provides runtime compliance checking utilities.
|
|
2114
|
-
*/
|
|
2115
|
-
|
|
2116
|
-
interface RuntimeComplianceResult {
|
|
2117
|
-
setup: {
|
|
2118
|
-
isCompliant: boolean;
|
|
2119
|
-
issues: SetupIssue[];
|
|
2120
|
-
};
|
|
2121
|
-
warnings: string[];
|
|
2122
|
-
providerContext?: {
|
|
2123
|
-
available: boolean;
|
|
2124
|
-
message?: string;
|
|
2125
|
-
};
|
|
2126
|
-
patternDetection?: PatternDetectionResult;
|
|
2127
|
-
}
|
|
2128
|
-
/**
|
|
2129
|
-
* Check runtime compliance
|
|
2130
|
-
*
|
|
2131
|
-
* This function checks if the RBAC system is properly set up and logs warnings
|
|
2132
|
-
* to the console if issues are found. This is intended for development-time
|
|
2133
|
-
* validation only.
|
|
2134
|
-
*
|
|
2135
|
-
* @returns Runtime compliance result
|
|
2136
|
-
*/
|
|
2137
|
-
declare function checkRuntimeCompliance(): RuntimeComplianceResult;
|
|
2138
|
-
/**
|
|
2139
|
-
* Validate and warn about RBAC setup issues
|
|
2140
|
-
*
|
|
2141
|
-
* This is a convenience function that checks compliance and logs warnings.
|
|
2142
|
-
* Call this in development mode to get early warnings about setup issues.
|
|
2143
|
-
*/
|
|
2144
|
-
declare function validateAndWarn(): void;
|
|
2145
|
-
|
|
2146
|
-
/**
|
|
2147
|
-
* Database Configuration Validator
|
|
2148
|
-
* @package @jmruthers/pace-core
|
|
2149
|
-
* @module RBAC/Compliance/DatabaseValidator
|
|
2150
|
-
* @since 1.0.0
|
|
2151
|
-
*
|
|
2152
|
-
* This module provides utilities to validate database configuration for RBAC.
|
|
2153
|
-
*/
|
|
2154
|
-
|
|
2155
|
-
interface DatabaseIssue {
|
|
2156
|
-
type: 'app-not-configured' | 'app-name-mismatch' | 'pages-not-configured' | 'permissions-not-configured' | 'rls-not-active' | 'roles-not-configured';
|
|
2157
|
-
message: string;
|
|
2158
|
-
recommendation: string;
|
|
2159
|
-
}
|
|
2160
|
-
interface DatabaseComplianceResult {
|
|
2161
|
-
appConfigured: boolean;
|
|
2162
|
-
pagesConfigured: boolean;
|
|
2163
|
-
permissionsConfigured: boolean;
|
|
2164
|
-
rlsPoliciesActive: boolean;
|
|
2165
|
-
rolesConfigured: boolean;
|
|
2166
|
-
issues: DatabaseIssue[];
|
|
2167
|
-
recommendations: string[];
|
|
2168
|
-
}
|
|
2169
|
-
/**
|
|
2170
|
-
* Validate database configuration
|
|
2171
|
-
*
|
|
2172
|
-
* @param supabase - Supabase client
|
|
2173
|
-
* @param appName - Application name to validate
|
|
2174
|
-
* @returns Database compliance result
|
|
2175
|
-
*/
|
|
2176
|
-
declare function validateDatabaseConfiguration(supabase: SupabaseClient<Database>, appName: string): Promise<DatabaseComplianceResult>;
|
|
2177
|
-
|
|
2178
|
-
/**
|
|
2179
|
-
* Quick Fix Suggestions for RBAC/Auth Compliance
|
|
2180
|
-
* @package @jmruthers/pace-core
|
|
2181
|
-
* @module RBAC/Compliance/QuickFixSuggestions
|
|
2182
|
-
* @since 1.0.0
|
|
2183
|
-
*
|
|
2184
|
-
* This module provides auto-suggest fixes for common RBAC/auth compliance issues.
|
|
2185
|
-
*/
|
|
2186
|
-
interface QuickFix {
|
|
2187
|
-
issue: string;
|
|
2188
|
-
suggestion: string;
|
|
2189
|
-
codeExample?: string;
|
|
2190
|
-
migrationSteps?: string[];
|
|
2191
|
-
}
|
|
2192
|
-
/**
|
|
2193
|
-
* Get quick fix suggestions for custom auth code
|
|
2194
|
-
*/
|
|
2195
|
-
declare function getCustomAuthCodeFixes(customCodeName: string, type: 'hook' | 'component' | 'util'): QuickFix;
|
|
2196
|
-
/**
|
|
2197
|
-
* Get quick fix suggestions for duplicate Supabase config
|
|
2198
|
-
*/
|
|
2199
|
-
declare function getDuplicateConfigFixes(): QuickFix;
|
|
2200
|
-
/**
|
|
2201
|
-
* Get quick fix suggestions for unprotected pages
|
|
2202
|
-
*/
|
|
2203
|
-
declare function getUnprotectedPageFixes(): QuickFix;
|
|
2204
|
-
/**
|
|
2205
|
-
* Get quick fix suggestions for direct Supabase auth usage
|
|
2206
|
-
*/
|
|
2207
|
-
declare function getDirectSupabaseAuthFixes(): QuickFix;
|
|
2208
|
-
/**
|
|
2209
|
-
* Get all quick fix suggestions for a compliance issue
|
|
2210
|
-
*/
|
|
2211
|
-
declare function getQuickFixes(issueType: string, details?: Record<string, any>): QuickFix[];
|
|
2212
|
-
|
|
2213
|
-
export { ALL_PERMISSIONS, AccessDenied, type AccessDeniedProps, AccessLevel, type AllPermissions, CACHE_PATTERNS, type ComplianceResult, type DatabaseComplianceResult, type DatabaseIssue, EVENT_APP_PERMISSIONS, type EventAppRoleData, GLOBAL_PERMISSIONS, type GrantEventAppRoleParams, type LogLevel, NavigationGuard, type NavigationGuardProps, ORGANISATION_PERMISSIONS, PAGE_PERMISSIONS, PagePermissionGuard, type PagePermissionGuardProps, Permission, PermissionCheck, PermissionMap, type QuickFix, RBACAuditManager, RBACCache, type RBACConfig, RBACEngine, type RBACLogger, type RBACPerformanceMetrics, type ResourcePermissions, type RevokeEventAppRoleParams, type RoleManagementResult, type RuntimeComplianceResult, SECURE_CLIENT_SYMBOL, Scope, SecureSupabaseClient, type SetupIssue, UUID, type UseResolvedScopeOptions, type UseResolvedScopeReturn, type UseResourcePermissionsOptions, checkRuntimeCompliance, clearInFlightRequests, createAuditManager, createRBACConfig, createRBACEngine, createRBACExpressMiddleware, createRBACMiddleware, createSecureClient, disablePerformanceMonitoring, emitAuditEvent, enablePerformanceMonitoring, fromSupabaseClient, getAccessLevel, getCustomAuthCodeFixes, getDirectSupabaseAuthFixes, getDuplicateConfigFixes, getGlobalAuditManager, getInFlightRequestCount, getPerformanceMetrics, getPerformanceSummary, getPermissionMap, getQuickFixes, getRBACConfig, getRBACLogger, getRoleContext, getSetupIssues, getUnprotectedPageFixes, hasAllPermissions, hasAnyPermission, isDebugMode, isDevelopmentMode, isPerformanceMonitoringEnabled, isPermitted, isPermittedCached, isRBACInitialized, isSecureClient, isValidPermission, rbacCache, recordAuditEvent, recordPermissionCheck, resetPerformanceMetrics, resolveAppContext, setGlobalAuditManager, setupRBAC, useAccessLevel, useCan, useMultiplePermissions, usePermissions, useRBAC, useResolvedScope, useResourcePermissions, useRoleManagement, useSecureSupabase, validateAndWarn, validateDatabaseConfiguration, validateRBACSetup, warnIfInsecureClient, withAccessLevelGuard, withPermissionGuard, withRoleGuard };
|
|
2057
|
+
export { ALL_PERMISSIONS, AccessDenied, type AccessDeniedProps, AccessLevel, type AllPermissions, CACHE_PATTERNS, EVENT_APP_PERMISSIONS, type EventAppRoleData, GLOBAL_PERMISSIONS, type GrantEventAppRoleParams, type LogLevel, NavigationGuard, type NavigationGuardProps, ORGANISATION_PERMISSIONS, PAGE_PERMISSIONS, PagePermissionGuard, type PagePermissionGuardProps, Permission, PermissionCheck, PermissionMap, RBACAuditManager, RBACCache, type RBACConfig, RBACEngine, type RBACLogger, type RBACPerformanceMetrics, type ResourcePermissions, type RevokeEventAppRoleParams, type RoleManagementResult, SECURE_CLIENT_SYMBOL, Scope, SecureSupabaseClient, UUID, type UseResolvedScopeOptions, type UseResolvedScopeReturn, type UseResourcePermissionsOptions, clearInFlightRequests, createAuditManager, createRBACConfig, createRBACEngine, createRBACExpressMiddleware, createRBACMiddleware, createSecureClient, disablePerformanceMonitoring, emitAuditEvent, enablePerformanceMonitoring, fromSupabaseClient, getAccessLevel, getGlobalAuditManager, getInFlightRequestCount, getPerformanceMetrics, getPerformanceSummary, getPermissionMap, getRBACConfig, getRBACLogger, getRoleContext, hasAllPermissions, hasAnyPermission, isDebugMode, isDevelopmentMode, isPerformanceMonitoringEnabled, isPermitted, isPermittedCached, isRBACInitialized, isSecureClient, isValidPermission, rbacCache, recordAuditEvent, recordPermissionCheck, resetPerformanceMetrics, resolveAppContext, setGlobalAuditManager, setupRBAC, useAccessLevel, useCan, useMultiplePermissions, usePermissions, useRBAC, useResolvedScope, useResourcePermissions, useRoleManagement, useSecureSupabase, warnIfInsecureClient, withAccessLevelGuard, withPermissionGuard, withRoleGuard };
|