@revenuecat/purchases-js
v1.42.1
Published
Web subscriptions made easy. Powered by RevenueCat
Readme
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 Web Billing app
- Get the sandbox API key or production API key (depending on the environment)
- Create some products for the Web Billing App
- Create an offering and add packages with Web Billing products
- Create the entitlements you need in your app and link them to the Web Billing products
Installation
- Add the library to your project's dependencies
- npm
npm install --save @revenuecat/purchases-js - yarn
yarn add --save @revenuecat/purchases-js
- npm
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
pnpm install
pnpm run build:devTo avoid publishing the package you can use pnpm's link feature:
- In the purchases-js directory, register the package:
pnpm link- In your testing project, link to the registered package:
pnpm link "@revenuecat/purchases-js"Note: Any changes you make to the library will be automatically reflected in your testing project after running
pnpm run build:devorpnpm run build.
Using a local @revenuecat/purchases-ui-js
When you need to iterate on both purchases-js and purchases-ui-js together, you can point this repo at a sibling checkout using a pnpm-workspace.yaml override (instead of manually editing package.json).
- Place the two repos side by side, for example:
Developer/
purchases-js/
purchases-ui-js/- In
purchases-js, create or editpnpm-workspace.yamland add:
overrides:
"@revenuecat/purchases-ui-js": "link:../purchases-ui-js"Use the scoped package name (@revenuecat/purchases-ui-js). A key like purchases-ui-js will not apply the override.
- Reinstall dependencies from the
purchases-jsroot:
pnpm install- Verify the override resolved:
pnpm why @revenuecat/purchases-ui-jsYou should see link:../purchases-ui-js.
- Build the UI package when you change it (from
purchases-ui-js), then rebuild or run dev builds inpurchases-jsas needed.
Reverting
Remove the override from pnpm-workspace.yaml and run pnpm install again to return to the published @revenuecat/purchases-ui-js version.
Running Storybook
pnpm run storybookEnvironment Setup for Purchase Stories
Note: This setup is only required if you need to test Storybook stories involving the
payment-entrypage.
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
- Create a test account in Stripe
- Create a
.env.development.localfile and set the following variables:
VITE_STORYBOOK_PUBLISHABLE_API_KEY="pk_test_1234567890"
VITE_STORYBOOK_ACCOUNT_ID="acct_1234567890"Running tests
pnpm run testRunning linters
pnpm run test:typecheck
pnpm run svelte-check
pnpm run prettier
pnpm run lintRunning E2E tests
Please check the Demo app readme here
Update API specs
pnpm run extract-apiThis will update the files in api-report with the latest public API.
If it has uncommitted 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 bumpand 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
