# Per-dependency checks
<table class="ck-table-resized">
    <colgroup>
        <col>
        <col>
        <col>
        <col>
        <col>
    </colgroup>
    <thead>
        <tr>
            <th>Dependency</th>
            <th>Name in <code>library_loader</code></th>
            <th>Things to check for a basic sanity check</th>
            <th>&nbsp;</th>
            <th>Protected by unit tests</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td><code>better-sqlite3</code></td>
            <td>&nbsp;</td>
            <td>See&nbsp;<a class="reference-link" href="Per-dependency%20checks/bettersqlite%20binaries.md">bettersqlite binaries</a>.</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td><code>jsdom</code></td>
            <td>&nbsp;</td>
            <td><ul><li>Note map</li><li>Clipper</li><li>Note similarity</li></ul></td>
            <td>Protected by typings, should catch any potential changes in API.</td>
            <td>Yes</td>
        </tr>
        <tr>
            <td><code>async-mutex</code></td>
            <td>&nbsp;</td>
            <td><ul><li>Sync</li></ul></td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td><code>axios</code></td>
            <td>&nbsp;</td>
            <td><ul><li>Can't be directly tested, as it's exposed only via the backend script API.</li></ul></td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td><code>sax</code></td>
            <td>&nbsp;</td>
            <td><ul><li>EverNote imports</li></ul></td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td><ul><li><code>ws</code></li><li><code>debounce</code></li></ul></td>
            <td>&nbsp;</td>
            <td><ul><li>Check any action is reported from server to client (e.g. delete a note).</li></ul></td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td><code>ejs</code></td>
            <td>&nbsp;</td>
            <td><ul><li>Onboarding / first setup</li></ul></td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td><code>dayjs</code></td>
            <td>&nbsp;</td>
            <td><ul><li>Day notes</li></ul></td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td><code>semver</code></td>
            <td>&nbsp;</td>
            <td><ul><li>Application should start.</li></ul></td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td><code>https-proxy-agent</code></td>
            <td>&nbsp;</td>
            <td>???</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td><code>sax</code></td>
            <td>&nbsp;</td>
            <td><ul><li>EverNote import</li></ul></td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td><code>ini</code></td>
            <td>&nbsp;</td>
            <td><ul><li>Affects config, generally if the application starts then it should be OK.</li></ul></td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td><code>jsplumb</code></td>
            <td><code>RELATION_MAP</code></td>
            <td><ul><li>Relation map note type</li></ul></td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td><code>jquery.mark.es6</code></td>
            <td><code>MARKJS</code></td>
            <td><ul><li>In search, when highlighting the text that matched.</li><li>In search in HTML, which might not actually be used since it seems to have been replaced by CKEditor's own find &amp; replace dialog.</li></ul></td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td><code>knockout.js</code></td>
            <td>&nbsp;</td>
            <td><ul><li>Used in rendering the login and main layout of the application.</li></ul></td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td><code>normalize.min.css</code></td>
            <td>&nbsp;</td>
            <td><ul><li>Used in shared notes.</li></ul></td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td><code>wheel-zoom.min.js</code></td>
            <td><code>WHEEL_ZOOM</code></td>
            <td><ul><li>When opening a image that is in attachment.</li><li>When opening a stand-alone image note.</li><li>When zooming in a mermaid chart.</li></ul></td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td><code>fancytree</code></td>
            <td>&nbsp;</td>
            <td><ul><li>The note tree should be fully functional.</li></ul></td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td><code>bootstrap</code></td>
            <td>&nbsp;</td>
            <td><ul><li>Check mostly the on-boarding pages, when there is no database.</li></ul></td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td><code>electron-debug</code></td>
            <td>&nbsp;</td>
            <td><ul><li>Run electron using <code>npm run start-electron</code> and check that the debug hotkeys are still working (Ctrl+Shift+I on Windows/Linux, Cmd+Alt+I for dev tools, Cmd/Ctrl+R for reload).</li></ul></td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td><code>electron-dl</code></td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td><code>eslint</code></td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td><code>marked</code></td>
            <td>&nbsp;</td>
            <td><ul><li>Importing a markdown note.</li></ul></td>
            <td>&nbsp;</td>
            <td>Yes</td>
        </tr>
        <tr>
            <td><code>force-graph</code></td>
            <td>&nbsp;</td>
            <td><ul><li>Note map</li></ul></td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
    </tbody>
</table>