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

birdv2

v0.0.7

Published

birdv2 is a proxy server with cas auth built in, originate from `bird`

Downloads

14

Readme

This is bird with auth

usage

global

  • npm install -g birdv2
  • touch birdfile.js
  • vi birdfile.js
// sample birdfile.js
module.exports = {
  name: 'ar',
  bird_port: 7676,
  staticFileRootDirPath: '../webapp',
  server: 'http://xx.xx.com:8901/ar/',
  uuap_server: 'http://xx.xx.com:8100',
  username: 'jay',
  password_suffix: ''
};
  • bird or bird -c ../yourPath/birdfile.js

local

  • npm install -D birdv2
  • touch birdfile.js
  • vi birdfile.js
// sample birdfile.js
var config = {
  name: 'ar',
  bird_port: 7676,
  staticFileRootDirPath: '../webapp',
  server: 'http://xx.xx.com:8901/ar/',
  uuap_server: 'http://xx.xx.com:8100',
  username: 'jay',
  password_suffix: ''
};
require('bird')(config)
  • node birdfile.js

as middleware with mock

请参考finfa

config

  • bird的配制可是一个object,也可以是一个array, eg:
  var config = {
    name: 'ar',
    bird_port: 7676,
    staticFileRootDirPath: '../webapp',
    server: 'http://xx.xx.com:8901/ar/',
    uuap_server: 'http://xx.xx.com:8100',
    username: 'jay',
    password_suffix: ''
  };

  `or`
  var config = [{
    name: 'ar',
    bird_port: 7676,
    staticFileRootDirPath: '../webapp',
    server: 'http://xx.xx.com:8901/ar/',
    uuap_server: 'http://xx.xx.com:8100',
    username: 'jay',
    password_suffix: ''
  }, {
    name: 'ar2',
    bird_port: 7777,
    staticFileRootDirPath: '../webapp',
    server: 'http://xx.xx.com:8902/ar/',
    uuap_server: 'http://xx.xx.com:82S00',
    username: 'jay',
    password_suffix: ''
  }]
  • 下面是详细的配制说明,*表示必须的配制, #表示正在开发或功能不稳定的配制, 其他是可选项
    // *服务名字,本配制以ar为例
    name: 'ar',
    // *服务端口
    bird_port: 3000,
    // *静态文件目录,可以为相对路径,如:../build
    staticFileRootDirPath: '/home/zp/work/ar/src/main/webapp/resources',
    // *测试机地址,是否带`ar`看环境的context
    server: 'http://xx-xx.epc:8901/ar/',
    // *该测试机对应的uuap地址
    uuap_server: 'http://uuap_test.com:8100',
    // *你想用谁登录
    username: 'who_you_want',
    // *密码后缀,没有就留空
    password_suffix: '',
    // 是否开启dev-tools(提供切换用户等功能)default:false
    dev_tool: {
      type: 'input', // #暂时只有这一个,后续加select
      top: 20,       // 工具上边距
      right: 20      //右边距
    },
    // feapps专用登录,hard code this one. default:false
    bprouting: 'bprouting/BpFlowRouting?appindex=true',
    // 是否使用静态的cookie,录bird出问题了你还可以把cookie粘到这里,像旧版一样default:false
    cookie: 'sessionid=XXXXXXXXXXX',
    // 转发路由,你可以将本地的请求转发到指定的路径
    router: {  
        '/ar': '/ar-web' // 将http://xx-xx.epc:8901/ar/XX/XX -> http://xx-xx.epc:8901/ar-web/XX/XX 
    },
    // 登录方式,默认是使用uuap来登录,加载auths/uuap.js default:'uuap'
    auth_standalone: 'uuap',
    // #当cookie效了重新cookie,当然,你可以重启bird来手动获取.default:true
    keep_alive: true,
    // #使用本地的数据,不转发. 当服务器当了,你可以造些假数据来本地测试
    use_local_data: {
      '/ar': '/your/data/path'
    }
    // #mock配置
    mock: {
      path: '../mock',  // 相对于staticFileRootDirPath的路径,用于存放mock文件的文件夹
      map: {
        '/test/test': 'test'  // key为请求路径,value为映射的js文件
      }
    }
    // #mock缓存功能配置, 需要在配置好mock才可用
    mock_cache: __dirname,  // 设置为 __dirname则爬取接口数据存放到mock文件夹中且更新birdfile.js中的mock.map

extendable

  • 如果你的项目不是用uuap登录的,那你需要配制auth_standalone选项, 然后在auths/目录下添加上对应的js文件,当然你可以联系我,告诉你项目的地址 及登录帐号, 让我帮你加

browser ci api

  • 打开浏览器的console,可以执行以下命令:
  • birdv2.use('uuap_name') 切换到其他用户登录

notice

  • 当获取的cookie失效时,如果response是重定向到其他url,bird会自动获取新cookie,并重定向回来,用户是感觉不到这个过程的。如果response是返回一个对象,使浏览器登出,跳转到 /logout,bird会根据request->header->referer又跳转回来,因为referer不包括锚点信息,对于angular用户会发现页面跳到默认页面;同理,手动点登出也会跳回来,只是换了个cookie

todo

  • track forward history??
  • forwarding local json data