From 60186c2eb7466625b8f5467da5fd8b422bfd094c Mon Sep 17 00:00:00 2001 From: John Cido Date: Tue, 14 Nov 2023 15:32:53 +0800 Subject: [PATCH 1/2] Add proration parameters --- src/modules/subscription/subscription.action.ts | 4 +++- src/modules/subscription/subscription.types.ts | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/modules/subscription/subscription.action.ts b/src/modules/subscription/subscription.action.ts index 9d79ada..8ff4182 100644 --- a/src/modules/subscription/subscription.action.ts +++ b/src/modules/subscription/subscription.action.ts @@ -94,7 +94,7 @@ export async function retrieveSubscription( export async function updateSubscription( options: UpdateSubscriptionOptions & SharedModuleOptions ): Promise { - const { billingAnchor, cancelled, id, pause, productId, variantId, ...rest } = + const { billingAnchor, cancelled, id, pause, productId, variantId, invoiceImmediately, disableProrations, ...rest } = options; return requestLemonSqueeze({ @@ -106,6 +106,8 @@ export async function updateSubscription( pause, product_id: productId, variant_id: variantId, + invoice_immediately: invoiceImmediately, + disable_prorations: disableProrations, }, id, type: LemonsqueezyDataType.subscriptions, diff --git a/src/modules/subscription/subscription.types.ts b/src/modules/subscription/subscription.types.ts index b3a2f4f..1db8c5b 100644 --- a/src/modules/subscription/subscription.types.ts +++ b/src/modules/subscription/subscription.types.ts @@ -221,6 +221,21 @@ export interface UpdateSubscriptionOptions extends SharedLemonsqueezyOptions { * @docs https://docs.lemonsqueezy.com/api/variants */ variantId: string; + /** + * If `true`, any updates to the subscription will be charged immediately. + * A new prorated invoice will be generated and payment attempted. + * Defaults to `false`. Note that this will be overridden by the `disableProrations` option if used. + * + * @docs https://docs.lemonsqueezy.com/api/subscriptions#update-a-subscription + */ + invoiceImmediately?: boolean; + /** + * If `true`, no proration will be charged and the customer will simply be charged the new price at the next renewal. + * Defaults to `false`. Note that this will override the `invoiceImmediately` option if used. + * + * @docs https://docs.lemonsqueezy.com/api/subscriptions#update-a-subscription + */ + disableProrations?: boolean; } export type UpdateSubscriptionResult = From 63cb8dd43b5b29a185768f44f9fb25f8741cfd64 Mon Sep 17 00:00:00 2001 From: John Cido Date: Tue, 14 Nov 2023 15:34:11 +0800 Subject: [PATCH 2/2] Bump minor version number --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4ef55fe..bdcb3e7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "lemonsqueezy.ts", - "version": "0.1.7", + "version": "0.1.8", "description": "JavaScript / TypeScript SDK for the Lemon Squeezy API", "repository": { "type": "git",