async function run() {
    try {
        /**
         * Create instance of settings, which will cache
         * first request of settings which will be re-used
         * for subsequent requests. Pass this settings
         * instance pre-cached to each of the views.
         */
        let settingsModel = new Settings();

        // get user settings
        var logins = [],
            settings = await settingsModel.get(),
            root = document.getElementsByTagName("html")[0];
        root.classList.remove("colors-dark");
        root.classList.add(`colors-${settings.theme}`);

        /**
         * Only set width: min-content for the attached popup,
         * and allow content to fill detached window
         */
        if (!Object.prototype.hasOwnProperty.call(settings, "authRequested")) {
            root.classList.add("attached");
            document.getElementsByTagName("body")[0].classList.add("attached");
        }

        // set theme
        const theme =
            settings.theme === "auto"
                ? window.matchMedia("(prefers-color-scheme: dark)").matches
                    ? "dark"
                    : "light"
                : settings.theme;
        root.classList.remove("colors-light", "colors-dark");
        root.classList.add(`colors-${theme}`);

        // get list of logins
        logins = await Login.prototype.getAll(settings);
        layout.setSessionSettings(settings);
        // save list of logins to validate when adding
        // a new one will not overwrite any existing ones
        layout.setStoreLogins(logins.raw);

        const LoginView = new AddEditInterface(settingsModel);
        m.route(document.body, "/list", {
            "/list": page(new Interface(settings, logins.processed)),
            "/details/:storeid/:login": page(new DetailsInterface(settingsModel)),
            "/edit/:storeid/:login": page(LoginView),
            "/add": page(LoginView),
        });
    } catch (e) {
        helpers.handleError(e);
    }
}
Run the main popup logic

@since 3.0.0

@return void