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 🙏

© 2025 – Pkg Stats / Ryan Hefner

@ksf-media/user

v0.4.1

Published

User component for KSF Media apps

Downloads

22

Readme

ksf-media/user

User related functions for KSF Media apps. Has two important features:

  • User module (PS only), which has functions for e.g. creating and editing a user
  • Login react component (PS/JS), which is a ready-made component for logging into KSF Media apps

For javascript use

Install it from npm yarn add @ksf-media/user and just import it into your project:

import ReactDOM from 'react-dom';
import { Login } from '@ksf-media/user';
var renderLogin = function() {
  ReactDOM.render(
    <Login onUserFetchSuccess={(user) => console.log("Success!")} />
    , document.getElementById('login'));
};

Props

The props/callbacks for Login are

  • onMerge
    • () => { console.log("request to merge accounts happened") }
  • onMergeCancelled
    • () => { console.log("merge was canceled") }
  • onRegister
    • () => { console.log("registration form is rendered") }
  • onRegisterCancelled
    • () => { console.log("registration is canceled") }
  • onUserFetchFail
    • (error) => { console.log("fetching user failed!", error) }
  • onUserFetchSuccess
    • (user) => { console.log("user fetched successfully!", user) }
  • onLoading
    • () => { showLoadingSpinner = true }
  • onLoadingEnd
    • () => { showLoadingSpinner = false }
  • disableSocialLogins
    • array of social login providers, where provider belongs to {"Google", "Facebook"}
    • disableSocialLogins={["Facebook"]}

Getting it up and running

The Login component offers multiple ways off logging users in:

  • Persona (KSF Media's own login service)
  • Google
  • Facebook
  • SSO

Depending on the production environment we're in (dev, prod), the configuration settings for these features might differ.

Login expects the following configuration variables to be present:

  • JANRAIN_LOGIN_CLIENT_ID
  • JANRAIN_SSO_SERVER
  • JANRAIN_FLOW_VERSION
  • JANRAIN_XD_RECEIVER_PATH
  • PERSONA_URL
  • GOOGLE_CLIENT_ID
  • FACEBOOK_APP_ID

dotenv is used for setting the variables in place.

For getting the SSO working, an xd_receiver file should be found under the same domain where the app is running. The JANRAIN_XD_RECEIVER_PATH variable is the path to this file.

Logging out

It's easy. The logout function takes two callbacks:

  1. function to call when logout is successful
  2. function to call when logout fails
import { logout } from '@ksf-media/user';

function onLogoutSuccess() {
  console.log("Logged out successfully!");
}
function onLogoutFail(errorString) {
  console.log("Logging out failed: ", errorString);
}
logout(onLogoutSuccess, onLogoutFail);