@activepieces/piece-stripe 0.5.5 → 0.5.6
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@activepieces/piece-stripe",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.6",
|
|
4
4
|
"dependencies": {
|
|
5
5
|
"@ai-sdk/anthropic": "1.2.12",
|
|
6
6
|
"@ai-sdk/google": "1.2.19",
|
|
@@ -15,10 +15,11 @@
|
|
|
15
15
|
"mime-types": "2.1.35",
|
|
16
16
|
"nanoid": "3.3.8",
|
|
17
17
|
"semver": "7.6.0",
|
|
18
|
+
"stripe": "18.2.1",
|
|
18
19
|
"zod": "3.25.76",
|
|
19
|
-
"@activepieces/pieces-common": "0.6.
|
|
20
|
-
"@activepieces/pieces-framework": "0.
|
|
21
|
-
"@activepieces/shared": "0.17.
|
|
20
|
+
"@activepieces/pieces-common": "0.6.1",
|
|
21
|
+
"@activepieces/pieces-framework": "0.17.0",
|
|
22
|
+
"@activepieces/shared": "0.17.6",
|
|
22
23
|
"tslib": "2.8.1"
|
|
23
24
|
},
|
|
24
25
|
"overrides": {
|
|
@@ -27,8 +28,7 @@
|
|
|
27
28
|
},
|
|
28
29
|
"vite": {
|
|
29
30
|
"rollup": "npm:@rollup/wasm-node"
|
|
30
|
-
}
|
|
31
|
-
"stylus": "0.0.1-security"
|
|
31
|
+
}
|
|
32
32
|
},
|
|
33
33
|
"resolutions": {
|
|
34
34
|
"rollup": "npm:@rollup/wasm-node"
|
package/src/index.js
CHANGED
|
@@ -13,6 +13,7 @@ const new_customer_1 = require("./lib/trigger/new-customer");
|
|
|
13
13
|
const new_payment_1 = require("./lib/trigger/new-payment");
|
|
14
14
|
const new_subscription_1 = require("./lib/trigger/new-subscription");
|
|
15
15
|
const payment_failed_1 = require("./lib/trigger/payment-failed");
|
|
16
|
+
const search_subscriptions_1 = require("./lib/actions/search-subscriptions");
|
|
16
17
|
exports.stripeAuth = pieces_framework_1.PieceAuth.SecretText({
|
|
17
18
|
displayName: 'Secret API Key',
|
|
18
19
|
required: true,
|
|
@@ -30,6 +31,7 @@ exports.stripe = (0, pieces_framework_1.createPiece)({
|
|
|
30
31
|
create_customer_1.stripeCreateCustomer,
|
|
31
32
|
create_invoice_1.stripeCreateInvoice,
|
|
32
33
|
search_customer_1.stripeSearchCustomer,
|
|
34
|
+
search_subscriptions_1.stripeSearchSubscriptions,
|
|
33
35
|
retrieve_customer_1.stripeRetrieveCustomer,
|
|
34
36
|
(0, pieces_common_1.createCustomApiCallAction)({
|
|
35
37
|
baseUrl: () => 'https://api.stripe.com/v1',
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/pieces/community/stripe/src/index.ts"],"names":[],"mappings":";;;;AAAA,+DAAwE;AACxE,qEAAwE;AACxE,iDAAqD;AACrD,mEAAqE;AACrE,iEAAmE;AACnE,uEAAyE;AACzE,mEAAqE;AACrE,6DAA+D;AAC/D,2DAA6D;AAC7D,qEAAuE;AACvE,iEAAmE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/pieces/community/stripe/src/index.ts"],"names":[],"mappings":";;;;AAAA,+DAAwE;AACxE,qEAAwE;AACxE,iDAAqD;AACrD,mEAAqE;AACrE,iEAAmE;AACnE,uEAAyE;AACzE,mEAAqE;AACrE,6DAA+D;AAC/D,2DAA6D;AAC7D,qEAAuE;AACvE,iEAAmE;AACnE,6EAA+E;AAElE,QAAA,UAAU,GAAG,4BAAS,CAAC,UAAU,CAAC;IAC7C,WAAW,EAAE,gBAAgB;IAC7B,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,gDAAgD;CAC9D,CAAC,CAAC;AAEU,QAAA,MAAM,GAAG,IAAA,8BAAW,EAAC;IAChC,WAAW,EAAE,QAAQ;IACrB,WAAW,EAAE,mDAAmD;IAEhE,uBAAuB,EAAE,QAAQ;IACjC,OAAO,EAAE,gDAAgD;IACzD,OAAO,EAAE,CAAC,UAAU,EAAC,SAAS,EAAC,YAAY,EAAC,WAAW,EAAC,sBAAsB,EAAC,eAAe,EAAC,UAAU,CAAC;IAC1G,UAAU,EAAE,CAAC,sBAAa,CAAC,QAAQ,EAAE,sBAAa,CAAC,kBAAkB,CAAC;IACtE,IAAI,EAAE,kBAAU;IAChB,OAAO,EAAE;QACP,sCAAoB;QACpB,oCAAmB;QACnB,sCAAoB;QACpB,gDAAyB;QACzB,0CAAsB;QACtB,IAAA,yCAAyB,EAAC;YACxB,OAAO,EAAE,GAAG,EAAE,CAAC,2BAA2B;YAC1C,IAAI,EAAE,kBAAU;YAChB,WAAW,EAAE,CAAO,IAAI,EAAE,EAAE;gBAAC,OAAA,CAAC;oBAC5B,aAAa,EAAE,UAAU,IAAI,EAAE;iBAChC,CAAC,CAAA;cAAA;SACH,CAAC;KACH;IACD,QAAQ,EAAE;QACR,8BAAgB;QAChB,gCAAiB;QACjB,oCAAmB;QACnB,wCAAqB;KACtB;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const stripeSearchSubscriptions: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
|
|
2
|
+
price_ids: import("@activepieces/pieces-framework").LongTextProperty<false>;
|
|
3
|
+
status: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
|
|
4
|
+
customer_id: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
5
|
+
created_after: import("@activepieces/pieces-framework").DateTimeProperty<false>;
|
|
6
|
+
created_before: import("@activepieces/pieces-framework").DateTimeProperty<false>;
|
|
7
|
+
limit: import("@activepieces/pieces-framework").NumberProperty<false>;
|
|
8
|
+
fetch_all: import("@activepieces/pieces-framework").CheckboxProperty<false>;
|
|
9
|
+
include_customer_details: import("@activepieces/pieces-framework").CheckboxProperty<false>;
|
|
10
|
+
}>;
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.stripeSearchSubscriptions = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
+
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
7
|
+
const __1 = require("../..");
|
|
8
|
+
const common_1 = require("../common");
|
|
9
|
+
const statusOptions = [
|
|
10
|
+
{ label: 'All Statuses', value: '' },
|
|
11
|
+
{ label: 'Active', value: 'active' },
|
|
12
|
+
{ label: 'Past Due', value: 'past_due' },
|
|
13
|
+
{ label: 'Unpaid', value: 'unpaid' },
|
|
14
|
+
{ label: 'Canceled', value: 'canceled' },
|
|
15
|
+
{ label: 'Incomplete', value: 'incomplete' },
|
|
16
|
+
{ label: 'Incomplete Expired', value: 'incomplete_expired' },
|
|
17
|
+
{ label: 'Trialing', value: 'trialing' },
|
|
18
|
+
{ label: 'Paused', value: 'paused' },
|
|
19
|
+
];
|
|
20
|
+
exports.stripeSearchSubscriptions = (0, pieces_framework_1.createAction)({
|
|
21
|
+
name: 'search_subscriptions',
|
|
22
|
+
auth: __1.stripeAuth,
|
|
23
|
+
displayName: 'Search Subscriptions',
|
|
24
|
+
description: 'Search for subscriptions by price ID, status, customer ID and other filters, including customer details',
|
|
25
|
+
props: {
|
|
26
|
+
price_ids: pieces_framework_1.Property.LongText({
|
|
27
|
+
displayName: 'Price IDs',
|
|
28
|
+
description: 'Comma-separated list of price IDs to filter by (e.g., price_1ABC123, price_2DEF456)',
|
|
29
|
+
required: false,
|
|
30
|
+
}),
|
|
31
|
+
status: pieces_framework_1.Property.StaticDropdown({
|
|
32
|
+
displayName: 'Subscription Status',
|
|
33
|
+
description: 'Filter by subscription status',
|
|
34
|
+
required: false,
|
|
35
|
+
options: {
|
|
36
|
+
options: statusOptions
|
|
37
|
+
},
|
|
38
|
+
}),
|
|
39
|
+
customer_id: pieces_framework_1.Property.ShortText({
|
|
40
|
+
displayName: 'Customer ID',
|
|
41
|
+
description: 'Filter by specific customer ID (optional)',
|
|
42
|
+
required: false,
|
|
43
|
+
}),
|
|
44
|
+
created_after: pieces_framework_1.Property.DateTime({
|
|
45
|
+
displayName: 'Created After',
|
|
46
|
+
description: 'Filter subscriptions created after this date (YYYY-MM-DD format)',
|
|
47
|
+
required: false,
|
|
48
|
+
}),
|
|
49
|
+
created_before: pieces_framework_1.Property.DateTime({
|
|
50
|
+
displayName: 'Created Before',
|
|
51
|
+
description: 'Filter subscriptions created before this date (YYYY-MM-DD format)',
|
|
52
|
+
required: false,
|
|
53
|
+
}),
|
|
54
|
+
limit: pieces_framework_1.Property.Number({
|
|
55
|
+
displayName: 'Limit',
|
|
56
|
+
description: 'Maximum number of subscriptions to return (default: 100, set to 0 for all)',
|
|
57
|
+
required: false,
|
|
58
|
+
defaultValue: 100,
|
|
59
|
+
}),
|
|
60
|
+
fetch_all: pieces_framework_1.Property.Checkbox({
|
|
61
|
+
displayName: 'Fetch All Results',
|
|
62
|
+
description: 'Fetch all matching subscriptions (ignores limit, may take longer for large datasets)',
|
|
63
|
+
required: false,
|
|
64
|
+
defaultValue: false,
|
|
65
|
+
}),
|
|
66
|
+
include_customer_details: pieces_framework_1.Property.Checkbox({
|
|
67
|
+
displayName: 'Include Customer Details',
|
|
68
|
+
description: 'Fetch detailed customer information for each subscription',
|
|
69
|
+
required: false,
|
|
70
|
+
defaultValue: true,
|
|
71
|
+
}),
|
|
72
|
+
},
|
|
73
|
+
run(context) {
|
|
74
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
75
|
+
const { price_ids, status, customer_id, created_after, created_before, limit = 100, fetch_all = false, include_customer_details = true, } = context.propsValue;
|
|
76
|
+
const buildQueryParams = (startingAfter) => {
|
|
77
|
+
const queryParams = new URLSearchParams();
|
|
78
|
+
queryParams.append('limit', '100');
|
|
79
|
+
queryParams.append('expand[]', 'data.items.data.price');
|
|
80
|
+
if (include_customer_details) {
|
|
81
|
+
queryParams.append('expand[]', 'data.customer');
|
|
82
|
+
}
|
|
83
|
+
if (status) {
|
|
84
|
+
queryParams.append('status', status);
|
|
85
|
+
}
|
|
86
|
+
if (customer_id) {
|
|
87
|
+
queryParams.append('customer', customer_id);
|
|
88
|
+
}
|
|
89
|
+
if (created_after) {
|
|
90
|
+
const afterTimestamp = Math.floor(new Date(created_after).getTime() / 1000);
|
|
91
|
+
queryParams.append('created[gte]', afterTimestamp.toString());
|
|
92
|
+
}
|
|
93
|
+
if (created_before) {
|
|
94
|
+
const beforeTimestamp = Math.floor(new Date(created_before).getTime() / 1000);
|
|
95
|
+
queryParams.append('created[lte]', beforeTimestamp.toString());
|
|
96
|
+
}
|
|
97
|
+
if (startingAfter) {
|
|
98
|
+
queryParams.append('starting_after', startingAfter);
|
|
99
|
+
}
|
|
100
|
+
return queryParams;
|
|
101
|
+
};
|
|
102
|
+
let allSubscriptions = [];
|
|
103
|
+
let hasMore = true;
|
|
104
|
+
let startingAfter;
|
|
105
|
+
let requestCount = 0;
|
|
106
|
+
const maxRequests = fetch_all ? 50 : Math.ceil(limit / 100);
|
|
107
|
+
while (hasMore && requestCount < maxRequests) {
|
|
108
|
+
const queryParams = buildQueryParams(startingAfter);
|
|
109
|
+
const subscriptionsResponse = yield pieces_common_1.httpClient.sendRequest({
|
|
110
|
+
method: pieces_common_1.HttpMethod.GET,
|
|
111
|
+
url: `${common_1.stripeCommon.baseUrl}/subscriptions?${queryParams.toString()}`,
|
|
112
|
+
headers: {
|
|
113
|
+
Authorization: 'Bearer ' + context.auth,
|
|
114
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
115
|
+
},
|
|
116
|
+
});
|
|
117
|
+
if (!subscriptionsResponse.body) {
|
|
118
|
+
throw new Error('Failed to fetch subscriptions from Stripe');
|
|
119
|
+
}
|
|
120
|
+
const subscriptions = subscriptionsResponse.body.data;
|
|
121
|
+
allSubscriptions = allSubscriptions.concat(subscriptions);
|
|
122
|
+
hasMore = subscriptionsResponse.body.has_more;
|
|
123
|
+
requestCount++;
|
|
124
|
+
if (hasMore && subscriptions.length > 0) {
|
|
125
|
+
startingAfter = subscriptions[subscriptions.length - 1].id;
|
|
126
|
+
}
|
|
127
|
+
if (!fetch_all && allSubscriptions.length >= limit) {
|
|
128
|
+
allSubscriptions = allSubscriptions.slice(0, limit);
|
|
129
|
+
break;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
let filteredSubscriptions = allSubscriptions;
|
|
133
|
+
if (price_ids && price_ids.trim()) {
|
|
134
|
+
const priceIdArray = price_ids
|
|
135
|
+
.split(',')
|
|
136
|
+
.map(id => id.trim())
|
|
137
|
+
.filter(id => id.length > 0);
|
|
138
|
+
if (priceIdArray.length > 0) {
|
|
139
|
+
filteredSubscriptions = filteredSubscriptions.filter((subscription) => {
|
|
140
|
+
return subscription.items.data.some((item) => item.price && typeof item.price === 'object' && priceIdArray.includes(item.price.id));
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
const finalSubscriptions = yield Promise.all(filteredSubscriptions.map((subscription) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
145
|
+
const resultSubscription = Object.assign({}, subscription);
|
|
146
|
+
if (include_customer_details) {
|
|
147
|
+
if (typeof subscription.customer === 'object' && subscription.customer !== null && !('deleted' in subscription.customer && subscription.customer.deleted)) {
|
|
148
|
+
resultSubscription.customer = subscription.customer;
|
|
149
|
+
}
|
|
150
|
+
else if (typeof subscription.customer === 'string') {
|
|
151
|
+
try {
|
|
152
|
+
const customerResponse = yield pieces_common_1.httpClient.sendRequest({
|
|
153
|
+
method: pieces_common_1.HttpMethod.GET,
|
|
154
|
+
url: `${common_1.stripeCommon.baseUrl}/customers/${subscription.customer}`,
|
|
155
|
+
headers: {
|
|
156
|
+
Authorization: 'Bearer ' + context.auth,
|
|
157
|
+
},
|
|
158
|
+
});
|
|
159
|
+
resultSubscription.customer = customerResponse.body;
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
console.warn(`Failed to fetch customer details for ${subscription.customer}:`, error);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return resultSubscription;
|
|
167
|
+
})));
|
|
168
|
+
return {
|
|
169
|
+
success: true,
|
|
170
|
+
count: finalSubscriptions.length,
|
|
171
|
+
total_fetched: allSubscriptions.length,
|
|
172
|
+
requests_made: requestCount,
|
|
173
|
+
has_more_available: hasMore && !fetch_all,
|
|
174
|
+
pagination_info: {
|
|
175
|
+
limit_requested: fetch_all ? 'All' : limit,
|
|
176
|
+
fetch_all_enabled: fetch_all,
|
|
177
|
+
max_requests_limit: maxRequests,
|
|
178
|
+
},
|
|
179
|
+
subscriptions: finalSubscriptions,
|
|
180
|
+
filters_applied: {
|
|
181
|
+
price_ids: price_ids ? price_ids.split(',').map(id => id.trim()).filter(id => id.length > 0) : null,
|
|
182
|
+
status: status || null,
|
|
183
|
+
customer_id: customer_id || null,
|
|
184
|
+
created_after: created_after || null,
|
|
185
|
+
created_before: created_before || null,
|
|
186
|
+
limit: limit,
|
|
187
|
+
fetch_all: fetch_all,
|
|
188
|
+
include_customer_details: include_customer_details,
|
|
189
|
+
},
|
|
190
|
+
};
|
|
191
|
+
});
|
|
192
|
+
},
|
|
193
|
+
});
|
|
194
|
+
//# sourceMappingURL=search-subscriptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-subscriptions.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/stripe/src/lib/actions/search-subscriptions.ts"],"names":[],"mappings":"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"}
|