@dotted-labs/ngx-supabase-stripe 0.1.4

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 (39) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +19 -0
  3. package/database.types.d.ts +368 -0
  4. package/fesm2022/dotted-labs-ngx-supabase-stripe.mjs +1624 -0
  5. package/fesm2022/dotted-labs-ngx-supabase-stripe.mjs.map +1 -0
  6. package/index.d.ts +5 -0
  7. package/lib/components/customer/payment-intents/payment-intents-list/payment-intents-item/payment-intent-item.component.d.ts +11 -0
  8. package/lib/components/customer/payment-intents/payment-intents-list/payment-intents-item-skeleton/payment-intent-item-skeleton.component.d.ts +5 -0
  9. package/lib/components/customer/payment-intents/payment-intents-list/payment-intents-list.component.d.ts +13 -0
  10. package/lib/components/customer/payment-intents/payment-intents-table/payment-intents-table.component.d.ts +36 -0
  11. package/lib/components/customer/subscriptions/subscription-card/subscription-card-skeleton/subscription-card-skeleton.component.d.ts +5 -0
  12. package/lib/components/customer/subscriptions/subscription-card/subscription-card.component.d.ts +19 -0
  13. package/lib/components/customer/subscriptions/subscriptions-list/subscription-item/subscription-item.component.d.ts +57 -0
  14. package/lib/components/customer/subscriptions/subscriptions-list/subscription-item-skeleton/subscription-item-skeleton.component.d.ts +5 -0
  15. package/lib/components/customer/subscriptions/subscriptions-list/subscriptions-list.component.d.ts +12 -0
  16. package/lib/components/customer/subscriptions/subscriptions.component.d.ts +70 -0
  17. package/lib/components/embedded-checkout/embedded-checkout.component.d.ts +91 -0
  18. package/lib/components/embedded-checkout/return-page/return-page.component.d.ts +44 -0
  19. package/lib/components/embedded-skeleton/embedded-skeleton.component.d.ts +5 -0
  20. package/lib/components/embedded-subscription/embedded-subscription.component.d.ts +88 -0
  21. package/lib/components/embedded-subscription/return-page/subscription-return-page.component.d.ts +41 -0
  22. package/lib/components/product-list/product-item/product-item.component.d.ts +12 -0
  23. package/lib/components/product-list/product-item-skeleton/product-item-skeleton.component.d.ts +5 -0
  24. package/lib/components/product-list/product-list.component.d.ts +33 -0
  25. package/lib/config/ngx-supabase-stripe.config.d.ts +13 -0
  26. package/lib/config/stripe.config.d.ts +17 -0
  27. package/lib/config/supabase.config.d.ts +21 -0
  28. package/lib/models/database.model.d.ts +20 -0
  29. package/lib/pages/customer/customer.component.d.ts +59 -0
  30. package/lib/services/stripe-client.service.d.ts +92 -0
  31. package/lib/services/supabase-client.service.d.ts +449 -0
  32. package/lib/services/utils.service.d.ts +8 -0
  33. package/lib/store/checkout.store.d.ts +34 -0
  34. package/lib/store/customer.store.d.ts +76 -0
  35. package/lib/store/portal-account.store.d.ts +24 -0
  36. package/lib/store/products.store.d.ts +33 -0
  37. package/lib/store/subscriptions.store.d.ts +63 -0
  38. package/package.json +44 -0
  39. package/public-api.d.ts +22 -0
@@ -0,0 +1,57 @@
1
+ import { UtilsService } from '../../../../../services/utils.service';
2
+ import { StripeSubscriptionPublic } from '../../../../../store/subscriptions.store';
3
+ import * as i0 from "@angular/core";
4
+ export declare class SubscriptionItemComponent {
5
+ readonly subscriptionsStore: {
6
+ subscriptions: import("@angular/core").Signal<StripeSubscriptionPublic[] | null>;
7
+ embeddedSubscription: import("@angular/core").Signal<import("@stripe/stripe-js").StripeEmbeddedCheckout | null>;
8
+ currentSubscription: import("@angular/core").Signal<StripeSubscriptionPublic | null>;
9
+ status: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").SubscriptionStatus>;
10
+ error: import("@angular/core").Signal<string | null>;
11
+ sessionStatus: import("@angular/core").Signal<any>;
12
+ isStatusLoading: import("@angular/core").Signal<boolean>;
13
+ isStatusSuccess: import("@angular/core").Signal<boolean>;
14
+ isStatusError: import("@angular/core").Signal<boolean>;
15
+ hasSubscriptions: import("@angular/core").Signal<boolean>;
16
+ isError: import("@angular/core").Signal<string | null>;
17
+ createSubscription: (priceId: string, returnPath: string, customerEmail: string | null) => Promise<void>;
18
+ loadSubscriptions: () => Promise<void>;
19
+ getSubscription: (subscriptionId: string) => Promise<void>;
20
+ getSessionStatus: ({ sessionId }: {
21
+ sessionId: string;
22
+ }) => Promise<void>;
23
+ destroyEmbeddedSubscription: () => void;
24
+ reset: () => void;
25
+ } & import("@ngrx/signals").StateSource<{
26
+ subscriptions: StripeSubscriptionPublic[] | null;
27
+ embeddedSubscription: import("@stripe/stripe-js").StripeEmbeddedCheckout | null;
28
+ currentSubscription: StripeSubscriptionPublic | null;
29
+ status: import("@dotted-labs/ngx-supabase-stripe").SubscriptionStatus;
30
+ error: string | null;
31
+ sessionStatus: any | null;
32
+ }>;
33
+ readonly portalAccountStore: {
34
+ status: import("@angular/core").Signal<import("../../../../../store/portal-account.store").PortalStatus>;
35
+ error: import("@angular/core").Signal<string | null>;
36
+ portalUrl: import("@angular/core").Signal<string | null>;
37
+ isStatusIdle: import("@angular/core").Signal<boolean>;
38
+ isStatusLoading: import("@angular/core").Signal<boolean>;
39
+ isStatusSuccess: import("@angular/core").Signal<boolean>;
40
+ isStatusError: import("@angular/core").Signal<boolean>;
41
+ createPortalSession: (customerId: string, returnUrl: string) => Promise<void>;
42
+ reset: () => void;
43
+ } & import("@ngrx/signals").StateSource<{
44
+ status: import("../../../../../store/portal-account.store").PortalStatus;
45
+ error: string | null;
46
+ portalUrl: string | null;
47
+ }>;
48
+ readonly utils: UtilsService;
49
+ readonly subscription: import("@angular/core").InputSignal<StripeSubscriptionPublic>;
50
+ readonly onManageSubscription: import("@angular/core").OutputEmitterRef<string>;
51
+ readonly isStatusLoading: import("@angular/core").Signal<boolean>;
52
+ isExpanded: boolean;
53
+ toggleExpand(): void;
54
+ manageSubscription(): Promise<void>;
55
+ static ɵfac: i0.ɵɵFactoryDeclaration<SubscriptionItemComponent, never>;
56
+ static ɵcmp: i0.ɵɵComponentDeclaration<SubscriptionItemComponent, "lib-subscription-item", never, { "subscription": { "alias": "subscription"; "required": true; "isSignal": true; }; }, { "onManageSubscription": "onManageSubscription"; }, never, never, true, never>;
57
+ }
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class SubscriptionItemSkeletonComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<SubscriptionItemSkeletonComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<SubscriptionItemSkeletonComponent, "lib-subscription-item-skeleton", never, {}, {}, never, never, true, never>;
5
+ }
@@ -0,0 +1,12 @@
1
+ import { StripeSubscriptionPublic } from '../../../../store/subscriptions.store';
2
+ import * as i0 from "@angular/core";
3
+ export declare class SubscriptionsListComponent {
4
+ readonly subscriptions: import("@angular/core").InputSignal<StripeSubscriptionPublic[]>;
5
+ readonly loading: import("@angular/core").InputSignal<boolean>;
6
+ readonly error: import("@angular/core").InputSignal<string | null>;
7
+ readonly withEmptyState: import("@angular/core").InputSignal<boolean>;
8
+ readonly onManageSubscription: import("@angular/core").OutputEmitterRef<string>;
9
+ manageSubscription(customerId: string): void;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<SubscriptionsListComponent, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<SubscriptionsListComponent, "lib-subscriptions-list", never, { "subscriptions": { "alias": "subscriptions"; "required": true; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "withEmptyState": { "alias": "withEmptyState"; "required": false; "isSignal": true; }; }, { "onManageSubscription": "onManageSubscription"; }, never, never, true, never>;
12
+ }
@@ -0,0 +1,70 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class SubscriptionsComponent {
3
+ readonly customerStore: {
4
+ customer: import("@ngrx/signals").DeepSignal<{
5
+ data: import("@dotted-labs/ngx-supabase-stripe").StripeCustomerPublic | null;
6
+ status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
7
+ error: string | null;
8
+ }>;
9
+ paymentIntents: import("@ngrx/signals").DeepSignal<{
10
+ data: import("@dotted-labs/ngx-supabase-stripe").StripePaymentIntentsPublic[];
11
+ status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
12
+ error: string | null;
13
+ }>;
14
+ subscriptions: import("@ngrx/signals").DeepSignal<{
15
+ data: import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic[];
16
+ status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
17
+ error: string | null;
18
+ }>;
19
+ isPaymentIntentsStatusLoading: import("@angular/core").Signal<boolean>;
20
+ isPaymentIntentsStatusSuccess: import("@angular/core").Signal<boolean>;
21
+ isPaymentIntentsStatusError: import("@angular/core").Signal<boolean>;
22
+ isSubscriptionsStatusLoading: import("@angular/core").Signal<boolean>;
23
+ isSubscriptionsStatusSuccess: import("@angular/core").Signal<boolean>;
24
+ isSubscriptionsStatusError: import("@angular/core").Signal<boolean>;
25
+ hasSubscriptions: import("@angular/core").Signal<boolean>;
26
+ hasPaymentIntents: import("@angular/core").Signal<boolean>;
27
+ firstSubscription: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic>;
28
+ restSubscriptions: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic[]>;
29
+ isError: import("@angular/core").Signal<string | null>;
30
+ loadCustomer: (customerEmail: string) => Promise<void>;
31
+ loadPaymentIntents: (customerId: string) => Promise<void>;
32
+ loadSubscriptions: (customerId: string) => Promise<void>;
33
+ } & import("@ngrx/signals").StateSource<{
34
+ customer: {
35
+ data: import("@dotted-labs/ngx-supabase-stripe").StripeCustomerPublic | null;
36
+ status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
37
+ error: string | null;
38
+ };
39
+ paymentIntents: {
40
+ data: import("@dotted-labs/ngx-supabase-stripe").StripePaymentIntentsPublic[];
41
+ status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
42
+ error: string | null;
43
+ };
44
+ subscriptions: {
45
+ data: import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic[];
46
+ status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
47
+ error: string | null;
48
+ };
49
+ }>;
50
+ readonly portalAccountStore: {
51
+ status: import("@angular/core").Signal<import("../../../store/portal-account.store").PortalStatus>;
52
+ error: import("@angular/core").Signal<string | null>;
53
+ portalUrl: import("@angular/core").Signal<string | null>;
54
+ isStatusIdle: import("@angular/core").Signal<boolean>;
55
+ isStatusLoading: import("@angular/core").Signal<boolean>;
56
+ isStatusSuccess: import("@angular/core").Signal<boolean>;
57
+ isStatusError: import("@angular/core").Signal<boolean>;
58
+ createPortalSession: (customerId: string, returnUrl: string) => Promise<void>;
59
+ reset: () => void;
60
+ } & import("@ngrx/signals").StateSource<{
61
+ status: import("../../../store/portal-account.store").PortalStatus;
62
+ error: string | null;
63
+ portalUrl: string | null;
64
+ }>;
65
+ readonly returnUrl: import("@angular/core").InputSignal<string>;
66
+ manageSubscription(customerId: string): void;
67
+ refreshSubscriptions(): void;
68
+ static ɵfac: i0.ɵɵFactoryDeclaration<SubscriptionsComponent, never>;
69
+ static ɵcmp: i0.ɵɵComponentDeclaration<SubscriptionsComponent, "lib-subscriptions", never, { "returnUrl": { "alias": "returnUrl"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
70
+ }
@@ -0,0 +1,91 @@
1
+ import { OnInit } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class EmbeddedCheckoutComponent implements OnInit {
4
+ readonly checkoutStore: {
5
+ embeddedCheckout: import("@angular/core").Signal<import("@stripe/stripe-js").StripeEmbeddedCheckout | null>;
6
+ status: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").CheckoutStatus>;
7
+ sessionId: import("@angular/core").Signal<string | null>;
8
+ returnPagePath: import("@angular/core").Signal<string>;
9
+ error: import("@angular/core").Signal<string | null>;
10
+ sessionStatus: import("@angular/core").Signal<any>;
11
+ isStatusLoading: import("@angular/core").Signal<boolean>;
12
+ isStatusSuccess: import("@angular/core").Signal<boolean>;
13
+ isStatusError: import("@angular/core").Signal<boolean>;
14
+ paymentStatus: import("@angular/core").Signal<any>;
15
+ isPaymentComplete: import("@angular/core").Signal<boolean>;
16
+ isPaymentProcessing: import("@angular/core").Signal<boolean>;
17
+ isError: import("@angular/core").Signal<string | null>;
18
+ createCheckoutSession: ({ priceId, returnPagePath, customerEmail }: {
19
+ priceId: string;
20
+ returnPagePath: string;
21
+ customerEmail: string | null;
22
+ }) => Promise<void>;
23
+ getSessionStatus: ({ sessionId }: {
24
+ sessionId: string;
25
+ }) => Promise<void>;
26
+ destroyEmbeddedCheckout: () => void;
27
+ reset: () => void;
28
+ } & import("@ngrx/signals").StateSource<{
29
+ embeddedCheckout: import("@stripe/stripe-js").StripeEmbeddedCheckout | null;
30
+ status: import("@dotted-labs/ngx-supabase-stripe").CheckoutStatus;
31
+ sessionId: string | null;
32
+ returnPagePath: string;
33
+ error: string | null;
34
+ sessionStatus: any | null;
35
+ }>;
36
+ readonly customerStore: {
37
+ customer: import("@ngrx/signals").DeepSignal<{
38
+ data: import("@dotted-labs/ngx-supabase-stripe").StripeCustomerPublic | null;
39
+ status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
40
+ error: string | null;
41
+ }>;
42
+ paymentIntents: import("@ngrx/signals").DeepSignal<{
43
+ data: import("@dotted-labs/ngx-supabase-stripe").StripePaymentIntentsPublic[];
44
+ status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
45
+ error: string | null;
46
+ }>;
47
+ subscriptions: import("@ngrx/signals").DeepSignal<{
48
+ data: import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic[];
49
+ status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
50
+ error: string | null;
51
+ }>;
52
+ isPaymentIntentsStatusLoading: import("@angular/core").Signal<boolean>;
53
+ isPaymentIntentsStatusSuccess: import("@angular/core").Signal<boolean>;
54
+ isPaymentIntentsStatusError: import("@angular/core").Signal<boolean>;
55
+ isSubscriptionsStatusLoading: import("@angular/core").Signal<boolean>;
56
+ isSubscriptionsStatusSuccess: import("@angular/core").Signal<boolean>;
57
+ isSubscriptionsStatusError: import("@angular/core").Signal<boolean>;
58
+ hasSubscriptions: import("@angular/core").Signal<boolean>;
59
+ hasPaymentIntents: import("@angular/core").Signal<boolean>;
60
+ firstSubscription: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic>;
61
+ restSubscriptions: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic[]>;
62
+ isError: import("@angular/core").Signal<string | null>;
63
+ loadCustomer: (customerEmail: string) => Promise<void>;
64
+ loadPaymentIntents: (customerId: string) => Promise<void>;
65
+ loadSubscriptions: (customerId: string) => Promise<void>;
66
+ } & import("@ngrx/signals").StateSource<{
67
+ customer: {
68
+ data: import("@dotted-labs/ngx-supabase-stripe").StripeCustomerPublic | null;
69
+ status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
70
+ error: string | null;
71
+ };
72
+ paymentIntents: {
73
+ data: import("@dotted-labs/ngx-supabase-stripe").StripePaymentIntentsPublic[];
74
+ status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
75
+ error: string | null;
76
+ };
77
+ subscriptions: {
78
+ data: import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic[];
79
+ status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
80
+ error: string | null;
81
+ };
82
+ }>;
83
+ readonly priceId: import("@angular/core").InputSignal<string>;
84
+ readonly returnPagePath: import("@angular/core").InputSignal<string>;
85
+ readonly customer: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").StripeCustomerPublic | null>;
86
+ ngOnInit(): Promise<void>;
87
+ private createCheckoutSession;
88
+ ngOnDestroy(): void;
89
+ static ɵfac: i0.ɵɵFactoryDeclaration<EmbeddedCheckoutComponent, never>;
90
+ static ɵcmp: i0.ɵɵComponentDeclaration<EmbeddedCheckoutComponent, "lib-embedded-checkout", never, { "priceId": { "alias": "priceId"; "required": true; "isSignal": true; }; "returnPagePath": { "alias": "returnPagePath"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
91
+ }
@@ -0,0 +1,44 @@
1
+ import { OnInit } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class ReturnPageComponent implements OnInit {
4
+ private readonly route;
5
+ private readonly router;
6
+ readonly checkoutStore: {
7
+ embeddedCheckout: import("@angular/core").Signal<import("@stripe/stripe-js").StripeEmbeddedCheckout | null>;
8
+ status: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").CheckoutStatus>;
9
+ sessionId: import("@angular/core").Signal<string | null>;
10
+ returnPagePath: import("@angular/core").Signal<string>;
11
+ error: import("@angular/core").Signal<string | null>;
12
+ sessionStatus: import("@angular/core").Signal<any>;
13
+ isStatusLoading: import("@angular/core").Signal<boolean>;
14
+ isStatusSuccess: import("@angular/core").Signal<boolean>;
15
+ isStatusError: import("@angular/core").Signal<boolean>;
16
+ paymentStatus: import("@angular/core").Signal<any>;
17
+ isPaymentComplete: import("@angular/core").Signal<boolean>;
18
+ isPaymentProcessing: import("@angular/core").Signal<boolean>;
19
+ isError: import("@angular/core").Signal<string | null>;
20
+ createCheckoutSession: ({ priceId, returnPagePath, customerEmail }: {
21
+ priceId: string;
22
+ returnPagePath: string;
23
+ customerEmail: string | null;
24
+ }) => Promise<void>;
25
+ getSessionStatus: ({ sessionId }: {
26
+ sessionId: string;
27
+ }) => Promise<void>;
28
+ destroyEmbeddedCheckout: () => void;
29
+ reset: () => void;
30
+ } & import("@ngrx/signals").StateSource<{
31
+ embeddedCheckout: import("@stripe/stripe-js").StripeEmbeddedCheckout | null;
32
+ status: import("@dotted-labs/ngx-supabase-stripe").CheckoutStatus;
33
+ sessionId: string | null;
34
+ returnPagePath: string;
35
+ error: string | null;
36
+ sessionStatus: any | null;
37
+ }>;
38
+ readonly returnUrl: import("@angular/core").InputSignal<string>;
39
+ ngOnInit(): Promise<void>;
40
+ private getSessionStatus;
41
+ navigate(): void;
42
+ static ɵfac: i0.ɵɵFactoryDeclaration<ReturnPageComponent, never>;
43
+ static ɵcmp: i0.ɵɵComponentDeclaration<ReturnPageComponent, "lib-checkout-return-page", never, { "returnUrl": { "alias": "returnUrl"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
44
+ }
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class EmbeddedSkeletonComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<EmbeddedSkeletonComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<EmbeddedSkeletonComponent, "lib-embedded-skeleton", never, {}, {}, never, never, true, never>;
5
+ }
@@ -0,0 +1,88 @@
1
+ import { OnInit } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class EmbeddedSubscriptionComponent implements OnInit {
4
+ readonly subscriptionsStore: {
5
+ subscriptions: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic[] | null>;
6
+ embeddedSubscription: import("@angular/core").Signal<import("@stripe/stripe-js").StripeEmbeddedCheckout | null>;
7
+ currentSubscription: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic | null>;
8
+ status: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").SubscriptionStatus>;
9
+ error: import("@angular/core").Signal<string | null>;
10
+ sessionStatus: import("@angular/core").Signal<any>;
11
+ isStatusLoading: import("@angular/core").Signal<boolean>;
12
+ isStatusSuccess: import("@angular/core").Signal<boolean>;
13
+ isStatusError: import("@angular/core").Signal<boolean>;
14
+ hasSubscriptions: import("@angular/core").Signal<boolean>;
15
+ isError: import("@angular/core").Signal<string | null>;
16
+ createSubscription: (priceId: string, returnPath: string, customerEmail: string | null) => Promise<void>;
17
+ loadSubscriptions: () => Promise<void>;
18
+ getSubscription: (subscriptionId: string) => Promise<void>;
19
+ getSessionStatus: ({ sessionId }: {
20
+ sessionId: string;
21
+ }) => Promise<void>;
22
+ destroyEmbeddedSubscription: () => void;
23
+ reset: () => void;
24
+ } & import("@ngrx/signals").StateSource<{
25
+ subscriptions: import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic[] | null;
26
+ embeddedSubscription: import("@stripe/stripe-js").StripeEmbeddedCheckout | null;
27
+ currentSubscription: import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic | null;
28
+ status: import("@dotted-labs/ngx-supabase-stripe").SubscriptionStatus;
29
+ error: string | null;
30
+ sessionStatus: any | null;
31
+ }>;
32
+ readonly customerStore: {
33
+ customer: import("@ngrx/signals").DeepSignal<{
34
+ data: import("@dotted-labs/ngx-supabase-stripe").StripeCustomerPublic | null;
35
+ status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
36
+ error: string | null;
37
+ }>;
38
+ paymentIntents: import("@ngrx/signals").DeepSignal<{
39
+ data: import("@dotted-labs/ngx-supabase-stripe").StripePaymentIntentsPublic[];
40
+ status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
41
+ error: string | null;
42
+ }>;
43
+ subscriptions: import("@ngrx/signals").DeepSignal<{
44
+ data: import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic[];
45
+ status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
46
+ error: string | null;
47
+ }>;
48
+ isPaymentIntentsStatusLoading: import("@angular/core").Signal<boolean>;
49
+ isPaymentIntentsStatusSuccess: import("@angular/core").Signal<boolean>;
50
+ isPaymentIntentsStatusError: import("@angular/core").Signal<boolean>;
51
+ isSubscriptionsStatusLoading: import("@angular/core").Signal<boolean>;
52
+ isSubscriptionsStatusSuccess: import("@angular/core").Signal<boolean>;
53
+ isSubscriptionsStatusError: import("@angular/core").Signal<boolean>;
54
+ hasSubscriptions: import("@angular/core").Signal<boolean>;
55
+ hasPaymentIntents: import("@angular/core").Signal<boolean>;
56
+ firstSubscription: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic>;
57
+ restSubscriptions: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic[]>;
58
+ isError: import("@angular/core").Signal<string | null>;
59
+ loadCustomer: (customerEmail: string) => Promise<void>;
60
+ loadPaymentIntents: (customerId: string) => Promise<void>;
61
+ loadSubscriptions: (customerId: string) => Promise<void>;
62
+ } & import("@ngrx/signals").StateSource<{
63
+ customer: {
64
+ data: import("@dotted-labs/ngx-supabase-stripe").StripeCustomerPublic | null;
65
+ status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
66
+ error: string | null;
67
+ };
68
+ paymentIntents: {
69
+ data: import("@dotted-labs/ngx-supabase-stripe").StripePaymentIntentsPublic[];
70
+ status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
71
+ error: string | null;
72
+ };
73
+ subscriptions: {
74
+ data: import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic[];
75
+ status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
76
+ error: string | null;
77
+ };
78
+ }>;
79
+ readonly priceId: import("@angular/core").InputSignal<string>;
80
+ readonly returnPagePath: import("@angular/core").InputSignal<string>;
81
+ readonly customer: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").StripeCustomerPublic | null>;
82
+ constructor();
83
+ ngOnInit(): Promise<void>;
84
+ private createSubscription;
85
+ ngOnDestroy(): void;
86
+ static ɵfac: i0.ɵɵFactoryDeclaration<EmbeddedSubscriptionComponent, never>;
87
+ static ɵcmp: i0.ɵɵComponentDeclaration<EmbeddedSubscriptionComponent, "lib-embedded-subscription", never, { "priceId": { "alias": "priceId"; "required": true; "isSignal": true; }; "returnPagePath": { "alias": "returnPagePath"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
88
+ }
@@ -0,0 +1,41 @@
1
+ import { OnInit } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class SubscriptionReturnPageComponent implements OnInit {
4
+ private readonly route;
5
+ private readonly router;
6
+ private readonly checkoutStore;
7
+ readonly subscriptionsStore: {
8
+ subscriptions: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic[] | null>;
9
+ embeddedSubscription: import("@angular/core").Signal<import("@stripe/stripe-js").StripeEmbeddedCheckout | null>;
10
+ currentSubscription: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic | null>;
11
+ status: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").SubscriptionStatus>;
12
+ error: import("@angular/core").Signal<string | null>;
13
+ sessionStatus: import("@angular/core").Signal<any>;
14
+ isStatusLoading: import("@angular/core").Signal<boolean>;
15
+ isStatusSuccess: import("@angular/core").Signal<boolean>;
16
+ isStatusError: import("@angular/core").Signal<boolean>;
17
+ hasSubscriptions: import("@angular/core").Signal<boolean>;
18
+ isError: import("@angular/core").Signal<string | null>;
19
+ createSubscription: (priceId: string, returnPath: string, customerEmail: string | null) => Promise<void>;
20
+ loadSubscriptions: () => Promise<void>;
21
+ getSubscription: (subscriptionId: string) => Promise<void>;
22
+ getSessionStatus: ({ sessionId }: {
23
+ sessionId: string;
24
+ }) => Promise<void>;
25
+ destroyEmbeddedSubscription: () => void;
26
+ reset: () => void;
27
+ } & import("@ngrx/signals").StateSource<{
28
+ subscriptions: import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic[] | null;
29
+ embeddedSubscription: import("@stripe/stripe-js").StripeEmbeddedCheckout | null;
30
+ currentSubscription: import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic | null;
31
+ status: import("@dotted-labs/ngx-supabase-stripe").SubscriptionStatus;
32
+ error: string | null;
33
+ sessionStatus: any | null;
34
+ }>;
35
+ readonly returnUrl: import("@angular/core").InputSignal<string>;
36
+ ngOnInit(): Promise<void>;
37
+ private getSessionStatus;
38
+ navigate(): void;
39
+ static ɵfac: i0.ɵɵFactoryDeclaration<SubscriptionReturnPageComponent, never>;
40
+ static ɵcmp: i0.ɵɵComponentDeclaration<SubscriptionReturnPageComponent, "lib-subscription-return-page", never, { "returnUrl": { "alias": "returnUrl"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
41
+ }
@@ -0,0 +1,12 @@
1
+ import { UtilsService } from '../../../services/utils.service';
2
+ import { StripePricePublic, StripeProductPublic } from '../../../store/products.store';
3
+ import * as i0 from "@angular/core";
4
+ export declare class ProductItemComponent {
5
+ readonly product: import("@angular/core").InputSignal<StripeProductPublic>;
6
+ readonly productSelected: import("@angular/core").OutputEmitterRef<StripeProductPublic>;
7
+ readonly priceSelected: import("@angular/core").OutputEmitterRef<StripePricePublic>;
8
+ readonly utils: UtilsService;
9
+ onSelect(price: StripePricePublic): void;
10
+ 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>;
12
+ }
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class ProductItemSkeletonComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<ProductItemSkeletonComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<ProductItemSkeletonComponent, "lib-product-item-skeleton", never, {}, {}, never, never, true, never>;
5
+ }
@@ -0,0 +1,33 @@
1
+ import { StripePricePublic, StripeProductPublic } from '../../store/products.store';
2
+ import * as i0 from "@angular/core";
3
+ export declare class ProductListComponent {
4
+ readonly productsStore: {
5
+ products: import("@angular/core").Signal<StripeProductPublic[] | null>;
6
+ prices: import("@angular/core").Signal<StripePricePublic[] | null>;
7
+ status: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").ProductsStatus>;
8
+ error: import("@angular/core").Signal<string | null>;
9
+ isStatusLoading: import("@angular/core").Signal<boolean>;
10
+ isStatusSuccess: import("@angular/core").Signal<boolean>;
11
+ isStatusError: import("@angular/core").Signal<boolean>;
12
+ recurringProducts: import("@angular/core").Signal<StripeProductPublic[]>;
13
+ oneTimeProducts: import("@angular/core").Signal<StripeProductPublic[]>;
14
+ hasProducts: import("@angular/core").Signal<boolean>;
15
+ isError: import("@angular/core").Signal<string | null>;
16
+ getProductsByIds: (ids: string[]) => StripeProductPublic[];
17
+ loadProductById: (id: string) => Promise<void>;
18
+ loadProducts: () => Promise<void>;
19
+ reset: () => void;
20
+ } & import("@ngrx/signals").StateSource<{
21
+ products: StripeProductPublic[] | null;
22
+ prices: StripePricePublic[] | null;
23
+ status: import("@dotted-labs/ngx-supabase-stripe").ProductsStatus;
24
+ error: string | null;
25
+ }>;
26
+ readonly products: import("@angular/core").InputSignal<StripeProductPublic[]>;
27
+ readonly productSelected: import("@angular/core").OutputEmitterRef<StripeProductPublic>;
28
+ readonly priceSelected: import("@angular/core").OutputEmitterRef<StripePricePublic>;
29
+ onProductSelect(product: StripeProductPublic): void;
30
+ onPriceSelect(price: StripePricePublic): void;
31
+ 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>;
33
+ }
@@ -0,0 +1,13 @@
1
+ import { EnvironmentProviders, Provider } from '@angular/core';
2
+ import { StripeConfig } from './stripe.config';
3
+ import { SupabaseConfig } from './supabase.config';
4
+ export interface NgxSupabaseStripeConfig {
5
+ supabaseConfig: SupabaseConfig;
6
+ stripeConfig: StripeConfig;
7
+ }
8
+ /**
9
+ * Provides the NgxSupabaseStripeConfig object
10
+ * @param config The NgxSupabaseStripeConfig object
11
+ * @returns The NgxSupabaseStripeConfig object
12
+ */
13
+ export declare function provideNgxSupabaseStripeConfig(config: NgxSupabaseStripeConfig): (Provider | EnvironmentProviders)[];
@@ -0,0 +1,17 @@
1
+ import { InjectionToken, Provider } from '@angular/core';
2
+ /**
3
+ * Stripe configuration interface
4
+ */
5
+ export interface StripeConfig {
6
+ /**
7
+ * Stripe client secret
8
+ */
9
+ publishableKey: string;
10
+ }
11
+ export declare const STRIPE_CONFIG: InjectionToken<StripeConfig>;
12
+ /**
13
+ * Provides the Stripe configuration
14
+ * @param config The Stripe configuration
15
+ * @returns An array of providers
16
+ */
17
+ export declare function provideStripeConfig(config: StripeConfig): Provider[];
@@ -0,0 +1,21 @@
1
+ import { InjectionToken, Provider } from '@angular/core';
2
+ /**
3
+ * Supabase configuration interface
4
+ */
5
+ export interface SupabaseConfig {
6
+ /**
7
+ * Supabase project URL
8
+ */
9
+ supabaseUrl: string;
10
+ /**
11
+ * Supabase API key
12
+ */
13
+ supabaseKey: string;
14
+ }
15
+ export declare const SUPABASE_CONFIG: InjectionToken<SupabaseConfig>;
16
+ /**
17
+ * Provides the Supabase configuration
18
+ * @param config The Supabase configuration
19
+ * @returns An array of providers
20
+ */
21
+ export declare function provideSupabaseConfig(config: SupabaseConfig): Provider[];
@@ -0,0 +1,20 @@
1
+ import { Database } from '../../database.types';
2
+ export type StripeSchemaType = Database['stripe'];
3
+ export type StripeTableType<T extends keyof StripeSchemaType['Tables']> = StripeSchemaType['Tables'][T];
4
+ export type StripeRowType<T extends keyof StripeSchemaType['Tables']> = StripeSchemaType['Tables'][T]['Row'];
5
+ export type StripeInsertType<T extends keyof StripeSchemaType['Tables']> = StripeSchemaType['Tables'][T]['Insert'];
6
+ export type StripeUpdateType<T extends keyof StripeSchemaType['Tables']> = StripeSchemaType['Tables'][T]['Update'];
7
+ type StripeProductRow = StripeRowType<'products'>;
8
+ export type StripeProduct = Omit<StripeProductRow, 'created' | 'updated'>;
9
+ type StripeCheckoutSessionRow = StripeRowType<'checkout_sessions'>;
10
+ export type StripeCheckoutSession = Omit<StripeCheckoutSessionRow, 'created' | 'updated'>;
11
+ type StripePaymentIntentRow = StripeRowType<'payment_intents'>;
12
+ export type StripePaymentIntent = Omit<StripePaymentIntentRow, 'created' | 'updated'>;
13
+ type StripePriceRow = StripeRowType<'prices'>;
14
+ export type StripePrice = Omit<StripePriceRow, 'created' | 'updated'>;
15
+ type StripeSubscriptionRow = StripeRowType<'subscriptions'>;
16
+ export type StripeSubscription = Omit<StripeSubscriptionRow, 'created' | 'updated'>;
17
+ type StripeCustomerRow = StripeRowType<'customers'>;
18
+ export type StripeCustomer = Omit<StripeCustomerRow, 'created' | 'updated'>;
19
+ export type StripeTables = keyof StripeSchemaType['Tables'];
20
+ export {};
@@ -0,0 +1,59 @@
1
+ import { StripePaymentIntentsPublic } from '../../store/customer.store';
2
+ import * as i0 from "@angular/core";
3
+ export declare class CustomerDashboardComponent {
4
+ readonly customerStore: {
5
+ customer: import("@ngrx/signals").DeepSignal<{
6
+ data: import("@dotted-labs/ngx-supabase-stripe").StripeCustomerPublic | null;
7
+ status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
8
+ error: string | null;
9
+ }>;
10
+ paymentIntents: import("@ngrx/signals").DeepSignal<{
11
+ data: StripePaymentIntentsPublic[];
12
+ status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
13
+ error: string | null;
14
+ }>;
15
+ subscriptions: import("@ngrx/signals").DeepSignal<{
16
+ data: import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic[];
17
+ status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
18
+ error: string | null;
19
+ }>;
20
+ isPaymentIntentsStatusLoading: import("@angular/core").Signal<boolean>;
21
+ isPaymentIntentsStatusSuccess: import("@angular/core").Signal<boolean>;
22
+ isPaymentIntentsStatusError: import("@angular/core").Signal<boolean>;
23
+ isSubscriptionsStatusLoading: import("@angular/core").Signal<boolean>;
24
+ isSubscriptionsStatusSuccess: import("@angular/core").Signal<boolean>;
25
+ isSubscriptionsStatusError: import("@angular/core").Signal<boolean>;
26
+ hasSubscriptions: import("@angular/core").Signal<boolean>;
27
+ hasPaymentIntents: import("@angular/core").Signal<boolean>;
28
+ firstSubscription: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic>;
29
+ restSubscriptions: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic[]>;
30
+ isError: import("@angular/core").Signal<string | null>;
31
+ loadCustomer: (customerEmail: string) => Promise<void>;
32
+ loadPaymentIntents: (customerId: string) => Promise<void>;
33
+ loadSubscriptions: (customerId: string) => Promise<void>;
34
+ } & import("@ngrx/signals").StateSource<{
35
+ customer: {
36
+ data: import("@dotted-labs/ngx-supabase-stripe").StripeCustomerPublic | null;
37
+ status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
38
+ error: string | null;
39
+ };
40
+ paymentIntents: {
41
+ data: StripePaymentIntentsPublic[];
42
+ status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
43
+ error: string | null;
44
+ };
45
+ subscriptions: {
46
+ data: import("@dotted-labs/ngx-supabase-stripe").StripeSubscriptionPublic[];
47
+ status: import("@dotted-labs/ngx-supabase-stripe").CustomerStatus;
48
+ error: string | null;
49
+ };
50
+ }>;
51
+ readonly returnUrl: import("@angular/core").InputSignal<string>;
52
+ readonly customer: import("@angular/core").Signal<import("@dotted-labs/ngx-supabase-stripe").StripeCustomerPublic | null>;
53
+ readonly activeTab: import("@angular/core").WritableSignal<"list" | "table">;
54
+ refreshPaymentIntents(): void;
55
+ setActiveTab(tab: 'list' | 'table'): void;
56
+ exportSelectedPaymentIntents(paymentIntents: StripePaymentIntentsPublic[]): void;
57
+ static ɵfac: i0.ɵɵFactoryDeclaration<CustomerDashboardComponent, never>;
58
+ static ɵcmp: i0.ɵɵComponentDeclaration<CustomerDashboardComponent, "lib-customer-dashboard", never, { "returnUrl": { "alias": "returnUrl"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
59
+ }