npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@easybread/core

v0.0.5

Published

Easily browse, read, edit, add, and delete (BREAD) data from third-party providers

Downloads

6

Readme

easybread

Total alerts Language grade: JavaScript

https://easybread.io/

https://github.com/easybread

https://www.npmjs.com/org/easybread

Easily browse, read, edit, add, and delete (BREAD) data from third-party providers in a standard format.

Build an expandable, open-source NPM module for syncing data between third party HR / Identity providers with an easy API to include new third party providers as separate “plugins”. Each module should allow access to the raw data from the third party, as well as a standardized format for reading information that is consistent between third party providers.

An example package that does this type of plugin integration is https://github.com/editor-js. EditorJS allows you to pull in the primary “editor” as its own module, and then you can include “plugins” to extend the functionality. This project should model that approach.

The project and all modules should use TypeScript as the primary language. The code should be validated using husky pre-commit (to prevent committing bad code) and pre-push (to prevent pushing bad code) hooks. Utilize TSLint for lint checking.

Editor config should be used along with .vscode/settings.json to enforce two space indent, trailing whitespace, insert a final newline, format on saving, enable spelling, etc.

All code will be published via forking and opening a pull request to repositories at https://github.com/easybread

All pull requests and commits should go through automated testing and code quality analysis using https://lgtm.com/ and https://circleci.com/ or https://travis-ci.org/ to run tests.

Standardized CRUD Format

Each third party will require a plugin to talk in their own format. The goal is to transform these different requests/responses into a standardized format to make pulling and updating information to and from these services a breeze. Should use https://schema.org/ for our schema when building out the "Standardized" set of information we pull. Basically any response we get from third-party providers, we should map to schema.org objects.

There should be a list of standard API calls that you can call to communicate with each third-party provider to put and pull information in a consistent format. Any extra information or APIs you would like to include as part of the standard module should not interfere with the standard API calls.

Standardized Auth Flow

Each plugin may require the user to authenticate to communicate with the service. Authentication should be standardized between the different third party providers. There may be “background” or “server-side” processes that happen and “foreground” or “in-browser” processes that occur.

An example foreground process would be when a user inside a web application clicks on “Import from Google” and they are presented with a popup dialog to authenticate with their Google account. Once they authenticate, if possible, all communication with the API should be possible in both the browser and the server. If not, the auth tokens should be passed to a standardized endpoint that forwards the tokens to whatever plugin requested the authentication. The plugins should not implement their own REST API for fetching the tokens, however, the plugins may implement their own internal server APIs to communicate with the third-party providers. This should be done in a standardized manner using APIs from the main package for things like GET and POST requests. These requests should be debuggable and loggable from the primary package.

Database / Storage

Easy bread should be database agnostic. The user should have the ability to choose a store for tokens/keys. We should build a standard storage using MongoDB by default

Other Ideas

Everything should be testable and put into a validatable format. For example, jsonschema or simple-schema should be used to validate the objects passed by users and when formatted to the standard format from the third-party API.

Plugins

Current “plugins” on the roadmap to build: plugins

ADP

Import from ADP should allow easy access to sync worker information from ADP in a standard format. https://developers.adp.com/articles/api/workers-v2-api https://developers.adp.com/articles/api/worker-demographics-v2-api

Google

Import from Google should allow easy access to sync G Suite users, contacts, etc., from Google into a standard format. Google stores contacts and users in different places. This plugin should allow you to pull contacts from your own contact list, as well as an employee directory if using G Suite. https://developers.google.com/people Email contacts from Gmail and other Google services may require separate plugins: easybread-gsuite, easybread-gmail, etc.

Microsoft

Microsoft has several different sources of information. We need to determine what these are and how we can import from them. Examples would include Active Directory, Azure Activity Directory, Outlook Online, etc. We may need to split these into separate plugins, e.g. easybread/outlook, easybread/azuread, etc.

BambooHR

Bamboo has an “employee” directory. We need to determine what different API endpoints are available to pull employee information. https://documentation.bamboohr.com/docs/getting-started