calckey/packages/backend/src/const.ts

60 lines
1.4 KiB
TypeScript
Raw Normal View History

2023-01-13 04:40:33 +00:00
import config from "@/config/index.js";
2022-12-12 23:07:38 +00:00
2023-01-13 04:40:33 +00:00
export const MAX_NOTE_TEXT_LENGTH =
config.maxNoteLength != null ? config.maxNoteLength : 3000;
2022-07-13 22:01:23 +00:00
export const SECOND = 1000;
2022-07-25 20:57:13 +00:00
export const SEC = 1000;
2022-07-13 22:01:23 +00:00
export const MINUTE = 60 * SEC;
2022-07-25 20:57:13 +00:00
export const MIN = 60 * SEC;
2022-07-13 22:01:23 +00:00
export const HOUR = 60 * MIN;
export const DAY = 24 * HOUR;
export const USER_ONLINE_THRESHOLD = 1000 * 60 * 10; // 10min
export const USER_ACTIVE_THRESHOLD = 1000 * 60 * 60 * 24 * 3; // 3days
// ブラウザで直接表示することを許可するファイルの種類のリスト
// ここに含まれないものは application/octet-stream としてレスポンスされる
// SVGはXSSを生むので許可しない
export const FILE_TYPE_BROWSERSAFE = [
// Images
2023-01-13 04:40:33 +00:00
"image/png",
"image/gif",
"image/jpeg",
"image/webp",
"image/apng",
"image/bmp",
"image/tiff",
"image/x-icon",
// OggS
2023-01-13 04:40:33 +00:00
"audio/opus",
"video/ogg",
"audio/ogg",
"application/ogg",
// ISO/IEC base media file format
2023-01-13 04:40:33 +00:00
"video/quicktime",
"video/mp4",
"audio/mp4",
"video/x-m4v",
"audio/x-m4a",
"video/3gpp",
"video/3gpp2",
"video/mpeg",
"audio/mpeg",
"video/webm",
"audio/webm",
"audio/aac",
"audio/x-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
*/