@jmruthers/pace-core 0.5.33 → 0.5.35
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/dist/{DataTable-XPPSWRXE.js → DataTable-7H63EFYM.js} +3 -2
- package/dist/{chunk-TBJVKUYR.js → chunk-BRWHKGV2.js} +58 -5
- package/dist/chunk-BRWHKGV2.js.map +1 -0
- package/dist/{chunk-OYDYXNAY.js → chunk-MC5E4ILK.js} +2 -2
- package/dist/components.js +3 -2
- package/dist/components.js.map +1 -1
- package/dist/index.js +3 -3
- package/dist/utils.js +4 -4
- package/docs/api/classes/ErrorBoundary.md +1 -1
- package/docs/api/classes/InvalidScopeError.md +1 -1
- package/docs/api/classes/MissingUserContextError.md +1 -1
- package/docs/api/classes/OrganisationContextRequiredError.md +1 -1
- package/docs/api/classes/PermissionDeniedError.md +1 -1
- package/docs/api/classes/PublicErrorBoundary.md +1 -1
- package/docs/api/classes/RBACAuditManager.md +1 -1
- package/docs/api/classes/RBACCache.md +1 -1
- package/docs/api/classes/RBACEngine.md +1 -1
- package/docs/api/classes/RBACError.md +1 -1
- package/docs/api/classes/RBACNotInitializedError.md +1 -1
- package/docs/api/classes/SecureSupabaseClient.md +1 -1
- package/docs/api/interfaces/AggregateConfig.md +1 -1
- package/docs/api/interfaces/ButtonProps.md +1 -1
- package/docs/api/interfaces/CardProps.md +1 -1
- package/docs/api/interfaces/ColorPalette.md +1 -1
- package/docs/api/interfaces/ColorShade.md +1 -1
- package/docs/api/interfaces/DataAccessRecord.md +1 -1
- package/docs/api/interfaces/DataTableAction.md +1 -1
- package/docs/api/interfaces/DataTableColumn.md +1 -1
- package/docs/api/interfaces/DataTableProps.md +1 -1
- package/docs/api/interfaces/DataTableToolbarButton.md +1 -1
- package/docs/api/interfaces/EmptyStateConfig.md +1 -1
- package/docs/api/interfaces/EnhancedNavigationMenuProps.md +1 -1
- package/docs/api/interfaces/EventContextType.md +1 -1
- package/docs/api/interfaces/EventLogoProps.md +1 -1
- package/docs/api/interfaces/EventProviderProps.md +1 -1
- package/docs/api/interfaces/FileSizeLimits.md +1 -1
- package/docs/api/interfaces/FileUploadProps.md +1 -1
- package/docs/api/interfaces/FooterProps.md +1 -1
- package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
- package/docs/api/interfaces/InputProps.md +1 -1
- package/docs/api/interfaces/LabelProps.md +1 -1
- package/docs/api/interfaces/LoginFormProps.md +1 -1
- package/docs/api/interfaces/NavigationAccessRecord.md +1 -1
- package/docs/api/interfaces/NavigationContextType.md +1 -1
- package/docs/api/interfaces/NavigationGuardProps.md +1 -1
- package/docs/api/interfaces/NavigationItem.md +1 -1
- package/docs/api/interfaces/NavigationMenuProps.md +1 -1
- package/docs/api/interfaces/NavigationProviderProps.md +1 -1
- package/docs/api/interfaces/Organisation.md +1 -1
- package/docs/api/interfaces/OrganisationContextType.md +1 -1
- package/docs/api/interfaces/OrganisationMembership.md +1 -1
- package/docs/api/interfaces/OrganisationProviderProps.md +1 -1
- package/docs/api/interfaces/OrganisationSecurityError.md +1 -1
- package/docs/api/interfaces/PaceAppLayoutProps.md +1 -1
- package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
- package/docs/api/interfaces/PageAccessRecord.md +1 -1
- package/docs/api/interfaces/PagePermissionContextType.md +1 -1
- package/docs/api/interfaces/PagePermissionGuardProps.md +1 -1
- package/docs/api/interfaces/PagePermissionProviderProps.md +1 -1
- package/docs/api/interfaces/PaletteData.md +1 -1
- package/docs/api/interfaces/PermissionEnforcerProps.md +1 -1
- package/docs/api/interfaces/PublicErrorBoundaryProps.md +1 -1
- package/docs/api/interfaces/PublicErrorBoundaryState.md +1 -1
- package/docs/api/interfaces/PublicLoadingSpinnerProps.md +1 -1
- package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
- package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
- package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
- package/docs/api/interfaces/RBACConfig.md +1 -1
- package/docs/api/interfaces/RBACContextType.md +1 -1
- package/docs/api/interfaces/RBACLogger.md +1 -1
- package/docs/api/interfaces/RBACProviderProps.md +1 -1
- package/docs/api/interfaces/RoleBasedRouterContextType.md +1 -1
- package/docs/api/interfaces/RoleBasedRouterProps.md +1 -1
- package/docs/api/interfaces/RouteAccessRecord.md +1 -1
- package/docs/api/interfaces/RouteConfig.md +1 -1
- package/docs/api/interfaces/SecureDataContextType.md +1 -1
- package/docs/api/interfaces/SecureDataProviderProps.md +1 -1
- package/docs/api/interfaces/StorageConfig.md +1 -1
- package/docs/api/interfaces/StorageFileInfo.md +1 -1
- package/docs/api/interfaces/StorageFileMetadata.md +1 -1
- package/docs/api/interfaces/StorageListOptions.md +1 -1
- package/docs/api/interfaces/StorageListResult.md +1 -1
- package/docs/api/interfaces/StorageUploadOptions.md +1 -1
- package/docs/api/interfaces/StorageUploadResult.md +1 -1
- package/docs/api/interfaces/StorageUrlOptions.md +1 -1
- package/docs/api/interfaces/StyleImport.md +1 -1
- package/docs/api/interfaces/ToastActionElement.md +1 -1
- package/docs/api/interfaces/ToastProps.md +1 -1
- package/docs/api/interfaces/UnifiedAuthContextType.md +1 -1
- package/docs/api/interfaces/UnifiedAuthProviderProps.md +1 -1
- package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
- package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
- package/docs/api/interfaces/UsePublicEventLogoOptions.md +1 -1
- package/docs/api/interfaces/UsePublicEventLogoReturn.md +1 -1
- package/docs/api/interfaces/UsePublicEventOptions.md +1 -1
- package/docs/api/interfaces/UsePublicEventReturn.md +1 -1
- package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
- package/docs/api/interfaces/UserEventAccess.md +1 -1
- package/docs/api/interfaces/UserMenuProps.md +1 -1
- package/docs/api/interfaces/UserProfile.md +1 -1
- package/docs/api/modules.md +2 -2
- package/package.json +1 -1
- package/src/components/DataTable/components/DataTableCore.tsx +67 -4
- package/dist/chunk-TBJVKUYR.js.map +0 -1
- /package/dist/{DataTable-XPPSWRXE.js.map → DataTable-7H63EFYM.js.map} +0 -0
- /package/dist/{chunk-OYDYXNAY.js.map → chunk-MC5E4ILK.js.map} +0 -0
|
@@ -32,7 +32,7 @@ import {
|
|
|
32
32
|
useDataTableContext,
|
|
33
33
|
usePluginRegistry,
|
|
34
34
|
useStateManager
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-BRWHKGV2.js";
|
|
36
36
|
import "./chunk-YA77BOZM.js";
|
|
37
37
|
import "./chunk-GWSBHC4J.js";
|
|
38
38
|
import "./chunk-7BNPOCLL.js";
|
|
@@ -50,6 +50,7 @@ import {
|
|
|
50
50
|
} from "./chunk-SS3E6QLB.js";
|
|
51
51
|
import "./chunk-RQ7Y2CN6.js";
|
|
52
52
|
import "./chunk-YDJW5XTN.js";
|
|
53
|
+
import "./chunk-MZBUOP4P.js";
|
|
53
54
|
import "./chunk-WJARTBCT.js";
|
|
54
55
|
import "./chunk-PLDDJCW6.js";
|
|
55
56
|
export {
|
|
@@ -96,4 +97,4 @@ export {
|
|
|
96
97
|
usePluginRegistry,
|
|
97
98
|
useStateManager
|
|
98
99
|
};
|
|
99
|
-
//# sourceMappingURL=DataTable-
|
|
100
|
+
//# sourceMappingURL=DataTable-7H63EFYM.js.map
|
|
@@ -15,6 +15,10 @@ import {
|
|
|
15
15
|
init_UnifiedAuthProvider,
|
|
16
16
|
useUnifiedAuth
|
|
17
17
|
} from "./chunk-RQ7Y2CN6.js";
|
|
18
|
+
import {
|
|
19
|
+
getCurrentAppName,
|
|
20
|
+
init_appNameResolver
|
|
21
|
+
} from "./chunk-MZBUOP4P.js";
|
|
18
22
|
import {
|
|
19
23
|
cn,
|
|
20
24
|
init_cn
|
|
@@ -3227,6 +3231,7 @@ function AccessDeniedPage({
|
|
|
3227
3231
|
|
|
3228
3232
|
// src/components/DataTable/components/DataTableCore.tsx
|
|
3229
3233
|
init_UnifiedAuthProvider();
|
|
3234
|
+
init_appNameResolver();
|
|
3230
3235
|
import { Fragment as Fragment7, jsx as jsx20, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
3231
3236
|
function DataTableInternal({
|
|
3232
3237
|
data,
|
|
@@ -3385,11 +3390,39 @@ function DataTableInternal({
|
|
|
3385
3390
|
const stableScope = stableScopeRef.current;
|
|
3386
3391
|
useEffect5(() => {
|
|
3387
3392
|
const resolveScope = async () => {
|
|
3393
|
+
let appId = void 0;
|
|
3394
|
+
if (supabase) {
|
|
3395
|
+
const appName = getCurrentAppName();
|
|
3396
|
+
if (appName) {
|
|
3397
|
+
try {
|
|
3398
|
+
console.log("[DataTable] Resolving app name to ID:", appName);
|
|
3399
|
+
const { data: app, error } = await supabase.from("rbac_apps").select("id, name, is_active").eq("name", appName).eq("is_active", true).single();
|
|
3400
|
+
if (error) {
|
|
3401
|
+
console.error("[DataTable] Database error resolving app ID:", error);
|
|
3402
|
+
const { data: inactiveApp } = await supabase.from("rbac_apps").select("id, name, is_active").eq("name", appName).single();
|
|
3403
|
+
if (inactiveApp) {
|
|
3404
|
+
console.error(`[DataTable] App "${appName}" exists but is inactive (is_active: ${inactiveApp.is_active})`);
|
|
3405
|
+
} else {
|
|
3406
|
+
console.error(`[DataTable] App "${appName}" not found in rbac_apps table`);
|
|
3407
|
+
}
|
|
3408
|
+
} else if (app) {
|
|
3409
|
+
appId = app.id;
|
|
3410
|
+
console.log("[DataTable] Successfully resolved app ID:", app.id);
|
|
3411
|
+
} else {
|
|
3412
|
+
console.error("[DataTable] No app data returned for:", appName);
|
|
3413
|
+
}
|
|
3414
|
+
} catch (error) {
|
|
3415
|
+
console.error("[DataTable] Unexpected error resolving app ID:", error);
|
|
3416
|
+
}
|
|
3417
|
+
} else {
|
|
3418
|
+
console.warn("[DataTable] No app name available for resolution");
|
|
3419
|
+
}
|
|
3420
|
+
}
|
|
3388
3421
|
if (selectedOrganisationId && selectedEventId) {
|
|
3389
3422
|
setResolvedScope({
|
|
3390
3423
|
organisationId: selectedOrganisationId,
|
|
3391
3424
|
eventId: selectedEventId,
|
|
3392
|
-
appId
|
|
3425
|
+
appId
|
|
3393
3426
|
});
|
|
3394
3427
|
return;
|
|
3395
3428
|
}
|
|
@@ -3397,7 +3430,7 @@ function DataTableInternal({
|
|
|
3397
3430
|
setResolvedScope({
|
|
3398
3431
|
organisationId: selectedOrganisationId,
|
|
3399
3432
|
eventId: selectedEventId || void 0,
|
|
3400
|
-
appId
|
|
3433
|
+
appId
|
|
3401
3434
|
});
|
|
3402
3435
|
return;
|
|
3403
3436
|
}
|
|
@@ -3410,7 +3443,10 @@ function DataTableInternal({
|
|
|
3410
3443
|
setResolvedScope(null);
|
|
3411
3444
|
return;
|
|
3412
3445
|
}
|
|
3413
|
-
setResolvedScope(
|
|
3446
|
+
setResolvedScope({
|
|
3447
|
+
...eventScope,
|
|
3448
|
+
appId: appId || eventScope.appId
|
|
3449
|
+
});
|
|
3414
3450
|
} catch (error) {
|
|
3415
3451
|
console.error("[DataTable] Error resolving scope from event:", error);
|
|
3416
3452
|
setResolvedScope(null);
|
|
@@ -3438,7 +3474,21 @@ function DataTableInternal({
|
|
|
3438
3474
|
console.log(" stableScope keys:", stableScope ? Object.keys(stableScope) : "null");
|
|
3439
3475
|
const fallbackScope = { organisationId: "", eventId: void 0, appId: void 0 };
|
|
3440
3476
|
const effectiveScope = stableScope && stableScope.organisationId ? stableScope : fallbackScope;
|
|
3441
|
-
const
|
|
3477
|
+
const testBypass = false;
|
|
3478
|
+
const permissions = testBypass ? {
|
|
3479
|
+
canRead: { can: true, isLoading: false, error: null, refetch: async () => {
|
|
3480
|
+
} },
|
|
3481
|
+
canCreate: { can: true, isLoading: false, error: null, refetch: async () => {
|
|
3482
|
+
} },
|
|
3483
|
+
canUpdate: { can: true, isLoading: false, error: null, refetch: async () => {
|
|
3484
|
+
} },
|
|
3485
|
+
canDelete: { can: true, isLoading: false, error: null, refetch: async () => {
|
|
3486
|
+
} },
|
|
3487
|
+
canExport: { can: true, isLoading: false, error: null, refetch: async () => {
|
|
3488
|
+
} },
|
|
3489
|
+
canImport: { can: true, isLoading: false, error: null, refetch: async () => {
|
|
3490
|
+
} }
|
|
3491
|
+
} : {
|
|
3442
3492
|
canRead: useCan(user?.id || "", effectiveScope, `read:page.${effectivePageId}`, effectivePageId, true),
|
|
3443
3493
|
canCreate: useCan(user?.id || "", effectiveScope, `create:page.${effectivePageId}`, effectivePageId, true),
|
|
3444
3494
|
canUpdate: useCan(user?.id || "", effectiveScope, `update:page.${effectivePageId}`, effectivePageId, true),
|
|
@@ -3448,6 +3498,9 @@ function DataTableInternal({
|
|
|
3448
3498
|
canImport: useCan(user?.id || "", effectiveScope, `manage:page.${effectivePageId}`, effectivePageId, true)
|
|
3449
3499
|
// Using manage for export/import
|
|
3450
3500
|
};
|
|
3501
|
+
if (testBypass) {
|
|
3502
|
+
console.log("[DataTable] TEST BYPASS: Using hardcoded can: true for all permissions");
|
|
3503
|
+
}
|
|
3451
3504
|
const finalPaginationMode = paginationMode || detectedMode;
|
|
3452
3505
|
const finalPageSizeOptions = optimizedPageSizeOptions;
|
|
3453
3506
|
const validatedInitialPageSize = useMemo6(() => {
|
|
@@ -5556,4 +5609,4 @@ export {
|
|
|
5556
5609
|
GroupHeader,
|
|
5557
5610
|
EditableRow
|
|
5558
5611
|
};
|
|
5559
|
-
//# sourceMappingURL=chunk-
|
|
5612
|
+
//# sourceMappingURL=chunk-BRWHKGV2.js.map
|