@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,141 @@
1
+ /**
2
+ * Jira Bubble Utilities
3
+ *
4
+ * Helper functions for the Jira service integration.
5
+ */
6
+ /**
7
+ * Atlassian Document Format (ADF) types
8
+ */
9
+ interface ADFMark {
10
+ type: 'strong' | 'em' | 'code' | 'link' | 'strike';
11
+ attrs?: {
12
+ href?: string;
13
+ title?: string;
14
+ };
15
+ }
16
+ interface ADFTextNode {
17
+ type: 'text';
18
+ text: string;
19
+ marks?: ADFMark[];
20
+ }
21
+ interface ADFInlineNode {
22
+ type: 'hardBreak';
23
+ }
24
+ type ADFInlineContent = ADFTextNode | ADFInlineNode;
25
+ interface ADFParagraphNode {
26
+ type: 'paragraph';
27
+ content?: ADFInlineContent[];
28
+ }
29
+ interface ADFHeadingNode {
30
+ type: 'heading';
31
+ attrs: {
32
+ level: 1 | 2 | 3 | 4 | 5 | 6;
33
+ };
34
+ content?: ADFInlineContent[];
35
+ }
36
+ interface ADFCodeBlockNode {
37
+ type: 'codeBlock';
38
+ attrs?: {
39
+ language?: string;
40
+ };
41
+ content?: ADFTextNode[];
42
+ }
43
+ interface ADFListItemNode {
44
+ type: 'listItem';
45
+ content: (ADFParagraphNode | ADFBulletListNode | ADFOrderedListNode)[];
46
+ }
47
+ interface ADFBulletListNode {
48
+ type: 'bulletList';
49
+ content: ADFListItemNode[];
50
+ }
51
+ interface ADFOrderedListNode {
52
+ type: 'orderedList';
53
+ content: ADFListItemNode[];
54
+ }
55
+ interface ADFBlockquoteNode {
56
+ type: 'blockquote';
57
+ content: ADFParagraphNode[];
58
+ }
59
+ interface ADFRuleNode {
60
+ type: 'rule';
61
+ }
62
+ type ADFBlockNode = ADFParagraphNode | ADFHeadingNode | ADFCodeBlockNode | ADFBulletListNode | ADFOrderedListNode | ADFBlockquoteNode | ADFRuleNode;
63
+ interface ADFDocument {
64
+ type: 'doc';
65
+ version: 1;
66
+ content: ADFBlockNode[];
67
+ }
68
+ /**
69
+ * Converts markdown or plain text to Atlassian Document Format (ADF).
70
+ *
71
+ * Jira's API requires descriptions and comments in ADF format.
72
+ * This function converts markdown/plain text into proper ADF structure.
73
+ *
74
+ * Supported markdown:
75
+ * - **bold** or __bold__
76
+ * - *italic* or _italic_
77
+ * - `inline code`
78
+ * - [links](url)
79
+ * - # Headings (h1-h6)
80
+ * - - Bullet lists
81
+ * - 1. Numbered lists
82
+ * - > Blockquotes
83
+ * - ``` Code blocks ```
84
+ * - --- Horizontal rules
85
+ * - ~~strikethrough~~
86
+ *
87
+ * @param text - Markdown or plain text to convert
88
+ * @returns ADF document object
89
+ *
90
+ * @example
91
+ * const adf = textToADF('**Bold** and *italic*');
92
+ * const adf = textToADF('# Heading\n\nParagraph text');
93
+ */
94
+ export declare function textToADF(text: string): ADFDocument;
95
+ /**
96
+ * Converts ADF document back to plain text.
97
+ *
98
+ * Useful for displaying Jira content in a human-readable format.
99
+ *
100
+ * @param adf - ADF document to convert
101
+ * @returns Plain text representation
102
+ */
103
+ export declare function adfToText(adf: unknown): string;
104
+ /**
105
+ * Enhances Jira API error messages with helpful hints.
106
+ *
107
+ * @param errorText - Raw error text from API
108
+ * @param statusCode - HTTP status code
109
+ * @param statusText - HTTP status text
110
+ * @returns Enhanced error message
111
+ */
112
+ export declare function enhanceErrorMessage(errorText: string, statusCode: number, statusText: string): string;
113
+ /**
114
+ * Validates and normalizes a date string to YYYY-MM-DD format.
115
+ *
116
+ * @param date - Date string to validate
117
+ * @returns Normalized date string or null if invalid
118
+ */
119
+ export declare function normalizeDate(date: string | null | undefined): string | null;
120
+ /**
121
+ * Finds a transition by target status name (case-insensitive).
122
+ *
123
+ * @param transitions - Available transitions
124
+ * @param targetStatus - Target status name
125
+ * @returns Matching transition or undefined
126
+ */
127
+ export declare function findTransitionByStatus(transitions: Array<{
128
+ id: string;
129
+ name: string;
130
+ to?: {
131
+ name: string;
132
+ };
133
+ }>, targetStatus: string): {
134
+ id: string;
135
+ name: string;
136
+ to?: {
137
+ name: string;
138
+ };
139
+ } | undefined;
140
+ export {};
141
+ //# sourceMappingURL=jira.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jira.utils.d.ts","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/jira/jira.utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,UAAU,OAAO;IACf,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IACnD,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;CACnB;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,KAAK,gBAAgB,GAAG,WAAW,GAAG,aAAa,CAAC;AAEpD,UAAU,gBAAgB;IACxB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAED,UAAU,cAAc;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE;QAAE,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;KAAE,CAAC;IACxC,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,CAAC,gBAAgB,GAAG,iBAAiB,GAAG,kBAAkB,CAAC,EAAE,CAAC;CACxE;AAED,UAAU,iBAAiB;IACzB,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED,UAAU,kBAAkB;IAC1B,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED,UAAU,iBAAiB;IACzB,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,KAAK,YAAY,GACb,gBAAgB,GAChB,cAAc,GACd,gBAAgB,GAChB,iBAAiB,GACjB,kBAAkB,GAClB,iBAAiB,GACjB,WAAW,CAAC;AAEhB,UAAU,WAAW;IACnB,IAAI,EAAE,KAAK,CAAC;IACZ,OAAO,EAAE,CAAC,CAAC;IACX,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CA6HnD;AAoHD;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CA8B9C;AAyFD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,MAAM,CA+CR;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAiB5E;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,EACvE,YAAY,EAAE,MAAM,GACnB;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAAG,SAAS,CAcjE"}
@@ -0,0 +1,428 @@
1
+ /**
2
+ * Jira Bubble Utilities
3
+ *
4
+ * Helper functions for the Jira service integration.
5
+ */
6
+ /**
7
+ * Converts markdown or plain text to Atlassian Document Format (ADF).
8
+ *
9
+ * Jira's API requires descriptions and comments in ADF format.
10
+ * This function converts markdown/plain text into proper ADF structure.
11
+ *
12
+ * Supported markdown:
13
+ * - **bold** or __bold__
14
+ * - *italic* or _italic_
15
+ * - `inline code`
16
+ * - [links](url)
17
+ * - # Headings (h1-h6)
18
+ * - - Bullet lists
19
+ * - 1. Numbered lists
20
+ * - > Blockquotes
21
+ * - ``` Code blocks ```
22
+ * - --- Horizontal rules
23
+ * - ~~strikethrough~~
24
+ *
25
+ * @param text - Markdown or plain text to convert
26
+ * @returns ADF document object
27
+ *
28
+ * @example
29
+ * const adf = textToADF('**Bold** and *italic*');
30
+ * const adf = textToADF('# Heading\n\nParagraph text');
31
+ */
32
+ export function textToADF(text) {
33
+ const lines = text.split(/\r?\n/);
34
+ const content = [];
35
+ let i = 0;
36
+ while (i < lines.length) {
37
+ const line = lines[i];
38
+ // Code block (```)
39
+ if (line.startsWith('```')) {
40
+ const language = line.slice(3).trim() || undefined;
41
+ const codeLines = [];
42
+ i++;
43
+ while (i < lines.length && !lines[i].startsWith('```')) {
44
+ codeLines.push(lines[i]);
45
+ i++;
46
+ }
47
+ content.push({
48
+ type: 'codeBlock',
49
+ attrs: language ? { language } : undefined,
50
+ content: codeLines.length > 0
51
+ ? [{ type: 'text', text: codeLines.join('\n') }]
52
+ : undefined,
53
+ });
54
+ i++; // Skip closing ```
55
+ continue;
56
+ }
57
+ // Horizontal rule (---, ***, ___)
58
+ if (/^(-{3,}|\*{3,}|_{3,})$/.test(line.trim())) {
59
+ content.push({ type: 'rule' });
60
+ i++;
61
+ continue;
62
+ }
63
+ // Headings (# to ######)
64
+ const headingMatch = line.match(/^(#{1,6})\s+(.+)$/);
65
+ if (headingMatch) {
66
+ const level = headingMatch[1].length;
67
+ const headingText = headingMatch[2];
68
+ content.push({
69
+ type: 'heading',
70
+ attrs: { level },
71
+ content: parseInlineMarkdown(headingText),
72
+ });
73
+ i++;
74
+ continue;
75
+ }
76
+ // Blockquote (>)
77
+ if (line.startsWith('>')) {
78
+ const quoteLines = [];
79
+ while (i < lines.length && lines[i].startsWith('>')) {
80
+ quoteLines.push(lines[i].replace(/^>\s?/, ''));
81
+ i++;
82
+ }
83
+ content.push({
84
+ type: 'blockquote',
85
+ content: quoteLines.map((ql) => ({
86
+ type: 'paragraph',
87
+ content: parseInlineMarkdown(ql),
88
+ })),
89
+ });
90
+ continue;
91
+ }
92
+ // Bullet list (- or *)
93
+ if (/^[-*]\s+/.test(line)) {
94
+ const listItems = [];
95
+ while (i < lines.length && /^[-*]\s+/.test(lines[i])) {
96
+ const itemText = lines[i].replace(/^[-*]\s+/, '');
97
+ listItems.push({
98
+ type: 'listItem',
99
+ content: [
100
+ { type: 'paragraph', content: parseInlineMarkdown(itemText) },
101
+ ],
102
+ });
103
+ i++;
104
+ }
105
+ content.push({ type: 'bulletList', content: listItems });
106
+ continue;
107
+ }
108
+ // Ordered list (1. 2. etc)
109
+ if (/^\d+\.\s+/.test(line)) {
110
+ const listItems = [];
111
+ while (i < lines.length && /^\d+\.\s+/.test(lines[i])) {
112
+ const itemText = lines[i].replace(/^\d+\.\s+/, '');
113
+ listItems.push({
114
+ type: 'listItem',
115
+ content: [
116
+ { type: 'paragraph', content: parseInlineMarkdown(itemText) },
117
+ ],
118
+ });
119
+ i++;
120
+ }
121
+ content.push({ type: 'orderedList', content: listItems });
122
+ continue;
123
+ }
124
+ // Empty line - skip but don't create empty paragraph
125
+ if (line.trim() === '') {
126
+ i++;
127
+ continue;
128
+ }
129
+ // Regular paragraph
130
+ content.push({
131
+ type: 'paragraph',
132
+ content: parseInlineMarkdown(line),
133
+ });
134
+ i++;
135
+ }
136
+ // Ensure at least one node
137
+ if (content.length === 0) {
138
+ content.push({ type: 'paragraph', content: [] });
139
+ }
140
+ return {
141
+ type: 'doc',
142
+ version: 1,
143
+ content,
144
+ };
145
+ }
146
+ /**
147
+ * Parses inline markdown formatting and returns ADF inline content.
148
+ */
149
+ function parseInlineMarkdown(text) {
150
+ if (!text)
151
+ return [];
152
+ const result = [];
153
+ // Regex patterns for inline formatting
154
+ // Order matters: more specific patterns first
155
+ const patterns = [
156
+ // Code (must be first to avoid conflicts with other patterns inside code)
157
+ { regex: /`([^`]+)`/g, mark: 'code' },
158
+ // Links [text](url)
159
+ { regex: /\[([^\]]+)\]\(([^)]+)\)/g, mark: 'link' },
160
+ // Bold **text** or __text__
161
+ { regex: /\*\*([^*]+)\*\*|__([^_]+)__/g, mark: 'strong' },
162
+ // Strikethrough ~~text~~
163
+ { regex: /~~([^~]+)~~/g, mark: 'strike' },
164
+ // Italic *text* or _text_ (but not inside words for _)
165
+ {
166
+ regex: /\*([^*]+)\*|(?<![a-zA-Z])_([^_]+)_(?![a-zA-Z])/g,
167
+ mark: 'em',
168
+ },
169
+ ];
170
+ // Simple approach: process text sequentially
171
+ let lastIndex = 0;
172
+ const matches = [];
173
+ for (const { regex, mark } of patterns) {
174
+ regex.lastIndex = 0;
175
+ let match;
176
+ while ((match = regex.exec(text)) !== null) {
177
+ const matchedText = match[1] || match[2] || '';
178
+ const matchObj = {
179
+ start: match.index,
180
+ end: match.index + match[0].length,
181
+ text: matchedText,
182
+ mark,
183
+ };
184
+ if (mark === 'link') {
185
+ matchObj.text = match[1];
186
+ matchObj.href = match[2];
187
+ }
188
+ // Check for overlaps with existing matches
189
+ const overlaps = matches.some((m) => (matchObj.start >= m.start && matchObj.start < m.end) ||
190
+ (matchObj.end > m.start && matchObj.end <= m.end));
191
+ if (!overlaps) {
192
+ matches.push(matchObj);
193
+ }
194
+ }
195
+ }
196
+ // Sort matches by start position
197
+ matches.sort((a, b) => a.start - b.start);
198
+ // Build result
199
+ for (const match of matches) {
200
+ // Add plain text before this match
201
+ if (match.start > lastIndex) {
202
+ const plainText = text.slice(lastIndex, match.start);
203
+ if (plainText) {
204
+ result.push({ type: 'text', text: plainText });
205
+ }
206
+ }
207
+ // Add the marked text
208
+ const marks = [{ type: match.mark }];
209
+ if (match.mark === 'link' && match.href) {
210
+ marks[0] = { type: 'link', attrs: { href: match.href } };
211
+ }
212
+ result.push({
213
+ type: 'text',
214
+ text: match.text,
215
+ marks,
216
+ });
217
+ lastIndex = match.end;
218
+ }
219
+ // Add remaining plain text
220
+ if (lastIndex < text.length) {
221
+ const plainText = text.slice(lastIndex);
222
+ if (plainText) {
223
+ result.push({ type: 'text', text: plainText });
224
+ }
225
+ }
226
+ // If no matches, return plain text
227
+ if (result.length === 0 && text) {
228
+ result.push({ type: 'text', text });
229
+ }
230
+ return result;
231
+ }
232
+ /**
233
+ * Converts ADF document back to plain text.
234
+ *
235
+ * Useful for displaying Jira content in a human-readable format.
236
+ *
237
+ * @param adf - ADF document to convert
238
+ * @returns Plain text representation
239
+ */
240
+ export function adfToText(adf) {
241
+ if (!adf || typeof adf !== 'object') {
242
+ return '';
243
+ }
244
+ const doc = adf;
245
+ if (doc.type !== 'doc' || !Array.isArray(doc.content)) {
246
+ // If it's a string, return it directly
247
+ if (typeof adf === 'string') {
248
+ return adf;
249
+ }
250
+ return '';
251
+ }
252
+ const lines = [];
253
+ for (const node of doc.content) {
254
+ const block = node;
255
+ const text = extractBlockText(block);
256
+ if (text !== null) {
257
+ lines.push(text);
258
+ }
259
+ }
260
+ return lines.join('\n');
261
+ }
262
+ /**
263
+ * Extracts text from an ADF block node.
264
+ */
265
+ function extractBlockText(block) {
266
+ switch (block.type) {
267
+ case 'paragraph':
268
+ case 'heading':
269
+ return extractTextFromContent(block.content);
270
+ case 'codeBlock':
271
+ return extractTextFromContent(block.content);
272
+ case 'bulletList':
273
+ case 'orderedList':
274
+ return extractListText(block.content);
275
+ case 'blockquote':
276
+ return extractTextFromContent(block.content);
277
+ case 'rule':
278
+ return '---';
279
+ default:
280
+ return extractTextFromContent(block.content);
281
+ }
282
+ }
283
+ /**
284
+ * Extracts text from list items.
285
+ */
286
+ function extractListText(content) {
287
+ if (!Array.isArray(content))
288
+ return '';
289
+ return content
290
+ .map((item) => {
291
+ const listItem = item;
292
+ if (listItem.type === 'listItem' && Array.isArray(listItem.content)) {
293
+ return listItem.content
294
+ .map((c) => extractBlockText(c))
295
+ .join('');
296
+ }
297
+ return '';
298
+ })
299
+ .filter(Boolean)
300
+ .join('\n');
301
+ }
302
+ /**
303
+ * Extracts text from ADF content array.
304
+ */
305
+ function extractTextFromContent(content) {
306
+ if (!Array.isArray(content)) {
307
+ return '';
308
+ }
309
+ return content
310
+ .map((item) => {
311
+ const node = item;
312
+ if (node.type === 'text' && typeof node.text === 'string') {
313
+ return node.text;
314
+ }
315
+ if (node.type === 'hardBreak') {
316
+ return '\n';
317
+ }
318
+ // Handle nested block nodes (like in blockquote)
319
+ if (node.type === 'paragraph' || node.type === 'heading') {
320
+ return extractTextFromContent(node.content);
321
+ }
322
+ // Recursively extract from nested content
323
+ if (Array.isArray(node.content)) {
324
+ return extractTextFromContent(node.content);
325
+ }
326
+ return '';
327
+ })
328
+ .join('');
329
+ }
330
+ /**
331
+ * Enhances Jira API error messages with helpful hints.
332
+ *
333
+ * @param errorText - Raw error text from API
334
+ * @param statusCode - HTTP status code
335
+ * @param statusText - HTTP status text
336
+ * @returns Enhanced error message
337
+ */
338
+ export function enhanceErrorMessage(errorText, statusCode, statusText) {
339
+ let message = `Jira API Error (${statusCode} ${statusText})`;
340
+ // Try to parse JSON error
341
+ try {
342
+ const errorJson = JSON.parse(errorText);
343
+ if (errorJson.errorMessages && Array.isArray(errorJson.errorMessages)) {
344
+ message += `: ${errorJson.errorMessages.join(', ')}`;
345
+ }
346
+ else if (errorJson.errors && typeof errorJson.errors === 'object') {
347
+ const errorDetails = Object.entries(errorJson.errors)
348
+ .map(([field, msg]) => `${field}: ${msg}`)
349
+ .join(', ');
350
+ message += `: ${errorDetails}`;
351
+ }
352
+ else if (errorJson.message) {
353
+ message += `: ${errorJson.message}`;
354
+ }
355
+ }
356
+ catch {
357
+ // If not JSON, use raw text
358
+ if (errorText && errorText.length < 500) {
359
+ message += `: ${errorText}`;
360
+ }
361
+ }
362
+ // Add helpful hints based on status code
363
+ switch (statusCode) {
364
+ case 400:
365
+ message +=
366
+ '\nHint: Check your request parameters. Common issues: invalid JQL syntax, missing required fields, or invalid field values.';
367
+ break;
368
+ case 401:
369
+ message +=
370
+ '\nHint: Authentication failed. Check your API token and ensure it has the correct permissions.';
371
+ break;
372
+ case 403:
373
+ message +=
374
+ '\nHint: Permission denied. Ensure your account has access to this project/issue.';
375
+ break;
376
+ case 404:
377
+ message +=
378
+ '\nHint: Resource not found. Verify the issue key, project key, or transition ID exists.';
379
+ break;
380
+ case 429:
381
+ message += '\nHint: Rate limited. Wait a moment before retrying.';
382
+ break;
383
+ }
384
+ return message;
385
+ }
386
+ /**
387
+ * Validates and normalizes a date string to YYYY-MM-DD format.
388
+ *
389
+ * @param date - Date string to validate
390
+ * @returns Normalized date string or null if invalid
391
+ */
392
+ export function normalizeDate(date) {
393
+ if (!date) {
394
+ return null;
395
+ }
396
+ // Already in correct format
397
+ if (/^\d{4}-\d{2}-\d{2}$/.test(date)) {
398
+ return date;
399
+ }
400
+ // Try to parse and format
401
+ const parsed = new Date(date);
402
+ if (isNaN(parsed.getTime())) {
403
+ return null;
404
+ }
405
+ return parsed.toISOString().split('T')[0];
406
+ }
407
+ /**
408
+ * Finds a transition by target status name (case-insensitive).
409
+ *
410
+ * @param transitions - Available transitions
411
+ * @param targetStatus - Target status name
412
+ * @returns Matching transition or undefined
413
+ */
414
+ export function findTransitionByStatus(transitions, targetStatus) {
415
+ const normalizedTarget = targetStatus.toLowerCase().trim();
416
+ return transitions.find((t) => {
417
+ // Match by transition name
418
+ if (t.name.toLowerCase().trim() === normalizedTarget) {
419
+ return true;
420
+ }
421
+ // Match by target status name
422
+ if (t.to?.name.toLowerCase().trim() === normalizedTarget) {
423
+ return true;
424
+ }
425
+ return false;
426
+ });
427
+ }
428
+ //# sourceMappingURL=jira.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jira.utils.js","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/jira/jira.utils.ts"],"names":[],"mappings":"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"}
@@ -769,8 +769,8 @@ declare const NotionParamsSchema: z.ZodDiscriminatedUnion<"operation", [z.ZodObj
769
769
  }>]>>;
770
770
  credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
771
771
  }, "strip", z.ZodTypeAny, {
772
- properties: Record<string, unknown>;
773
772
  operation: "create_data_source";
773
+ properties: Record<string, unknown>;
774
774
  parent: {
775
775
  type: "database_id";
776
776
  database_id: string;
@@ -816,8 +816,8 @@ declare const NotionParamsSchema: z.ZodDiscriminatedUnion<"operation", [z.ZodObj
816
816
  emoji: string;
817
817
  } | undefined;
818
818
  }, {
819
- properties: Record<string, unknown>;
820
819
  operation: "create_data_source";
820
+ properties: Record<string, unknown>;
821
821
  parent: {
822
822
  type: "database_id";
823
823
  database_id: string;
@@ -18460,8 +18460,8 @@ export declare class NotionBubble<T extends NotionParams = NotionParams> extends
18460
18460
  }>]>>;
18461
18461
  credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
18462
18462
  }, "strip", z.ZodTypeAny, {
18463
- properties: Record<string, unknown>;
18464
18463
  operation: "create_data_source";
18464
+ properties: Record<string, unknown>;
18465
18465
  parent: {
18466
18466
  type: "database_id";
18467
18467
  database_id: string;
@@ -18507,8 +18507,8 @@ export declare class NotionBubble<T extends NotionParams = NotionParams> extends
18507
18507
  emoji: string;
18508
18508
  } | undefined;
18509
18509
  }, {
18510
- properties: Record<string, unknown>;
18511
18510
  operation: "create_data_source";
18511
+ properties: Record<string, unknown>;
18512
18512
  parent: {
18513
18513
  type: "database_id";
18514
18514
  database_id: string;