@bubblelab/bubble-core 0.1.251 → 0.1.253
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 +84 -84
- package/dist/bubbles/service-bubble/agi-inc.d.ts +20 -20
- package/dist/bubbles/service-bubble/ai-agent.d.ts +12 -12
- package/dist/bubbles/service-bubble/ai-agent.js +1 -1
- package/dist/bubbles/service-bubble/airtable.d.ts +36 -36
- package/dist/bubbles/service-bubble/apify/apify.d.ts +4 -4
- package/dist/bubbles/service-bubble/ashby/ashby.d.ts +150 -150
- package/dist/bubbles/service-bubble/assembled/assembled.d.ts +5 -5
- package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts +4 -4
- package/dist/bubbles/service-bubble/confluence/confluence.d.ts +2 -2
- package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +78 -78
- package/dist/bubbles/service-bubble/eleven-labs.d.ts +4 -4
- package/dist/bubbles/service-bubble/firecrawl.d.ts +180 -180
- package/dist/bubbles/service-bubble/followupboss.d.ts +2 -2
- package/dist/bubbles/service-bubble/github.d.ts +120 -120
- package/dist/bubbles/service-bubble/gmail.d.ts +68 -68
- package/dist/bubbles/service-bubble/google-calendar.d.ts +86 -86
- package/dist/bubbles/service-bubble/google-drive.d.ts +36 -36
- package/dist/bubbles/service-bubble/http.d.ts +16 -16
- package/dist/bubbles/service-bubble/hubspot/hubspot.d.ts +6 -6
- package/dist/bubbles/service-bubble/insforge-db.d.ts +4 -4
- package/dist/bubbles/service-bubble/jira/jira.d.ts +67 -48
- package/dist/bubbles/service-bubble/jira/jira.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/jira/jira.js +77 -13
- package/dist/bubbles/service-bubble/jira/jira.js.map +1 -1
- package/dist/bubbles/service-bubble/linear/linear.d.ts +1 -1
- package/dist/bubbles/service-bubble/notion/notion.d.ts +380 -380
- package/dist/bubbles/service-bubble/notion/property-schemas.d.ts +8 -8
- package/dist/bubbles/service-bubble/postgresql.d.ts +6 -6
- package/dist/bubbles/service-bubble/posthog/posthog.d.ts +4 -4
- package/dist/bubbles/service-bubble/resend.d.ts +2 -2
- package/dist/bubbles/service-bubble/sendsafely/sendsafely.d.ts +4 -4
- package/dist/bubbles/service-bubble/slab/slab.d.ts +18 -18
- package/dist/bubbles/service-bubble/slack/slack.d.ts +122 -122
- package/dist/bubbles/service-bubble/storage.d.ts +8 -8
- package/dist/bubbles/service-bubble/stripe/stripe.d.ts +60 -60
- package/dist/bubbles/service-bubble/zendesk/zendesk.d.ts +103 -103
- package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.d.ts +2 -2
- package/dist/bubbles/tool-bubble/app-rankings-tool.d.ts +8 -8
- package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts +10 -10
- package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +158 -158
- package/dist/bubbles/tool-bubble/list-capabilities-tool.d.ts +8 -8
- package/dist/bubbles/tool-bubble/people-search-tool.d.ts +34 -34
- package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +10 -10
- package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +32 -32
- package/dist/bubbles/tool-bubble/twitter-tool.d.ts +50 -50
- package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/web-extract-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts +8 -8
- package/dist/bubbles/tool-bubble/web-search-tool.d.ts +2 -2
- package/dist/bubbles/tool-bubble/yc-scraper-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/youtube-tool.d.ts +10 -10
- package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +44 -44
- 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 +3 -3
- package/package.json +2 -2
|
@@ -48,18 +48,18 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
48
48
|
credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
|
|
49
49
|
}, "strip", import("zod").ZodTypeAny, {
|
|
50
50
|
operation: "search";
|
|
51
|
+
jql: string;
|
|
51
52
|
limit: number;
|
|
52
53
|
offset: number;
|
|
53
|
-
jql: string;
|
|
54
54
|
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
55
55
|
fields?: string[] | undefined;
|
|
56
56
|
}, {
|
|
57
57
|
operation: "search";
|
|
58
58
|
jql: string;
|
|
59
59
|
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
60
|
-
fields?: string[] | undefined;
|
|
61
60
|
limit?: number | undefined;
|
|
62
61
|
offset?: number | undefined;
|
|
62
|
+
fields?: string[] | undefined;
|
|
63
63
|
}>, import("zod").ZodObject<{
|
|
64
64
|
operation: import("zod").ZodLiteral<"get">;
|
|
65
65
|
key: import("zod").ZodString;
|
|
@@ -71,13 +71,13 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
71
71
|
operation: "get";
|
|
72
72
|
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
73
73
|
fields?: string[] | undefined;
|
|
74
|
-
expand?: ("
|
|
74
|
+
expand?: ("changelog" | "comments" | "transitions")[] | undefined;
|
|
75
75
|
}, {
|
|
76
76
|
key: string;
|
|
77
77
|
operation: "get";
|
|
78
78
|
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
79
79
|
fields?: string[] | undefined;
|
|
80
|
-
expand?: ("
|
|
80
|
+
expand?: ("changelog" | "comments" | "transitions")[] | undefined;
|
|
81
81
|
}>, import("zod").ZodObject<{
|
|
82
82
|
operation: import("zod").ZodLiteral<"create">;
|
|
83
83
|
project: import("zod").ZodString;
|
|
@@ -100,8 +100,8 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
100
100
|
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
101
101
|
priority?: string | undefined;
|
|
102
102
|
parent?: string | undefined;
|
|
103
|
-
labels?: string[] | undefined;
|
|
104
103
|
assignee?: string | undefined;
|
|
104
|
+
labels?: string[] | undefined;
|
|
105
105
|
due_date?: string | undefined;
|
|
106
106
|
custom_fields?: Record<string, unknown> | undefined;
|
|
107
107
|
}, {
|
|
@@ -113,8 +113,8 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
113
113
|
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
114
114
|
priority?: string | undefined;
|
|
115
115
|
parent?: string | undefined;
|
|
116
|
-
labels?: string[] | undefined;
|
|
117
116
|
assignee?: string | undefined;
|
|
117
|
+
labels?: string[] | undefined;
|
|
118
118
|
due_date?: string | undefined;
|
|
119
119
|
custom_fields?: Record<string, unknown> | undefined;
|
|
120
120
|
}>, import("zod").ZodObject<{
|
|
@@ -147,14 +147,14 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
147
147
|
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
148
148
|
priority?: string | undefined;
|
|
149
149
|
summary?: string | undefined;
|
|
150
|
+
assignee?: string | null | undefined;
|
|
150
151
|
labels?: {
|
|
151
152
|
set?: string[] | undefined;
|
|
152
153
|
remove?: string[] | undefined;
|
|
153
154
|
add?: string[] | undefined;
|
|
154
155
|
} | undefined;
|
|
155
|
-
comment?: string | undefined;
|
|
156
|
-
assignee?: string | null | undefined;
|
|
157
156
|
due_date?: string | null | undefined;
|
|
157
|
+
comment?: string | undefined;
|
|
158
158
|
}, {
|
|
159
159
|
key: string;
|
|
160
160
|
operation: "update";
|
|
@@ -162,14 +162,14 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
162
162
|
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
163
163
|
priority?: string | undefined;
|
|
164
164
|
summary?: string | undefined;
|
|
165
|
+
assignee?: string | null | undefined;
|
|
165
166
|
labels?: {
|
|
166
167
|
set?: string[] | undefined;
|
|
167
168
|
remove?: string[] | undefined;
|
|
168
169
|
add?: string[] | undefined;
|
|
169
170
|
} | undefined;
|
|
170
|
-
comment?: string | undefined;
|
|
171
|
-
assignee?: string | null | undefined;
|
|
172
171
|
due_date?: string | null | undefined;
|
|
172
|
+
comment?: string | undefined;
|
|
173
173
|
}>, import("zod").ZodObject<{
|
|
174
174
|
operation: import("zod").ZodLiteral<"transition">;
|
|
175
175
|
key: import("zod").ZodString;
|
|
@@ -1431,8 +1431,8 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
1431
1431
|
}, import("zod").ZodTypeAny, "passthrough">>, "many">>;
|
|
1432
1432
|
changelog: import("zod").ZodOptional<import("zod").ZodUnknown>;
|
|
1433
1433
|
}, "strip", import("zod").ZodTypeAny, {
|
|
1434
|
-
key?: string | undefined;
|
|
1435
1434
|
id?: string | undefined;
|
|
1435
|
+
key?: string | undefined;
|
|
1436
1436
|
fields?: import("zod").objectOutputType<{
|
|
1437
1437
|
summary: import("zod").ZodOptional<import("zod").ZodString>;
|
|
1438
1438
|
description: import("zod").ZodOptional<import("zod").ZodUnknown>;
|
|
@@ -1770,8 +1770,7 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
1770
1770
|
total: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
1771
1771
|
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
1772
1772
|
}, import("zod").ZodTypeAny, "passthrough"> | undefined;
|
|
1773
|
-
|
|
1774
|
-
self?: string | undefined;
|
|
1773
|
+
changelog?: unknown;
|
|
1775
1774
|
transitions?: import("zod").objectOutputType<{
|
|
1776
1775
|
id: import("zod").ZodString;
|
|
1777
1776
|
name: import("zod").ZodString;
|
|
@@ -1816,10 +1815,11 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
1816
1815
|
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
1817
1816
|
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
1818
1817
|
}, import("zod").ZodTypeAny, "passthrough">[] | undefined;
|
|
1819
|
-
|
|
1818
|
+
expand?: string | undefined;
|
|
1819
|
+
self?: string | undefined;
|
|
1820
1820
|
}, {
|
|
1821
|
-
key?: string | undefined;
|
|
1822
1821
|
id?: string | undefined;
|
|
1822
|
+
key?: string | undefined;
|
|
1823
1823
|
fields?: import("zod").objectInputType<{
|
|
1824
1824
|
summary: import("zod").ZodOptional<import("zod").ZodString>;
|
|
1825
1825
|
description: import("zod").ZodOptional<import("zod").ZodUnknown>;
|
|
@@ -2157,8 +2157,7 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
2157
2157
|
total: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
2158
2158
|
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
2159
2159
|
}, import("zod").ZodTypeAny, "passthrough"> | undefined;
|
|
2160
|
-
|
|
2161
|
-
self?: string | undefined;
|
|
2160
|
+
changelog?: unknown;
|
|
2162
2161
|
transitions?: import("zod").objectInputType<{
|
|
2163
2162
|
id: import("zod").ZodString;
|
|
2164
2163
|
name: import("zod").ZodString;
|
|
@@ -2203,7 +2202,8 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
2203
2202
|
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
2204
2203
|
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
2205
2204
|
}, import("zod").ZodTypeAny, "passthrough">[] | undefined;
|
|
2206
|
-
|
|
2205
|
+
expand?: string | undefined;
|
|
2206
|
+
self?: string | undefined;
|
|
2207
2207
|
}>, "many">>;
|
|
2208
2208
|
total: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
2209
2209
|
offset: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
@@ -2214,8 +2214,8 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
2214
2214
|
success: boolean;
|
|
2215
2215
|
operation: "search";
|
|
2216
2216
|
issues?: {
|
|
2217
|
-
key?: string | undefined;
|
|
2218
2217
|
id?: string | undefined;
|
|
2218
|
+
key?: string | undefined;
|
|
2219
2219
|
fields?: import("zod").objectOutputType<{
|
|
2220
2220
|
summary: import("zod").ZodOptional<import("zod").ZodString>;
|
|
2221
2221
|
description: import("zod").ZodOptional<import("zod").ZodUnknown>;
|
|
@@ -2553,8 +2553,7 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
2553
2553
|
total: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
2554
2554
|
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
2555
2555
|
}, import("zod").ZodTypeAny, "passthrough"> | undefined;
|
|
2556
|
-
|
|
2557
|
-
self?: string | undefined;
|
|
2556
|
+
changelog?: unknown;
|
|
2558
2557
|
transitions?: import("zod").objectOutputType<{
|
|
2559
2558
|
id: import("zod").ZodString;
|
|
2560
2559
|
name: import("zod").ZodString;
|
|
@@ -2599,7 +2598,8 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
2599
2598
|
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
2600
2599
|
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
2601
2600
|
}, import("zod").ZodTypeAny, "passthrough">[] | undefined;
|
|
2602
|
-
|
|
2601
|
+
expand?: string | undefined;
|
|
2602
|
+
self?: string | undefined;
|
|
2603
2603
|
}[] | undefined;
|
|
2604
2604
|
limit?: number | undefined;
|
|
2605
2605
|
offset?: number | undefined;
|
|
@@ -2609,8 +2609,8 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
2609
2609
|
success: boolean;
|
|
2610
2610
|
operation: "search";
|
|
2611
2611
|
issues?: {
|
|
2612
|
-
key?: string | undefined;
|
|
2613
2612
|
id?: string | undefined;
|
|
2613
|
+
key?: string | undefined;
|
|
2614
2614
|
fields?: import("zod").objectInputType<{
|
|
2615
2615
|
summary: import("zod").ZodOptional<import("zod").ZodString>;
|
|
2616
2616
|
description: import("zod").ZodOptional<import("zod").ZodUnknown>;
|
|
@@ -2948,8 +2948,7 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
2948
2948
|
total: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
2949
2949
|
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
2950
2950
|
}, import("zod").ZodTypeAny, "passthrough"> | undefined;
|
|
2951
|
-
|
|
2952
|
-
self?: string | undefined;
|
|
2951
|
+
changelog?: unknown;
|
|
2953
2952
|
transitions?: import("zod").objectInputType<{
|
|
2954
2953
|
id: import("zod").ZodString;
|
|
2955
2954
|
name: import("zod").ZodString;
|
|
@@ -2994,7 +2993,8 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
2994
2993
|
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
2995
2994
|
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
2996
2995
|
}, import("zod").ZodTypeAny, "passthrough">[] | undefined;
|
|
2997
|
-
|
|
2996
|
+
expand?: string | undefined;
|
|
2997
|
+
self?: string | undefined;
|
|
2998
2998
|
}[] | undefined;
|
|
2999
2999
|
limit?: number | undefined;
|
|
3000
3000
|
offset?: number | undefined;
|
|
@@ -4148,8 +4148,8 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
4148
4148
|
}, import("zod").ZodTypeAny, "passthrough">>, "many">>;
|
|
4149
4149
|
changelog: import("zod").ZodOptional<import("zod").ZodUnknown>;
|
|
4150
4150
|
}, "strip", import("zod").ZodTypeAny, {
|
|
4151
|
-
key?: string | undefined;
|
|
4152
4151
|
id?: string | undefined;
|
|
4152
|
+
key?: string | undefined;
|
|
4153
4153
|
fields?: import("zod").objectOutputType<{
|
|
4154
4154
|
summary: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4155
4155
|
description: import("zod").ZodOptional<import("zod").ZodUnknown>;
|
|
@@ -4487,8 +4487,7 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
4487
4487
|
total: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4488
4488
|
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
4489
4489
|
}, import("zod").ZodTypeAny, "passthrough"> | undefined;
|
|
4490
|
-
|
|
4491
|
-
self?: string | undefined;
|
|
4490
|
+
changelog?: unknown;
|
|
4492
4491
|
transitions?: import("zod").objectOutputType<{
|
|
4493
4492
|
id: import("zod").ZodString;
|
|
4494
4493
|
name: import("zod").ZodString;
|
|
@@ -4533,10 +4532,11 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
4533
4532
|
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
4534
4533
|
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
4535
4534
|
}, import("zod").ZodTypeAny, "passthrough">[] | undefined;
|
|
4536
|
-
|
|
4535
|
+
expand?: string | undefined;
|
|
4536
|
+
self?: string | undefined;
|
|
4537
4537
|
}, {
|
|
4538
|
-
key?: string | undefined;
|
|
4539
4538
|
id?: string | undefined;
|
|
4539
|
+
key?: string | undefined;
|
|
4540
4540
|
fields?: import("zod").objectInputType<{
|
|
4541
4541
|
summary: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4542
4542
|
description: import("zod").ZodOptional<import("zod").ZodUnknown>;
|
|
@@ -4874,8 +4874,7 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
4874
4874
|
total: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4875
4875
|
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
4876
4876
|
}, import("zod").ZodTypeAny, "passthrough"> | undefined;
|
|
4877
|
-
|
|
4878
|
-
self?: string | undefined;
|
|
4877
|
+
changelog?: unknown;
|
|
4879
4878
|
transitions?: import("zod").objectInputType<{
|
|
4880
4879
|
id: import("zod").ZodString;
|
|
4881
4880
|
name: import("zod").ZodString;
|
|
@@ -4920,7 +4919,8 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
4920
4919
|
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
4921
4920
|
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
4922
4921
|
}, import("zod").ZodTypeAny, "passthrough">[] | undefined;
|
|
4923
|
-
|
|
4922
|
+
expand?: string | undefined;
|
|
4923
|
+
self?: string | undefined;
|
|
4924
4924
|
}>>;
|
|
4925
4925
|
error: import("zod").ZodString;
|
|
4926
4926
|
}, "strip", import("zod").ZodTypeAny, {
|
|
@@ -4928,8 +4928,8 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
4928
4928
|
success: boolean;
|
|
4929
4929
|
operation: "get";
|
|
4930
4930
|
issue?: {
|
|
4931
|
-
key?: string | undefined;
|
|
4932
4931
|
id?: string | undefined;
|
|
4932
|
+
key?: string | undefined;
|
|
4933
4933
|
fields?: import("zod").objectOutputType<{
|
|
4934
4934
|
summary: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4935
4935
|
description: import("zod").ZodOptional<import("zod").ZodUnknown>;
|
|
@@ -5267,8 +5267,7 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
5267
5267
|
total: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
5268
5268
|
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
5269
5269
|
}, import("zod").ZodTypeAny, "passthrough"> | undefined;
|
|
5270
|
-
|
|
5271
|
-
self?: string | undefined;
|
|
5270
|
+
changelog?: unknown;
|
|
5272
5271
|
transitions?: import("zod").objectOutputType<{
|
|
5273
5272
|
id: import("zod").ZodString;
|
|
5274
5273
|
name: import("zod").ZodString;
|
|
@@ -5313,15 +5312,16 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
5313
5312
|
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
5314
5313
|
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
5315
5314
|
}, import("zod").ZodTypeAny, "passthrough">[] | undefined;
|
|
5316
|
-
|
|
5315
|
+
expand?: string | undefined;
|
|
5316
|
+
self?: string | undefined;
|
|
5317
5317
|
} | undefined;
|
|
5318
5318
|
}, {
|
|
5319
5319
|
error: string;
|
|
5320
5320
|
success: boolean;
|
|
5321
5321
|
operation: "get";
|
|
5322
5322
|
issue?: {
|
|
5323
|
-
key?: string | undefined;
|
|
5324
5323
|
id?: string | undefined;
|
|
5324
|
+
key?: string | undefined;
|
|
5325
5325
|
fields?: import("zod").objectInputType<{
|
|
5326
5326
|
summary: import("zod").ZodOptional<import("zod").ZodString>;
|
|
5327
5327
|
description: import("zod").ZodOptional<import("zod").ZodUnknown>;
|
|
@@ -5659,8 +5659,7 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
5659
5659
|
total: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
5660
5660
|
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
5661
5661
|
}, import("zod").ZodTypeAny, "passthrough"> | undefined;
|
|
5662
|
-
|
|
5663
|
-
self?: string | undefined;
|
|
5662
|
+
changelog?: unknown;
|
|
5664
5663
|
transitions?: import("zod").objectInputType<{
|
|
5665
5664
|
id: import("zod").ZodString;
|
|
5666
5665
|
name: import("zod").ZodString;
|
|
@@ -5705,7 +5704,8 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
5705
5704
|
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
5706
5705
|
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
5707
5706
|
}, import("zod").ZodTypeAny, "passthrough">[] | undefined;
|
|
5708
|
-
|
|
5707
|
+
expand?: string | undefined;
|
|
5708
|
+
self?: string | undefined;
|
|
5709
5709
|
} | undefined;
|
|
5710
5710
|
}>, import("zod").ZodObject<{
|
|
5711
5711
|
operation: import("zod").ZodLiteral<"create">;
|
|
@@ -5715,12 +5715,12 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
5715
5715
|
key: import("zod").ZodString;
|
|
5716
5716
|
self: import("zod").ZodOptional<import("zod").ZodString>;
|
|
5717
5717
|
}, "strip", import("zod").ZodTypeAny, {
|
|
5718
|
-
key: string;
|
|
5719
5718
|
id: string;
|
|
5719
|
+
key: string;
|
|
5720
5720
|
self?: string | undefined;
|
|
5721
5721
|
}, {
|
|
5722
|
-
key: string;
|
|
5723
5722
|
id: string;
|
|
5723
|
+
key: string;
|
|
5724
5724
|
self?: string | undefined;
|
|
5725
5725
|
}>>;
|
|
5726
5726
|
error: import("zod").ZodString;
|
|
@@ -5729,8 +5729,8 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
5729
5729
|
success: boolean;
|
|
5730
5730
|
operation: "create";
|
|
5731
5731
|
issue?: {
|
|
5732
|
-
key: string;
|
|
5733
5732
|
id: string;
|
|
5733
|
+
key: string;
|
|
5734
5734
|
self?: string | undefined;
|
|
5735
5735
|
} | undefined;
|
|
5736
5736
|
}, {
|
|
@@ -5738,8 +5738,8 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
5738
5738
|
success: boolean;
|
|
5739
5739
|
operation: "create";
|
|
5740
5740
|
issue?: {
|
|
5741
|
-
key: string;
|
|
5742
5741
|
id: string;
|
|
5742
|
+
key: string;
|
|
5743
5743
|
self?: string | undefined;
|
|
5744
5744
|
} | undefined;
|
|
5745
5745
|
}>, import("zod").ZodObject<{
|
|
@@ -6027,22 +6027,22 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
6027
6027
|
error: string;
|
|
6028
6028
|
success: boolean;
|
|
6029
6029
|
operation: "list_projects";
|
|
6030
|
+
total?: number | undefined;
|
|
6030
6031
|
projects?: import("zod").objectOutputType<{
|
|
6031
6032
|
id: import("zod").ZodString;
|
|
6032
6033
|
key: import("zod").ZodString;
|
|
6033
6034
|
name: import("zod").ZodString;
|
|
6034
6035
|
}, import("zod").ZodTypeAny, "passthrough">[] | undefined;
|
|
6035
|
-
total?: number | undefined;
|
|
6036
6036
|
}, {
|
|
6037
6037
|
error: string;
|
|
6038
6038
|
success: boolean;
|
|
6039
6039
|
operation: "list_projects";
|
|
6040
|
+
total?: number | undefined;
|
|
6040
6041
|
projects?: import("zod").objectInputType<{
|
|
6041
6042
|
id: import("zod").ZodString;
|
|
6042
6043
|
key: import("zod").ZodString;
|
|
6043
6044
|
name: import("zod").ZodString;
|
|
6044
6045
|
}, import("zod").ZodTypeAny, "passthrough">[] | undefined;
|
|
6045
|
-
total?: number | undefined;
|
|
6046
6046
|
}>, import("zod").ZodObject<{
|
|
6047
6047
|
operation: import("zod").ZodLiteral<"list_issue_types">;
|
|
6048
6048
|
success: import("zod").ZodBoolean;
|
|
@@ -6442,7 +6442,26 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
|
|
|
6442
6442
|
* @returns The resolved accountId
|
|
6443
6443
|
* @throws Error if assignee is an email but no user is found
|
|
6444
6444
|
*/
|
|
6445
|
+
/**
|
|
6446
|
+
* Check whether a string looks like a Jira accountId.
|
|
6447
|
+
* Account IDs are typically long alphanumeric strings like
|
|
6448
|
+
* "712020:66367503-6f4e-473d-953e-f63339075775" or "5f3b2c1a8e9d4f0012345678".
|
|
6449
|
+
*/
|
|
6450
|
+
private isAccountId;
|
|
6451
|
+
/**
|
|
6452
|
+
* Resolve an assignee string (display name, email, or accountId) to a Jira accountId.
|
|
6453
|
+
* - If it looks like an accountId already, return as-is
|
|
6454
|
+
* - If it contains '@', search by email
|
|
6455
|
+
* - Otherwise, search by display name
|
|
6456
|
+
*/
|
|
6445
6457
|
private resolveAssigneeAccountId;
|
|
6458
|
+
/**
|
|
6459
|
+
* Pre-process a JQL string to resolve display names in assignee/reporter clauses
|
|
6460
|
+
* to account IDs. Jira Cloud GDPR changes require accountIds in JQL.
|
|
6461
|
+
*
|
|
6462
|
+
* Handles: assignee = "Display Name", reporter = "Display Name"
|
|
6463
|
+
*/
|
|
6464
|
+
private resolveJqlUserReferences;
|
|
6446
6465
|
protected performAction(context?: BubbleContext): Promise<Extract<JiraResult, {
|
|
6447
6466
|
operation: T['operation'];
|
|
6448
6467
|
}>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jira.d.ts","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/jira/jira.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EACL,cAAc,EAEf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,UAAU,EAahB,MAAM,kBAAkB,CAAC;AAS1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,UAAU,CACrB,CAAC,SAAS,eAAe,GAAG,eAAe,CAC3C,SAAQ,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,EAAE;IAAE,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;CAAE,CAAC,CAAC;IAC5E,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IAC1C,MAAM,CAAC,QAAQ,CAAC,OAAO,UAAU;IACjC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAG,OAAO,CAAU;IAC5C,MAAM,CAAC,QAAQ,CAAC,UAAU,UAAU;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAAoB;IAC1C,MAAM,CAAC,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAAoB;IAChD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,gEAC+B;IAC/D,MAAM,CAAC,QAAQ,CAAC,eAAe,2qCA2B7B;IACF,MAAM,CAAC,QAAQ,CAAC,KAAK,UAAU;gBAEnB,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,aAAa;IAIjC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAc/C;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;YAqCV,kBAAkB;IAsDhC;;;;;;;;OAQG;YACW,wBAAwB;
|
|
1
|
+
{"version":3,"file":"jira.d.ts","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/jira/jira.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EACL,cAAc,EAEf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,UAAU,EAahB,MAAM,kBAAkB,CAAC;AAS1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,UAAU,CACrB,CAAC,SAAS,eAAe,GAAG,eAAe,CAC3C,SAAQ,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,EAAE;IAAE,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;CAAE,CAAC,CAAC;IAC5E,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IAC1C,MAAM,CAAC,QAAQ,CAAC,OAAO,UAAU;IACjC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAG,OAAO,CAAU;IAC5C,MAAM,CAAC,QAAQ,CAAC,UAAU,UAAU;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAAoB;IAC1C,MAAM,CAAC,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAAoB;IAChD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,gEAC+B;IAC/D,MAAM,CAAC,QAAQ,CAAC,eAAe,2qCA2B7B;IACF,MAAM,CAAC,QAAQ,CAAC,KAAK,UAAU;gBAEnB,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,aAAa;IAIjC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAc/C;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;YAqCV,kBAAkB;IAsDhC;;;;;;;;OAQG;IACH;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAInB;;;;;OAKG;YACW,wBAAwB;IAuEtC;;;;;OAKG;YACW,wBAAwB;cAoCtB,aAAa,CAC3B,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE;QAAE,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;KAAE,CAAC,CAAC;YA6DhD,MAAM;YAoGN,GAAG;YAoEH,MAAM;YA6EN,MAAM;YA6GN,UAAU;YA4EV,eAAe;YAyBf,YAAY;YA6BZ,cAAc;YAkCd,eAAe;YA2Ff,UAAU;YA4BV,WAAW;IA4CzB,SAAS,CAAC,gBAAgB,IAAI,MAAM,GAAG,SAAS;CAYjD"}
|
|
@@ -155,39 +155,101 @@ export class JiraBubble extends ServiceBubble {
|
|
|
155
155
|
* @returns The resolved accountId
|
|
156
156
|
* @throws Error if assignee is an email but no user is found
|
|
157
157
|
*/
|
|
158
|
+
/**
|
|
159
|
+
* Check whether a string looks like a Jira accountId.
|
|
160
|
+
* Account IDs are typically long alphanumeric strings like
|
|
161
|
+
* "712020:66367503-6f4e-473d-953e-f63339075775" or "5f3b2c1a8e9d4f0012345678".
|
|
162
|
+
*/
|
|
163
|
+
isAccountId(value) {
|
|
164
|
+
return /^[0-9a-f]{24}$/.test(value) || /^\d+:[0-9a-f-]+$/.test(value);
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Resolve an assignee string (display name, email, or accountId) to a Jira accountId.
|
|
168
|
+
* - If it looks like an accountId already, return as-is
|
|
169
|
+
* - If it contains '@', search by email
|
|
170
|
+
* - Otherwise, search by display name
|
|
171
|
+
*/
|
|
158
172
|
async resolveAssigneeAccountId(assignee) {
|
|
159
|
-
//
|
|
160
|
-
if (
|
|
173
|
+
// Special values that Jira handles natively
|
|
174
|
+
if (assignee === 'currentUser()')
|
|
175
|
+
return assignee;
|
|
176
|
+
// If it already looks like an accountId, return as-is
|
|
177
|
+
if (this.isAccountId(assignee)) {
|
|
161
178
|
return assignee;
|
|
162
179
|
}
|
|
163
|
-
//
|
|
180
|
+
// Search Jira for the user (works for both email and display name)
|
|
164
181
|
const queryParams = new URLSearchParams({
|
|
165
182
|
query: assignee,
|
|
166
183
|
});
|
|
167
184
|
try {
|
|
168
185
|
const response = await this.makeJiraApiRequest(`/rest/api/3/user/search?${queryParams.toString()}`, 'GET');
|
|
169
|
-
// Jira user search API returns an array directly
|
|
170
|
-
// Handle both array response and object-wrapped response
|
|
171
186
|
const usersArray = Array.isArray(response)
|
|
172
187
|
? response
|
|
173
188
|
: response.values;
|
|
174
189
|
if (!Array.isArray(usersArray) || usersArray.length === 0) {
|
|
175
|
-
throw new Error(`No user found
|
|
190
|
+
throw new Error(`No user found matching "${assignee}". Please verify the name, email, or use an accountId instead.`);
|
|
176
191
|
}
|
|
177
192
|
const users = usersArray;
|
|
178
|
-
//
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
193
|
+
// Try exact email match first (case-insensitive)
|
|
194
|
+
if (assignee.includes('@')) {
|
|
195
|
+
const emailMatch = users.find((user) => user.emailAddress?.toLowerCase() === assignee.toLowerCase());
|
|
196
|
+
if (emailMatch?.accountId)
|
|
197
|
+
return emailMatch.accountId;
|
|
182
198
|
}
|
|
183
|
-
|
|
199
|
+
// Try exact display name match (case-insensitive)
|
|
200
|
+
const nameMatch = users.find((user) => user.displayName?.toLowerCase() === assignee.toLowerCase());
|
|
201
|
+
if (nameMatch?.accountId)
|
|
202
|
+
return nameMatch.accountId;
|
|
203
|
+
// Fall back to first result if only one user returned
|
|
204
|
+
if (users.length === 1 && users[0].accountId) {
|
|
205
|
+
return users[0].accountId;
|
|
206
|
+
}
|
|
207
|
+
// Multiple ambiguous results
|
|
208
|
+
const userList = users
|
|
209
|
+
.slice(0, 5)
|
|
210
|
+
.map((u) => `"${u.displayName}" (${u.emailAddress ?? u.accountId})`)
|
|
211
|
+
.join(', ');
|
|
212
|
+
throw new Error(`Multiple users match "${assignee}": ${userList}. Please use a more specific name, email, or accountId.`);
|
|
184
213
|
}
|
|
185
214
|
catch (error) {
|
|
186
215
|
if (error instanceof Error) {
|
|
187
216
|
throw error;
|
|
188
217
|
}
|
|
189
|
-
throw new Error(`Failed to lookup user
|
|
218
|
+
throw new Error(`Failed to lookup user "${assignee}": ${String(error)}`);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Pre-process a JQL string to resolve display names in assignee/reporter clauses
|
|
223
|
+
* to account IDs. Jira Cloud GDPR changes require accountIds in JQL.
|
|
224
|
+
*
|
|
225
|
+
* Handles: assignee = "Display Name", reporter = "Display Name"
|
|
226
|
+
*/
|
|
227
|
+
async resolveJqlUserReferences(jql) {
|
|
228
|
+
// Match patterns like: assignee = "Some Name" or reporter = "Some Name"
|
|
229
|
+
// Also handles: assignee = 'Some Name' (single quotes)
|
|
230
|
+
const userFieldPattern = /\b(assignee|reporter)\s*=\s*["']([^"']+)["']/gi;
|
|
231
|
+
let resolvedJql = jql;
|
|
232
|
+
const matches = [...jql.matchAll(userFieldPattern)];
|
|
233
|
+
for (const match of matches) {
|
|
234
|
+
const [fullMatch, field, value] = match;
|
|
235
|
+
// Skip special JQL functions and values that look like accountIds
|
|
236
|
+
if (value === 'currentUser()' ||
|
|
237
|
+
value === 'EMPTY' ||
|
|
238
|
+
value === 'empty' ||
|
|
239
|
+
this.isAccountId(value)) {
|
|
240
|
+
continue;
|
|
241
|
+
}
|
|
242
|
+
try {
|
|
243
|
+
const accountId = await this.resolveAssigneeAccountId(value);
|
|
244
|
+
if (accountId !== value) {
|
|
245
|
+
resolvedJql = resolvedJql.replace(fullMatch, `${field} = "${accountId}"`);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
catch {
|
|
249
|
+
// If resolution fails, leave the original JQL — Jira will return its own error
|
|
250
|
+
}
|
|
190
251
|
}
|
|
252
|
+
return resolvedJql;
|
|
191
253
|
}
|
|
192
254
|
async performAction(context) {
|
|
193
255
|
void context;
|
|
@@ -236,7 +298,9 @@ export class JiraBubble extends ServiceBubble {
|
|
|
236
298
|
// CORE OPERATION 1: search
|
|
237
299
|
// -------------------------------------------------------------------------
|
|
238
300
|
async search(params) {
|
|
239
|
-
const { jql, limit, offset, fields } = params;
|
|
301
|
+
const { jql: rawJql, limit, offset, fields } = params;
|
|
302
|
+
// Resolve display names in assignee/reporter to accountIds (Jira Cloud GDPR)
|
|
303
|
+
const jql = await this.resolveJqlUserReferences(rawJql);
|
|
240
304
|
const queryParams = new URLSearchParams({
|
|
241
305
|
jql,
|
|
242
306
|
startAt: String(offset ?? 0),
|