@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
|
@@ -162,12 +162,87 @@ Documented in [RBAC API Reference](../rbac/api-reference.md):
|
|
|
162
162
|
|
|
163
163
|
### Event System
|
|
164
164
|
|
|
165
|
-
- `data_user_events_get` - Get events accessible to a user
|
|
166
|
-
- `get_public_event_by_code` - Get public event by code (public access, exception to naming pattern)
|
|
165
|
+
- `data_user_events_get` - Get events accessible to a user
|
|
167
166
|
- `data_event_list` - List events (if implemented)
|
|
168
167
|
- `app_event_create` - Create an event (if implemented)
|
|
169
168
|
|
|
170
|
-
**Note**:
|
|
169
|
+
**Note**: For public event access, use `usePublicEvent()` hook from pace-core, which handles direct table queries internally.
|
|
170
|
+
|
|
171
|
+
## Removed Legacy RPC Functions
|
|
172
|
+
|
|
173
|
+
The following RPC functions have been **removed** in v0.6.x. All consuming apps have been migrated to modern alternatives.
|
|
174
|
+
|
|
175
|
+
### Removed Functions (v0.6.x)
|
|
176
|
+
|
|
177
|
+
#### `get_pace_user_events` → `data_user_events_get` or `useEvents()` hook
|
|
178
|
+
|
|
179
|
+
**Status**: Removed in v0.6.x
|
|
180
|
+
**Replacement**: Use `data_user_events_get` RPC or `useEvents()` hook from pace-core
|
|
181
|
+
|
|
182
|
+
#### `get_public_event_by_code` → Direct table queries or `usePublicEvent()` hook
|
|
183
|
+
|
|
184
|
+
**Status**: Removed in v0.6.x
|
|
185
|
+
**Replacement**: Use `usePublicEvent()` hook from pace-core (handles direct table queries internally)
|
|
186
|
+
|
|
187
|
+
#### `get_public_event_logo` → Direct table queries or `usePublicEventLogo()` hook
|
|
188
|
+
|
|
189
|
+
**Status**: Removed in v0.6.x
|
|
190
|
+
**Replacement**: Use `usePublicEventLogo()` hook from pace-core (handles direct table queries internally)
|
|
191
|
+
|
|
192
|
+
#### `get_organisation_members` → Direct table queries or `data_user_organisation_roles_get`
|
|
193
|
+
|
|
194
|
+
**Status**: Removed in v0.6.x
|
|
195
|
+
**Replacement**: Query `rbac_organisation_roles` table directly or use `data_user_organisation_roles_get` RPC
|
|
196
|
+
|
|
197
|
+
#### `set_organisation_context` → No longer needed
|
|
198
|
+
|
|
199
|
+
**Status**: Removed in v0.6.x
|
|
200
|
+
**Replacement**: Organisation context is now handled automatically via secure Supabase client headers (`useSecureSupabase()` hook)
|
|
201
|
+
|
|
202
|
+
#### `get_organisation_context` → No longer used
|
|
203
|
+
|
|
204
|
+
**Status**: Removed in v0.6.x
|
|
205
|
+
**Replacement**: Not needed - context is handled via secure client
|
|
206
|
+
|
|
207
|
+
#### `get_page_scope_type` → Direct table queries
|
|
208
|
+
|
|
209
|
+
**Status**: Removed in v0.6.x
|
|
210
|
+
**Replacement**: Query `rbac_app_pages.scope_type` directly
|
|
211
|
+
|
|
212
|
+
**Migration Guide**: See [Deprecated Functions Documentation](./deprecated.md#legacy-event-rpcs) for detailed migration paths.
|
|
213
|
+
|
|
214
|
+
### Internal Infrastructure Functions (pace-core Only)
|
|
215
|
+
|
|
216
|
+
These functions are used internally by pace-core and should **NOT** be called directly by consuming apps:
|
|
217
|
+
**Modern Alternative**: Use `usePublicEvent` hook from pace-core
|
|
218
|
+
|
|
219
|
+
**Action Required**: If calling directly, migrate to `usePublicEvent` hook. If using pace-core hooks, no action needed.
|
|
220
|
+
|
|
221
|
+
#### `get_public_event_logo`
|
|
222
|
+
|
|
223
|
+
**Status**: Legacy (exception to naming standard)
|
|
224
|
+
**Usage**: Public pages only (no authentication required)
|
|
225
|
+
**Modern Alternative**: Use `usePublicEventLogo` hook from pace-core
|
|
226
|
+
|
|
227
|
+
**Action Required**: If calling directly, migrate to `usePublicEventLogo` hook. If using pace-core hooks, no action needed.
|
|
228
|
+
|
|
229
|
+
### Internal Infrastructure Functions (pace-core Only)
|
|
230
|
+
|
|
231
|
+
**Removed Functions** (v0.6.x):
|
|
232
|
+
- ~~`set_organisation_context`~~ - **REMOVED** - Organisation context now handled via secure client headers
|
|
233
|
+
- ~~`get_organisation_context`~~ - **REMOVED** - No longer needed
|
|
234
|
+
- ~~`get_page_scope_type`~~ - **REMOVED** - Replaced with direct table queries
|
|
235
|
+
|
|
236
|
+
**Active Functions** (pace-core internal, do not call directly):
|
|
237
|
+
- `grant_event_app_role` - Used by `useRoleManagement` hook (use hook instead)
|
|
238
|
+
|
|
239
|
+
**Note**: The removed functions have been replaced with direct table queries or are no longer needed. Organisation context is automatically handled by the secure Supabase client from `useSecureSupabase()` hook.
|
|
240
|
+
|
|
241
|
+
### Migration Resources
|
|
242
|
+
|
|
243
|
+
- **Legacy RPC Audit Prompt**: `packages/core/audit/legacy-rpc-audit-prompt.md` - Run this in your consuming app to identify usage
|
|
244
|
+
- **Deprecated Functions Guide**: [Deprecated Functions Documentation](./deprecated.md) - Detailed migration guides
|
|
245
|
+
- **Migration Examples**: See migration guides in `packages/core/docs/migration/`
|
|
171
246
|
|
|
172
247
|
## Application-Specific RPCs
|
|
173
248
|
|
|
@@ -1048,7 +1048,7 @@ All types in `@jmruthers/pace-core` are designed to provide:
|
|
|
1048
1048
|
- **Generic Support**: Flexible types that work with your data
|
|
1049
1049
|
- **Strict Mode**: Compatible with TypeScript strict mode
|
|
1050
1050
|
|
|
1051
|
-
For more information about using types effectively, see the [
|
|
1051
|
+
For more information about using types effectively, see the [Code Quality Standards](../standards/4-code-quality-standards.md) (TypeScript rules).
|
|
1052
1052
|
|
|
1053
1053
|
## ♿ Accessibility
|
|
1054
1054
|
|
|
@@ -1204,7 +1204,7 @@ export {
|
|
|
1204
1204
|
- Validate input parameters
|
|
1205
1205
|
- Return consistent types
|
|
1206
1206
|
|
|
1207
|
-
For more information about using utilities effectively, see the [
|
|
1207
|
+
For more information about using utilities effectively, see the [Code Quality Standards](../standards/4-code-quality-standards.md) and [Architecture Standards](../standards/3-architecture-standards.md).
|
|
1208
1208
|
|
|
1209
1209
|
## ♿ Accessibility
|
|
1210
1210
|
|
|
@@ -125,7 +125,7 @@ ComponentName/
|
|
|
125
125
|
|
|
126
126
|
### Component Design Patterns
|
|
127
127
|
|
|
128
|
-
1. **Compound Components**: Components that work together (e.g., DataTable + DataTableToolbar +
|
|
128
|
+
1. **Compound Components**: Components that work together (e.g., DataTable + DataTableToolbar + UnifiedTableBody)
|
|
129
129
|
2. **Render Props**: Flexible rendering patterns for complex components
|
|
130
130
|
3. **Controlled/Uncontrolled**: Support for both controlled and uncontrolled usage
|
|
131
131
|
4. **Composition**: Components that can be composed together
|
|
@@ -273,7 +273,7 @@ function EventScopedData() {
|
|
|
273
273
|
}, [selectedEvent]);
|
|
274
274
|
|
|
275
275
|
if (!selectedEvent) {
|
|
276
|
-
return <
|
|
276
|
+
return <p>Please select an event</p>;
|
|
277
277
|
}
|
|
278
278
|
|
|
279
279
|
if (loading) {
|
|
@@ -585,10 +585,10 @@ function EventScopedComponent() {
|
|
|
585
585
|
const { selectedEvent } = useEvents();
|
|
586
586
|
|
|
587
587
|
if (!selectedEvent) {
|
|
588
|
-
return <
|
|
588
|
+
return <p>Please select an event</p>;
|
|
589
589
|
}
|
|
590
590
|
|
|
591
|
-
return <
|
|
591
|
+
return <section>Content for {selectedEvent.event_name}</section>;
|
|
592
592
|
}
|
|
593
593
|
|
|
594
594
|
// ❌ Avoid - No event context check
|
|
@@ -514,8 +514,8 @@ function OrganisationAwareComponent() {
|
|
|
514
514
|
updateOrganisationSettings,
|
|
515
515
|
} = useOrganisation();
|
|
516
516
|
|
|
517
|
-
if (loading) return <
|
|
518
|
-
if (error) return <
|
|
517
|
+
if (loading) return <p>Loading...</p>;
|
|
518
|
+
if (error) return <p>Error: {error}</p>;
|
|
519
519
|
|
|
520
520
|
return (
|
|
521
521
|
<div>
|
|
@@ -563,10 +563,10 @@ function ProtectedComponent() {
|
|
|
563
563
|
);
|
|
564
564
|
|
|
565
565
|
if (!hasAccess) {
|
|
566
|
-
return <
|
|
566
|
+
return <p>Access denied</p>;
|
|
567
567
|
}
|
|
568
568
|
|
|
569
|
-
return <
|
|
569
|
+
return <section>Protected content</section>;
|
|
570
570
|
}
|
|
571
571
|
```
|
|
572
572
|
|
|
@@ -598,10 +598,10 @@ function DataComponent() {
|
|
|
598
598
|
const { currentOrganisation } = useOrganisation();
|
|
599
599
|
|
|
600
600
|
if (!currentOrganisation) {
|
|
601
|
-
return <
|
|
601
|
+
return <p>Please select an organisation</p>;
|
|
602
602
|
}
|
|
603
603
|
|
|
604
|
-
return <
|
|
604
|
+
return <section>Organisation data</section>;
|
|
605
605
|
}
|
|
606
606
|
```
|
|
607
607
|
|
|
@@ -210,8 +210,8 @@ import { usePagePermission } from '@jmruthers/pace-core';
|
|
|
210
210
|
function AdminDashboard() {
|
|
211
211
|
const { hasAccess, loading } = usePagePermission('admin');
|
|
212
212
|
|
|
213
|
-
if (loading) return <
|
|
214
|
-
if (!hasAccess) return <
|
|
213
|
+
if (loading) return <p>Checking permissions...</p>;
|
|
214
|
+
if (!hasAccess) return <p>Access denied</p>;
|
|
215
215
|
|
|
216
216
|
return (
|
|
217
217
|
<div>
|
|
@@ -305,7 +305,7 @@ function ProtectedComponent({ children, permission }) {
|
|
|
305
305
|
permission
|
|
306
306
|
);
|
|
307
307
|
|
|
308
|
-
if (isLoading) return <
|
|
308
|
+
if (isLoading) return <p>Checking permissions...</p>;
|
|
309
309
|
if (!can) return null; // Or return an access denied component
|
|
310
310
|
|
|
311
311
|
return children;
|
|
@@ -488,7 +488,7 @@ function withPermission(permission: string) {
|
|
|
488
488
|
permission
|
|
489
489
|
);
|
|
490
490
|
|
|
491
|
-
if (isLoading) return <
|
|
491
|
+
if (isLoading) return <p>Checking permissions...</p>;
|
|
492
492
|
if (!can) return null;
|
|
493
493
|
|
|
494
494
|
return <Component {...props} />;
|
|
@@ -547,7 +547,7 @@ function PermissionAwareComponent() {
|
|
|
547
547
|
);
|
|
548
548
|
|
|
549
549
|
if (isLoading) {
|
|
550
|
-
return <
|
|
550
|
+
return <p>Loading permissions...</p>;
|
|
551
551
|
}
|
|
552
552
|
|
|
553
553
|
return (
|
|
@@ -714,7 +714,7 @@ function FeatureFlag({ permission, children }) {
|
|
|
714
714
|
permission
|
|
715
715
|
);
|
|
716
716
|
|
|
717
|
-
if (isLoading) return <
|
|
717
|
+
if (isLoading) return <p>Checking permissions...</p>;
|
|
718
718
|
if (!can) return null;
|
|
719
719
|
|
|
720
720
|
return children;
|
|
@@ -109,30 +109,24 @@ This index mirrors the folder layout in `packages/core/docs/` so teams can quick
|
|
|
109
109
|
- [RBAC security architecture](./architecture/rbac-security-architecture.md)
|
|
110
110
|
- [Database schema requirements](./architecture/database-schema-requirements.md)
|
|
111
111
|
|
|
112
|
-
##
|
|
113
|
-
|
|
114
|
-
- [Overview](./
|
|
115
|
-
- [
|
|
116
|
-
- [
|
|
117
|
-
- [
|
|
118
|
-
- [
|
|
119
|
-
- [
|
|
120
|
-
- [
|
|
112
|
+
## Standards
|
|
113
|
+
|
|
114
|
+
- [Standards Overview](./standards/0-standards-overview.md) – Complete standards system
|
|
115
|
+
- [pace-core Compliance](./standards/1-pace-core-compliance-standards.md) – Using pace-core correctly
|
|
116
|
+
- [Project Structure](./standards/2-project-structure-standards.md) – Code organization
|
|
117
|
+
- [Architecture](./standards/3-architecture-standards.md) – SOLID principles and design
|
|
118
|
+
- [Code Quality](./standards/4-code-quality-standards.md) – TypeScript, accessibility, and code style
|
|
119
|
+
- [Styling](./standards/5-styling-standards.md) – CSS architecture and Tailwind v4
|
|
120
|
+
- [Security & RBAC](./standards/6-security-rbac-standards.md) – RLS policies and RBAC
|
|
121
|
+
- [API & Tech Stack](./standards/7-api-tech-stack-standards.md) – Required technologies and API design
|
|
122
|
+
- [Testing & Documentation](./standards/8-testing-documentation-standards.md) – Testing strategy and docs
|
|
123
|
+
- [Operations](./standards/9-operations-standards.md) – Error handling, performance, CI/CD
|
|
121
124
|
|
|
122
125
|
## Security
|
|
123
126
|
|
|
124
127
|
- [Security posture](./security/README.md)
|
|
125
128
|
- [Security checklist](./security/checklist.md)
|
|
126
129
|
|
|
127
|
-
## Development standards
|
|
128
|
-
|
|
129
|
-
- [Standards overview](./standards/README.md) – Development standards for the project
|
|
130
|
-
- [Architecture Standard](./standards/01-architecture-standard.md) – Core architectural principles
|
|
131
|
-
- [API & RPC Standard](./standards/02-api-and-rpc-standard.md) – API design patterns and database function standards
|
|
132
|
-
- [Component Standard](./standards/03-component-standard.md) – React component development guidelines
|
|
133
|
-
- [Code Style Standard](./standards/04-code-style-standard.md) – Code style and TypeScript conventions
|
|
134
|
-
- [Security Standard](./standards/05-security-standard.md) – Security requirements and best practices
|
|
135
|
-
- [Testing & Documentation Standard](./standards/06-testing-and-docs-standard.md) – Testing strategy and documentation requirements
|
|
136
130
|
|
|
137
131
|
## Meta & maintenance
|
|
138
132
|
|
|
@@ -128,25 +128,6 @@ Content with examples and guidelines.
|
|
|
128
128
|
|
|
129
129
|
## Running Audits
|
|
130
130
|
|
|
131
|
-
### Comprehensive Audit
|
|
132
|
-
|
|
133
|
-
Run the comprehensive audit tool to check compliance:
|
|
134
|
-
|
|
135
|
-
```bash
|
|
136
|
-
node node_modules/@jmruthers/pace-core/scripts/audit-consuming-app.cjs
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
Or add to your `package.json`:
|
|
140
|
-
|
|
141
|
-
```json
|
|
142
|
-
{
|
|
143
|
-
"scripts": {
|
|
144
|
-
"audit:pace-core": "node node_modules/@jmruthers/pace-core/scripts/audit-consuming-app.cjs"
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
This generates a timestamped markdown report in `audit/` directory.
|
|
150
131
|
|
|
151
132
|
### Compliance Check
|
|
152
133
|
|
|
@@ -237,10 +218,9 @@ Each app maintains its own `.cursor/rules/` directory.
|
|
|
237
218
|
- Explicitly reference rules when needed: "Follow rules 00-04"
|
|
238
219
|
|
|
239
220
|
3. **Before Committing:**
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
Review the generated report in `audit/` directory
|
|
221
|
+
- Run linting and type checks
|
|
222
|
+
- Run tests
|
|
223
|
+
- Review code changes
|
|
244
224
|
|
|
245
225
|
4. **After pace-core Updates:**
|
|
246
226
|
```bash
|