@bubblelab/bubble-core 0.1.103 → 0.1.106
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/dist/bubble-bundle.d.ts +100 -55
- package/dist/bubble-factory.d.ts.map +1 -1
- package/dist/bubble-factory.js +4 -0
- package/dist/bubble-factory.js.map +1 -1
- package/dist/bubbles/service-bubble/ai-agent.d.ts +4 -4
- package/dist/bubbles/service-bubble/apify/apify.d.ts +4 -4
- package/dist/bubbles/service-bubble/confluence/confluence.d.ts +1957 -0
- package/dist/bubbles/service-bubble/confluence/confluence.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/confluence/confluence.integration.flow.d.ts +35 -0
- package/dist/bubbles/service-bubble/confluence/confluence.integration.flow.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/confluence/confluence.integration.flow.js +327 -0
- package/dist/bubbles/service-bubble/confluence/confluence.integration.flow.js.map +1 -0
- package/dist/bubbles/service-bubble/confluence/confluence.js +534 -0
- package/dist/bubbles/service-bubble/confluence/confluence.js.map +1 -0
- package/dist/bubbles/service-bubble/confluence/confluence.schema.d.ts +2435 -0
- package/dist/bubbles/service-bubble/confluence/confluence.schema.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/confluence/confluence.schema.js +467 -0
- package/dist/bubbles/service-bubble/confluence/confluence.schema.js.map +1 -0
- package/dist/bubbles/service-bubble/confluence/confluence.utils.d.ts +49 -0
- package/dist/bubbles/service-bubble/confluence/confluence.utils.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/confluence/confluence.utils.js +337 -0
- package/dist/bubbles/service-bubble/confluence/confluence.utils.js.map +1 -0
- package/dist/bubbles/service-bubble/confluence/index.d.ts +5 -0
- package/dist/bubbles/service-bubble/confluence/index.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/confluence/index.js +5 -0
- package/dist/bubbles/service-bubble/confluence/index.js.map +1 -0
- package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +8 -8
- package/dist/bubbles/service-bubble/crustdata/crustdata.schema.d.ts +16 -16
- package/dist/bubbles/service-bubble/firecrawl.d.ts +4 -4
- package/dist/bubbles/service-bubble/gmail.d.ts +84 -84
- package/dist/bubbles/service-bubble/google-drive.d.ts +32 -32
- package/dist/bubbles/service-bubble/google-drive.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/google-drive.js +22 -2
- package/dist/bubbles/service-bubble/google-drive.js.map +1 -1
- package/dist/bubbles/service-bubble/google-sheets/google-sheets.schema.js +6 -6
- package/dist/bubbles/service-bubble/google-sheets/google-sheets.schema.js.map +1 -1
- package/dist/bubbles/service-bubble/jira/jira.d.ts +12 -12
- package/dist/bubbles/service-bubble/jira/jira.schema.d.ts +14 -14
- package/dist/bubbles/service-bubble/resend.d.ts +4 -4
- package/dist/bubbles/service-bubble/salesforce/index.d.ts +4 -0
- package/dist/bubbles/service-bubble/salesforce/index.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/salesforce/index.js +4 -0
- package/dist/bubbles/service-bubble/salesforce/index.js.map +1 -0
- package/dist/bubbles/service-bubble/salesforce/salesforce.d.ts +1331 -0
- package/dist/bubbles/service-bubble/salesforce/salesforce.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/salesforce/salesforce.js +618 -0
- package/dist/bubbles/service-bubble/salesforce/salesforce.js.map +1 -0
- package/dist/bubbles/service-bubble/salesforce/salesforce.schema.d.ts +1445 -0
- package/dist/bubbles/service-bubble/salesforce/salesforce.schema.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/salesforce/salesforce.schema.js +609 -0
- package/dist/bubbles/service-bubble/salesforce/salesforce.schema.js.map +1 -0
- package/dist/bubbles/service-bubble/salesforce/salesforce.utils.d.ts +87 -0
- package/dist/bubbles/service-bubble/salesforce/salesforce.utils.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/salesforce/salesforce.utils.js +181 -0
- package/dist/bubbles/service-bubble/salesforce/salesforce.utils.js.map +1 -0
- package/dist/bubbles/service-bubble/slack/slack.d.ts +36 -36
- package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +8 -8
- package/dist/bubbles/tool-bubble/twitter-tool.d.ts +10 -10
- package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +8 -8
- package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.d.ts +16 -16
- package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +16 -16
- package/dist/bubbles.json +1247 -8
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confluence.d.ts","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/confluence/confluence.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,qBAAqB,EAC1B,KAAK,gBAAgB,EAWtB,MAAM,wBAAwB,CAAC;AAOhC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,gBAAgB,CAC3B,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,CACvD,SAAQ,aAAa,CACrB,CAAC,EACD,OAAO,CAAC,gBAAgB,EAAE;IAAE,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;CAAE,CAAC,CACzD;IACC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IAC1C,MAAM,CAAC,QAAQ,CAAC,OAAO,gBAAgB;IACvC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAG,OAAO,CAAU;IAC5C,MAAM,CAAC,QAAQ,CAAC,UAAU,gBAAgB;IAC1C,MAAM,CAAC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAA0B;IAChD,MAAM,CAAC,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAA0B;IACtD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,kEACiC;IACjE,MAAM,CAAC,QAAQ,CAAC,eAAe,u5BAsB7B;IACF,MAAM,CAAC,QAAQ,CAAC,KAAK,gBAAgB;gBAEzB,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,aAAa;IAIjC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAiB/C;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAoCxB;;OAEG;YACW,eAAe;IAY7B;;OAEG;YACW,UAAU;IASxB;;OAEG;YACW,wBAAwB;IAqDtC;;OAEG;YACW,0BAA0B;cAqDxB,aAAa,CAC3B,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;QAAE,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;KAAE,CAAC,CAAC;YAiEtD,UAAU;YA2CV,QAAQ;YAqBR,SAAS;YA+CT,OAAO;YAyCP,UAAU;YA+CV,UAAU;YAkEV,UAAU;YAmBV,MAAM;YA2DN,UAAU;YAqCV,WAAW;IA8CzB,SAAS,CAAC,gBAAgB,IAAI,MAAM,GAAG,SAAS;CAWjD"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { BubbleFlow, type WebhookEvent } from '@bubblelab/bubble-core';
|
|
2
|
+
export interface TestResult {
|
|
3
|
+
operation: string;
|
|
4
|
+
success: boolean;
|
|
5
|
+
details?: string;
|
|
6
|
+
pageId?: string;
|
|
7
|
+
error?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface Output {
|
|
10
|
+
success: boolean;
|
|
11
|
+
testResults: TestResult[];
|
|
12
|
+
createdPageId?: string;
|
|
13
|
+
spaceId?: string;
|
|
14
|
+
summary: string;
|
|
15
|
+
}
|
|
16
|
+
export type ConfluenceIntegrationTestPayload = WebhookEvent;
|
|
17
|
+
/**
|
|
18
|
+
* Integration flow test for ConfluenceBubble
|
|
19
|
+
*
|
|
20
|
+
* Automatically discovers the first available space and tests key operations:
|
|
21
|
+
* 1. list_spaces - List available Confluence spaces (uses first one found)
|
|
22
|
+
* 2. get_space - Get details for the discovered space
|
|
23
|
+
* 3. create_page - Create a new test page
|
|
24
|
+
* 4. get_page - Retrieve the created page
|
|
25
|
+
* 5. update_page - Update the page content
|
|
26
|
+
* 6. add_comment - Add a comment to the page
|
|
27
|
+
* 7. get_comments - Retrieve comments
|
|
28
|
+
* 8. search - Search for content using CQL
|
|
29
|
+
* 9. list_pages - List pages in the space
|
|
30
|
+
* 10. delete_page - Delete the test page
|
|
31
|
+
*/
|
|
32
|
+
export declare class ConfluenceIntegrationFlow extends BubbleFlow<'webhook/http'> {
|
|
33
|
+
handle(_payload: ConfluenceIntegrationTestPayload): Promise<Output>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=confluence.integration.flow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confluence.integration.flow.d.ts","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/confluence/confluence.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,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,gCAAgC,GAAG,YAAY,CAAC;AAE5D;;;;;;;;;;;;;;GAcG;AACH,qBAAa,yBAA0B,SAAQ,UAAU,CAAC,cAAc,CAAC;IACjE,MAAM,CAAC,QAAQ,EAAE,gCAAgC,GAAG,OAAO,CAAC,MAAM,CAAC;CAsV1E"}
|
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
import { BubbleFlow, ConfluenceBubble, } from '@bubblelab/bubble-core';
|
|
2
|
+
/**
|
|
3
|
+
* Integration flow test for ConfluenceBubble
|
|
4
|
+
*
|
|
5
|
+
* Automatically discovers the first available space and tests key operations:
|
|
6
|
+
* 1. list_spaces - List available Confluence spaces (uses first one found)
|
|
7
|
+
* 2. get_space - Get details for the discovered space
|
|
8
|
+
* 3. create_page - Create a new test page
|
|
9
|
+
* 4. get_page - Retrieve the created page
|
|
10
|
+
* 5. update_page - Update the page content
|
|
11
|
+
* 6. add_comment - Add a comment to the page
|
|
12
|
+
* 7. get_comments - Retrieve comments
|
|
13
|
+
* 8. search - Search for content using CQL
|
|
14
|
+
* 9. list_pages - List pages in the space
|
|
15
|
+
* 10. delete_page - Delete the test page
|
|
16
|
+
*/
|
|
17
|
+
export class ConfluenceIntegrationFlow extends BubbleFlow {
|
|
18
|
+
async handle(_payload) {
|
|
19
|
+
const results = [];
|
|
20
|
+
const timestamp = new Date().toISOString();
|
|
21
|
+
let createdPageId;
|
|
22
|
+
let spaceId;
|
|
23
|
+
// 1. Test list_spaces
|
|
24
|
+
try {
|
|
25
|
+
const result = await new ConfluenceBubble({
|
|
26
|
+
operation: 'list_spaces',
|
|
27
|
+
limit: 10,
|
|
28
|
+
}).action();
|
|
29
|
+
const success = result.success && result.data.operation === 'list_spaces';
|
|
30
|
+
const spaces = result.data.operation === 'list_spaces' ? result.data.spaces || [] : [];
|
|
31
|
+
if (spaces.length > 0) {
|
|
32
|
+
spaceId = spaces[0].id;
|
|
33
|
+
}
|
|
34
|
+
results.push({
|
|
35
|
+
operation: 'list_spaces',
|
|
36
|
+
success,
|
|
37
|
+
details: spaceId
|
|
38
|
+
? `Found ${spaces.length} spaces, using ID "${spaceId}"`
|
|
39
|
+
: `Found ${spaces.length} spaces`,
|
|
40
|
+
error: result.data.error,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
results.push({
|
|
45
|
+
operation: 'list_spaces',
|
|
46
|
+
success: false,
|
|
47
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
if (!spaceId) {
|
|
51
|
+
return {
|
|
52
|
+
success: false,
|
|
53
|
+
testResults: results,
|
|
54
|
+
summary: 'No spaces found - cannot continue tests',
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
// 2. Test get_space
|
|
58
|
+
try {
|
|
59
|
+
const result = await new ConfluenceBubble({
|
|
60
|
+
operation: 'get_space',
|
|
61
|
+
space_id: spaceId,
|
|
62
|
+
}).action();
|
|
63
|
+
const success = result.success && result.data.operation === 'get_space';
|
|
64
|
+
results.push({
|
|
65
|
+
operation: 'get_space',
|
|
66
|
+
success,
|
|
67
|
+
details: success
|
|
68
|
+
? `Retrieved space: ${result.data.space?.name || spaceId}`
|
|
69
|
+
: 'Failed to get space',
|
|
70
|
+
error: result.data.error,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
results.push({
|
|
75
|
+
operation: 'get_space',
|
|
76
|
+
success: false,
|
|
77
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
// 3. Test create_page
|
|
81
|
+
const markdownContent = `# Integration Test Page
|
|
82
|
+
|
|
83
|
+
This page was created by the **Confluence Integration Flow** test.
|
|
84
|
+
|
|
85
|
+
## Features Tested
|
|
86
|
+
- **Bold text** and *italic text*
|
|
87
|
+
- \`inline code\` formatting
|
|
88
|
+
- [Link to Anthropic](https://anthropic.com)
|
|
89
|
+
|
|
90
|
+
### Checklist
|
|
91
|
+
1. Create page
|
|
92
|
+
2. Update page
|
|
93
|
+
3. Add comments
|
|
94
|
+
4. Search content
|
|
95
|
+
|
|
96
|
+
> This is a blockquote to test markdown conversion
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
Timestamp: ${timestamp}`;
|
|
101
|
+
try {
|
|
102
|
+
const result = await new ConfluenceBubble({
|
|
103
|
+
operation: 'create_page',
|
|
104
|
+
space_id: spaceId,
|
|
105
|
+
title: `Integration Test Page - ${timestamp}`,
|
|
106
|
+
body: markdownContent,
|
|
107
|
+
}).action();
|
|
108
|
+
const success = result.success && result.data.operation === 'create_page';
|
|
109
|
+
createdPageId =
|
|
110
|
+
result.data.operation === 'create_page'
|
|
111
|
+
? result.data.page?.id
|
|
112
|
+
: undefined;
|
|
113
|
+
results.push({
|
|
114
|
+
operation: 'create_page',
|
|
115
|
+
success,
|
|
116
|
+
details: createdPageId
|
|
117
|
+
? `Created page ${createdPageId}`
|
|
118
|
+
: 'Failed to create page',
|
|
119
|
+
pageId: createdPageId,
|
|
120
|
+
error: result.data.error,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
results.push({
|
|
125
|
+
operation: 'create_page',
|
|
126
|
+
success: false,
|
|
127
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
if (createdPageId) {
|
|
131
|
+
// 4. Test get_page
|
|
132
|
+
try {
|
|
133
|
+
const result = await new ConfluenceBubble({
|
|
134
|
+
operation: 'get_page',
|
|
135
|
+
page_id: createdPageId,
|
|
136
|
+
include_body: true,
|
|
137
|
+
}).action();
|
|
138
|
+
const success = result.success && result.data.operation === 'get_page';
|
|
139
|
+
results.push({
|
|
140
|
+
operation: 'get_page',
|
|
141
|
+
success,
|
|
142
|
+
details: success
|
|
143
|
+
? `Retrieved page: ${result.data.page?.title}`
|
|
144
|
+
: 'Failed to get page',
|
|
145
|
+
pageId: createdPageId,
|
|
146
|
+
error: result.data.error,
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
results.push({
|
|
151
|
+
operation: 'get_page',
|
|
152
|
+
success: false,
|
|
153
|
+
pageId: createdPageId,
|
|
154
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
// 5. Test update_page
|
|
158
|
+
try {
|
|
159
|
+
const result = await new ConfluenceBubble({
|
|
160
|
+
operation: 'update_page',
|
|
161
|
+
page_id: createdPageId,
|
|
162
|
+
title: `Integration Test Page (Updated) - ${timestamp}`,
|
|
163
|
+
body: `${markdownContent}\n\n## Update\nThis page was updated by the integration test.`,
|
|
164
|
+
version_message: 'Updated by integration test',
|
|
165
|
+
}).action();
|
|
166
|
+
const success = result.success && result.data.operation === 'update_page';
|
|
167
|
+
results.push({
|
|
168
|
+
operation: 'update_page',
|
|
169
|
+
success,
|
|
170
|
+
details: success
|
|
171
|
+
? 'Updated page title and content'
|
|
172
|
+
: 'Failed to update',
|
|
173
|
+
pageId: createdPageId,
|
|
174
|
+
error: result.data.error,
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
catch (error) {
|
|
178
|
+
results.push({
|
|
179
|
+
operation: 'update_page',
|
|
180
|
+
success: false,
|
|
181
|
+
pageId: createdPageId,
|
|
182
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
// 6. Test add_comment
|
|
186
|
+
try {
|
|
187
|
+
const result = await new ConfluenceBubble({
|
|
188
|
+
operation: 'add_comment',
|
|
189
|
+
page_id: createdPageId,
|
|
190
|
+
body: `## Test Comment\n\nThis comment tests **markdown** formatting.\n\nTimestamp: ${timestamp}`,
|
|
191
|
+
}).action();
|
|
192
|
+
const success = result.success && result.data.operation === 'add_comment';
|
|
193
|
+
results.push({
|
|
194
|
+
operation: 'add_comment',
|
|
195
|
+
success,
|
|
196
|
+
details: success ? 'Added test comment' : 'Failed to add comment',
|
|
197
|
+
pageId: createdPageId,
|
|
198
|
+
error: result.data.error,
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
results.push({
|
|
203
|
+
operation: 'add_comment',
|
|
204
|
+
success: false,
|
|
205
|
+
pageId: createdPageId,
|
|
206
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
// 7. Test get_comments
|
|
210
|
+
try {
|
|
211
|
+
const result = await new ConfluenceBubble({
|
|
212
|
+
operation: 'get_comments',
|
|
213
|
+
page_id: createdPageId,
|
|
214
|
+
}).action();
|
|
215
|
+
const success = result.success && result.data.operation === 'get_comments';
|
|
216
|
+
const commentCount = result.data.operation === 'get_comments'
|
|
217
|
+
? result.data.comments?.length || 0
|
|
218
|
+
: 0;
|
|
219
|
+
results.push({
|
|
220
|
+
operation: 'get_comments',
|
|
221
|
+
success,
|
|
222
|
+
details: `Found ${commentCount} comments`,
|
|
223
|
+
pageId: createdPageId,
|
|
224
|
+
error: result.data.error,
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
catch (error) {
|
|
228
|
+
results.push({
|
|
229
|
+
operation: 'get_comments',
|
|
230
|
+
success: false,
|
|
231
|
+
pageId: createdPageId,
|
|
232
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
// 8. Test search (uses general CQL query for established content;
|
|
237
|
+
// newly created pages have a long indexing delay on Confluence Cloud)
|
|
238
|
+
try {
|
|
239
|
+
const result = await new ConfluenceBubble({
|
|
240
|
+
operation: 'search',
|
|
241
|
+
cql: `type=page ORDER BY created DESC`,
|
|
242
|
+
limit: 5,
|
|
243
|
+
}).action();
|
|
244
|
+
const resultCount = result.data.operation === 'search'
|
|
245
|
+
? result.data.results?.length || 0
|
|
246
|
+
: 0;
|
|
247
|
+
const success = result.success && result.data.operation === 'search' && resultCount > 0;
|
|
248
|
+
results.push({
|
|
249
|
+
operation: 'search',
|
|
250
|
+
success,
|
|
251
|
+
details: success
|
|
252
|
+
? `Found ${resultCount} results`
|
|
253
|
+
: `Search returned 0 results (may indicate indexing issue)`,
|
|
254
|
+
error: result.data.error,
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
catch (error) {
|
|
258
|
+
results.push({
|
|
259
|
+
operation: 'search',
|
|
260
|
+
success: false,
|
|
261
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
// 9. Test list_pages
|
|
265
|
+
try {
|
|
266
|
+
const result = await new ConfluenceBubble({
|
|
267
|
+
operation: 'list_pages',
|
|
268
|
+
space_id: spaceId,
|
|
269
|
+
limit: 5,
|
|
270
|
+
}).action();
|
|
271
|
+
const success = result.success && result.data.operation === 'list_pages';
|
|
272
|
+
const pageCount = result.data.operation === 'list_pages'
|
|
273
|
+
? result.data.pages?.length || 0
|
|
274
|
+
: 0;
|
|
275
|
+
results.push({
|
|
276
|
+
operation: 'list_pages',
|
|
277
|
+
success,
|
|
278
|
+
details: `Found ${pageCount} pages in space`,
|
|
279
|
+
error: result.data.error,
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
catch (error) {
|
|
283
|
+
results.push({
|
|
284
|
+
operation: 'list_pages',
|
|
285
|
+
success: false,
|
|
286
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
287
|
+
});
|
|
288
|
+
}
|
|
289
|
+
// 10. Test delete_page (clean up)
|
|
290
|
+
if (createdPageId) {
|
|
291
|
+
try {
|
|
292
|
+
const result = await new ConfluenceBubble({
|
|
293
|
+
operation: 'delete_page',
|
|
294
|
+
page_id: createdPageId,
|
|
295
|
+
}).action();
|
|
296
|
+
const success = result.success && result.data.operation === 'delete_page';
|
|
297
|
+
results.push({
|
|
298
|
+
operation: 'delete_page',
|
|
299
|
+
success,
|
|
300
|
+
details: success ? 'Deleted test page' : 'Failed to delete page',
|
|
301
|
+
pageId: createdPageId,
|
|
302
|
+
error: result.data.error,
|
|
303
|
+
});
|
|
304
|
+
}
|
|
305
|
+
catch (error) {
|
|
306
|
+
results.push({
|
|
307
|
+
operation: 'delete_page',
|
|
308
|
+
success: false,
|
|
309
|
+
pageId: createdPageId,
|
|
310
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
// Summary
|
|
315
|
+
const successCount = results.filter((r) => r.success).length;
|
|
316
|
+
const totalCount = results.length;
|
|
317
|
+
const allPassed = successCount === totalCount;
|
|
318
|
+
return {
|
|
319
|
+
success: allPassed,
|
|
320
|
+
testResults: results,
|
|
321
|
+
createdPageId,
|
|
322
|
+
spaceId,
|
|
323
|
+
summary: `${successCount}/${totalCount} operations succeeded`,
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
//# sourceMappingURL=confluence.integration.flow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confluence.integration.flow.js","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/confluence/confluence.integration.flow.ts"],"names":[],"mappings":"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"}
|