@funnelsgrove/payments 0.1.41 → 0.1.43

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.
@@ -7,6 +7,7 @@ export type StripeSubscriptionCheckoutAnalyticsContext = {
7
7
  runtimeConfig?: StripeRuntimeConfigOverrides;
8
8
  stepId?: string;
9
9
  stepName?: string;
10
+ stepType?: string;
10
11
  };
11
12
  export type TrackStripeSubscriptionCheckoutStartedInput = StripeSubscriptionCheckoutAnalyticsContext & {
12
13
  checkoutSessionId?: string | null;
@@ -55,6 +55,7 @@ export async function trackStripeSubscriptionCheckoutStarted(input) {
55
55
  featureFlags: input.featureFlags,
56
56
  stepId: input.stepId,
57
57
  stepName: input.stepName,
58
+ stepType: input.stepType,
58
59
  metadata: Object.assign(Object.assign({}, metadata), { checkoutSessionId, checkout_session_id: checkoutSessionId, environment: input.environment || metadata.environment }),
59
60
  };
60
61
  publicAnalyticsSdk.trackCheckoutStarted(conversionInput);
@@ -93,6 +94,7 @@ export async function trackPaidStripeSubscriptionCheckoutCompleted(input) {
93
94
  featureFlags: input.featureFlags,
94
95
  stepId: input.stepId,
95
96
  stepName: input.stepName,
97
+ stepType: input.stepType,
96
98
  metadata: Object.assign(Object.assign(Object.assign({}, asRecord(input.metadata)), analyticsMetadata), { checkoutSessionId, checkout_session_id: checkoutSessionId, checkout_session_status: checkoutStatus.status || undefined, payment_status: checkoutStatus.paymentStatus || undefined, environment: checkoutStatus.environment || input.environment || analyticsMetadata.environment }),
97
99
  };
98
100
  publicAnalyticsSdk.trackCheckoutCompleted(conversionInput);
@@ -45,7 +45,7 @@ export declare function resolvePaywallPlansFromProjectPlans(projectPlans: readon
45
45
  export declare function getPaywallPlans(mode: RuntimeMode, planCatalog?: BillingPlanInputCatalog | readonly BillingFallbackPlanConfig[], options?: PaywallPlanResolutionOptions): Promise<readonly PaywallPlan[]>;
46
46
  export declare function isStripeConfigured(mode: RuntimeMode): boolean;
47
47
  export declare function getStripePromise(mode: RuntimeMode, runtimePublishableKey?: string | null): Promise<Stripe | null> | null;
48
- type CheckoutSessionPlanInput = Pick<PaywallPlan, 'amountCents' | 'billingInterval' | 'billingIntervalCount' | 'description' | 'id' | 'providerPlanId' | 'title'>;
48
+ type CheckoutSessionPlanInput = Pick<PaywallPlan, 'amountCents' | 'analyticsPurchaseValue' | 'billingInterval' | 'billingIntervalCount' | 'description' | 'id' | 'providerPlanId' | 'title'>;
49
49
  type CheckoutPlanRecurringConfig = {
50
50
  interval: BillingPlanInterval;
51
51
  intervalCount: number;
@@ -585,6 +585,14 @@ const normalizeAnalyticsMetadata = (metadata) => {
585
585
  const withCheckoutUrl = checkoutUrl ? Object.assign(Object.assign({}, normalized), { url: checkoutUrl }) : normalized;
586
586
  return Object.keys(withCheckoutUrl).length > 0 ? withCheckoutUrl : undefined;
587
587
  };
588
+ const normalizeCheckoutAnalyticsMetadata = (metadata, plan) => {
589
+ const normalized = normalizeAnalyticsMetadata(metadata);
590
+ const analyticsPurchaseValue = asNonNegativeNumberOrNull(plan.analyticsPurchaseValue);
591
+ if (analyticsPurchaseValue === null) {
592
+ return normalized;
593
+ }
594
+ return Object.assign(Object.assign({}, (normalized !== null && normalized !== void 0 ? normalized : {})), { analyticsPurchaseValue });
595
+ };
588
596
  export async function createStripePaymentIntent(input) {
589
597
  var _a, _b;
590
598
  const runtimeConfig = resolveStripeRuntimeConfig(input.runtimeConfig);
@@ -664,7 +672,7 @@ export async function createStripeSubscriptionCheckout(input) {
664
672
  billingInterval: recurring.interval,
665
673
  billingIntervalCount: recurring.intervalCount,
666
674
  couponId: ((_c = input.couponId) === null || _c === void 0 ? void 0 : _c.trim()) || undefined,
667
- analyticsMetadata: normalizeAnalyticsMetadata(input.analyticsMetadata),
675
+ analyticsMetadata: normalizeCheckoutAnalyticsMetadata(input.analyticsMetadata, input.plan),
668
676
  customerEmail: ((_d = input.customerEmail) === null || _d === void 0 ? void 0 : _d.trim()) || undefined,
669
677
  returnUrl: input.returnUrl,
670
678
  user_id: ((_e = input.user_id) === null || _e === void 0 ? void 0 : _e.trim()) || undefined,
@@ -702,7 +710,7 @@ export async function updateStripeSubscriptionCheckoutPlan(input) {
702
710
  billingInterval: recurring.interval,
703
711
  billingIntervalCount: recurring.intervalCount,
704
712
  couponId: ((_c = input.couponId) === null || _c === void 0 ? void 0 : _c.trim()) || undefined,
705
- analyticsMetadata: normalizeAnalyticsMetadata(input.analyticsMetadata),
713
+ analyticsMetadata: normalizeCheckoutAnalyticsMetadata(input.analyticsMetadata, input.plan),
706
714
  customerEmail: ((_d = input.customerEmail) === null || _d === void 0 ? void 0 : _d.trim()) || undefined,
707
715
  user_id: ((_e = input.user_id) === null || _e === void 0 ? void 0 : _e.trim()) || undefined,
708
716
  environment: input.environment || undefined,
@@ -763,7 +771,7 @@ export async function createStripeCheckoutSession(input) {
763
771
  billingInterval: recurring.interval,
764
772
  billingIntervalCount: recurring.intervalCount,
765
773
  couponId: ((_c = input.couponId) === null || _c === void 0 ? void 0 : _c.trim()) || undefined,
766
- analyticsMetadata: normalizeAnalyticsMetadata(input.analyticsMetadata),
774
+ analyticsMetadata: normalizeCheckoutAnalyticsMetadata(input.analyticsMetadata, input.plan),
767
775
  successUrl: input.successUrl,
768
776
  cancelUrl: input.cancelUrl,
769
777
  customerEmail: ((_d = input.customerEmail) === null || _d === void 0 ? void 0 : _d.trim()) || undefined,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@funnelsgrove/payments",
3
- "version": "0.1.41",
3
+ "version": "0.1.43",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "main": "./dist/index.js",