@jmruthers/pace-core 0.5.50 → 0.5.52
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-JC5NR6DQ.js → DataTable-RZZ2HEYP.js} +5 -5
- package/dist/{chunk-DZM6W7YH.js → chunk-AH6CKR4Y.js} +39 -2
- package/dist/{chunk-DZM6W7YH.js.map → chunk-AH6CKR4Y.js.map} +1 -1
- package/dist/{chunk-LGVLSLWJ.js → chunk-DC6TVAHO.js} +5 -5
- package/dist/{chunk-SOPATUDB.js → chunk-FDJVRPIU.js} +2 -2
- package/dist/{chunk-YFNBRRS7.js → chunk-FY2LCUBT.js} +3 -3
- package/dist/{chunk-G47ECEWM.js → chunk-R7YV2KWY.js} +3 -3
- package/dist/{chunk-3NWLPXMS.js → chunk-WU6LR7OX.js} +2 -2
- package/dist/{chunk-NZ5WW5EX.js → chunk-XKMNKZS3.js} +3 -3
- package/dist/{chunk-3J4WSZO3.js → chunk-XVCVQVLM.js} +3 -3
- package/dist/{chunk-ERXSGW2S.js → chunk-YCBNUPXB.js} +4 -4
- package/dist/{chunk-7QBLX43Q.js → chunk-ZRA62X5V.js} +2 -2
- package/dist/components.js +7 -7
- package/dist/hooks.js +4 -4
- package/dist/index.js +10 -10
- package/dist/providers.js +3 -3
- package/dist/rbac/index.js +5 -5
- package/dist/utils.js +1 -1
- 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 +3 -3
- package/package.json +1 -1
- package/src/providers/OrganisationProvider.tsx +52 -3
- /package/dist/{DataTable-JC5NR6DQ.js.map → DataTable-RZZ2HEYP.js.map} +0 -0
- /package/dist/{chunk-LGVLSLWJ.js.map → chunk-DC6TVAHO.js.map} +0 -0
- /package/dist/{chunk-SOPATUDB.js.map → chunk-FDJVRPIU.js.map} +0 -0
- /package/dist/{chunk-YFNBRRS7.js.map → chunk-FY2LCUBT.js.map} +0 -0
- /package/dist/{chunk-G47ECEWM.js.map → chunk-R7YV2KWY.js.map} +0 -0
- /package/dist/{chunk-3NWLPXMS.js.map → chunk-WU6LR7OX.js.map} +0 -0
- /package/dist/{chunk-NZ5WW5EX.js.map → chunk-XKMNKZS3.js.map} +0 -0
- /package/dist/{chunk-3J4WSZO3.js.map → chunk-XVCVQVLM.js.map} +0 -0
- /package/dist/{chunk-ERXSGW2S.js.map → chunk-YCBNUPXB.js.map} +0 -0
- /package/dist/{chunk-7QBLX43Q.js.map → chunk-ZRA62X5V.js.map} +0 -0
package/docs/api/modules.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
[@jmruthers/pace-core - v0.5.
|
|
1
|
+
[@jmruthers/pace-core - v0.5.52](README.md) / Exports
|
|
2
2
|
|
|
3
|
-
# @jmruthers/pace-core - v0.5.
|
|
3
|
+
# @jmruthers/pace-core - v0.5.52
|
|
4
4
|
|
|
5
5
|
**`File`**
|
|
6
6
|
|
|
@@ -4086,7 +4086,7 @@ If used outside OrganisationProvider
|
|
|
4086
4086
|
|
|
4087
4087
|
#### Defined in
|
|
4088
4088
|
|
|
4089
|
-
[packages/core/src/providers/OrganisationProvider.tsx:
|
|
4089
|
+
[packages/core/src/providers/OrganisationProvider.tsx:779](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/OrganisationProvider.tsx#L779)
|
|
4090
4090
|
|
|
4091
4091
|
___
|
|
4092
4092
|
|
package/package.json
CHANGED
|
@@ -173,6 +173,10 @@ export function OrganisationProvider({ children }: OrganisationProviderProps) {
|
|
|
173
173
|
|
|
174
174
|
// CRITICAL: Load user organisations and validate access
|
|
175
175
|
const loadUserOrganisations = useCallback(async () => {
|
|
176
|
+
// Add call tracking to detect race conditions
|
|
177
|
+
const callId = Math.random().toString(36).substr(2, 9);
|
|
178
|
+
console.log(`[OrganisationProvider] Starting loadUserOrganisations call ${callId}`);
|
|
179
|
+
|
|
176
180
|
if (!user || !session || !supabase) {
|
|
177
181
|
// Clear state when no user, session, or supabase client
|
|
178
182
|
DebugLogger.log('OrganisationProvider', 'Clearing organisation state - no user, session, or supabase client');
|
|
@@ -327,10 +331,55 @@ export function OrganisationProvider({ children }: OrganisationProviderProps) {
|
|
|
327
331
|
console.error("Final:", finalOrganisationIds);
|
|
328
332
|
}
|
|
329
333
|
|
|
330
|
-
|
|
334
|
+
// CRITICAL: Log exactly what we're passing to the query
|
|
335
|
+
console.log("[OrganisationProvider] FINAL QUERY ARRAY:", {
|
|
336
|
+
array: finalOrganisationIds,
|
|
337
|
+
length: finalOrganisationIds.length,
|
|
338
|
+
types: finalOrganisationIds.map(id => typeof id),
|
|
339
|
+
hasEmpty: finalOrganisationIds.some(id => !id || id.trim() === ''),
|
|
340
|
+
stringified: JSON.stringify(finalOrganisationIds)
|
|
341
|
+
});
|
|
342
|
+
|
|
343
|
+
// Additional safety check - if we detect any empty strings, abort
|
|
344
|
+
if (finalOrganisationIds.some(id => !id || id.trim() === '')) {
|
|
345
|
+
console.error("[OrganisationProvider] ABORTING QUERY - Empty string detected in final array!");
|
|
346
|
+
throw new Error('Empty string detected in organisation IDs array - aborting query');
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
// Create a completely new array to avoid any reference issues
|
|
350
|
+
const safeOrganisationIds = [...finalOrganisationIds].filter(id => {
|
|
351
|
+
const isValid = id && typeof id === 'string' && id.trim() !== '';
|
|
352
|
+
if (!isValid) {
|
|
353
|
+
console.error("[OrganisationProvider] SAFETY FILTER: Removing invalid ID:", { id, type: typeof id });
|
|
354
|
+
}
|
|
355
|
+
return isValid;
|
|
356
|
+
});
|
|
357
|
+
|
|
358
|
+
console.log("[OrganisationProvider] SAFE ARRAY FOR QUERY:", {
|
|
359
|
+
original: finalOrganisationIds,
|
|
360
|
+
safe: safeOrganisationIds,
|
|
361
|
+
lengths: { original: finalOrganisationIds.length, safe: safeOrganisationIds.length }
|
|
362
|
+
});
|
|
363
|
+
|
|
364
|
+
// Try a different approach - use OR conditions instead of .in()
|
|
365
|
+
let query = supabase
|
|
331
366
|
.from('organisations')
|
|
332
|
-
.select('id, name, display_name, subscription_tier, settings, is_active, parent_id, created_at, updated_at')
|
|
333
|
-
|
|
367
|
+
.select('id, name, display_name, subscription_tier, settings, is_active, parent_id, created_at, updated_at');
|
|
368
|
+
|
|
369
|
+
if (safeOrganisationIds.length === 1) {
|
|
370
|
+
console.log("[OrganisationProvider] Using single ID query:", safeOrganisationIds[0]);
|
|
371
|
+
query = query.eq('id', safeOrganisationIds[0]);
|
|
372
|
+
} else if (safeOrganisationIds.length > 1) {
|
|
373
|
+
// Build OR condition manually
|
|
374
|
+
const orConditions = safeOrganisationIds.map(id => `id.eq.${id}`).join(',');
|
|
375
|
+
console.log("[OrganisationProvider] Using OR query:", orConditions);
|
|
376
|
+
query = query.or(orConditions);
|
|
377
|
+
} else {
|
|
378
|
+
console.error("[OrganisationProvider] No valid organisation IDs for query!");
|
|
379
|
+
throw new Error('No valid organisation IDs available for query');
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
const { data: organisations, error: orgError } = await query;
|
|
334
383
|
|
|
335
384
|
if (orgError) {
|
|
336
385
|
console.error("[OrganisationProvider] Error loading organisations:", orgError);
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|