module.exports = { env: { jquery: true, browser: true, es2022: true, node: true, }, extends: ["eslint:recommended", "plugin:prettier/recommended", "plugin:jsdoc/recommended-typescript-flavor"], parserOptions: { ecmaVersion: 2022, sourceType: "module", }, rules: { // Required for Foundry compatibility "no-underscore-dangle": "off", "import/extensions": "off", "class-methods-use-this": "off", // Personal Preference "linebreak-style": "off", "no-mixed-operators": "off", "no-param-reassign": "off", "no-continue": "off", "no-console": "off", "prefer-const": ["error", { destructuring: "all" }], "no-var": "error", "no-unused-vars": "off", "newline-per-chained-call": "off", "no-plusplus": "off", "valid-jsdoc": "off", // JSDoc plugin "jsdoc/tag-lines": ["error", "any", { startLines: 1 }], "jsdoc/no-defaults": ["off"], "jsdoc/require-jsdoc": ["warn", { enableFixer: false }], "jsdoc/no-blank-blocks": ["error", { enableFixer: true }], }, settings: { jsdoc: { mode: "typescript", structuredTags: { group: { type: "text" }, remarks: { type: "text" }, }, }, }, globals: { AudioHelper: "readonly", Collection: "readonly", Hooks: "readonly", KeyboardManager: "readonly", ClientSettings: "readonly", WorldSettingsStorage: "readonly", SetupConfiguration: "readonly", SocketInterface: "readonly", SortingHelpers: "readonly", VideoHelper: "readonly", Application: "readonly", FormApplication: "readonly", Localization: "readonly", Game: "readonly", Die: "readonly", FateDie: "readonly", PoolTerm: "readonly", Roll: "readonly", MersenneTwister: "readonly", Compendium: "readonly", Canvas: "readonly", CanvasLayer: "readonly", PlaceableObject: "readonly", PlaceablesLayer: "readonly", ContextMenu: "readonly", Dialog: "readonly", Draggable: "readonly", DragDrop: "readonly", TextEditor: "readonly", FilePicker: "readonly", Notifications: "readonly", Tabs: "readonly", TabsV2: "readonly", WebRTC: "readonly", WebRTCInterface: "readonly", WebRTCSettings: "readonly", ActorSheet: "readonly", AVConfig: "readonly", CombatTrackerConfig: "readonly", FolderConfig: "readonly", GridConfig: "readonly", ImagePopout: "readonly", ItemSheet: "readonly", JournalSheet: "readonly", MacroConfig: "readonly", MeasuredTemplateConfig: "readonly", PermissionControl: "readonly", PlayerConfig: "readonly", PlaylistConfig: "readonly", PlaylistSoundConfig: "readonly", RollTableConfig: "readonly", SceneConfig: "readonly", CameraPopoutAppWrapper: "readonly", CameraViews: "readonly", ChatBubbles: "readonly", HeadsUpDisplay: "readonly", SceneControls: "readonly", Hotbar: "readonly", BasePlaceableHUD: "readonly", MainMenu: "readonly", SceneNavigation: "readonly", Pause: "readonly", PlayerList: "readonly", DrawingConfig: "readonly", DrawingHUD: "readonly", AmbientLightConfig: "readonly", NoteConfig: "readonly", AmbientSoundConfig: "readonly", TileConfig: "readonly", TileHUD: "readonly", TokenConfig: "readonly", TokenHUD: "readonly", WallConfig: "readonly", EULA: "readonly", InstallPackage: "readonly", SetupConfigurationForm: "readonly", UpdateNotes: "readonly", UserManagement: "readonly", WorldConfig: "readonly", Sidebar: "readonly", SidebarTab: "readonly", SidebarDirectory: "readonly", Actors: "readonly", Actor: "readonly", ActorTokenHelpers: "readonly", CombatEncounters: "readonly", Combat: "readonly", Combatant: "readonly", Folders: "readonly", Folder: "readonly", Items: "readonly", Item: "readonly", ActiveEffect: "readonly", Journal: "readonly", JournalEntry: "readonly", Macros: "readonly", Macro: "readonly", Messages: "readonly", ChatMessage: "readonly", Playlists: "readonly", Playlist: "readonly", Scenes: "readonly", Scene: "readonly", RollTables: "readonly", RollTable: "readonly", Users: "readonly", User: "readonly", UserTargets: "readonly", CanvasAnimation: "readonly", ControlIcon: "readonly", TextureLoader: "readonly", MouseInteractionManager: "readonly", Ray: "readonly", NormalizedRectangle: "readonly", ResizeHandle: "readonly", SightLayerSource: "readonly", BackgroundLayer: "readonly", DrawingsLayer: "readonly", EffectsLayer: "readonly", LightingLayer: "readonly", NotesLayer: "readonly", SightLayer: "readonly", SoundsLayer: "readonly", TemplateLayer: "readonly", TilesLayer: "readonly", TokenLayer: "readonly", WallsLayer: "readonly", Drawing: "readonly", AmbientLight: "readonly", Note: "readonly", AmbientSound: "readonly", MeasuredTemplate: "readonly", MeasuredTemplateDocument: "readonly", Tile: "readonly", Token: "readonly", Wall: "readonly", SettingsConfig: "readonly", ControlsReference: "readonly", InvitationLinks: "readonly", ModuleManagement: "readonly", PermissionConfig: "readonly", ActorDirectory: "readonly", ChatLog: "readonly", CombatTracker: "readonly", CompendiumDirectory: "readonly", CompendiumCollection: "readonly", ItemDirectory: "readonly", JournalDirectory: "readonly", MacroDirectory: "readonly", PlaylistDirectory: "readonly", SceneDirectory: "readonly", Settings: "readonly", FrameViewer: "readonly", RollTableDirectory: "readonly", Cursor: "readonly", DoorControl: "readonly", ControlsLayer: "readonly", Ruler: "readonly", SpecialEffect: "readonly", AutumnLeavesWeatherEffect: "readonly", RainWeatherEffect: "readonly", SnowWeatherEffect: "readonly", BaseGrid: "readonly", HexagonalGrid: "readonly", GridHighlight: "readonly", GridLayer: "readonly", SquareGrid: "readonly", EasyRTCClient: "readonly", parent: "readonly", opener: "readonly", top: "readonly", length: "readonly", frames: "readonly", closed: "readonly", location: "readonly", self: "readonly", window: "readonly", document: "readonly", name: "readonly", customElements: "readonly", history: "readonly", locationbar: "readonly", menubar: "readonly", personalbar: "readonly", scrollbars: "readonly", statusbar: "readonly", toolbar: "readonly", status: "readonly", frameElement: "readonly", navigator: "readonly", origin: "readonly", external: "readonly", screen: "readonly", innerWidth: "readonly", innerHeight: "readonly", scrollX: "readonly", pageXOffset: "readonly", scrollY: "readonly", pageYOffset: "readonly", visualViewport: "readonly", screenX: "readonly", screenY: "readonly", outerWidth: "readonly", outerHeight: "readonly", devicePixelRatio: "readonly", clientInformation: "readonly", screenLeft: "readonly", screenTop: "readonly", defaultStatus: "readonly", defaultstatus: "readonly", styleMedia: "readonly", onsearch: "readonly", isSecureContext: "readonly", onabort: "readonly", onblur: "readonly", oncancel: "readonly", oncanplay: "readonly", oncanplaythrough: "readonly", onchange: "readonly", onclick: "readonly", onclose: "readonly", oncontextmenu: "readonly", oncuechange: "readonly", ondblclick: "readonly", ondrag: "readonly", ondragend: "readonly", ondragenter: "readonly", ondragleave: "readonly", ondragover: "readonly", ondragstart: "readonly", ondrop: "readonly", ondurationchange: "readonly", onemptied: "readonly", onended: "readonly", onerror: "readonly", onfocus: "readonly", onformdata: "readonly", oninput: "readonly", oninvalid: "readonly", onkeydown: "readonly", onkeypress: "readonly", onkeyup: "readonly", onload: "readonly", onloadeddata: "readonly", onloadedmetadata: "readonly", onloadstart: "readonly", onmousedown: "readonly", onmouseenter: "readonly", onmouseleave: "readonly", onmousemove: "readonly", onmouseout: "readonly", onmouseover: "readonly", onmouseup: "readonly", onmousewheel: "readonly", onpause: "readonly", onplay: "readonly", onplaying: "readonly", onprogress: "readonly", onratechange: "readonly", onreset: "readonly", onresize: "readonly", onscroll: "readonly", onseeked: "readonly", onseeking: "readonly", onselect: "readonly", onstalled: "readonly", onsubmit: "readonly", onsuspend: "readonly", ontimeupdate: "readonly", ontoggle: "readonly", onvolumechange: "readonly", onwaiting: "readonly", onwebkitanimationend: "readonly", onwebkitanimationiteration: "readonly", onwebkitanimationstart: "readonly", onwebkittransitionend: "readonly", onwheel: "readonly", onauxclick: "readonly", ongotpointercapture: "readonly", onlostpointercapture: "readonly", onpointerdown: "readonly", onpointermove: "readonly", onpointerup: "readonly", onpointercancel: "readonly", onpointerover: "readonly", onpointerout: "readonly", onpointerenter: "readonly", onpointerleave: "readonly", onselectstart: "readonly", onselectionchange: "readonly", onanimationend: "readonly", onanimationiteration: "readonly", onanimationstart: "readonly", ontransitionend: "readonly", onafterprint: "readonly", onbeforeprint: "readonly", onbeforeunload: "readonly", onhashchange: "readonly", onlanguagechange: "readonly", onmessage: "readonly", onmessageerror: "readonly", onoffline: "readonly", ononline: "readonly", onpagehide: "readonly", onpageshow: "readonly", onpopstate: "readonly", onrejectionhandled: "readonly", onstorage: "readonly", onunhandledrejection: "readonly", onunload: "readonly", performance: "readonly", stop: "readonly", open: "readonly", alert: "readonly", confirm: "readonly", prompt: "readonly", print: "readonly", queueMicrotask: "readonly", requestAnimationFrame: "readonly", cancelAnimationFrame: "readonly", captureEvents: "readonly", releaseEvents: "readonly", requestIdleCallback: "readonly", cancelIdleCallback: "readonly", getComputedStyle: "readonly", matchMedia: "readonly", moveTo: "readonly", moveBy: "readonly", resizeTo: "readonly", resizeBy: "readonly", scroll: "readonly", scrollTo: "readonly", scrollBy: "readonly", getSelection: "readonly", find: "readonly", webkitRequestAnimationFrame: "readonly", webkitCancelAnimationFrame: "readonly", fetch: "readonly", btoa: "readonly", atob: "readonly", setTimeout: "readonly", clearTimeout: "readonly", setInterval: "readonly", clearInterval: "readonly", createImageBitmap: "readonly", close: "readonly", focus: "readonly", blur: "readonly", postMessage: "readonly", onappinstalled: "readonly", onbeforeinstallprompt: "readonly", crypto: "readonly", indexedDB: "readonly", webkitStorageInfo: "readonly", sessionStorage: "readonly", localStorage: "readonly", chrome: "readonly", applicationCache: "readonly", onpointerrawupdate: "readonly", trustedTypes: "readonly", speechSynthesis: "readonly", webkitRequestFileSystem: "readonly", webkitResolveLocalFileSystemURL: "readonly", openDatabase: "readonly", caches: "readonly", ondevicemotion: "readonly", ondeviceorientation: "readonly", ondeviceorientationabsolute: "readonly", Handlebars: "readonly", HandlebarsIntl: "readonly", HowlerGlobal: "readonly", Howler: "readonly", Howl: "readonly", Sound: "readonly", WebFont: "readonly", PIXI: "readonly", io: "readonly", tinymce: "readonly", tinyMCE: "readonly", easyrtc_lang: "readonly", adapter: "readonly", easyrtc: "readonly", duplicate: "readonly", deepClone: "readonly", getType: "readonly", invertObject: "readonly", filterObject: "readonly", flattenObject: "readonly", expandObject: "readonly", mergeObject: "readonly", diffObject: "readonly", hasProperty: "readonly", getProperty: "readonly", setProperty: "readonly", encodeURL: "readonly", rgbToHsv: "readonly", hsvToRgb: "readonly", rgbToHex: "readonly", hexToRGB: "readonly", hexToRGBAString: "readonly", colorStringToHex: "readonly", isNewerVersion: "readonly", randomID: "readonly", loadFont: "readonly", saveDataToFile: "readonly", readTextFromFile: "readonly", fromUuid: "readonly", fromUuidSync: "readonly", _handleMouseWheelInputChange: "readonly", getTemplate: "readonly", loadTemplates: "readonly", renderTemplate: "readonly", srcExists: "readonly", getTexture: "readonly", loadTexture: "readonly", CONST: "readonly", toRadians: "readonly", normalizeRadians: "readonly", validateForm: "readonly", FormDataExtended: "readonly", timeSince: "readonly", _templateCache: "readonly", CONFIG: "readonly", socket: "readonly", ui: "readonly", canvas: "readonly", keyboard: "readonly", JSHINT: "readonly", game: "readonly", vtt: "readonly", DOCUMENT_PERMISSION_LEVELS: "readonly", DEFAULT_TOKEN: "readonly", DiceTerm: "readonly", GRID_TYPES: "readonly", dragRuler: "readonly", foundry: "readonly", TokenDocument: "readonly", DocumentSheet: "readonly", StringTerm: "readonly", ParentheticalTerm: "readonly", MathTerm: "readonly", OperatorTerm: "readonly", NumericTerm: "readonly", RollTerm: "readonly", getDocumentClass: "readonly", KeybindingsConfig: "readonly", quench: "readonly", JQuery: "readonly", VisionMode: "readonly", LightSource: "readonly", VisionSource: "readonly", Color: "readonly", JournalEntryPage: "readonly", pf1: "readonly", DetectionMode: "readonly", DetectionModeInvisibility: "readonly", DetectionModeTremor: "readonly", GlowOverlayFilter: "readonly", OutlineOverlayFilter: "readonly", SearchFilter: "readonly", TooltipManager: "readonly", showdown: "readonly", }, };