@marktoflow/integrations 2.0.0-alpha.3

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 (105) hide show
  1. package/dist/adapters/claude-code.d.ts +16 -0
  2. package/dist/adapters/claude-code.d.ts.map +1 -0
  3. package/dist/adapters/claude-code.js +56 -0
  4. package/dist/adapters/claude-code.js.map +1 -0
  5. package/dist/adapters/ollama.d.ts +3 -0
  6. package/dist/adapters/ollama.d.ts.map +1 -0
  7. package/dist/adapters/ollama.js +9 -0
  8. package/dist/adapters/ollama.js.map +1 -0
  9. package/dist/adapters/opencode.d.ts +21 -0
  10. package/dist/adapters/opencode.d.ts.map +1 -0
  11. package/dist/adapters/opencode.js +119 -0
  12. package/dist/adapters/opencode.js.map +1 -0
  13. package/dist/claude-code.d.ts +16 -0
  14. package/dist/claude-code.d.ts.map +1 -0
  15. package/dist/claude-code.js +56 -0
  16. package/dist/claude-code.js.map +1 -0
  17. package/dist/github.d.ts +3 -0
  18. package/dist/github.d.ts.map +1 -0
  19. package/dist/github.js +13 -0
  20. package/dist/github.js.map +1 -0
  21. package/dist/index.d.ts +21 -0
  22. package/dist/index.d.ts.map +1 -0
  23. package/dist/index.js +67 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/jira.d.ts +3 -0
  26. package/dist/jira.d.ts.map +1 -0
  27. package/dist/jira.js +21 -0
  28. package/dist/jira.js.map +1 -0
  29. package/dist/ollama.d.ts +3 -0
  30. package/dist/ollama.d.ts.map +1 -0
  31. package/dist/ollama.js +9 -0
  32. package/dist/ollama.js.map +1 -0
  33. package/dist/opencode.d.ts +19 -0
  34. package/dist/opencode.d.ts.map +1 -0
  35. package/dist/opencode.js +104 -0
  36. package/dist/opencode.js.map +1 -0
  37. package/dist/script.d.ts +3 -0
  38. package/dist/script.d.ts.map +1 -0
  39. package/dist/script.js +21 -0
  40. package/dist/script.js.map +1 -0
  41. package/dist/services/airtable.d.ts +145 -0
  42. package/dist/services/airtable.d.ts.map +1 -0
  43. package/dist/services/airtable.js +295 -0
  44. package/dist/services/airtable.js.map +1 -0
  45. package/dist/services/confluence.d.ts +205 -0
  46. package/dist/services/confluence.d.ts.map +1 -0
  47. package/dist/services/confluence.js +356 -0
  48. package/dist/services/confluence.js.map +1 -0
  49. package/dist/services/discord.d.ts +212 -0
  50. package/dist/services/discord.d.ts.map +1 -0
  51. package/dist/services/discord.js +279 -0
  52. package/dist/services/discord.js.map +1 -0
  53. package/dist/services/github.d.ts +3 -0
  54. package/dist/services/github.d.ts.map +1 -0
  55. package/dist/services/github.js +13 -0
  56. package/dist/services/github.js.map +1 -0
  57. package/dist/services/gmail-trigger.d.ts +92 -0
  58. package/dist/services/gmail-trigger.d.ts.map +1 -0
  59. package/dist/services/gmail-trigger.js +172 -0
  60. package/dist/services/gmail-trigger.js.map +1 -0
  61. package/dist/services/gmail.d.ts +116 -0
  62. package/dist/services/gmail.d.ts.map +1 -0
  63. package/dist/services/gmail.js +333 -0
  64. package/dist/services/gmail.js.map +1 -0
  65. package/dist/services/http.d.ts +120 -0
  66. package/dist/services/http.d.ts.map +1 -0
  67. package/dist/services/http.js +284 -0
  68. package/dist/services/http.js.map +1 -0
  69. package/dist/services/jira.d.ts +3 -0
  70. package/dist/services/jira.d.ts.map +1 -0
  71. package/dist/services/jira.js +21 -0
  72. package/dist/services/jira.js.map +1 -0
  73. package/dist/services/linear.d.ts +163 -0
  74. package/dist/services/linear.d.ts.map +1 -0
  75. package/dist/services/linear.js +326 -0
  76. package/dist/services/linear.js.map +1 -0
  77. package/dist/services/notion.d.ts +206 -0
  78. package/dist/services/notion.d.ts.map +1 -0
  79. package/dist/services/notion.js +358 -0
  80. package/dist/services/notion.js.map +1 -0
  81. package/dist/services/outlook-trigger.d.ts +121 -0
  82. package/dist/services/outlook-trigger.d.ts.map +1 -0
  83. package/dist/services/outlook-trigger.js +204 -0
  84. package/dist/services/outlook-trigger.js.map +1 -0
  85. package/dist/services/outlook.d.ts +237 -0
  86. package/dist/services/outlook.d.ts.map +1 -0
  87. package/dist/services/outlook.js +475 -0
  88. package/dist/services/outlook.js.map +1 -0
  89. package/dist/services/slack-socket.d.ts +18 -0
  90. package/dist/services/slack-socket.d.ts.map +1 -0
  91. package/dist/services/slack-socket.js +46 -0
  92. package/dist/services/slack-socket.js.map +1 -0
  93. package/dist/services/slack.d.ts +3 -0
  94. package/dist/services/slack.d.ts.map +1 -0
  95. package/dist/services/slack.js +11 -0
  96. package/dist/services/slack.js.map +1 -0
  97. package/dist/slack.d.ts +3 -0
  98. package/dist/slack.d.ts.map +1 -0
  99. package/dist/slack.js +11 -0
  100. package/dist/slack.js.map +1 -0
  101. package/dist/tools/script.d.ts +3 -0
  102. package/dist/tools/script.d.ts.map +1 -0
  103. package/dist/tools/script.js +21 -0
  104. package/dist/tools/script.js.map +1 -0
  105. package/package.json +57 -0
@@ -0,0 +1,205 @@
1
+ /**
2
+ * Confluence Integration
3
+ *
4
+ * Enterprise documentation and knowledge management (Atlassian).
5
+ * API Docs: https://developer.atlassian.com/cloud/confluence/rest/v2/intro/
6
+ */
7
+ import { SDKInitializer } from '@marktoflow/core';
8
+ export interface ConfluencePage {
9
+ id: string;
10
+ status: string;
11
+ title: string;
12
+ spaceId: string;
13
+ parentId?: string;
14
+ parentType?: string;
15
+ authorId: string;
16
+ createdAt: string;
17
+ version: {
18
+ number: number;
19
+ createdAt: string;
20
+ };
21
+ body?: {
22
+ storage?: {
23
+ value: string;
24
+ };
25
+ view?: {
26
+ value: string;
27
+ };
28
+ };
29
+ _links: {
30
+ webui: string;
31
+ editui?: string;
32
+ tinyui?: string;
33
+ };
34
+ }
35
+ export interface ConfluenceSpace {
36
+ id: string;
37
+ key: string;
38
+ name: string;
39
+ type: string;
40
+ status: string;
41
+ description?: {
42
+ plain?: {
43
+ value: string;
44
+ };
45
+ };
46
+ homepageId?: string;
47
+ _links: {
48
+ webui: string;
49
+ };
50
+ }
51
+ export interface ConfluenceComment {
52
+ id: string;
53
+ status: string;
54
+ title: string;
55
+ body: {
56
+ storage?: {
57
+ value: string;
58
+ };
59
+ };
60
+ version: {
61
+ number: number;
62
+ createdAt: string;
63
+ };
64
+ authorId: string;
65
+ createdAt: string;
66
+ }
67
+ export interface CreatePageOptions {
68
+ spaceId: string;
69
+ title: string;
70
+ body: string;
71
+ bodyFormat?: 'storage' | 'wiki';
72
+ parentId?: string;
73
+ status?: 'current' | 'draft';
74
+ }
75
+ export interface UpdatePageOptions {
76
+ title?: string;
77
+ body?: string;
78
+ bodyFormat?: 'storage' | 'wiki';
79
+ status?: 'current' | 'draft';
80
+ version: number;
81
+ }
82
+ export interface SearchOptions {
83
+ query: string;
84
+ limit?: number;
85
+ start?: number;
86
+ includeArchivedSpaces?: boolean;
87
+ excerpt?: boolean;
88
+ }
89
+ export interface ListPagesOptions {
90
+ spaceId?: string;
91
+ title?: string;
92
+ status?: 'current' | 'draft' | 'archived';
93
+ limit?: number;
94
+ cursor?: string;
95
+ sort?: 'id' | '-id' | 'title' | '-title' | 'created-date' | '-created-date' | 'modified-date' | '-modified-date';
96
+ }
97
+ /**
98
+ * Confluence API client for workflow integration (v2 API)
99
+ */
100
+ export declare class ConfluenceClient {
101
+ private host;
102
+ private email;
103
+ private apiToken;
104
+ private baseUrl;
105
+ constructor(host: string, email: string, apiToken: string);
106
+ private get authHeader();
107
+ private request;
108
+ /**
109
+ * Get current user
110
+ */
111
+ getCurrentUser(): Promise<{
112
+ accountId: string;
113
+ email: string;
114
+ publicName: string;
115
+ }>;
116
+ /**
117
+ * List spaces
118
+ */
119
+ listSpaces(options?: {
120
+ limit?: number;
121
+ cursor?: string;
122
+ type?: 'global' | 'personal';
123
+ }): Promise<{
124
+ spaces: ConfluenceSpace[];
125
+ nextCursor?: string;
126
+ }>;
127
+ /**
128
+ * Get a space by ID
129
+ */
130
+ getSpace(spaceId: string): Promise<ConfluenceSpace>;
131
+ /**
132
+ * Get a space by key
133
+ */
134
+ getSpaceByKey(key: string): Promise<ConfluenceSpace>;
135
+ /**
136
+ * List pages
137
+ */
138
+ listPages(options?: ListPagesOptions): Promise<{
139
+ pages: ConfluencePage[];
140
+ nextCursor?: string;
141
+ }>;
142
+ /**
143
+ * Get a page by ID
144
+ */
145
+ getPage(pageId: string, includeBody?: boolean): Promise<ConfluencePage>;
146
+ /**
147
+ * Create a page
148
+ */
149
+ createPage(options: CreatePageOptions): Promise<ConfluencePage>;
150
+ /**
151
+ * Update a page
152
+ */
153
+ updatePage(pageId: string, options: UpdatePageOptions): Promise<ConfluencePage>;
154
+ /**
155
+ * Delete a page
156
+ */
157
+ deletePage(pageId: string): Promise<void>;
158
+ /**
159
+ * Get page content as storage format HTML
160
+ */
161
+ getPageContent(pageId: string): Promise<string>;
162
+ /**
163
+ * Append content to a page
164
+ */
165
+ appendToPage(pageId: string, content: string, bodyFormat?: 'storage' | 'wiki'): Promise<ConfluencePage>;
166
+ /**
167
+ * Get page comments
168
+ */
169
+ getPageComments(pageId: string, options?: {
170
+ limit?: number;
171
+ cursor?: string;
172
+ }): Promise<{
173
+ comments: ConfluenceComment[];
174
+ nextCursor?: string;
175
+ }>;
176
+ /**
177
+ * Add a comment to a page
178
+ */
179
+ addComment(pageId: string, body: string, bodyFormat?: 'storage' | 'wiki'): Promise<ConfluenceComment>;
180
+ /**
181
+ * Search for content
182
+ */
183
+ search(options: SearchOptions): Promise<{
184
+ results: Array<{
185
+ content: ConfluencePage;
186
+ excerpt?: string;
187
+ }>;
188
+ totalSize: number;
189
+ }>;
190
+ /**
191
+ * Get child pages
192
+ */
193
+ getChildPages(pageId: string, options?: {
194
+ limit?: number;
195
+ cursor?: string;
196
+ }): Promise<{
197
+ pages: ConfluencePage[];
198
+ nextCursor?: string;
199
+ }>;
200
+ private parseSpace;
201
+ private parsePage;
202
+ private parsePageV1;
203
+ }
204
+ export declare const ConfluenceInitializer: SDKInitializer;
205
+ //# sourceMappingURL=confluence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confluence.d.ts","sourceRoot":"","sources":["../../src/services/confluence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,356 @@
1
+ /**
2
+ * Confluence Integration
3
+ *
4
+ * Enterprise documentation and knowledge management (Atlassian).
5
+ * API Docs: https://developer.atlassian.com/cloud/confluence/rest/v2/intro/
6
+ */
7
+ /**
8
+ * Confluence API client for workflow integration (v2 API)
9
+ */
10
+ export class ConfluenceClient {
11
+ host;
12
+ email;
13
+ apiToken;
14
+ baseUrl;
15
+ constructor(host, email, apiToken) {
16
+ this.host = host;
17
+ this.email = email;
18
+ this.apiToken = apiToken;
19
+ this.baseUrl = `${host.replace(/\/$/, '')}/wiki/api/v2`;
20
+ }
21
+ get authHeader() {
22
+ return `Basic ${Buffer.from(`${this.email}:${this.apiToken}`).toString('base64')}`;
23
+ }
24
+ async request(method, path, body) {
25
+ const response = await fetch(`${this.baseUrl}${path}`, {
26
+ method,
27
+ headers: {
28
+ Authorization: this.authHeader,
29
+ 'Content-Type': 'application/json',
30
+ Accept: 'application/json',
31
+ },
32
+ body: body ? JSON.stringify(body) : undefined,
33
+ });
34
+ if (!response.ok) {
35
+ const error = await response.text();
36
+ throw new Error(`Confluence API error: ${response.status} ${error}`);
37
+ }
38
+ if (response.status === 204) {
39
+ return undefined;
40
+ }
41
+ return (await response.json());
42
+ }
43
+ /**
44
+ * Get current user
45
+ */
46
+ async getCurrentUser() {
47
+ // Note: Uses v1 API for user info
48
+ const response = await fetch(`${this.host.replace(/\/$/, '')}/wiki/rest/api/user/current`, {
49
+ headers: {
50
+ Authorization: this.authHeader,
51
+ Accept: 'application/json',
52
+ },
53
+ });
54
+ if (!response.ok) {
55
+ throw new Error(`Confluence API error: ${response.status}`);
56
+ }
57
+ const data = (await response.json());
58
+ return {
59
+ accountId: data.accountId,
60
+ email: data.email,
61
+ publicName: data.publicName,
62
+ };
63
+ }
64
+ /**
65
+ * List spaces
66
+ */
67
+ async listSpaces(options = {}) {
68
+ const params = [];
69
+ if (options.limit)
70
+ params.push(`limit=${options.limit}`);
71
+ if (options.cursor)
72
+ params.push(`cursor=${options.cursor}`);
73
+ if (options.type)
74
+ params.push(`type=${options.type}`);
75
+ const query = params.length ? `?${params.join('&')}` : '';
76
+ const data = await this.request('GET', `/spaces${query}`);
77
+ return {
78
+ spaces: data.results.map((s) => this.parseSpace(s)),
79
+ nextCursor: data._links?.next ? new URL(data._links.next).searchParams.get('cursor') ?? undefined : undefined,
80
+ };
81
+ }
82
+ /**
83
+ * Get a space by ID
84
+ */
85
+ async getSpace(spaceId) {
86
+ const data = await this.request('GET', `/spaces/${spaceId}`);
87
+ return this.parseSpace(data);
88
+ }
89
+ /**
90
+ * Get a space by key
91
+ */
92
+ async getSpaceByKey(key) {
93
+ const data = await this.request('GET', `/spaces?keys=${key}`);
94
+ if (!data.results.length) {
95
+ throw new Error(`Space not found: ${key}`);
96
+ }
97
+ return this.parseSpace(data.results[0]);
98
+ }
99
+ /**
100
+ * List pages
101
+ */
102
+ async listPages(options = {}) {
103
+ const params = [];
104
+ if (options.spaceId)
105
+ params.push(`space-id=${options.spaceId}`);
106
+ if (options.title)
107
+ params.push(`title=${encodeURIComponent(options.title)}`);
108
+ if (options.status)
109
+ params.push(`status=${options.status}`);
110
+ if (options.limit)
111
+ params.push(`limit=${options.limit}`);
112
+ if (options.cursor)
113
+ params.push(`cursor=${options.cursor}`);
114
+ if (options.sort)
115
+ params.push(`sort=${options.sort}`);
116
+ const query = params.length ? `?${params.join('&')}` : '';
117
+ const data = await this.request('GET', `/pages${query}`);
118
+ return {
119
+ pages: data.results.map((p) => this.parsePage(p)),
120
+ nextCursor: data._links?.next ? new URL(data._links.next).searchParams.get('cursor') ?? undefined : undefined,
121
+ };
122
+ }
123
+ /**
124
+ * Get a page by ID
125
+ */
126
+ async getPage(pageId, includeBody = true) {
127
+ const bodyFormat = includeBody ? '?body-format=storage' : '';
128
+ const data = await this.request('GET', `/pages/${pageId}${bodyFormat}`);
129
+ return this.parsePage(data);
130
+ }
131
+ /**
132
+ * Create a page
133
+ */
134
+ async createPage(options) {
135
+ const bodyFormat = options.bodyFormat ?? 'storage';
136
+ const requestBody = {
137
+ spaceId: options.spaceId,
138
+ status: options.status ?? 'current',
139
+ title: options.title,
140
+ body: {
141
+ representation: bodyFormat,
142
+ value: options.body,
143
+ },
144
+ };
145
+ if (options.parentId) {
146
+ requestBody.parentId = options.parentId;
147
+ }
148
+ const data = await this.request('POST', '/pages', requestBody);
149
+ return this.parsePage(data);
150
+ }
151
+ /**
152
+ * Update a page
153
+ */
154
+ async updatePage(pageId, options) {
155
+ const requestBody = {
156
+ id: pageId,
157
+ status: options.status ?? 'current',
158
+ version: {
159
+ number: options.version + 1,
160
+ message: 'Updated via marktoflow',
161
+ },
162
+ };
163
+ if (options.title) {
164
+ requestBody.title = options.title;
165
+ }
166
+ if (options.body) {
167
+ requestBody.body = {
168
+ representation: options.bodyFormat ?? 'storage',
169
+ value: options.body,
170
+ };
171
+ }
172
+ const data = await this.request('PUT', `/pages/${pageId}`, requestBody);
173
+ return this.parsePage(data);
174
+ }
175
+ /**
176
+ * Delete a page
177
+ */
178
+ async deletePage(pageId) {
179
+ await this.request('DELETE', `/pages/${pageId}`);
180
+ }
181
+ /**
182
+ * Get page content as storage format HTML
183
+ */
184
+ async getPageContent(pageId) {
185
+ const page = await this.getPage(pageId, true);
186
+ return page.body?.storage?.value ?? '';
187
+ }
188
+ /**
189
+ * Append content to a page
190
+ */
191
+ async appendToPage(pageId, content, bodyFormat = 'storage') {
192
+ const page = await this.getPage(pageId, true);
193
+ const currentContent = page.body?.storage?.value ?? '';
194
+ const newContent = `${currentContent}\n${content}`;
195
+ return this.updatePage(pageId, {
196
+ body: newContent,
197
+ bodyFormat,
198
+ version: page.version.number,
199
+ });
200
+ }
201
+ /**
202
+ * Get page comments
203
+ */
204
+ async getPageComments(pageId, options = {}) {
205
+ const params = [];
206
+ if (options.limit)
207
+ params.push(`limit=${options.limit}`);
208
+ if (options.cursor)
209
+ params.push(`cursor=${options.cursor}`);
210
+ const query = params.length ? `?${params.join('&')}` : '';
211
+ const data = await this.request('GET', `/pages/${pageId}/footer-comments${query}`);
212
+ return {
213
+ comments: data.results.map((c) => ({
214
+ id: c.id,
215
+ status: c.status,
216
+ title: c.title,
217
+ body: c.body,
218
+ version: c.version,
219
+ authorId: c.authorId,
220
+ createdAt: c.createdAt,
221
+ })),
222
+ nextCursor: data._links?.next ? new URL(data._links.next).searchParams.get('cursor') ?? undefined : undefined,
223
+ };
224
+ }
225
+ /**
226
+ * Add a comment to a page
227
+ */
228
+ async addComment(pageId, body, bodyFormat = 'storage') {
229
+ const data = await this.request('POST', `/pages/${pageId}/footer-comments`, {
230
+ body: {
231
+ representation: bodyFormat,
232
+ value: body,
233
+ },
234
+ });
235
+ return {
236
+ id: data.id,
237
+ status: data.status,
238
+ title: data.title,
239
+ body: data.body,
240
+ version: data.version,
241
+ authorId: data.authorId,
242
+ createdAt: data.createdAt,
243
+ };
244
+ }
245
+ /**
246
+ * Search for content
247
+ */
248
+ async search(options) {
249
+ // Note: Uses v1 API for CQL search
250
+ const params = [`cql=${encodeURIComponent(options.query)}`];
251
+ if (options.limit)
252
+ params.push(`limit=${options.limit}`);
253
+ if (options.start)
254
+ params.push(`start=${options.start}`);
255
+ if (options.includeArchivedSpaces)
256
+ params.push(`includeArchivedSpaces=true`);
257
+ if (options.excerpt)
258
+ params.push(`excerpt=true`);
259
+ const response = await fetch(`${this.host.replace(/\/$/, '')}/wiki/rest/api/content/search?${params.join('&')}`, {
260
+ headers: {
261
+ Authorization: this.authHeader,
262
+ Accept: 'application/json',
263
+ },
264
+ });
265
+ if (!response.ok) {
266
+ throw new Error(`Confluence API error: ${response.status}`);
267
+ }
268
+ const data = (await response.json());
269
+ return {
270
+ results: data.results.map((r) => ({
271
+ content: this.parsePageV1(r),
272
+ excerpt: r.excerpt,
273
+ })),
274
+ totalSize: data.totalSize,
275
+ };
276
+ }
277
+ /**
278
+ * Get child pages
279
+ */
280
+ async getChildPages(pageId, options = {}) {
281
+ const params = [];
282
+ if (options.limit)
283
+ params.push(`limit=${options.limit}`);
284
+ if (options.cursor)
285
+ params.push(`cursor=${options.cursor}`);
286
+ const query = params.length ? `?${params.join('&')}` : '';
287
+ const data = await this.request('GET', `/pages/${pageId}/children${query}`);
288
+ return {
289
+ pages: data.results.map((p) => this.parsePage(p)),
290
+ nextCursor: data._links?.next ? new URL(data._links.next).searchParams.get('cursor') ?? undefined : undefined,
291
+ };
292
+ }
293
+ parseSpace(data) {
294
+ const description = data.description;
295
+ const links = data._links;
296
+ return {
297
+ id: data.id,
298
+ key: data.key,
299
+ name: data.name,
300
+ type: data.type,
301
+ status: data.status,
302
+ description,
303
+ homepageId: data.homepageId,
304
+ _links: links,
305
+ };
306
+ }
307
+ parsePage(data) {
308
+ const version = data.version;
309
+ const body = data.body;
310
+ const links = data._links;
311
+ return {
312
+ id: data.id,
313
+ status: data.status,
314
+ title: data.title,
315
+ spaceId: data.spaceId,
316
+ parentId: data.parentId,
317
+ parentType: data.parentType,
318
+ authorId: data.authorId,
319
+ createdAt: data.createdAt,
320
+ version,
321
+ body,
322
+ _links: links,
323
+ };
324
+ }
325
+ parsePageV1(data) {
326
+ const version = data.version;
327
+ const space = data.space;
328
+ const links = data._links;
329
+ return {
330
+ id: data.id,
331
+ status: data.status,
332
+ title: data.title,
333
+ spaceId: space?.id ?? '',
334
+ authorId: '',
335
+ createdAt: '',
336
+ version: { number: version?.number ?? 1, createdAt: '' },
337
+ _links: { webui: links?.webui ?? '' },
338
+ };
339
+ }
340
+ }
341
+ export const ConfluenceInitializer = {
342
+ async initialize(_module, config) {
343
+ const host = config.auth?.['host'];
344
+ const email = config.auth?.['email'];
345
+ const apiToken = config.auth?.['api_token'];
346
+ if (!host || !email || !apiToken) {
347
+ throw new Error('Confluence SDK requires auth.host, auth.email, and auth.api_token');
348
+ }
349
+ const client = new ConfluenceClient(host, email, apiToken);
350
+ return {
351
+ client,
352
+ actions: client,
353
+ };
354
+ },
355
+ };
356
+ //# sourceMappingURL=confluence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confluence.js","sourceRoot":"","sources":["../../src/services/confluence.ts"],"names":[],"mappings":"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"}