@onesub/server 0.7.3 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/dist/__tests__/apple-status-api.test.d.ts +14 -0
  2. package/dist/__tests__/apple-status-api.test.d.ts.map +1 -0
  3. package/dist/__tests__/apple-status-api.test.js +345 -0
  4. package/dist/__tests__/apple-status-api.test.js.map +1 -0
  5. package/dist/__tests__/fetch-hardening.test.d.ts +7 -0
  6. package/dist/__tests__/fetch-hardening.test.d.ts.map +1 -0
  7. package/dist/__tests__/fetch-hardening.test.js +192 -0
  8. package/dist/__tests__/fetch-hardening.test.js.map +1 -0
  9. package/dist/__tests__/google-paused.test.d.ts +10 -0
  10. package/dist/__tests__/google-paused.test.d.ts.map +1 -0
  11. package/dist/__tests__/google-paused.test.js +126 -0
  12. package/dist/__tests__/google-paused.test.js.map +1 -0
  13. package/dist/__tests__/google-price-change.test.d.ts +6 -0
  14. package/dist/__tests__/google-price-change.test.d.ts.map +1 -0
  15. package/dist/__tests__/google-price-change.test.js +186 -0
  16. package/dist/__tests__/google-price-change.test.js.map +1 -0
  17. package/dist/__tests__/google-subscriptions-v2.test.d.ts +13 -0
  18. package/dist/__tests__/google-subscriptions-v2.test.d.ts.map +1 -0
  19. package/dist/__tests__/google-subscriptions-v2.test.js +206 -0
  20. package/dist/__tests__/google-subscriptions-v2.test.js.map +1 -0
  21. package/dist/__tests__/lifecycle-states.test.d.ts +12 -0
  22. package/dist/__tests__/lifecycle-states.test.d.ts.map +1 -0
  23. package/dist/__tests__/lifecycle-states.test.js +423 -0
  24. package/dist/__tests__/lifecycle-states.test.js.map +1 -0
  25. package/dist/__tests__/linked-purchase-token.test.d.ts +9 -0
  26. package/dist/__tests__/linked-purchase-token.test.d.ts.map +1 -0
  27. package/dist/__tests__/linked-purchase-token.test.js +227 -0
  28. package/dist/__tests__/linked-purchase-token.test.js.map +1 -0
  29. package/dist/__tests__/paused-auto-resume.test.d.ts +7 -0
  30. package/dist/__tests__/paused-auto-resume.test.d.ts.map +1 -0
  31. package/dist/__tests__/paused-auto-resume.test.js +162 -0
  32. package/dist/__tests__/paused-auto-resume.test.js.map +1 -0
  33. package/dist/__tests__/providers.test.js +69 -9
  34. package/dist/__tests__/providers.test.js.map +1 -1
  35. package/dist/__tests__/refund-policy.test.d.ts +11 -0
  36. package/dist/__tests__/refund-policy.test.d.ts.map +1 -0
  37. package/dist/__tests__/refund-policy.test.js +317 -0
  38. package/dist/__tests__/refund-policy.test.js.map +1 -0
  39. package/dist/__tests__/schema.test.js +4 -0
  40. package/dist/__tests__/schema.test.js.map +1 -1
  41. package/dist/__tests__/store.test.js +17 -0
  42. package/dist/__tests__/store.test.js.map +1 -1
  43. package/dist/__tests__/test-utils.d.ts +20 -0
  44. package/dist/__tests__/test-utils.d.ts.map +1 -0
  45. package/dist/__tests__/test-utils.js +30 -0
  46. package/dist/__tests__/test-utils.js.map +1 -0
  47. package/dist/__tests__/webhook-refund.test.d.ts +13 -0
  48. package/dist/__tests__/webhook-refund.test.d.ts.map +1 -0
  49. package/dist/__tests__/webhook-refund.test.js +313 -0
  50. package/dist/__tests__/webhook-refund.test.js.map +1 -0
  51. package/dist/http.d.ts +17 -0
  52. package/dist/http.d.ts.map +1 -0
  53. package/dist/http.js +36 -0
  54. package/dist/http.js.map +1 -0
  55. package/dist/index.d.ts +1 -1
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +2 -2
  58. package/dist/index.js.map +1 -1
  59. package/dist/providers/apple.d.ts +50 -2
  60. package/dist/providers/apple.d.ts.map +1 -1
  61. package/dist/providers/apple.js +235 -2
  62. package/dist/providers/apple.js.map +1 -1
  63. package/dist/providers/google.d.ts +71 -6
  64. package/dist/providers/google.d.ts.map +1 -1
  65. package/dist/providers/google.js +211 -36
  66. package/dist/providers/google.js.map +1 -1
  67. package/dist/routes/purchase.d.ts.map +1 -1
  68. package/dist/routes/purchase.js +15 -6
  69. package/dist/routes/purchase.js.map +1 -1
  70. package/dist/routes/status.d.ts.map +1 -1
  71. package/dist/routes/status.js +14 -1
  72. package/dist/routes/status.js.map +1 -1
  73. package/dist/routes/validate.d.ts.map +1 -1
  74. package/dist/routes/validate.js +7 -1
  75. package/dist/routes/validate.js.map +1 -1
  76. package/dist/routes/webhook.d.ts +2 -2
  77. package/dist/routes/webhook.d.ts.map +1 -1
  78. package/dist/routes/webhook.js +219 -27
  79. package/dist/routes/webhook.js.map +1 -1
  80. package/dist/store.d.ts +9 -0
  81. package/dist/store.d.ts.map +1 -1
  82. package/dist/store.js +12 -0
  83. package/dist/store.js.map +1 -1
  84. package/dist/stores/postgres.d.ts +1 -0
  85. package/dist/stores/postgres.d.ts.map +1 -1
  86. package/dist/stores/postgres.js +14 -2
  87. package/dist/stores/postgres.js.map +1 -1
  88. package/dist/stores/schema.d.ts.map +1 -1
  89. package/dist/stores/schema.js +7 -0
  90. package/dist/stores/schema.js.map +1 -1
  91. package/package.json +2 -2
  92. package/sql/schema.sql +7 -0
@@ -1,8 +1,9 @@
1
- import { decodeJwt, decodeProtectedHeader, importX509, jwtVerify } from 'jose';
1
+ import { decodeJwt, decodeProtectedHeader, importPKCS8, importX509, jwtVerify, SignJWT } from 'jose';
2
2
  import { X509Certificate } from 'node:crypto';
3
3
  import { SUBSCRIPTION_STATUS } from '@onesub/shared';
4
4
  import { APPLE_ROOT_CA_PEMS } from './apple-root-ca.js';
5
5
  import { log } from '../logger.js';
6
+ import { fetchWithTimeout } from '../http.js';
6
7
  import { mockValidateAppleSubscription, mockValidateAppleProduct, } from './mock.js';
7
8
  /** Maximum age for consumable receipts (72 hours). Older receipts may indicate replay attacks. */
8
9
  const MAX_CONSUMABLE_RECEIPT_AGE_MS = 72 * 60 * 60 * 1000;
@@ -252,15 +253,247 @@ export async function decodeAppleNotification(payload, skipJwsVerification = fal
252
253
  catch {
253
254
  // renewal info is optional for some notification types
254
255
  }
255
- if (!tx.originalTransactionId || !tx.expiresDate)
256
+ // expiresDate is only required for subscription notifications.
257
+ // Consumable / non-consumable refund notifications (REFUND for IAP) have no expiry.
258
+ if (!tx.originalTransactionId)
256
259
  return null;
257
260
  const status = deriveStatus(tx, renewal);
258
261
  const willRenew = renewal?.autoRenewStatus === 1;
262
+ // environment is on the notification data envelope but Apple also includes
263
+ // it inside the signed transaction payload. Prefer the JWS-protected one.
264
+ const txEnv = tx.environment;
265
+ const dataEnv = payload.data.environment;
266
+ const environment = txEnv === 'Sandbox' || dataEnv === 'Sandbox' ? 'Sandbox' : 'Production';
259
267
  return {
260
268
  originalTransactionId: tx.originalTransactionId,
269
+ transactionId: tx.transactionId ?? null,
270
+ type: tx.type ?? null,
271
+ productId: tx.productId ?? null,
272
+ bundleId: tx.bundleId ?? payload.data.bundleId ?? null,
273
+ environment,
261
274
  status,
262
275
  willRenew,
276
+ expiresAt: tx.expiresDate ? new Date(tx.expiresDate).toISOString() : null,
277
+ };
278
+ }
279
+ // ───────────────────────────────────────────────────────────────────────────
280
+ // App Store Server API — outbound calls (consumption response, etc.)
281
+ // ───────────────────────────────────────────────────────────────────────────
282
+ /**
283
+ * Module-level JWT cache for the App Store Server API. Apple caps token TTL
284
+ * at 20 minutes; we mint with that TTL and re-use until 60 seconds before
285
+ * expiry (so long-running webhook bursts don't pay the ECDSA-sign cost on
286
+ * every request). Promise dedup prevents thundering-herd JWT mints when many
287
+ * concurrent callers race the cache miss.
288
+ *
289
+ * Keyed by `${issuerId}|${keyId}` since rotating either invalidates the JWT.
290
+ */
291
+ let cachedAppleJwt = null;
292
+ let appleJwtMintPromise = null;
293
+ const APPLE_JWT_TTL_MS = 20 * 60 * 1000;
294
+ const APPLE_JWT_REFRESH_BEFORE_MS = 60 * 1000;
295
+ /**
296
+ * Mint a JWT for the App Store Server API (audience `appstoreconnect-v1`).
297
+ * Requires keyId, issuerId, and privateKey (PKCS8 ES256 from App Store Connect).
298
+ * Token TTL is capped at 20 minutes per Apple's spec.
299
+ */
300
+ async function makeAppleApiJwt(config) {
301
+ const { issuerId, keyId, privateKey, bundleId } = config;
302
+ if (!issuerId || !keyId || !privateKey) {
303
+ throw new Error('[onesub/apple] App Store Server API requires issuerId, keyId, and privateKey');
304
+ }
305
+ const cacheKey = `${issuerId}|${keyId}`;
306
+ const now = Date.now();
307
+ if (cachedAppleJwt &&
308
+ cachedAppleJwt.key === cacheKey &&
309
+ cachedAppleJwt.expiresAt - now > APPLE_JWT_REFRESH_BEFORE_MS) {
310
+ return cachedAppleJwt.token;
311
+ }
312
+ if (!appleJwtMintPromise) {
313
+ appleJwtMintPromise = (async () => {
314
+ const key = await importPKCS8(privateKey, 'ES256');
315
+ const issuedAt = Math.floor(Date.now() / 1000);
316
+ const token = await new SignJWT({ bid: bundleId })
317
+ .setProtectedHeader({ alg: 'ES256', kid: keyId, typ: 'JWT' })
318
+ .setIssuer(issuerId)
319
+ .setAudience('appstoreconnect-v1')
320
+ .setIssuedAt(issuedAt)
321
+ .setExpirationTime(issuedAt + Math.floor(APPLE_JWT_TTL_MS / 1000))
322
+ .sign(key);
323
+ cachedAppleJwt = { token, expiresAt: Date.now() + APPLE_JWT_TTL_MS, key: cacheKey };
324
+ return token;
325
+ })().finally(() => {
326
+ appleJwtMintPromise = null;
327
+ });
328
+ }
329
+ return appleJwtMintPromise;
330
+ }
331
+ /** Test-only: clear the module-level Apple JWT cache. Not exported. */
332
+ function clearAppleJwtCacheForTests() {
333
+ cachedAppleJwt = null;
334
+ appleJwtMintPromise = null;
335
+ }
336
+ // Expose for the test suite without polluting the public API surface.
337
+ export const __testing = { clearAppleJwtCacheForTests };
338
+ /**
339
+ * PUT a ConsumptionRequest to Apple's
340
+ * /inApps/v1/transactions/consumption/{transactionId} endpoint.
341
+ *
342
+ * Apple sends CONSUMPTION_REQUEST notifications when a customer asks for a
343
+ * refund on a consumable. Without a response Apple has no usage signal and
344
+ * tends to grant the refund. This call provides the data Apple uses to weigh
345
+ * the refund decision.
346
+ *
347
+ * Fire-and-forget: failures are logged, never thrown — the webhook should
348
+ * still 200 to Apple even if our outbound call fails.
349
+ */
350
+ export async function sendAppleConsumptionResponse(transactionId, body, config, options) {
351
+ if (config.mockMode)
352
+ return;
353
+ let jwt;
354
+ try {
355
+ jwt = await makeAppleApiJwt(config);
356
+ }
357
+ catch (err) {
358
+ log.warn('[onesub/apple] Cannot send consumption response — JWT mint failed:', err);
359
+ return;
360
+ }
361
+ const host = options?.sandbox
362
+ ? 'api.storekit-sandbox.itunes.apple.com'
363
+ : 'api.storekit.itunes.apple.com';
364
+ const url = `https://${host}/inApps/v1/transactions/consumption/${encodeURIComponent(transactionId)}`;
365
+ try {
366
+ const resp = await fetchWithTimeout(url, {
367
+ method: 'PUT',
368
+ headers: {
369
+ Authorization: `Bearer ${jwt}`,
370
+ 'Content-Type': 'application/json',
371
+ },
372
+ body: JSON.stringify(body),
373
+ });
374
+ if (!resp.ok) {
375
+ const text = await resp.text();
376
+ log.warn(`[onesub/apple] Consumption response API error ${resp.status}: ${text}`);
377
+ }
378
+ }
379
+ catch (err) {
380
+ log.warn('[onesub/apple] Consumption response network error:', err);
381
+ }
382
+ }
383
+ /**
384
+ * Apple's status code in the GET /inApps/v1/subscriptions/{originalTxId} response.
385
+ * https://developer.apple.com/documentation/appstoreserverapi/status
386
+ */
387
+ const APPLE_SUBSCRIPTION_STATUS_CODE = {
388
+ ACTIVE: 1,
389
+ EXPIRED: 2,
390
+ BILLING_RETRY: 3,
391
+ GRACE_PERIOD: 4,
392
+ REVOKED: 5,
393
+ };
394
+ function mapAppleStatusCode(code) {
395
+ switch (code) {
396
+ case APPLE_SUBSCRIPTION_STATUS_CODE.ACTIVE:
397
+ return SUBSCRIPTION_STATUS.ACTIVE;
398
+ case APPLE_SUBSCRIPTION_STATUS_CODE.GRACE_PERIOD:
399
+ return SUBSCRIPTION_STATUS.GRACE_PERIOD;
400
+ case APPLE_SUBSCRIPTION_STATUS_CODE.BILLING_RETRY:
401
+ return SUBSCRIPTION_STATUS.ON_HOLD;
402
+ case APPLE_SUBSCRIPTION_STATUS_CODE.REVOKED:
403
+ return SUBSCRIPTION_STATUS.CANCELED;
404
+ case APPLE_SUBSCRIPTION_STATUS_CODE.EXPIRED:
405
+ default:
406
+ return SUBSCRIPTION_STATUS.EXPIRED;
407
+ }
408
+ }
409
+ /**
410
+ * Fetch the current state of a subscription directly from Apple's App Store
411
+ * Server API — the canonical source of truth when webhooks have been missed,
412
+ * delivered out of order, or the local store has no record at all.
413
+ *
414
+ * GET /inApps/v1/subscriptions/{originalTransactionId}
415
+ * https://developer.apple.com/documentation/appstoreserverapi/get_all_subscription_statuses
416
+ *
417
+ * Returns null on:
418
+ * - Missing API credentials (issuerId/keyId/privateKey)
419
+ * - Network or auth failure
420
+ * - Empty response (transaction not found)
421
+ *
422
+ * Hosts can call this directly (e.g. from a reconciliation cron) or it runs
423
+ * automatically as the unknown-transaction fallback inside the Apple webhook.
424
+ */
425
+ export async function fetchAppleSubscriptionStatus(originalTransactionId, config, options) {
426
+ if (config.mockMode)
427
+ return null;
428
+ let jwt;
429
+ try {
430
+ jwt = await makeAppleApiJwt(config);
431
+ }
432
+ catch (err) {
433
+ log.warn('[onesub/apple] Cannot fetch subscription status — JWT mint failed:', err);
434
+ return null;
435
+ }
436
+ const host = options?.sandbox
437
+ ? 'api.storekit-sandbox.itunes.apple.com'
438
+ : 'api.storekit.itunes.apple.com';
439
+ const url = `https://${host}/inApps/v1/subscriptions/${encodeURIComponent(originalTransactionId)}`;
440
+ let body;
441
+ try {
442
+ const resp = await fetchWithTimeout(url, {
443
+ headers: { Authorization: `Bearer ${jwt}` },
444
+ });
445
+ if (!resp.ok) {
446
+ const text = await resp.text();
447
+ log.warn(`[onesub/apple] Status API error ${resp.status}: ${text}`);
448
+ return null;
449
+ }
450
+ body = (await resp.json());
451
+ }
452
+ catch (err) {
453
+ log.warn('[onesub/apple] Status API network error:', err);
454
+ return null;
455
+ }
456
+ // Find the lastTransactions entry matching the requested originalTransactionId.
457
+ // Apple groups by subscriptionGroupIdentifier; one originalTxId is in exactly one group.
458
+ const entry = body.data
459
+ ?.flatMap((g) => g.lastTransactions ?? [])
460
+ .find((t) => t.originalTransactionId === originalTransactionId);
461
+ if (!entry || entry.status == null || !entry.signedTransactionInfo) {
462
+ log.warn('[onesub/apple] Status API returned no matching transaction for', originalTransactionId);
463
+ return null;
464
+ }
465
+ let tx;
466
+ try {
467
+ tx = await decodeJws(entry.signedTransactionInfo, config.skipJwsVerification);
468
+ }
469
+ catch (err) {
470
+ log.warn('[onesub/apple] Failed to decode signedTransactionInfo from Status API:', err);
471
+ return null;
472
+ }
473
+ let renewal = null;
474
+ if (entry.signedRenewalInfo) {
475
+ try {
476
+ renewal = await decodeJws(entry.signedRenewalInfo, config.skipJwsVerification);
477
+ }
478
+ catch {
479
+ // renewal info is optional
480
+ }
481
+ }
482
+ if (!tx.productId || !tx.expiresDate) {
483
+ log.warn('[onesub/apple] Status API transaction missing productId or expiresDate');
484
+ return null;
485
+ }
486
+ const status = mapAppleStatusCode(entry.status);
487
+ const purchasedAt = tx.originalPurchaseDate ?? tx.purchaseDate ?? Date.now();
488
+ return {
489
+ userId: '', // caller fills this in
490
+ productId: tx.productId,
491
+ platform: 'apple',
492
+ status,
263
493
  expiresAt: new Date(tx.expiresDate).toISOString(),
494
+ originalTransactionId,
495
+ purchasedAt: new Date(purchasedAt).toISOString(),
496
+ willRenew: renewal?.autoRenewStatus === 1,
264
497
  };
265
498
  }
266
499
  //# sourceMappingURL=apple.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"apple.js","sourceRoot":"","sources":["../../src/providers/apple.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apple.js","sourceRoot":"","sources":["../../src/providers/apple.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,22 @@ declare const GOOGLE_NOTIFICATION_TYPE: {
20
20
  readonly SUBSCRIPTION_EXPIRED: 13;
21
21
  };
22
22
  type GoogleNotificationType = (typeof GOOGLE_NOTIFICATION_TYPE)[keyof typeof GOOGLE_NOTIFICATION_TYPE];
23
+ /**
24
+ * Acknowledge a Google Play subscription purchase.
25
+ * Google auto-refunds purchases that are not acknowledged within 3 days.
26
+ *
27
+ * Idempotent on Google's side: a no-op when the purchase has already been
28
+ * acknowledged. Fire-and-forget — entitlement was already granted, so failures
29
+ * are logged but not surfaced to the caller (operations should monitor logs).
30
+ */
31
+ export declare function acknowledgeGoogleSubscription(purchaseToken: string, productId: string, config: GoogleConfig): Promise<void>;
32
+ /**
33
+ * Acknowledge a Google Play one-time product purchase (non-consumable).
34
+ * Consumables do not need this — :consume implicitly acknowledges.
35
+ *
36
+ * Same fire-and-forget semantics as acknowledgeGoogleSubscription.
37
+ */
38
+ export declare function acknowledgeGoogleProduct(purchaseToken: string, productId: string, config: GoogleConfig): Promise<void>;
23
39
  /**
24
40
  * Consume a one-time product purchase via the Google Play Developer API.
25
41
  * Must be called for consumables after the entitlement is granted to the user.
@@ -30,11 +46,16 @@ type GoogleNotificationType = (typeof GOOGLE_NOTIFICATION_TYPE)[keyof typeof GOO
30
46
  */
31
47
  export declare function consumeGoogleProductReceipt(purchaseToken: string, productId: string, config: GoogleConfig): Promise<void>;
32
48
  /**
33
- * Validate a Google Play purchase token.
49
+ * Validate a Google Play purchase token via purchases.subscriptionsv2.get.
34
50
  *
35
- * @param receipt - The purchaseToken from the client (Google Play Billing)
36
- * @param productId - The subscription product ID
37
- * @param config - Google config with packageName and optional serviceAccountKey
51
+ * The productId argument is used to pick the matching `lineItems` entry. If
52
+ * the response has no lineItem with that productId, validation fails the
53
+ * token does not entitle the caller to that product. (For multi-product
54
+ * subscriptions, callers can read other lineItems out of the API directly.)
55
+ *
56
+ * @param receipt The purchaseToken from the client (Google Play Billing)
57
+ * @param productId Expected subscription productId — must match a lineItem
58
+ * @param config Google config with packageName + optional serviceAccountKey
38
59
  */
39
60
  export declare function validateGoogleReceipt(receipt: string, productId: string, config: GoogleConfig): Promise<SubscriptionInfo | null>;
40
61
  /**
@@ -58,7 +79,8 @@ export interface GoogleProductResult {
58
79
  export declare function validateGoogleProductReceipt(purchaseToken: string, productId: string, config: GoogleConfig, type?: 'consumable' | 'non_consumable'): Promise<GoogleProductResult | null>;
59
80
  /**
60
81
  * Decode a Google RTDN Pub/Sub notification.
61
- * Returns the extracted subscription notification data, or null for test pings.
82
+ * Returns the extracted subscription notification data, or null for test pings
83
+ * and notification kinds handled by other decoders (e.g. voided purchases).
62
84
  */
63
85
  export declare function decodeGoogleNotification(payload: GoogleNotificationPayload): {
64
86
  notificationType: GoogleNotificationType;
@@ -67,10 +89,53 @@ export declare function decodeGoogleNotification(payload: GoogleNotificationPayl
67
89
  packageName: string;
68
90
  } | null;
69
91
  /**
70
- * Determine if a Google RTDN notification type represents an active subscription.
92
+ * Decoded Google RTDN voidedPurchaseNotification sent when a purchase
93
+ * (subscription or one-time product) is refunded, charged back, or revoked.
94
+ *
95
+ * https://developer.android.com/google/play/billing/rtdn-reference#voided-purchase
96
+ */
97
+ export interface GoogleVoidedNotification {
98
+ /** Subscription purchaseToken or one-time product purchaseToken */
99
+ purchaseToken: string;
100
+ /** GPA.* — matches the orderId stored as transactionId for one-time products */
101
+ orderId: string;
102
+ /** 1 = Subscription, 2 = One-time product */
103
+ productType: 1 | 2;
104
+ /** 1 = Full refund, 2 = Quantity-based partial refund (consumables) */
105
+ refundType: 1 | 2;
106
+ packageName: string;
107
+ }
108
+ /**
109
+ * Decode a Google RTDN voidedPurchaseNotification, if the payload is one.
110
+ * Returns null when the payload is a different notification kind.
111
+ */
112
+ export declare function decodeGoogleVoidedNotification(payload: GoogleNotificationPayload): GoogleVoidedNotification | null;
113
+ /**
114
+ * Determine if a Google RTDN notification type represents an active subscription
115
+ * inside the paid window (excludes grace period — that's a separate state now).
71
116
  */
72
117
  export declare function isGoogleActiveNotification(notificationType: GoogleNotificationType): boolean;
73
118
  export declare function isGoogleCanceledNotification(notificationType: GoogleNotificationType): boolean;
74
119
  export declare function isGoogleExpiredNotification(notificationType: GoogleNotificationType): boolean;
120
+ /**
121
+ * Subscription is in the store-granted grace period — payment failed but the
122
+ * user retains access while Google retries. Maps to SUBSCRIPTION_STATUS.GRACE_PERIOD.
123
+ */
124
+ export declare function isGoogleGracePeriodNotification(notificationType: GoogleNotificationType): boolean;
125
+ /**
126
+ * Subscription is on hold — grace period ended, retry continuing, entitlement
127
+ * REVOKED. Maps to SUBSCRIPTION_STATUS.ON_HOLD.
128
+ */
129
+ export declare function isGoogleOnHoldNotification(notificationType: GoogleNotificationType): boolean;
130
+ /**
131
+ * User-voluntary pause — entitlement REVOKED until autoResumeTime or manual
132
+ * resume. Maps to SUBSCRIPTION_STATUS.PAUSED.
133
+ */
134
+ export declare function isGooglePausedNotification(notificationType: GoogleNotificationType): boolean;
135
+ /**
136
+ * User agreed to a developer-initiated price change. The new price applies
137
+ * on the next renewal. Subscription remains active in the meantime.
138
+ */
139
+ export declare function isGooglePriceChangeConfirmedNotification(notificationType: GoogleNotificationType): boolean;
75
140
  export {};
76
141
  //# sourceMappingURL=google.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../src/providers/google.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAQtG,KAAK,YAAY,GAAG,WAAW,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;AAuB9D;;;GAGG;AACH,QAAA,MAAM,wBAAwB;;;;;;;;;;;;;;CAcpB,CAAC;AAEX,KAAK,sBAAsB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,OAAO,wBAAwB,CAAC,CAAC;AAkLvG;;;;;;;GAOG;AACH,wBAAsB,2BAA2B,CAC/C,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,IAAI,CAAC,CA6Bf;AAmBD;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CA8BlC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,2EAA2E;IAC3E,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,wBAAsB,4BAA4B,CAChD,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,EACpB,IAAI,GAAE,YAAY,GAAG,gBAAmC,GACvD,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAiDrC;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,yBAAyB,GAAG;IAC5E,gBAAgB,EAAE,sBAAsB,CAAC;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,IAAI,CAuBP;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,gBAAgB,EAAE,sBAAsB,GAAG,OAAO,CAQ5F;AAED,wBAAgB,4BAA4B,CAAC,gBAAgB,EAAE,sBAAsB,GAAG,OAAO,CAK9F;AAED,wBAAgB,2BAA2B,CAAC,gBAAgB,EAAE,sBAAsB,GAAG,OAAO,CAE7F"}
1
+ {"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../src/providers/google.ts"],"names":[],"mappings":"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"}