import { POSTING_TIME_INTERVAL, REPOSTING_TIME_INTERVAL } from "../config"; import { EmbedDataType, RepostType } from "../enums"; import { ACCOUNT_EXPIRE_FORCE_LOGOUT, BSKY_GIF_MIME_TYPES, BSKY_IMG_MIME_TYPES, BSKY_NAME_LOOKUP_LIMIT, BSKY_NAME_TYPE_AHEAD_CHARS, BSKY_VIDEO_FILE_EXTS, BSKY_VIDEO_LENGTH_LIMIT, BSKY_VIDEO_MIME_TYPES, GIF_UPLOAD_ALLOWED, MAX_ALT_TEXT, MAX_FILES_PER_POST, MAX_GIF_LENGTH_LIMIT, MAX_LENGTH, MAX_THUMBNAIL_SIZE, R2_FILE_SIZE_LIMIT } from "../limits"; import { didCaptureRegex, domainRegexCheck, postRecordURI } from "../validation/regexCases"; export const CONST_SCRIPT_VERSION: number = 20; export const constScriptStr: string = `/js/consts.js?v=${CONST_SCRIPT_VERSION}`; export function makeConstScript(): string { const makeStringArray = (typeMap: string[]) => { return typeMap.map((type) => `"${type}"`).join(); }; const fileTypeArray = [...BSKY_IMG_MIME_TYPES, ...BSKY_VIDEO_MIME_TYPES]; if (GIF_UPLOAD_ALLOWED) { fileTypeArray.push(...BSKY_GIF_MIME_TYPES); } return `/*eslint no-unused-vars: "off"*/ /* Application constant variable definitions */ const DEFINITION_VERSION=${CONST_SCRIPT_VERSION}; const fileTypesSupported = [${makeStringArray(fileTypeArray)}]; const imageTypes = [${makeStringArray(BSKY_IMG_MIME_TYPES)}]; const videoTypes = [${makeStringArray(BSKY_VIDEO_MIME_TYPES)}]; const videoFileExts = [${makeStringArray(BSKY_VIDEO_FILE_EXTS)}]; const gifTypes = [${makeStringArray(BSKY_GIF_MIME_TYPES)}]; const MAX_LENGTH=${MAX_LENGTH}; const MAX_ALT_LENGTH=${MAX_ALT_TEXT}; const MAX_VIDEO_LENGTH=${BSKY_VIDEO_LENGTH_LIMIT}; /* in seconds */ const MAX_GIF_LENGTH=${MAX_GIF_LENGTH_LIMIT}; /* in seconds */ const MAX_AUTO_COMPLETE_NAMES=${BSKY_NAME_LOOKUP_LIMIT}; const MIN_CHAR_AUTO_COMPLETE_NAMES=${BSKY_NAME_TYPE_AHEAD_CHARS}; const FILE_DROP_MAX_SIZE=${R2_FILE_SIZE_LIMIT}; const FILE_DROP_MAX_THUMB_SIZE=${MAX_THUMBNAIL_SIZE}; const FILE_DROP_MAX_FILES=${MAX_FILES_PER_POST}; /* Regexes */ const ATPROTO_RECORD_REGEX=${postRecordURI}; const DOMAIN_REGEX=${domainRegexCheck}; const DID_CAPTURE_REGEX=${didCaptureRegex}; /* Interval settings */ const POSTING_TIME_INTERVAL=${POSTING_TIME_INTERVAL}; const REPOSTING_TIME_INTERVAL=${REPOSTING_TIME_INTERVAL}; /* EmbedDataType enum */ const IMAGE_DATA_TYPE=${EmbedDataType.Image}; const VIDEO_DATA_TYPE=${EmbedDataType.Video}; const WEBLINK_DATA_TYPE=${EmbedDataType.WebLink}; const RECORD_DATA_TYPE=${EmbedDataType.Record}; /* RepostType enum */ const REPOST_TYPE_NONE=${RepostType.None}; const REPOST_TYPE_EXISTING=${RepostType.ExistingPost}; const REPOST_TYPE_FUTURE=${RepostType.FuturePost}; const ACCOUNT_EXPIRE_TIMEOUT=${Math.abs(ACCOUNT_EXPIRE_FORCE_LOGOUT)};`; }