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 🙏

© 2026 – Pkg Stats / Ryan Hefner

telescope-sdk

v1.0.0

Published

This project is a work in progress.

Downloads

30

Readme

Telescope Server Development Kit

This project is a work in progress.

How to use

You need to be a member of the BBC NPM organisation. To get access visit https://github.com/bbc/npm

Packages

TLS

A function to return TLS config using client cosmos certs

npm i @bbc/telescope-sdk-tls
import tls from '@bbc/telescope-sdk-tls';
import request from 'request';
request({
  method: 'GET',
  uri: '',
  agentOptions: tls(),
}, (err, res, body) => {
  // handle callback
});

Content Store

A class to retrieve data from the Content Store

npm i @bbc/telescope-sdk-content-store
import ContentStore from '@bbc/telescope-content-store';
const cs = new ContentStore({
  key: 'APIKEY',
});
await cs.getAssetByCurie('curie');
await cs.getAssetByCPSID('id');
await cs.getAssetByUri('uri');

Creative Works

A class to retrieve data from Creative Works

npm i @bbc/telescope-sdk-creative-works
import CreativeWorks from '@bbc/telescope-creative-works';
const cs = new CreativeWorks({
  key: 'APIKEY',
});
await cs.getTagByGuid('guid');
CreativeWorks.getTagByGuid('guid', { key: 'APIKEY' });

CPS

A class to retrieve the author of a piece of work

npm i @bbc/telescope-sdk-cps
import CPS from '@bbc/telescope-sdk-cps';
const cps = new CPS();
await cps.getByAssetId('assetid');

Redis

A helper class for our Redis implemnation

npm i @bbc/telescope-sdk-redis
import Redis from '@bbc/telescope-sdk-redis';
const redis =new Redis({
  host: '0.0.0.0',
})
await redis.get('item');

Config

A helper function for gathering enviroment variables

npm i @bbc/telescope-sdk-config
import config from '@bbc/telescope-config';
const config = config();

Things

A class to retrieve data on a tag

npm i @bbc/telescope-sdk-things
import Thing from '@bbc/telescope-sdk-things';
const thing = new Thing({
  key: 'API-KEY',
});
const res = thing.getTagByGuid('guid');

Pipeline

A class to handle a asyncronious tasks

npm i @bbc/telescope-sdk-pipeline
import Pipeline from '@bbc/telescope-sdk-pipeline';
const pipeline = new Pipeline({}, 'context');
pipeline(
  func1,
  func2,
  func3,
  func4,
);

Nitro

A class to handle retreiving video metadata. Accepts an eight character Programme ID.

npm i @bbc/telescope-sdk-nitro
import Nitro from '@bbc/telescope-sdk-nitro';
const nitro = new Nitro({
  key: 'API-KEY',
});
const res = nitro.pid('pid');

SQS Parse

A helper function to parse SQS messages exposing the body of the payload

npm i @bbc/telescope-sdk-sqs-parse
const parsedMessage = sqsParse(sqsRawMessage);

Develop

Telescope-SDK uses Lerna, Jest and Typescript all of which need to be installed locally

Clone and install dependancies

To modify or create any services clone the repo

git clone https://github.com/bbc/telescope-sdk.git
npm i

Create a new package

If you need to create a new package, use Lerna to adminster the change from the root directory

lerna create {packagename}

Publish packages

Once you have finished creating or editing packages, create a pull request and merge into master. Your code should not not have any type any implicity and include 100% code coverages for tests

Once the PR has been merged, this will kick off a lerna publish event which will reversion the packages and publish to NPM

Package laylout

Each package within the SDK could have a JEST config file, TSLint rules, TSconfig and a babel config.

root
-src (where your typescript lives)
-lib (where your typescript compiles to JS lives + exported typedefinitions)
-test (test director)
-package.json
-tsconfig.json
-jest.json
-.babelrc

Only commit the lib to your NPM package.