@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.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.0",
20
- "@activepieces/pieces-framework": "0.15.0",
21
- "@activepieces/shared": "0.17.2",
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;AAEtD,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,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"}
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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"}