T.ME/BIBIL_0DAY
CasperSecurity


Server : Apache/2
System : Linux server-15-235-50-60 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64
User : gositeme ( 1004)
PHP Version : 8.2.29
Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Directory :  /home/gositeme/backups/lavocat.quebec/backup-20250730-021618/src/pages/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/gositeme/backups/lavocat.quebec/backup-20250730-021618/src/pages/_app.tsx
import '@/styles/globals.css';
import type { AppProps } from 'next/app';
import { SessionProvider, useSession } from 'next-auth/react';
import NProgress from 'nprogress';
import 'nprogress/nprogress.css';
import { useRouter } from 'next/router';
import { useEffect } from 'react';
import ErrorBoundary from '@/components/ErrorBoundary';
import { ThemeProvider } from '@/context/ThemeContext';
import ThemeCustomizer from '@/components/ThemeCustomizer';
import Layout from '@/components/Layout';
import { ChakraProvider, defaultSystem } from '@chakra-ui/react';

import { Toaster } from 'react-hot-toast';
import { registerServiceWorker } from '@/utils/serviceWorker';
import Head from 'next/head';
import AuthenticatedWebSocketProvider from '@/components/AuthenticatedWebSocketProvider';
import { PublicNotificationProvider } from '@/context/PublicNotificationContext';
import { LanguageProvider } from '@/context/LanguageContext';
import CaseUpdateBanner from '@/components/CaseUpdateBanner';
import SmartEngagement from '@/components/SmartEngagement';
// import IncomingCallNotification from '@/components/IncomingCallNotification'; // Removed for now
// import SimpleVideoCall from '@/components/SimpleVideoCall'; // Removed for now

// Suppress CSS warnings in browser console
const suppressCssWarnings = () => {
  if (typeof window !== 'undefined') {
    const originalWarn = console.warn;
    const originalError = console.error;
    
    const cssWarningPatterns = [
      /Unknown property/,
      /Unknown pseudo-class/,
      /Unknown pseudo-element/,
      /Error in parsing value/,
      /Ruleset ignored due to bad selector/,
      /Declaration dropped/,
      /:host selector/,
      /-moz-/,
      /-webkit-/,
      /-ms-/,
      /Error in parsing value for 'transition'/,
      /Image with src.*has either width or height modified/,
      /Facebook SDK is being shimmed/,
      /A resource is blocked by OpaqueResponseBlocking/,
      /The Notification permission may only be requested/,
      /ReferenceError: a is not defined/,
      /HMR.*Invalid message/,
      /Firefox can't establish a connection/,
      /Download the React DevTools/,
      /Current user role:/,
      /Role type:/,
      /Role comparison with/,
      /Show all roles:/,
      /Full session user object:/,
      /Final grouped navigation:/,
      /useImpersonation - Session state changed/,
      /๐Ÿ” Impersonation check:/,
      /๐Ÿ”„ Starting impersonation request/,
      /๐Ÿ”„ Effective role for impersonation:/,
      /๐Ÿ”„ Current session:/,
      /๐Ÿ“Š Response received:/,
      /โŒ Impersonation failed:/,
      /[WebSocket] ๐Ÿ” Connection effect triggered/,
      /[WebSocket] ๐Ÿš€ Connecting immediately/,
      /[WebSocket] ๐Ÿ”„ Connecting for user:/,
      /[WebSocket] ๐Ÿงน Cleanup completed/,
      /[WebSocket] โŒ Connection error/,
      /[WebSocket] ๐Ÿ”Œ Disconnected/,
      /[WebSocket] ๐Ÿ”„ Reconnecting/,
      /[WebSocket] ๐Ÿ”„ Connection already exists/,
      /[WebSocket] Ready State Check/,
      /[WebSocket] โœ… Connected for/,
      /[WebSocket] ๐Ÿ“ Received ping/,
      /\[WebSocket\].*/,
      /\[AdminDashboard\].*/,
      /\[GroupChat\].*/,
      /Private chat WebSocket/,
      /Direct message WebSocket/,
      /๐Ÿ“ก WebSocket/,
      /๐Ÿ“ก Sent.*signal via WebSocket/,
      /โœ… Impersonation event logged:/,
      /\[IMPERSONATE\].*/,
      /โœ… Impersonation success/,
      /โŒ Impersonation error:/,
      /๐Ÿ”ง Unique constraint violation/,
      /โŒ Retry failed:/,
      /โš ๏ธ Error cleaning up expired sessions/,
      /โš ๏ธ Found existing active session/,
      /๐Ÿ”„ App - Refreshing session on page load/,
      /Refreshing page data due to server-side change/,
      /๐Ÿšจ Performance issues detected:/,
      /Too many WebSocket connections/,
      /๐Ÿ”Œ WebSocket connections:/,
      /๐Ÿ“Š Performance Report/,
      /๐ŸŽจ Last render time:/,
      /๐Ÿ’พ Memory usage:/,
      /โฐ Active timers:/,
      /โš ๏ธ Slow render detected/,
      /โฐ High number of active timers/
    ];
    
    console.warn = function(...args) {
      const message = args.join(' ');
      if (cssWarningPatterns.some(pattern => pattern.test(message))) {
        return; // Suppress CSS warnings
      }
      originalWarn.apply(console, args);
    };
    
    console.error = function(...args) {
      const message = args.join(' ');
      if (cssWarningPatterns.some(pattern => pattern.test(message))) {
        return; // Suppress CSS errors
      }
      originalError.apply(console, args);
    };

    // Suppress unhandled reference errors
    window.addEventListener('error', (event) => {
      if (event.error && event.error.message && 
          (event.error.message.includes('a is not defined') || 
           event.error.message.includes('ReferenceError'))) {
        event.preventDefault();
        return false;
      }
    });
  }
};


// Disable the default Next.js loading indicator
NProgress.configure({ showSpinner: false });

function SessionRefresh() {
  const { data: session, update } = useSession();

  useEffect(() => {
    // Refresh session on page load to ensure impersonation state is current
    if (session?.user) {
      console.log('๐Ÿ”„ App - Refreshing session on page load');
      update({ trigger: 'update' });
    }
  }, []); // Only run once on mount

  return null;
}

function App({ Component, pageProps: { session, ...pageProps } }: AppProps) {
  const router = useRouter();

  useEffect(() => {
    registerServiceWorker();
  }, []);

  useEffect(() => {
    suppressCssWarnings();
  }, []);

  useEffect(() => {
    const handleStart = () => NProgress.start();
    const handleStop = () => NProgress.done();
    router.events.on('routeChangeStart', handleStart);
    router.events.on('routeChangeComplete', handleStop);
    router.events.on('routeChangeError', handleStop);
    return () => {
      router.events.off('routeChangeStart', handleStart);
      router.events.off('routeChangeComplete', handleStop);
      router.events.off('routeChangeError', handleStop);
    };
  }, [router]);

  return (
    <ErrorBoundary>
      <ChakraProvider value={defaultSystem}>
        <SessionProvider session={session}>
          <SessionRefresh />
          <ThemeProvider>
            <LanguageProvider>
              <PublicNotificationProvider>
                <AuthenticatedWebSocketProvider>
                <Head>
                  <meta charSet="utf-8" />
                  <meta name="viewport" content="width=device-width, initial-scale=1" />
                  <link rel="icon" href="/favicon.ico" />
                  {/* Removed preload tags to avoid unused resource warnings */}
                </Head>
                <CaseUpdateBanner />
                <ThemeCustomizer />
                <Layout>
                  <Component {...pageProps} />
                </Layout>
                <SmartEngagement />
                {/* Video call removed for now */}
                {/* Video call removed for now */}
        
                <Toaster />
        
              </AuthenticatedWebSocketProvider>
            </PublicNotificationProvider>
            </LanguageProvider>
          </ThemeProvider>
        </SessionProvider>
      </ChakraProvider>
    </ErrorBoundary>
  );
}

export default App; 

CasperSecurity Mini