@automate.ax/catalog 0.83.3 → 0.85.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,262 @@
1
+ export declare const stripeTriggerDefinitions: {
2
+ readonly stripeChargeDisputeClosed: {
3
+ readonly account: {
4
+ readonly connectionOptions: readonly [{
5
+ readonly connectionMethodId: "api-key";
6
+ readonly requiredScopes: readonly [];
7
+ }];
8
+ readonly serviceId: "stripe";
9
+ };
10
+ readonly type: "stripe.charge.dispute.closed";
11
+ };
12
+ readonly stripeChargeDisputeCreated: {
13
+ readonly account: {
14
+ readonly connectionOptions: readonly [{
15
+ readonly connectionMethodId: "api-key";
16
+ readonly requiredScopes: readonly [];
17
+ }];
18
+ readonly serviceId: "stripe";
19
+ };
20
+ readonly type: "stripe.charge.dispute.created";
21
+ };
22
+ readonly stripeCheckoutSessionCompleted: {
23
+ readonly account: {
24
+ readonly connectionOptions: readonly [{
25
+ readonly connectionMethodId: "api-key";
26
+ readonly requiredScopes: readonly [];
27
+ }];
28
+ readonly serviceId: "stripe";
29
+ };
30
+ readonly type: "stripe.checkout.session.completed";
31
+ };
32
+ readonly stripeCheckoutSessionAsyncPaymentFailed: {
33
+ readonly account: {
34
+ readonly connectionOptions: readonly [{
35
+ readonly connectionMethodId: "api-key";
36
+ readonly requiredScopes: readonly [];
37
+ }];
38
+ readonly serviceId: "stripe";
39
+ };
40
+ readonly type: "stripe.checkout.session.asyncPaymentFailed";
41
+ };
42
+ readonly stripeCheckoutSessionAsyncPaymentSucceeded: {
43
+ readonly account: {
44
+ readonly connectionOptions: readonly [{
45
+ readonly connectionMethodId: "api-key";
46
+ readonly requiredScopes: readonly [];
47
+ }];
48
+ readonly serviceId: "stripe";
49
+ };
50
+ readonly type: "stripe.checkout.session.asyncPaymentSucceeded";
51
+ };
52
+ readonly stripeCheckoutSessionExpired: {
53
+ readonly account: {
54
+ readonly connectionOptions: readonly [{
55
+ readonly connectionMethodId: "api-key";
56
+ readonly requiredScopes: readonly [];
57
+ }];
58
+ readonly serviceId: "stripe";
59
+ };
60
+ readonly type: "stripe.checkout.session.expired";
61
+ };
62
+ readonly stripeCustomerCreated: {
63
+ readonly account: {
64
+ readonly connectionOptions: readonly [{
65
+ readonly connectionMethodId: "api-key";
66
+ readonly requiredScopes: readonly [];
67
+ }];
68
+ readonly serviceId: "stripe";
69
+ };
70
+ readonly type: "stripe.customer.created";
71
+ };
72
+ readonly stripeCustomerDeleted: {
73
+ readonly account: {
74
+ readonly connectionOptions: readonly [{
75
+ readonly connectionMethodId: "api-key";
76
+ readonly requiredScopes: readonly [];
77
+ }];
78
+ readonly serviceId: "stripe";
79
+ };
80
+ readonly type: "stripe.customer.deleted";
81
+ };
82
+ readonly stripeCustomerSubscriptionCreated: {
83
+ readonly account: {
84
+ readonly connectionOptions: readonly [{
85
+ readonly connectionMethodId: "api-key";
86
+ readonly requiredScopes: readonly [];
87
+ }];
88
+ readonly serviceId: "stripe";
89
+ };
90
+ readonly type: "stripe.customer.subscription.created";
91
+ };
92
+ readonly stripeCustomerSubscriptionDeleted: {
93
+ readonly account: {
94
+ readonly connectionOptions: readonly [{
95
+ readonly connectionMethodId: "api-key";
96
+ readonly requiredScopes: readonly [];
97
+ }];
98
+ readonly serviceId: "stripe";
99
+ };
100
+ readonly type: "stripe.customer.subscription.deleted";
101
+ };
102
+ readonly stripeCustomerSubscriptionTrialWillEnd: {
103
+ readonly account: {
104
+ readonly connectionOptions: readonly [{
105
+ readonly connectionMethodId: "api-key";
106
+ readonly requiredScopes: readonly [];
107
+ }];
108
+ readonly serviceId: "stripe";
109
+ };
110
+ readonly type: "stripe.customer.subscription.trialWillEnd";
111
+ };
112
+ readonly stripeCustomerSubscriptionUpdated: {
113
+ readonly account: {
114
+ readonly connectionOptions: readonly [{
115
+ readonly connectionMethodId: "api-key";
116
+ readonly requiredScopes: readonly [];
117
+ }];
118
+ readonly serviceId: "stripe";
119
+ };
120
+ readonly type: "stripe.customer.subscription.updated";
121
+ };
122
+ readonly stripeCustomerUpdated: {
123
+ readonly account: {
124
+ readonly connectionOptions: readonly [{
125
+ readonly connectionMethodId: "api-key";
126
+ readonly requiredScopes: readonly [];
127
+ }];
128
+ readonly serviceId: "stripe";
129
+ };
130
+ readonly type: "stripe.customer.updated";
131
+ };
132
+ readonly stripeEvent: {
133
+ readonly account: {
134
+ readonly connectionOptions: readonly [{
135
+ readonly connectionMethodId: "api-key";
136
+ readonly requiredScopes: readonly [];
137
+ }];
138
+ readonly serviceId: "stripe";
139
+ };
140
+ readonly type: "stripe.event";
141
+ };
142
+ readonly stripeInvoiceFinalized: {
143
+ readonly account: {
144
+ readonly connectionOptions: readonly [{
145
+ readonly connectionMethodId: "api-key";
146
+ readonly requiredScopes: readonly [];
147
+ }];
148
+ readonly serviceId: "stripe";
149
+ };
150
+ readonly type: "stripe.invoice.finalized";
151
+ };
152
+ readonly stripeInvoiceOverdue: {
153
+ readonly account: {
154
+ readonly connectionOptions: readonly [{
155
+ readonly connectionMethodId: "api-key";
156
+ readonly requiredScopes: readonly [];
157
+ }];
158
+ readonly serviceId: "stripe";
159
+ };
160
+ readonly type: "stripe.invoice.overdue";
161
+ };
162
+ readonly stripeInvoicePaid: {
163
+ readonly account: {
164
+ readonly connectionOptions: readonly [{
165
+ readonly connectionMethodId: "api-key";
166
+ readonly requiredScopes: readonly [];
167
+ }];
168
+ readonly serviceId: "stripe";
169
+ };
170
+ readonly type: "stripe.invoice.paid";
171
+ };
172
+ readonly stripeInvoicePaymentFailed: {
173
+ readonly account: {
174
+ readonly connectionOptions: readonly [{
175
+ readonly connectionMethodId: "api-key";
176
+ readonly requiredScopes: readonly [];
177
+ }];
178
+ readonly serviceId: "stripe";
179
+ };
180
+ readonly type: "stripe.invoice.paymentFailed";
181
+ };
182
+ readonly stripeInvoiceVoided: {
183
+ readonly account: {
184
+ readonly connectionOptions: readonly [{
185
+ readonly connectionMethodId: "api-key";
186
+ readonly requiredScopes: readonly [];
187
+ }];
188
+ readonly serviceId: "stripe";
189
+ };
190
+ readonly type: "stripe.invoice.voided";
191
+ };
192
+ readonly stripePaymentIntentCanceled: {
193
+ readonly account: {
194
+ readonly connectionOptions: readonly [{
195
+ readonly connectionMethodId: "api-key";
196
+ readonly requiredScopes: readonly [];
197
+ }];
198
+ readonly serviceId: "stripe";
199
+ };
200
+ readonly type: "stripe.paymentIntent.canceled";
201
+ };
202
+ readonly stripePaymentIntentPaymentFailed: {
203
+ readonly account: {
204
+ readonly connectionOptions: readonly [{
205
+ readonly connectionMethodId: "api-key";
206
+ readonly requiredScopes: readonly [];
207
+ }];
208
+ readonly serviceId: "stripe";
209
+ };
210
+ readonly type: "stripe.paymentIntent.paymentFailed";
211
+ };
212
+ readonly stripePaymentIntentSucceeded: {
213
+ readonly account: {
214
+ readonly connectionOptions: readonly [{
215
+ readonly connectionMethodId: "api-key";
216
+ readonly requiredScopes: readonly [];
217
+ }];
218
+ readonly serviceId: "stripe";
219
+ };
220
+ readonly type: "stripe.paymentIntent.succeeded";
221
+ };
222
+ readonly stripePayoutFailed: {
223
+ readonly account: {
224
+ readonly connectionOptions: readonly [{
225
+ readonly connectionMethodId: "api-key";
226
+ readonly requiredScopes: readonly [];
227
+ }];
228
+ readonly serviceId: "stripe";
229
+ };
230
+ readonly type: "stripe.payout.failed";
231
+ };
232
+ readonly stripePayoutPaid: {
233
+ readonly account: {
234
+ readonly connectionOptions: readonly [{
235
+ readonly connectionMethodId: "api-key";
236
+ readonly requiredScopes: readonly [];
237
+ }];
238
+ readonly serviceId: "stripe";
239
+ };
240
+ readonly type: "stripe.payout.paid";
241
+ };
242
+ readonly stripeRefundCreated: {
243
+ readonly account: {
244
+ readonly connectionOptions: readonly [{
245
+ readonly connectionMethodId: "api-key";
246
+ readonly requiredScopes: readonly [];
247
+ }];
248
+ readonly serviceId: "stripe";
249
+ };
250
+ readonly type: "stripe.refund.created";
251
+ };
252
+ readonly stripeRefundFailed: {
253
+ readonly account: {
254
+ readonly connectionOptions: readonly [{
255
+ readonly connectionMethodId: "api-key";
256
+ readonly requiredScopes: readonly [];
257
+ }];
258
+ readonly serviceId: "stripe";
259
+ };
260
+ readonly type: "stripe.refund.failed";
261
+ };
262
+ };
@@ -0,0 +1,107 @@
1
+ const STRIPE_ACCOUNT = {
2
+ connectionOptions: [{ connectionMethodId: "api-key", requiredScopes: [] }],
3
+ serviceId: "stripe",
4
+ };
5
+ export const stripeTriggerDefinitions = {
6
+ stripeChargeDisputeClosed: {
7
+ account: STRIPE_ACCOUNT,
8
+ type: "stripe.charge.dispute.closed",
9
+ },
10
+ stripeChargeDisputeCreated: {
11
+ account: STRIPE_ACCOUNT,
12
+ type: "stripe.charge.dispute.created",
13
+ },
14
+ stripeCheckoutSessionCompleted: {
15
+ account: STRIPE_ACCOUNT,
16
+ type: "stripe.checkout.session.completed",
17
+ },
18
+ stripeCheckoutSessionAsyncPaymentFailed: {
19
+ account: STRIPE_ACCOUNT,
20
+ type: "stripe.checkout.session.asyncPaymentFailed",
21
+ },
22
+ stripeCheckoutSessionAsyncPaymentSucceeded: {
23
+ account: STRIPE_ACCOUNT,
24
+ type: "stripe.checkout.session.asyncPaymentSucceeded",
25
+ },
26
+ stripeCheckoutSessionExpired: {
27
+ account: STRIPE_ACCOUNT,
28
+ type: "stripe.checkout.session.expired",
29
+ },
30
+ stripeCustomerCreated: {
31
+ account: STRIPE_ACCOUNT,
32
+ type: "stripe.customer.created",
33
+ },
34
+ stripeCustomerDeleted: {
35
+ account: STRIPE_ACCOUNT,
36
+ type: "stripe.customer.deleted",
37
+ },
38
+ stripeCustomerSubscriptionCreated: {
39
+ account: STRIPE_ACCOUNT,
40
+ type: "stripe.customer.subscription.created",
41
+ },
42
+ stripeCustomerSubscriptionDeleted: {
43
+ account: STRIPE_ACCOUNT,
44
+ type: "stripe.customer.subscription.deleted",
45
+ },
46
+ stripeCustomerSubscriptionTrialWillEnd: {
47
+ account: STRIPE_ACCOUNT,
48
+ type: "stripe.customer.subscription.trialWillEnd",
49
+ },
50
+ stripeCustomerSubscriptionUpdated: {
51
+ account: STRIPE_ACCOUNT,
52
+ type: "stripe.customer.subscription.updated",
53
+ },
54
+ stripeCustomerUpdated: {
55
+ account: STRIPE_ACCOUNT,
56
+ type: "stripe.customer.updated",
57
+ },
58
+ stripeEvent: { account: STRIPE_ACCOUNT, type: "stripe.event" },
59
+ stripeInvoiceFinalized: {
60
+ account: STRIPE_ACCOUNT,
61
+ type: "stripe.invoice.finalized",
62
+ },
63
+ stripeInvoiceOverdue: {
64
+ account: STRIPE_ACCOUNT,
65
+ type: "stripe.invoice.overdue",
66
+ },
67
+ stripeInvoicePaid: {
68
+ account: STRIPE_ACCOUNT,
69
+ type: "stripe.invoice.paid",
70
+ },
71
+ stripeInvoicePaymentFailed: {
72
+ account: STRIPE_ACCOUNT,
73
+ type: "stripe.invoice.paymentFailed",
74
+ },
75
+ stripeInvoiceVoided: {
76
+ account: STRIPE_ACCOUNT,
77
+ type: "stripe.invoice.voided",
78
+ },
79
+ stripePaymentIntentCanceled: {
80
+ account: STRIPE_ACCOUNT,
81
+ type: "stripe.paymentIntent.canceled",
82
+ },
83
+ stripePaymentIntentPaymentFailed: {
84
+ account: STRIPE_ACCOUNT,
85
+ type: "stripe.paymentIntent.paymentFailed",
86
+ },
87
+ stripePaymentIntentSucceeded: {
88
+ account: STRIPE_ACCOUNT,
89
+ type: "stripe.paymentIntent.succeeded",
90
+ },
91
+ stripePayoutFailed: {
92
+ account: STRIPE_ACCOUNT,
93
+ type: "stripe.payout.failed",
94
+ },
95
+ stripePayoutPaid: {
96
+ account: STRIPE_ACCOUNT,
97
+ type: "stripe.payout.paid",
98
+ },
99
+ stripeRefundCreated: {
100
+ account: STRIPE_ACCOUNT,
101
+ type: "stripe.refund.created",
102
+ },
103
+ stripeRefundFailed: {
104
+ account: STRIPE_ACCOUNT,
105
+ type: "stripe.refund.failed",
106
+ },
107
+ };
@@ -0,0 +1,63 @@
1
+ import type { IntegrationAccountRequirement } from "../types.js";
2
+ export declare const webflowTriggerDefinitions: {
3
+ readonly webflowCollectionItemChanged: {
4
+ readonly account: IntegrationAccountRequirement<"webflow">;
5
+ readonly type: "webflow.collectionItem.changed";
6
+ };
7
+ readonly webflowCollectionItemCreated: {
8
+ readonly account: IntegrationAccountRequirement<"webflow">;
9
+ readonly type: "webflow.collectionItem.created";
10
+ };
11
+ readonly webflowCollectionItemDeleted: {
12
+ readonly account: IntegrationAccountRequirement<"webflow">;
13
+ readonly type: "webflow.collectionItem.deleted";
14
+ };
15
+ readonly webflowCollectionItemPublished: {
16
+ readonly account: IntegrationAccountRequirement<"webflow">;
17
+ readonly type: "webflow.collectionItem.published";
18
+ };
19
+ readonly webflowCollectionItemUnpublished: {
20
+ readonly account: IntegrationAccountRequirement<"webflow">;
21
+ readonly type: "webflow.collectionItem.unpublished";
22
+ };
23
+ readonly webflowCommentCreated: {
24
+ readonly account: IntegrationAccountRequirement<"webflow">;
25
+ readonly type: "webflow.comment.created";
26
+ };
27
+ readonly webflowEvent: {
28
+ readonly account: IntegrationAccountRequirement<"webflow">;
29
+ readonly type: "webflow.event";
30
+ };
31
+ readonly webflowFormSubmitted: {
32
+ readonly account: IntegrationAccountRequirement<"webflow">;
33
+ readonly type: "webflow.form.submitted";
34
+ };
35
+ readonly webflowInventoryChanged: {
36
+ readonly account: IntegrationAccountRequirement<"webflow">;
37
+ readonly type: "webflow.inventory.changed";
38
+ };
39
+ readonly webflowOrderChanged: {
40
+ readonly account: IntegrationAccountRequirement<"webflow">;
41
+ readonly type: "webflow.order.changed";
42
+ };
43
+ readonly webflowOrderCreated: {
44
+ readonly account: IntegrationAccountRequirement<"webflow">;
45
+ readonly type: "webflow.order.created";
46
+ };
47
+ readonly webflowPageCreated: {
48
+ readonly account: IntegrationAccountRequirement<"webflow">;
49
+ readonly type: "webflow.page.created";
50
+ };
51
+ readonly webflowPageDeleted: {
52
+ readonly account: IntegrationAccountRequirement<"webflow">;
53
+ readonly type: "webflow.page.deleted";
54
+ };
55
+ readonly webflowPageMetadataUpdated: {
56
+ readonly account: IntegrationAccountRequirement<"webflow">;
57
+ readonly type: "webflow.page.metadataUpdated";
58
+ };
59
+ readonly webflowSitePublished: {
60
+ readonly account: IntegrationAccountRequirement<"webflow">;
61
+ readonly type: "webflow.site.published";
62
+ };
63
+ };
@@ -0,0 +1,86 @@
1
+ const WEBFLOW_SITE_READ_ACCOUNT = webflowAccount(["sites:read"]);
2
+ export const webflowTriggerDefinitions = {
3
+ webflowCollectionItemChanged: {
4
+ account: webflowAccount(["cms:read"]),
5
+ type: "webflow.collectionItem.changed",
6
+ },
7
+ webflowCollectionItemCreated: {
8
+ account: webflowAccount(["cms:read"]),
9
+ type: "webflow.collectionItem.created",
10
+ },
11
+ webflowCollectionItemDeleted: {
12
+ account: webflowAccount(["cms:read"]),
13
+ type: "webflow.collectionItem.deleted",
14
+ },
15
+ webflowCollectionItemPublished: {
16
+ account: webflowAccount(["cms:read"]),
17
+ type: "webflow.collectionItem.published",
18
+ },
19
+ webflowCollectionItemUnpublished: {
20
+ account: webflowAccount(["cms:read"]),
21
+ type: "webflow.collectionItem.unpublished",
22
+ },
23
+ webflowCommentCreated: {
24
+ account: webflowAccount(["comments:read"]),
25
+ type: "webflow.comment.created",
26
+ },
27
+ webflowEvent: {
28
+ account: webflowAccount([
29
+ "cms:read",
30
+ "comments:read",
31
+ "ecommerce:read",
32
+ "forms:read",
33
+ "pages:read",
34
+ "sites:read",
35
+ ]),
36
+ type: "webflow.event",
37
+ },
38
+ webflowFormSubmitted: {
39
+ account: webflowAccount(["forms:read"]),
40
+ type: "webflow.form.submitted",
41
+ },
42
+ webflowInventoryChanged: {
43
+ account: webflowAccount(["ecommerce:read"]),
44
+ type: "webflow.inventory.changed",
45
+ },
46
+ webflowOrderChanged: {
47
+ account: webflowAccount(["ecommerce:read"]),
48
+ type: "webflow.order.changed",
49
+ },
50
+ webflowOrderCreated: {
51
+ account: webflowAccount(["ecommerce:read"]),
52
+ type: "webflow.order.created",
53
+ },
54
+ webflowPageCreated: {
55
+ account: webflowAccount(["pages:read"]),
56
+ type: "webflow.page.created",
57
+ },
58
+ webflowPageDeleted: {
59
+ account: webflowAccount(["pages:read"]),
60
+ type: "webflow.page.deleted",
61
+ },
62
+ webflowPageMetadataUpdated: {
63
+ account: webflowAccount(["pages:read"]),
64
+ type: "webflow.page.metadataUpdated",
65
+ },
66
+ webflowSitePublished: {
67
+ account: WEBFLOW_SITE_READ_ACCOUNT,
68
+ type: "webflow.site.published",
69
+ },
70
+ };
71
+ /**
72
+ * Requires webhook management plus the scopes needed for delivered events.
73
+ *
74
+ * @param eventScopes - Read scopes required by the selected provider events.
75
+ */
76
+ function webflowAccount(eventScopes) {
77
+ return {
78
+ connectionOptions: [
79
+ {
80
+ connectionMethodId: "oauth",
81
+ requiredScopes: ["sites:write", ...eventScopes],
82
+ },
83
+ ],
84
+ serviceId: "webflow",
85
+ };
86
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@automate.ax/catalog",
3
- "version": "0.83.3",
3
+ "version": "0.85.0",
4
4
  "description": "Shared integration service and trigger definitions for Automate.ax.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -36,8 +36,10 @@
36
36
  "./triggers/name": "./src/triggers/name.ts",
37
37
  "./triggers/resend": "./src/triggers/resend.ts",
38
38
  "./triggers/slack": "./src/triggers/slack.ts",
39
+ "./triggers/stripe": "./src/triggers/stripe.ts",
39
40
  "./triggers/trello": "./src/triggers/trello.ts",
40
41
  "./triggers/vercel": "./src/triggers/vercel.ts",
42
+ "./triggers/webflow": "./src/triggers/webflow.ts",
41
43
  "./triggers/whatsapp": "./src/triggers/whatsapp.ts"
42
44
  },
43
45
  "cjs": false,
@@ -46,7 +48,7 @@
46
48
  }
47
49
  },
48
50
  "devDependencies": {
49
- "@internal/config": "0.1.0",
51
+ "@internal/config": "0.2.0",
50
52
  "@types/bun": "latest",
51
53
  "@typescript/native": "npm:typescript@^7.0.2",
52
54
  "@zachsents/oxlint-config": "^0.4.1",
@@ -167,6 +169,11 @@
167
169
  "types": "./dist/triggers/slack.d.ts",
168
170
  "default": "./dist/triggers/slack.js"
169
171
  },
172
+ "./triggers/stripe": {
173
+ "bun": "./src/triggers/stripe.ts",
174
+ "types": "./dist/triggers/stripe.d.ts",
175
+ "default": "./dist/triggers/stripe.js"
176
+ },
170
177
  "./triggers/trello": {
171
178
  "bun": "./src/triggers/trello.ts",
172
179
  "types": "./dist/triggers/trello.d.ts",
@@ -177,6 +184,11 @@
177
184
  "types": "./dist/triggers/vercel.d.ts",
178
185
  "default": "./dist/triggers/vercel.js"
179
186
  },
187
+ "./triggers/webflow": {
188
+ "bun": "./src/triggers/webflow.ts",
189
+ "types": "./dist/triggers/webflow.d.ts",
190
+ "default": "./dist/triggers/webflow.js"
191
+ },
180
192
  "./triggers/whatsapp": {
181
193
  "bun": "./src/triggers/whatsapp.ts",
182
194
  "types": "./dist/triggers/whatsapp.d.ts",
package/src/catalog.ts CHANGED
@@ -361,6 +361,23 @@ export const slackService = defineIntegrationService({
361
361
  name: "Slack",
362
362
  })
363
363
 
364
+ export const stripeService = defineApiKeyService({
365
+ connectionNotice: {
366
+ action: {
367
+ href: "https://docs.stripe.com/keys#limit-access",
368
+ label: "Review permissions",
369
+ },
370
+ description:
371
+ "Restricted keys need read access to Account for connection checks. Managed triggers also need write access to Webhook Endpoints.",
372
+ title: "Stripe restricted-key permissions",
373
+ },
374
+ credentialUrl: "https://dashboard.stripe.com/apikeys",
375
+ description: "Connect a Stripe account with a secret or restricted API key.",
376
+ id: "stripe",
377
+ name: "Stripe",
378
+ placeholder: "sk_test_... or rk_test_...",
379
+ })
380
+
364
381
  export const tidycalService = defineIntegrationService({
365
382
  connectionMethods: [{ id: "oauth", name: "OAuth", type: "redirect" }],
366
383
  description: "Connect a TidyCal account.",
@@ -421,6 +438,13 @@ export const whatsappService = defineIntegrationService({
421
438
  name: "WhatsApp",
422
439
  })
423
440
 
441
+ export const webflowService = defineIntegrationService({
442
+ connectionMethods: [{ id: "oauth", name: "OAuth", type: "redirect" }],
443
+ description: "Connect Webflow sites and workspaces.",
444
+ id: "webflow",
445
+ name: "Webflow",
446
+ })
447
+
424
448
  export const xaiService = defineApiKeyService({
425
449
  description: "Connect an xAI API key.",
426
450
  id: "xai",
@@ -460,11 +484,13 @@ export const integrationCatalog = defineIntegrationCatalog([
460
484
  resendService,
461
485
  scrapflyService,
462
486
  slackService,
487
+ stripeService,
463
488
  tidycalService,
464
489
  togetheraiService,
465
490
  trelloService,
466
491
  vercelAiGatewayService,
467
492
  vercelService,
493
+ webflowService,
468
494
  whatsappService,
469
495
  xaiService,
470
496
  ])
@@ -482,7 +508,8 @@ export function getIntegrationService(
482
508
  return integrationCatalog.find((service) => service.id === id)
483
509
  }
484
510
 
485
- interface ApiKeyServiceDefinition {
511
+ interface ApiKeyServiceDefinition
512
+ extends Pick<IntegrationServiceDefinition, "connectionNotice"> {
486
513
  credentialUrl?: string
487
514
  description: string
488
515
  icon?: string
@@ -515,6 +542,9 @@ function defineApiKeyService<const TId extends string>(
515
542
  type: "form",
516
543
  },
517
544
  ],
545
+ ...(service.connectionNotice
546
+ ? { connectionNotice: service.connectionNotice }
547
+ : {}),
518
548
  description: service.description,
519
549
  ...(service.icon ? { icon: service.icon } : {}),
520
550
  id: service.id,
package/src/index.ts CHANGED
@@ -32,11 +32,13 @@ export {
32
32
  resendService,
33
33
  scrapflyService,
34
34
  slackService,
35
+ stripeService,
35
36
  tidycalService,
36
37
  togetheraiService,
37
38
  trelloService,
38
39
  vercelAiGatewayService,
39
40
  vercelService,
41
+ webflowService,
40
42
  whatsappService,
41
43
  xaiService,
42
44
  type IntegrationServiceId,
@@ -9,8 +9,10 @@ import { linearTriggerDefinitions } from "./linear"
9
9
  import { microsoftTriggerDefinitions } from "./microsoft"
10
10
  import { resendTriggerDefinitions } from "./resend"
11
11
  import { slackTriggerDefinitions } from "./slack"
12
+ import { stripeTriggerDefinitions } from "./stripe"
12
13
  import { trelloTriggerDefinitions } from "./trello"
13
14
  import { vercelTriggerDefinitions } from "./vercel"
15
+ import { webflowTriggerDefinitions } from "./webflow"
14
16
  import { whatsappTriggerDefinitions } from "./whatsapp"
15
17
  import { sentenceCase } from "./name"
16
18
  import { getIntegrationService } from "../catalog"
@@ -52,8 +54,10 @@ export const triggerDefinitions = {
52
54
  ...microsoftTriggerDefinitions,
53
55
  ...resendTriggerDefinitions,
54
56
  ...slackTriggerDefinitions,
57
+ ...stripeTriggerDefinitions,
55
58
  ...trelloTriggerDefinitions,
56
59
  ...vercelTriggerDefinitions,
60
+ ...webflowTriggerDefinitions,
57
61
  ...whatsappTriggerDefinitions,
58
62
  } as const satisfies Record<string, TriggerDefinition>
59
63