@intentsolutions/blueprint 2.4.0 → 2.5.0
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/cli.js +196 -9
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/integrations/jira/client.d.ts +103 -0
- package/dist/integrations/jira/client.d.ts.map +1 -0
- package/dist/integrations/jira/client.js +356 -0
- package/dist/integrations/jira/client.js.map +1 -0
- package/dist/integrations/jira/exporter.d.ts +72 -0
- package/dist/integrations/jira/exporter.d.ts.map +1 -0
- package/dist/integrations/jira/exporter.js +447 -0
- package/dist/integrations/jira/exporter.js.map +1 -0
- package/dist/integrations/jira/index.d.ts +9 -0
- package/dist/integrations/jira/index.d.ts.map +1 -0
- package/dist/integrations/jira/index.js +8 -0
- package/dist/integrations/jira/index.js.map +1 -0
- package/dist/integrations/jira/types.d.ts +194 -0
- package/dist/integrations/jira/types.d.ts.map +1 -0
- package/dist/integrations/jira/types.js +42 -0
- package/dist/integrations/jira/types.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Jira Integration Types
|
|
3
|
+
* Types for Jira REST API integration
|
|
4
|
+
*/
|
|
5
|
+
export interface JiraConfig {
|
|
6
|
+
/** Jira instance URL (e.g., https://your-domain.atlassian.net) */
|
|
7
|
+
baseUrl: string;
|
|
8
|
+
/** User email for authentication */
|
|
9
|
+
email: string;
|
|
10
|
+
/** API token (from https://id.atlassian.com/manage-profile/security/api-tokens) */
|
|
11
|
+
apiToken: string;
|
|
12
|
+
/** Project key (e.g., PROJ) */
|
|
13
|
+
projectKey: string;
|
|
14
|
+
}
|
|
15
|
+
export interface JiraProject {
|
|
16
|
+
id: string;
|
|
17
|
+
key: string;
|
|
18
|
+
name: string;
|
|
19
|
+
projectTypeKey: string;
|
|
20
|
+
style: 'classic' | 'next-gen';
|
|
21
|
+
}
|
|
22
|
+
export interface JiraIssueType {
|
|
23
|
+
id: string;
|
|
24
|
+
name: string;
|
|
25
|
+
description?: string;
|
|
26
|
+
subtask: boolean;
|
|
27
|
+
hierarchyLevel: number;
|
|
28
|
+
}
|
|
29
|
+
export interface JiraPriority {
|
|
30
|
+
id: string;
|
|
31
|
+
name: string;
|
|
32
|
+
iconUrl?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface JiraStatus {
|
|
35
|
+
id: string;
|
|
36
|
+
name: string;
|
|
37
|
+
statusCategory: {
|
|
38
|
+
id: number;
|
|
39
|
+
key: string;
|
|
40
|
+
name: string;
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export interface JiraUser {
|
|
44
|
+
accountId: string;
|
|
45
|
+
displayName: string;
|
|
46
|
+
emailAddress?: string;
|
|
47
|
+
active: boolean;
|
|
48
|
+
}
|
|
49
|
+
export interface JiraSprint {
|
|
50
|
+
id: number;
|
|
51
|
+
name: string;
|
|
52
|
+
state: 'future' | 'active' | 'closed';
|
|
53
|
+
startDate?: string;
|
|
54
|
+
endDate?: string;
|
|
55
|
+
boardId: number;
|
|
56
|
+
goal?: string;
|
|
57
|
+
}
|
|
58
|
+
export interface JiraBoard {
|
|
59
|
+
id: number;
|
|
60
|
+
name: string;
|
|
61
|
+
type: 'scrum' | 'kanban';
|
|
62
|
+
projectKey: string;
|
|
63
|
+
}
|
|
64
|
+
export interface JiraComponent {
|
|
65
|
+
id: string;
|
|
66
|
+
name: string;
|
|
67
|
+
description?: string;
|
|
68
|
+
projectKey: string;
|
|
69
|
+
}
|
|
70
|
+
export interface JiraVersion {
|
|
71
|
+
id: string;
|
|
72
|
+
name: string;
|
|
73
|
+
description?: string;
|
|
74
|
+
released: boolean;
|
|
75
|
+
releaseDate?: string;
|
|
76
|
+
projectKey: string;
|
|
77
|
+
}
|
|
78
|
+
export interface JiraIssue {
|
|
79
|
+
id: string;
|
|
80
|
+
key: string;
|
|
81
|
+
self: string;
|
|
82
|
+
fields: {
|
|
83
|
+
summary: string;
|
|
84
|
+
description?: string;
|
|
85
|
+
issuetype: JiraIssueType;
|
|
86
|
+
priority?: JiraPriority;
|
|
87
|
+
status: JiraStatus;
|
|
88
|
+
project: {
|
|
89
|
+
id: string;
|
|
90
|
+
key: string;
|
|
91
|
+
name: string;
|
|
92
|
+
};
|
|
93
|
+
parent?: {
|
|
94
|
+
id: string;
|
|
95
|
+
key: string;
|
|
96
|
+
};
|
|
97
|
+
subtasks?: JiraIssue[];
|
|
98
|
+
components?: JiraComponent[];
|
|
99
|
+
labels?: string[];
|
|
100
|
+
fixVersions?: JiraVersion[];
|
|
101
|
+
sprint?: JiraSprint;
|
|
102
|
+
storyPoints?: number;
|
|
103
|
+
[key: string]: unknown;
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
export interface CreateIssueInput {
|
|
107
|
+
summary: string;
|
|
108
|
+
description?: string;
|
|
109
|
+
issueType: 'Epic' | 'Story' | 'Task' | 'Sub-task' | 'Bug';
|
|
110
|
+
projectKey: string;
|
|
111
|
+
parentKey?: string;
|
|
112
|
+
priority?: 'Highest' | 'High' | 'Medium' | 'Low' | 'Lowest';
|
|
113
|
+
labels?: string[];
|
|
114
|
+
components?: string[];
|
|
115
|
+
fixVersions?: string[];
|
|
116
|
+
sprintId?: number;
|
|
117
|
+
storyPoints?: number;
|
|
118
|
+
epicLink?: string;
|
|
119
|
+
customFields?: Record<string, unknown>;
|
|
120
|
+
}
|
|
121
|
+
export interface CreateSprintInput {
|
|
122
|
+
name: string;
|
|
123
|
+
boardId: number;
|
|
124
|
+
startDate?: string;
|
|
125
|
+
endDate?: string;
|
|
126
|
+
goal?: string;
|
|
127
|
+
}
|
|
128
|
+
export interface CreateVersionInput {
|
|
129
|
+
name: string;
|
|
130
|
+
projectKey: string;
|
|
131
|
+
description?: string;
|
|
132
|
+
releaseDate?: string;
|
|
133
|
+
released?: boolean;
|
|
134
|
+
}
|
|
135
|
+
export interface JiraTaskBreakdown {
|
|
136
|
+
epic?: {
|
|
137
|
+
summary: string;
|
|
138
|
+
description?: string;
|
|
139
|
+
};
|
|
140
|
+
stories: JiraStoryItem[];
|
|
141
|
+
}
|
|
142
|
+
export interface JiraStoryItem {
|
|
143
|
+
summary: string;
|
|
144
|
+
description?: string;
|
|
145
|
+
priority?: 'Highest' | 'High' | 'Medium' | 'Low' | 'Lowest';
|
|
146
|
+
storyPoints?: number;
|
|
147
|
+
labels?: string[];
|
|
148
|
+
tasks?: JiraTaskItem[];
|
|
149
|
+
}
|
|
150
|
+
export interface JiraTaskItem {
|
|
151
|
+
summary: string;
|
|
152
|
+
description?: string;
|
|
153
|
+
priority?: 'Highest' | 'High' | 'Medium' | 'Low' | 'Lowest';
|
|
154
|
+
}
|
|
155
|
+
export interface JiraExportResult {
|
|
156
|
+
epics: JiraIssue[];
|
|
157
|
+
stories: JiraIssue[];
|
|
158
|
+
tasks: JiraIssue[];
|
|
159
|
+
sprints: JiraSprint[];
|
|
160
|
+
versions: JiraVersion[];
|
|
161
|
+
components: JiraComponent[];
|
|
162
|
+
errors: string[];
|
|
163
|
+
}
|
|
164
|
+
export interface JiraExportOptions {
|
|
165
|
+
/** Create an Epic for the project */
|
|
166
|
+
createEpic?: boolean;
|
|
167
|
+
/** Epic name (if creating) */
|
|
168
|
+
epicName?: string;
|
|
169
|
+
/** Create sprints from release phases */
|
|
170
|
+
createSprints?: boolean;
|
|
171
|
+
/** Board ID for sprint creation */
|
|
172
|
+
boardId?: number;
|
|
173
|
+
/** Create versions from release phases */
|
|
174
|
+
createVersions?: boolean;
|
|
175
|
+
/** Sync components from document categories */
|
|
176
|
+
syncComponents?: boolean;
|
|
177
|
+
/** Add labels to issues */
|
|
178
|
+
addLabels?: boolean;
|
|
179
|
+
/** Dry run - preview without creating */
|
|
180
|
+
dryRun?: boolean;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Priority mapping between Blueprint and Jira
|
|
184
|
+
*/
|
|
185
|
+
export declare const PRIORITY_MAP: Record<string, string>;
|
|
186
|
+
/**
|
|
187
|
+
* Standard labels for Blueprint documents
|
|
188
|
+
*/
|
|
189
|
+
export declare const STANDARD_LABELS: string[];
|
|
190
|
+
/**
|
|
191
|
+
* Category to component mapping
|
|
192
|
+
*/
|
|
193
|
+
export declare const CATEGORY_COMPONENTS: Record<string, string>;
|
|
194
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/integrations/jira/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Jira Integration Types
|
|
3
|
+
* Types for Jira REST API integration
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Priority mapping between Blueprint and Jira
|
|
7
|
+
*/
|
|
8
|
+
export const PRIORITY_MAP = {
|
|
9
|
+
urgent: 'Highest',
|
|
10
|
+
high: 'High',
|
|
11
|
+
medium: 'Medium',
|
|
12
|
+
low: 'Low',
|
|
13
|
+
none: 'Lowest',
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Standard labels for Blueprint documents
|
|
17
|
+
*/
|
|
18
|
+
export const STANDARD_LABELS = [
|
|
19
|
+
'blueprint',
|
|
20
|
+
'prd',
|
|
21
|
+
'technical-spec',
|
|
22
|
+
'architecture',
|
|
23
|
+
'api-design',
|
|
24
|
+
'security',
|
|
25
|
+
'infrastructure',
|
|
26
|
+
'testing',
|
|
27
|
+
'documentation',
|
|
28
|
+
];
|
|
29
|
+
/**
|
|
30
|
+
* Category to component mapping
|
|
31
|
+
*/
|
|
32
|
+
export const CATEGORY_COMPONENTS = {
|
|
33
|
+
feature: 'Features',
|
|
34
|
+
bug: 'Bug Fixes',
|
|
35
|
+
'tech-debt': 'Technical Debt',
|
|
36
|
+
research: 'Research',
|
|
37
|
+
design: 'Design',
|
|
38
|
+
devops: 'DevOps',
|
|
39
|
+
security: 'Security',
|
|
40
|
+
testing: 'Testing',
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/integrations/jira/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA+LH;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAA2B;IAClD,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,QAAQ;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAa;IACvC,WAAW;IACX,KAAK;IACL,gBAAgB;IAChB,cAAc;IACd,YAAY;IACZ,UAAU;IACV,gBAAgB;IAChB,SAAS;IACT,eAAe;CAChB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAA2B;IACzD,OAAO,EAAE,UAAU;IACnB,GAAG,EAAE,WAAW;IAChB,WAAW,EAAE,gBAAgB;IAC7B,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;CACnB,CAAC"}
|