@efaj/pulumi-dynamic-stripe 0.1.0 → 0.2.0-022a8be
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.
- package/CHANGELOG.md +14 -0
- package/LICENSE +0 -0
- package/Makefile +13 -3
- package/README.md +3 -0
- package/biome.json +37 -0
- package/dist/StripePaymentLink.d.ts +15 -1
- package/dist/StripePaymentLink.js +39 -16
- package/dist/StripePrice.d.ts +44 -3
- package/dist/StripePrice.js +50 -4
- package/dist/StripeProduct.d.ts +2 -2
- package/dist/StripeProduct.js +7 -5
- package/dist/enums.d.ts +24 -0
- package/dist/enums.js +32 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/utils.d.ts +0 -0
- package/dist/utils.js +3 -1
- package/docs/troubleshooting-stuck-state.md +0 -0
- package/package.json +44 -35
- package/tests/index.test.ts +882 -542
- package/tests/integration.test.ts +50 -0
- package/vitest.config.ts +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.2.0](https://github.com/efaj/pulumi-dynamic-stripe/compare/v0.1.0...v0.2.0) (2026-08-29)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* "inf" constant ([5270a33](https://github.com/efaj/pulumi-dynamic-stripe/commit/5270a33f42f963abf977671dab7434eedf26b69e))
|
|
9
|
+
* **Pricing:** Support for Stripe Pricing Models and tax mode ([f968f68](https://github.com/efaj/pulumi-dynamic-stripe/commit/f968f68f81ef7ad6e1f1eccd866d12dcc2bc3832))
|
|
10
|
+
* **Pricing:** Support quantity and adjustableQuantity ([5ac2a7e](https://github.com/efaj/pulumi-dynamic-stripe/commit/5ac2a7e848ccd7fc89b5652e851344147ec39680))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* **ci:** merge npm publish into release-please workflow to bypass GITHUB_TOKEN trigger restrictions ([9ccdc21](https://github.com/efaj/pulumi-dynamic-stripe/commit/9ccdc2121fbb23ff1ed05d4d89e8120024800722))
|
|
16
|
+
|
|
3
17
|
## [0.1.0](https://github.com/efaj/pulumi-dynamic-stripe/compare/v0.0.2...v0.1.0) (2026-08-28)
|
|
4
18
|
|
|
5
19
|
|
package/LICENSE
CHANGED
|
File without changes
|
package/Makefile
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
.PHONY: all install build test clean
|
|
1
|
+
.PHONY: all install build lint test clean
|
|
2
2
|
|
|
3
|
-
all: install build test
|
|
3
|
+
all: install build lint test
|
|
4
4
|
|
|
5
5
|
install:
|
|
6
6
|
npm install
|
|
@@ -8,8 +8,18 @@ install:
|
|
|
8
8
|
build:
|
|
9
9
|
npm run build
|
|
10
10
|
|
|
11
|
+
lint:
|
|
12
|
+
npm run lint
|
|
13
|
+
|
|
14
|
+
lint-fix:
|
|
15
|
+
npm run lint:fix
|
|
16
|
+
|
|
11
17
|
test:
|
|
12
|
-
npm test
|
|
18
|
+
npm run test
|
|
19
|
+
|
|
20
|
+
test-integration:
|
|
21
|
+
npm run build
|
|
22
|
+
npm run test:integration
|
|
13
23
|
|
|
14
24
|
clean:
|
|
15
25
|
rm -rf dist node_modules package-lock.json
|
package/README.md
CHANGED
package/biome.json
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://biomejs.dev/schemas/2.5.11/schema.json",
|
|
3
|
+
"vcs": {
|
|
4
|
+
"enabled": true,
|
|
5
|
+
"clientKind": "git",
|
|
6
|
+
"useIgnoreFile": true
|
|
7
|
+
},
|
|
8
|
+
"files": {
|
|
9
|
+
"includes": ["**", "!!**/dist"]
|
|
10
|
+
},
|
|
11
|
+
"formatter": {
|
|
12
|
+
"enabled": true,
|
|
13
|
+
"indentStyle": "tab"
|
|
14
|
+
},
|
|
15
|
+
"linter": {
|
|
16
|
+
"enabled": true,
|
|
17
|
+
"rules": {
|
|
18
|
+
"preset": "recommended",
|
|
19
|
+
"suspicious": {
|
|
20
|
+
"noExplicitAny": "off"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"javascript": {
|
|
25
|
+
"formatter": {
|
|
26
|
+
"quoteStyle": "double"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"assist": {
|
|
30
|
+
"enabled": true,
|
|
31
|
+
"actions": {
|
|
32
|
+
"source": {
|
|
33
|
+
"organizeImports": "on"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -6,6 +6,13 @@ export interface StripePaymentLinkArgs {
|
|
|
6
6
|
redirectUrl: pulumi.Input<string>;
|
|
7
7
|
allowPromotionCodes?: pulumi.Input<boolean>;
|
|
8
8
|
managedPayments?: pulumi.Input<boolean>;
|
|
9
|
+
automaticTax?: pulumi.Input<boolean>;
|
|
10
|
+
quantity?: pulumi.Input<number>;
|
|
11
|
+
adjustableQuantity?: pulumi.Input<{
|
|
12
|
+
enabled: boolean;
|
|
13
|
+
minimum?: number;
|
|
14
|
+
maximum?: number;
|
|
15
|
+
}>;
|
|
9
16
|
}
|
|
10
17
|
export interface StripePaymentLinkProviderArgs {
|
|
11
18
|
apiKey: string;
|
|
@@ -14,10 +21,17 @@ export interface StripePaymentLinkProviderArgs {
|
|
|
14
21
|
redirectUrl: string;
|
|
15
22
|
allowPromotionCodes?: boolean;
|
|
16
23
|
managedPayments?: boolean;
|
|
24
|
+
automaticTax?: boolean;
|
|
25
|
+
quantity?: number;
|
|
26
|
+
adjustableQuantity?: {
|
|
27
|
+
enabled: boolean;
|
|
28
|
+
minimum?: number;
|
|
29
|
+
maximum?: number;
|
|
30
|
+
};
|
|
17
31
|
}
|
|
18
32
|
export declare class StripePaymentLinkProvider implements pulumi.dynamic.ResourceProvider {
|
|
19
33
|
create(inputs: StripePaymentLinkProviderArgs): Promise<pulumi.dynamic.CreateResult>;
|
|
20
|
-
diff(
|
|
34
|
+
diff(_id: string, olds: StripePaymentLinkProviderArgs, news: StripePaymentLinkProviderArgs): Promise<pulumi.dynamic.DiffResult>;
|
|
21
35
|
delete(id: string, props: StripePaymentLinkProviderArgs): Promise<void>;
|
|
22
36
|
}
|
|
23
37
|
export declare class PaymentLink extends pulumi.dynamic.Resource {
|
|
@@ -44,26 +44,37 @@ class StripePaymentLinkProvider {
|
|
|
44
44
|
async create(inputs) {
|
|
45
45
|
const stripe = new stripe_1.default(inputs.apiKey);
|
|
46
46
|
const paymentLink = await stripe.paymentLinks.create({
|
|
47
|
-
line_items: [
|
|
47
|
+
line_items: [
|
|
48
|
+
{
|
|
48
49
|
price: inputs.priceId,
|
|
49
|
-
quantity: 1,
|
|
50
|
-
|
|
51
|
-
enabled
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
50
|
+
quantity: inputs.quantity ?? 1,
|
|
51
|
+
...(inputs.adjustableQuantity !== undefined
|
|
52
|
+
? inputs.adjustableQuantity.enabled
|
|
53
|
+
? { adjustable_quantity: inputs.adjustableQuantity }
|
|
54
|
+
: {}
|
|
55
|
+
: {
|
|
56
|
+
adjustable_quantity: {
|
|
57
|
+
enabled: true,
|
|
58
|
+
minimum: 1,
|
|
59
|
+
maximum: 100,
|
|
60
|
+
},
|
|
61
|
+
}),
|
|
62
|
+
},
|
|
63
|
+
],
|
|
56
64
|
after_completion: {
|
|
57
|
-
type:
|
|
65
|
+
type: "redirect",
|
|
58
66
|
redirect: {
|
|
59
67
|
url: inputs.redirectUrl,
|
|
60
|
-
}
|
|
68
|
+
},
|
|
61
69
|
},
|
|
62
70
|
allow_promotion_codes: inputs.allowPromotionCodes,
|
|
63
|
-
...(inputs.managedPayments
|
|
71
|
+
...(inputs.managedPayments
|
|
72
|
+
? { managed_payments: { enabled: true } }
|
|
73
|
+
: {}),
|
|
74
|
+
...(inputs.automaticTax ? { automatic_tax: { enabled: true } } : {}),
|
|
64
75
|
metadata: {
|
|
65
|
-
sparks: inputs.sparksAmount
|
|
66
|
-
}
|
|
76
|
+
sparks: inputs.sparksAmount,
|
|
77
|
+
},
|
|
67
78
|
});
|
|
68
79
|
return {
|
|
69
80
|
id: paymentLink.id,
|
|
@@ -71,10 +82,10 @@ class StripePaymentLinkProvider {
|
|
|
71
82
|
...inputs,
|
|
72
83
|
paymentLinkId: paymentLink.id,
|
|
73
84
|
url: paymentLink.url,
|
|
74
|
-
}
|
|
85
|
+
},
|
|
75
86
|
};
|
|
76
87
|
}
|
|
77
|
-
async diff(
|
|
88
|
+
async diff(_id, olds, news) {
|
|
78
89
|
const replaces = [];
|
|
79
90
|
if (olds.priceId !== news.priceId)
|
|
80
91
|
replaces.push("priceId");
|
|
@@ -86,15 +97,24 @@ class StripePaymentLinkProvider {
|
|
|
86
97
|
replaces.push("allowPromotionCodes");
|
|
87
98
|
if (olds.managedPayments !== news.managedPayments)
|
|
88
99
|
replaces.push("managedPayments");
|
|
100
|
+
if (olds.automaticTax !== news.automaticTax)
|
|
101
|
+
replaces.push("automaticTax");
|
|
89
102
|
if (olds.apiKey !== news.apiKey)
|
|
90
103
|
replaces.push("apiKey");
|
|
104
|
+
if (olds.quantity !== news.quantity)
|
|
105
|
+
replaces.push("quantity");
|
|
106
|
+
if (JSON.stringify(olds.adjustableQuantity) !==
|
|
107
|
+
JSON.stringify(news.adjustableQuantity))
|
|
108
|
+
replaces.push("adjustableQuantity");
|
|
91
109
|
return {
|
|
92
110
|
changes: replaces.length > 0,
|
|
93
111
|
replaces,
|
|
94
112
|
};
|
|
95
113
|
}
|
|
96
114
|
async delete(id, props) {
|
|
97
|
-
await (0, utils_1.safeDeactivateStripeResource)("StripePaymentLinkProvider", id, props.apiKey, async (stripe) => {
|
|
115
|
+
await (0, utils_1.safeDeactivateStripeResource)("StripePaymentLinkProvider", id, props.apiKey, async (stripe) => {
|
|
116
|
+
await stripe.paymentLinks.update(id, { active: false });
|
|
117
|
+
});
|
|
98
118
|
}
|
|
99
119
|
}
|
|
100
120
|
exports.StripePaymentLinkProvider = StripePaymentLinkProvider;
|
|
@@ -108,6 +128,9 @@ class PaymentLink extends pulumi.dynamic.Resource {
|
|
|
108
128
|
redirectUrl: args.redirectUrl,
|
|
109
129
|
allowPromotionCodes: args.allowPromotionCodes,
|
|
110
130
|
managedPayments: args.managedPayments,
|
|
131
|
+
automaticTax: args.automaticTax,
|
|
132
|
+
quantity: args.quantity,
|
|
133
|
+
adjustableQuantity: args.adjustableQuantity,
|
|
111
134
|
paymentLinkId: undefined,
|
|
112
135
|
url: undefined,
|
|
113
136
|
}, opts);
|
package/dist/StripePrice.d.ts
CHANGED
|
@@ -1,19 +1,60 @@
|
|
|
1
1
|
import * as pulumi from "@pulumi/pulumi";
|
|
2
|
+
import type { BillingScheme, RecurringInterval, TaxBehavior, TiersMode, UsageType } from "./enums";
|
|
3
|
+
export interface RecurringArgs {
|
|
4
|
+
interval: pulumi.Input<RecurringInterval>;
|
|
5
|
+
intervalCount?: pulumi.Input<number>;
|
|
6
|
+
usageType?: pulumi.Input<UsageType>;
|
|
7
|
+
}
|
|
8
|
+
export interface TierArgs {
|
|
9
|
+
upTo: pulumi.Input<number | "inf">;
|
|
10
|
+
unitAmount?: pulumi.Input<number>;
|
|
11
|
+
flatAmount?: pulumi.Input<number>;
|
|
12
|
+
}
|
|
13
|
+
export interface TransformQuantityArgs {
|
|
14
|
+
divideBy: pulumi.Input<number>;
|
|
15
|
+
round: pulumi.Input<"up" | "down">;
|
|
16
|
+
}
|
|
2
17
|
export interface StripePriceArgs {
|
|
3
18
|
apiKey: pulumi.Input<string>;
|
|
4
19
|
productId: pulumi.Input<string>;
|
|
5
|
-
unitAmount: pulumi.Input<number>;
|
|
6
20
|
currency: pulumi.Input<string>;
|
|
21
|
+
unitAmount?: pulumi.Input<number>;
|
|
22
|
+
taxBehavior?: pulumi.Input<TaxBehavior>;
|
|
23
|
+
recurring?: pulumi.Input<RecurringArgs>;
|
|
24
|
+
billingScheme?: pulumi.Input<BillingScheme>;
|
|
25
|
+
tiersMode?: pulumi.Input<TiersMode>;
|
|
26
|
+
tiers?: pulumi.Input<pulumi.Input<TierArgs>[]>;
|
|
27
|
+
transformQuantity?: pulumi.Input<TransformQuantityArgs>;
|
|
28
|
+
}
|
|
29
|
+
export interface RecurringProviderArgs {
|
|
30
|
+
interval: RecurringInterval;
|
|
31
|
+
intervalCount?: number;
|
|
32
|
+
usageType?: UsageType;
|
|
33
|
+
}
|
|
34
|
+
export interface TierProviderArgs {
|
|
35
|
+
upTo: number | "inf";
|
|
36
|
+
unitAmount?: number;
|
|
37
|
+
flatAmount?: number;
|
|
38
|
+
}
|
|
39
|
+
export interface TransformQuantityProviderArgs {
|
|
40
|
+
divideBy: number;
|
|
41
|
+
round: "up" | "down";
|
|
7
42
|
}
|
|
8
43
|
export interface StripePriceProviderArgs {
|
|
9
44
|
apiKey: string;
|
|
10
45
|
productId: string;
|
|
11
|
-
unitAmount: number;
|
|
12
46
|
currency: string;
|
|
47
|
+
unitAmount?: number;
|
|
48
|
+
taxBehavior?: TaxBehavior;
|
|
49
|
+
recurring?: RecurringProviderArgs;
|
|
50
|
+
billingScheme?: BillingScheme;
|
|
51
|
+
tiersMode?: TiersMode;
|
|
52
|
+
tiers?: TierProviderArgs[];
|
|
53
|
+
transformQuantity?: TransformQuantityProviderArgs;
|
|
13
54
|
}
|
|
14
55
|
export declare class StripePriceProvider implements pulumi.dynamic.ResourceProvider {
|
|
15
56
|
create(inputs: StripePriceProviderArgs): Promise<pulumi.dynamic.CreateResult>;
|
|
16
|
-
diff(
|
|
57
|
+
diff(_id: string, olds: StripePriceProviderArgs, news: StripePriceProviderArgs): Promise<pulumi.dynamic.DiffResult>;
|
|
17
58
|
delete(id: string, props: StripePriceProviderArgs): Promise<void>;
|
|
18
59
|
}
|
|
19
60
|
export declare class Price extends pulumi.dynamic.Resource {
|
package/dist/StripePrice.js
CHANGED
|
@@ -45,18 +45,49 @@ class StripePriceProvider {
|
|
|
45
45
|
const stripe = new stripe_1.default(inputs.apiKey);
|
|
46
46
|
const price = await stripe.prices.create({
|
|
47
47
|
product: inputs.productId,
|
|
48
|
-
unit_amount: inputs.unitAmount,
|
|
49
48
|
currency: inputs.currency,
|
|
49
|
+
...(inputs.unitAmount !== undefined
|
|
50
|
+
? { unit_amount: inputs.unitAmount }
|
|
51
|
+
: {}),
|
|
52
|
+
tax_behavior: inputs.taxBehavior,
|
|
53
|
+
...(inputs.recurring
|
|
54
|
+
? {
|
|
55
|
+
recurring: {
|
|
56
|
+
interval: inputs.recurring.interval,
|
|
57
|
+
interval_count: inputs.recurring.intervalCount,
|
|
58
|
+
usage_type: inputs.recurring.usageType,
|
|
59
|
+
},
|
|
60
|
+
}
|
|
61
|
+
: {}),
|
|
62
|
+
billing_scheme: inputs.billingScheme,
|
|
63
|
+
tiers_mode: inputs.tiersMode,
|
|
64
|
+
...(inputs.tiers
|
|
65
|
+
? {
|
|
66
|
+
tiers: inputs.tiers.map((t) => ({
|
|
67
|
+
up_to: t.upTo,
|
|
68
|
+
unit_amount: t.unitAmount,
|
|
69
|
+
flat_amount: t.flatAmount,
|
|
70
|
+
})),
|
|
71
|
+
}
|
|
72
|
+
: {}),
|
|
73
|
+
...(inputs.transformQuantity
|
|
74
|
+
? {
|
|
75
|
+
transform_quantity: {
|
|
76
|
+
divide_by: inputs.transformQuantity.divideBy,
|
|
77
|
+
round: inputs.transformQuantity.round,
|
|
78
|
+
},
|
|
79
|
+
}
|
|
80
|
+
: {}),
|
|
50
81
|
});
|
|
51
82
|
return {
|
|
52
83
|
id: price.id,
|
|
53
84
|
outs: {
|
|
54
85
|
...inputs,
|
|
55
86
|
priceId: price.id,
|
|
56
|
-
}
|
|
87
|
+
},
|
|
57
88
|
};
|
|
58
89
|
}
|
|
59
|
-
async diff(
|
|
90
|
+
async diff(_id, olds, news) {
|
|
60
91
|
const replaces = [];
|
|
61
92
|
if (olds.productId !== news.productId)
|
|
62
93
|
replaces.push("productId");
|
|
@@ -64,6 +95,19 @@ class StripePriceProvider {
|
|
|
64
95
|
replaces.push("unitAmount");
|
|
65
96
|
if (olds.currency !== news.currency)
|
|
66
97
|
replaces.push("currency");
|
|
98
|
+
if (olds.taxBehavior !== news.taxBehavior)
|
|
99
|
+
replaces.push("taxBehavior");
|
|
100
|
+
if (JSON.stringify(olds.recurring) !== JSON.stringify(news.recurring))
|
|
101
|
+
replaces.push("recurring");
|
|
102
|
+
if (olds.billingScheme !== news.billingScheme)
|
|
103
|
+
replaces.push("billingScheme");
|
|
104
|
+
if (olds.tiersMode !== news.tiersMode)
|
|
105
|
+
replaces.push("tiersMode");
|
|
106
|
+
if (JSON.stringify(olds.tiers) !== JSON.stringify(news.tiers))
|
|
107
|
+
replaces.push("tiers");
|
|
108
|
+
if (JSON.stringify(olds.transformQuantity) !==
|
|
109
|
+
JSON.stringify(news.transformQuantity))
|
|
110
|
+
replaces.push("transformQuantity");
|
|
67
111
|
if (olds.apiKey !== news.apiKey)
|
|
68
112
|
replaces.push("apiKey");
|
|
69
113
|
return {
|
|
@@ -72,7 +116,9 @@ class StripePriceProvider {
|
|
|
72
116
|
};
|
|
73
117
|
}
|
|
74
118
|
async delete(id, props) {
|
|
75
|
-
await (0, utils_1.safeDeactivateStripeResource)("StripePriceProvider", id, props.apiKey, async (stripe) => {
|
|
119
|
+
await (0, utils_1.safeDeactivateStripeResource)("StripePriceProvider", id, props.apiKey, async (stripe) => {
|
|
120
|
+
await stripe.prices.update(id, { active: false });
|
|
121
|
+
});
|
|
76
122
|
}
|
|
77
123
|
}
|
|
78
124
|
exports.StripePriceProvider = StripePriceProvider;
|
package/dist/StripeProduct.d.ts
CHANGED
|
@@ -13,8 +13,8 @@ export interface StripeProductProviderArgs {
|
|
|
13
13
|
}
|
|
14
14
|
export declare class StripeProductProvider implements pulumi.dynamic.ResourceProvider {
|
|
15
15
|
create(inputs: StripeProductProviderArgs): Promise<pulumi.dynamic.CreateResult>;
|
|
16
|
-
diff(
|
|
17
|
-
update(id: string,
|
|
16
|
+
diff(_id: string, olds: StripeProductProviderArgs, news: StripeProductProviderArgs): Promise<pulumi.dynamic.DiffResult>;
|
|
17
|
+
update(id: string, _olds: StripeProductProviderArgs, news: StripeProductProviderArgs): Promise<pulumi.dynamic.UpdateResult>;
|
|
18
18
|
delete(id: string, props: StripeProductProviderArgs): Promise<void>;
|
|
19
19
|
}
|
|
20
20
|
export declare class Product extends pulumi.dynamic.Resource {
|
package/dist/StripeProduct.js
CHANGED
|
@@ -53,10 +53,10 @@ class StripeProductProvider {
|
|
|
53
53
|
outs: {
|
|
54
54
|
...inputs,
|
|
55
55
|
productId: product.id,
|
|
56
|
-
}
|
|
56
|
+
},
|
|
57
57
|
};
|
|
58
58
|
}
|
|
59
|
-
async diff(
|
|
59
|
+
async diff(_id, olds, news) {
|
|
60
60
|
const changes = [];
|
|
61
61
|
if (olds.name !== news.name)
|
|
62
62
|
changes.push("name");
|
|
@@ -71,7 +71,7 @@ class StripeProductProvider {
|
|
|
71
71
|
replaces: [], // None require replacement, all can be updated
|
|
72
72
|
};
|
|
73
73
|
}
|
|
74
|
-
async update(id,
|
|
74
|
+
async update(id, _olds, news) {
|
|
75
75
|
const stripe = new stripe_1.default(news.apiKey);
|
|
76
76
|
await stripe.products.update(id, {
|
|
77
77
|
name: news.name,
|
|
@@ -82,11 +82,13 @@ class StripeProductProvider {
|
|
|
82
82
|
outs: {
|
|
83
83
|
...news,
|
|
84
84
|
productId: id,
|
|
85
|
-
}
|
|
85
|
+
},
|
|
86
86
|
};
|
|
87
87
|
}
|
|
88
88
|
async delete(id, props) {
|
|
89
|
-
await (0, utils_1.safeDeactivateStripeResource)("StripeProductProvider", id, props.apiKey, async (stripe) => {
|
|
89
|
+
await (0, utils_1.safeDeactivateStripeResource)("StripeProductProvider", id, props.apiKey, async (stripe) => {
|
|
90
|
+
await stripe.products.update(id, { active: false });
|
|
91
|
+
});
|
|
90
92
|
}
|
|
91
93
|
}
|
|
92
94
|
exports.StripeProductProvider = StripeProductProvider;
|
package/dist/enums.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare const INF: "inf";
|
|
2
|
+
export declare enum TaxBehavior {
|
|
3
|
+
Inclusive = "inclusive",
|
|
4
|
+
Exclusive = "exclusive",
|
|
5
|
+
Unspecified = "unspecified"
|
|
6
|
+
}
|
|
7
|
+
export declare enum BillingScheme {
|
|
8
|
+
PerUnit = "per_unit",
|
|
9
|
+
Tiered = "tiered"
|
|
10
|
+
}
|
|
11
|
+
export declare enum TiersMode {
|
|
12
|
+
Graduated = "graduated",
|
|
13
|
+
Volume = "volume"
|
|
14
|
+
}
|
|
15
|
+
export declare enum RecurringInterval {
|
|
16
|
+
Day = "day",
|
|
17
|
+
Week = "week",
|
|
18
|
+
Month = "month",
|
|
19
|
+
Year = "year"
|
|
20
|
+
}
|
|
21
|
+
export declare enum UsageType {
|
|
22
|
+
Metered = "metered",
|
|
23
|
+
Licensed = "licensed"
|
|
24
|
+
}
|
package/dist/enums.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UsageType = exports.RecurringInterval = exports.TiersMode = exports.BillingScheme = exports.TaxBehavior = exports.INF = void 0;
|
|
4
|
+
exports.INF = "inf";
|
|
5
|
+
var TaxBehavior;
|
|
6
|
+
(function (TaxBehavior) {
|
|
7
|
+
TaxBehavior["Inclusive"] = "inclusive";
|
|
8
|
+
TaxBehavior["Exclusive"] = "exclusive";
|
|
9
|
+
TaxBehavior["Unspecified"] = "unspecified";
|
|
10
|
+
})(TaxBehavior || (exports.TaxBehavior = TaxBehavior = {}));
|
|
11
|
+
var BillingScheme;
|
|
12
|
+
(function (BillingScheme) {
|
|
13
|
+
BillingScheme["PerUnit"] = "per_unit";
|
|
14
|
+
BillingScheme["Tiered"] = "tiered";
|
|
15
|
+
})(BillingScheme || (exports.BillingScheme = BillingScheme = {}));
|
|
16
|
+
var TiersMode;
|
|
17
|
+
(function (TiersMode) {
|
|
18
|
+
TiersMode["Graduated"] = "graduated";
|
|
19
|
+
TiersMode["Volume"] = "volume";
|
|
20
|
+
})(TiersMode || (exports.TiersMode = TiersMode = {}));
|
|
21
|
+
var RecurringInterval;
|
|
22
|
+
(function (RecurringInterval) {
|
|
23
|
+
RecurringInterval["Day"] = "day";
|
|
24
|
+
RecurringInterval["Week"] = "week";
|
|
25
|
+
RecurringInterval["Month"] = "month";
|
|
26
|
+
RecurringInterval["Year"] = "year";
|
|
27
|
+
})(RecurringInterval || (exports.RecurringInterval = RecurringInterval = {}));
|
|
28
|
+
var UsageType;
|
|
29
|
+
(function (UsageType) {
|
|
30
|
+
UsageType["Metered"] = "metered";
|
|
31
|
+
UsageType["Licensed"] = "licensed";
|
|
32
|
+
})(UsageType || (exports.UsageType = UsageType = {}));
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./enums"), exports);
|
|
17
18
|
__exportStar(require("./StripePaymentLink"), exports);
|
|
18
|
-
__exportStar(require("./StripeProduct"), exports);
|
|
19
19
|
__exportStar(require("./StripePrice"), exports);
|
|
20
|
+
__exportStar(require("./StripeProduct"), exports);
|
package/dist/utils.d.ts
CHANGED
|
File without changes
|
package/dist/utils.js
CHANGED
|
@@ -11,7 +11,9 @@ const stripe_1 = __importDefault(require("stripe"));
|
|
|
11
11
|
* Prevents Pulumi state engine crashes when a resource cannot be deactivated.
|
|
12
12
|
*/
|
|
13
13
|
async function safeDeactivateStripeResource(providerName, resourceId, apiKeyFromState, deactivateFn) {
|
|
14
|
-
const apiKey = apiKeyFromState ||
|
|
14
|
+
const apiKey = apiKeyFromState ||
|
|
15
|
+
process.env.STRIPE_SECRET_KEY ||
|
|
16
|
+
process.env.STRIPE_API_KEY;
|
|
15
17
|
if (!apiKey) {
|
|
16
18
|
console.warn(`[${providerName}] Skipping deletion of ${resourceId} due to missing apiKey in state and environment variables.`);
|
|
17
19
|
return;
|
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,36 +1,45 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
2
|
+
"name": "@efaj/pulumi-dynamic-stripe",
|
|
3
|
+
"version": "0.2.0-022a8be",
|
|
4
|
+
"description": "A Pulumi Dynamic Provider for Stripe, supporting modern features like Payment Links.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"pulumi",
|
|
7
|
+
"stripe"
|
|
8
|
+
],
|
|
9
|
+
"homepage": "https://github.com/efaj/pulumi-dynamic-stripe#readme",
|
|
10
|
+
"bugs": {
|
|
11
|
+
"url": "https://github.com/efaj/pulumi-dynamic-stripe/issues"
|
|
12
|
+
},
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "git+https://github.com/efaj/pulumi-dynamic-stripe.git"
|
|
16
|
+
},
|
|
17
|
+
"license": "MIT",
|
|
18
|
+
"author": "Emmanuel Abarca Jimenez <efaj@crenet.games> (https://crenet.games/emmanuel)",
|
|
19
|
+
"type": "commonjs",
|
|
20
|
+
"main": "dist/index.js",
|
|
21
|
+
"types": "dist/index.d.ts",
|
|
22
|
+
"publishConfig": {
|
|
23
|
+
"access": "public"
|
|
24
|
+
},
|
|
25
|
+
"scripts": {
|
|
26
|
+
"build": "tsc",
|
|
27
|
+
"prepare": "tsc",
|
|
28
|
+
"test": "vitest run tests/index.test.ts",
|
|
29
|
+
"test:integration": "vitest run tests/integration.test.ts",
|
|
30
|
+
"lint": "biome check .",
|
|
31
|
+
"lint:fix": "biome check --write .",
|
|
32
|
+
"format": "biome format --write ."
|
|
33
|
+
},
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"@pulumi/pulumi": "^3.259.0",
|
|
36
|
+
"stripe": "^22.6.0"
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@biomejs/biome": "2.5.11",
|
|
40
|
+
"@types/node": "^26.4.0",
|
|
41
|
+
"typescript": "^6.0.3",
|
|
42
|
+
"vite": "^6.4.3",
|
|
43
|
+
"vitest": "^3.2.7"
|
|
44
|
+
}
|
|
45
|
+
}
|