@jmruthers/pace-core 0.6.5 → 0.6.7
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 +104 -0
- package/README.md +5 -403
- package/audit-tool/00-dependencies.cjs +394 -0
- package/audit-tool/audits/01-pace-core-compliance.cjs +556 -0
- package/audit-tool/audits/02-project-structure.cjs +255 -0
- package/audit-tool/audits/03-architecture.cjs +196 -0
- package/audit-tool/audits/04-code-quality.cjs +149 -0
- package/audit-tool/audits/05-styling.cjs +224 -0
- package/audit-tool/audits/06-security-rbac.cjs +544 -0
- package/audit-tool/audits/07-api-tech-stack.cjs +301 -0
- package/audit-tool/audits/08-testing-documentation.cjs +202 -0
- package/audit-tool/audits/09-operations.cjs +208 -0
- package/audit-tool/index.cjs +291 -0
- package/audit-tool/utils/code-utils.cjs +218 -0
- package/audit-tool/utils/file-utils.cjs +230 -0
- package/audit-tool/utils/report-utils.cjs +241 -0
- package/core-usage-manifest.json +93 -0
- package/cursor-rules/00-standards-overview.mdc +156 -0
- package/cursor-rules/01-pace-core-compliance.mdc +586 -0
- package/cursor-rules/02-project-structure.mdc +42 -4
- package/cursor-rules/{03-solid-principles.mdc → 03-architecture.mdc} +126 -10
- package/cursor-rules/04-code-quality.mdc +419 -0
- package/cursor-rules/{08-markup-quality.mdc → 05-styling.mdc} +104 -34
- package/cursor-rules/06-security-rbac.mdc +518 -0
- package/cursor-rules/07-api-tech-stack.mdc +377 -0
- package/cursor-rules/08-testing-documentation.mdc +324 -0
- package/cursor-rules/09-operations.mdc +365 -0
- package/dist/{AuthService-Cb34EQs3.d.ts → AuthService-DmfO5rGS.d.ts} +10 -0
- package/dist/DataTable-7PMH7XN7.js +15 -0
- package/dist/{DataTable-BMRU8a1j.d.ts → DataTable-DRUIgtUH.d.ts} +1 -1
- package/dist/{PublicPageProvider-QTFVrL-Z.d.ts → PublicPageProvider-DlsCaR5v.d.ts} +33 -72
- package/dist/UnifiedAuthProvider-ZT6TIGM7.js +7 -0
- package/dist/api-Y4MQWOFW.js +4 -0
- package/dist/audit-MYQXYZFU.js +3 -0
- package/dist/{chunk-DGUM43GV.js → chunk-3RG5ZIWI.js} +1 -4
- package/dist/{chunk-QXHPKYJV.js → chunk-4SXLQIZO.js} +1 -26
- package/dist/{chunk-UPPMRMYG.js → chunk-5X4QLXRG.js} +73 -151
- package/dist/chunk-6F3IILHI.js +62 -0
- package/dist/{chunk-E66EQZE6.js → chunk-6GLLNA6U.js} +3 -9
- package/dist/{chunk-ZSAAAMVR.js → chunk-6QYDGKQY.js} +1 -4
- package/dist/{chunk-FMUCXFII.js → chunk-7ILTDCL2.js} +9 -5
- package/dist/{chunk-M43Y4SSO.js → chunk-A3W6LW53.js} +15 -13
- package/dist/{chunk-63FOKYGO.js → chunk-AHU7G2R5.js} +2 -11
- package/dist/{chunk-HU2C6SSC.js → chunk-BM4CQ5P3.js} +606 -559
- package/dist/chunk-C7NSAPTL.js +1 -0
- package/dist/{chunk-J36DSWQK.js → chunk-FEJLJNWA.js} +7 -41
- package/dist/{chunk-IHB5DR3H.js → chunk-FTCRZOG2.js} +188 -387
- package/dist/{chunk-G37KK66H.js → chunk-FYHN4DD5.js} +60 -19
- package/dist/chunk-GHYHJTYV.js +994 -0
- package/dist/{chunk-VBXEHIUJ.js → chunk-HF6O3O37.js} +6 -88
- package/dist/{chunk-FFQEQTNW.js → chunk-IUBRCBSY.js} +134 -45
- package/dist/{chunk-6COVEUS7.js → chunk-JGWDVX64.js} +983 -1034
- package/dist/{chunk-RGAWHO7N.js → chunk-L4XMVJKY.js} +77 -222
- package/dist/chunk-MBADTM7L.js +64 -0
- package/dist/{chunk-M7MPQISP.js → chunk-OJ4SKRSV.js} +3 -16
- package/dist/{chunk-IVOFDYWT.js → chunk-Q7Q7V5NV.js} +2109 -1604
- package/dist/{chunk-JGRYX5UX.js → chunk-S7DKJPLT.js} +29 -58
- package/dist/{chunk-PWLANIRT.js → chunk-TTRFSOKR.js} +1 -7
- package/dist/{chunk-5DRSZLL2.js → chunk-UH3NTO3F.js} +1 -6
- package/dist/{chunk-NTM7ZSB6.js → chunk-VBCS3DUA.js} +261 -168
- package/dist/{chunk-EFN2EIMK.js → chunk-ZFYPMX46.js} +271 -87
- package/dist/{chunk-L4OXEN46.js → chunk-ZKAWKYT4.js} +10 -24
- package/dist/components.d.ts +7 -5
- package/dist/components.js +46 -257
- package/dist/{database.generated-CzIvgcPu.d.ts → database.generated-CcnC_DRc.d.ts} +4795 -3691
- package/dist/eslint-rules/index.cjs +35 -0
- package/{src/eslint-rules/pace-core-compliance.cjs → dist/eslint-rules/rules/01-pace-core-compliance.cjs} +234 -235
- package/dist/eslint-rules/rules/04-code-quality.cjs +290 -0
- package/dist/eslint-rules/rules/05-styling.cjs +61 -0
- package/dist/eslint-rules/rules/06-security-rbac.cjs +806 -0
- package/dist/eslint-rules/rules/07-api-tech-stack.cjs +263 -0
- package/dist/eslint-rules/rules/08-testing.cjs +94 -0
- package/dist/eslint-rules/utils/helpers.cjs +42 -0
- package/dist/eslint-rules/utils/manifest-loader.cjs +75 -0
- package/dist/hooks.d.ts +6 -6
- package/dist/hooks.js +62 -172
- package/dist/icons/index.d.ts +1 -0
- package/dist/icons/index.js +1 -0
- package/dist/index.d.ts +12 -11
- package/dist/index.js +67 -660
- package/dist/providers.d.ts +2 -2
- package/dist/providers.js +8 -35
- package/dist/rbac/eslint-rules.d.ts +46 -44
- package/dist/rbac/eslint-rules.js +7 -4
- package/dist/rbac/index.d.ts +109 -586
- package/dist/rbac/index.js +14 -207
- package/dist/styles/index.js +2 -12
- package/dist/theming/runtime.d.ts +14 -1
- package/dist/theming/runtime.js +3 -19
- package/dist/{timezone-CHhWg6b4.d.ts → timezone-BZe_eUxx.d.ts} +175 -1
- package/dist/{types-CkbwOr4Y.d.ts → types-DXstZpNI.d.ts} +4 -17
- package/dist/types-t9H8qKRw.d.ts +55 -0
- package/dist/types.d.ts +1 -1
- package/dist/types.js +7 -94
- package/dist/{usePublicRouteParams-ClnV4tnv.d.ts → usePublicRouteParams-MamNgwqe.d.ts} +20 -20
- package/dist/utils.d.ts +24 -117
- package/dist/utils.js +54 -392
- package/docs/README.md +17 -7
- package/docs/api/README.md +4 -402
- package/docs/api/modules.md +301 -871
- package/docs/api-reference/components.md +21 -21
- package/docs/api-reference/deprecated.md +31 -6
- package/docs/api-reference/hooks.md +80 -80
- package/docs/api-reference/rpc-functions.md +78 -3
- package/docs/api-reference/types.md +1 -1
- package/docs/api-reference/utilities.md +1 -1
- package/docs/architecture/README.md +1 -1
- package/docs/core-concepts/events.md +3 -3
- package/docs/core-concepts/organisations.md +6 -6
- package/docs/core-concepts/permissions.md +6 -6
- package/docs/documentation-index.md +12 -18
- package/docs/getting-started/cursor-rules.md +3 -23
- package/docs/getting-started/dependencies.md +650 -0
- package/docs/getting-started/documentation-index.md +1 -1
- package/docs/getting-started/examples/README.md +4 -4
- package/docs/getting-started/examples/full-featured-app.md +1 -1
- package/docs/getting-started/faq.md +2 -2
- package/docs/getting-started/installation-guide.md +20 -7
- package/docs/getting-started/quick-reference.md +4 -4
- package/docs/getting-started/quick-start.md +23 -12
- package/docs/implementation-guides/authentication.md +15 -15
- package/docs/implementation-guides/component-styling.md +1 -1
- package/docs/implementation-guides/data-tables.md +126 -33
- package/docs/implementation-guides/datatable-rbac-usage.md +1 -1
- package/docs/implementation-guides/dynamic-colors.md +3 -3
- package/docs/implementation-guides/file-upload-storage.md +2 -2
- package/docs/implementation-guides/hierarchical-datatable.md +40 -60
- package/docs/implementation-guides/inactivity-tracking.md +3 -3
- package/docs/implementation-guides/large-datasets.md +3 -2
- package/docs/implementation-guides/organisation-security.md +2 -2
- package/docs/implementation-guides/performance.md +2 -2
- package/docs/implementation-guides/permission-enforcement.md +5 -1
- package/docs/migration/V0.3.44_organisation-context-timing-fix.md +1 -1
- package/docs/migration/V0.4.0_rbac-migration.md +6 -6
- package/docs/rbac/MIGRATION_GUIDE.md +819 -0
- package/docs/rbac/RBAC_CONTRACT.md +724 -0
- package/docs/rbac/README.md +17 -8
- package/docs/rbac/advanced-patterns.md +6 -6
- package/docs/rbac/api-reference.md +20 -20
- package/docs/rbac/edge-functions-guide.md +376 -0
- package/docs/rbac/event-based-apps.md +3 -3
- package/docs/rbac/examples.md +41 -41
- package/docs/rbac/getting-started.md +37 -37
- package/docs/rbac/performance.md +1 -1
- package/docs/rbac/quick-start.md +52 -52
- package/docs/rbac/secure-client-protection.md +1 -35
- package/docs/rbac/troubleshooting.md +1 -1
- package/docs/security/README.md +5 -5
- package/docs/standards/0-standards-overview.md +220 -0
- package/docs/standards/1-pace-core-compliance-standards.md +986 -0
- package/docs/standards/2-project-structure-standards.md +949 -0
- package/docs/standards/3-architecture-standards.md +606 -0
- package/docs/standards/4-code-quality-standards.md +728 -0
- package/docs/standards/5-styling-standards.md +348 -0
- package/docs/standards/{07-rbac-and-rls-standard.md → 6-security-rbac-standards.md} +269 -66
- package/docs/standards/7-api-tech-stack-standards.md +662 -0
- package/docs/standards/8-testing-documentation-standards.md +401 -0
- package/docs/standards/9-operations-standards.md +1102 -0
- package/docs/standards/README.md +185 -57
- package/docs/troubleshooting/README.md +4 -4
- package/docs/troubleshooting/common-issues.md +2 -2
- package/docs/troubleshooting/debugging.md +9 -9
- package/docs/troubleshooting/migration.md +4 -4
- package/docs/troubleshooting/organisation-context-setup.md +42 -19
- package/eslint-config-pace-core.cjs +33 -6
- package/package.json +35 -23
- package/scripts/install-cursor-rules.cjs +25 -6
- package/scripts/install-eslint-config.cjs +284 -0
- package/src/__tests__/fixtures/supabase.ts +1 -1
- package/src/__tests__/helpers/__tests__/component-test-utils.test.tsx +3 -3
- package/src/__tests__/helpers/__tests__/optimized-test-setup.test.ts +1 -1
- package/src/__tests__/helpers/__tests__/supabaseMock.test.ts +1 -1
- package/src/__tests__/helpers/__tests__/test-providers.test.tsx +2 -2
- package/src/__tests__/helpers/__tests__/test-utils.test.tsx +13 -13
- package/src/__tests__/helpers/component-test-utils.tsx +1 -1
- package/src/__tests__/helpers/supabaseMock.ts +2 -2
- package/src/__tests__/integration/UserProfile.test.tsx +14 -14
- package/src/__tests__/public-recipe-view.test.ts +38 -9
- package/src/__tests__/rbac/PagePermissionGuard.test.tsx +6 -6
- package/src/__tests__/templates/accessibility.test.template.tsx +9 -9
- package/src/__tests__/templates/component.test.template.tsx +18 -15
- package/src/components/Button/Button.tsx +5 -1
- package/src/components/Calendar/Calendar.tsx +201 -47
- package/src/components/ContextSelector/ContextSelector.tsx +106 -119
- package/src/components/DataTable/AUDIT_REPORT.md +293 -0
- package/src/components/DataTable/__tests__/DataTableCore.test.tsx +10 -2
- package/src/components/DataTable/__tests__/a11y.basic.test.tsx +10 -4
- package/src/components/DataTable/__tests__/test-utils/sharedTestUtils.tsx +9 -9
- package/src/components/DataTable/components/ColumnFilter.tsx +63 -74
- package/src/components/DataTable/components/ColumnVisibilityDropdown.tsx +43 -41
- package/src/components/DataTable/components/DataTableCore.tsx +186 -13
- package/src/components/DataTable/components/DataTableErrorBoundary.tsx +9 -11
- package/src/components/DataTable/components/DataTableLayout.tsx +35 -21
- package/src/components/DataTable/components/EditFields.tsx +23 -3
- package/src/components/DataTable/components/EditableRow.tsx +12 -9
- package/src/components/DataTable/components/EmptyState.tsx +10 -9
- package/src/components/DataTable/components/FilterRow.tsx +2 -4
- package/src/components/DataTable/components/ImportModal.tsx +124 -126
- package/src/components/DataTable/components/LoadingState.tsx +5 -6
- package/src/components/DataTable/components/RowComponent.tsx +12 -0
- package/src/components/DataTable/components/SortIndicator.tsx +50 -0
- package/src/components/DataTable/components/__tests__/COVERAGE_NOTE.md +4 -4
- package/src/components/DataTable/components/__tests__/ColumnFilter.test.tsx +23 -82
- package/src/components/DataTable/components/__tests__/DataTableErrorBoundary.test.tsx +37 -9
- package/src/components/DataTable/components/__tests__/EmptyState.test.tsx +7 -4
- package/src/components/DataTable/components/__tests__/FilterRow.test.tsx +12 -4
- package/src/components/DataTable/components/__tests__/LoadingState.test.tsx +41 -27
- package/src/components/DataTable/components/hooks/usePermissionTracking.ts +0 -4
- package/src/components/DataTable/components/index.ts +2 -1
- package/src/components/DataTable/hooks/__tests__/useDataTableState.test.ts +51 -47
- package/src/components/DataTable/hooks/useDataTablePermissions.ts +24 -21
- package/src/components/DataTable/hooks/useDataTableState.ts +125 -9
- package/src/components/DataTable/hooks/useTableColumns.ts +40 -2
- package/src/components/DataTable/hooks/useTableHandlers.ts +11 -0
- package/src/components/DataTable/types.ts +5 -18
- package/src/components/DataTable/utils/a11yUtils.ts +17 -0
- package/src/components/DatePickerWithTimezone/DatePickerWithTimezone.test.tsx +2 -1
- package/src/components/DatePickerWithTimezone/DatePickerWithTimezone.tsx +11 -15
- package/src/components/DateTimeField/DateTimeField.tsx +10 -9
- package/src/components/Dialog/Dialog.test.tsx +128 -104
- package/src/components/Dialog/Dialog.tsx +742 -24
- package/src/components/ErrorBoundary/ErrorBoundary.tsx +77 -79
- package/src/components/FileDisplay/FileDisplay.test.tsx +4 -2
- package/src/components/FileDisplay/FileDisplay.tsx +23 -17
- package/src/components/FileUpload/FileUpload.test.tsx +52 -14
- package/src/components/FileUpload/FileUpload.tsx +112 -130
- package/src/components/Form/Form.test.tsx +6 -8
- package/src/components/Form/Form.tsx +365 -4
- package/src/components/NavigationMenu/NavigationMenu.test.tsx +14 -13
- package/src/components/NavigationMenu/useNavigationFiltering.ts +11 -21
- package/src/components/PaceAppLayout/PaceAppLayout.test.tsx +6 -4
- package/src/components/PaceAppLayout/PaceAppLayout.tsx +11 -15
- package/src/components/PaceLoginPage/PaceLoginPage.test.tsx +108 -61
- package/src/components/PaceLoginPage/PaceLoginPage.tsx +27 -3
- package/src/components/Progress/Progress.tsx +2 -4
- package/src/components/ProtectedRoute/ProtectedRoute.tsx +8 -8
- package/src/components/Select/Select.tsx +109 -98
- package/src/components/Select/types.ts +4 -1
- package/src/components/UserMenu/UserMenu.tsx +9 -6
- package/src/hooks/__tests__/ServiceHooks.test.tsx +16 -16
- package/src/hooks/__tests__/hooks.integration.test.tsx +55 -57
- package/src/hooks/__tests__/useAppConfig.unit.test.ts +129 -67
- package/src/hooks/__tests__/useFocusTrap.unit.test.tsx +97 -97
- package/src/hooks/__tests__/usePublicEvent.simple.test.ts +149 -67
- package/src/hooks/__tests__/usePublicEvent.test.ts +149 -79
- package/src/hooks/__tests__/usePublicEvent.unit.test.ts +158 -109
- package/src/hooks/__tests__/useSessionDraft.test.ts +163 -0
- package/src/hooks/__tests__/useSessionRestoration.unit.test.tsx +10 -5
- package/src/hooks/public/usePublicEvent.ts +67 -195
- package/src/hooks/public/usePublicEventLogo.test.ts +70 -17
- package/src/hooks/public/usePublicEventLogo.ts +24 -14
- package/src/hooks/public/usePublicFileDisplay.ts +2 -2
- package/src/hooks/public/usePublicRouteParams.ts +5 -5
- package/src/hooks/useAppConfig.ts +28 -26
- package/src/hooks/useEventTheme.test.ts +217 -239
- package/src/hooks/useEventTheme.ts +16 -28
- package/src/hooks/useFileDisplay.ts +2 -2
- package/src/hooks/useOrganisationPermissions.ts +5 -7
- package/src/hooks/useQueryCache.ts +0 -1
- package/src/hooks/useSessionDraft.ts +380 -0
- package/src/hooks/useSessionRestoration.ts +3 -1
- package/src/icons/index.ts +27 -0
- package/src/index.ts +5 -0
- package/src/providers/OrganisationProvider.tsx +23 -14
- package/src/providers/UnifiedAuthProvider.smoke.test.tsx +21 -21
- package/src/providers/__tests__/AuthProvider.test.tsx +21 -21
- package/src/providers/__tests__/EventProvider.test.tsx +61 -61
- package/src/providers/__tests__/InactivityProvider.test.tsx +56 -56
- package/src/providers/__tests__/OrganisationProvider.test.tsx +75 -75
- package/src/providers/__tests__/ProviderLifecycle.test.tsx +37 -37
- package/src/providers/__tests__/UnifiedAuthProvider.test.tsx +103 -103
- package/src/providers/services/EventServiceProvider.tsx +1 -24
- package/src/providers/services/UnifiedAuthProvider.tsx +5 -48
- package/src/providers/services/__tests__/AuthServiceProvider.integration.test.tsx +7 -7
- package/src/providers/services/__tests__/UnifiedAuthProvider.integration.test.tsx +13 -10
- package/src/rbac/__tests__/adapters.comprehensive.test.tsx +7 -457
- package/src/rbac/__tests__/auth-rbac.e2e.test.tsx +33 -7
- package/src/rbac/adapters.tsx +7 -295
- package/src/rbac/api.test.ts +44 -56
- package/src/rbac/api.ts +10 -17
- package/src/rbac/cache-invalidation.ts +0 -1
- package/src/rbac/compliance/index.ts +10 -0
- package/src/rbac/compliance/pattern-detector.ts +553 -0
- package/src/rbac/compliance/runtime-compliance.ts +22 -0
- package/src/rbac/components/AccessDenied.tsx +150 -0
- package/src/rbac/components/NavigationGuard.tsx +12 -20
- package/src/rbac/components/PagePermissionGuard.tsx +4 -24
- package/src/rbac/components/__tests__/NavigationGuard.test.tsx +21 -8
- package/src/rbac/components/index.ts +3 -41
- package/src/rbac/eslint-rules.js +1 -1
- package/src/rbac/hooks/index.ts +0 -3
- package/src/rbac/hooks/permissions/index.ts +0 -3
- package/src/rbac/hooks/permissions/useAccessLevel.ts +4 -8
- package/src/rbac/hooks/usePermissions.ts +0 -3
- package/src/rbac/hooks/useResolvedScope.test.ts +57 -47
- package/src/rbac/hooks/useResolvedScope.ts +58 -140
- package/src/rbac/hooks/useResourcePermissions.test.ts +124 -38
- package/src/rbac/hooks/useResourcePermissions.ts +139 -48
- package/src/rbac/hooks/useRoleManagement.test.ts +65 -22
- package/src/rbac/hooks/useRoleManagement.ts +147 -19
- package/src/rbac/hooks/useSecureSupabase.ts +4 -8
- package/src/rbac/index.ts +7 -9
- package/src/rbac/utils/contextValidator.ts +9 -7
- package/src/services/AuthService.ts +130 -18
- package/src/services/EventService.ts +4 -97
- package/src/services/InactivityService.ts +16 -0
- package/src/services/OrganisationService.ts +7 -44
- package/src/services/__tests__/OrganisationService.test.ts +26 -8
- package/src/services/base/BaseService.ts +0 -3
- package/src/styles/core.css +7 -0
- package/src/theming/__tests__/parseEventColours.test.ts +9 -3
- package/src/theming/parseEventColours.ts +22 -10
- package/src/types/database.generated.ts +4733 -3809
- package/src/utils/__tests__/lazyLoad.unit.test.tsx +42 -39
- package/src/utils/__tests__/organisationContext.unit.test.ts +9 -10
- package/src/utils/context/organisationContext.test.ts +13 -28
- package/src/utils/context/organisationContext.ts +21 -52
- package/src/utils/dynamic/dynamicUtils.ts +1 -1
- package/src/utils/file-reference/index.ts +39 -15
- package/src/utils/formatting/formatDateTime.test.ts +3 -2
- package/src/utils/google-places/loadGoogleMapsScript.ts +29 -4
- package/src/utils/index.ts +4 -1
- package/src/utils/persistence/__tests__/keyDerivation.test.ts +135 -0
- package/src/utils/persistence/__tests__/sensitiveFieldDetection.test.ts +123 -0
- package/src/utils/persistence/keyDerivation.ts +304 -0
- package/src/utils/persistence/sensitiveFieldDetection.ts +212 -0
- package/src/utils/security/secureStorage.ts +5 -5
- package/src/utils/storage/README.md +1 -1
- package/src/utils/storage/helpers.ts +3 -3
- package/src/utils/supabase/createBaseClient.ts +147 -0
- package/src/utils/timezone/timezone.test.ts +1 -2
- package/src/utils/timezone/timezone.ts +1 -1
- package/src/utils/validation/csrf.ts +4 -4
- package/cursor-rules/00-pace-core-compliance.mdc +0 -331
- package/cursor-rules/01-standards-compliance.mdc +0 -244
- package/cursor-rules/04-testing-standards.mdc +0 -268
- package/cursor-rules/05-bug-reports-and-features.mdc +0 -246
- package/cursor-rules/06-code-quality.mdc +0 -309
- package/cursor-rules/07-tech-stack-compliance.mdc +0 -214
- package/cursor-rules/CHANGELOG.md +0 -119
- package/cursor-rules/README.md +0 -192
- package/dist/DataTable-AOVNCPTX.js +0 -175
- package/dist/DataTable-AOVNCPTX.js.map +0 -1
- package/dist/UnifiedAuthProvider-4SBX4LU5.js +0 -18
- package/dist/UnifiedAuthProvider-4SBX4LU5.js.map +0 -1
- package/dist/api-O6HTBX5Y.js +0 -52
- package/dist/api-O6HTBX5Y.js.map +0 -1
- package/dist/audit-V53FV5AG.js +0 -17
- package/dist/audit-V53FV5AG.js.map +0 -1
- package/dist/chunk-5DRSZLL2.js.map +0 -1
- package/dist/chunk-63FOKYGO.js.map +0 -1
- package/dist/chunk-6COVEUS7.js.map +0 -1
- package/dist/chunk-AFVQODI2.js +0 -263
- package/dist/chunk-AFVQODI2.js.map +0 -1
- package/dist/chunk-DGUM43GV.js.map +0 -1
- package/dist/chunk-E66EQZE6.js.map +0 -1
- package/dist/chunk-EFN2EIMK.js.map +0 -1
- package/dist/chunk-FFQEQTNW.js.map +0 -1
- package/dist/chunk-FMUCXFII.js.map +0 -1
- package/dist/chunk-G37KK66H.js.map +0 -1
- package/dist/chunk-G7QEZTYQ.js +0 -2053
- package/dist/chunk-G7QEZTYQ.js.map +0 -1
- package/dist/chunk-HU2C6SSC.js.map +0 -1
- package/dist/chunk-IHB5DR3H.js.map +0 -1
- package/dist/chunk-IVOFDYWT.js.map +0 -1
- package/dist/chunk-J36DSWQK.js.map +0 -1
- package/dist/chunk-JGRYX5UX.js.map +0 -1
- package/dist/chunk-KQCRWDSA.js +0 -1
- package/dist/chunk-KQCRWDSA.js.map +0 -1
- package/dist/chunk-L4OXEN46.js.map +0 -1
- package/dist/chunk-LMC26NLJ.js +0 -84
- package/dist/chunk-LMC26NLJ.js.map +0 -1
- package/dist/chunk-M43Y4SSO.js.map +0 -1
- package/dist/chunk-M7MPQISP.js.map +0 -1
- package/dist/chunk-NTM7ZSB6.js.map +0 -1
- package/dist/chunk-PWLANIRT.js.map +0 -1
- package/dist/chunk-QXHPKYJV.js.map +0 -1
- package/dist/chunk-RGAWHO7N.js.map +0 -1
- package/dist/chunk-UPPMRMYG.js.map +0 -1
- package/dist/chunk-VBXEHIUJ.js.map +0 -1
- package/dist/chunk-ZSAAAMVR.js.map +0 -1
- package/dist/components.js.map +0 -1
- package/dist/contextValidator-5OGXSPKS.js +0 -9
- package/dist/contextValidator-5OGXSPKS.js.map +0 -1
- package/dist/eslint-rules/pace-core-compliance.cjs +0 -510
- package/dist/hooks.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/providers.js.map +0 -1
- package/dist/rbac/eslint-rules.js.map +0 -1
- package/dist/rbac/index.js.map +0 -1
- package/dist/styles/index.js.map +0 -1
- package/dist/theming/runtime.js.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/utils.js.map +0 -1
- package/docs/best-practices/README.md +0 -472
- package/docs/best-practices/accessibility.md +0 -601
- package/docs/best-practices/common-patterns.md +0 -516
- package/docs/best-practices/deployment.md +0 -1103
- package/docs/best-practices/performance.md +0 -1328
- package/docs/best-practices/security.md +0 -940
- package/docs/best-practices/testing.md +0 -1034
- package/docs/rbac/compliance/compliance-guide.md +0 -544
- package/docs/standards/01-architecture-standard.md +0 -44
- package/docs/standards/02-api-and-rpc-standard.md +0 -39
- package/docs/standards/03-component-standard.md +0 -32
- package/docs/standards/04-code-style-standard.md +0 -32
- package/docs/standards/05-security-standard.md +0 -44
- package/docs/standards/06-testing-and-docs-standard.md +0 -29
- package/docs/standards/pace-core-compliance.md +0 -432
- package/scripts/audit/core/checks/accessibility.cjs +0 -197
- package/scripts/audit/core/checks/api-usage.cjs +0 -191
- package/scripts/audit/core/checks/bundle.cjs +0 -142
- package/scripts/audit/core/checks/compliance.cjs +0 -2706
- package/scripts/audit/core/checks/config.cjs +0 -54
- package/scripts/audit/core/checks/coverage.cjs +0 -84
- package/scripts/audit/core/checks/dependencies.cjs +0 -994
- package/scripts/audit/core/checks/documentation.cjs +0 -268
- package/scripts/audit/core/checks/environment.cjs +0 -116
- package/scripts/audit/core/checks/error-handling.cjs +0 -340
- package/scripts/audit/core/checks/forms.cjs +0 -172
- package/scripts/audit/core/checks/heuristics.cjs +0 -68
- package/scripts/audit/core/checks/hooks.cjs +0 -334
- package/scripts/audit/core/checks/imports.cjs +0 -244
- package/scripts/audit/core/checks/performance.cjs +0 -325
- package/scripts/audit/core/checks/routes.cjs +0 -117
- package/scripts/audit/core/checks/state.cjs +0 -130
- package/scripts/audit/core/checks/structure.cjs +0 -65
- package/scripts/audit/core/checks/style.cjs +0 -584
- package/scripts/audit/core/checks/testing.cjs +0 -122
- package/scripts/audit/core/checks/typescript.cjs +0 -61
- package/scripts/audit/core/scanner.cjs +0 -199
- package/scripts/audit/core/utils.cjs +0 -137
- package/scripts/audit/index.cjs +0 -223
- package/scripts/audit/reporters/console.cjs +0 -151
- package/scripts/audit/reporters/json.cjs +0 -54
- package/scripts/audit/reporters/markdown.cjs +0 -124
- package/scripts/audit-consuming-app.cjs +0 -86
- package/src/components/DataTable/components/DataTableBody.tsx +0 -454
- package/src/components/DataTable/components/DraggableColumnHeader.tsx +0 -156
- package/src/components/DataTable/components/ExpandButton.tsx +0 -113
- package/src/components/DataTable/components/GroupHeader.tsx +0 -54
- package/src/components/DataTable/components/ViewRowModal.tsx +0 -68
- package/src/components/DataTable/components/VirtualizedDataTable.tsx +0 -525
- package/src/components/DataTable/components/__tests__/ExpandButton.test.tsx +0 -462
- package/src/components/DataTable/components/__tests__/GroupHeader.test.tsx +0 -393
- package/src/components/DataTable/components/__tests__/ViewRowModal.test.tsx +0 -476
- package/src/components/DataTable/components/__tests__/VirtualizedDataTable.test.tsx +0 -128
- package/src/components/DataTable/core/DataTableContext.tsx +0 -216
- package/src/components/DataTable/core/__tests__/DataTableContext.test.tsx +0 -136
- package/src/components/DataTable/hooks/__tests__/useColumnReordering.test.ts +0 -570
- package/src/components/DataTable/hooks/useColumnReordering.ts +0 -123
- package/src/components/DataTable/utils/debugTools.ts +0 -514
- package/src/eslint-rules/pace-core-compliance.js +0 -638
- package/src/rbac/components/EnhancedNavigationMenu.test.tsx +0 -555
- package/src/rbac/components/EnhancedNavigationMenu.tsx +0 -293
- package/src/rbac/components/NavigationProvider.test.tsx +0 -481
- package/src/rbac/components/NavigationProvider.tsx +0 -345
- package/src/rbac/components/PagePermissionProvider.test.tsx +0 -476
- package/src/rbac/components/PagePermissionProvider.tsx +0 -279
- package/src/rbac/components/PermissionEnforcer.tsx +0 -312
- package/src/rbac/components/RoleBasedRouter.tsx +0 -440
- package/src/rbac/components/SecureDataProvider.test.tsx +0 -543
- package/src/rbac/components/SecureDataProvider.tsx +0 -339
- package/src/rbac/components/__tests__/EnhancedNavigationMenu.test.tsx +0 -620
- package/src/rbac/components/__tests__/NavigationProvider.test.tsx +0 -726
- package/src/rbac/components/__tests__/PagePermissionProvider.test.tsx +0 -661
- package/src/rbac/components/__tests__/PermissionEnforcer.test.tsx +0 -881
- package/src/rbac/components/__tests__/RoleBasedRouter.test.tsx +0 -783
- package/src/rbac/components/__tests__/SecureDataProvider.fixed.test.tsx +0 -645
- package/src/rbac/components/__tests__/SecureDataProvider.test.tsx +0 -659
- package/src/rbac/hooks/permissions/useCachedPermissions.ts +0 -79
- package/src/rbac/hooks/permissions/useHasAllPermissions.ts +0 -90
- package/src/rbac/hooks/permissions/useHasAnyPermission.ts +0 -90
package/dist/rbac/index.js
CHANGED
|
@@ -1,207 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
RBACErrorCode,
|
|
16
|
-
RPCFunction,
|
|
17
|
-
RoleBasedRouter,
|
|
18
|
-
SecureDataProvider,
|
|
19
|
-
checkRuntimeCompliance,
|
|
20
|
-
createRBACExpressMiddleware,
|
|
21
|
-
createRBACMiddleware,
|
|
22
|
-
getCustomAuthCodeFixes,
|
|
23
|
-
getDirectSupabaseAuthFixes,
|
|
24
|
-
getDuplicateConfigFixes,
|
|
25
|
-
getQuickFixes,
|
|
26
|
-
getSetupIssues,
|
|
27
|
-
getUnprotectedPageFixes,
|
|
28
|
-
hasAnyPermissionCached,
|
|
29
|
-
hasPermissionCached,
|
|
30
|
-
isRBACInitialized,
|
|
31
|
-
isValidPermission,
|
|
32
|
-
useNavigationPermissions,
|
|
33
|
-
usePagePermissions,
|
|
34
|
-
useRoleBasedRouter,
|
|
35
|
-
useSecureData,
|
|
36
|
-
validateAndWarn,
|
|
37
|
-
validateDatabaseConfiguration,
|
|
38
|
-
validateRBACSetup,
|
|
39
|
-
withAccessLevelGuard,
|
|
40
|
-
withPermissionGuard,
|
|
41
|
-
withRoleGuard
|
|
42
|
-
} from "../chunk-G7QEZTYQ.js";
|
|
43
|
-
import {
|
|
44
|
-
SECURE_CLIENT_SYMBOL,
|
|
45
|
-
SecureSupabaseClient,
|
|
46
|
-
createSecureClient,
|
|
47
|
-
fromSupabaseClient,
|
|
48
|
-
isSecureClient,
|
|
49
|
-
useAccessLevel,
|
|
50
|
-
useCachedPermissions,
|
|
51
|
-
useCan,
|
|
52
|
-
useHasAllPermissions,
|
|
53
|
-
useHasAnyPermission,
|
|
54
|
-
useMultiplePermissions,
|
|
55
|
-
usePermissions,
|
|
56
|
-
useRBAC,
|
|
57
|
-
useResolvedScope,
|
|
58
|
-
useResourcePermissions,
|
|
59
|
-
useRoleManagement,
|
|
60
|
-
useSecureSupabase,
|
|
61
|
-
warnIfInsecureClient
|
|
62
|
-
} from "../chunk-HU2C6SSC.js";
|
|
63
|
-
import "../chunk-NTM7ZSB6.js";
|
|
64
|
-
import "../chunk-KQCRWDSA.js";
|
|
65
|
-
import "../chunk-IHB5DR3H.js";
|
|
66
|
-
import {
|
|
67
|
-
CACHE_PATTERNS,
|
|
68
|
-
RBACCache,
|
|
69
|
-
RBACEngine,
|
|
70
|
-
clearInFlightRequests,
|
|
71
|
-
createRBACConfig,
|
|
72
|
-
createRBACEngine,
|
|
73
|
-
disablePerformanceMonitoring,
|
|
74
|
-
enablePerformanceMonitoring,
|
|
75
|
-
getAccessLevel,
|
|
76
|
-
getInFlightRequestCount,
|
|
77
|
-
getPerformanceMetrics,
|
|
78
|
-
getPerformanceSummary,
|
|
79
|
-
getPermissionMap,
|
|
80
|
-
getRBACConfig,
|
|
81
|
-
getRBACLogger,
|
|
82
|
-
getRoleContext,
|
|
83
|
-
hasAllPermissions,
|
|
84
|
-
hasAnyPermission,
|
|
85
|
-
hasPermission,
|
|
86
|
-
isDebugMode,
|
|
87
|
-
isDevelopmentMode,
|
|
88
|
-
isPerformanceMonitoringEnabled,
|
|
89
|
-
isPermitted,
|
|
90
|
-
isPermittedCached,
|
|
91
|
-
rbacCache,
|
|
92
|
-
recordAuditEvent,
|
|
93
|
-
recordPermissionCheck,
|
|
94
|
-
resetPerformanceMetrics,
|
|
95
|
-
resolveAppContext,
|
|
96
|
-
setupRBAC
|
|
97
|
-
} from "../chunk-EFN2EIMK.js";
|
|
98
|
-
import {
|
|
99
|
-
RBACAuditManager,
|
|
100
|
-
createAuditManager,
|
|
101
|
-
emitAuditEvent,
|
|
102
|
-
getGlobalAuditManager,
|
|
103
|
-
setGlobalAuditManager
|
|
104
|
-
} from "../chunk-63FOKYGO.js";
|
|
105
|
-
import "../chunk-AFVQODI2.js";
|
|
106
|
-
import "../chunk-QXHPKYJV.js";
|
|
107
|
-
import "../chunk-M7MPQISP.js";
|
|
108
|
-
import "../chunk-FMUCXFII.js";
|
|
109
|
-
import "../chunk-VBXEHIUJ.js";
|
|
110
|
-
import "../chunk-PWLANIRT.js";
|
|
111
|
-
import "../chunk-DGUM43GV.js";
|
|
112
|
-
export {
|
|
113
|
-
ALL_PERMISSIONS,
|
|
114
|
-
AccessLevelGuard,
|
|
115
|
-
CACHE_PATTERNS,
|
|
116
|
-
EVENT_APP_PERMISSIONS,
|
|
117
|
-
EnhancedNavigationMenu,
|
|
118
|
-
GLOBAL_PERMISSIONS,
|
|
119
|
-
NavigationGuard,
|
|
120
|
-
NavigationProvider,
|
|
121
|
-
ORGANISATION_PERMISSIONS,
|
|
122
|
-
PAGE_PERMISSIONS,
|
|
123
|
-
PagePermissionGuard,
|
|
124
|
-
PagePermissionProvider,
|
|
125
|
-
PermissionEnforcer,
|
|
126
|
-
PermissionGuard,
|
|
127
|
-
RBACAuditManager,
|
|
128
|
-
RBACCache,
|
|
129
|
-
RBACEngine,
|
|
130
|
-
RBACErrorCode,
|
|
131
|
-
RPCFunction,
|
|
132
|
-
RoleBasedRouter,
|
|
133
|
-
SECURE_CLIENT_SYMBOL,
|
|
134
|
-
SecureDataProvider,
|
|
135
|
-
SecureSupabaseClient,
|
|
136
|
-
checkRuntimeCompliance,
|
|
137
|
-
clearInFlightRequests,
|
|
138
|
-
createAuditManager,
|
|
139
|
-
createRBACConfig,
|
|
140
|
-
createRBACEngine,
|
|
141
|
-
createRBACExpressMiddleware,
|
|
142
|
-
createRBACMiddleware,
|
|
143
|
-
createSecureClient,
|
|
144
|
-
disablePerformanceMonitoring,
|
|
145
|
-
emitAuditEvent,
|
|
146
|
-
enablePerformanceMonitoring,
|
|
147
|
-
fromSupabaseClient,
|
|
148
|
-
getAccessLevel,
|
|
149
|
-
getCustomAuthCodeFixes,
|
|
150
|
-
getDirectSupabaseAuthFixes,
|
|
151
|
-
getDuplicateConfigFixes,
|
|
152
|
-
getGlobalAuditManager,
|
|
153
|
-
getInFlightRequestCount,
|
|
154
|
-
getPerformanceMetrics,
|
|
155
|
-
getPerformanceSummary,
|
|
156
|
-
getPermissionMap,
|
|
157
|
-
getQuickFixes,
|
|
158
|
-
getRBACConfig,
|
|
159
|
-
getRBACLogger,
|
|
160
|
-
getRoleContext,
|
|
161
|
-
getSetupIssues,
|
|
162
|
-
getUnprotectedPageFixes,
|
|
163
|
-
hasAllPermissions,
|
|
164
|
-
hasAnyPermission,
|
|
165
|
-
hasAnyPermissionCached,
|
|
166
|
-
hasPermission,
|
|
167
|
-
hasPermissionCached,
|
|
168
|
-
isDebugMode,
|
|
169
|
-
isDevelopmentMode,
|
|
170
|
-
isPerformanceMonitoringEnabled,
|
|
171
|
-
isPermitted,
|
|
172
|
-
isPermittedCached,
|
|
173
|
-
isRBACInitialized,
|
|
174
|
-
isSecureClient,
|
|
175
|
-
isValidPermission,
|
|
176
|
-
rbacCache,
|
|
177
|
-
recordAuditEvent,
|
|
178
|
-
recordPermissionCheck,
|
|
179
|
-
resetPerformanceMetrics,
|
|
180
|
-
resolveAppContext,
|
|
181
|
-
setGlobalAuditManager,
|
|
182
|
-
setupRBAC,
|
|
183
|
-
useAccessLevel,
|
|
184
|
-
useCachedPermissions,
|
|
185
|
-
useCan,
|
|
186
|
-
useHasAllPermissions,
|
|
187
|
-
useHasAnyPermission,
|
|
188
|
-
useMultiplePermissions,
|
|
189
|
-
useNavigationPermissions,
|
|
190
|
-
usePagePermissions,
|
|
191
|
-
usePermissions,
|
|
192
|
-
useRBAC,
|
|
193
|
-
useResolvedScope,
|
|
194
|
-
useResourcePermissions,
|
|
195
|
-
useRoleBasedRouter,
|
|
196
|
-
useRoleManagement,
|
|
197
|
-
useSecureData,
|
|
198
|
-
useSecureSupabase,
|
|
199
|
-
validateAndWarn,
|
|
200
|
-
validateDatabaseConfiguration,
|
|
201
|
-
validateRBACSetup,
|
|
202
|
-
warnIfInsecureClient,
|
|
203
|
-
withAccessLevelGuard,
|
|
204
|
-
withPermissionGuard,
|
|
205
|
-
withRoleGuard
|
|
206
|
-
};
|
|
207
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
export { ALL_PERMISSIONS, EVENT_APP_PERMISSIONS, GLOBAL_PERMISSIONS, NavigationGuard, ORGANISATION_PERMISSIONS, PAGE_PERMISSIONS, PagePermissionGuard, RBACErrorCode, RPCFunction, checkRuntimeCompliance, createRBACExpressMiddleware, createRBACMiddleware, getCustomAuthCodeFixes, getDirectSupabaseAuthFixes, getDuplicateConfigFixes, getQuickFixes, getSetupIssues, getUnprotectedPageFixes, isRBACInitialized, isValidPermission, validateAndWarn, validateDatabaseConfiguration, validateRBACSetup, withAccessLevelGuard, withPermissionGuard, withRoleGuard } from '../chunk-GHYHJTYV.js';
|
|
2
|
+
export { AccessDenied } from '../chunk-6F3IILHI.js';
|
|
3
|
+
export { SECURE_CLIENT_SYMBOL, SecureSupabaseClient, createSecureClient, fromSupabaseClient, isSecureClient, useAccessLevel, useCan, useMultiplePermissions, usePermissions, useRBAC, useResolvedScope, useResourcePermissions, useRoleManagement, useSecureSupabase, warnIfInsecureClient } from '../chunk-BM4CQ5P3.js';
|
|
4
|
+
import '../chunk-VBCS3DUA.js';
|
|
5
|
+
import '../chunk-C7NSAPTL.js';
|
|
6
|
+
import '../chunk-FTCRZOG2.js';
|
|
7
|
+
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-ZFYPMX46.js';
|
|
8
|
+
export { RBACAuditManager, createAuditManager, emitAuditEvent, getGlobalAuditManager, setGlobalAuditManager } from '../chunk-AHU7G2R5.js';
|
|
9
|
+
import '../chunk-4SXLQIZO.js';
|
|
10
|
+
import '../chunk-OJ4SKRSV.js';
|
|
11
|
+
import '../chunk-7ILTDCL2.js';
|
|
12
|
+
import '../chunk-HF6O3O37.js';
|
|
13
|
+
import '../chunk-TTRFSOKR.js';
|
|
14
|
+
import '../chunk-3RG5ZIWI.js';
|
package/dist/styles/index.js
CHANGED
|
@@ -1,12 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
getStylePath,
|
|
4
|
-
styleConfig
|
|
5
|
-
} from "../chunk-5DRSZLL2.js";
|
|
6
|
-
import "../chunk-DGUM43GV.js";
|
|
7
|
-
export {
|
|
8
|
-
getAllStylePaths,
|
|
9
|
-
getStylePath,
|
|
10
|
-
styleConfig
|
|
11
|
-
};
|
|
12
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
export { getAllStylePaths, getStylePath, styleConfig } from '../chunk-UH3NTO3F.js';
|
|
2
|
+
import '../chunk-3RG5ZIWI.js';
|
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
* Parse and normalize event_colours to PaletteData
|
|
12
12
|
*
|
|
13
13
|
* Supports input formats:
|
|
14
|
-
* - Object with 'main', 'sec', 'acc' keys
|
|
14
|
+
* - Object with 'main', 'sec', 'acc' keys (standard format)
|
|
15
|
+
* - Object with 'ev-main', 'ev-sec', 'ev-acc' keys (database format with prefix)
|
|
15
16
|
* - JSON string that will be parsed
|
|
16
17
|
*
|
|
17
18
|
* Only includes explicitly defined color values. Does not fill
|
|
@@ -33,6 +34,18 @@
|
|
|
33
34
|
* // Returns: { main: { 500: {...}, raw: {...} }, sec: { 500: {...} }, acc: { 500: {...} } }
|
|
34
35
|
* ```
|
|
35
36
|
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```ts
|
|
39
|
+
* // Database format with ev- prefix
|
|
40
|
+
* const colours = {
|
|
41
|
+
* 'ev-main': { 500: { L: 0.5, C: 0.2, H: 0 } },
|
|
42
|
+
* 'ev-sec': { 500: { L: 0.5, C: 0.2, H: 120 } },
|
|
43
|
+
* 'ev-acc': { 500: { L: 0.5, C: 0.2, H: 240 } }
|
|
44
|
+
* };
|
|
45
|
+
* const palette = parseAndNormalizeEventColours(colours);
|
|
46
|
+
* // Returns: { main: { 500: {...} }, sec: { 500: {...} }, acc: { 500: {...} } }
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
36
49
|
*/
|
|
37
50
|
declare function parseAndNormalizeEventColours(input: unknown): {
|
|
38
51
|
main: any;
|
package/dist/theming/runtime.js
CHANGED
|
@@ -1,19 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
generateSSRThemeCSS,
|
|
5
|
-
getCurrentThemeData,
|
|
6
|
-
isDynamicThemingActive,
|
|
7
|
-
parseAndNormalizeEventColours
|
|
8
|
-
} from "../chunk-L4OXEN46.js";
|
|
9
|
-
import "../chunk-PWLANIRT.js";
|
|
10
|
-
import "../chunk-DGUM43GV.js";
|
|
11
|
-
export {
|
|
12
|
-
applyPalette,
|
|
13
|
-
clearPalette,
|
|
14
|
-
generateSSRThemeCSS,
|
|
15
|
-
getCurrentThemeData,
|
|
16
|
-
isDynamicThemingActive,
|
|
17
|
-
parseAndNormalizeEventColours
|
|
18
|
-
};
|
|
19
|
-
//# sourceMappingURL=runtime.js.map
|
|
1
|
+
export { applyPalette, clearPalette, generateSSRThemeCSS, getCurrentThemeData, isDynamicThemingActive, parseAndNormalizeEventColours } from '../chunk-ZKAWKYT4.js';
|
|
2
|
+
import '../chunk-TTRFSOKR.js';
|
|
3
|
+
import '../chunk-3RG5ZIWI.js';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { SupabaseClient } from '@supabase/supabase-js';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { ClassValue } from 'clsx';
|
|
4
|
+
import { D as Database } from './database.generated-CcnC_DRc.js';
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* Hook for manual session tracking (event switches and session expiration).
|
|
@@ -61,6 +62,107 @@ declare function calculatePasswordStrength(password: string): {
|
|
|
61
62
|
level: 'very-weak' | 'weak' | 'fair' | 'good' | 'strong';
|
|
62
63
|
};
|
|
63
64
|
|
|
65
|
+
/**
|
|
66
|
+
* @file HTML Sanitization Utilities
|
|
67
|
+
* @package @jmruthers/pace-core
|
|
68
|
+
* @module Utils/Validation/HTMLSanitization
|
|
69
|
+
* @since 0.4.36
|
|
70
|
+
*
|
|
71
|
+
* Utilities for safely rendering HTML content.
|
|
72
|
+
* Provides sanitization and validation for basic HTML elements.
|
|
73
|
+
*/
|
|
74
|
+
/**
|
|
75
|
+
* Basic HTML sanitization function using regex-based approach
|
|
76
|
+
* Removes potentially dangerous elements and attributes while preserving basic formatting
|
|
77
|
+
* This approach is more reliable in SSR environments and doesn't require DOM manipulation
|
|
78
|
+
*
|
|
79
|
+
* @param html - The HTML string to sanitize
|
|
80
|
+
* @returns Sanitized HTML string safe for rendering
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```tsx
|
|
84
|
+
* const safeHtml = sanitizeHtml('<p>Hello <strong>world</strong>!</p>');
|
|
85
|
+
* // Returns: '<p>Hello <strong>world</strong>!</p>'
|
|
86
|
+
*
|
|
87
|
+
* const dangerousHtml = sanitizeHtml('<script>alert("xss")</script><p>Safe content</p>');
|
|
88
|
+
* // Returns: '<p>Safe content</p>'
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
declare function sanitizeHtml(html: string): string;
|
|
92
|
+
/**
|
|
93
|
+
* Validates if HTML content is safe for rendering
|
|
94
|
+
*
|
|
95
|
+
* @param html - The HTML string to validate
|
|
96
|
+
* @returns Object with validation result and any warnings
|
|
97
|
+
*
|
|
98
|
+
* @example
|
|
99
|
+
* ```tsx
|
|
100
|
+
* const validation = validateHtml('<p>Safe content</p>');
|
|
101
|
+
* console.log(validation.isValid); // true
|
|
102
|
+
* console.log(validation.warnings); // []
|
|
103
|
+
* ```
|
|
104
|
+
*/
|
|
105
|
+
declare function validateHtml(html: string): {
|
|
106
|
+
isValid: boolean;
|
|
107
|
+
warnings: string[];
|
|
108
|
+
};
|
|
109
|
+
/**
|
|
110
|
+
* Safely renders HTML content with sanitization
|
|
111
|
+
*
|
|
112
|
+
* @param html - The HTML string to render
|
|
113
|
+
* @param options - Rendering options
|
|
114
|
+
* @returns Object with sanitized HTML and validation info
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```tsx
|
|
118
|
+
* const result = renderSafeHtml('<p>Hello <strong>world</strong>!</p>');
|
|
119
|
+
* console.log(result.html); // Sanitized HTML
|
|
120
|
+
* console.log(result.isValid); // true
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
declare function renderSafeHtml(html: string, options?: {
|
|
124
|
+
strict?: boolean;
|
|
125
|
+
logWarnings?: boolean;
|
|
126
|
+
}): {
|
|
127
|
+
html: string;
|
|
128
|
+
isValid: boolean;
|
|
129
|
+
warnings: string[];
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* @file Input Sanitization Layer
|
|
134
|
+
* @package @jmruthers/pace-core
|
|
135
|
+
* @module Utils/Validation/Sanitization
|
|
136
|
+
* @since 0.1.0
|
|
137
|
+
*
|
|
138
|
+
* Comprehensive input sanitization utilities to prevent XSS, injection attacks,
|
|
139
|
+
* and other security vulnerabilities.
|
|
140
|
+
*/
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Sanitization options for different contexts
|
|
144
|
+
*/
|
|
145
|
+
interface SanitizationOptions {
|
|
146
|
+
allowHtml?: boolean;
|
|
147
|
+
allowedTags?: string[];
|
|
148
|
+
maxLength?: number;
|
|
149
|
+
trim?: boolean;
|
|
150
|
+
removeScripts?: boolean;
|
|
151
|
+
removeEvents?: boolean;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Sanitizes user input by removing potentially dangerous characters and patterns
|
|
155
|
+
*/
|
|
156
|
+
declare function sanitizeUserInput(input: string, options?: SanitizationOptions): string;
|
|
157
|
+
/**
|
|
158
|
+
* Validates and sanitizes form data using Zod schemas
|
|
159
|
+
*/
|
|
160
|
+
declare function sanitizeFormData<T>(data: unknown, schema: z.ZodSchema<T>, sanitizationRules?: Record<string, SanitizationOptions>): {
|
|
161
|
+
success: boolean;
|
|
162
|
+
data?: T;
|
|
163
|
+
error?: string;
|
|
164
|
+
};
|
|
165
|
+
|
|
64
166
|
/**
|
|
65
167
|
* @file Secure Data Access Utility
|
|
66
168
|
* @package @jmruthers/pace-core
|
|
@@ -136,6 +238,78 @@ declare function getCurrentAppName(): string;
|
|
|
136
238
|
*/
|
|
137
239
|
declare function getCurrentAppId(): string;
|
|
138
240
|
|
|
241
|
+
/**
|
|
242
|
+
* @file Base Supabase Client Creation Utility
|
|
243
|
+
* @package @jmruthers/pace-core
|
|
244
|
+
* @module Utils/Supabase
|
|
245
|
+
* @since 0.6.6
|
|
246
|
+
*
|
|
247
|
+
* Restricted wrapper for creating the base Supabase client for UnifiedAuthProvider.
|
|
248
|
+
* This is the ONLY acceptable way to create a Supabase client in consuming apps.
|
|
249
|
+
*
|
|
250
|
+
* @example
|
|
251
|
+
* ```tsx
|
|
252
|
+
* // ✅ CORRECT: In main.tsx, App.tsx, or lib/supabase.ts
|
|
253
|
+
* import { createBaseClient } from '@jmruthers/pace-core';
|
|
254
|
+
*
|
|
255
|
+
* const supabase = createBaseClient(
|
|
256
|
+
* import.meta.env.VITE_SUPABASE_URL,
|
|
257
|
+
* import.meta.env.VITE_SUPABASE_PUBLISHABLE_KEY
|
|
258
|
+
* );
|
|
259
|
+
*
|
|
260
|
+
* // Pass to UnifiedAuthProvider
|
|
261
|
+
* <UnifiedAuthProvider supabaseClient={supabase} ... />
|
|
262
|
+
* ```
|
|
263
|
+
*/
|
|
264
|
+
|
|
265
|
+
/**
|
|
266
|
+
* Create a base Supabase client for UnifiedAuthProvider
|
|
267
|
+
*
|
|
268
|
+
* **CRITICAL**: This function can ONLY be called from:
|
|
269
|
+
* - `src/main.tsx` (or `main.jsx`)
|
|
270
|
+
* - `src/App.tsx` (or `App.jsx`)
|
|
271
|
+
* - `src/lib/supabase.ts` (or `supabase.js`)
|
|
272
|
+
* - `src/supabase.ts` (or `supabase.js`)
|
|
273
|
+
*
|
|
274
|
+
* **DO NOT** use this client directly for queries. Always use `useSecureSupabase()` hook instead.
|
|
275
|
+
*
|
|
276
|
+
* The client is configured with explicit auth options to ensure consistent session persistence:
|
|
277
|
+
* - `persistSession: true` - Sessions are saved to localStorage and restored on page load/refresh
|
|
278
|
+
* - `autoRefreshToken: true` - Tokens are automatically refreshed before expiry
|
|
279
|
+
* - `detectSessionInUrl: true` - Detects and handles OAuth callback URLs
|
|
280
|
+
* - `flowType: 'pkce'` - Uses PKCE flow for enhanced security
|
|
281
|
+
*
|
|
282
|
+
* This configuration ensures that users remain logged in after hard refresh (Cmd+Shift+R)
|
|
283
|
+
* and other browser navigation scenarios across all consuming apps.
|
|
284
|
+
*
|
|
285
|
+
* @param supabaseUrl - Supabase project URL
|
|
286
|
+
* @param supabaseKey - Supabase publishable key or anon key (accepts both legacy anon keys and modern publishable keys)
|
|
287
|
+
* @returns Supabase client instance with auth configuration
|
|
288
|
+
*
|
|
289
|
+
* @throws {Error} If called from an unauthorized file location (development only)
|
|
290
|
+
*
|
|
291
|
+
* @example
|
|
292
|
+
* ```tsx
|
|
293
|
+
* // main.tsx
|
|
294
|
+
* import { createBaseClient } from '@jmruthers/pace-core';
|
|
295
|
+
* import { UnifiedAuthProvider } from '@jmruthers/pace-core';
|
|
296
|
+
*
|
|
297
|
+
* const supabase = createBaseClient(
|
|
298
|
+
* import.meta.env.VITE_SUPABASE_URL,
|
|
299
|
+
* import.meta.env.VITE_SUPABASE_PUBLISHABLE_KEY
|
|
300
|
+
* );
|
|
301
|
+
*
|
|
302
|
+
* function App() {
|
|
303
|
+
* return (
|
|
304
|
+
* <UnifiedAuthProvider supabaseClient={supabase} appName="MyApp">
|
|
305
|
+
* <YourApp />
|
|
306
|
+
* </UnifiedAuthProvider>
|
|
307
|
+
* );
|
|
308
|
+
* }
|
|
309
|
+
* ```
|
|
310
|
+
*/
|
|
311
|
+
declare function createBaseClient(supabaseUrl: string, supabaseKey: string): SupabaseClient<Database>;
|
|
312
|
+
|
|
139
313
|
/**
|
|
140
314
|
* @file Production-Safe Logger Utility
|
|
141
315
|
* @package @jmruthers/pace-core
|
|
@@ -520,4 +694,4 @@ declare function roundToNearestMinutes(date: Date, minutesStep?: number): Date;
|
|
|
520
694
|
*/
|
|
521
695
|
declare function getTimeZoneDifference(fromTimeZone: string, toTimeZone: string): number;
|
|
522
696
|
|
|
523
|
-
export {
|
|
697
|
+
export { formatCompactNumber as A, formatFileSize as B, formatInTimeZone as C, getTimezoneAbbreviation as D, formatTimeInTimeZone as E, getUserTimeZone as F, toZonedTime as G, fromZonedTime as H, roundToNearestMinutes as I, getTimeZoneDifference as J, type SecureDataAccess as K, Logger as L, formatDateTimeForDisplay as M, formatDateOnlyForDisplay as N, formatDateTimeForTable as O, formatDateTimeForMap as P, type DateTimeFormatOptions as Q, validateHtml as R, type SanitizationOptions as S, renderSafeHtml as T, dateSchema as U, calculatePasswordStrength as V, urlSchema as a, passwordSchema as b, sanitizeFormData as c, sanitizeHtml as d, emailSchema as e, createSecureDataAccess as f, cn as g, setAppConfig as h, getAppConfig as i, getCurrentAppName as j, getCurrentAppId as k, createBaseClient as l, logger as m, nameSchema as n, createLogger as o, phoneSchema as p, LogLevel as q, type LoggerConfig as r, sanitizeUserInput as s, formatDate as t, useSessionTracking as u, formatTime as v, formatDateTime as w, formatCurrency as x, formatNumber as y, formatPercent as z };
|
|
@@ -176,6 +176,10 @@ declare module '@tanstack/react-table' {
|
|
|
176
176
|
/** Column type for styling purposes */
|
|
177
177
|
type?: 'text' | 'number' | 'date' | 'boolean' | 'custom';
|
|
178
178
|
}
|
|
179
|
+
interface ColumnDefBase<TData, TValue> {
|
|
180
|
+
/** Alternative accessor key used while editing */
|
|
181
|
+
editAccessorKey?: string;
|
|
182
|
+
}
|
|
179
183
|
}
|
|
180
184
|
/**
|
|
181
185
|
* Base data record type - all DataTable data must extend this
|
|
@@ -203,8 +207,6 @@ interface HierarchicalConfig {
|
|
|
203
207
|
defaultExpanded?: boolean | string[];
|
|
204
208
|
/** Callback when expanded state changes */
|
|
205
209
|
onExpandedChange?: (expandedIds: string[]) => void;
|
|
206
|
-
/** Custom expand/collapse button component */
|
|
207
|
-
expandButton?: React__default.ComponentType<ExpandButtonProps>;
|
|
208
210
|
/** Visual indentation for child rows (in pixels) */
|
|
209
211
|
indentSize?: number;
|
|
210
212
|
/** Custom styling for parent rows */
|
|
@@ -212,21 +214,6 @@ interface HierarchicalConfig {
|
|
|
212
214
|
/** Custom styling for child rows */
|
|
213
215
|
childRowClassName?: string;
|
|
214
216
|
}
|
|
215
|
-
/**
|
|
216
|
-
* Props for the expand/collapse button component
|
|
217
|
-
*/
|
|
218
|
-
interface ExpandButtonProps {
|
|
219
|
-
/** Row ID */
|
|
220
|
-
rowId: string;
|
|
221
|
-
/** Whether the row is currently expanded */
|
|
222
|
-
isExpanded: boolean;
|
|
223
|
-
/** Whether this row has children */
|
|
224
|
-
hasChildren: boolean;
|
|
225
|
-
/** Click handler */
|
|
226
|
-
onClick: () => void;
|
|
227
|
-
/** Additional CSS classes */
|
|
228
|
-
className?: string;
|
|
229
|
-
}
|
|
230
217
|
/**
|
|
231
218
|
* Pagination mode determines how data is handled
|
|
232
219
|
*/
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { P as Permission, A as AccessLevel } from './types-BeoeWV5I.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Navigation mode type
|
|
6
|
+
*/
|
|
7
|
+
type NavigationMode = "dropdown" | "hierarchical";
|
|
8
|
+
/**
|
|
9
|
+
* Navigation item metadata
|
|
10
|
+
*/
|
|
11
|
+
interface NavigationItemMeta {
|
|
12
|
+
hidden?: boolean;
|
|
13
|
+
[key: string]: unknown;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Navigation item interface
|
|
17
|
+
*/
|
|
18
|
+
interface NavigationItem {
|
|
19
|
+
id: string;
|
|
20
|
+
label: string;
|
|
21
|
+
href?: string;
|
|
22
|
+
icon?: string;
|
|
23
|
+
children?: NavigationItem[];
|
|
24
|
+
permissions?: (Permission | string)[];
|
|
25
|
+
roles?: string[];
|
|
26
|
+
accessLevel?: AccessLevel | string;
|
|
27
|
+
meta?: NavigationItemMeta;
|
|
28
|
+
pageId?: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Navigation menu component props
|
|
32
|
+
*/
|
|
33
|
+
interface NavigationMenuProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
34
|
+
items: NavigationItem[];
|
|
35
|
+
mode?: NavigationMode;
|
|
36
|
+
currentPath?: string;
|
|
37
|
+
onNavigate?: (item: NavigationItem) => void;
|
|
38
|
+
className?: string;
|
|
39
|
+
disabled?: boolean;
|
|
40
|
+
buttonText?: string;
|
|
41
|
+
showIcons?: boolean;
|
|
42
|
+
navigationLabel?: string;
|
|
43
|
+
strictMode?: boolean;
|
|
44
|
+
auditLog?: boolean;
|
|
45
|
+
onNavigationAccessDenied?: (item: NavigationItem) => void;
|
|
46
|
+
onStrictModeViolation?: (item: NavigationItem, reason: string) => void;
|
|
47
|
+
/**
|
|
48
|
+
* If true, indicates that items have already been filtered by the parent component (e.g., PaceAppLayout).
|
|
49
|
+
* When true, NavigationMenu will skip expensive permission checks and trust the provided items.
|
|
50
|
+
* This significantly improves performance when items are pre-filtered.
|
|
51
|
+
*/
|
|
52
|
+
itemsPreFiltered?: boolean;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export type { NavigationMenuProps as N, NavigationItem as a, NavigationMode as b };
|
package/dist/types.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export { E as Event, c as EventContextType, b as EventTheme, k as ORGANISATION_R
|
|
|
6
6
|
export { g as BucketInfo, B as BulkUploadResult, F as FileCategory, b as FileMetadata, a as FileReference, d as FileReferenceService, f as FileReferenceWithUrl, c as FileUploadOptions, e as FileUploadResult, h as FileUrlInfo, S as StorageUploadOptions, U as UploadProgress } from './file-reference-BavO2eQj.js';
|
|
7
7
|
export { C as ChangePasswordFormValues, o as ContactFormData, F as FormData, k as LoginFormData, L as LoginFormValues, P as ProfileFormData, m as RegistrationFormData, R as RegistrationFormValues, S as SecureLoginFormValues, j as SecureRegistrationFormValues, U as UserProfileFormValues, V as ValidationError, a as ValidationResult, g as changePasswordSchema, t as combineSchemas, i as contactFormSchema, d as dateSchema, e as emailSchema, l as loginSchema, n as nameSchema, f as passwordResetSchema, b as passwordSchema, p as phoneSchema, q as pickSchema, r as registrationSchema, c as secureLoginSchema, s as securePasswordSchema, u as urlSchema, h as userProfileSchema } from './validation-643vUDZW.js';
|
|
8
8
|
import { SupabaseClient } from '@supabase/supabase-js';
|
|
9
|
-
export { D as Database, J as Json } from './database.generated-
|
|
9
|
+
export { D as Database, J as Json } from './database.generated-CcnC_DRc.js';
|
|
10
10
|
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, S as SessionType } from './functions-DHebl8-F.js';
|
|
11
11
|
import 'zod';
|
|
12
12
|
import './types-BeoeWV5I.js';
|