feat: sync rcat data (#13628)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* RevenueCat support: public webhook endpoint, webhook handler/service,
nightly reconciliation and per-user sync; subscriptions now expose
provider and iapStore; new user-facing error for App Store/Play-managed
subscriptions.
* **Chores**
* Multi-provider subscription schema (Provider, IapStore); Stripe
credentials moved into payment.stripe (top-level apiKey/webhookKey
deprecated); new payment.revenuecat config and defaults added.
* **Tests**
  * Comprehensive RevenueCat integration test suite and snapshots.
* **Documentation**
  * Admin config descriptions updated with deprecation guidance.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
DarkSky
2025-09-23 16:52:23 +08:00
committed by GitHub
parent 75a6c79b2c
commit 762b702e46
31 changed files with 2059 additions and 33 deletions
@@ -23,6 +23,11 @@ import {
UserSubscriptionResolver,
WorkspaceSubscriptionResolver,
} from './resolver';
import {
RevenueCatService,
RevenueCatWebhookController,
RevenueCatWebhookHandler,
} from './revenuecat';
import { SubscriptionService } from './service';
import { StripeFactory, StripeProvider } from './stripe';
import { StripeWebhook } from './webhook';
@@ -40,10 +45,12 @@ import { StripeWebhook } from './webhook';
providers: [
StripeFactory,
StripeProvider,
RevenueCatService,
SubscriptionService,
SubscriptionResolver,
UserSubscriptionResolver,
StripeWebhook,
RevenueCatWebhookHandler,
UserSubscriptionManager,
WorkspaceSubscriptionManager,
SelfhostTeamSubscriptionManager,
@@ -51,6 +58,10 @@ import { StripeWebhook } from './webhook';
WorkspaceSubscriptionResolver,
PaymentEventHandlers,
],
controllers: [StripeWebhookController, LicenseController],
controllers: [
StripeWebhookController,
LicenseController,
RevenueCatWebhookController,
],
})
export class PaymentModule {}