@dotted-labs/ngx-supabase-stripe 0.1.13 → 0.2.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.
@@ -0,0 +1,10 @@
1
+ import { StripePaymentIntentsPublic } from '../../../../store/customer.store';
2
+ import { UtilsService } from '../../../../services/utils.service';
3
+ import * as i0 from "@angular/core";
4
+ export declare class PaymentIntentsDialogComponent {
5
+ readonly paymentIntent: import("@angular/core").InputSignal<StripePaymentIntentsPublic>;
6
+ readonly dialogId: import("@angular/core").InputSignal<string>;
7
+ readonly utils: UtilsService;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<PaymentIntentsDialogComponent, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<PaymentIntentsDialogComponent, "lib-payment-intents-dialog", never, { "paymentIntent": { "alias": "paymentIntent"; "required": true; "isSignal": true; }; "dialogId": { "alias": "dialogId"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
10
+ }
@@ -1,5 +1,5 @@
1
- import { StripePaymentIntentsPublic } from '../../../../store/customer.store';
2
1
  import { UtilsService } from '../../../../services/utils.service';
2
+ import { StripePaymentIntentsPublic } from '../../../../store/customer.store';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class PaymentIntentsTableComponent {
5
5
  readonly paymentIntents: import("@angular/core").InputSignal<StripePaymentIntentsPublic[]>;
@@ -15,6 +15,7 @@ export declare class PaymentIntentsTableComponent {
15
15
  liveMode: boolean;
16
16
  confirmationMethod: string;
17
17
  paymentMethodId: string;
18
+ paymentMethod?: import("@dotted-labs/ngx-supabase-stripe").PaymentMethodEntity;
18
19
  }[]>;
19
20
  readonly loading: import("@angular/core").InputSignal<boolean>;
20
21
  readonly error: import("@angular/core").InputSignal<string | null>;
@@ -0,0 +1,18 @@
1
+ import type { Stripe as StripeTypes } from 'stripe';
2
+ import * as i0 from "@angular/core";
3
+ export type PaymentMethodDisplayMode = 'detailed' | 'compact';
4
+ export declare class PaymentMethodComponent {
5
+ readonly paymentMethod: import("@angular/core").InputSignal<StripeTypes.PaymentMethod>;
6
+ readonly mode: import("@angular/core").InputSignal<PaymentMethodDisplayMode>;
7
+ get last4(): string;
8
+ get expirationDate(): string;
9
+ get holderName(): string;
10
+ get isExpired(): boolean;
11
+ get cardFunding(): string | undefined;
12
+ get cardCountry(): string | undefined;
13
+ get billingEmail(): string | undefined;
14
+ get billingPhone(): string | undefined;
15
+ get billingAddress(): StripeTypes.Address | null;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<PaymentMethodComponent, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<PaymentMethodComponent, "ngx-payment-method", never, { "paymentMethod": { "alias": "paymentMethod"; "required": true; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
18
+ }
@@ -1,3 +1,4 @@
1
+ import { SafeUrl } from '@angular/platform-browser';
1
2
  import { UtilsService } from '../../../../../services/utils.service';
2
3
  import { StripeSubscriptionPublic } from '../../../../../store/subscriptions.store';
3
4
  import * as i0 from "@angular/core";
@@ -29,7 +30,7 @@ export declare class SubscriptionItemComponent {
29
30
  sessionStatus: any | null;
30
31
  }>;
31
32
  readonly portalAccountStore: {
32
- status: import("@angular/core").Signal<import("../../../../../store/portal-account.store").PortalStatus>;
33
+ status: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").PortalStatus>;
33
34
  error: import("@angular/core").Signal<string | null>;
34
35
  portalUrl: import("@angular/core").Signal<string | null>;
35
36
  isStatusIdle: import("@angular/core").Signal<boolean>;
@@ -39,17 +40,20 @@ export declare class SubscriptionItemComponent {
39
40
  createPortalSession: (customerId: string, returnUrl: string) => Promise<void>;
40
41
  reset: () => void;
41
42
  } & import("@ngrx/signals").StateSource<{
42
- status: import("../../../../../store/portal-account.store").PortalStatus;
43
+ status: import("@dotted-labs/ngx-supabase-stripe").PortalStatus;
43
44
  error: string | null;
44
45
  portalUrl: string | null;
45
46
  }>;
46
47
  readonly utils: UtilsService;
48
+ private readonly sanitizer;
47
49
  readonly subscription: import("@angular/core").InputSignal<StripeSubscriptionPublic>;
48
50
  readonly onManageSubscription: import("@angular/core").OutputEmitterRef<string>;
49
51
  readonly isStatusLoading: import("@angular/core").Signal<boolean>;
52
+ readonly productImage: import("@angular/core").Signal<string>;
50
53
  isExpanded: boolean;
51
54
  toggleExpand(): void;
52
- manageSubscription(): Promise<void>;
55
+ manageSubscription(): void;
56
+ sanitizeImageUrl(imageUrl: string): SafeUrl;
53
57
  static ɵfac: i0.ɵɵFactoryDeclaration<SubscriptionItemComponent, never>;
54
58
  static ɵcmp: i0.ɵɵComponentDeclaration<SubscriptionItemComponent, "lib-subscription-item", never, { "subscription": { "alias": "subscription"; "required": true; "isSignal": true; }; }, { "onManageSubscription": "onManageSubscription"; }, never, never, true, never>;
55
59
  }
@@ -16,6 +16,11 @@ export declare class SubscriptionsComponent {
16
16
  status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
17
17
  error: string | null;
18
18
  }>;
19
+ paymentMethodsStatus: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").CustomerStatus>;
20
+ paymentMethodsError: import("@angular/core").Signal<string | null>;
21
+ entityMap: import("@angular/core").Signal<import("@ngrx/signals/entities").EntityMap<import("stripe").Stripe.PaymentMethod>>;
22
+ ids: import("@angular/core").Signal<import("@ngrx/signals/entities").EntityId[]>;
23
+ entities: import("@angular/core").Signal<import("stripe").Stripe.PaymentMethod[]>;
19
24
  isPaymentIntentsStatusLoading: import("@angular/core").Signal<boolean>;
20
25
  isPaymentIntentsStatusSuccess: import("@angular/core").Signal<boolean>;
21
26
  isPaymentIntentsStatusError: import("@angular/core").Signal<boolean>;
@@ -27,10 +32,17 @@ export declare class SubscriptionsComponent {
27
32
  firstSubscription: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic>;
28
33
  restSubscriptions: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic[]>;
29
34
  isError: import("@angular/core").Signal<string | null>;
35
+ isPaymentMethodsStatusLoading: import("@angular/core").Signal<boolean>;
36
+ isPaymentMethodsStatusSuccess: import("@angular/core").Signal<boolean>;
37
+ isPaymentMethodsStatusError: import("@angular/core").Signal<boolean>;
38
+ hasPaymentMethods: import("@angular/core").Signal<boolean>;
39
+ paymentMethods: import("@angular/core").Signal<import("stripe").Stripe.PaymentMethod[]>;
30
40
  loadCustomer: (customerEmail: string) => Promise<void>;
31
41
  createCustomer: (customerEmail: string) => Promise<void>;
32
42
  loadPaymentIntents: (customerId: string) => Promise<void>;
33
43
  loadSubscriptions: (customerId: string) => Promise<void>;
44
+ loadPaymentMethods: (customerId: string) => Promise<void>;
45
+ loadPaymentMethod: (customerId: string, paymentMethodId: string) => Promise<void>;
34
46
  } & import("@ngrx/signals").StateSource<{
35
47
  customer: {
36
48
  data: import("@dotted-labs/ngx-supabase-stripe").StripeCustomerPublic | null;
@@ -47,9 +59,13 @@ export declare class SubscriptionsComponent {
47
59
  status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
48
60
  error: string | null;
49
61
  };
62
+ paymentMethodsStatus: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
63
+ paymentMethodsError: string | null;
64
+ entityMap: import("@ngrx/signals/entities").EntityMap<import("stripe").Stripe.PaymentMethod>;
65
+ ids: import("@ngrx/signals/entities").EntityId[];
50
66
  }>;
51
67
  readonly portalAccountStore: {
52
- status: import("@angular/core").Signal<import("../../../store/portal-account.store").PortalStatus>;
68
+ status: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").PortalStatus>;
53
69
  error: import("@angular/core").Signal<string | null>;
54
70
  portalUrl: import("@angular/core").Signal<string | null>;
55
71
  isStatusIdle: import("@angular/core").Signal<boolean>;
@@ -59,7 +75,7 @@ export declare class SubscriptionsComponent {
59
75
  createPortalSession: (customerId: string, returnUrl: string) => Promise<void>;
60
76
  reset: () => void;
61
77
  } & import("@ngrx/signals").StateSource<{
62
- status: import("../../../store/portal-account.store").PortalStatus;
78
+ status: import("@dotted-labs/ngx-supabase-stripe").PortalStatus;
63
79
  error: string | null;
64
80
  portalUrl: string | null;
65
81
  }>;
@@ -47,6 +47,11 @@ export declare class EmbeddedCheckoutComponent implements OnInit {
47
47
  status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
48
48
  error: string | null;
49
49
  }>;
50
+ paymentMethodsStatus: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").CustomerStatus>;
51
+ paymentMethodsError: import("@angular/core").Signal<string | null>;
52
+ entityMap: import("@angular/core").Signal<import("@ngrx/signals/entities").EntityMap<import("stripe").Stripe.PaymentMethod>>;
53
+ ids: import("@angular/core").Signal<import("@ngrx/signals/entities").EntityId[]>;
54
+ entities: import("@angular/core").Signal<import("stripe").Stripe.PaymentMethod[]>;
50
55
  isPaymentIntentsStatusLoading: import("@angular/core").Signal<boolean>;
51
56
  isPaymentIntentsStatusSuccess: import("@angular/core").Signal<boolean>;
52
57
  isPaymentIntentsStatusError: import("@angular/core").Signal<boolean>;
@@ -58,10 +63,17 @@ export declare class EmbeddedCheckoutComponent implements OnInit {
58
63
  firstSubscription: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic>;
59
64
  restSubscriptions: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic[]>;
60
65
  isError: import("@angular/core").Signal<string | null>;
66
+ isPaymentMethodsStatusLoading: import("@angular/core").Signal<boolean>;
67
+ isPaymentMethodsStatusSuccess: import("@angular/core").Signal<boolean>;
68
+ isPaymentMethodsStatusError: import("@angular/core").Signal<boolean>;
69
+ hasPaymentMethods: import("@angular/core").Signal<boolean>;
70
+ paymentMethods: import("@angular/core").Signal<import("stripe").Stripe.PaymentMethod[]>;
61
71
  loadCustomer: (customerEmail: string) => Promise<void>;
62
72
  createCustomer: (customerEmail: string) => Promise<void>;
63
73
  loadPaymentIntents: (customerId: string) => Promise<void>;
64
74
  loadSubscriptions: (customerId: string) => Promise<void>;
75
+ loadPaymentMethods: (customerId: string) => Promise<void>;
76
+ loadPaymentMethod: (customerId: string, paymentMethodId: string) => Promise<void>;
65
77
  } & import("@ngrx/signals").StateSource<{
66
78
  customer: {
67
79
  data: import("@dotted-labs/ngx-supabase-stripe").StripeCustomerPublic | null;
@@ -78,6 +90,10 @@ export declare class EmbeddedCheckoutComponent implements OnInit {
78
90
  status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
79
91
  error: string | null;
80
92
  };
93
+ paymentMethodsStatus: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
94
+ paymentMethodsError: string | null;
95
+ entityMap: import("@ngrx/signals/entities").EntityMap<import("stripe").Stripe.PaymentMethod>;
96
+ ids: import("@ngrx/signals/entities").EntityId[];
81
97
  }>;
82
98
  readonly priceId: import("@angular/core").InputSignal<string>;
83
99
  readonly returnPagePath: import("@angular/core").InputSignal<string>;
@@ -43,6 +43,11 @@ export declare class EmbeddedSubscriptionComponent implements OnInit {
43
43
  status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
44
44
  error: string | null;
45
45
  }>;
46
+ paymentMethodsStatus: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").CustomerStatus>;
47
+ paymentMethodsError: import("@angular/core").Signal<string | null>;
48
+ entityMap: import("@angular/core").Signal<import("@ngrx/signals/entities").EntityMap<import("stripe").Stripe.PaymentMethod>>;
49
+ ids: import("@angular/core").Signal<import("@ngrx/signals/entities").EntityId[]>;
50
+ entities: import("@angular/core").Signal<import("stripe").Stripe.PaymentMethod[]>;
46
51
  isPaymentIntentsStatusLoading: import("@angular/core").Signal<boolean>;
47
52
  isPaymentIntentsStatusSuccess: import("@angular/core").Signal<boolean>;
48
53
  isPaymentIntentsStatusError: import("@angular/core").Signal<boolean>;
@@ -54,10 +59,17 @@ export declare class EmbeddedSubscriptionComponent implements OnInit {
54
59
  firstSubscription: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic>;
55
60
  restSubscriptions: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic[]>;
56
61
  isError: import("@angular/core").Signal<string | null>;
62
+ isPaymentMethodsStatusLoading: import("@angular/core").Signal<boolean>;
63
+ isPaymentMethodsStatusSuccess: import("@angular/core").Signal<boolean>;
64
+ isPaymentMethodsStatusError: import("@angular/core").Signal<boolean>;
65
+ hasPaymentMethods: import("@angular/core").Signal<boolean>;
66
+ paymentMethods: import("@angular/core").Signal<import("stripe").Stripe.PaymentMethod[]>;
57
67
  loadCustomer: (customerEmail: string) => Promise<void>;
58
68
  createCustomer: (customerEmail: string) => Promise<void>;
59
69
  loadPaymentIntents: (customerId: string) => Promise<void>;
60
70
  loadSubscriptions: (customerId: string) => Promise<void>;
71
+ loadPaymentMethods: (customerId: string) => Promise<void>;
72
+ loadPaymentMethod: (customerId: string, paymentMethodId: string) => Promise<void>;
61
73
  } & import("@ngrx/signals").StateSource<{
62
74
  customer: {
63
75
  data: import("@dotted-labs/ngx-supabase-stripe").StripeCustomerPublic | null;
@@ -74,6 +86,10 @@ export declare class EmbeddedSubscriptionComponent implements OnInit {
74
86
  status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
75
87
  error: string | null;
76
88
  };
89
+ paymentMethodsStatus: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
90
+ paymentMethodsError: string | null;
91
+ entityMap: import("@ngrx/signals/entities").EntityMap<import("stripe").Stripe.PaymentMethod>;
92
+ ids: import("@ngrx/signals/entities").EntityId[];
77
93
  }>;
78
94
  readonly priceId: import("@angular/core").InputSignal<string>;
79
95
  readonly returnPagePath: import("@angular/core").InputSignal<string>;
@@ -1,12 +1,20 @@
1
1
  import { UtilsService } from '../../../services/utils.service';
2
2
  import { StripePricePublic, StripeProductPublic } from '../../../store/products.store';
3
+ import { Currency } from '../../../models/currency.model';
3
4
  import * as i0 from "@angular/core";
4
5
  export declare class ProductItemComponent {
5
6
  readonly product: import("@angular/core").InputSignal<StripeProductPublic>;
7
+ readonly currency: import("@angular/core").InputSignal<Currency>;
6
8
  readonly productSelected: import("@angular/core").OutputEmitterRef<StripeProductPublic>;
7
9
  readonly priceSelected: import("@angular/core").OutputEmitterRef<StripePricePublic>;
8
10
  readonly utils: UtilsService;
9
- onSelect(price: StripePricePublic): void;
11
+ private readonly sanitizer;
12
+ price: import("@angular/core").Signal<{
13
+ details: StripePricePublic;
14
+ recurringInterval: string;
15
+ } | undefined>;
16
+ sanitizedImage: import("@angular/core").Signal<import("@angular/platform-browser").SafeUrl | null>;
17
+ onSelect(): void;
10
18
  static ɵfac: i0.ɵɵFactoryDeclaration<ProductItemComponent, never>;
11
- static ɵcmp: i0.ɵɵComponentDeclaration<ProductItemComponent, "lib-product-item", never, { "product": { "alias": "product"; "required": true; "isSignal": true; }; }, { "productSelected": "productSelected"; "priceSelected": "priceSelected"; }, never, never, true, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<ProductItemComponent, "lib-product-item", never, { "product": { "alias": "product"; "required": true; "isSignal": true; }; "currency": { "alias": "currency"; "required": false; "isSignal": true; }; }, { "productSelected": "productSelected"; "priceSelected": "priceSelected"; }, never, never, true, never>;
12
20
  }
@@ -1,33 +1,39 @@
1
1
  import { StripePricePublic, StripeProductPublic } from '../../store/products.store';
2
+ import { Currency } from '../../models/currency.model';
2
3
  import * as i0 from "@angular/core";
3
4
  export declare class ProductListComponent {
4
5
  readonly productsStore: {
5
- products: import("@angular/core").Signal<StripeProductPublic[] | null>;
6
- prices: import("@angular/core").Signal<StripePricePublic[] | null>;
6
+ products: import("@angular/core").Signal<StripeProductPublic[]>;
7
+ prices: import("@angular/core").Signal<StripePricePublic[]>;
7
8
  status: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").ProductsStatus>;
8
9
  error: import("@angular/core").Signal<string | null>;
10
+ currency: import("@angular/core").Signal<Currency>;
9
11
  isStatusLoading: import("@angular/core").Signal<boolean>;
10
12
  isStatusSuccess: import("@angular/core").Signal<boolean>;
11
13
  isStatusError: import("@angular/core").Signal<boolean>;
12
- recurringProducts: import("@angular/core").Signal<StripeProductPublic[]>;
13
- oneTimeProducts: import("@angular/core").Signal<StripeProductPublic[]>;
14
+ oneTimeproductsByCurrency: import("@angular/core").Signal<StripeProductPublic[]>;
15
+ recurringProductsByCurrency: import("@angular/core").Signal<StripeProductPublic[]>;
16
+ productsByCurrency: import("@angular/core").Signal<StripeProductPublic[]>;
14
17
  hasProducts: import("@angular/core").Signal<boolean>;
15
18
  isError: import("@angular/core").Signal<string | null>;
16
19
  getProductsByIds: (ids: string[]) => StripeProductPublic[];
20
+ setCurrency: (currency: Currency) => void;
17
21
  loadProductById: (id: string) => Promise<void>;
18
22
  loadProducts: () => Promise<void>;
19
23
  reset: () => void;
20
24
  } & import("@ngrx/signals").StateSource<{
21
- products: StripeProductPublic[] | null;
22
- prices: StripePricePublic[] | null;
25
+ products: StripeProductPublic[];
26
+ prices: StripePricePublic[];
23
27
  status: import("@dotted-labs/ngx-supabase-stripe").ProductsStatus;
24
28
  error: string | null;
29
+ currency: Currency;
25
30
  }>;
26
31
  readonly products: import("@angular/core").InputSignal<StripeProductPublic[]>;
32
+ readonly currency: import("@angular/core").InputSignal<Currency>;
27
33
  readonly productSelected: import("@angular/core").OutputEmitterRef<StripeProductPublic>;
28
34
  readonly priceSelected: import("@angular/core").OutputEmitterRef<StripePricePublic>;
29
35
  onProductSelect(product: StripeProductPublic): void;
30
36
  onPriceSelect(price: StripePricePublic): void;
31
37
  static ɵfac: i0.ɵɵFactoryDeclaration<ProductListComponent, never>;
32
- static ɵcmp: i0.ɵɵComponentDeclaration<ProductListComponent, "stripe-product-list", never, { "products": { "alias": "products"; "required": false; "isSignal": true; }; }, { "productSelected": "productSelected"; "priceSelected": "priceSelected"; }, never, never, true, never>;
38
+ static ɵcmp: i0.ɵɵComponentDeclaration<ProductListComponent, "stripe-product-list", never, { "products": { "alias": "products"; "required": false; "isSignal": true; }; "currency": { "alias": "currency"; "required": false; "isSignal": true; }; }, { "productSelected": "productSelected"; "priceSelected": "priceSelected"; }, never, never, true, never>;
33
39
  }
@@ -0,0 +1,11 @@
1
+ import { ElementRef } from '@angular/core';
2
+ import type { Stripe as StripeTypes } from 'stripe';
3
+ import * as i0 from "@angular/core";
4
+ export declare class BrandIconDirective {
5
+ private readonly el;
6
+ readonly paymentMethod: import("@angular/core").InputSignal<StripeTypes.PaymentMethod>;
7
+ constructor(el: ElementRef<HTMLElement>);
8
+ private getBrandIcon;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<BrandIconDirective, never>;
10
+ static ɵdir: i0.ɵɵDirectiveDeclaration<BrandIconDirective, "[ngxBrandIcon]", never, { "paymentMethod": { "alias": "ngxBrandIcon"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
11
+ }
@@ -0,0 +1,11 @@
1
+ import { ElementRef } from '@angular/core';
2
+ import type { Stripe as StripeTypes } from 'stripe';
3
+ import * as i0 from "@angular/core";
4
+ export declare class BrandNameDirective {
5
+ private readonly el;
6
+ readonly paymentMethod: import("@angular/core").InputSignal<StripeTypes.PaymentMethod>;
7
+ constructor(el: ElementRef<HTMLElement>);
8
+ private getBrandName;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<BrandNameDirective, never>;
10
+ static ɵdir: i0.ɵɵDirectiveDeclaration<BrandNameDirective, "[ngxBrandName]", never, { "paymentMethod": { "alias": "ngxBrandName"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
11
+ }
@@ -0,0 +1,11 @@
1
+ import { ElementRef } from '@angular/core';
2
+ import type { Stripe as StripeTypes } from 'stripe';
3
+ import * as i0 from "@angular/core";
4
+ export declare class PaymentMethodTypeDirective {
5
+ private readonly el;
6
+ readonly paymentMethod: import("@angular/core").InputSignal<StripeTypes.PaymentMethod>;
7
+ constructor(el: ElementRef<HTMLElement>);
8
+ private getPaymentMethodType;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<PaymentMethodTypeDirective, never>;
10
+ static ɵdir: i0.ɵɵDirectiveDeclaration<PaymentMethodTypeDirective, "[ngxPaymentMethodType]", never, { "paymentMethod": { "alias": "ngxPaymentMethodType"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
11
+ }
@@ -0,0 +1,9 @@
1
+ export declare enum Currency {
2
+ EUR = "eur",
3
+ USD = "usd",
4
+ GBP = "gbp",
5
+ JPY = "jpy",
6
+ KRW = "krw",
7
+ CNY = "cny",
8
+ INR = "inr"
9
+ }
@@ -17,6 +17,11 @@ export declare class CustomerDashboardComponent {
17
17
  status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
18
18
  error: string | null;
19
19
  }>;
20
+ paymentMethodsStatus: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").CustomerStatus>;
21
+ paymentMethodsError: import("@angular/core").Signal<string | null>;
22
+ entityMap: import("@angular/core").Signal<import("@ngrx/signals/entities").EntityMap<import("stripe").Stripe.PaymentMethod>>;
23
+ ids: import("@angular/core").Signal<import("@ngrx/signals/entities").EntityId[]>;
24
+ entities: import("@angular/core").Signal<import("stripe").Stripe.PaymentMethod[]>;
20
25
  isPaymentIntentsStatusLoading: import("@angular/core").Signal<boolean>;
21
26
  isPaymentIntentsStatusSuccess: import("@angular/core").Signal<boolean>;
22
27
  isPaymentIntentsStatusError: import("@angular/core").Signal<boolean>;
@@ -28,10 +33,17 @@ export declare class CustomerDashboardComponent {
28
33
  firstSubscription: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic>;
29
34
  restSubscriptions: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic[]>;
30
35
  isError: import("@angular/core").Signal<string | null>;
36
+ isPaymentMethodsStatusLoading: import("@angular/core").Signal<boolean>;
37
+ isPaymentMethodsStatusSuccess: import("@angular/core").Signal<boolean>;
38
+ isPaymentMethodsStatusError: import("@angular/core").Signal<boolean>;
39
+ hasPaymentMethods: import("@angular/core").Signal<boolean>;
40
+ paymentMethods: import("@angular/core").Signal<import("stripe").Stripe.PaymentMethod[]>;
31
41
  loadCustomer: (customerEmail: string) => Promise<void>;
32
42
  createCustomer: (customerEmail: string) => Promise<void>;
33
43
  loadPaymentIntents: (customerId: string) => Promise<void>;
34
44
  loadSubscriptions: (customerId: string) => Promise<void>;
45
+ loadPaymentMethods: (customerId: string) => Promise<void>;
46
+ loadPaymentMethod: (customerId: string, paymentMethodId: string) => Promise<void>;
35
47
  } & import("@ngrx/signals").StateSource<{
36
48
  customer: {
37
49
  data: import("@dotted-labs/ngx-supabase-stripe").StripeCustomerPublic | null;
@@ -48,6 +60,10 @@ export declare class CustomerDashboardComponent {
48
60
  status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
49
61
  error: string | null;
50
62
  };
63
+ paymentMethodsStatus: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
64
+ paymentMethodsError: string | null;
65
+ entityMap: import("@ngrx/signals/entities").EntityMap<import("stripe").Stripe.PaymentMethod>;
66
+ ids: import("@ngrx/signals/entities").EntityId[];
51
67
  }>;
52
68
  readonly returnUrl: import("@angular/core").InputSignal<string>;
53
69
  readonly customer: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").StripeCustomerPublic | null>;
@@ -110,6 +110,14 @@ export declare class StripeClientService {
110
110
  customer: StripeTypes.Customer | null;
111
111
  error: Error | null;
112
112
  }>;
113
+ getCustomerPaymentMethods(customerId: string): Promise<{
114
+ paymentMethods: StripeTypes.PaymentMethod[] | null;
115
+ error: Error | null;
116
+ }>;
117
+ getCustomerPaymentMethod(customerId: string, paymentMethodId: string): Promise<{
118
+ paymentMethod: StripeTypes.PaymentMethod | null;
119
+ error: Error | null;
120
+ }>;
113
121
  static ɵfac: i0.ɵɵFactoryDeclaration<StripeClientService, never>;
114
122
  static ɵprov: i0.ɵɵInjectableDeclaration<StripeClientService>;
115
123
  }
@@ -1,3 +1,4 @@
1
+ import type { Stripe as StripeTypes } from 'stripe';
1
2
  import { StripeCustomer, StripePaymentIntent } from '../models/database.model';
2
3
  import { StripeSubscriptionPublic } from './subscriptions.store';
3
4
  export type CustomerStatus = 'idle' | 'loading' | 'success' | 'error';
@@ -7,8 +8,10 @@ export type StripePaymentIntentsPublic = Omit<StripePaymentIntent, 'attrs'> & {
7
8
  liveMode: boolean;
8
9
  confirmationMethod: string;
9
10
  paymentMethodId: string;
11
+ paymentMethod?: PaymentMethodEntity;
10
12
  };
11
13
  export type StripeCustomerPublic = Omit<StripeCustomer, 'attrs'>;
14
+ export type PaymentMethodEntity = StripeTypes.PaymentMethod;
12
15
  export interface CustomerState {
13
16
  customer: {
14
17
  data: StripeCustomerPublic | null;
@@ -25,6 +28,8 @@ export interface CustomerState {
25
28
  status: CustomerStatus;
26
29
  error: string | null;
27
30
  };
31
+ paymentMethodsStatus: CustomerStatus;
32
+ paymentMethodsError: string | null;
28
33
  }
29
34
  export declare const CustomerStore: import("@angular/core").Type<{
30
35
  customer: import("@ngrx/signals").DeepSignal<{
@@ -42,6 +47,11 @@ export declare const CustomerStore: import("@angular/core").Type<{
42
47
  status: CustomerStatus;
43
48
  error: string | null;
44
49
  }>;
50
+ paymentMethodsStatus: import("@angular/core").Signal<CustomerStatus>;
51
+ paymentMethodsError: import("@angular/core").Signal<string | null>;
52
+ entityMap: import("@angular/core").Signal<import("@ngrx/signals/entities").EntityMap<StripeTypes.PaymentMethod>>;
53
+ ids: import("@angular/core").Signal<import("@ngrx/signals/entities").EntityId[]>;
54
+ entities: import("@angular/core").Signal<StripeTypes.PaymentMethod[]>;
45
55
  isPaymentIntentsStatusLoading: import("@angular/core").Signal<boolean>;
46
56
  isPaymentIntentsStatusSuccess: import("@angular/core").Signal<boolean>;
47
57
  isPaymentIntentsStatusError: import("@angular/core").Signal<boolean>;
@@ -53,10 +63,17 @@ export declare const CustomerStore: import("@angular/core").Type<{
53
63
  firstSubscription: import("@angular/core").Signal<StripeSubscriptionPublic>;
54
64
  restSubscriptions: import("@angular/core").Signal<StripeSubscriptionPublic[]>;
55
65
  isError: import("@angular/core").Signal<string | null>;
66
+ isPaymentMethodsStatusLoading: import("@angular/core").Signal<boolean>;
67
+ isPaymentMethodsStatusSuccess: import("@angular/core").Signal<boolean>;
68
+ isPaymentMethodsStatusError: import("@angular/core").Signal<boolean>;
69
+ hasPaymentMethods: import("@angular/core").Signal<boolean>;
70
+ paymentMethods: import("@angular/core").Signal<StripeTypes.PaymentMethod[]>;
56
71
  loadCustomer: (customerEmail: string) => Promise<void>;
57
72
  createCustomer: (customerEmail: string) => Promise<void>;
58
73
  loadPaymentIntents: (customerId: string) => Promise<void>;
59
74
  loadSubscriptions: (customerId: string) => Promise<void>;
75
+ loadPaymentMethods: (customerId: string) => Promise<void>;
76
+ loadPaymentMethod: (customerId: string, paymentMethodId: string) => Promise<void>;
60
77
  } & import("@ngrx/signals").StateSource<{
61
78
  customer: {
62
79
  data: StripeCustomerPublic | null;
@@ -73,5 +90,9 @@ export declare const CustomerStore: import("@angular/core").Type<{
73
90
  status: CustomerStatus;
74
91
  error: string | null;
75
92
  };
93
+ paymentMethodsStatus: CustomerStatus;
94
+ paymentMethodsError: string | null;
95
+ entityMap: import("@ngrx/signals/entities").EntityMap<StripeTypes.PaymentMethod>;
96
+ ids: import("@ngrx/signals/entities").EntityId[];
76
97
  }>>;
77
- export declare function parsePaymentIntent(paymentIntent: StripePaymentIntent): StripePaymentIntentsPublic;
98
+ export declare function parsePaymentIntent(paymentIntent: StripePaymentIntent, paymentMethodsMap?: Record<string, PaymentMethodEntity>): StripePaymentIntentsPublic;
@@ -1,4 +1,5 @@
1
1
  import { StripePrice, StripeProduct } from '../models/database.model';
2
+ import { Currency } from '../models/currency.model';
2
3
  export type StripeProductPublic = Omit<StripeProduct, 'attrs'> & {
3
4
  images: string[];
4
5
  prices: {
@@ -9,25 +10,29 @@ export type StripeProductPublic = Omit<StripeProduct, 'attrs'> & {
9
10
  export type StripePricePublic = Omit<StripePrice, 'attrs'>;
10
11
  export type ProductsStatus = 'idle' | 'loading' | 'success' | 'error';
11
12
  export declare const ProductsStore: import("@angular/core").Type<{
12
- products: import("@angular/core").Signal<StripeProductPublic[] | null>;
13
- prices: import("@angular/core").Signal<StripePricePublic[] | null>;
13
+ products: import("@angular/core").Signal<StripeProductPublic[]>;
14
+ prices: import("@angular/core").Signal<StripePricePublic[]>;
14
15
  status: import("@angular/core").Signal<ProductsStatus>;
15
16
  error: import("@angular/core").Signal<string | null>;
17
+ currency: import("@angular/core").Signal<Currency>;
16
18
  isStatusLoading: import("@angular/core").Signal<boolean>;
17
19
  isStatusSuccess: import("@angular/core").Signal<boolean>;
18
20
  isStatusError: import("@angular/core").Signal<boolean>;
19
- recurringProducts: import("@angular/core").Signal<StripeProductPublic[]>;
20
- oneTimeProducts: import("@angular/core").Signal<StripeProductPublic[]>;
21
+ oneTimeproductsByCurrency: import("@angular/core").Signal<StripeProductPublic[]>;
22
+ recurringProductsByCurrency: import("@angular/core").Signal<StripeProductPublic[]>;
23
+ productsByCurrency: import("@angular/core").Signal<StripeProductPublic[]>;
21
24
  hasProducts: import("@angular/core").Signal<boolean>;
22
25
  isError: import("@angular/core").Signal<string | null>;
23
26
  getProductsByIds: (ids: string[]) => StripeProductPublic[];
27
+ setCurrency: (currency: Currency) => void;
24
28
  loadProductById: (id: string) => Promise<void>;
25
29
  loadProducts: () => Promise<void>;
26
30
  reset: () => void;
27
31
  } & import("@ngrx/signals").StateSource<{
28
- products: StripeProductPublic[] | null;
29
- prices: StripePricePublic[] | null;
32
+ products: StripeProductPublic[];
33
+ prices: StripePricePublic[];
30
34
  status: ProductsStatus;
31
35
  error: string | null;
36
+ currency: Currency;
32
37
  }>>;
33
38
  export declare function parseProduct(product: StripeProduct, prices?: StripePrice[]): StripeProductPublic;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dotted-labs/ngx-supabase-stripe",
3
- "version": "0.1.13",
3
+ "version": "0.2.0",
4
4
  "description": "An Angular library for integrating Supabase and Stripe into your applications, providing ready-to-use components that simplify the implementation of payments and subscriptions",
5
5
  "keywords": [
6
6
  "angular",
package/public-api.d.ts CHANGED
@@ -5,6 +5,7 @@ export * from './lib/store/checkout.store';
5
5
  export * from './lib/store/products.store';
6
6
  export * from './lib/store/subscriptions.store';
7
7
  export * from './lib/store/customer.store';
8
+ export * from './lib/store/portal-account.store';
8
9
  export * from './lib/services/stripe-client.service';
9
10
  export * from './lib/services/supabase-client.service';
10
11
  export * from './lib/components/embedded-checkout/embedded-checkout.component';
@@ -18,4 +19,5 @@ export * from './lib/components/customer/subscriptions/subscription-card/subscri
18
19
  export * from './lib/components/customer/subscriptions/subscriptions-list/subscriptions-list.component';
19
20
  export * from './lib/components/customer/payment-intents/payment-intents-list/payment-intents-list.component';
20
21
  export * from './lib/pages/customer/customer.component';
22
+ export * from './lib/models/currency.model';
21
23
  export * from './database.types';