### Required

[\[1\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/main.ts#L142-L142)[\[2\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/main.ts#L151-L151)[\[3\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/main.ts#L162-L162)[\[4\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/main.ts#L170-L170)[\[5\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/main.ts#L221-L221)[\[6\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/main.ts#L330-L330)[\[7\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/main.ts#L364-L364)[\[8\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/main.ts#L374-L374)[\[9\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/settings.ts#L42-L42)[\[10\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/settings.ts#L50-L50)[\[11\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/settings.ts#L51-L51)[\[12\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/settings.ts#L68-L68)[\[13\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/settings.ts#L74-L74)[\[14\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/settings.ts#L121-L121)[\[15\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/settings.ts#L176-L176)[\[16\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/settings.ts#L182-L182)[\[17\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/settings.ts#L195-L195)[\[18\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/settings.ts#L197-L197)[\[19\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/settings.ts#L235-L235)[\[20\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/settings.ts#L236-L236)[\[21\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/settings.ts#L237-L237)[\[22\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/settings.ts#L238-L238)[\[23\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/settings.ts#L282-L282)[\[24\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/settings.ts#L288-L288)[\[25\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/settings.ts#L344-L344)[\[26\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/settings.ts#L360-L360)[\[27\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/settings.ts#L398-L398)[\[28\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/settings.ts#L444-L444)[\[29\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/settings.ts#L463-L463)[\[30\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/settings.ts#L466-L466)[\[31\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/settings.ts#L477-L477)[\[32\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/settings.ts#L499-L499)[\[33\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/ui/conflict-resolution-modal.ts#L175-L175)[\[34\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/ui/conflict-resolution-modal.ts#L180-L180)[\[35\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/ui/conflict-resolution-modal.ts#L186-L186)[\[36\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/ui/conflict-resolution-modal.ts#L201-L201)[\[37\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/ui/conflict-resolution-modal.ts#L208-L208)[\[38\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/ui/conflict-resolution-modal.ts#L292-L292)[\[39\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/ui/conflict-resolution-modal.ts#L334-L334)[\[40\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/ui/conflict-resolution-modal.ts#L337-L337)[\[41\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/ui/conflict-resolution-modal.ts#L341-L341)[\[42\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/ui/conflict-resolution-modal.ts#L346-L346)[\[43\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/ui/conflict-resolution-modal.ts#L350-L350)[\[44\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/ui/conflict-resolution-modal.ts#L370-L370)[\[45\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/ui/document-selection-modal.ts#L157-L157)[\[46\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/ui/document-selection-modal.ts#L1244-L1244)[\[47\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/ui/document-selection-modal.ts#L1317-L1317)
Use sentence case for UI text.

[\[1\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/main.ts#L153-L153)[\[2\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/main.ts#L164-L164)[\[3\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/ui/document-selection-modal.ts#L801-L801)
Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler or be explicitly marked as ignored with the `void` operator.

[\[1\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/main.ts#L329-L329)[\[2\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/services/duplicate-detector.ts#L458-L458)[\[3\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/types.ts#L218-L218)[\[4\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/types.ts#L228-L228)
Unexpected console statement. Only these console methods are allowed: warn, error, debug.

[\[1\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/api.ts#L68-L68)
Unexpected undescribed directive comment. Include descriptions to explain why the comment is necessary.

[\[1\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/api.ts#L68)
Unused eslint-disable directive (no problems were reported from 'no-mixed-spaces-and-tabs').

[\[1\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/api.ts#L220-L220)[\[2\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/api.ts#L221-L221)[\[3\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/auth.ts#L208-L208)[\[4\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/auth.ts#L242-L242)[\[5\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/auth.ts#L243-L243)
A `require()` style import is forbidden.

[\[1\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/api.ts#L374-L374)
Unexpected use of 'fetch'. Use the built-in `requestUrl` function instead of `fetch` for network requests in Obsidian.

[\[1\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/auth.ts#L204-L204)
Async method 'readConfigFile' has no 'await' expression.

[\[1\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/auth.ts#L390-L390)
Async method 'refreshToken' has no 'await' expression.

[\[1\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/converter.ts#L566-L566)[\[2\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/converter.ts#L569-L569)[\[3\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/ui/conflict-resolution-modal.ts#L298-L300)[\[4\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/ui/conflict-resolution-modal.ts#L373-L377)[\[5\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/ui/document-selection-modal.ts#L384-L387)[\[6\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/ui/document-selection-modal.ts#L1796-L1796)[\[7\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/ui/document-selection-modal.ts#L1798-L1798)
This assertion is unnecessary since it does not change the type of the expression.

[\[1\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/converter.ts#L652-L652)[\[2\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/services/duplicate-detector.ts#L488-L488)
Invalid type "unknown" of template literal expression.

[\[1\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/converter.ts#L705-L705)[\[2\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/services/import-manager.ts#L611-L611)
Invalid type "never" of template literal expression.

[\[1\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/converter.ts#L1152-L1152)
'href' will use Object's default stringification format ('[object Object]') when stringified.

[\[1\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/converter.ts#L1152-L1152)
Invalid type "{}" of template literal expression.

[\[1\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/ui/conflict-resolution-modal.ts#L65-L83)[\[2\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/ui/document-selection-modal.ts#L115-L119)
Promise-returning method provided where a void return was expected by extended/implemented type 'Modal'.

[\[1\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/ui/document-selection-modal.ts#L882-L885)
Promise returned in function argument where a void return was expected.

[\[1\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/ui/document-selection-modal.ts#L1073-L1073)
`execCommand` is deprecated. [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/execCommand)



---

### Optional

[\[1\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/services/import-manager.ts#L797-L797)[\[2\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/ui/document-selection-modal.ts#L1174-L1174)
'error' is defined but never used.

[\[1\]](https://github.com/amittell/obsidian-granola/blob/5a4c655502d4e601feafe9a06414f59072a01ba1/src/services/import-manager.ts#L807-L807)
'e' is defined but never used.

