@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,120 @@
1
+ /**
2
+ * HTTP Integration
3
+ *
4
+ * Generic REST API client for calling any HTTP endpoint.
5
+ * Essential for APIs without dedicated integrations.
6
+ */
7
+ import { SDKInitializer } from '@marktoflow/core';
8
+ export interface HttpRequestOptions {
9
+ method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS';
10
+ headers?: Record<string, string>;
11
+ query?: Record<string, string | number | boolean>;
12
+ body?: unknown;
13
+ timeout?: number;
14
+ followRedirects?: boolean;
15
+ validateStatus?: (status: number) => boolean;
16
+ }
17
+ export interface HttpResponse<T = unknown> {
18
+ status: number;
19
+ statusText: string;
20
+ headers: Record<string, string>;
21
+ data: T;
22
+ ok: boolean;
23
+ url: string;
24
+ }
25
+ export interface HttpClientConfig {
26
+ baseUrl?: string;
27
+ headers?: Record<string, string>;
28
+ timeout?: number;
29
+ auth?: {
30
+ type: 'bearer' | 'basic' | 'api-key';
31
+ token?: string;
32
+ username?: string;
33
+ password?: string;
34
+ apiKey?: string;
35
+ apiKeyHeader?: string;
36
+ };
37
+ }
38
+ /**
39
+ * Generic HTTP client for workflow integration
40
+ */
41
+ export declare class HttpClient {
42
+ private baseUrl;
43
+ private defaultHeaders;
44
+ private defaultTimeout;
45
+ constructor(config?: HttpClientConfig);
46
+ /**
47
+ * Make an HTTP request
48
+ */
49
+ request<T = unknown>(path: string, options?: HttpRequestOptions): Promise<HttpResponse<T>>;
50
+ /**
51
+ * GET request
52
+ */
53
+ get<T = unknown>(path: string, options?: Omit<HttpRequestOptions, 'method' | 'body'>): Promise<HttpResponse<T>>;
54
+ /**
55
+ * POST request
56
+ */
57
+ post<T = unknown>(path: string, body?: unknown, options?: Omit<HttpRequestOptions, 'method' | 'body'>): Promise<HttpResponse<T>>;
58
+ /**
59
+ * PUT request
60
+ */
61
+ put<T = unknown>(path: string, body?: unknown, options?: Omit<HttpRequestOptions, 'method' | 'body'>): Promise<HttpResponse<T>>;
62
+ /**
63
+ * PATCH request
64
+ */
65
+ patch<T = unknown>(path: string, body?: unknown, options?: Omit<HttpRequestOptions, 'method' | 'body'>): Promise<HttpResponse<T>>;
66
+ /**
67
+ * DELETE request
68
+ */
69
+ delete<T = unknown>(path: string, options?: Omit<HttpRequestOptions, 'method'>): Promise<HttpResponse<T>>;
70
+ /**
71
+ * HEAD request
72
+ */
73
+ head(path: string, options?: Omit<HttpRequestOptions, 'method' | 'body'>): Promise<HttpResponse<undefined>>;
74
+ /**
75
+ * Set a default header
76
+ */
77
+ setHeader(name: string, value: string): void;
78
+ /**
79
+ * Remove a default header
80
+ */
81
+ removeHeader(name: string): void;
82
+ /**
83
+ * Set bearer token
84
+ */
85
+ setBearerToken(token: string): void;
86
+ /**
87
+ * Set base URL
88
+ */
89
+ setBaseUrl(url: string): void;
90
+ }
91
+ /**
92
+ * HTTP error with response details
93
+ */
94
+ export declare class HttpError extends Error {
95
+ readonly status: number;
96
+ readonly statusText: string;
97
+ readonly headers: Record<string, string>;
98
+ readonly data: unknown;
99
+ readonly url: string;
100
+ constructor(response: HttpResponse);
101
+ }
102
+ /**
103
+ * Convenience function to make a one-off request
104
+ */
105
+ export declare function httpRequest<T = unknown>(url: string, options?: HttpRequestOptions & {
106
+ headers?: Record<string, string>;
107
+ }): Promise<HttpResponse<T>>;
108
+ /**
109
+ * GraphQL client helper
110
+ */
111
+ export declare class GraphQLClient {
112
+ private http;
113
+ constructor(endpoint: string, config?: Omit<HttpClientConfig, 'baseUrl'>);
114
+ /**
115
+ * Execute a GraphQL query or mutation
116
+ */
117
+ query<T = unknown>(query: string, variables?: Record<string, unknown>, operationName?: string): Promise<T>;
118
+ }
119
+ export declare const HttpInitializer: SDKInitializer;
120
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/services/http.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAc,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE9D,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IAClD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;CAC9C;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,OAAO;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC;IACR,EAAE,EAAE,OAAO,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QACL,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;QACrC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAsBD;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAyB;IAC/C,OAAO,CAAC,cAAc,CAAS;gBAEnB,MAAM,GAAE,gBAAqB;IAiCzC;;OAEG;IACG,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAgFpG;;OAEG;IACG,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAIrH;;OAEG;IACG,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAItI;;OAEG;IACG,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAIrI;;OAEG;IACG,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAIvI;;OAEG;IACG,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAI/G;;OAEG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAIjH;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI5C;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIhC;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAInC;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;CAG9B;AAED;;GAEG;AACH,qBAAa,SAAU,SAAQ,KAAK;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;gBAET,QAAQ,EAAE,YAAY;CASnC;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,CAAC,GAAG,OAAO,EAC3C,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,kBAAkB,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAClE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAG1B;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,IAAI,CAAa;gBAEb,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAM;IAI5E;;OAEG;IACG,KAAK,CAAC,CAAC,GAAG,OAAO,EACrB,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,CAAC,CAAC;CAad;AAED,eAAO,MAAM,eAAe,EAAE,cAwC7B,CAAC"}
@@ -0,0 +1,284 @@
1
+ /**
2
+ * HTTP Integration
3
+ *
4
+ * Generic REST API client for calling any HTTP endpoint.
5
+ * Essential for APIs without dedicated integrations.
6
+ */
7
+ function buildUrl(base, path, query) {
8
+ // Handle absolute URLs
9
+ let url;
10
+ if (path.startsWith('http://') || path.startsWith('https://')) {
11
+ url = new URL(path);
12
+ }
13
+ else {
14
+ const baseWithSlash = base.endsWith('/') ? base : `${base}/`;
15
+ const pathWithoutSlash = path.startsWith('/') ? path.slice(1) : path;
16
+ url = new URL(pathWithoutSlash, baseWithSlash);
17
+ }
18
+ if (query) {
19
+ for (const [key, value] of Object.entries(query)) {
20
+ url.searchParams.set(key, String(value));
21
+ }
22
+ }
23
+ return url.toString();
24
+ }
25
+ /**
26
+ * Generic HTTP client for workflow integration
27
+ */
28
+ export class HttpClient {
29
+ baseUrl;
30
+ defaultHeaders;
31
+ defaultTimeout;
32
+ constructor(config = {}) {
33
+ this.baseUrl = config.baseUrl ?? '';
34
+ this.defaultTimeout = config.timeout ?? 30000;
35
+ this.defaultHeaders = {
36
+ 'Content-Type': 'application/json',
37
+ Accept: 'application/json',
38
+ ...(config.headers ?? {}),
39
+ };
40
+ // Set up authentication
41
+ if (config.auth) {
42
+ switch (config.auth.type) {
43
+ case 'bearer':
44
+ if (config.auth.token) {
45
+ this.defaultHeaders.Authorization = `Bearer ${config.auth.token}`;
46
+ }
47
+ break;
48
+ case 'basic':
49
+ if (config.auth.username && config.auth.password) {
50
+ const credentials = Buffer.from(`${config.auth.username}:${config.auth.password}`).toString('base64');
51
+ this.defaultHeaders.Authorization = `Basic ${credentials}`;
52
+ }
53
+ break;
54
+ case 'api-key':
55
+ if (config.auth.apiKey) {
56
+ const header = config.auth.apiKeyHeader ?? 'X-API-Key';
57
+ this.defaultHeaders[header] = config.auth.apiKey;
58
+ }
59
+ break;
60
+ }
61
+ }
62
+ }
63
+ /**
64
+ * Make an HTTP request
65
+ */
66
+ async request(path, options = {}) {
67
+ const { method = 'GET', headers = {}, query, body, timeout = this.defaultTimeout, validateStatus = (status) => status >= 200 && status < 300, } = options;
68
+ const url = buildUrl(this.baseUrl, path, query);
69
+ const controller = new AbortController();
70
+ const timeoutId = setTimeout(() => controller.abort(), timeout);
71
+ try {
72
+ const requestHeaders = { ...this.defaultHeaders, ...headers };
73
+ // Handle body serialization
74
+ let requestBody;
75
+ if (body !== undefined) {
76
+ if (typeof body === 'string') {
77
+ requestBody = body;
78
+ }
79
+ else {
80
+ requestBody = JSON.stringify(body);
81
+ }
82
+ }
83
+ const response = await fetch(url, {
84
+ method,
85
+ headers: requestHeaders,
86
+ body: requestBody,
87
+ signal: controller.signal,
88
+ redirect: options.followRedirects === false ? 'manual' : 'follow',
89
+ });
90
+ clearTimeout(timeoutId);
91
+ // Parse response headers
92
+ const responseHeaders = {};
93
+ response.headers.forEach((value, key) => {
94
+ responseHeaders[key] = value;
95
+ });
96
+ // Parse response body
97
+ let data;
98
+ const contentType = response.headers.get('content-type') ?? '';
99
+ if (contentType.includes('application/json')) {
100
+ data = (await response.json());
101
+ }
102
+ else if (contentType.includes('text/')) {
103
+ data = (await response.text());
104
+ }
105
+ else {
106
+ // Return raw buffer for binary data
107
+ const buffer = await response.arrayBuffer();
108
+ data = Buffer.from(buffer);
109
+ }
110
+ const result = {
111
+ status: response.status,
112
+ statusText: response.statusText,
113
+ headers: responseHeaders,
114
+ data,
115
+ ok: validateStatus(response.status),
116
+ url: response.url,
117
+ };
118
+ if (!result.ok) {
119
+ throw new HttpError(result);
120
+ }
121
+ return result;
122
+ }
123
+ catch (error) {
124
+ clearTimeout(timeoutId);
125
+ if (error instanceof HttpError)
126
+ throw error;
127
+ if (error.name === 'AbortError') {
128
+ throw new Error(`Request timeout after ${timeout}ms: ${url}`);
129
+ }
130
+ throw error;
131
+ }
132
+ }
133
+ /**
134
+ * GET request
135
+ */
136
+ async get(path, options) {
137
+ return this.request(path, { ...options, method: 'GET' });
138
+ }
139
+ /**
140
+ * POST request
141
+ */
142
+ async post(path, body, options) {
143
+ return this.request(path, { ...options, method: 'POST', body });
144
+ }
145
+ /**
146
+ * PUT request
147
+ */
148
+ async put(path, body, options) {
149
+ return this.request(path, { ...options, method: 'PUT', body });
150
+ }
151
+ /**
152
+ * PATCH request
153
+ */
154
+ async patch(path, body, options) {
155
+ return this.request(path, { ...options, method: 'PATCH', body });
156
+ }
157
+ /**
158
+ * DELETE request
159
+ */
160
+ async delete(path, options) {
161
+ return this.request(path, { ...options, method: 'DELETE' });
162
+ }
163
+ /**
164
+ * HEAD request
165
+ */
166
+ async head(path, options) {
167
+ return this.request(path, { ...options, method: 'HEAD' });
168
+ }
169
+ /**
170
+ * Set a default header
171
+ */
172
+ setHeader(name, value) {
173
+ this.defaultHeaders[name] = value;
174
+ }
175
+ /**
176
+ * Remove a default header
177
+ */
178
+ removeHeader(name) {
179
+ delete this.defaultHeaders[name];
180
+ }
181
+ /**
182
+ * Set bearer token
183
+ */
184
+ setBearerToken(token) {
185
+ this.defaultHeaders.Authorization = `Bearer ${token}`;
186
+ }
187
+ /**
188
+ * Set base URL
189
+ */
190
+ setBaseUrl(url) {
191
+ this.baseUrl = url;
192
+ }
193
+ }
194
+ /**
195
+ * HTTP error with response details
196
+ */
197
+ export class HttpError extends Error {
198
+ status;
199
+ statusText;
200
+ headers;
201
+ data;
202
+ url;
203
+ constructor(response) {
204
+ super(`HTTP ${response.status}: ${response.statusText}`);
205
+ this.name = 'HttpError';
206
+ this.status = response.status;
207
+ this.statusText = response.statusText;
208
+ this.headers = response.headers;
209
+ this.data = response.data;
210
+ this.url = response.url;
211
+ }
212
+ }
213
+ /**
214
+ * Convenience function to make a one-off request
215
+ */
216
+ export async function httpRequest(url, options) {
217
+ const client = new HttpClient();
218
+ return client.request(url, options);
219
+ }
220
+ /**
221
+ * GraphQL client helper
222
+ */
223
+ export class GraphQLClient {
224
+ http;
225
+ constructor(endpoint, config = {}) {
226
+ this.http = new HttpClient({ ...config, baseUrl: endpoint });
227
+ }
228
+ /**
229
+ * Execute a GraphQL query or mutation
230
+ */
231
+ async query(query, variables, operationName) {
232
+ const response = await this.http.post('', {
233
+ query,
234
+ variables,
235
+ operationName,
236
+ });
237
+ if (response.data.errors?.length) {
238
+ throw new Error(`GraphQL error: ${response.data.errors.map((e) => e.message).join(', ')}`);
239
+ }
240
+ return response.data.data;
241
+ }
242
+ }
243
+ export const HttpInitializer = {
244
+ async initialize(_module, config) {
245
+ const baseUrl = config.options?.['base_url'];
246
+ const timeout = config.options?.['timeout'];
247
+ const headers = config.options?.['headers'];
248
+ // Extract auth configuration
249
+ let auth;
250
+ if (config.auth) {
251
+ const authType = config.auth['type'];
252
+ if (authType === 'bearer' || !authType) {
253
+ const token = config.auth['token'];
254
+ if (token)
255
+ auth = { type: 'bearer', token };
256
+ }
257
+ else if (authType === 'basic') {
258
+ auth = {
259
+ type: 'basic',
260
+ username: config.auth['username'],
261
+ password: config.auth['password'],
262
+ };
263
+ }
264
+ else if (authType === 'api-key') {
265
+ auth = {
266
+ type: 'api-key',
267
+ apiKey: config.auth['api_key'],
268
+ apiKeyHeader: config.auth['api_key_header'],
269
+ };
270
+ }
271
+ }
272
+ const client = new HttpClient({ baseUrl, timeout, headers, auth });
273
+ return {
274
+ client,
275
+ actions: client,
276
+ graphql: (endpoint) => new GraphQLClient(endpoint, {
277
+ timeout,
278
+ headers,
279
+ auth,
280
+ }),
281
+ };
282
+ },
283
+ };
284
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/services/http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { SDKInitializer } from '@marktoflow/core';
2
+ export declare const JiraInitializer: SDKInitializer;
3
+ //# sourceMappingURL=jira.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jira.d.ts","sourceRoot":"","sources":["../../src/services/jira.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE9D,eAAO,MAAM,eAAe,EAAE,cAoB7B,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { Version3Client } from 'jira.js';
2
+ export const JiraInitializer = {
3
+ async initialize(_module, config) {
4
+ const host = config.auth?.['host'];
5
+ const email = config.auth?.['email'];
6
+ const apiToken = config.auth?.['api_token'];
7
+ if (!host || !email || !apiToken) {
8
+ throw new Error('Jira SDK requires auth.host, auth.email, and auth.api_token');
9
+ }
10
+ return new Version3Client({
11
+ host,
12
+ authentication: {
13
+ basic: {
14
+ email,
15
+ apiToken,
16
+ },
17
+ },
18
+ });
19
+ },
20
+ };
21
+ //# sourceMappingURL=jira.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jira.js","sourceRoot":"","sources":["../../src/services/jira.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC,MAAM,CAAC,MAAM,eAAe,GAAmB;IAC7C,KAAK,CAAC,UAAU,CAAC,OAAgB,EAAE,MAAkB;QACnD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,CAAW,CAAC;QAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,CAAW,CAAC;QAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,CAAW,CAAC;QAEtD,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACjF,CAAC;QAED,OAAO,IAAI,cAAc,CAAC;YACxB,IAAI;YACJ,cAAc,EAAE;gBACd,KAAK,EAAE;oBACL,KAAK;oBACL,QAAQ;iBACT;aACF;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -0,0 +1,163 @@
1
+ /**
2
+ * Linear Integration
3
+ *
4
+ * Modern issue tracking for development teams.
5
+ * API Docs: https://developers.linear.app/docs/graphql/working-with-the-graphql-api
6
+ */
7
+ import { SDKInitializer } from '@marktoflow/core';
8
+ export interface LinearIssue {
9
+ id: string;
10
+ identifier: string;
11
+ title: string;
12
+ description?: string;
13
+ priority: number;
14
+ priorityLabel: string;
15
+ state: {
16
+ id: string;
17
+ name: string;
18
+ type: string;
19
+ };
20
+ assignee?: {
21
+ id: string;
22
+ name: string;
23
+ email: string;
24
+ };
25
+ team: {
26
+ id: string;
27
+ name: string;
28
+ key: string;
29
+ };
30
+ project?: {
31
+ id: string;
32
+ name: string;
33
+ };
34
+ labels: {
35
+ id: string;
36
+ name: string;
37
+ color: string;
38
+ }[];
39
+ createdAt: string;
40
+ updatedAt: string;
41
+ url: string;
42
+ }
43
+ export interface LinearProject {
44
+ id: string;
45
+ name: string;
46
+ description?: string;
47
+ state: string;
48
+ progress: number;
49
+ targetDate?: string;
50
+ teams: {
51
+ id: string;
52
+ name: string;
53
+ }[];
54
+ }
55
+ export interface LinearTeam {
56
+ id: string;
57
+ name: string;
58
+ key: string;
59
+ description?: string;
60
+ issueCount: number;
61
+ }
62
+ export interface CreateIssueOptions {
63
+ teamId: string;
64
+ title: string;
65
+ description?: string;
66
+ priority?: number;
67
+ assigneeId?: string;
68
+ labelIds?: string[];
69
+ projectId?: string;
70
+ stateId?: string;
71
+ estimate?: number;
72
+ dueDate?: string;
73
+ parentId?: string;
74
+ }
75
+ export interface UpdateIssueOptions {
76
+ title?: string;
77
+ description?: string;
78
+ priority?: number;
79
+ assigneeId?: string;
80
+ labelIds?: string[];
81
+ projectId?: string;
82
+ stateId?: string;
83
+ estimate?: number;
84
+ dueDate?: string;
85
+ }
86
+ export interface SearchIssuesOptions {
87
+ query?: string;
88
+ teamId?: string;
89
+ assigneeId?: string;
90
+ stateId?: string;
91
+ labelIds?: string[];
92
+ projectId?: string;
93
+ priority?: number;
94
+ first?: number;
95
+ after?: string;
96
+ }
97
+ /**
98
+ * Linear GraphQL client for workflow integration
99
+ */
100
+ export declare class LinearClient {
101
+ private apiKey;
102
+ constructor(apiKey: string);
103
+ private query;
104
+ /**
105
+ * Get the current user
106
+ */
107
+ getViewer(): Promise<{
108
+ id: string;
109
+ name: string;
110
+ email: string;
111
+ }>;
112
+ /**
113
+ * List teams
114
+ */
115
+ listTeams(): Promise<LinearTeam[]>;
116
+ /**
117
+ * Get an issue by ID or identifier
118
+ */
119
+ getIssue(idOrIdentifier: string): Promise<LinearIssue>;
120
+ /**
121
+ * Create an issue
122
+ */
123
+ createIssue(options: CreateIssueOptions): Promise<LinearIssue>;
124
+ /**
125
+ * Update an issue
126
+ */
127
+ updateIssue(issueId: string, options: UpdateIssueOptions): Promise<LinearIssue>;
128
+ /**
129
+ * Search issues
130
+ */
131
+ searchIssues(options?: SearchIssuesOptions): Promise<{
132
+ issues: LinearIssue[];
133
+ hasMore: boolean;
134
+ endCursor?: string;
135
+ }>;
136
+ /**
137
+ * List projects
138
+ */
139
+ listProjects(teamId?: string): Promise<LinearProject[]>;
140
+ /**
141
+ * Get workflow states for a team
142
+ */
143
+ getWorkflowStates(teamId: string): Promise<{
144
+ id: string;
145
+ name: string;
146
+ type: string;
147
+ position: number;
148
+ }[]>;
149
+ /**
150
+ * Add a comment to an issue
151
+ */
152
+ addComment(issueId: string, body: string): Promise<{
153
+ id: string;
154
+ body: string;
155
+ createdAt: string;
156
+ }>;
157
+ /**
158
+ * Archive an issue
159
+ */
160
+ archiveIssue(issueId: string): Promise<void>;
161
+ }
162
+ export declare const LinearInitializer: SDKInitializer;
163
+ //# sourceMappingURL=linear.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linear.d.ts","sourceRoot":"","sources":["../../src/services/linear.ts"],"names":[],"mappings":"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"}