|
import { EventEmitter } from 'node:events'; |
|
import { CsrfSyncedToken } from 'csrf-sync'; |
|
import { UserDirectoryList, User } from './src/users.js'; |
|
import { CommandLineArguments } from './src/command-line.js'; |
|
import { EVENT_NAMES } from './src/server-events.js'; |
|
|
|
|
|
|
|
|
|
export interface ServerStartedEvent { |
|
|
|
|
|
|
|
url: URL; |
|
} |
|
|
|
|
|
|
|
|
|
export interface ServerEventMap { |
|
[EVENT_NAMES.SERVER_STARTED]: [ServerStartedEvent]; |
|
} |
|
|
|
declare global { |
|
declare namespace NodeJS { |
|
export interface Process { |
|
|
|
|
|
|
|
serverEvents: EventEmitter<ServerEventMap>; |
|
} |
|
} |
|
|
|
declare namespace CookieSessionInterfaces { |
|
export interface CookieSessionObject { |
|
|
|
|
|
|
|
csrfToken: CsrfSyncedToken; |
|
|
|
|
|
|
|
handle: string; |
|
|
|
|
|
|
|
touch: number; |
|
} |
|
} |
|
|
|
namespace Express { |
|
export interface Request { |
|
user: { |
|
profile: User; |
|
directories: UserDirectoryList; |
|
}; |
|
} |
|
} |
|
|
|
|
|
|
|
|
|
var DATA_ROOT: string; |
|
|
|
|
|
|
|
|
|
var COMMAND_LINE_ARGS: CommandLineArguments; |
|
} |
|
|