Skip to content

Commit d926e0a

Browse files
committed
fix(revenuecat): guard NaN in time-ms mappers and require integer days
- Block params mapper: only clear duration/extendByDays when the parsed endTimeMs/expiryTimeMs is finite, so invalid input does not silently discard the user's valid companion default - defer_google_subscription: validate extendByDays as integer (was Number.isFinite), matching the error message
1 parent 37e4530 commit d926e0a

2 files changed

Lines changed: 11 additions & 5 deletions

File tree

apps/sim/blocks/blocks/revenuecat.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -398,12 +398,18 @@ Return ONLY the numeric timestamp, no text.`,
398398
next.startTimeMs = Number(params.startTimeMs)
399399
}
400400
if (params.endTimeMs !== undefined && params.endTimeMs !== '') {
401-
next.endTimeMs = Number(params.endTimeMs)
402-
next.duration = undefined
401+
const endTimeMs = Number(params.endTimeMs)
402+
if (Number.isFinite(endTimeMs)) {
403+
next.endTimeMs = endTimeMs
404+
next.duration = undefined
405+
}
403406
}
404407
if (params.expiryTimeMs !== undefined && params.expiryTimeMs !== '') {
405-
next.expiryTimeMs = Number(params.expiryTimeMs)
406-
next.extendByDays = undefined
408+
const expiryTimeMs = Number(params.expiryTimeMs)
409+
if (Number.isFinite(expiryTimeMs)) {
410+
next.expiryTimeMs = expiryTimeMs
411+
next.extendByDays = undefined
412+
}
407413
}
408414
if (params.introductoryPrice !== undefined && params.introductoryPrice !== '') {
409415
next.introductoryPrice = Number(params.introductoryPrice)

apps/sim/tools/revenuecat/defer_google_subscription.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ export const revenuecatDeferGoogleSubscriptionTool: ToolConfig<
7979
if (hasExpiry) body.expiry_time_ms = params.expiryTimeMs
8080
else if (hasExtend) {
8181
const days = params.extendByDays as number
82-
if (!Number.isFinite(days) || days < 1 || days > 365) {
82+
if (!Number.isInteger(days) || days < 1 || days > 365) {
8383
throw new Error('extendByDays must be an integer between 1 and 365')
8484
}
8585
body.extend_by_days = days

0 commit comments

Comments
 (0)