/*
    ! /startup/modules/nodeDependencies.js — NodeJS Dependency Loader
    ? This module loads every nodejs dependency and returns them to the boot loader.
*/

module.exports = {
    // % dev packages
    bSync: require('browser-sync'), // automatic sync in browser after changes

    // % file system packages
    path: require('path'), // handling file and directory paths
    fs: require('fs'), // filesystem operations
    AdmZip: require('AdmZip'), // zip file manager

    // % server packages
    net: require('net'), // network identification
    express: require('express'), // local server
    electron: require('electron'), // window creation
    ws: require('ws'), // pure websockets for data streams
    sio: require('socket.io'), // real-time events for ui
    axios: require('axios'), // http client for api requests

    // % utility packages
    os: require('os'), // operating system information
    si: require('systeminformation'), // get system information

    // % database packages
    ini: require('ini'), // read & manage .conf or .ini files
    sqlite: require('better-sqlite3'), // fast local sql database

    // % security packages
    crypto: require('crypto'), // secure features for server connection
    bcrypt: require('bcrypt'), // hashing features for pass hashing

    // % media packages
    ffmpeg: require('fluent-ffmpeg'), // interface for video encoding
    ffmpegPath: require('ffmpeg-static'), // reference for physical ffmpeg path

    // % load minify dependencies
    minify: require('express-minify'), // js & css compression
    minifyHTML: require('express-minify-html-2'), // html minification
    cleanCSS: require('clean-css'), // stylesheet optimization
    uglifyJS: require('uglify-js'), // javascript compression

    // % external packages
    obs: require('obs-websocket-js'), // obs studio remote control
    gemini: require('@google/generative-ai'), // google gemini ai sdk
};