2017-11-06 19:23:35 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  log  =  require ( './services/log' ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-14 23:31:44 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								const  express  =  require ( 'express' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  path  =  require ( 'path' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  favicon  =  require ( 'serve-favicon' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  cookieParser  =  require ( 'cookie-parser' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  bodyParser  =  require ( 'body-parser' ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-15 16:32:49 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  helmet  =  require ( 'helmet' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  session  =  require ( 'express-session' ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-15 17:07:34 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  FileStore  =  require ( 'session-file-store' ) ( session ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-23 22:36:18 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  os  =  require ( 'os' ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-23 23:38:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  sessionSecret  =  require ( './services/session_secret' ) ;  
						 
					
						
							
								
									
										
										
										
											2017-11-28 22:01:02 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  utils  =  require ( './services/utils' ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-14 23:31:44 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-26 23:16:47 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								require ( './services/ping_job' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-10-14 23:31:44 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								const  app  =  express ( ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// view engine setup
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								app . set ( 'views' ,  path . join ( _ _dirname ,  'views' ) ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								app . set ( 'view engine' ,  'ejs' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-10-15 16:32:49 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								app . use ( helmet ( ) ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-24 22:04:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								app . use ( ( req ,  res ,  next )  =>  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    log . request ( req ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    next ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-10-26 23:21:31 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								app . use ( bodyParser . json ( { limit :  '50mb' } ) ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-14 23:31:44 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								app . use ( bodyParser . urlencoded ( { extended :  false } ) ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								app . use ( cookieParser ( ) ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-15 19:47:05 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								app . use ( express . static ( path . join ( _ _dirname ,  'public' ) ) ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-15 16:32:49 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								app . use ( session ( {  
						 
					
						
							
								
									
										
										
										
											2017-10-23 23:38:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    secret :  sessionSecret , 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-15 16:32:49 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    resave :  false ,  // true forces the session to be saved back to the session store, even if the session was never modified during the request.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    saveUninitialized :  false ,  // true forces a session that is "uninitialized" to be saved to the store. A session is uninitialized when it is new but not modified.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    cookie :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //    path: "/",
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        httpOnly :  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        maxAge :   1800000 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-15 17:07:34 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    store :  new  FileStore ( { 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-16 19:14:15 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        ttl :  30  *  24  *  3600 , 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-23 22:36:18 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        path :  os . tmpdir ( )  +  '/trilium-sessions' 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-15 17:07:34 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-15 16:32:49 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								} ) ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-21 00:19:13 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-06 23:52:54 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								app . use ( favicon ( _ _dirname  +  '/public/images/app-icons/win/icon.ico' ) ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-14 23:31:44 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-03 23:00:35 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								require ( './routes/routes' ) . register ( app ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-14 23:31:44 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// catch 404 and forward to error handler
  
						 
					
						
							
								
									
										
										
										
											2017-10-24 22:04:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								app . use ( ( req ,  res ,  next )  =>  {  
						 
					
						
							
								
									
										
										
										
											2017-10-29 14:55:48 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    const  err  =  new  Error ( 'Router not found for request '  +  req . url ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-14 23:31:44 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    err . status  =  404 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    next ( err ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// error handler
  
						 
					
						
							
								
									
										
										
										
											2017-10-24 22:04:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								app . use ( ( err ,  req ,  res ,  next )  =>  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    log . error ( err . message ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-28 13:19:12 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    res . status ( err . status  ||  500 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    res . send ( { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        message :  err . message 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-14 23:31:44 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								} ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-10-28 12:23:11 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								// triggers sync timer
  
						 
					
						
							
								
									
										
										
										
											2017-10-21 21:10:33 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								require ( './services/sync' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-10-28 12:23:11 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								// triggers backup timer
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								require ( './services/backup' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-28 22:01:02 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  ( utils . isElectron ( ) )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    const  ipcMain  =  require ( 'electron' ) . ipcMain ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ipcMain . on ( 'server-request' ,  ( event ,  arg )  =>  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        const  req  =  { } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        req . url  =  arg . url ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        req . method  =  arg . method ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        req . body  =  arg . data ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-29 23:30:35 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        req . headers  =  arg . headers ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        const  res  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            statusCode :  200 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-28 22:01:02 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        res . setHeader  =  function ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-29 23:30:35 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        res . status  =  function ( statusCode )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            res . statusCode  =  statusCode ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-28 22:01:02 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        res . send  =  function ( obj )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            event . sender . send ( 'server-response' ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                requestId :  arg . requestId , 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-29 23:30:35 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                statusCode :  res . statusCode , 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-28 22:01:02 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                body :  obj 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  app . _router . handle ( req ,  res ,  ( )  =>  { } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-10-14 23:31:44 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								module . exports  =  app ;