runline 0.2.1 → 0.2.2

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 (189) hide show
  1. package/dist/plugins/actionNetwork/src/index.js +118 -25
  2. package/dist/plugins/activeCampaign/src/index.js +184 -38
  3. package/dist/plugins/adalo/src/index.js +40 -8
  4. package/dist/plugins/affinity/src/index.js +100 -20
  5. package/dist/plugins/agileCrm/src/index.js +115 -27
  6. package/dist/plugins/airtable/src/index.js +94 -19
  7. package/dist/plugins/airtop/src/index.js +266 -62
  8. package/dist/plugins/apiTemplateIo/src/index.js +25 -5
  9. package/dist/plugins/asana/src/index.js +195 -41
  10. package/dist/plugins/autopilot/src/index.js +39 -8
  11. package/dist/plugins/bambooHr/src/index.js +109 -22
  12. package/dist/plugins/bannerbear/src/index.js +36 -8
  13. package/dist/plugins/baserow/src/index.js +35 -7
  14. package/dist/plugins/beeminder/src/index.js +198 -40
  15. package/dist/plugins/bitly/src/index.js +46 -10
  16. package/dist/plugins/bitwarden/src/index.js +167 -36
  17. package/dist/plugins/box/src/index.js +172 -37
  18. package/dist/plugins/brandfetch/src/index.js +5 -1
  19. package/dist/plugins/brevo/src/index.js +136 -29
  20. package/dist/plugins/bubble/src/index.js +76 -17
  21. package/dist/plugins/chargebee/src/index.js +35 -7
  22. package/dist/plugins/circleci/src/index.js +50 -10
  23. package/dist/plugins/ciscoWebex/src/index.js +131 -27
  24. package/dist/plugins/clearbit/src/index.js +76 -17
  25. package/dist/plugins/clickup/src/index.js +500 -107
  26. package/dist/plugins/clockify/src/index.js +229 -47
  27. package/dist/plugins/cloudflare/src/index.js +28 -6
  28. package/dist/plugins/cockpit/src/index.js +54 -12
  29. package/dist/plugins/coda/src/index.js +81 -19
  30. package/dist/plugins/coingecko/src/index.js +157 -33
  31. package/dist/plugins/contentful/src/index.js +85 -17
  32. package/dist/plugins/convertkit/src/index.js +74 -18
  33. package/dist/plugins/copper/src/index.js +59 -11
  34. package/dist/plugins/cortex/src/index.js +55 -13
  35. package/dist/plugins/currents/src/index.js +310 -71
  36. package/dist/plugins/customerIo/src/index.js +112 -23
  37. package/dist/plugins/databricks/src/index.js +549 -115
  38. package/dist/plugins/deepl/src/index.js +26 -6
  39. package/dist/plugins/demio/src/index.js +56 -11
  40. package/dist/plugins/dhl/src/index.js +16 -3
  41. package/dist/plugins/discord/src/index.js +141 -31
  42. package/dist/plugins/discourse/src/index.js +136 -31
  43. package/dist/plugins/disqus/src/index.js +96 -20
  44. package/dist/plugins/docker/src/index.js +20 -4
  45. package/dist/plugins/drift/src/index.js +19 -5
  46. package/dist/plugins/dropbox/src/index.js +139 -30
  47. package/dist/plugins/dropcontact/src/index.js +21 -4
  48. package/dist/plugins/egoi/src/index.js +61 -15
  49. package/dist/plugins/elasticsearch/src/index.js +59 -13
  50. package/dist/plugins/emelia/src/index.js +95 -19
  51. package/dist/plugins/erpnext/src/index.js +74 -15
  52. package/dist/plugins/facebookGraph/src/index.js +52 -11
  53. package/dist/plugins/freshdesk/src/index.js +220 -48
  54. package/dist/plugins/freshservice/src/index.js +39 -9
  55. package/dist/plugins/freshworksCrm/src/index.js +58 -12
  56. package/dist/plugins/getresponse/src/index.js +87 -18
  57. package/dist/plugins/ghost/src/index.js +114 -26
  58. package/dist/plugins/github/src/index.js +483 -109
  59. package/dist/plugins/gitlab/src/index.js +193 -45
  60. package/dist/plugins/gong/src/index.js +68 -14
  61. package/dist/plugins/gotify/src/index.js +43 -9
  62. package/dist/plugins/gotowebinar/src/index.js +233 -47
  63. package/dist/plugins/grafana/src/index.js +92 -21
  64. package/dist/plugins/graphql/src/index.js +38 -8
  65. package/dist/plugins/grist/src/index.js +52 -10
  66. package/dist/plugins/hackernews/src/index.js +32 -6
  67. package/dist/plugins/halopsa/src/index.js +131 -26
  68. package/dist/plugins/harvest/src/index.js +182 -42
  69. package/dist/plugins/helpscout/src/index.js +153 -31
  70. package/dist/plugins/highlevel/src/index.js +291 -58
  71. package/dist/plugins/homeAssistant/src/index.js +124 -26
  72. package/dist/plugins/hubspot/src/index.js +163 -29
  73. package/dist/plugins/humanticAi/src/index.js +54 -5
  74. package/dist/plugins/hunter/src/index.js +21 -4
  75. package/dist/plugins/intercom/src/index.js +95 -20
  76. package/dist/plugins/iterable/src/index.js +96 -20
  77. package/dist/plugins/jenkins/src/index.js +75 -17
  78. package/dist/plugins/jira/src/index.js +193 -43
  79. package/dist/plugins/keap/src/index.js +222 -56
  80. package/dist/plugins/kobotoolbox/src/index.js +113 -25
  81. package/dist/plugins/lemlist/src/index.js +79 -18
  82. package/dist/plugins/linear/src/index.js +86 -19
  83. package/dist/plugins/lingvanex/src/index.js +38 -8
  84. package/dist/plugins/linkedin/src/index.js +37 -8
  85. package/dist/plugins/lonescale/src/index.js +41 -9
  86. package/dist/plugins/magento/src/index.js +98 -27
  87. package/dist/plugins/mailcheck/src/index.js +11 -2
  88. package/dist/plugins/mailchimp/src/index.js +193 -42
  89. package/dist/plugins/mailerlite/src/index.js +61 -12
  90. package/dist/plugins/mailgun/src/index.js +39 -7
  91. package/dist/plugins/mailjet/src/index.js +141 -30
  92. package/dist/plugins/mandrill/src/index.js +67 -14
  93. package/dist/plugins/marketstack/src/index.js +56 -10
  94. package/dist/plugins/matrix/src/index.js +97 -20
  95. package/dist/plugins/mattermost/src/index.js +124 -26
  96. package/dist/plugins/mautic/src/index.js +129 -26
  97. package/dist/plugins/medium/src/index.js +64 -13
  98. package/dist/plugins/messagebird/src/index.js +80 -15
  99. package/dist/plugins/metabase/src/index.js +57 -12
  100. package/dist/plugins/misp/src/index.js +135 -33
  101. package/dist/plugins/mocean/src/index.js +33 -7
  102. package/dist/plugins/monday/src/index.js +97 -23
  103. package/dist/plugins/monicaCrm/src/index.js +112 -23
  104. package/dist/plugins/msg91/src/index.js +11 -2
  105. package/dist/plugins/nasa/src/index.js +108 -21
  106. package/dist/plugins/netlify/src/index.js +28 -6
  107. package/dist/plugins/netscalerAdc/src/index.js +144 -29
  108. package/dist/plugins/nextcloud/src/index.js +103 -20
  109. package/dist/plugins/nocodb/src/index.js +57 -11
  110. package/dist/plugins/notion/src/index.js +148 -37
  111. package/dist/plugins/npm/src/index.js +59 -12
  112. package/dist/plugins/odoo/src/index.js +102 -20
  113. package/dist/plugins/okta/src/index.js +50 -10
  114. package/dist/plugins/oneSimpleApi/src/index.js +84 -17
  115. package/dist/plugins/onfleet/src/index.js +139 -32
  116. package/dist/plugins/openThesaurus/src/index.js +46 -9
  117. package/dist/plugins/openweathermap/src/index.js +31 -6
  118. package/dist/plugins/oura/src/index.js +36 -7
  119. package/dist/plugins/paddle/src/index.js +80 -17
  120. package/dist/plugins/pagerduty/src/index.js +53 -12
  121. package/dist/plugins/paypal/src/index.js +51 -11
  122. package/dist/plugins/peekalink/src/index.js +12 -3
  123. package/dist/plugins/phantombuster/src/index.js +39 -8
  124. package/dist/plugins/philipsHue/src/index.js +64 -13
  125. package/dist/plugins/pipedrive/src/index.js +167 -45
  126. package/dist/plugins/plivo/src/index.js +43 -8
  127. package/dist/plugins/postbin/src/index.js +9 -2
  128. package/dist/plugins/posthog/src/index.js +50 -13
  129. package/dist/plugins/profitwell/src/index.js +24 -5
  130. package/dist/plugins/pushbullet/src/index.js +45 -9
  131. package/dist/plugins/pushcut/src/index.js +31 -6
  132. package/dist/plugins/pushover/src/index.js +51 -10
  133. package/dist/plugins/quickbase/src/index.js +66 -13
  134. package/dist/plugins/quickbooks/src/index.js +86 -19
  135. package/dist/plugins/quickchart/src/index.js +35 -7
  136. package/dist/plugins/raindrop/src/index.js +54 -13
  137. package/dist/plugins/reddit/src/index.js +73 -18
  138. package/dist/plugins/rocketchat/src/index.js +47 -9
  139. package/dist/plugins/rundeck/src/index.js +26 -5
  140. package/dist/plugins/salesforce/src/index.js +161 -31
  141. package/dist/plugins/salesmate/src/index.js +75 -16
  142. package/dist/plugins/securityScorecard/src/index.js +73 -15
  143. package/dist/plugins/segment/src/index.js +21 -4
  144. package/dist/plugins/sendgrid/src/index.js +102 -24
  145. package/dist/plugins/sendy/src/index.js +54 -11
  146. package/dist/plugins/sentry/src/index.js +174 -34
  147. package/dist/plugins/servicenow/src/index.js +120 -27
  148. package/dist/plugins/shopify/src/index.js +53 -12
  149. package/dist/plugins/signl4/src/index.js +16 -3
  150. package/dist/plugins/slack/src/index.js +407 -105
  151. package/dist/plugins/sms77/src/index.js +26 -5
  152. package/dist/plugins/splunk/src/index.js +186 -45
  153. package/dist/plugins/spotify/src/index.js +265 -66
  154. package/dist/plugins/stackby/src/index.js +18 -6
  155. package/dist/plugins/storyblok/src/index.js +57 -11
  156. package/dist/plugins/strapi/src/index.js +63 -12
  157. package/dist/plugins/strava/src/index.js +58 -13
  158. package/dist/plugins/stripe/src/index.js +143 -30
  159. package/dist/plugins/supabase/src/index.js +49 -10
  160. package/dist/plugins/syncromsp/src/index.js +245 -67
  161. package/dist/plugins/tapfiliate/src/index.js +57 -14
  162. package/dist/plugins/telegram/src/index.js +202 -39
  163. package/dist/plugins/thehive/src/index.js +271 -66
  164. package/dist/plugins/thehiveProject/src/index.js +457 -89
  165. package/dist/plugins/todoist/src/index.js +326 -77
  166. package/dist/plugins/travisci/src/index.js +35 -8
  167. package/dist/plugins/trello/src/index.js +204 -46
  168. package/dist/plugins/twake/src/index.js +10 -2
  169. package/dist/plugins/twilio/src/index.js +56 -11
  170. package/dist/plugins/twist/src/index.js +241 -48
  171. package/dist/plugins/twitter/src/index.js +128 -30
  172. package/dist/plugins/unleashedSoftware/src/index.js +30 -6
  173. package/dist/plugins/uplead/src/index.js +9 -2
  174. package/dist/plugins/uproc/src/index.js +31 -6
  175. package/dist/plugins/uptimerobot/src/index.js +119 -25
  176. package/dist/plugins/urlscanio/src/index.js +25 -6
  177. package/dist/plugins/vero/src/index.js +68 -13
  178. package/dist/plugins/vonage/src/index.js +32 -6
  179. package/dist/plugins/wekan/src/index.js +297 -52
  180. package/dist/plugins/woocommerce/src/index.js +57 -12
  181. package/dist/plugins/wordpress/src/index.js +94 -18
  182. package/dist/plugins/xero/src/index.js +79 -13
  183. package/dist/plugins/yourls/src/index.js +33 -6
  184. package/dist/plugins/zammad/src/index.js +139 -36
  185. package/dist/plugins/zendesk/src/index.js +201 -48
  186. package/dist/plugins/zoho/src/index.js +88 -21
  187. package/dist/plugins/zoom/src/index.js +41 -7
  188. package/dist/plugins/zulip/src/index.js +101 -20
  189. package/package.json +1 -1
@@ -15,7 +15,10 @@ async function apiRequest(apiKey, method, endpoint, body, qs) {
15
15
  "api-key": apiKey,
16
16
  },
17
17
  };
18
- if (body && Object.keys(body).length > 0 && method !== "GET" && method !== "DELETE") {
18
+ if (body &&
19
+ Object.keys(body).length > 0 &&
20
+ method !== "GET" &&
21
+ method !== "DELETE") {
19
22
  opts.body = JSON.stringify(body);
20
23
  }
21
24
  const res = await fetch(url.toString(), opts);
@@ -49,8 +52,16 @@ export default function brevo(rl) {
49
52
  description: "Create a contact",
50
53
  inputSchema: {
51
54
  email: { type: "string", required: true, description: "Contact email" },
52
- attributes: { type: "object", required: false, description: "Contact attributes as key-value pairs" },
53
- listIds: { type: "array", required: false, description: "Array of list IDs to add contact to" },
55
+ attributes: {
56
+ type: "object",
57
+ required: false,
58
+ description: "Contact attributes as key-value pairs",
59
+ },
60
+ listIds: {
61
+ type: "array",
62
+ required: false,
63
+ description: "Array of list IDs to add contact to",
64
+ },
54
65
  },
55
66
  async execute(input, ctx) {
56
67
  const { email, attributes, listIds } = (input ?? {});
@@ -66,7 +77,11 @@ export default function brevo(rl) {
66
77
  description: "Create or update a contact",
67
78
  inputSchema: {
68
79
  email: { type: "string", required: true, description: "Contact email" },
69
- attributes: { type: "object", required: false, description: "Contact attributes" },
80
+ attributes: {
81
+ type: "object",
82
+ required: false,
83
+ description: "Contact attributes",
84
+ },
70
85
  listIds: { type: "array", required: false, description: "List IDs" },
71
86
  },
72
87
  async execute(input, ctx) {
@@ -82,7 +97,11 @@ export default function brevo(rl) {
82
97
  rl.registerAction("contact.get", {
83
98
  description: "Get a contact by email or ID",
84
99
  inputSchema: {
85
- identifier: { type: "string", required: true, description: "Email or contact ID" },
100
+ identifier: {
101
+ type: "string",
102
+ required: true,
103
+ description: "Email or contact ID",
104
+ },
86
105
  },
87
106
  async execute(input, ctx) {
88
107
  const { identifier } = input;
@@ -92,10 +111,26 @@ export default function brevo(rl) {
92
111
  rl.registerAction("contact.list", {
93
112
  description: "List contacts",
94
113
  inputSchema: {
95
- limit: { type: "number", required: false, description: "Max results (default: 50, max: 1000)" },
96
- offset: { type: "number", required: false, description: "Offset for pagination" },
97
- sort: { type: "string", required: false, description: "Sort order: asc or desc" },
98
- modifiedSince: { type: "string", required: false, description: "Filter by modification date (ISO 8601)" },
114
+ limit: {
115
+ type: "number",
116
+ required: false,
117
+ description: "Max results (default: 50, max: 1000)",
118
+ },
119
+ offset: {
120
+ type: "number",
121
+ required: false,
122
+ description: "Offset for pagination",
123
+ },
124
+ sort: {
125
+ type: "string",
126
+ required: false,
127
+ description: "Sort order: asc or desc",
128
+ },
129
+ modifiedSince: {
130
+ type: "string",
131
+ required: false,
132
+ description: "Filter by modification date (ISO 8601)",
133
+ },
99
134
  },
100
135
  async execute(input, ctx) {
101
136
  const { limit, offset, sort, modifiedSince } = (input ?? {});
@@ -115,10 +150,26 @@ export default function brevo(rl) {
115
150
  rl.registerAction("contact.update", {
116
151
  description: "Update a contact",
117
152
  inputSchema: {
118
- identifier: { type: "string", required: true, description: "Email or contact ID" },
119
- attributes: { type: "object", required: false, description: "Attributes to update" },
120
- listIds: { type: "array", required: false, description: "List IDs to add" },
121
- unlinkListIds: { type: "array", required: false, description: "List IDs to remove" },
153
+ identifier: {
154
+ type: "string",
155
+ required: true,
156
+ description: "Email or contact ID",
157
+ },
158
+ attributes: {
159
+ type: "object",
160
+ required: false,
161
+ description: "Attributes to update",
162
+ },
163
+ listIds: {
164
+ type: "array",
165
+ required: false,
166
+ description: "List IDs to add",
167
+ },
168
+ unlinkListIds: {
169
+ type: "array",
170
+ required: false,
171
+ description: "List IDs to remove",
172
+ },
122
173
  },
123
174
  async execute(input, ctx) {
124
175
  const { identifier, attributes, listIds, unlinkListIds } = input;
@@ -136,7 +187,11 @@ export default function brevo(rl) {
136
187
  rl.registerAction("contact.delete", {
137
188
  description: "Delete a contact",
138
189
  inputSchema: {
139
- identifier: { type: "string", required: true, description: "Email or contact ID" },
190
+ identifier: {
191
+ type: "string",
192
+ required: true,
193
+ description: "Email or contact ID",
194
+ },
140
195
  },
141
196
  async execute(input, ctx) {
142
197
  const { identifier } = input;
@@ -148,11 +203,27 @@ export default function brevo(rl) {
148
203
  rl.registerAction("attribute.create", {
149
204
  description: "Create a contact attribute",
150
205
  inputSchema: {
151
- category: { type: "string", required: true, description: "Category: normal, transactional, category, calculated, global" },
206
+ category: {
207
+ type: "string",
208
+ required: true,
209
+ description: "Category: normal, transactional, category, calculated, global",
210
+ },
152
211
  name: { type: "string", required: true, description: "Attribute name" },
153
- type: { type: "string", required: false, description: "Type (for normal): text, date, float, boolean" },
154
- value: { type: "string", required: false, description: "Value (for calculated/global)" },
155
- enumeration: { type: "array", required: false, description: "Array of {value, label} for category type" },
212
+ type: {
213
+ type: "string",
214
+ required: false,
215
+ description: "Type (for normal): text, date, float, boolean",
216
+ },
217
+ value: {
218
+ type: "string",
219
+ required: false,
220
+ description: "Value (for calculated/global)",
221
+ },
222
+ enumeration: {
223
+ type: "array",
224
+ required: false,
225
+ description: "Array of {value, label} for category type",
226
+ },
156
227
  },
157
228
  async execute(input, ctx) {
158
229
  const { category, name, type, value, enumeration } = input;
@@ -170,10 +241,18 @@ export default function brevo(rl) {
170
241
  rl.registerAction("attribute.update", {
171
242
  description: "Update a contact attribute",
172
243
  inputSchema: {
173
- category: { type: "string", required: true, description: "Category: calculated, category, global" },
244
+ category: {
245
+ type: "string",
246
+ required: true,
247
+ description: "Category: calculated, category, global",
248
+ },
174
249
  name: { type: "string", required: true, description: "Attribute name" },
175
250
  value: { type: "string", required: false, description: "New value" },
176
- enumeration: { type: "array", required: false, description: "Array of {value, label}" },
251
+ enumeration: {
252
+ type: "array",
253
+ required: false,
254
+ description: "Array of {value, label}",
255
+ },
177
256
  },
178
257
  async execute(input, ctx) {
179
258
  const { category, name, value, enumeration } = input;
@@ -215,11 +294,27 @@ export default function brevo(rl) {
215
294
  rl.registerAction("email.send", {
216
295
  description: "Send a transactional email",
217
296
  inputSchema: {
218
- sender: { type: "string", required: true, description: "Sender email address" },
219
- to: { type: "array", required: true, description: "Array of recipient emails (or {email, name} objects)" },
297
+ sender: {
298
+ type: "string",
299
+ required: true,
300
+ description: "Sender email address",
301
+ },
302
+ to: {
303
+ type: "array",
304
+ required: true,
305
+ description: "Array of recipient emails (or {email, name} objects)",
306
+ },
220
307
  subject: { type: "string", required: true, description: "Email subject" },
221
- htmlContent: { type: "string", required: false, description: "HTML body" },
222
- textContent: { type: "string", required: false, description: "Plain text body" },
308
+ htmlContent: {
309
+ type: "string",
310
+ required: false,
311
+ description: "HTML body",
312
+ },
313
+ textContent: {
314
+ type: "string",
315
+ required: false,
316
+ description: "Plain text body",
317
+ },
223
318
  cc: { type: "array", required: false, description: "CC recipients" },
224
319
  bcc: { type: "array", required: false, description: "BCC recipients" },
225
320
  tags: { type: "array", required: false, description: "Email tags" },
@@ -238,9 +333,9 @@ export default function brevo(rl) {
238
333
  if (textContent)
239
334
  body.textContent = textContent;
240
335
  if (cc)
241
- body.cc = cc.map((r) => (typeof r === "string" ? { email: r } : r));
336
+ body.cc = cc.map((r) => typeof r === "string" ? { email: r } : r);
242
337
  if (bcc)
243
- body.bcc = bcc.map((r) => (typeof r === "string" ? { email: r } : r));
338
+ body.bcc = bcc.map((r) => typeof r === "string" ? { email: r } : r);
244
339
  if (tags)
245
340
  body.tags = tags;
246
341
  return apiRequest(getKey(ctx), "POST", "/v3/smtp/email", body);
@@ -249,9 +344,21 @@ export default function brevo(rl) {
249
344
  rl.registerAction("email.sendTemplate", {
250
345
  description: "Send an email using a template",
251
346
  inputSchema: {
252
- templateId: { type: "number", required: true, description: "Template ID" },
253
- to: { type: "array", required: true, description: "Array of recipient emails (or {email, name} objects)" },
254
- params: { type: "object", required: false, description: "Template parameters as key-value pairs" },
347
+ templateId: {
348
+ type: "number",
349
+ required: true,
350
+ description: "Template ID",
351
+ },
352
+ to: {
353
+ type: "array",
354
+ required: true,
355
+ description: "Array of recipient emails (or {email, name} objects)",
356
+ },
357
+ params: {
358
+ type: "object",
359
+ required: false,
360
+ description: "Template parameters as key-value pairs",
361
+ },
255
362
  tags: { type: "array", required: false, description: "Email tags" },
256
363
  },
257
364
  async execute(input, ctx) {
@@ -3,7 +3,9 @@ function buildBaseUrl(cfg) {
3
3
  const appName = cfg.appName;
4
4
  const domain = cfg.domain?.replace(/\/$/, "");
5
5
  const environment = cfg.environment;
6
- const rootUrl = hosting === "selfHosted" && domain ? domain : `https://${appName}.bubbleapps.io`;
6
+ const rootUrl = hosting === "selfHosted" && domain
7
+ ? domain
8
+ : `https://${appName}.bubbleapps.io`;
7
9
  const urlSegment = environment === "development" ? "/version-test/api/1.1" : "/api/1.1";
8
10
  return `${rootUrl}${urlSegment}`;
9
11
  }
@@ -22,7 +24,10 @@ async function apiRequest(baseUrl, token, method, endpoint, body, qs) {
22
24
  Authorization: `Bearer ${token}`,
23
25
  },
24
26
  };
25
- if (body && Object.keys(body).length > 0 && method !== "GET" && method !== "DELETE") {
27
+ if (body &&
28
+ Object.keys(body).length > 0 &&
29
+ method !== "GET" &&
30
+ method !== "DELETE") {
26
31
  opts.body = JSON.stringify(body);
27
32
  }
28
33
  const res = await fetch(url.toString(), opts);
@@ -87,8 +92,16 @@ export default function bubble(rl) {
87
92
  rl.registerAction("object.create", {
88
93
  description: "Create an object",
89
94
  inputSchema: {
90
- typeName: { type: "string", required: true, description: "Data type name" },
91
- properties: { type: "object", required: true, description: "Key-value pairs of field values" },
95
+ typeName: {
96
+ type: "string",
97
+ required: true,
98
+ description: "Data type name",
99
+ },
100
+ properties: {
101
+ type: "object",
102
+ required: true,
103
+ description: "Key-value pairs of field values",
104
+ },
92
105
  },
93
106
  async execute(input, ctx) {
94
107
  const { typeName, properties } = input;
@@ -99,8 +112,16 @@ export default function bubble(rl) {
99
112
  rl.registerAction("object.get", {
100
113
  description: "Get an object by ID",
101
114
  inputSchema: {
102
- typeName: { type: "string", required: true, description: "Data type name" },
103
- objectId: { type: "string", required: true, description: "Object unique ID" },
115
+ typeName: {
116
+ type: "string",
117
+ required: true,
118
+ description: "Data type name",
119
+ },
120
+ objectId: {
121
+ type: "string",
122
+ required: true,
123
+ description: "Object unique ID",
124
+ },
104
125
  },
105
126
  async execute(input, ctx) {
106
127
  const { typeName, objectId } = input;
@@ -112,14 +133,31 @@ export default function bubble(rl) {
112
133
  rl.registerAction("object.list", {
113
134
  description: "List objects of a type with optional constraints and sorting",
114
135
  inputSchema: {
115
- typeName: { type: "string", required: true, description: "Data type name" },
116
- constraints: { type: "array", required: false, description: "Array of constraint objects [{key, constraint_type, value}]" },
117
- sortField: { type: "string", required: false, description: "Field to sort by" },
118
- descending: { type: "boolean", required: false, description: "Sort descending" },
136
+ typeName: {
137
+ type: "string",
138
+ required: true,
139
+ description: "Data type name",
140
+ },
141
+ constraints: {
142
+ type: "array",
143
+ required: false,
144
+ description: "Array of constraint objects [{key, constraint_type, value}]",
145
+ },
146
+ sortField: {
147
+ type: "string",
148
+ required: false,
149
+ description: "Field to sort by",
150
+ },
151
+ descending: {
152
+ type: "boolean",
153
+ required: false,
154
+ description: "Sort descending",
155
+ },
119
156
  limit: { type: "number", required: false, description: "Max results" },
120
157
  },
121
158
  async execute(input, ctx) {
122
- const { typeName, constraints, sortField, descending, limit } = (input ?? {});
159
+ const { typeName, constraints, sortField, descending, limit } = (input ??
160
+ {});
123
161
  const { baseUrl, token } = getConn(ctx);
124
162
  const qs = {};
125
163
  if (constraints)
@@ -133,7 +171,8 @@ export default function bubble(rl) {
133
171
  if (limit) {
134
172
  qs.limit = limit;
135
173
  const data = (await apiRequest(baseUrl, token, "GET", endpoint, undefined, qs));
136
- return data.response?.results ?? [];
174
+ return (data.response?.results ??
175
+ []);
137
176
  }
138
177
  // Paginate all
139
178
  const results = [];
@@ -154,9 +193,21 @@ export default function bubble(rl) {
154
193
  rl.registerAction("object.update", {
155
194
  description: "Update an object",
156
195
  inputSchema: {
157
- typeName: { type: "string", required: true, description: "Data type name" },
158
- objectId: { type: "string", required: true, description: "Object unique ID" },
159
- properties: { type: "object", required: true, description: "Key-value pairs of fields to update" },
196
+ typeName: {
197
+ type: "string",
198
+ required: true,
199
+ description: "Data type name",
200
+ },
201
+ objectId: {
202
+ type: "string",
203
+ required: true,
204
+ description: "Object unique ID",
205
+ },
206
+ properties: {
207
+ type: "object",
208
+ required: true,
209
+ description: "Key-value pairs of fields to update",
210
+ },
160
211
  },
161
212
  async execute(input, ctx) {
162
213
  const { typeName, objectId, properties } = input;
@@ -168,8 +219,16 @@ export default function bubble(rl) {
168
219
  rl.registerAction("object.delete", {
169
220
  description: "Delete an object",
170
221
  inputSchema: {
171
- typeName: { type: "string", required: true, description: "Data type name" },
172
- objectId: { type: "string", required: true, description: "Object unique ID" },
222
+ typeName: {
223
+ type: "string",
224
+ required: true,
225
+ description: "Data type name",
226
+ },
227
+ objectId: {
228
+ type: "string",
229
+ required: true,
230
+ description: "Object unique ID",
231
+ },
173
232
  },
174
233
  async execute(input, ctx) {
175
234
  const { typeName, objectId } = input;
@@ -50,8 +50,16 @@ export default function chargebee(rl) {
50
50
  rl.registerAction("customer.create", {
51
51
  description: "Create a customer",
52
52
  inputSchema: {
53
- id: { type: "string", required: false, description: "Customer ID (auto-generated if omitted)" },
54
- first_name: { type: "string", required: false, description: "First name" },
53
+ id: {
54
+ type: "string",
55
+ required: false,
56
+ description: "Customer ID (auto-generated if omitted)",
57
+ },
58
+ first_name: {
59
+ type: "string",
60
+ required: false,
61
+ description: "First name",
62
+ },
55
63
  last_name: { type: "string", required: false, description: "Last name" },
56
64
  email: { type: "string", required: false, description: "Email" },
57
65
  phone: { type: "string", required: false, description: "Phone" },
@@ -68,8 +76,16 @@ export default function chargebee(rl) {
68
76
  rl.registerAction("invoice.list", {
69
77
  description: "List invoices",
70
78
  inputSchema: {
71
- limit: { type: "number", required: false, description: "Max results (default: 10, max: 100)" },
72
- sortBy: { type: "string", required: false, description: "Sort field (default: date desc)" },
79
+ limit: {
80
+ type: "number",
81
+ required: false,
82
+ description: "Max results (default: 10, max: 100)",
83
+ },
84
+ sortBy: {
85
+ type: "string",
86
+ required: false,
87
+ description: "Sort field (default: date desc)",
88
+ },
73
89
  },
74
90
  async execute(input, ctx) {
75
91
  const { accountName, apiKey } = getConn(ctx);
@@ -100,8 +116,16 @@ export default function chargebee(rl) {
100
116
  rl.registerAction("subscription.cancel", {
101
117
  description: "Cancel a subscription",
102
118
  inputSchema: {
103
- subscriptionId: { type: "string", required: true, description: "Subscription ID" },
104
- endOfTerm: { type: "boolean", required: false, description: "Schedule cancellation at end of term instead of immediate" },
119
+ subscriptionId: {
120
+ type: "string",
121
+ required: true,
122
+ description: "Subscription ID",
123
+ },
124
+ endOfTerm: {
125
+ type: "boolean",
126
+ required: false,
127
+ description: "Schedule cancellation at end of term instead of immediate",
128
+ },
105
129
  },
106
130
  async execute(input, ctx) {
107
131
  const { subscriptionId, endOfTerm } = input;
@@ -115,7 +139,11 @@ export default function chargebee(rl) {
115
139
  rl.registerAction("subscription.delete", {
116
140
  description: "Delete a subscription",
117
141
  inputSchema: {
118
- subscriptionId: { type: "string", required: true, description: "Subscription ID" },
142
+ subscriptionId: {
143
+ type: "string",
144
+ required: true,
145
+ description: "Subscription ID",
146
+ },
119
147
  },
120
148
  async execute(input, ctx) {
121
149
  const { subscriptionId } = input;
@@ -58,9 +58,21 @@ export default function circleci(rl) {
58
58
  rl.registerAction("pipeline.get", {
59
59
  description: "Get a specific pipeline by number",
60
60
  inputSchema: {
61
- vcs: { type: "string", required: true, description: "VCS type: github or bitbucket" },
62
- projectSlug: { type: "string", required: true, description: "Project slug (org/repo)" },
63
- pipelineNumber: { type: "number", required: true, description: "Pipeline number" },
61
+ vcs: {
62
+ type: "string",
63
+ required: true,
64
+ description: "VCS type: github or bitbucket",
65
+ },
66
+ projectSlug: {
67
+ type: "string",
68
+ required: true,
69
+ description: "Project slug (org/repo)",
70
+ },
71
+ pipelineNumber: {
72
+ type: "number",
73
+ required: true,
74
+ description: "Pipeline number",
75
+ },
64
76
  },
65
77
  async execute(input, ctx) {
66
78
  const { vcs, projectSlug, pipelineNumber } = input;
@@ -70,10 +82,26 @@ export default function circleci(rl) {
70
82
  rl.registerAction("pipeline.list", {
71
83
  description: "List pipelines for a project",
72
84
  inputSchema: {
73
- vcs: { type: "string", required: true, description: "VCS type: github or bitbucket" },
74
- projectSlug: { type: "string", required: true, description: "Project slug (org/repo)" },
75
- branch: { type: "string", required: false, description: "Filter by branch" },
76
- limit: { type: "number", required: false, description: "Max results (omit for all)" },
85
+ vcs: {
86
+ type: "string",
87
+ required: true,
88
+ description: "VCS type: github or bitbucket",
89
+ },
90
+ projectSlug: {
91
+ type: "string",
92
+ required: true,
93
+ description: "Project slug (org/repo)",
94
+ },
95
+ branch: {
96
+ type: "string",
97
+ required: false,
98
+ description: "Filter by branch",
99
+ },
100
+ limit: {
101
+ type: "number",
102
+ required: false,
103
+ description: "Max results (omit for all)",
104
+ },
77
105
  },
78
106
  async execute(input, ctx) {
79
107
  const { vcs, projectSlug, branch, limit } = (input ?? {});
@@ -93,9 +121,21 @@ export default function circleci(rl) {
93
121
  rl.registerAction("pipeline.trigger", {
94
122
  description: "Trigger a new pipeline",
95
123
  inputSchema: {
96
- vcs: { type: "string", required: true, description: "VCS type: github or bitbucket" },
97
- projectSlug: { type: "string", required: true, description: "Project slug (org/repo)" },
98
- branch: { type: "string", required: false, description: "Branch to build" },
124
+ vcs: {
125
+ type: "string",
126
+ required: true,
127
+ description: "VCS type: github or bitbucket",
128
+ },
129
+ projectSlug: {
130
+ type: "string",
131
+ required: true,
132
+ description: "Project slug (org/repo)",
133
+ },
134
+ branch: {
135
+ type: "string",
136
+ required: false,
137
+ description: "Branch to build",
138
+ },
99
139
  tag: { type: "string", required: false, description: "Tag to build" },
100
140
  },
101
141
  async execute(input, ctx) {