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

@product-live/api-sdk

v3.1.4

Published

SDK for Product-Live public API

Readme

Product-live sdk

This sdk aims at simplifying access to the Product-Live public API.

Generation

The following section describe the necessary steps to generate and publish a new version of the sdk. All action are performed through the github web interface.

Generation

A new version of the sdk can be generated through the github action Generate sdk. This action will generate the necessary code on a new branch and open a PR for verification. A dry publication is performed to ensure basic npm compliance.

Generate sdk

Note that running the same action multiple times will result in as many branches and PR being opened, that should be closed manually.

OPTIONS:

  • "OpenApi specification location": url for the targeted API. The default value is the production API and should be used in most cases.
  • "Should perform a dry run": if checked, the changes will not be committed. This option may be used to test generation beforehand.

PR validation

The pull request opened should be reviewed, and merged once validated.

Release creation

The preparation of a new release is handled automatically by release-please. A PR is created and maintained whenever the main branch is updated.
Once ready to publish the new version, said PR should be merged. All necessary actions are then handled automatically.

Publication

Once a new release is created, it should then be published through the Publish sdk github action. Except in some edge cases, it should be executed on the 'main' branch.
This action will build and publish the sdk to npm repository.

Publish sdk

OPTIONS:

  • "dry run": if checked, performs a test publication without the actual upload. This may be used to test publication

Installing

Install the library with the following command: npm i @product-live/sdk

Usage

Instantiation

For its creation, the apiClient must be provided with an AuthenticationProvider and a RequestAdapter

import {ApiKeyAuthenticationProvider, ApiKeyLocation} from '@microsoft/kiota-abstractions';
import {FetchRequestAdapter} from '@microsoft/kiota-http-fetchlibrary';
import {createApiClient} from './index';

const authenticationProvider = new ApiKeyAuthenticationProvider(
    key,
    'X-Api-Key',
    ApiKeyLocation.Header
);
const requestAdapter = new FetchRequestAdapter(authenticationProvider);
requestAdapter.baseUrl = url;
const apiClient = createApiClient(requestAdapter);

The library provides a simplified entry point for the most usual case

import {setup} from './index';

const apiClient = setup(key, url);

It is currently recommended to use the latter method when the project is of "type": "module"

Call

Once instantiated, the client may be called on any API available. The methods use will always reflect the targeted url and the http verb. For instance, to obtain a list of audit logs, we need a GET request on url /v1/audit_logs. The corresponding call will be:

const auditLogsList = await apiClient.v1.audit_logs.get();

Additional parameters

Additional parameters may be provided depending on the targeted API

  • url parameters: a method byId(id: string) will be available in the functions chain
const item = await apiClient.v1.items.byId(itemId).get();
  • body: for API calls requiring it, a body will be expected as the call function first argument
const newVariable = await apiClient.v1.data_factory.variables.post({
    key: 'some-key',
    name: 'explicit-name',
    value: 'value'
});
  • headers and query parameters: all calling methods accept a RequestConfiguration as a last argument. This object is a json containing a headers and/or queryParameters object, with the necessary values inside. Note that the autocomplete is not available for the content of headers
const patitionsList = await apiClient.v1.partitions.get({
    queryParameters: { tableId: tableId },
    headers: { 'X-Context': contextAccountId }
});

Compatibility

The library provides both cjs and esm version.