@idsync/locust

0.0.3 • Public • Published

Locust

Installation

Run npm install @idsync/locust --save-dev to install as a dev dependency in a Node JS project.

When requiring this library directly via @idsync/locust, the minified version provided.

Usage

Locust is a UMD library, so it can be used in a variety of places (such as in the browser, CommonJS2 and AMD systems). You can either import it:

const Locust = require("@idsync/locust");

Or embed it in a webpage and access it via window.Locust.

Locust exports a couple of useful methods, but the one which provides the most simple approach to logging in is getLoginTarget:

const { getLoginTarget } = Locust;

getLoginTarget().login("myUsername", "myPassword");

The example above enters the username and password in the best form found on the page and then proceeds to submit that form (logging the user in).

To find all forms on a page, use the getLoginTargets method instead, which returns an array of login targets. You can then sort through these to find all the different login forms that may exist.

In the case that you don't want to automatically log in, but still enter the details, you can use the following example:

getLoginTarget().enterDetails("myUsername", "myPassword");

Note that getLoginTarget may return null if no form is found, so you should check for this eventuality.

You can also read the API documentation if you're into that kind of thing.

Events

Locust login targets will emit events when certain things happen. To listen for changes to the values of usernames and passwords on forms simply attach event listeners:

const target = getLoginTarget();
target.on("valueChanged", info => {
    if (info.type === "username") {
        console.log("New username:", info.value);
    }
});
// `type` can be "username" or "password"

Login targets subclass EventEmitter, so you can use all other methods provided by their implementation.

You can also listen to form submission:

const target = getLoginTarget();
target.once("formSubmitted", ({ source }) => {
    // `source` will either be "submitButton" or "form"
});

Development

You can run npm run dev to generate and watch-files to develop Locust. To create a script that outputs dev information, run npm run dev:inject and inject the provided script snippet into pages to test Locust. It won't work all of the time if the idsync browser extension is running, nor will it work in consecutive executions.

To run on HTTPS pages consider using a Chrome extension like Disable Content Security Policy, which will allow injection of local scripts.

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.0.3
    2
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 0.0.3
    2
  • 0.0.2
    1
  • 0.0.1
    1

Package Sidebar

Install

npm i @idsync/locust

Weekly Downloads

0

Version

0.0.3

License

MIT

Unpacked Size

75 kB

Total Files

6

Last publish

Collaborators

  • idsyncsa
  • idsync-npm