Skip to content

RevenueCat/purchases-js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

😻 In-App Subscriptions Made Easy 😻

🕸️ For the web 🕸️

RevenueCat is a powerful, reliable, and free to use in-app purchase server with cross-platform support. This repository includes all you need to manage your subscriptions on your website or web app using RevenueCat.

Sign up to get started for free.

Prerequisites

Login @ app.revenuecat.com

  • Connect your Stripe account if you haven't already (More payment gateways are coming soon)
  • Create a Project (if you haven't already)
  • Add a new RCBilling app
  • Get the sandbox API key or production API key (depending on the environment)
  • Create some products for the RCBilling App
  • Create an offering and add packages with RCBilling products
  • Create the entitlements you need in your app and link them to the RCBilling products

Installation

  • Add the library to your project's dependencies
    • npm
      npm install --save @revenuecat/purchases-js
      
    • yarn
      yarn add --save @revenuecat/purchases-js
      

Usage

See the RevenueCat docs and the SDK Reference.

Development

Install the library in a local project

  • Clone the repository
  • Install dependencies
  • Build the library
npm install
npm run build:dev

To avoid publishing the package you can use Yarn's link feature:

  1. In the purchases-js directory, register the package:
yarn link
  1. In your testing project, link to the registered package:
yarn link "@revenuecat/purchases-js"

Note: Any changes you make to the library will be automatically reflected in your testing project after running npm run build:dev or npm run build.

Running Storybook

npm run storybook

Environment Setup for Needs Payment Info Stories

Note: This setup is only required if you need to test Storybook stories involving the state-needs-payment-info component.

To run these specific stories, you'll need to set up some environment variables. There are two options:

Option 1: Internal Teams

Internal team members can find the required environment variables in 1Password.

Option 2: Setup Manually

  1. Create a test account in Stripe
  2. Go to settings, API keys, and create a restricted key with the following permissions:
    • Setup intent (read/write)
    • Payment methods (read/write)
  3. Create a .env.development.local file and set the following variables:
VITE_STORYBOOK_RESTRICTED_SECRET="sk_test_1234567890"
VITE_STORYBOOK_PUBLISHABLE_API_KEY="pk_test_1234567890"
VITE_STORYBOOK_ACCOUNT_ID="acct_1234567890"

Running tests

npm run test

Running linters

npm run test:typeCheck
npm run svelte-check
npm run prettier
npm run lint

Running E2E tests

Please check the Demo app readme here

Update API specs

npm run extract-api

This will update the files in api-report with the latest public API. If it has uncommited changes, CI tests will fail. Run this command and commit the changes if they are expected.

Publishing a new version

New versions are automated weekly, but you can also trigger a new release through CircleCI or locally following these steps:

  • Run bundle exec fastlane bump and follow the instructions
  • A PR should be created with the changes and a hold job in CircleCI.
  • Approve the hold job once tests pass. This will create a tag and continue the release in CircleCI
  • Merge the PR once it's been released