@bubblelab/bubble-core 0.1.28 → 0.1.31

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 (89) hide show
  1. package/dist/bubble-bundle.d.ts +161 -92
  2. package/dist/bubble-factory.d.ts.map +1 -1
  3. package/dist/bubble-factory.js +4 -0
  4. package/dist/bubble-factory.js.map +1 -1
  5. package/dist/bubbles/service-bubble/agi-inc.d.ts +4 -4
  6. package/dist/bubbles/service-bubble/airtable.d.ts +94 -94
  7. package/dist/bubbles/service-bubble/apify/actors/google-maps-scraper.d.ts +2 -2
  8. package/dist/bubbles/service-bubble/apify/actors/instagram-hashtag-scraper.d.ts +20 -20
  9. package/dist/bubbles/service-bubble/apify/actors/instagram-scraper.d.ts +30 -30
  10. package/dist/bubbles/service-bubble/apify/actors/linkedin-posts-search.d.ts +26 -26
  11. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-posts.d.ts +56 -56
  12. package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.d.ts +16 -16
  13. package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.d.ts +31 -31
  14. package/dist/bubbles/service-bubble/apify/actors/youtube-scraper.d.ts +8 -8
  15. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts +153 -153
  16. package/dist/bubbles/service-bubble/apify/apify.d.ts +4 -4
  17. package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts +1 -1
  18. package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +4 -4
  19. package/dist/bubbles/service-bubble/crustdata/crustdata.schema.d.ts +8 -8
  20. package/dist/bubbles/service-bubble/eleven-labs.d.ts +4 -4
  21. package/dist/bubbles/service-bubble/firecrawl.d.ts +132 -132
  22. package/dist/bubbles/service-bubble/followupboss.d.ts +34 -34
  23. package/dist/bubbles/service-bubble/github.d.ts +122 -122
  24. package/dist/bubbles/service-bubble/gmail.d.ts +391 -391
  25. package/dist/bubbles/service-bubble/google-calendar.d.ts +96 -96
  26. package/dist/bubbles/service-bubble/google-drive.d.ts +46 -46
  27. package/dist/bubbles/service-bubble/google-sheets/google-sheets.d.ts +41 -41
  28. package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.d.ts +31 -0
  29. package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.d.ts.map +1 -0
  30. package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.js +184 -0
  31. package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.js.map +1 -0
  32. package/dist/bubbles/service-bubble/google-sheets/google-sheets.schema.d.ts +79 -79
  33. package/dist/bubbles/service-bubble/google-sheets.d.ts +1811 -0
  34. package/dist/bubbles/service-bubble/google-sheets.d.ts.map +1 -0
  35. package/dist/bubbles/service-bubble/google-sheets.js +904 -0
  36. package/dist/bubbles/service-bubble/google-sheets.js.map +1 -0
  37. package/dist/bubbles/service-bubble/http.d.ts +12 -12
  38. package/dist/bubbles/service-bubble/insforge-db.d.ts +8 -8
  39. package/dist/bubbles/service-bubble/jira/index.d.ts +5 -0
  40. package/dist/bubbles/service-bubble/jira/index.d.ts.map +1 -0
  41. package/dist/bubbles/service-bubble/jira/index.js +5 -0
  42. package/dist/bubbles/service-bubble/jira/index.js.map +1 -0
  43. package/dist/bubbles/service-bubble/jira/jira.d.ts +2695 -0
  44. package/dist/bubbles/service-bubble/jira/jira.d.ts.map +1 -0
  45. package/dist/bubbles/service-bubble/jira/jira.integration.flow.d.ts +38 -0
  46. package/dist/bubbles/service-bubble/jira/jira.integration.flow.d.ts.map +1 -0
  47. package/dist/bubbles/service-bubble/jira/jira.integration.flow.js +358 -0
  48. package/dist/bubbles/service-bubble/jira/jira.integration.flow.js.map +1 -0
  49. package/dist/bubbles/service-bubble/jira/jira.js +573 -0
  50. package/dist/bubbles/service-bubble/jira/jira.js.map +1 -0
  51. package/dist/bubbles/service-bubble/jira/jira.schema.d.ts +3660 -0
  52. package/dist/bubbles/service-bubble/jira/jira.schema.d.ts.map +1 -0
  53. package/dist/bubbles/service-bubble/jira/jira.schema.js +499 -0
  54. package/dist/bubbles/service-bubble/jira/jira.schema.js.map +1 -0
  55. package/dist/bubbles/service-bubble/jira/jira.utils.d.ts +141 -0
  56. package/dist/bubbles/service-bubble/jira/jira.utils.d.ts.map +1 -0
  57. package/dist/bubbles/service-bubble/jira/jira.utils.js +428 -0
  58. package/dist/bubbles/service-bubble/jira/jira.utils.js.map +1 -0
  59. package/dist/bubbles/service-bubble/notion/notion.d.ts +4 -4
  60. package/dist/bubbles/service-bubble/notion/property-schemas.d.ts +36 -36
  61. package/dist/bubbles/service-bubble/postgresql.d.ts +8 -8
  62. package/dist/bubbles/service-bubble/resend.d.ts +2 -2
  63. package/dist/bubbles/service-bubble/slack/slack.d.ts +114 -114
  64. package/dist/bubbles/service-bubble/slack.d.ts +5869 -0
  65. package/dist/bubbles/service-bubble/slack.d.ts.map +1 -0
  66. package/dist/bubbles/service-bubble/slack.js +1536 -0
  67. package/dist/bubbles/service-bubble/slack.js.map +1 -0
  68. package/dist/bubbles/service-bubble/storage.d.ts +2 -2
  69. package/dist/bubbles/service-bubble/telegram.d.ts +6 -6
  70. package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts +4 -4
  71. package/dist/bubbles/tool-bubble/google-maps-tool.d.ts +4 -4
  72. package/dist/bubbles/tool-bubble/instagram-tool.d.ts +4 -4
  73. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +172 -172
  74. package/dist/bubbles/tool-bubble/people-search-tool.d.ts +4 -4
  75. package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +2 -2
  76. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +4 -4
  77. package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +8 -8
  78. package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +44 -44
  79. package/dist/bubbles/tool-bubble/twitter-tool.d.ts +60 -60
  80. package/dist/bubbles/tool-bubble/web-search-tool.d.ts +4 -4
  81. package/dist/bubbles/tool-bubble/youtube-tool.d.ts +10 -10
  82. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +18 -18
  83. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +48 -48
  84. package/dist/bubbles.json +1795 -2
  85. package/dist/index.d.ts +2 -0
  86. package/dist/index.d.ts.map +1 -1
  87. package/dist/index.js +1 -0
  88. package/dist/index.js.map +1 -1
  89. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jira.d.ts","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/jira/jira.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,UAAU,EAYhB,MAAM,kBAAkB,CAAC;AAS1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,UAAU,CACrB,CAAC,SAAS,eAAe,GAAG,eAAe,CAC3C,SAAQ,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,EAAE;IAAE,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;CAAE,CAAC,CAAC;IAC5E,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IAC1C,MAAM,CAAC,QAAQ,CAAC,OAAO,UAAU;IACjC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAG,OAAO,CAAU;IAC5C,MAAM,CAAC,QAAQ,CAAC,UAAU,UAAU;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAAoB;IAC1C,MAAM,CAAC,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAAoB;IAChD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,gEAC+B;IAC/D,MAAM,CAAC,QAAQ,CAAC,eAAe,2qCA2B7B;IACF,MAAM,CAAC,QAAQ,CAAC,KAAK,UAAU;gBAEnB,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,aAAa;IAIjC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAkB/C;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;YAmCV,kBAAkB;cAsDhB,aAAa,CAC3B,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE;QAAE,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;KAAE,CAAC,CAAC;YAyDhD,MAAM;YAqEN,GAAG;YAoEH,MAAM;YA4EN,MAAM;YA4GN,UAAU;YA4EV,eAAe;YAyBf,YAAY;YA6BZ,cAAc;YAkCd,UAAU;YA4BV,WAAW;IA4CzB,SAAS,CAAC,gBAAgB,IAAI,MAAM,GAAG,SAAS;CAYjD"}
@@ -0,0 +1,38 @@
1
+ import { BubbleFlow, type WebhookEvent } from '@bubblelab/bubble-core';
2
+ export interface TestResult {
3
+ operation: string;
4
+ success: boolean;
5
+ details?: string;
6
+ issueKey?: string;
7
+ error?: string;
8
+ }
9
+ export interface Output {
10
+ success: boolean;
11
+ testResults: TestResult[];
12
+ createdIssueKey?: string;
13
+ projectKey?: string;
14
+ summary: string;
15
+ }
16
+ /**
17
+ * Payload for the Jira Integration Test workflow.
18
+ */
19
+ export type JiraIntegrationTestPayload = WebhookEvent;
20
+ /**
21
+ * Integration flow test for JiraBubble
22
+ *
23
+ * Automatically discovers the first available project and tests all core operations:
24
+ * 1. list_projects - List available Jira projects (uses first one found)
25
+ * 2. list_issue_types - Get issue types for the project
26
+ * 3. create - Create a new test issue
27
+ * 4. get - Retrieve the created issue
28
+ * 5. update - Update the issue (summary, priority, labels)
29
+ * 6. add_comment - Add a comment to the issue
30
+ * 7. get_comments - Retrieve comments
31
+ * 8. list_transitions - Get available transitions
32
+ * 9. transition - Move issue to a different status
33
+ * 10. search - Search for issues using JQL
34
+ */
35
+ export declare class JiraIntegrationFlow extends BubbleFlow<'webhook/http'> {
36
+ handle(_payload: JiraIntegrationTestPayload): Promise<Output>;
37
+ }
38
+ //# sourceMappingURL=jira.integration.flow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jira.integration.flow.d.ts","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/jira/jira.integration.flow.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,KAAK,YAAY,EAElB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,YAAY,CAAC;AAEtD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,mBAAoB,SAAQ,UAAU,CAAC,cAAc,CAAC;IAC3D,MAAM,CAAC,QAAQ,EAAE,0BAA0B,GAAG,OAAO,CAAC,MAAM,CAAC;CAiYpE"}
@@ -0,0 +1,358 @@
1
+ import { BubbleFlow, JiraBubble, } from '@bubblelab/bubble-core';
2
+ /**
3
+ * Integration flow test for JiraBubble
4
+ *
5
+ * Automatically discovers the first available project and tests all core operations:
6
+ * 1. list_projects - List available Jira projects (uses first one found)
7
+ * 2. list_issue_types - Get issue types for the project
8
+ * 3. create - Create a new test issue
9
+ * 4. get - Retrieve the created issue
10
+ * 5. update - Update the issue (summary, priority, labels)
11
+ * 6. add_comment - Add a comment to the issue
12
+ * 7. get_comments - Retrieve comments
13
+ * 8. list_transitions - Get available transitions
14
+ * 9. transition - Move issue to a different status
15
+ * 10. search - Search for issues using JQL
16
+ */
17
+ export class JiraIntegrationFlow extends BubbleFlow {
18
+ async handle(_payload) {
19
+ const results = [];
20
+ const timestamp = new Date().toISOString();
21
+ let createdIssueKey;
22
+ let projectKey;
23
+ // 1. Test list_projects and get the first available
24
+ try {
25
+ const result = await new JiraBubble({
26
+ operation: 'list_projects',
27
+ limit: 10,
28
+ }).action();
29
+ const success = result.success && result.data.operation === 'list_projects';
30
+ const projects = result.data.operation === 'list_projects'
31
+ ? result.data.projects || []
32
+ : [];
33
+ // Use the first available project
34
+ if (projects.length > 0) {
35
+ projectKey = projects[0].key;
36
+ }
37
+ results.push({
38
+ operation: 'list_projects',
39
+ success,
40
+ details: projectKey
41
+ ? `Found ${projects.length} projects, using "${projectKey}"`
42
+ : `Found ${projects.length} projects`,
43
+ error: result.data.error,
44
+ });
45
+ }
46
+ catch (error) {
47
+ results.push({
48
+ operation: 'list_projects',
49
+ success: false,
50
+ error: error instanceof Error ? error.message : 'Unknown error',
51
+ });
52
+ }
53
+ // Stop if no project found
54
+ if (!projectKey) {
55
+ return {
56
+ success: false,
57
+ testResults: results,
58
+ summary: 'No projects found - cannot continue tests',
59
+ };
60
+ }
61
+ // 2. Test list_issue_types
62
+ try {
63
+ const result = await new JiraBubble({
64
+ operation: 'list_issue_types',
65
+ project: projectKey,
66
+ }).action();
67
+ const success = result.success && result.data.operation === 'list_issue_types';
68
+ const typeCount = result.data.operation === 'list_issue_types'
69
+ ? result.data.issue_types?.length || 0
70
+ : 0;
71
+ results.push({
72
+ operation: 'list_issue_types',
73
+ success,
74
+ details: `Found ${typeCount} issue types for ${projectKey}`,
75
+ error: result.data.error,
76
+ });
77
+ }
78
+ catch (error) {
79
+ results.push({
80
+ operation: 'list_issue_types',
81
+ success: false,
82
+ error: error instanceof Error ? error.message : 'Unknown error',
83
+ });
84
+ }
85
+ // 3. Test create (with markdown description)
86
+ const markdownDescription = `# Integration Test Issue
87
+
88
+ This issue was created by the **Jira Integration Flow** test.
89
+
90
+ ## Features Tested
91
+ - **Bold text** and *italic text*
92
+ - \`inline code\` formatting
93
+ - [Link to Anthropic](https://anthropic.com)
94
+
95
+ ### Checklist
96
+ 1. Create issue
97
+ 2. Update issue
98
+ 3. Add comments
99
+ 4. Transition status
100
+
101
+ > This is a blockquote to test markdown conversion
102
+
103
+ ---
104
+
105
+ Timestamp: ${timestamp}`;
106
+ try {
107
+ const result = await new JiraBubble({
108
+ operation: 'create',
109
+ project: projectKey,
110
+ summary: `Integration Test Issue - ${timestamp}`,
111
+ description: markdownDescription,
112
+ type: 'Task',
113
+ labels: ['integration-test', 'automated'],
114
+ }).action();
115
+ const success = result.success && result.data.operation === 'create';
116
+ createdIssueKey =
117
+ result.data.operation === 'create' ? result.data.issue?.key : undefined;
118
+ results.push({
119
+ operation: 'create',
120
+ success,
121
+ details: createdIssueKey
122
+ ? `Created issue ${createdIssueKey}`
123
+ : 'Failed to create issue',
124
+ issueKey: createdIssueKey,
125
+ error: result.data.error,
126
+ });
127
+ }
128
+ catch (error) {
129
+ results.push({
130
+ operation: 'create',
131
+ success: false,
132
+ error: error instanceof Error ? error.message : 'Unknown error',
133
+ });
134
+ }
135
+ // Continue only if we created an issue
136
+ if (createdIssueKey) {
137
+ // 4. Test get
138
+ try {
139
+ const result = await new JiraBubble({
140
+ operation: 'get',
141
+ key: createdIssueKey,
142
+ expand: ['transitions'],
143
+ }).action();
144
+ const success = result.success && result.data.operation === 'get';
145
+ const issue = result.data.operation === 'get' ? result.data.issue : undefined;
146
+ results.push({
147
+ operation: 'get',
148
+ success,
149
+ details: issue
150
+ ? `Retrieved: ${issue.fields?.summary}`
151
+ : 'Failed to get issue',
152
+ issueKey: createdIssueKey,
153
+ error: result.data.error,
154
+ });
155
+ }
156
+ catch (error) {
157
+ results.push({
158
+ operation: 'get',
159
+ success: false,
160
+ issueKey: createdIssueKey,
161
+ error: error instanceof Error ? error.message : 'Unknown error',
162
+ });
163
+ }
164
+ // 5. Test update
165
+ try {
166
+ const result = await new JiraBubble({
167
+ operation: 'update',
168
+ key: createdIssueKey,
169
+ summary: `Integration Test Issue (Updated) - ${timestamp}`,
170
+ priority: 'High',
171
+ labels: { add: ['updated'] },
172
+ }).action();
173
+ const success = result.success && result.data.operation === 'update';
174
+ results.push({
175
+ operation: 'update',
176
+ success,
177
+ details: success
178
+ ? 'Updated summary, priority, and labels'
179
+ : 'Failed to update',
180
+ issueKey: createdIssueKey,
181
+ error: result.data.error,
182
+ });
183
+ }
184
+ catch (error) {
185
+ results.push({
186
+ operation: 'update',
187
+ success: false,
188
+ issueKey: createdIssueKey,
189
+ error: error instanceof Error ? error.message : 'Unknown error',
190
+ });
191
+ }
192
+ // 6. Test add_comment (with markdown)
193
+ const markdownComment = `## Test Comment
194
+
195
+ This comment tests **markdown** formatting:
196
+ - Bold: **works**
197
+ - Italic: *works*
198
+ - Code: \`console.log('hello')\`
199
+ - Link: [Documentation](https://docs.example.com)
200
+
201
+ \`\`\`javascript
202
+ // Code block test
203
+ function test() {
204
+ return 'Integration Flow';
205
+ }
206
+ \`\`\`
207
+
208
+ Timestamp: ${timestamp}`;
209
+ try {
210
+ const result = await new JiraBubble({
211
+ operation: 'add_comment',
212
+ key: createdIssueKey,
213
+ body: markdownComment,
214
+ }).action();
215
+ const success = result.success && result.data.operation === 'add_comment';
216
+ results.push({
217
+ operation: 'add_comment',
218
+ success,
219
+ details: success ? 'Added test comment' : 'Failed to add comment',
220
+ issueKey: createdIssueKey,
221
+ error: result.data.error,
222
+ });
223
+ }
224
+ catch (error) {
225
+ results.push({
226
+ operation: 'add_comment',
227
+ success: false,
228
+ issueKey: createdIssueKey,
229
+ error: error instanceof Error ? error.message : 'Unknown error',
230
+ });
231
+ }
232
+ // 7. Test get_comments
233
+ try {
234
+ const result = await new JiraBubble({
235
+ operation: 'get_comments',
236
+ key: createdIssueKey,
237
+ }).action();
238
+ const success = result.success && result.data.operation === 'get_comments';
239
+ const commentCount = result.data.operation === 'get_comments'
240
+ ? result.data.comments?.length || 0
241
+ : 0;
242
+ results.push({
243
+ operation: 'get_comments',
244
+ success,
245
+ details: `Found ${commentCount} comments`,
246
+ issueKey: createdIssueKey,
247
+ error: result.data.error,
248
+ });
249
+ }
250
+ catch (error) {
251
+ results.push({
252
+ operation: 'get_comments',
253
+ success: false,
254
+ issueKey: createdIssueKey,
255
+ error: error instanceof Error ? error.message : 'Unknown error',
256
+ });
257
+ }
258
+ // 8. Test list_transitions
259
+ let availableTransitions = [];
260
+ try {
261
+ const result = await new JiraBubble({
262
+ operation: 'list_transitions',
263
+ key: createdIssueKey,
264
+ }).action();
265
+ const success = result.success && result.data.operation === 'list_transitions';
266
+ availableTransitions =
267
+ result.data.operation === 'list_transitions'
268
+ ? result.data.transitions || []
269
+ : [];
270
+ results.push({
271
+ operation: 'list_transitions',
272
+ success,
273
+ details: `Found ${availableTransitions.length} transitions`,
274
+ issueKey: createdIssueKey,
275
+ error: result.data.error,
276
+ });
277
+ }
278
+ catch (error) {
279
+ results.push({
280
+ operation: 'list_transitions',
281
+ success: false,
282
+ issueKey: createdIssueKey,
283
+ error: error instanceof Error ? error.message : 'Unknown error',
284
+ });
285
+ }
286
+ // 9. Test transition (if transitions available)
287
+ if (availableTransitions.length > 0) {
288
+ try {
289
+ // Find "In Progress" transition or use the first available
290
+ const targetTransition = availableTransitions.find((t) => t.name.toLowerCase().includes('progress') ||
291
+ t.to?.name?.toLowerCase().includes('progress')) || availableTransitions[0];
292
+ const result = await new JiraBubble({
293
+ operation: 'transition',
294
+ key: createdIssueKey,
295
+ transition_id: targetTransition.id,
296
+ comment: 'Transitioning via Integration Flow test',
297
+ }).action();
298
+ const success = result.success && result.data.operation === 'transition';
299
+ results.push({
300
+ operation: 'transition',
301
+ success,
302
+ details: success
303
+ ? `Transitioned to ${targetTransition.to?.name || targetTransition.name}`
304
+ : 'Failed to transition',
305
+ issueKey: createdIssueKey,
306
+ error: result.data.error,
307
+ });
308
+ }
309
+ catch (error) {
310
+ results.push({
311
+ operation: 'transition',
312
+ success: false,
313
+ issueKey: createdIssueKey,
314
+ error: error instanceof Error ? error.message : 'Unknown error',
315
+ });
316
+ }
317
+ }
318
+ }
319
+ // 10. Test search
320
+ try {
321
+ const result = await new JiraBubble({
322
+ operation: 'search',
323
+ jql: `project = "${projectKey}" AND labels = "integration-test" ORDER BY created DESC`,
324
+ limit: 5,
325
+ fields: ['summary', 'status', 'priority'],
326
+ }).action();
327
+ const success = result.success && result.data.operation === 'search';
328
+ const issueCount = result.data.operation === 'search'
329
+ ? result.data.issues?.length || 0
330
+ : 0;
331
+ results.push({
332
+ operation: 'search',
333
+ success,
334
+ details: `Found ${issueCount} issues with integration-test label`,
335
+ error: result.data.error,
336
+ });
337
+ }
338
+ catch (error) {
339
+ results.push({
340
+ operation: 'search',
341
+ success: false,
342
+ error: error instanceof Error ? error.message : 'Unknown error',
343
+ });
344
+ }
345
+ // Summary
346
+ const successCount = results.filter((r) => r.success).length;
347
+ const totalCount = results.length;
348
+ const allPassed = successCount === totalCount;
349
+ return {
350
+ success: allPassed,
351
+ testResults: results,
352
+ createdIssueKey,
353
+ projectKey,
354
+ summary: `${successCount}/${totalCount} operations succeeded`,
355
+ };
356
+ }
357
+ }
358
+ //# sourceMappingURL=jira.integration.flow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jira.integration.flow.js","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/jira/jira.integration.flow.ts"],"names":[],"mappings":"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"}