@jmruthers/pace-core 0.5.75 → 0.5.77
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 +8 -0
- package/dist/{RBACService-C4udt_Zp.d.ts → AuthService-SBHZQtCH.d.ts} +5 -118
- package/dist/{DataTable-ntgmhO2W.d.ts → DataTable-BE0OXZKQ.d.ts} +9 -2
- package/dist/DataTable-QCNCV6IK.js +157 -0
- package/dist/{PublicLoadingSpinner-BKNBT6b6.d.ts → PublicLoadingSpinner-CnUaz0vG.d.ts} +33 -19
- package/dist/{UnifiedAuthProvider-Bj6YCf7c.d.ts → UnifiedAuthProvider-B391Aqum.d.ts} +42 -45
- package/dist/{UnifiedAuthProvider-3NKDOSOK.js → UnifiedAuthProvider-Z2FWNW7O.js} +4 -5
- package/dist/{api-DDMUKIUD.js → api-KG4A2X7P.js} +9 -3
- package/dist/{audit-6TOCAMKO.js → audit-65VNHEV2.js} +2 -2
- package/dist/{chunk-2DFZ432F.js → chunk-7PX43UYN.js} +197 -629
- package/dist/chunk-7PX43UYN.js.map +1 -0
- package/dist/{chunk-DAXLNIDY.js → chunk-C4RQ3GQA.js} +108 -32
- package/dist/chunk-C4RQ3GQA.js.map +1 -0
- package/dist/{chunk-LW7MMEAQ.js → chunk-CRKP3HXI.js} +2 -2
- package/dist/{chunk-XLZ7U46Z.js → chunk-CVMVPYAL.js} +9 -60
- package/dist/chunk-CVMVPYAL.js.map +1 -0
- package/dist/{chunk-CY3AHGO4.js → chunk-DDPG7FCX.js} +3395 -3254
- package/dist/chunk-DDPG7FCX.js.map +1 -0
- package/dist/{chunk-URUTVZ7N.js → chunk-DVHZ5L55.js} +2 -2
- package/dist/{chunk-5BSLGBYI.js → chunk-JCQZ6LA7.js} +2 -8
- package/dist/{chunk-5BSLGBYI.js.map → chunk-JCQZ6LA7.js.map} +1 -1
- package/dist/{chunk-WN6XJWOS.js → chunk-JDQ7T3QB.js} +256 -743
- package/dist/chunk-JDQ7T3QB.js.map +1 -0
- package/dist/{chunk-ZTT2AXMX.js → chunk-LMYTEMUH.js} +153 -132
- package/dist/chunk-LMYTEMUH.js.map +1 -0
- package/dist/{chunk-33PHABLB.js → chunk-NKT2DLZI.js} +13 -130
- package/dist/chunk-NKT2DLZI.js.map +1 -0
- package/dist/chunk-PUKTJMRT.js +732 -0
- package/dist/chunk-PUKTJMRT.js.map +1 -0
- package/dist/{chunk-B2WTCLCV.js → chunk-Q7APDV6H.js} +18 -8
- package/dist/chunk-Q7APDV6H.js.map +1 -0
- package/dist/{chunk-FGMFQSHX.js → chunk-S63MFSY6.js} +500 -551
- package/dist/chunk-S63MFSY6.js.map +1 -0
- package/dist/{chunk-NTNILOBC.js → chunk-TLD5BEU6.js} +4 -4
- package/dist/chunk-WUXCWRL6.js +20 -0
- package/dist/chunk-WUXCWRL6.js.map +1 -0
- package/dist/{chunk-YNUBMSMV.js → chunk-YCKPEMJA.js} +186 -263
- package/dist/chunk-YCKPEMJA.js.map +1 -0
- package/dist/{chunk-A4FUBC7B.js → chunk-Z3T6RK3K.js} +2 -4
- package/dist/{chunk-A4FUBC7B.js.map → chunk-Z3T6RK3K.js.map} +1 -1
- package/dist/components.d.ts +6 -6
- package/dist/components.js +17 -20
- package/dist/components.js.map +1 -1
- package/dist/{database-C3Szpi5J.d.ts → database-BXAfr2Y_.d.ts} +18 -0
- package/dist/hooks.d.ts +21 -44
- package/dist/hooks.js +12 -13
- package/dist/hooks.js.map +1 -1
- package/dist/index.d.ts +19 -27
- package/dist/index.js +27 -33
- package/dist/index.js.map +1 -1
- package/dist/{organisation-BtshODVF.d.ts → organisation-D6qRDtbF.d.ts} +1 -1
- package/dist/providers.d.ts +7 -21
- package/dist/providers.js +3 -10
- package/dist/rbac/index.d.ts +118 -215
- package/dist/rbac/index.js +18 -18
- package/dist/{types-CGX9Vyf5.d.ts → types-BDg1mAGG.d.ts} +36 -6
- package/dist/types.d.ts +3 -3
- package/dist/types.js +61 -18
- package/dist/types.js.map +1 -1
- package/dist/{unified-CM7T0aTK.d.ts → unified-DQ4VcT7H.d.ts} +1 -1
- package/dist/{usePublicRouteParams-B-CumWRc.d.ts → usePublicRouteParams-BlgwXweB.d.ts} +3 -3
- package/dist/utils.d.ts +2 -2
- package/dist/utils.js +52 -9
- package/dist/utils.js.map +1 -1
- package/docs/CONTENT_AUDIT_REPORT.md +253 -0
- package/docs/DOCUMENTATION_AUDIT.md +172 -0
- package/docs/README.md +142 -147
- package/docs/STYLE_GUIDE.md +37 -0
- package/docs/api/classes/ColumnFactory.md +17 -17
- package/docs/api/classes/ErrorBoundary.md +1 -1
- package/docs/api/classes/InvalidScopeError.md +4 -4
- package/docs/api/classes/MissingUserContextError.md +4 -4
- package/docs/api/classes/OrganisationContextRequiredError.md +4 -4
- package/docs/api/classes/PermissionDeniedError.md +5 -5
- package/docs/api/classes/PublicErrorBoundary.md +1 -1
- package/docs/api/classes/RBACAuditManager.md +8 -8
- package/docs/api/classes/RBACCache.md +35 -5
- package/docs/api/classes/RBACEngine.md +49 -20
- package/docs/api/classes/RBACError.md +4 -4
- package/docs/api/classes/RBACNotInitializedError.md +4 -4
- package/docs/api/classes/SecureSupabaseClient.md +1 -1
- package/docs/api/classes/StorageUtils.md +1 -1
- package/docs/api/enums/FileCategory.md +1 -1
- package/docs/api/interfaces/AggregateConfig.md +4 -4
- package/docs/api/interfaces/ButtonProps.md +1 -1
- package/docs/api/interfaces/CardProps.md +1 -1
- package/docs/api/interfaces/ColorPalette.md +1 -1
- package/docs/api/interfaces/ColorShade.md +1 -1
- package/docs/api/interfaces/DataAccessRecord.md +1 -1
- package/docs/api/interfaces/DataRecord.md +11 -0
- package/docs/api/interfaces/DataTableAction.md +65 -29
- package/docs/api/interfaces/DataTableColumn.md +36 -23
- package/docs/api/interfaces/DataTableProps.md +80 -38
- package/docs/api/interfaces/DataTableToolbarButton.md +7 -7
- package/docs/api/interfaces/EmptyStateConfig.md +5 -5
- package/docs/api/interfaces/EnhancedNavigationMenuProps.md +1 -1
- package/docs/api/interfaces/EventLogoProps.md +1 -1
- package/docs/api/interfaces/FileDisplayProps.md +1 -1
- package/docs/api/interfaces/FileMetadata.md +1 -1
- package/docs/api/interfaces/FileReference.md +1 -1
- package/docs/api/interfaces/FileSizeLimits.md +1 -1
- package/docs/api/interfaces/FileUploadOptions.md +1 -1
- package/docs/api/interfaces/FileUploadProps.md +1 -1
- package/docs/api/interfaces/FooterProps.md +1 -1
- package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
- package/docs/api/interfaces/InputProps.md +1 -1
- package/docs/api/interfaces/LabelProps.md +1 -1
- package/docs/api/interfaces/LoginFormProps.md +1 -1
- package/docs/api/interfaces/NavigationAccessRecord.md +11 -11
- package/docs/api/interfaces/NavigationContextType.md +9 -9
- package/docs/api/interfaces/NavigationGuardProps.md +1 -1
- package/docs/api/interfaces/NavigationItem.md +1 -1
- package/docs/api/interfaces/NavigationMenuProps.md +1 -1
- package/docs/api/interfaces/NavigationProviderProps.md +7 -7
- package/docs/api/interfaces/Organisation.md +1 -1
- package/docs/api/interfaces/OrganisationContextType.md +1 -1
- package/docs/api/interfaces/OrganisationMembership.md +1 -1
- package/docs/api/interfaces/OrganisationProviderProps.md +1 -1
- package/docs/api/interfaces/OrganisationSecurityError.md +1 -1
- package/docs/api/interfaces/PaceAppLayoutProps.md +1 -1
- package/docs/api/interfaces/PaceLoginPageProps.md +16 -3
- package/docs/api/interfaces/PageAccessRecord.md +1 -1
- package/docs/api/interfaces/PagePermissionContextType.md +1 -1
- package/docs/api/interfaces/PagePermissionGuardProps.md +2 -2
- package/docs/api/interfaces/PagePermissionProviderProps.md +1 -1
- package/docs/api/interfaces/PaletteData.md +1 -1
- package/docs/api/interfaces/PermissionEnforcerProps.md +4 -4
- package/docs/api/interfaces/PublicErrorBoundaryProps.md +1 -1
- package/docs/api/interfaces/PublicErrorBoundaryState.md +1 -1
- package/docs/api/interfaces/PublicLoadingSpinnerProps.md +1 -1
- package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
- package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
- package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
- package/docs/api/interfaces/RBACConfig.md +1 -1
- package/docs/api/interfaces/RBACLogger.md +1 -1
- package/docs/api/interfaces/RoleBasedRouterContextType.md +1 -1
- package/docs/api/interfaces/RoleBasedRouterProps.md +1 -1
- package/docs/api/interfaces/RouteAccessRecord.md +2 -2
- package/docs/api/interfaces/RouteConfig.md +2 -2
- package/docs/api/interfaces/SecureDataContextType.md +1 -1
- package/docs/api/interfaces/SecureDataProviderProps.md +1 -1
- package/docs/api/interfaces/StorageConfig.md +1 -1
- package/docs/api/interfaces/StorageFileInfo.md +1 -1
- package/docs/api/interfaces/StorageFileMetadata.md +1 -1
- package/docs/api/interfaces/StorageListOptions.md +1 -1
- package/docs/api/interfaces/StorageListResult.md +1 -1
- package/docs/api/interfaces/StorageUploadOptions.md +1 -1
- package/docs/api/interfaces/StorageUploadResult.md +1 -1
- package/docs/api/interfaces/StorageUrlOptions.md +1 -1
- package/docs/api/interfaces/StyleImport.md +1 -1
- package/docs/api/interfaces/SwitchProps.md +1 -1
- package/docs/api/interfaces/ToastActionElement.md +1 -1
- package/docs/api/interfaces/ToastProps.md +1 -1
- package/docs/api/interfaces/UnifiedAuthContextType.md +94 -521
- package/docs/api/interfaces/UnifiedAuthProviderProps.md +16 -16
- package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
- package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
- package/docs/api/interfaces/UsePublicEventLogoOptions.md +1 -1
- package/docs/api/interfaces/UsePublicEventLogoReturn.md +1 -1
- package/docs/api/interfaces/UsePublicEventOptions.md +1 -1
- package/docs/api/interfaces/UsePublicEventReturn.md +1 -1
- package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
- package/docs/api/interfaces/UseResolvedScopeOptions.md +47 -0
- package/docs/api/interfaces/UseResolvedScopeReturn.md +47 -0
- package/docs/api/interfaces/UserEventAccess.md +11 -11
- package/docs/api/interfaces/UserMenuProps.md +1 -1
- package/docs/api/interfaces/UserProfile.md +1 -1
- package/docs/api/modules.md +303 -275
- package/docs/api-reference/components.md +193 -0
- package/docs/api-reference/hooks.md +265 -0
- package/docs/api-reference/providers.md +32 -7
- package/docs/api-reference/types.md +6 -0
- package/docs/api-reference/utilities.md +207 -0
- package/docs/architecture/README.md +6 -0
- package/docs/{database-schema-requirements.md → architecture/database-schema-requirements.md} +6 -0
- package/docs/architecture/rbac-security-architecture.md +258 -0
- package/docs/architecture/services.md +9 -1
- package/docs/best-practices/README.md +26 -0
- package/docs/best-practices/accessibility.md +572 -0
- package/docs/{common-patterns.md → best-practices/common-patterns.md} +6 -0
- package/docs/best-practices/deployment.md +6 -0
- package/docs/best-practices/performance.md +475 -2
- package/docs/best-practices/security.md +6 -0
- package/docs/best-practices/testing.md +6 -0
- package/docs/core-concepts/authentication.md +21 -7
- package/docs/core-concepts/events.md +6 -0
- package/docs/core-concepts/organisations.md +6 -0
- package/docs/core-concepts/permissions.md +6 -0
- package/docs/core-concepts/rbac-system.md +6 -0
- package/docs/documentation-index.md +121 -182
- package/docs/{consuming-app-vite-config.md → getting-started/consuming-app-vite-config.md} +6 -0
- package/docs/getting-started/documentation-index.md +40 -0
- package/docs/getting-started/examples/README.md +878 -35
- package/docs/{faq.md → getting-started/faq.md} +7 -1
- package/docs/getting-started/installation-guide.md +6 -0
- package/docs/{quick-reference.md → getting-started/quick-reference.md} +6 -0
- package/docs/implementation-guides/app-layout.md +6 -0
- package/docs/implementation-guides/authentication.md +1021 -0
- package/docs/implementation-guides/component-styling.md +416 -0
- package/docs/implementation-guides/data-tables.md +1264 -2076
- package/docs/implementation-guides/dynamic-colors.md +6 -0
- package/docs/implementation-guides/event-theming-summary.md +6 -0
- package/docs/{file-reference-system.md → implementation-guides/file-reference-system.md} +6 -0
- package/docs/implementation-guides/file-upload-storage.md +6 -0
- package/docs/implementation-guides/forms.md +6 -0
- package/docs/implementation-guides/inactivity-tracking.md +6 -0
- package/docs/implementation-guides/navigation.md +6 -0
- package/docs/implementation-guides/organisation-security.md +6 -0
- package/docs/implementation-guides/permission-enforcement.md +6 -0
- package/docs/implementation-guides/public-pages-advanced.md +6 -0
- package/docs/implementation-guides/public-pages.md +6 -0
- package/docs/migration/MIGRATION_GUIDE.md +827 -351
- package/docs/migration/README.md +7 -1
- package/docs/migration/organisation-context-timing-fix.md +6 -0
- package/docs/migration/rbac-migration.md +44 -1
- package/docs/migration/service-architecture.md +6 -0
- package/docs/migration/v0.4.15-tailwind-scanning.md +6 -0
- package/docs/migration/v0.4.16-css-first-approach.md +6 -0
- package/docs/migration/v0.4.17-source-path-fix.md +6 -0
- package/docs/rbac/README-rbac-rls-integration.md +6 -0
- package/docs/rbac/README.md +6 -0
- package/docs/rbac/advanced-patterns.md +6 -0
- package/docs/rbac/api-reference.md +7 -1
- package/docs/rbac/breaking-changes-v3.md +222 -0
- package/docs/rbac/examples/rbac-rls-integration-example.md +6 -0
- package/docs/rbac/examples.md +6 -0
- package/docs/rbac/getting-started.md +6 -0
- package/docs/rbac/migration-guide.md +260 -0
- package/docs/rbac/quick-start.md +6 -0
- package/docs/rbac/rbac-rls-integration.md +6 -0
- package/docs/rbac/super-admin-guide.md +6 -0
- package/docs/rbac/troubleshooting.md +6 -0
- package/docs/security/README.md +6 -0
- package/docs/security/checklist.md +6 -0
- package/docs/styles/README.md +7 -1
- package/docs/{usage.md → styles/usage.md} +6 -0
- package/docs/testing/README.md +6 -0
- package/docs/{visual-testing.md → testing/visual-testing.md} +6 -0
- package/docs/troubleshooting/README.md +387 -5
- package/docs/troubleshooting/cake-page-permission-guard-issue-summary.md +6 -0
- package/docs/troubleshooting/common-issues.md +6 -0
- package/docs/troubleshooting/database-view-compatibility.md +6 -0
- package/docs/troubleshooting/organisation-context-setup.md +6 -0
- package/docs/troubleshooting/react-hooks-issue-analysis.md +6 -0
- package/docs/troubleshooting/styling-issues.md +6 -0
- package/docs/troubleshooting/tailwind-content-scanning.md +6 -0
- package/package.json +1 -1
- package/src/__tests__/TEST_GUIDE_CURSOR.md +290 -0
- package/src/__tests__/helpers/__tests__/test-providers.test.tsx +2 -1
- package/src/__tests__/helpers/supabaseMock.ts +48 -2
- package/src/__tests__/helpers/test-providers.tsx +3 -53
- package/src/components/DataTable/DataTable.test.tsx +319 -0
- package/src/components/DataTable/DataTable.tsx +32 -11
- package/src/components/DataTable/__tests__/{DataTable.comprehensive.test.tsx → DataTable.comprehensive.test.tsx.skip} +6 -4
- package/src/components/DataTable/__tests__/DataTable.default-state.test.tsx +17 -6
- package/src/components/DataTable/__tests__/{DataTable.test.tsx → DataTable.test.tsx.skip} +6 -4
- package/src/components/DataTable/__tests__/DataTableCore.test.tsx +96 -10
- package/src/components/DataTable/__tests__/a11y.basic.test.tsx +601 -0
- package/src/components/DataTable/__tests__/keyboard.test.tsx +615 -0
- package/src/components/DataTable/__tests__/pagination.modes.test.tsx +639 -0
- package/src/components/DataTable/__tests__/ssr.strict-mode.test.tsx.skip +330 -0
- package/src/components/DataTable/components/AccessDeniedPage.tsx +2 -2
- package/src/components/DataTable/components/ActionButtons.tsx +88 -104
- package/src/components/DataTable/components/DataTableCore.tsx +442 -665
- package/src/components/DataTable/components/DataTableErrorBoundary.tsx +4 -2
- package/src/components/DataTable/components/DataTableModals.tsx +22 -1
- package/src/components/DataTable/components/EditableRow.tsx +69 -84
- package/src/components/DataTable/components/EmptyState.tsx +5 -1
- package/src/components/DataTable/components/ImportModal.tsx +65 -36
- package/src/components/DataTable/components/PaginationControls.tsx +40 -100
- package/src/components/DataTable/components/UnifiedTableBody.tsx +222 -278
- package/src/components/DataTable/components/index.ts +1 -2
- package/src/components/DataTable/context/DataTableContext.tsx +1 -1
- package/src/components/DataTable/context/__tests__/DataTableContext.test.tsx +208 -275
- package/src/components/DataTable/core/ColumnFactory.ts +5 -0
- package/src/components/DataTable/core/index.ts +1 -8
- package/src/components/DataTable/examples/HierarchicalActionsExample.tsx +12 -10
- package/src/components/DataTable/examples/HierarchicalExample.tsx +1 -1
- package/src/components/DataTable/examples/InitialPageSizeExample.tsx +1 -0
- package/src/components/DataTable/examples/PerformanceExample.tsx +1 -0
- package/src/components/DataTable/hooks/__tests__/useColumnOrderPersistence.test.ts +521 -0
- package/src/components/DataTable/hooks/__tests__/useColumnReordering.test.ts +570 -0
- package/src/components/DataTable/hooks/__tests__/useColumnVisibilityPersistence.test.ts +167 -0
- package/src/components/DataTable/hooks/__tests__/useHierarchicalState.test.ts +214 -0
- package/src/components/DataTable/hooks/__tests__/useTableColumns.test.ts +224 -0
- package/src/components/DataTable/hooks/index.ts +13 -0
- package/src/components/DataTable/hooks/useColumnOrderPersistence.ts +32 -15
- package/src/components/DataTable/hooks/useColumnReordering.ts +1 -0
- package/src/components/DataTable/hooks/useColumnVisibilityPersistence.ts +102 -0
- package/src/components/DataTable/hooks/useDataTableConfiguration.ts +89 -0
- package/src/components/DataTable/hooks/useDataTableDataPipeline.ts +117 -0
- package/src/components/DataTable/hooks/useDataTablePermissions.ts +193 -0
- package/src/components/DataTable/hooks/useDataTableState.ts +51 -17
- package/src/components/DataTable/hooks/useEffectiveColumnOrder.ts +33 -0
- package/src/components/DataTable/hooks/useHierarchicalState.ts +41 -9
- package/src/components/DataTable/hooks/useKeyboardNavigation.ts +447 -0
- package/src/components/DataTable/hooks/useServerSideDataEffect.ts +94 -0
- package/src/components/DataTable/hooks/useTableColumns.ts +156 -0
- package/src/components/DataTable/hooks/useTableHandlers.ts +174 -0
- package/src/components/DataTable/index.ts +13 -12
- package/src/components/DataTable/types.ts +129 -9
- package/src/components/DataTable/utils/__tests__/COVERAGE_NOTE.md +89 -0
- package/src/components/DataTable/utils/__tests__/exportUtils.test.ts +162 -28
- package/src/components/DataTable/utils/__tests__/flexibleImport.test.ts +573 -0
- package/src/components/DataTable/utils/__tests__/hierarchicalSorting.test.ts +247 -0
- package/src/components/DataTable/utils/__tests__/hierarchicalUtils.test.ts +8 -6
- package/src/components/DataTable/utils/__tests__/performanceUtils.test.ts +466 -0
- package/src/components/DataTable/utils/__tests__/rowUtils.test.ts +251 -0
- package/src/components/DataTable/utils/a11yUtils.ts +244 -0
- package/src/components/DataTable/utils/debugTools.ts +47 -21
- package/src/components/DataTable/utils/errorHandling.ts +52 -460
- package/src/components/DataTable/utils/exportUtils.ts +157 -28
- package/src/components/DataTable/utils/flexibleImport.ts +202 -32
- package/src/components/DataTable/utils/hierarchicalSorting.ts +50 -3
- package/src/components/DataTable/utils/hierarchicalUtils.ts +167 -34
- package/src/components/DataTable/utils/index.ts +7 -0
- package/src/components/DataTable/utils/paginationUtils.ts +350 -0
- package/src/components/DataTable/utils/rowUtils.ts +69 -0
- package/src/components/EventSelector/EventSelector.test.tsx +672 -0
- package/src/components/Label/__tests__/Label.test.tsx +434 -0
- package/src/components/NavigationMenu/NavigationMenu.test.tsx +19 -24
- package/src/components/NavigationMenu/NavigationMenu.tsx +19 -8
- package/src/components/PaceAppLayout/__tests__/PaceAppLayout.security.test.tsx +1 -23
- package/src/components/PaceLoginPage/PaceLoginPage.test.tsx +56 -6
- package/src/components/PaceLoginPage/PaceLoginPage.tsx +137 -13
- package/src/components/PublicLayout/__tests__/PublicPageContextChecker.test.tsx +190 -0
- package/src/components/PublicLayout/__tests__/PublicPageDebugger.test.tsx +185 -0
- package/src/components/PublicLayout/__tests__/PublicPageHeader.test.tsx +1 -1
- package/src/components/PublicLayout/__tests__/PublicPageProvider.test.tsx +313 -0
- package/src/components/Select/Select.test.tsx +143 -120
- package/src/components/Select/Select.tsx +48 -212
- package/src/components/Select/hooks.ts +36 -1
- package/src/components/Select/index.ts +2 -1
- package/src/components/examples/PermissionExample.tsx +173 -0
- package/src/examples/CorrectPublicPageImplementation.tsx +301 -0
- package/src/examples/PublicEventPage.tsx +274 -0
- package/src/examples/PublicPageApp.tsx +308 -0
- package/src/examples/PublicPageUsageExample.tsx +216 -0
- package/src/hooks/__tests__/useOrganisationPermissions.unit.test.tsx +12 -1
- package/src/hooks/__tests__/useOrganisationSecurity.unit.test.tsx +129 -17
- package/src/hooks/__tests__/useRBAC.unit.test.ts +151 -846
- package/src/hooks/useOrganisationPermissions.test.ts +42 -18
- package/src/hooks/useOrganisationPermissions.ts +12 -6
- package/src/hooks/useOrganisationSecurity.test.ts +138 -85
- package/src/hooks/useOrganisationSecurity.ts +41 -10
- package/src/hooks/useSecureDataAccess.test.ts +32 -29
- package/src/index.ts +0 -1
- package/src/providers/AuthProvider.simplified.tsx +880 -0
- package/src/providers/UnifiedAuthProvider.test.simple.tsx +8 -8
- package/src/providers/__tests__/ProviderLifecycle.test.tsx +341 -0
- package/src/providers/__tests__/UnifiedAuthProvider.test.tsx +29 -19
- package/src/providers/index.ts +0 -1
- package/src/providers/services/EventServiceProvider.tsx +19 -15
- package/src/providers/services/InactivityServiceProvider.tsx +19 -15
- package/src/providers/services/OrganisationServiceProvider.tsx +19 -15
- package/src/providers/services/UnifiedAuthProvider.tsx +156 -127
- package/src/providers/services/__tests__/AuthServiceProvider.integration.test.tsx +1 -1
- package/src/providers/services/__tests__/UnifiedAuthProvider.integration.test.tsx +3 -3
- package/src/rbac/README.md +1 -1
- package/src/rbac/__tests__/adapters.comprehensive.test.tsx +25 -27
- package/src/rbac/__tests__/auth-rbac-security.integration.test.tsx +313 -0
- package/src/rbac/__tests__/engine.comprehensive.test.ts +114 -348
- package/src/rbac/__tests__/rbac-engine-core-logic.test.ts +28 -110
- package/src/rbac/__tests__/rbac-engine-simplified.test.ts +33 -85
- package/src/rbac/__tests__/scenarios.user-role.test.tsx +2 -2
- package/src/rbac/adapters.tsx +26 -69
- package/src/rbac/api.test.ts +90 -27
- package/src/rbac/api.ts +61 -10
- package/src/rbac/audit.test.ts +33 -38
- package/src/rbac/audit.ts +21 -6
- package/src/rbac/cache.ts +33 -1
- package/src/rbac/components/NavigationGuard.tsx +11 -11
- package/src/rbac/components/NavigationProvider.test.tsx +11 -5
- package/src/rbac/components/NavigationProvider.tsx +37 -13
- package/src/rbac/components/PagePermissionGuard.tsx +111 -50
- package/src/rbac/components/PagePermissionProvider.tsx +5 -5
- package/src/rbac/components/PermissionEnforcer.tsx +11 -11
- package/src/rbac/components/RoleBasedRouter.tsx +5 -5
- package/src/rbac/components/SecureDataProvider.tsx +5 -5
- package/src/rbac/components/__tests__/NavigationGuard.test.tsx +8 -8
- package/src/rbac/components/__tests__/PagePermissionGuard.test.tsx +14 -14
- package/src/rbac/components/__tests__/PermissionEnforcer.test.tsx +12 -12
- package/src/rbac/components/__tests__/RoleBasedRouter.test.tsx +6 -6
- package/src/rbac/engine.test.simple.ts +19 -13
- package/src/rbac/engine.test.ts +1 -0
- package/src/rbac/engine.ts +330 -766
- package/src/rbac/errors.ts +156 -0
- package/src/rbac/hooks/__tests__/usePermissions.integration.test.ts +437 -0
- package/src/rbac/hooks/index.ts +2 -0
- package/src/rbac/hooks/usePermissions.ts +32 -10
- package/src/rbac/hooks/useRBAC.test.ts +126 -512
- package/src/rbac/hooks/useRBAC.ts +147 -193
- package/src/rbac/hooks/useResolvedScope.ts +244 -0
- package/src/rbac/index.ts +7 -4
- package/src/rbac/security.ts +109 -18
- package/src/rbac/types.ts +12 -1
- package/src/services/AuthService.ts +2 -15
- package/src/services/EventService.ts +26 -46
- package/src/services/OrganisationService.ts +51 -31
- package/src/services/__tests__/AuthService.test.ts +1 -1
- package/src/services/__tests__/EventService.test.ts +1 -1
- package/src/services/__tests__/InactivityService.lifecycle.test.ts +411 -0
- package/src/services/__tests__/OrganisationService.pagination.test.ts +375 -0
- package/src/services/__tests__/OrganisationService.test.ts +1 -1
- package/src/styles/base.css +208 -0
- package/src/styles/semantic.css +24 -0
- package/src/types/__tests__/README.md +114 -0
- package/src/types/__tests__/validation.test.ts +731 -0
- package/src/types/database.generated.ts +7347 -0
- package/src/types/database.ts +20 -0
- package/src/utils/__tests__/file-reference.test.ts +383 -0
- package/src/utils/__tests__/performanceBenchmark.test.ts +175 -0
- package/src/utils/appNameResolver.test.ts +54 -0
- package/src/utils/logger.ts +179 -0
- package/src/utils/organisationContext.ts +11 -4
- package/src/utils/storage/__tests__/helpers.unit.test.ts +6 -2
- package/src/validation/__tests__/csrf.unit.test.ts +63 -0
- package/src/validation/__tests__/passwordSchema.unit.test.ts +105 -0
- package/dist/DataTable-HWZQGASI.js +0 -102
- package/dist/appNameResolver-UURKN7NF.js +0 -22
- package/dist/audit-6TOCAMKO.js.map +0 -1
- package/dist/chunk-2CHATWBF.js +0 -523
- package/dist/chunk-2CHATWBF.js.map +0 -1
- package/dist/chunk-2DFZ432F.js.map +0 -1
- package/dist/chunk-33PHABLB.js.map +0 -1
- package/dist/chunk-B2WTCLCV.js.map +0 -1
- package/dist/chunk-CY3AHGO4.js.map +0 -1
- package/dist/chunk-DAXLNIDY.js.map +0 -1
- package/dist/chunk-FGMFQSHX.js.map +0 -1
- package/dist/chunk-TYHR5X4W.js +0 -33
- package/dist/chunk-TYHR5X4W.js.map +0 -1
- package/dist/chunk-ULBI5JGB.js +0 -109
- package/dist/chunk-ULBI5JGB.js.map +0 -1
- package/dist/chunk-WN6XJWOS.js.map +0 -1
- package/dist/chunk-XLZ7U46Z.js.map +0 -1
- package/dist/chunk-YNUBMSMV.js.map +0 -1
- package/dist/chunk-ZTT2AXMX.js.map +0 -1
- package/dist/eventContext-BBA42P6G.js +0 -14
- package/dist/eventContext-BBA42P6G.js.map +0 -1
- package/docs/DOCUMENTATION_CHECKLIST.md +0 -281
- package/docs/api/interfaces/RBACContextType.md +0 -468
- package/docs/api/interfaces/RBACProviderProps.md +0 -107
- package/docs/breaking-changes.md +0 -179
- package/docs/consuming-app-example.md +0 -290
- package/docs/documentation-style-checklist.md +0 -294
- package/docs/examples/navigation-menu-auth-fix.md +0 -344
- package/docs/getting-started/examples/basic-auth-app.md +0 -520
- package/docs/getting-started/examples/full-featured-app.md +0 -616
- package/docs/getting-started/quick-start.md +0 -426
- package/docs/implementation-guides/datatable-filtering.md +0 -313
- package/docs/implementation-guides/datatable-rbac-usage.md +0 -317
- package/docs/implementation-guides/hierarchical-datatable.md +0 -850
- package/docs/implementation-guides/large-datasets.md +0 -281
- package/docs/implementation-guides/performance.md +0 -403
- package/docs/migration/quick-migration-guide.md +0 -320
- package/docs/migration-guide.md +0 -193
- package/docs/migration-guides/unified-auth-provider-mandatory-timeouts.md +0 -226
- package/docs/performance/README.md +0 -551
- package/docs/style-guide.md +0 -925
- package/docs/troubleshooting/authentication-issues.md +0 -334
- package/docs/troubleshooting/debugging.md +0 -1117
- package/docs/troubleshooting/migration.md +0 -918
- package/src/__tests__/hooks/usePermissions.test.ts +0 -261
- package/src/components/DataTable/components/DataTableBody.tsx +0 -488
- package/src/components/DataTable/components/DraggableColumnHeader.tsx +0 -144
- package/src/components/DataTable/components/VirtualizedDataTable.tsx +0 -515
- package/src/components/DataTable/core/ActionManager.ts +0 -235
- package/src/components/DataTable/core/ColumnManager.ts +0 -215
- package/src/components/DataTable/core/DataManager.ts +0 -188
- package/src/components/DataTable/core/DataTableContext.tsx +0 -181
- package/src/components/DataTable/core/LocalDataAdapter.ts +0 -264
- package/src/components/DataTable/core/PluginRegistry.ts +0 -229
- package/src/components/DataTable/core/StateManager.ts +0 -311
- package/src/components/DataTable/core/__tests__/ActionManager.test.ts +0 -634
- package/src/components/DataTable/core/__tests__/ColumnManager.test.ts +0 -193
- package/src/components/DataTable/core/__tests__/DataManager.test.ts +0 -519
- package/src/components/DataTable/core/__tests__/StateManager.test.ts +0 -714
- package/src/components/DataTable/core/interfaces.ts +0 -338
- package/src/components/PaceAppLayout/__tests__/PaceAppLayout.rbac.test.tsx +0 -574
- package/src/components/Select/Select.bug-test.tsx +0 -69
- package/src/components/Select/Select.refactored.tsx +0 -497
- package/src/hooks/__tests__/ServiceHooks.test.tsx +0 -613
- package/src/hooks/services/usePermissions.ts +0 -70
- package/src/hooks/services/useRBACService.ts +0 -30
- package/src/hooks/usePermissionCheck.ts +0 -150
- package/src/providers/__tests__/ServiceProviders.test.tsx +0 -477
- package/src/providers/services/RBACServiceProvider.tsx +0 -79
- package/src/rbac/__tests__/integration.authflow.test.tsx +0 -119
- package/src/rbac/__tests__/integration.navigation.test.tsx +0 -69
- package/src/rbac/__tests__/integration.securedata.test.tsx +0 -92
- package/src/rbac/__tests__/integration.smoke.test.tsx +0 -73
- package/src/rbac/providers/RBACProvider.tsx +0 -645
- package/src/rbac/providers/__tests__/RBACProvider.integration.test.tsx +0 -688
- package/src/rbac/providers/__tests__/RBACProvider.test.tsx +0 -1186
- package/src/rbac/providers/index.ts +0 -11
- package/src/services/RBACService.ts +0 -522
- package/src/services/__tests__/RBACService.test.ts +0 -492
- package/src/services/interfaces/IRBACService.ts +0 -62
- package/src/utils/appNameResolver.test 2.ts +0 -494
- /package/dist/{DataTable-HWZQGASI.js.map → DataTable-QCNCV6IK.js.map} +0 -0
- /package/dist/{UnifiedAuthProvider-3NKDOSOK.js.map → UnifiedAuthProvider-Z2FWNW7O.js.map} +0 -0
- /package/dist/{api-DDMUKIUD.js.map → api-KG4A2X7P.js.map} +0 -0
- /package/dist/{appNameResolver-UURKN7NF.js.map → audit-65VNHEV2.js.map} +0 -0
- /package/dist/{chunk-LW7MMEAQ.js.map → chunk-CRKP3HXI.js.map} +0 -0
- /package/dist/{chunk-URUTVZ7N.js.map → chunk-DVHZ5L55.js.map} +0 -0
- /package/dist/{chunk-NTNILOBC.js.map → chunk-TLD5BEU6.js.map} +0 -0
- /package/docs/{app.css.example → styles/app.css.example} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
### Changed - RBAC Refactoring
|
|
11
|
+
- **Breaking**: Renamed provider hook `useRBAC()` to `useRBACContext()` to avoid naming collision
|
|
12
|
+
- **Removed**: Non-functional `usePermissionCheck` hook
|
|
13
|
+
- **Deprecated**: `RBACService`, `useRBACService` - use new RBAC system instead
|
|
14
|
+
- Consolidated permission checking logic into single source of truth
|
|
15
|
+
- Established consistent fail-secure error handling across RBAC components
|
|
16
|
+
- Removed 100+ lines of duplicate code
|
|
17
|
+
|
|
10
18
|
### Added
|
|
11
19
|
- **DataTable Initial Page Size**: Added `initialPageSize` prop to DataTable component for customizing the initial page size
|
|
12
20
|
- **Page Size Validation**: Automatic validation of initial page size against available options with fallback to closest valid option
|
|
@@ -1,62 +1,8 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import React__default from 'react';
|
|
3
3
|
import { SupabaseClient, User, Session, AuthError } from '@supabase/supabase-js';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* @file RBAC Service Interface
|
|
9
|
-
* @package @jmruthers/pace-core
|
|
10
|
-
* @module Services/Interfaces
|
|
11
|
-
* @since 0.1.0
|
|
12
|
-
*
|
|
13
|
-
* Interface for RBAC service operations.
|
|
14
|
-
* Defines the contract for role-based access control functionality.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
interface UserEventAccess {
|
|
18
|
-
event_id: string;
|
|
19
|
-
event_name: string;
|
|
20
|
-
event_description?: string | null;
|
|
21
|
-
start_date: string;
|
|
22
|
-
end_date: string;
|
|
23
|
-
event_status: string;
|
|
24
|
-
app_id: string;
|
|
25
|
-
access_level: string;
|
|
26
|
-
granted_at: string;
|
|
27
|
-
organisation_id: string;
|
|
28
|
-
}
|
|
29
|
-
interface AppConfig {
|
|
30
|
-
supports_direct_access: boolean;
|
|
31
|
-
requires_event: boolean;
|
|
32
|
-
}
|
|
33
|
-
interface IRBACService {
|
|
34
|
-
getPermissions(): Record<string, boolean>;
|
|
35
|
-
getRoles(): string[];
|
|
36
|
-
getAccessLevel(): AccessLevel;
|
|
37
|
-
isLoading(): boolean;
|
|
38
|
-
getError(): Error | null;
|
|
39
|
-
getSelectedEventId(): string | null;
|
|
40
|
-
getAppConfig(): AppConfig | null;
|
|
41
|
-
getUserEventAccess(): UserEventAccess[];
|
|
42
|
-
isEventAccessLoading(): boolean;
|
|
43
|
-
getSelectedOrganisationId(): string | null;
|
|
44
|
-
hasPermission(permission: string, orgId?: string): boolean;
|
|
45
|
-
hasAnyPermission(permissions: string[], orgId?: string): boolean;
|
|
46
|
-
hasAllPermissions(permissions: string[], orgId?: string): boolean;
|
|
47
|
-
hasRole(role: string): boolean;
|
|
48
|
-
hasAccessLevel(level: AccessLevel): boolean;
|
|
49
|
-
canAccess(resource: string, action: string, orgId?: string): boolean;
|
|
50
|
-
validatePermission(permission: string, orgId?: string): Promise<boolean>;
|
|
51
|
-
validateAccess(resource: string, action: string, orgId?: string): Promise<boolean>;
|
|
52
|
-
refreshPermissions(eventId?: string, orgId?: string): Promise<void>;
|
|
53
|
-
setSelectedEventId(eventId: string | null): void;
|
|
54
|
-
loadUserEventAccess(orgId?: string): Promise<void>;
|
|
55
|
-
getUserEventAccessById(eventId: string): UserEventAccess | undefined;
|
|
56
|
-
requireOrganisationContext(): string;
|
|
57
|
-
initialize(): Promise<void>;
|
|
58
|
-
cleanup(): void;
|
|
59
|
-
}
|
|
4
|
+
import { E as Event } from './unified-DQ4VcT7H.js';
|
|
5
|
+
import { O as Organisation, a as OrganisationMembership, d as OrganisationHierarchy } from './organisation-D6qRDtbF.js';
|
|
60
6
|
|
|
61
7
|
/**
|
|
62
8
|
* @file Base Service Class
|
|
@@ -155,8 +101,8 @@ declare class EventService extends BaseService implements IEventService {
|
|
|
155
101
|
private isFetchingRef;
|
|
156
102
|
private hasAutoSelectedRef;
|
|
157
103
|
private userClearedEventRef;
|
|
158
|
-
constructor(supabaseClient:
|
|
159
|
-
updateDependencies(supabaseClient:
|
|
104
|
+
constructor(supabaseClient: SupabaseClient, user: User | null, session: Session | null, appName: string, selectedOrganisation: Organisation | null, setSelectedEventId: (eventId: string | null) => void);
|
|
105
|
+
updateDependencies(supabaseClient: SupabaseClient, user: User | null, session: Session | null, appName: string, selectedOrganisation: Organisation | null, setSelectedEventId: (eventId: string | null) => void): void;
|
|
160
106
|
getEvents(): Event[];
|
|
161
107
|
getSelectedEvent(): Event | null;
|
|
162
108
|
isLoading(): boolean;
|
|
@@ -466,63 +412,4 @@ declare class AuthService extends BaseService implements IAuthService {
|
|
|
466
412
|
private removeErrorHandlers;
|
|
467
413
|
}
|
|
468
414
|
|
|
469
|
-
|
|
470
|
-
* @file RBAC Service
|
|
471
|
-
* @package @jmruthers/pace-core
|
|
472
|
-
* @module Services
|
|
473
|
-
* @since 0.1.0
|
|
474
|
-
*
|
|
475
|
-
* RBAC service implementation.
|
|
476
|
-
* Handles role-based access control, permissions, and event access management.
|
|
477
|
-
*/
|
|
478
|
-
|
|
479
|
-
declare class RBACService extends BaseService implements IRBACService {
|
|
480
|
-
private permissions;
|
|
481
|
-
private roles;
|
|
482
|
-
private accessLevel;
|
|
483
|
-
private rbacLoading;
|
|
484
|
-
private rbacError;
|
|
485
|
-
private selectedEventId;
|
|
486
|
-
private appConfig;
|
|
487
|
-
private userEventAccess;
|
|
488
|
-
private eventAccessLoading;
|
|
489
|
-
private selectedOrganisationId;
|
|
490
|
-
private supabaseClient;
|
|
491
|
-
private user;
|
|
492
|
-
private session;
|
|
493
|
-
private appName;
|
|
494
|
-
constructor(supabaseClient: SupabaseClient, user: User | null, session: Session | null, appName: string);
|
|
495
|
-
updateDependencies(user: User | null, session: Session | null, appName: string): void;
|
|
496
|
-
getPermissions(): Record<string, boolean>;
|
|
497
|
-
getRoles(): string[];
|
|
498
|
-
getAccessLevel(): AccessLevel;
|
|
499
|
-
isLoading(): boolean;
|
|
500
|
-
getError(): Error | null;
|
|
501
|
-
getSelectedEventId(): string | null;
|
|
502
|
-
getAppConfig(): AppConfig | null;
|
|
503
|
-
getUserEventAccess(): UserEventAccess[];
|
|
504
|
-
isEventAccessLoading(): boolean;
|
|
505
|
-
getSelectedOrganisationId(): string | null;
|
|
506
|
-
hasPermission(permission: string, orgId?: string): boolean;
|
|
507
|
-
hasAnyPermission(permissions: string[], orgId?: string): boolean;
|
|
508
|
-
hasAllPermissions(permissions: string[], orgId?: string): boolean;
|
|
509
|
-
hasRole(role: string): boolean;
|
|
510
|
-
hasAccessLevel(level: AccessLevel): boolean;
|
|
511
|
-
canAccess(resource: string, action: string, orgId?: string): boolean;
|
|
512
|
-
validatePermission(permission: string, orgId?: string): Promise<boolean>;
|
|
513
|
-
validateAccess(resource: string, action: string, orgId?: string): Promise<boolean>;
|
|
514
|
-
refreshPermissions(eventId?: string, orgId?: string): Promise<void>;
|
|
515
|
-
setSelectedEventId(eventId: string | null): void;
|
|
516
|
-
loadUserEventAccess(orgId?: string): Promise<void>;
|
|
517
|
-
getUserEventAccessById(eventId: string): UserEventAccess | undefined;
|
|
518
|
-
requireOrganisationContext(): string;
|
|
519
|
-
initialize(): Promise<void>;
|
|
520
|
-
cleanup(): void;
|
|
521
|
-
protected doInitialize(): Promise<void>;
|
|
522
|
-
protected doCleanup(): void;
|
|
523
|
-
private loadAppConfig;
|
|
524
|
-
private loadPersistedState;
|
|
525
|
-
private transformRBACPermissions;
|
|
526
|
-
}
|
|
527
|
-
|
|
528
|
-
export { AuthService as A, type EventServiceContextType as E, type InactivityServiceContextType as I, type OrganisationServiceContextType as O, RBACService as R, type UserEventAccess as U, type EventContextType as a, EventServiceContext as b, type EventServiceProviderProps as c, EventServiceProvider as d, OrganisationServiceContext as e, type OrganisationServiceProviderProps as f, OrganisationServiceProvider as g, useOrganisationService as h, InactivityServiceContext as i, type InactivityServiceProviderProps as j, InactivityServiceProvider as k, useInactivityService as l, InactivityService as m, EventService as n, OrganisationService as o, useEventService as u };
|
|
415
|
+
export { AuthService as A, type EventServiceContextType as E, type InactivityServiceContextType as I, type OrganisationServiceContextType as O, type EventContextType as a, EventServiceContext as b, type EventServiceProviderProps as c, EventServiceProvider as d, OrganisationServiceContext as e, type OrganisationServiceProviderProps as f, OrganisationServiceProvider as g, useOrganisationService as h, InactivityServiceContext as i, type InactivityServiceProviderProps as j, InactivityServiceProvider as k, useInactivityService as l, InactivityService as m, EventService as n, OrganisationService as o, useEventService as u };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import React__default from 'react';
|
|
3
|
-
import { D as DataRecord, a as DataTableColumn, b as DataTableRBACConfig, c as DataTableFeatureConfig, H as HierarchicalConfig, P as PerformanceConfig, S as ServerSideConfig, d as PaginationMode, C as ChunkingConfig, e as SearchIndexConfig, G as GetRowId, E as EmptyStateConfig, A as AggregateConfig, f as DataTableAction } from './types-
|
|
3
|
+
import { D as DataRecord, a as DataTableColumn, b as DataTableRBACConfig, c as DataTableFeatureConfig, H as HierarchicalConfig, P as PerformanceConfig, S as ServerSideConfig, d as PaginationMode, C as ChunkingConfig, e as SearchIndexConfig, G as GetRowId, E as EmptyStateConfig, A as AggregateConfig, f as DataTableAction } from './types-BDg1mAGG.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Configuration interface for customizing ImportModal text content
|
|
@@ -47,7 +47,7 @@ interface DataTableProps<TData extends DataRecord> {
|
|
|
47
47
|
/** Additional CSS classes for the table container */
|
|
48
48
|
className?: string;
|
|
49
49
|
/** Feature configuration - all features are disabled by default */
|
|
50
|
-
features
|
|
50
|
+
features?: DataTableFeatureConfig;
|
|
51
51
|
/** Hierarchical parent/child row configuration */
|
|
52
52
|
hierarchical?: HierarchicalConfig;
|
|
53
53
|
/** Performance optimization configuration */
|
|
@@ -108,6 +108,13 @@ interface DataTableProps<TData extends DataRecord> {
|
|
|
108
108
|
actions?: DataTableAction<TData>[];
|
|
109
109
|
/** Column order configuration - array of column IDs in desired order */
|
|
110
110
|
columnOrder?: string[];
|
|
111
|
+
/** Unique storage key for persisting table layout state across sessions */
|
|
112
|
+
storageKey?: string;
|
|
113
|
+
/** Callback when table layout changes (column order, visibility, etc.) */
|
|
114
|
+
onLayoutChange?: (layout: {
|
|
115
|
+
columnOrder: string[];
|
|
116
|
+
columnVisibility: Record<string, boolean>;
|
|
117
|
+
}) => void;
|
|
111
118
|
}
|
|
112
119
|
/**
|
|
113
120
|
* Enhanced DataTable with comprehensive performance optimizations
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ActionButtons,
|
|
3
|
+
BulkOperationsDropdown,
|
|
4
|
+
ColumnFactory,
|
|
5
|
+
ColumnVisibilityDropdown,
|
|
6
|
+
DataTable,
|
|
7
|
+
DataTableCore,
|
|
8
|
+
DataTableErrorBoundary,
|
|
9
|
+
DataTableModals,
|
|
10
|
+
DataTableToolbar,
|
|
11
|
+
EditableRow,
|
|
12
|
+
EmptyState,
|
|
13
|
+
EnhancedPaginationControls,
|
|
14
|
+
GroupHeader,
|
|
15
|
+
GroupingDropdown,
|
|
16
|
+
ImportModal,
|
|
17
|
+
LoadingState,
|
|
18
|
+
PaginationControls,
|
|
19
|
+
UnifiedTableBody,
|
|
20
|
+
announce,
|
|
21
|
+
announceBulkOperation,
|
|
22
|
+
announceFilterChange,
|
|
23
|
+
announceLoadingState,
|
|
24
|
+
announcePaginationChange,
|
|
25
|
+
announceSearchResults,
|
|
26
|
+
announceSelectionChange,
|
|
27
|
+
announceSortChange,
|
|
28
|
+
calculateAllDepths,
|
|
29
|
+
calculateAllIndentation,
|
|
30
|
+
calculateIndentation,
|
|
31
|
+
calculateOptimalPageSize,
|
|
32
|
+
cleanupLiveRegion,
|
|
33
|
+
createHierarchicalStructure,
|
|
34
|
+
defaultDataTableFeatures,
|
|
35
|
+
exportToCSV,
|
|
36
|
+
generateCSVContent,
|
|
37
|
+
getAriaSortValue,
|
|
38
|
+
getCellRenderer,
|
|
39
|
+
getHierarchicalSortConfig,
|
|
40
|
+
getPageSizeOptions,
|
|
41
|
+
getPaginationBinding,
|
|
42
|
+
getRowDepth,
|
|
43
|
+
getRowDescription,
|
|
44
|
+
getRowIdSafe,
|
|
45
|
+
getSortButtonLabel,
|
|
46
|
+
groupHierarchicalData,
|
|
47
|
+
hasValidRowId,
|
|
48
|
+
initializeLiveRegion,
|
|
49
|
+
isHierarchicalSortableColumn,
|
|
50
|
+
normalizeDataTableFeatures,
|
|
51
|
+
shouldShowColumnForRow,
|
|
52
|
+
sortHierarchicalDataByStructure,
|
|
53
|
+
sortHierarchicalDataWithSorting,
|
|
54
|
+
validateHierarchicalData,
|
|
55
|
+
validatePaginationConfig
|
|
56
|
+
} from "./chunk-DDPG7FCX.js";
|
|
57
|
+
import "./chunk-PUKTJMRT.js";
|
|
58
|
+
import "./chunk-S63MFSY6.js";
|
|
59
|
+
import "./chunk-Q7APDV6H.js";
|
|
60
|
+
import {
|
|
61
|
+
CircuitBreaker,
|
|
62
|
+
DEFAULT_FALLBACK_CONFIG,
|
|
63
|
+
DataChunkManager,
|
|
64
|
+
DataTableError,
|
|
65
|
+
DataTableErrorType,
|
|
66
|
+
ErrorRecoveryManager,
|
|
67
|
+
MemoryMonitor,
|
|
68
|
+
SearchIndex,
|
|
69
|
+
VisibilityTracker,
|
|
70
|
+
chunkData,
|
|
71
|
+
debounce,
|
|
72
|
+
determinePaginationMode,
|
|
73
|
+
getOptimalPageSizeOptions,
|
|
74
|
+
safeExecute,
|
|
75
|
+
throttle,
|
|
76
|
+
useDataTablePerformance
|
|
77
|
+
} from "./chunk-YCKPEMJA.js";
|
|
78
|
+
import "./chunk-CRKP3HXI.js";
|
|
79
|
+
import "./chunk-DVHZ5L55.js";
|
|
80
|
+
import "./chunk-JDQ7T3QB.js";
|
|
81
|
+
import "./chunk-PYUXFQJ3.js";
|
|
82
|
+
import "./chunk-JCQZ6LA7.js";
|
|
83
|
+
import "./chunk-CVMVPYAL.js";
|
|
84
|
+
import "./chunk-PLDDJCW6.js";
|
|
85
|
+
export {
|
|
86
|
+
ActionButtons,
|
|
87
|
+
BulkOperationsDropdown,
|
|
88
|
+
CircuitBreaker,
|
|
89
|
+
ColumnFactory,
|
|
90
|
+
ColumnVisibilityDropdown,
|
|
91
|
+
DEFAULT_FALLBACK_CONFIG,
|
|
92
|
+
DataChunkManager,
|
|
93
|
+
DataTable,
|
|
94
|
+
DataTableCore,
|
|
95
|
+
DataTableError,
|
|
96
|
+
DataTableErrorBoundary,
|
|
97
|
+
DataTableErrorType,
|
|
98
|
+
DataTableModals,
|
|
99
|
+
DataTableToolbar,
|
|
100
|
+
EditableRow,
|
|
101
|
+
EmptyState,
|
|
102
|
+
EnhancedPaginationControls,
|
|
103
|
+
ErrorRecoveryManager,
|
|
104
|
+
GroupHeader,
|
|
105
|
+
GroupingDropdown,
|
|
106
|
+
ImportModal,
|
|
107
|
+
LoadingState,
|
|
108
|
+
MemoryMonitor,
|
|
109
|
+
PaginationControls,
|
|
110
|
+
SearchIndex,
|
|
111
|
+
UnifiedTableBody,
|
|
112
|
+
VisibilityTracker,
|
|
113
|
+
announce,
|
|
114
|
+
announceBulkOperation,
|
|
115
|
+
announceFilterChange,
|
|
116
|
+
announceLoadingState,
|
|
117
|
+
announcePaginationChange,
|
|
118
|
+
announceSearchResults,
|
|
119
|
+
announceSelectionChange,
|
|
120
|
+
announceSortChange,
|
|
121
|
+
calculateAllDepths,
|
|
122
|
+
calculateAllIndentation,
|
|
123
|
+
calculateIndentation,
|
|
124
|
+
calculateOptimalPageSize,
|
|
125
|
+
chunkData,
|
|
126
|
+
cleanupLiveRegion,
|
|
127
|
+
createHierarchicalStructure,
|
|
128
|
+
debounce,
|
|
129
|
+
defaultDataTableFeatures,
|
|
130
|
+
determinePaginationMode,
|
|
131
|
+
exportToCSV,
|
|
132
|
+
generateCSVContent,
|
|
133
|
+
getAriaSortValue,
|
|
134
|
+
getCellRenderer,
|
|
135
|
+
getHierarchicalSortConfig,
|
|
136
|
+
getOptimalPageSizeOptions,
|
|
137
|
+
getPageSizeOptions,
|
|
138
|
+
getPaginationBinding,
|
|
139
|
+
getRowDepth,
|
|
140
|
+
getRowDescription,
|
|
141
|
+
getRowIdSafe,
|
|
142
|
+
getSortButtonLabel,
|
|
143
|
+
groupHierarchicalData,
|
|
144
|
+
hasValidRowId,
|
|
145
|
+
initializeLiveRegion,
|
|
146
|
+
isHierarchicalSortableColumn,
|
|
147
|
+
normalizeDataTableFeatures,
|
|
148
|
+
safeExecute,
|
|
149
|
+
shouldShowColumnForRow,
|
|
150
|
+
sortHierarchicalDataByStructure,
|
|
151
|
+
sortHierarchicalDataWithSorting,
|
|
152
|
+
throttle,
|
|
153
|
+
useDataTablePerformance,
|
|
154
|
+
validateHierarchicalData,
|
|
155
|
+
validatePaginationConfig
|
|
156
|
+
};
|
|
157
|
+
//# sourceMappingURL=DataTable-QCNCV6IK.js.map
|
|
@@ -12,8 +12,8 @@ import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
|
12
12
|
import { FieldValues, DefaultValues, SubmitHandler, SubmitErrorHandler, UseFormReturn } from 'react-hook-form';
|
|
13
13
|
import { z } from 'zod';
|
|
14
14
|
import { User, SupabaseClient, createClient } from '@supabase/supabase-js';
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
15
|
+
import { E as Event } from './unified-DQ4VcT7H.js';
|
|
16
|
+
import { O as Organisation } from './organisation-D6qRDtbF.js';
|
|
17
17
|
import { b as FileCategory, c as FileUploadOptions, e as FileUploadResult, F as FileReference } from './file-reference-9xUOnwyt.js';
|
|
18
18
|
|
|
19
19
|
interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
@@ -856,32 +856,43 @@ declare const DialogTitle: React.ForwardRefExoticComponent<DialogTitleProps & Re
|
|
|
856
856
|
declare const DialogDescription: React.ForwardRefExoticComponent<DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>>;
|
|
857
857
|
|
|
858
858
|
/**
|
|
859
|
-
* @file Select
|
|
859
|
+
* @file Select Hooks - Custom hooks for Select component state management
|
|
860
860
|
* @package @jmruthers/pace-core
|
|
861
|
-
* @module Components/Select
|
|
862
|
-
* @since 0.
|
|
863
|
-
*
|
|
864
|
-
* A simple select component using semantic HTML structure
|
|
865
|
-
* with proper DOM nesting and accessibility.
|
|
861
|
+
* @module Components/Select/Hooks
|
|
862
|
+
* @since 0.4.0
|
|
866
863
|
*
|
|
867
|
-
*
|
|
868
|
-
* -
|
|
869
|
-
* -
|
|
870
|
-
* -
|
|
871
|
-
* - Simple positioning and styling
|
|
872
|
-
* - Better accessibility and SEO
|
|
873
|
-
* - Backward compatible API
|
|
864
|
+
* Custom hooks for Select component following SOLID principles:
|
|
865
|
+
* - Single Responsibility: Each hook handles one concern
|
|
866
|
+
* - Open/Closed: Easy to extend without modification
|
|
867
|
+
* - Dependency Inversion: Abstractions over concrete implementations
|
|
874
868
|
*/
|
|
875
869
|
|
|
876
|
-
interface
|
|
870
|
+
interface UseSelectStateProps {
|
|
877
871
|
value?: string;
|
|
878
872
|
defaultValue?: string;
|
|
879
873
|
selectedText?: string;
|
|
880
|
-
onValueChange?: (value: string) => void;
|
|
881
874
|
open?: boolean;
|
|
882
875
|
defaultOpen?: boolean;
|
|
883
|
-
onOpenChange?: (open: boolean) => void;
|
|
884
876
|
disabled?: boolean;
|
|
877
|
+
onValueChange?: (value: string) => void;
|
|
878
|
+
onOpenChange?: (open: boolean) => void;
|
|
879
|
+
}
|
|
880
|
+
|
|
881
|
+
/**
|
|
882
|
+
* @file Select Component - Refactored SOLID Implementation
|
|
883
|
+
* @package @jmruthers/pace-core
|
|
884
|
+
* @module Components/Select
|
|
885
|
+
* @since 0.4.0
|
|
886
|
+
*
|
|
887
|
+
* Refactored Select component following SOLID principles:
|
|
888
|
+
* - Single Responsibility: Each component has one clear purpose
|
|
889
|
+
* - Open/Closed: Easy to extend without modification
|
|
890
|
+
* - Liskov Substitution: Components can be substituted
|
|
891
|
+
* - Interface Segregation: Small, focused interfaces
|
|
892
|
+
* - Dependency Inversion: Depends on abstractions, not concretions
|
|
893
|
+
*/
|
|
894
|
+
|
|
895
|
+
interface SelectProps extends Omit<React.HTMLAttributes<HTMLFormElement>, 'onChange' | 'onKeyDown' | 'onFocus' | 'onBlur'> {
|
|
885
896
|
children: React.ReactNode;
|
|
886
897
|
className?: string;
|
|
887
898
|
}
|
|
@@ -908,7 +919,7 @@ interface SelectItemProps {
|
|
|
908
919
|
className?: string;
|
|
909
920
|
onClick?: (e: React.MouseEvent) => void;
|
|
910
921
|
}
|
|
911
|
-
declare const Select: React.ForwardRefExoticComponent<SelectProps & React.RefAttributes<HTMLFormElement>>;
|
|
922
|
+
declare const Select: React.ForwardRefExoticComponent<SelectProps & UseSelectStateProps & React.RefAttributes<HTMLFormElement>>;
|
|
912
923
|
declare const SelectTrigger: React.ForwardRefExoticComponent<SelectTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
913
924
|
declare const SelectValue: React.ForwardRefExoticComponent<SelectValueProps & React.RefAttributes<HTMLSpanElement>>;
|
|
914
925
|
declare const SelectContent: React.ForwardRefExoticComponent<SelectContentProps & React.RefAttributes<HTMLUListElement>>;
|
|
@@ -2518,6 +2529,8 @@ interface PaceLoginPageProps {
|
|
|
2518
2529
|
appName: string;
|
|
2519
2530
|
/** The path to redirect to upon successful login. Defaults to `/`. */
|
|
2520
2531
|
onSuccessRedirectPath?: string;
|
|
2532
|
+
/** Whether to check app access using RBAC. Defaults to false. */
|
|
2533
|
+
requireAppAccess?: boolean;
|
|
2521
2534
|
}
|
|
2522
2535
|
/**
|
|
2523
2536
|
* A consistent, reusable login page for all PACE suite applications.
|
|
@@ -2526,6 +2539,7 @@ interface PaceLoginPageProps {
|
|
|
2526
2539
|
*
|
|
2527
2540
|
* Recent enhancements:
|
|
2528
2541
|
* - Role-based redirection: Admin users are automatically redirected
|
|
2542
|
+
* - RBAC-based app access control: Checks if user has permission to access the app
|
|
2529
2543
|
* - Enhanced error handling with navigation error recovery
|
|
2530
2544
|
* - Dual loading states: auth loading + form submission loading
|
|
2531
2545
|
* - Error persistence: Auth errors are displayed below the form
|
|
@@ -1,59 +1,50 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import React__default from 'react';
|
|
3
|
-
import { SupabaseClient } from '@supabase/supabase-js';
|
|
3
|
+
import { SupabaseClient, User, Session, AuthError } from '@supabase/supabase-js';
|
|
4
|
+
import { O as Organisation, a as OrganisationMembership } from './organisation-D6qRDtbF.js';
|
|
5
|
+
import { E as Event } from './unified-DQ4VcT7H.js';
|
|
4
6
|
|
|
7
|
+
interface UserEventAccess {
|
|
8
|
+
event_id: string;
|
|
9
|
+
event_name: string;
|
|
10
|
+
event_description?: string | null;
|
|
11
|
+
start_date: string;
|
|
12
|
+
end_date: string;
|
|
13
|
+
event_status: string;
|
|
14
|
+
app_id: string;
|
|
15
|
+
access_level: string;
|
|
16
|
+
granted_at: string;
|
|
17
|
+
organisation_id: string;
|
|
18
|
+
}
|
|
5
19
|
interface UnifiedAuthContextType {
|
|
6
|
-
user:
|
|
7
|
-
session:
|
|
20
|
+
user: User | null;
|
|
21
|
+
session: Session | null;
|
|
8
22
|
isAuthenticated: boolean;
|
|
9
23
|
authLoading: boolean;
|
|
10
|
-
authError:
|
|
11
|
-
error:
|
|
24
|
+
authError: AuthError | null;
|
|
25
|
+
error: AuthError | null;
|
|
12
26
|
supabase: SupabaseClient | null;
|
|
13
27
|
signIn: (email: string, password?: string) => Promise<{
|
|
14
|
-
error:
|
|
28
|
+
error: AuthError | null;
|
|
15
29
|
}>;
|
|
16
30
|
signUp: (email: string, password: string) => Promise<{
|
|
17
|
-
error:
|
|
31
|
+
error: AuthError | null;
|
|
18
32
|
}>;
|
|
19
33
|
signOut: () => Promise<{
|
|
20
|
-
error:
|
|
34
|
+
error: AuthError | null;
|
|
21
35
|
}>;
|
|
22
36
|
resetPassword: (email: string) => Promise<{
|
|
23
|
-
error:
|
|
37
|
+
error: AuthError | null;
|
|
24
38
|
}>;
|
|
25
39
|
updatePassword: (password: string) => Promise<{
|
|
26
|
-
error:
|
|
40
|
+
error: AuthError | null;
|
|
27
41
|
}>;
|
|
28
42
|
refreshSession: () => Promise<{
|
|
29
|
-
error:
|
|
43
|
+
error: AuthError | null;
|
|
30
44
|
}>;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
rbacLoading: boolean;
|
|
35
|
-
rbacError: Error | null;
|
|
36
|
-
selectedEventId: string | null;
|
|
37
|
-
appConfig: any | null;
|
|
38
|
-
userEventAccess: any[];
|
|
39
|
-
eventAccessLoading: boolean;
|
|
40
|
-
selectedOrganisationId: string | null;
|
|
41
|
-
hasPermission: (permission: string, orgId?: string) => boolean;
|
|
42
|
-
hasAnyPermission: (permissions: string[], orgId?: string) => boolean;
|
|
43
|
-
hasAllPermissions: (permissions: string[], orgId?: string) => boolean;
|
|
44
|
-
hasRole: (role: string) => boolean;
|
|
45
|
-
hasAccessLevel: (level: any) => boolean;
|
|
46
|
-
canAccess: (resource: string, action: string, orgId?: string) => boolean;
|
|
47
|
-
validatePermission: (permission: string, orgId?: string) => Promise<boolean>;
|
|
48
|
-
validateAccess: (resource: string, action: string, orgId?: string) => Promise<boolean>;
|
|
49
|
-
refreshPermissions: (eventId?: string, orgId?: string) => Promise<void>;
|
|
50
|
-
setSelectedEventId: (eventId: string | null) => void;
|
|
51
|
-
loadUserEventAccess: (orgId?: string) => Promise<void>;
|
|
52
|
-
getUserEventAccess: (eventId: string) => any | undefined;
|
|
53
|
-
requireOrganisationContext: () => string;
|
|
54
|
-
selectedOrganisation: any | null;
|
|
55
|
-
organisations: any[];
|
|
56
|
-
userMemberships: any[];
|
|
45
|
+
selectedOrganisation: Organisation | null;
|
|
46
|
+
organisations: Organisation[];
|
|
47
|
+
userMemberships: OrganisationMembership[];
|
|
57
48
|
organisationLoading: boolean;
|
|
58
49
|
organisationError: Error | null;
|
|
59
50
|
hasValidOrganisationContext: boolean;
|
|
@@ -62,14 +53,14 @@ interface UnifiedAuthContextType {
|
|
|
62
53
|
getUserRole: (orgId?: string) => string;
|
|
63
54
|
validateOrganisationAccess: (orgId: string) => boolean;
|
|
64
55
|
refreshOrganisations: () => Promise<void>;
|
|
65
|
-
ensureOrganisationContext: () =>
|
|
56
|
+
ensureOrganisationContext: () => Organisation;
|
|
66
57
|
isOrganisationSecure: () => boolean;
|
|
67
|
-
getPrimaryOrganisation: () =>
|
|
68
|
-
events:
|
|
69
|
-
selectedEvent:
|
|
58
|
+
getPrimaryOrganisation: () => Organisation | null;
|
|
59
|
+
events: Event[];
|
|
60
|
+
selectedEvent: Event | null;
|
|
70
61
|
eventLoading: boolean;
|
|
71
62
|
eventError: Error | null;
|
|
72
|
-
setSelectedEvent: (event:
|
|
63
|
+
setSelectedEvent: (event: Event | null) => void;
|
|
73
64
|
refreshEvents: () => Promise<void>;
|
|
74
65
|
showInactivityWarning: boolean;
|
|
75
66
|
inactivityTimeRemaining: number;
|
|
@@ -84,6 +75,9 @@ interface UnifiedAuthContextType {
|
|
|
84
75
|
handleStaySignedIn: () => void;
|
|
85
76
|
handleSignOutNow: () => Promise<void>;
|
|
86
77
|
appName: string;
|
|
78
|
+
appConfig: {
|
|
79
|
+
requires_event: boolean;
|
|
80
|
+
} | null;
|
|
87
81
|
isLoading: boolean;
|
|
88
82
|
hasErrors: boolean;
|
|
89
83
|
}
|
|
@@ -95,7 +89,9 @@ interface UnifiedAuthProviderProps {
|
|
|
95
89
|
persistState?: boolean;
|
|
96
90
|
enablePersistence?: boolean;
|
|
97
91
|
requireOrganisationContext?: boolean;
|
|
98
|
-
|
|
92
|
+
appConfig?: {
|
|
93
|
+
requires_event: boolean;
|
|
94
|
+
} | null;
|
|
99
95
|
idleTimeoutMs: number;
|
|
100
96
|
warnBeforeMs: number;
|
|
101
97
|
onIdleLogout: (reason: 'inactivity') => void;
|
|
@@ -106,8 +102,9 @@ interface UnifiedAuthProviderProps {
|
|
|
106
102
|
}) => React__default.ReactNode;
|
|
107
103
|
dangerouslyDisableInactivity?: boolean;
|
|
108
104
|
}
|
|
109
|
-
declare function UnifiedAuthProvider({ children, supabaseClient, appName,
|
|
105
|
+
declare function UnifiedAuthProvider({ children, supabaseClient, appName, appConfig, // Default to requiring events
|
|
106
|
+
persistState, enablePersistence, requireOrganisationContext, idleTimeoutMs, // 30 minutes
|
|
110
107
|
warnBeforeMs, // 60 seconds
|
|
111
108
|
onIdleLogout, renderInactivityWarning, dangerouslyDisableInactivity }: UnifiedAuthProviderProps): react_jsx_runtime.JSX.Element;
|
|
112
109
|
|
|
113
|
-
export { type
|
|
110
|
+
export { type UserEventAccess as U, type UnifiedAuthContextType as a, type UnifiedAuthProviderProps as b, UnifiedAuthProvider as c, useUnifiedAuth as u };
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
init_UnifiedAuthProvider
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-DVHZ5L55.js";
|
|
4
4
|
import {
|
|
5
5
|
UnifiedAuthProvider,
|
|
6
6
|
useUnifiedAuth
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-XLZ7U46Z.js";
|
|
7
|
+
} from "./chunk-JDQ7T3QB.js";
|
|
8
|
+
import "./chunk-CVMVPYAL.js";
|
|
10
9
|
import "./chunk-PLDDJCW6.js";
|
|
11
10
|
init_UnifiedAuthProvider();
|
|
12
11
|
export {
|
|
13
12
|
UnifiedAuthProvider,
|
|
14
13
|
useUnifiedAuth
|
|
15
14
|
};
|
|
16
|
-
//# sourceMappingURL=UnifiedAuthProvider-
|
|
15
|
+
//# sourceMappingURL=UnifiedAuthProvider-Z2FWNW7O.js.map
|
|
@@ -2,7 +2,9 @@ import {
|
|
|
2
2
|
clearCache,
|
|
3
3
|
getAccessLevel,
|
|
4
4
|
getAppConfig,
|
|
5
|
+
getAppConfigWithClient,
|
|
5
6
|
getPermissionMap,
|
|
7
|
+
getRoleContext,
|
|
6
8
|
hasAllPermissions,
|
|
7
9
|
hasAnyPermission,
|
|
8
10
|
hasPermission,
|
|
@@ -15,15 +17,18 @@ import {
|
|
|
15
17
|
isPermitted,
|
|
16
18
|
isPermittedCached,
|
|
17
19
|
isSuperAdmin,
|
|
20
|
+
resolveAppContext,
|
|
18
21
|
setupRBAC
|
|
19
|
-
} from "./chunk-
|
|
20
|
-
import "./chunk-
|
|
22
|
+
} from "./chunk-S63MFSY6.js";
|
|
23
|
+
import "./chunk-Q7APDV6H.js";
|
|
21
24
|
import "./chunk-PLDDJCW6.js";
|
|
22
25
|
export {
|
|
23
26
|
clearCache,
|
|
24
27
|
getAccessLevel,
|
|
25
28
|
getAppConfig,
|
|
29
|
+
getAppConfigWithClient,
|
|
26
30
|
getPermissionMap,
|
|
31
|
+
getRoleContext,
|
|
27
32
|
hasAllPermissions,
|
|
28
33
|
hasAnyPermission,
|
|
29
34
|
hasPermission,
|
|
@@ -36,6 +41,7 @@ export {
|
|
|
36
41
|
isPermitted,
|
|
37
42
|
isPermittedCached,
|
|
38
43
|
isSuperAdmin,
|
|
44
|
+
resolveAppContext,
|
|
39
45
|
setupRBAC
|
|
40
46
|
};
|
|
41
|
-
//# sourceMappingURL=api-
|
|
47
|
+
//# sourceMappingURL=api-KG4A2X7P.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
emitAuditEvent,
|
|
5
5
|
getGlobalAuditManager,
|
|
6
6
|
setGlobalAuditManager
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-Q7APDV6H.js";
|
|
8
8
|
import "./chunk-PLDDJCW6.js";
|
|
9
9
|
export {
|
|
10
10
|
RBACAuditManager,
|
|
@@ -13,4 +13,4 @@ export {
|
|
|
13
13
|
getGlobalAuditManager,
|
|
14
14
|
setGlobalAuditManager
|
|
15
15
|
};
|
|
16
|
-
//# sourceMappingURL=audit-
|
|
16
|
+
//# sourceMappingURL=audit-65VNHEV2.js.map
|