import config from "./config/index.js";
import { DB_MAX_NOTE_TEXT_LENGTH, DB_MAX_IMAGE_COMMENT_LENGTH } from "./misc/hard-limits.js";
export const MAX_NOTE_TEXT_LENGTH = Math.min(config.maxNoteLength ?? 3000, DB_MAX_NOTE_TEXT_LENGTH);
export const MAX_CAPTION_TEXT_LENGTH = Math.min(config.maxCaptionLength ?? 1500, DB_MAX_IMAGE_COMMENT_LENGTH);
export const SECOND = 1000;
export const SEC = 1000; // why do we need this duplicate here?
export const MINUTE = 60 * SEC;
export const MIN = 60 * SEC; // why do we need this duplicate here?
export const HOUR = 60 * MIN;
export const DAY = 24 * HOUR;
export const USER_ONLINE_THRESHOLD = 10 * MINUTE;
export const USER_ACTIVE_THRESHOLD = 3 * DAY;
// List of file types allowed to be viewed directly in the browser
// Anything not included here will be responded as application/octet-stream
// SVG is not allowed because it generates XSS <- we need to fix this and later allow it to be viewed directly
export const FILE_TYPE_BROWSERSAFE = [
    // Images
    "image/png",
    "image/gif",
    "image/jpeg",
    "image/webp",
    "image/apng",
    "image/bmp",
    "image/tiff",
    "image/x-icon",
    "image/avif",
    // OggS
    "audio/opus",
    "video/ogg",
    "audio/ogg",
    "application/ogg",
    // ISO/IEC base media file format
    "video/quicktime",
    "video/mp4",
    "video/vnd.avi",
    "audio/mp4",
    "video/x-m4v",
    "audio/x-m4a",
    "video/3gpp",
    "video/3gpp2",
    "video/3gp2",
    "audio/3gpp",
    "audio/3gpp2",
    "audio/3gp2",
    "video/mpeg",
    "audio/mpeg",
    "video/webm",
    "audio/webm",
    "audio/aac",
    "audio/x-flac",
    "audio/flac",
    "audio/vnd.wave"
]; /*
https://github.com/sindresorhus/file-type/blob/main/supported.js
https://github.com/sindresorhus/file-type/blob/main/core.js
https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Containers
*/ 
