Skip to content

Commit ae2e2d6

Browse files
authored
feat(clerk-js, types): Update billing resources with trial properties (#6492)
1 parent df63e76 commit ae2e2d6

File tree

4 files changed

+32
-0
lines changed

4 files changed

+32
-0
lines changed

.changeset/sour-lemons-talk.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'@clerk/clerk-js': minor
3+
'@clerk/types': minor
4+
---
5+
6+
Update billing resources with trial properties.

packages/clerk-js/src/core/resources/CommerceSubscription.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ export class CommerceSubscription extends BaseResource implements CommerceSubscr
2727
date: Date;
2828
} | null = null;
2929
subscriptionItems!: CommerceSubscriptionItemResource[];
30+
eligibleForFreeTrial?: boolean;
3031

3132
constructor(data: CommerceSubscriptionJSON) {
3233
super();
@@ -51,6 +52,7 @@ export class CommerceSubscription extends BaseResource implements CommerceSubscr
5152
}
5253
: null;
5354
this.subscriptionItems = (data.subscription_items || []).map(item => new CommerceSubscriptionItem(item));
55+
this.eligibleForFreeTrial = data.eligible_for_free_trial;
5456
return this;
5557
}
5658
}
@@ -71,6 +73,7 @@ export class CommerceSubscriptionItem extends BaseResource implements CommerceSu
7173
credit?: {
7274
amount: CommerceMoney;
7375
};
76+
isFreeTrial = false;
7477

7578
constructor(data: CommerceSubscriptionItemJSON) {
7679
super();
@@ -97,6 +100,8 @@ export class CommerceSubscriptionItem extends BaseResource implements CommerceSu
97100

98101
this.amount = data.amount ? commerceMoneyFromJSON(data.amount) : undefined;
99102
this.credit = data.credit && data.credit.amount ? { amount: commerceMoneyFromJSON(data.credit.amount) } : undefined;
103+
104+
this.isFreeTrial = this.withDefault(data.is_free_trial, false);
100105
return this;
101106
}
102107

packages/types/src/commerce.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1094,6 +1094,15 @@ export interface CommerceSubscriptionItemResource extends ClerkResource {
10941094
* ```
10951095
*/
10961096
cancel: (params: CancelSubscriptionParams) => Promise<DeletedObjectResource>;
1097+
/**
1098+
* @experimental This is an experimental API for the Billing feature that is available under a public beta, and the API is subject to change.
1099+
* It is advised to pin the SDK version and the clerk-js version to a specific version to avoid breaking changes.
1100+
* @example
1101+
* ```tsx
1102+
* <ClerkProvider clerkJsVersion="x.x.x" />
1103+
* ```
1104+
*/
1105+
isFreeTrial: boolean;
10971106
}
10981107

10991108
/**
@@ -1203,6 +1212,16 @@ export interface CommerceSubscriptionResource extends ClerkResource {
12031212
* ```
12041213
*/
12051214
updatedAt: Date | null;
1215+
1216+
/**
1217+
* @experimental This is an experimental API for the Billing feature that is available under a public beta, and the API is subject to change.
1218+
* It is advised to pin the SDK version and the clerk-js version to a specific version to avoid breaking changes.
1219+
* @example
1220+
* ```tsx
1221+
* <ClerkProvider clerkJsVersion="x.x.x" />
1222+
* ```
1223+
*/
1224+
eligibleForFreeTrial?: boolean;
12061225
}
12071226

12081227
/**

packages/types/src/json.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -783,6 +783,7 @@ export interface CommerceSubscriptionItemJSON extends ClerkResourceJSON {
783783
period_end: number | null;
784784
canceled_at: number | null;
785785
past_due_at: number | null;
786+
is_free_trial: boolean;
786787
}
787788

788789
/**
@@ -812,6 +813,7 @@ export interface CommerceSubscriptionJSON extends ClerkResourceJSON {
812813
updated_at: number | null;
813814
past_due_at: number | null;
814815
subscription_items: CommerceSubscriptionItemJSON[] | null;
816+
eligible_for_free_trial?: boolean;
815817
}
816818

817819
/**

0 commit comments

Comments
 (0)