@jmruthers/pace-core 0.5.1 → 0.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/dist/{DataTable-GX3XERFJ.js → DataTable-ZQDRE46Q.js} +7 -6
  2. package/dist/{PublicLoadingSpinner-DztrzuJr.d.ts → PublicLoadingSpinner-Bq_-BeK-.d.ts} +1 -1
  3. package/dist/RBACProvider-BO4ilsQB.d.ts +63 -0
  4. package/dist/{UnifiedAuthProvider-w66zSCUf.d.ts → UnifiedAuthProvider-DGQsy-vY.d.ts} +2 -59
  5. package/dist/{api-ETQ6YJ3C.js → api-H5A3H4IR.js} +2 -2
  6. package/dist/{chunk-T3XIA4AJ.js → chunk-5H3C2SWM.js} +14 -16
  7. package/dist/chunk-5H3C2SWM.js.map +1 -0
  8. package/dist/chunk-5SIXIV7R.js +1925 -0
  9. package/dist/chunk-5SIXIV7R.js.map +1 -0
  10. package/dist/chunk-GNTALZV3.js +17 -0
  11. package/dist/chunk-GNTALZV3.js.map +1 -0
  12. package/dist/{chunk-C5G2A4PO.js → chunk-GWSBHC4J.js} +6 -6
  13. package/dist/{chunk-XJK2J4N6.js → chunk-HD7PYDUV.js} +4 -6
  14. package/dist/{chunk-XJK2J4N6.js.map → chunk-HD7PYDUV.js.map} +1 -1
  15. package/dist/{chunk-TGDCLPP2.js → chunk-HXX35Q2M.js} +6 -21
  16. package/dist/chunk-HXX35Q2M.js.map +1 -0
  17. package/dist/{chunk-5EL3KHOQ.js → chunk-K6B7BLSE.js} +2 -2
  18. package/dist/{chunk-GSNM5D6H.js → chunk-M4RW7PIP.js} +4 -4
  19. package/dist/{chunk-U6JDHVC2.js → chunk-PVMYVQSM.js} +6 -8
  20. package/dist/{chunk-U6JDHVC2.js.map → chunk-PVMYVQSM.js.map} +1 -1
  21. package/dist/{chunk-6CR3MRZN.js → chunk-QKHFMQ5R.js} +372 -11
  22. package/dist/{chunk-6CR3MRZN.js.map → chunk-QKHFMQ5R.js.map} +1 -1
  23. package/dist/chunk-QVYBYGT2.js +428 -0
  24. package/dist/chunk-QVYBYGT2.js.map +1 -0
  25. package/dist/{chunk-OEGRKULD.js → chunk-WJARTBCT.js} +56 -1
  26. package/dist/chunk-WJARTBCT.js.map +1 -0
  27. package/dist/components.d.ts +4 -3
  28. package/dist/components.js +16 -162
  29. package/dist/components.js.map +1 -1
  30. package/dist/hooks.d.ts +2 -2
  31. package/dist/hooks.js +7 -9
  32. package/dist/hooks.js.map +1 -1
  33. package/dist/index.d.ts +8 -6
  34. package/dist/index.js +152 -17
  35. package/dist/index.js.map +1 -1
  36. package/dist/providers.d.ts +3 -2
  37. package/dist/providers.js +6 -12
  38. package/dist/rbac/index.d.ts +167 -98
  39. package/dist/rbac/index.js +48 -1881
  40. package/dist/rbac/index.js.map +1 -1
  41. package/dist/styles/core.css +0 -55
  42. package/dist/types.d.ts +2 -2
  43. package/dist/{unified-CM7T0aTK.d.ts → unified-CMPjE_fv.d.ts} +1 -1
  44. package/dist/{usePublicRouteParams-B6i0KtXW.d.ts → usePublicRouteParams-B2OcAsur.d.ts} +1 -1
  45. package/dist/utils.js +12 -14
  46. package/dist/utils.js.map +1 -1
  47. package/docs/api/classes/ErrorBoundary.md +1 -1
  48. package/docs/api/classes/InvalidScopeError.md +73 -0
  49. package/docs/api/classes/MissingUserContextError.md +66 -0
  50. package/docs/api/classes/OrganisationContextRequiredError.md +66 -0
  51. package/docs/api/classes/PermissionDeniedError.md +73 -0
  52. package/docs/api/classes/PublicErrorBoundary.md +1 -1
  53. package/docs/api/classes/RBACAuditManager.md +270 -0
  54. package/docs/api/classes/RBACCache.md +284 -0
  55. package/docs/api/classes/RBACEngine.md +141 -0
  56. package/docs/api/classes/RBACError.md +76 -0
  57. package/docs/api/classes/RBACNotInitializedError.md +66 -0
  58. package/docs/api/classes/SecureSupabaseClient.md +135 -0
  59. package/docs/api/interfaces/AggregateConfig.md +1 -1
  60. package/docs/api/interfaces/ButtonProps.md +1 -1
  61. package/docs/api/interfaces/CardProps.md +1 -1
  62. package/docs/api/interfaces/ColorPalette.md +1 -1
  63. package/docs/api/interfaces/ColorShade.md +1 -1
  64. package/docs/api/interfaces/DataAccessRecord.md +96 -0
  65. package/docs/api/interfaces/DataTableAction.md +1 -1
  66. package/docs/api/interfaces/DataTableColumn.md +1 -1
  67. package/docs/api/interfaces/DataTableProps.md +1 -1
  68. package/docs/api/interfaces/DataTableToolbarButton.md +1 -1
  69. package/docs/api/interfaces/EmptyStateConfig.md +1 -1
  70. package/docs/api/interfaces/EnhancedNavigationMenuProps.md +235 -0
  71. package/docs/api/interfaces/EventContextType.md +1 -1
  72. package/docs/api/interfaces/EventLogoProps.md +1 -1
  73. package/docs/api/interfaces/EventProviderProps.md +1 -1
  74. package/docs/api/interfaces/FileSizeLimits.md +1 -1
  75. package/docs/api/interfaces/FileUploadProps.md +1 -1
  76. package/docs/api/interfaces/FooterProps.md +1 -1
  77. package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
  78. package/docs/api/interfaces/InputProps.md +1 -1
  79. package/docs/api/interfaces/LabelProps.md +1 -1
  80. package/docs/api/interfaces/LoginFormProps.md +1 -1
  81. package/docs/api/interfaces/NavigationAccessRecord.md +107 -0
  82. package/docs/api/interfaces/NavigationContextType.md +164 -0
  83. package/docs/api/interfaces/NavigationGuardProps.md +139 -0
  84. package/docs/api/interfaces/NavigationItem.md +1 -1
  85. package/docs/api/interfaces/NavigationMenuProps.md +1 -1
  86. package/docs/api/interfaces/NavigationProviderProps.md +117 -0
  87. package/docs/api/interfaces/Organisation.md +1 -1
  88. package/docs/api/interfaces/OrganisationContextType.md +1 -1
  89. package/docs/api/interfaces/OrganisationMembership.md +2 -2
  90. package/docs/api/interfaces/OrganisationProviderProps.md +1 -1
  91. package/docs/api/interfaces/OrganisationSecurityError.md +1 -1
  92. package/docs/api/interfaces/PaceAppLayoutProps.md +1 -1
  93. package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
  94. package/docs/api/interfaces/PageAccessRecord.md +85 -0
  95. package/docs/api/interfaces/PagePermissionContextType.md +140 -0
  96. package/docs/api/interfaces/PagePermissionGuardProps.md +153 -0
  97. package/docs/api/interfaces/PagePermissionProviderProps.md +119 -0
  98. package/docs/api/interfaces/PaletteData.md +1 -1
  99. package/docs/api/interfaces/PermissionEnforcerProps.md +153 -0
  100. package/docs/api/interfaces/PublicErrorBoundaryProps.md +1 -1
  101. package/docs/api/interfaces/PublicErrorBoundaryState.md +1 -1
  102. package/docs/api/interfaces/PublicLoadingSpinnerProps.md +1 -1
  103. package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
  104. package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
  105. package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
  106. package/docs/api/interfaces/RBACConfig.md +99 -0
  107. package/docs/api/interfaces/RBACContextType.md +474 -0
  108. package/docs/api/interfaces/RBACLogger.md +112 -0
  109. package/docs/api/interfaces/RBACProviderProps.md +107 -0
  110. package/docs/api/interfaces/RoleBasedRouterContextType.md +151 -0
  111. package/docs/api/interfaces/RoleBasedRouterProps.md +156 -0
  112. package/docs/api/interfaces/RouteAccessRecord.md +107 -0
  113. package/docs/api/interfaces/RouteConfig.md +121 -0
  114. package/docs/api/interfaces/SecureDataContextType.md +168 -0
  115. package/docs/api/interfaces/SecureDataProviderProps.md +132 -0
  116. package/docs/api/interfaces/StorageConfig.md +1 -1
  117. package/docs/api/interfaces/StorageFileInfo.md +1 -1
  118. package/docs/api/interfaces/StorageFileMetadata.md +1 -1
  119. package/docs/api/interfaces/StorageListOptions.md +1 -1
  120. package/docs/api/interfaces/StorageListResult.md +1 -1
  121. package/docs/api/interfaces/StorageUploadOptions.md +1 -1
  122. package/docs/api/interfaces/StorageUploadResult.md +1 -1
  123. package/docs/api/interfaces/StorageUrlOptions.md +1 -1
  124. package/docs/api/interfaces/StyleImport.md +1 -1
  125. package/docs/api/interfaces/ToastActionElement.md +1 -1
  126. package/docs/api/interfaces/ToastProps.md +1 -1
  127. package/docs/api/interfaces/UnifiedAuthContextType.md +85 -85
  128. package/docs/api/interfaces/UnifiedAuthProviderProps.md +1 -1
  129. package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
  130. package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
  131. package/docs/api/interfaces/UsePublicEventLogoOptions.md +1 -1
  132. package/docs/api/interfaces/UsePublicEventLogoReturn.md +1 -1
  133. package/docs/api/interfaces/UsePublicEventOptions.md +1 -1
  134. package/docs/api/interfaces/UsePublicEventReturn.md +1 -1
  135. package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
  136. package/docs/api/interfaces/UserEventAccess.md +11 -11
  137. package/docs/api/interfaces/UserMenuProps.md +1 -1
  138. package/docs/api/interfaces/UserProfile.md +1 -1
  139. package/docs/api/modules.md +2244 -3
  140. package/docs/migration-guide.md +43 -18
  141. package/docs/styles/README.md +187 -98
  142. package/docs/usage.md +32 -7
  143. package/package.json +2 -2
  144. package/src/components/Footer/Footer.test.tsx +482 -0
  145. package/src/components/Form/Form.test.tsx +1158 -0
  146. package/src/components/Header/Header.test.tsx +582 -0
  147. package/src/components/Header/Header.tsx +1 -1
  148. package/src/components/InactivityWarningModal/InactivityWarningModal.test.tsx +489 -0
  149. package/src/components/Input/Input.test.tsx +466 -0
  150. package/src/components/LoadingSpinner/LoadingSpinner.test.tsx +450 -0
  151. package/src/components/LoginForm/LoginForm.test.tsx +816 -0
  152. package/src/components/NavigationMenu/NavigationMenu.test.tsx +883 -0
  153. package/src/components/OrganisationSelector/OrganisationSelector.test.tsx +748 -0
  154. package/src/components/PaceAppLayout/PaceAppLayout.test.tsx +891 -0
  155. package/src/components/PaceLoginPage/PaceLoginPage.test.tsx +475 -0
  156. package/src/components/PasswordReset/PasswordChangeForm.test.tsx +621 -0
  157. package/src/components/PasswordReset/PasswordResetForm.test.tsx +605 -0
  158. package/src/components/Select/Select.test.tsx +948 -0
  159. package/src/components/SuperAdminGuard.tsx +1 -1
  160. package/src/components/Toast/Toast.test.tsx +586 -0
  161. package/src/components/Tooltip/Tooltip.test.tsx +852 -0
  162. package/src/components/UserMenu/UserMenu.test.tsx +702 -0
  163. package/src/components/UserMenu/UserMenu.tsx +2 -2
  164. package/src/hooks/useDebounce.test.ts +375 -0
  165. package/src/hooks/useOrganisationPermissions.test.ts +528 -0
  166. package/src/hooks/useOrganisationSecurity.test.ts +734 -0
  167. package/src/hooks/usePermissionCache.test.ts +542 -0
  168. package/src/hooks/usePermissionCache.ts +1 -1
  169. package/src/index.ts +2 -3
  170. package/src/providers/UnifiedAuthProvider.tsx +2 -2
  171. package/src/providers/index.ts +3 -1
  172. package/src/rbac/__tests__/integration.test.tsx +218 -0
  173. package/src/rbac/api.test.ts +952 -0
  174. package/src/rbac/components/__tests__/NavigationGuard.test.tsx +843 -0
  175. package/src/rbac/components/__tests__/PagePermissionGuard.test.tsx +1007 -0
  176. package/src/rbac/components/__tests__/PermissionEnforcer.test.tsx +806 -0
  177. package/src/rbac/components/__tests__/RoleBasedRouter.test.tsx +741 -0
  178. package/src/rbac/hooks/index.ts +21 -0
  179. package/src/rbac/hooks/useCan.test.ts +461 -0
  180. package/src/rbac/hooks/usePermissions.test.ts +364 -0
  181. package/src/rbac/hooks/usePermissions.ts +567 -0
  182. package/src/rbac/hooks/useRBAC.simple.test.ts +90 -0
  183. package/src/rbac/hooks/useRBAC.test.ts +551 -0
  184. package/src/{hooks → rbac/hooks}/useRBAC.ts +7 -7
  185. package/src/rbac/index.ts +5 -10
  186. package/src/{providers → rbac/providers}/RBACProvider.tsx +6 -6
  187. package/src/rbac/providers/__tests__/RBACProvider.test.tsx +687 -0
  188. package/src/rbac/providers/index.ts +11 -0
  189. package/src/styles/core.css +0 -55
  190. package/src/utils/formatDate.test.ts +241 -0
  191. package/dist/chunk-AUE24LVR.js +0 -268
  192. package/dist/chunk-AUE24LVR.js.map +0 -1
  193. package/dist/chunk-COBPIXXQ.js +0 -379
  194. package/dist/chunk-COBPIXXQ.js.map +0 -1
  195. package/dist/chunk-OEGRKULD.js.map +0 -1
  196. package/dist/chunk-OYRY44Q2.js +0 -62
  197. package/dist/chunk-OYRY44Q2.js.map +0 -1
  198. package/dist/chunk-T3XIA4AJ.js.map +0 -1
  199. package/dist/chunk-TGDCLPP2.js.map +0 -1
  200. package/src/components/RBAC/PagePermissionGuard.tsx +0 -287
  201. package/src/components/RBAC/RBACGuard.tsx +0 -143
  202. package/src/components/RBAC/RBACProvider.tsx +0 -186
  203. package/src/components/RBAC/RoleBasedContent.tsx +0 -129
  204. package/src/components/RBAC/index.ts +0 -23
  205. package/src/rbac/hooks.ts +0 -570
  206. /package/dist/{DataTable-GX3XERFJ.js.map → DataTable-ZQDRE46Q.js.map} +0 -0
  207. /package/dist/{api-ETQ6YJ3C.js.map → api-H5A3H4IR.js.map} +0 -0
  208. /package/dist/{chunk-C5G2A4PO.js.map → chunk-GWSBHC4J.js.map} +0 -0
  209. /package/dist/{chunk-5EL3KHOQ.js.map → chunk-K6B7BLSE.js.map} +0 -0
  210. /package/dist/{chunk-GSNM5D6H.js.map → chunk-M4RW7PIP.js.map} +0 -0
@@ -0,0 +1,151 @@
1
+ [@jmruthers/pace-core - v0.5.4](../README.md) / [Exports](../modules.md) / RoleBasedRouterContextType
2
+
3
+ # Interface: RoleBasedRouterContextType
4
+
5
+ ## Table of contents
6
+
7
+ ### Properties
8
+
9
+ - [getAccessibleRoutes](RoleBasedRouterContextType.md#getaccessibleroutes)
10
+ - [canAccessRoute](RoleBasedRouterContextType.md#canaccessroute)
11
+ - [getRouteConfig](RoleBasedRouterContextType.md#getrouteconfig)
12
+ - [getRouteAccessHistory](RoleBasedRouterContextType.md#getrouteaccesshistory)
13
+ - [clearRouteAccessHistory](RoleBasedRouterContextType.md#clearrouteaccesshistory)
14
+ - [isStrictMode](RoleBasedRouterContextType.md#isstrictmode)
15
+ - [isAuditLogEnabled](RoleBasedRouterContextType.md#isauditlogenabled)
16
+
17
+ ## Properties
18
+
19
+ ### getAccessibleRoutes
20
+
21
+ • **getAccessibleRoutes**: () => [`RouteConfig`](RouteConfig.md)[]
22
+
23
+ Get all accessible routes for current user
24
+
25
+ #### Type declaration
26
+
27
+ ▸ (): [`RouteConfig`](RouteConfig.md)[]
28
+
29
+ ##### Returns
30
+
31
+ [`RouteConfig`](RouteConfig.md)[]
32
+
33
+ #### Defined in
34
+
35
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:117](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L117)
36
+
37
+ ___
38
+
39
+ ### canAccessRoute
40
+
41
+ • **canAccessRoute**: (`path`: `string`) => `boolean`
42
+
43
+ Check if user can access a specific route
44
+
45
+ #### Type declaration
46
+
47
+ ▸ (`path`): `boolean`
48
+
49
+ ##### Parameters
50
+
51
+ | Name | Type |
52
+ | :------ | :------ |
53
+ | `path` | `string` |
54
+
55
+ ##### Returns
56
+
57
+ `boolean`
58
+
59
+ #### Defined in
60
+
61
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:120](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L120)
62
+
63
+ ___
64
+
65
+ ### getRouteConfig
66
+
67
+ • **getRouteConfig**: (`path`: `string`) => ``null`` \| [`RouteConfig`](RouteConfig.md)
68
+
69
+ Get route configuration for a path
70
+
71
+ #### Type declaration
72
+
73
+ ▸ (`path`): ``null`` \| [`RouteConfig`](RouteConfig.md)
74
+
75
+ ##### Parameters
76
+
77
+ | Name | Type |
78
+ | :------ | :------ |
79
+ | `path` | `string` |
80
+
81
+ ##### Returns
82
+
83
+ ``null`` \| [`RouteConfig`](RouteConfig.md)
84
+
85
+ #### Defined in
86
+
87
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:123](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L123)
88
+
89
+ ___
90
+
91
+ ### getRouteAccessHistory
92
+
93
+ • **getRouteAccessHistory**: () => [`RouteAccessRecord`](RouteAccessRecord.md)[]
94
+
95
+ Get route access history
96
+
97
+ #### Type declaration
98
+
99
+ ▸ (): [`RouteAccessRecord`](RouteAccessRecord.md)[]
100
+
101
+ ##### Returns
102
+
103
+ [`RouteAccessRecord`](RouteAccessRecord.md)[]
104
+
105
+ #### Defined in
106
+
107
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:126](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L126)
108
+
109
+ ___
110
+
111
+ ### clearRouteAccessHistory
112
+
113
+ • **clearRouteAccessHistory**: () => `void`
114
+
115
+ Clear route access history
116
+
117
+ #### Type declaration
118
+
119
+ ▸ (): `void`
120
+
121
+ ##### Returns
122
+
123
+ `void`
124
+
125
+ #### Defined in
126
+
127
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:129](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L129)
128
+
129
+ ___
130
+
131
+ ### isStrictMode
132
+
133
+ • **isStrictMode**: `boolean`
134
+
135
+ Check if strict mode is enabled
136
+
137
+ #### Defined in
138
+
139
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:132](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L132)
140
+
141
+ ___
142
+
143
+ ### isAuditLogEnabled
144
+
145
+ • **isAuditLogEnabled**: `boolean`
146
+
147
+ Check if audit logging is enabled
148
+
149
+ #### Defined in
150
+
151
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:135](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L135)
@@ -0,0 +1,156 @@
1
+ [@jmruthers/pace-core - v0.5.4](../README.md) / [Exports](../modules.md) / RoleBasedRouterProps
2
+
3
+ # Interface: RoleBasedRouterProps
4
+
5
+ ## Table of contents
6
+
7
+ ### Properties
8
+
9
+ - [routes](RoleBasedRouterProps.md#routes)
10
+ - [fallbackRoute](RoleBasedRouterProps.md#fallbackroute)
11
+ - [children](RoleBasedRouterProps.md#children)
12
+ - [strictMode](RoleBasedRouterProps.md#strictmode)
13
+ - [auditLog](RoleBasedRouterProps.md#auditlog)
14
+ - [onRouteAccess](RoleBasedRouterProps.md#onrouteaccess)
15
+ - [onStrictModeViolation](RoleBasedRouterProps.md#onstrictmodeviolation)
16
+ - [maxHistorySize](RoleBasedRouterProps.md#maxhistorysize)
17
+ - [unauthorizedComponent](RoleBasedRouterProps.md#unauthorizedcomponent)
18
+
19
+ ## Properties
20
+
21
+ ### routes
22
+
23
+ • **routes**: [`RouteConfig`](RouteConfig.md)[]
24
+
25
+ Route configuration
26
+
27
+ #### Defined in
28
+
29
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:140](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L140)
30
+
31
+ ___
32
+
33
+ ### fallbackRoute
34
+
35
+ • `Optional` **fallbackRoute**: `string`
36
+
37
+ Fallback route for unauthorized access
38
+
39
+ #### Defined in
40
+
41
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:143](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L143)
42
+
43
+ ___
44
+
45
+ ### children
46
+
47
+ • **children**: `ReactNode`
48
+
49
+ Child components
50
+
51
+ #### Defined in
52
+
53
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:146](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L146)
54
+
55
+ ___
56
+
57
+ ### strictMode
58
+
59
+ • `Optional` **strictMode**: `boolean`
60
+
61
+ Enable strict mode to prevent bypassing (default: true)
62
+
63
+ #### Defined in
64
+
65
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:149](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L149)
66
+
67
+ ___
68
+
69
+ ### auditLog
70
+
71
+ • `Optional` **auditLog**: `boolean`
72
+
73
+ Enable audit logging (default: true)
74
+
75
+ #### Defined in
76
+
77
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:152](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L152)
78
+
79
+ ___
80
+
81
+ ### onRouteAccess
82
+
83
+ • `Optional` **onRouteAccess**: (`route`: `string`, `allowed`: `boolean`, `record`: [`RouteAccessRecord`](RouteAccessRecord.md)) => `void`
84
+
85
+ Callback when route access is attempted
86
+
87
+ #### Type declaration
88
+
89
+ ▸ (`route`, `allowed`, `record`): `void`
90
+
91
+ ##### Parameters
92
+
93
+ | Name | Type |
94
+ | :------ | :------ |
95
+ | `route` | `string` |
96
+ | `allowed` | `boolean` |
97
+ | `record` | [`RouteAccessRecord`](RouteAccessRecord.md) |
98
+
99
+ ##### Returns
100
+
101
+ `void`
102
+
103
+ #### Defined in
104
+
105
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:155](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L155)
106
+
107
+ ___
108
+
109
+ ### onStrictModeViolation
110
+
111
+ • `Optional` **onStrictModeViolation**: (`route`: `string`, `record`: [`RouteAccessRecord`](RouteAccessRecord.md)) => `void`
112
+
113
+ Callback when strict mode violation occurs
114
+
115
+ #### Type declaration
116
+
117
+ ▸ (`route`, `record`): `void`
118
+
119
+ ##### Parameters
120
+
121
+ | Name | Type |
122
+ | :------ | :------ |
123
+ | `route` | `string` |
124
+ | `record` | [`RouteAccessRecord`](RouteAccessRecord.md) |
125
+
126
+ ##### Returns
127
+
128
+ `void`
129
+
130
+ #### Defined in
131
+
132
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:158](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L158)
133
+
134
+ ___
135
+
136
+ ### maxHistorySize
137
+
138
+ • `Optional` **maxHistorySize**: `number`
139
+
140
+ Maximum number of access records to keep in history
141
+
142
+ #### Defined in
143
+
144
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:161](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L161)
145
+
146
+ ___
147
+
148
+ ### unauthorizedComponent
149
+
150
+ • `Optional` **unauthorizedComponent**: `ComponentType`\<\{ `route`: `string` ; `reason`: `string` }\>
151
+
152
+ Custom unauthorized component
153
+
154
+ #### Defined in
155
+
156
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:164](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L164)
@@ -0,0 +1,107 @@
1
+ [@jmruthers/pace-core - v0.5.4](../README.md) / [Exports](../modules.md) / RouteAccessRecord
2
+
3
+ # Interface: RouteAccessRecord
4
+
5
+ ## Table of contents
6
+
7
+ ### Properties
8
+
9
+ - [route](RouteAccessRecord.md#route)
10
+ - [permissions](RouteAccessRecord.md#permissions)
11
+ - [userId](RouteAccessRecord.md#userid)
12
+ - [scope](RouteAccessRecord.md#scope)
13
+ - [allowed](RouteAccessRecord.md#allowed)
14
+ - [timestamp](RouteAccessRecord.md#timestamp)
15
+ - [pageId](RouteAccessRecord.md#pageid)
16
+ - [roles](RouteAccessRecord.md#roles)
17
+ - [accessLevel](RouteAccessRecord.md#accesslevel)
18
+
19
+ ## Properties
20
+
21
+ ### route
22
+
23
+ • **route**: `string`
24
+
25
+ #### Defined in
26
+
27
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:104](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L104)
28
+
29
+ ___
30
+
31
+ ### permissions
32
+
33
+ • **permissions**: (\`read:$\{string}\` \| \`create:$\{string}\` \| \`update:$\{string}\` \| \`delete:$\{string}\` \| \`manage:$\{string}\`)[]
34
+
35
+ #### Defined in
36
+
37
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:105](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L105)
38
+
39
+ ___
40
+
41
+ ### userId
42
+
43
+ • **userId**: `string`
44
+
45
+ #### Defined in
46
+
47
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:106](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L106)
48
+
49
+ ___
50
+
51
+ ### scope
52
+
53
+ • **scope**: [`Scope`](../modules.md#scope)
54
+
55
+ #### Defined in
56
+
57
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:107](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L107)
58
+
59
+ ___
60
+
61
+ ### allowed
62
+
63
+ • **allowed**: `boolean`
64
+
65
+ #### Defined in
66
+
67
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:108](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L108)
68
+
69
+ ___
70
+
71
+ ### timestamp
72
+
73
+ • **timestamp**: `string`
74
+
75
+ #### Defined in
76
+
77
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:109](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L109)
78
+
79
+ ___
80
+
81
+ ### pageId
82
+
83
+ • `Optional` **pageId**: `string`
84
+
85
+ #### Defined in
86
+
87
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:110](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L110)
88
+
89
+ ___
90
+
91
+ ### roles
92
+
93
+ • `Optional` **roles**: `string`[]
94
+
95
+ #### Defined in
96
+
97
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:111](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L111)
98
+
99
+ ___
100
+
101
+ ### accessLevel
102
+
103
+ • `Optional` **accessLevel**: [`AccessLevel`](../modules.md#accesslevel)
104
+
105
+ #### Defined in
106
+
107
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:112](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L112)
@@ -0,0 +1,121 @@
1
+ [@jmruthers/pace-core - v0.5.4](../README.md) / [Exports](../modules.md) / RouteConfig
2
+
3
+ # Interface: RouteConfig
4
+
5
+ ## Table of contents
6
+
7
+ ### Properties
8
+
9
+ - [path](RouteConfig.md#path)
10
+ - [component](RouteConfig.md#component)
11
+ - [permissions](RouteConfig.md#permissions)
12
+ - [roles](RouteConfig.md#roles)
13
+ - [accessLevel](RouteConfig.md#accesslevel)
14
+ - [pageId](RouteConfig.md#pageid)
15
+ - [strictMode](RouteConfig.md#strictmode)
16
+ - [meta](RouteConfig.md#meta)
17
+
18
+ ## Properties
19
+
20
+ ### path
21
+
22
+ • **path**: `string`
23
+
24
+ Route path
25
+
26
+ #### Defined in
27
+
28
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:74](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L74)
29
+
30
+ ___
31
+
32
+ ### component
33
+
34
+ • **component**: `ComponentType`\<{}\>
35
+
36
+ React component to render
37
+
38
+ #### Defined in
39
+
40
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:77](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L77)
41
+
42
+ ___
43
+
44
+ ### permissions
45
+
46
+ • **permissions**: (\`read:$\{string}\` \| \`create:$\{string}\` \| \`update:$\{string}\` \| \`delete:$\{string}\` \| \`manage:$\{string}\`)[]
47
+
48
+ Permissions required for this route
49
+
50
+ #### Defined in
51
+
52
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:80](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L80)
53
+
54
+ ___
55
+
56
+ ### roles
57
+
58
+ • `Optional` **roles**: `string`[]
59
+
60
+ Roles that can access this route
61
+
62
+ #### Defined in
63
+
64
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:83](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L83)
65
+
66
+ ___
67
+
68
+ ### accessLevel
69
+
70
+ • `Optional` **accessLevel**: [`AccessLevel`](../modules.md#accesslevel)
71
+
72
+ Minimum access level required
73
+
74
+ #### Defined in
75
+
76
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:86](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L86)
77
+
78
+ ___
79
+
80
+ ### pageId
81
+
82
+ • `Optional` **pageId**: `string`
83
+
84
+ Page ID for permission checking
85
+
86
+ #### Defined in
87
+
88
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:89](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L89)
89
+
90
+ ___
91
+
92
+ ### strictMode
93
+
94
+ • `Optional` **strictMode**: `boolean`
95
+
96
+ Enable strict mode for this route
97
+
98
+ #### Defined in
99
+
100
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:92](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L92)
101
+
102
+ ___
103
+
104
+ ### meta
105
+
106
+ • `Optional` **meta**: `Object`
107
+
108
+ Route metadata
109
+
110
+ #### Type declaration
111
+
112
+ | Name | Type |
113
+ | :------ | :------ |
114
+ | `title?` | `string` |
115
+ | `description?` | `string` |
116
+ | `requiresAuth?` | `boolean` |
117
+ | `hidden?` | `boolean` |
118
+
119
+ #### Defined in
120
+
121
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:95](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L95)
@@ -0,0 +1,168 @@
1
+ [@jmruthers/pace-core - v0.5.4](../README.md) / [Exports](../modules.md) / SecureDataContextType
2
+
3
+ # Interface: SecureDataContextType
4
+
5
+ ## Table of contents
6
+
7
+ ### Properties
8
+
9
+ - [isDataAccessAllowed](SecureDataContextType.md#isdataaccessallowed)
10
+ - [getDataAccessPermissions](SecureDataContextType.md#getdataaccesspermissions)
11
+ - [isEnabled](SecureDataContextType.md#isenabled)
12
+ - [isStrictMode](SecureDataContextType.md#isstrictmode)
13
+ - [isAuditLogEnabled](SecureDataContextType.md#isauditlogenabled)
14
+ - [getDataAccessHistory](SecureDataContextType.md#getdataaccesshistory)
15
+ - [clearDataAccessHistory](SecureDataContextType.md#cleardataaccesshistory)
16
+ - [validateDataAccess](SecureDataContextType.md#validatedataaccess)
17
+
18
+ ## Properties
19
+
20
+ ### isDataAccessAllowed
21
+
22
+ • **isDataAccessAllowed**: (`table`: `string`, `operation`: `string`, `scope?`: [`Scope`](../modules.md#scope)) => `boolean`
23
+
24
+ Check if data access is allowed for a table and operation
25
+
26
+ #### Type declaration
27
+
28
+ ▸ (`table`, `operation`, `scope?`): `boolean`
29
+
30
+ ##### Parameters
31
+
32
+ | Name | Type |
33
+ | :------ | :------ |
34
+ | `table` | `string` |
35
+ | `operation` | `string` |
36
+ | `scope?` | [`Scope`](../modules.md#scope) |
37
+
38
+ ##### Returns
39
+
40
+ `boolean`
41
+
42
+ #### Defined in
43
+
44
+ [packages/core/src/rbac/components/SecureDataProvider.tsx:77](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/SecureDataProvider.tsx#L77)
45
+
46
+ ___
47
+
48
+ ### getDataAccessPermissions
49
+
50
+ • **getDataAccessPermissions**: () => `Record`\<`string`, `string`[]\>
51
+
52
+ Get all data access permissions for current user
53
+
54
+ #### Type declaration
55
+
56
+ ▸ (): `Record`\<`string`, `string`[]\>
57
+
58
+ ##### Returns
59
+
60
+ `Record`\<`string`, `string`[]\>
61
+
62
+ #### Defined in
63
+
64
+ [packages/core/src/rbac/components/SecureDataProvider.tsx:80](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/SecureDataProvider.tsx#L80)
65
+
66
+ ___
67
+
68
+ ### isEnabled
69
+
70
+ • **isEnabled**: `boolean`
71
+
72
+ Check if secure data access is enabled
73
+
74
+ #### Defined in
75
+
76
+ [packages/core/src/rbac/components/SecureDataProvider.tsx:83](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/SecureDataProvider.tsx#L83)
77
+
78
+ ___
79
+
80
+ ### isStrictMode
81
+
82
+ • **isStrictMode**: `boolean`
83
+
84
+ Check if strict mode is enabled
85
+
86
+ #### Defined in
87
+
88
+ [packages/core/src/rbac/components/SecureDataProvider.tsx:86](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/SecureDataProvider.tsx#L86)
89
+
90
+ ___
91
+
92
+ ### isAuditLogEnabled
93
+
94
+ • **isAuditLogEnabled**: `boolean`
95
+
96
+ Check if audit logging is enabled
97
+
98
+ #### Defined in
99
+
100
+ [packages/core/src/rbac/components/SecureDataProvider.tsx:89](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/SecureDataProvider.tsx#L89)
101
+
102
+ ___
103
+
104
+ ### getDataAccessHistory
105
+
106
+ • **getDataAccessHistory**: () => [`DataAccessRecord`](DataAccessRecord.md)[]
107
+
108
+ Get data access history
109
+
110
+ #### Type declaration
111
+
112
+ ▸ (): [`DataAccessRecord`](DataAccessRecord.md)[]
113
+
114
+ ##### Returns
115
+
116
+ [`DataAccessRecord`](DataAccessRecord.md)[]
117
+
118
+ #### Defined in
119
+
120
+ [packages/core/src/rbac/components/SecureDataProvider.tsx:92](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/SecureDataProvider.tsx#L92)
121
+
122
+ ___
123
+
124
+ ### clearDataAccessHistory
125
+
126
+ • **clearDataAccessHistory**: () => `void`
127
+
128
+ Clear data access history
129
+
130
+ #### Type declaration
131
+
132
+ ▸ (): `void`
133
+
134
+ ##### Returns
135
+
136
+ `void`
137
+
138
+ #### Defined in
139
+
140
+ [packages/core/src/rbac/components/SecureDataProvider.tsx:95](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/SecureDataProvider.tsx#L95)
141
+
142
+ ___
143
+
144
+ ### validateDataAccess
145
+
146
+ • **validateDataAccess**: (`table`: `string`, `operation`: `string`, `scope?`: [`Scope`](../modules.md#scope)) => `boolean`
147
+
148
+ Validate data access attempt
149
+
150
+ #### Type declaration
151
+
152
+ ▸ (`table`, `operation`, `scope?`): `boolean`
153
+
154
+ ##### Parameters
155
+
156
+ | Name | Type |
157
+ | :------ | :------ |
158
+ | `table` | `string` |
159
+ | `operation` | `string` |
160
+ | `scope?` | [`Scope`](../modules.md#scope) |
161
+
162
+ ##### Returns
163
+
164
+ `boolean`
165
+
166
+ #### Defined in
167
+
168
+ [packages/core/src/rbac/components/SecureDataProvider.tsx:98](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/SecureDataProvider.tsx#L98)