jirallm 0.1.1 → 0.3.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/README.md +75 -0
- package/dist/cli/commands/assign.d.ts +9 -0
- package/dist/cli/commands/assign.d.ts.map +1 -0
- package/dist/cli/commands/assign.js +37 -0
- package/dist/cli/commands/assign.js.map +1 -0
- package/dist/cli/commands/assign.test.d.ts +2 -0
- package/dist/cli/commands/assign.test.d.ts.map +1 -0
- package/dist/cli/commands/assign.test.js +69 -0
- package/dist/cli/commands/assign.test.js.map +1 -0
- package/dist/cli/commands/attach.d.ts +16 -0
- package/dist/cli/commands/attach.d.ts.map +1 -0
- package/dist/cli/commands/attach.js +52 -0
- package/dist/cli/commands/attach.js.map +1 -0
- package/dist/cli/commands/attach.test.d.ts +2 -0
- package/dist/cli/commands/attach.test.d.ts.map +1 -0
- package/dist/cli/commands/attach.test.js +92 -0
- package/dist/cli/commands/attach.test.js.map +1 -0
- package/dist/cli/commands/board.d.ts +10 -0
- package/dist/cli/commands/board.d.ts.map +1 -0
- package/dist/cli/commands/board.js +54 -0
- package/dist/cli/commands/board.js.map +1 -0
- package/dist/cli/commands/boards.d.ts +11 -0
- package/dist/cli/commands/boards.d.ts.map +1 -0
- package/dist/cli/commands/boards.js +27 -0
- package/dist/cli/commands/boards.js.map +1 -0
- package/dist/cli/commands/boards.test.d.ts +2 -0
- package/dist/cli/commands/boards.test.d.ts.map +1 -0
- package/dist/cli/commands/boards.test.js +80 -0
- package/dist/cli/commands/boards.test.js.map +1 -0
- package/dist/cli/commands/comment.d.ts +15 -0
- package/dist/cli/commands/comment.d.ts.map +1 -0
- package/dist/cli/commands/comment.js +61 -0
- package/dist/cli/commands/comment.js.map +1 -0
- package/dist/cli/commands/components.d.ts +7 -0
- package/dist/cli/commands/components.d.ts.map +1 -0
- package/dist/cli/commands/components.js +23 -0
- package/dist/cli/commands/components.js.map +1 -0
- package/dist/cli/commands/components.test.d.ts +2 -0
- package/dist/cli/commands/components.test.d.ts.map +1 -0
- package/dist/cli/commands/components.test.js +62 -0
- package/dist/cli/commands/components.test.js.map +1 -0
- package/dist/cli/commands/create.d.ts +18 -0
- package/dist/cli/commands/create.d.ts.map +1 -0
- package/dist/cli/commands/create.js +49 -0
- package/dist/cli/commands/create.js.map +1 -0
- package/dist/cli/commands/create.test.d.ts +2 -0
- package/dist/cli/commands/create.test.d.ts.map +1 -0
- package/dist/cli/commands/create.test.js +133 -0
- package/dist/cli/commands/create.test.js.map +1 -0
- package/dist/cli/commands/edit.d.ts +17 -0
- package/dist/cli/commands/edit.d.ts.map +1 -0
- package/dist/cli/commands/edit.js +52 -0
- package/dist/cli/commands/edit.js.map +1 -0
- package/dist/cli/commands/edit.test.d.ts +2 -0
- package/dist/cli/commands/edit.test.d.ts.map +1 -0
- package/dist/cli/commands/edit.test.js +96 -0
- package/dist/cli/commands/edit.test.js.map +1 -0
- package/dist/cli/commands/fetch.d.ts +7 -0
- package/dist/cli/commands/fetch.d.ts.map +1 -0
- package/dist/cli/commands/fetch.js +32 -0
- package/dist/cli/commands/fetch.js.map +1 -0
- package/dist/cli/commands/fetch.test.d.ts +2 -0
- package/dist/cli/commands/fetch.test.d.ts.map +1 -0
- package/dist/cli/commands/fetch.test.js +93 -0
- package/dist/cli/commands/fetch.test.js.map +1 -0
- package/dist/cli/commands/fields.d.ts +8 -0
- package/dist/cli/commands/fields.d.ts.map +1 -0
- package/dist/cli/commands/fields.js +47 -0
- package/dist/cli/commands/fields.js.map +1 -0
- package/dist/cli/commands/fields.test.d.ts +2 -0
- package/dist/cli/commands/fields.test.d.ts.map +1 -0
- package/dist/cli/commands/fields.test.js +78 -0
- package/dist/cli/commands/fields.test.js.map +1 -0
- package/dist/cli/commands/issuetypes.d.ts +7 -0
- package/dist/cli/commands/issuetypes.d.ts.map +1 -0
- package/dist/cli/commands/issuetypes.js +23 -0
- package/dist/cli/commands/issuetypes.js.map +1 -0
- package/dist/cli/commands/issuetypes.test.d.ts +2 -0
- package/dist/cli/commands/issuetypes.test.d.ts.map +1 -0
- package/dist/cli/commands/issuetypes.test.js +62 -0
- package/dist/cli/commands/issuetypes.test.js.map +1 -0
- package/dist/cli/commands/link.d.ts +18 -0
- package/dist/cli/commands/link.d.ts.map +1 -0
- package/dist/cli/commands/link.js +51 -0
- package/dist/cli/commands/link.js.map +1 -0
- package/dist/cli/commands/link.test.d.ts +2 -0
- package/dist/cli/commands/link.test.d.ts.map +1 -0
- package/dist/cli/commands/link.test.js +96 -0
- package/dist/cli/commands/link.test.js.map +1 -0
- package/dist/cli/commands/linktypes.d.ts +6 -0
- package/dist/cli/commands/linktypes.d.ts.map +1 -0
- package/dist/cli/commands/linktypes.js +21 -0
- package/dist/cli/commands/linktypes.js.map +1 -0
- package/dist/cli/commands/linktypes.test.d.ts +2 -0
- package/dist/cli/commands/linktypes.test.d.ts.map +1 -0
- package/dist/cli/commands/linktypes.test.js +55 -0
- package/dist/cli/commands/linktypes.test.js.map +1 -0
- package/dist/cli/commands/me.d.ts +6 -0
- package/dist/cli/commands/me.d.ts.map +1 -0
- package/dist/cli/commands/me.js +17 -0
- package/dist/cli/commands/me.js.map +1 -0
- package/dist/cli/commands/me.test.d.ts +2 -0
- package/dist/cli/commands/me.test.d.ts.map +1 -0
- package/dist/cli/commands/me.test.js +58 -0
- package/dist/cli/commands/me.test.js.map +1 -0
- package/dist/cli/commands/projects.d.ts +9 -0
- package/dist/cli/commands/projects.d.ts.map +1 -0
- package/dist/cli/commands/projects.js +25 -0
- package/dist/cli/commands/projects.js.map +1 -0
- package/dist/cli/commands/projects.test.d.ts +2 -0
- package/dist/cli/commands/projects.test.d.ts.map +1 -0
- package/dist/cli/commands/projects.test.js +73 -0
- package/dist/cli/commands/projects.test.js.map +1 -0
- package/dist/cli/commands/search.d.ts +11 -0
- package/dist/cli/commands/search.d.ts.map +1 -0
- package/dist/cli/commands/search.js +41 -0
- package/dist/cli/commands/search.js.map +1 -0
- package/dist/cli/commands/search.test.d.ts +2 -0
- package/dist/cli/commands/search.test.d.ts.map +1 -0
- package/dist/cli/commands/search.test.js +106 -0
- package/dist/cli/commands/search.test.js.map +1 -0
- package/dist/cli/commands/setup.d.ts.map +1 -1
- package/dist/cli/commands/setup.js +5 -13
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/sprints.d.ts +10 -0
- package/dist/cli/commands/sprints.d.ts.map +1 -0
- package/dist/cli/commands/sprints.js +28 -0
- package/dist/cli/commands/sprints.js.map +1 -0
- package/dist/cli/commands/sprints.test.d.ts +2 -0
- package/dist/cli/commands/sprints.test.d.ts.map +1 -0
- package/dist/cli/commands/sprints.test.js +68 -0
- package/dist/cli/commands/sprints.test.js.map +1 -0
- package/dist/cli/commands/transition.d.ts +8 -0
- package/dist/cli/commands/transition.d.ts.map +1 -0
- package/dist/cli/commands/transition.js +46 -0
- package/dist/cli/commands/transition.js.map +1 -0
- package/dist/cli/commands/upgrade.d.ts +16 -0
- package/dist/cli/commands/upgrade.d.ts.map +1 -0
- package/dist/cli/commands/upgrade.js +83 -0
- package/dist/cli/commands/upgrade.js.map +1 -0
- package/dist/cli/commands/upgrade.test.d.ts +2 -0
- package/dist/cli/commands/upgrade.test.d.ts.map +1 -0
- package/dist/cli/commands/upgrade.test.js +146 -0
- package/dist/cli/commands/upgrade.test.js.map +1 -0
- package/dist/cli/commands/watchers.d.ts +10 -0
- package/dist/cli/commands/watchers.d.ts.map +1 -0
- package/dist/cli/commands/watchers.js +43 -0
- package/dist/cli/commands/watchers.js.map +1 -0
- package/dist/cli/commands/watchers.test.d.ts +2 -0
- package/dist/cli/commands/watchers.test.d.ts.map +1 -0
- package/dist/cli/commands/watchers.test.js +90 -0
- package/dist/cli/commands/watchers.test.js.map +1 -0
- package/dist/cli/commands/worklog.d.ts +8 -0
- package/dist/cli/commands/worklog.d.ts.map +1 -0
- package/dist/cli/commands/worklog.js +100 -0
- package/dist/cli/commands/worklog.js.map +1 -0
- package/dist/cli/commands/worklog.test.d.ts +2 -0
- package/dist/cli/commands/worklog.test.d.ts.map +1 -0
- package/dist/cli/commands/worklog.test.js +195 -0
- package/dist/cli/commands/worklog.test.js.map +1 -0
- package/dist/cli/index.js +712 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/issueKey.d.ts.map +1 -1
- package/dist/cli/issueKey.js +6 -2
- package/dist/cli/issueKey.js.map +1 -1
- package/dist/cli/issueKey.test.js +35 -0
- package/dist/cli/issueKey.test.js.map +1 -1
- package/dist/cli/jsonOutput.d.ts +6 -0
- package/dist/cli/jsonOutput.d.ts.map +1 -0
- package/dist/cli/jsonOutput.js +7 -0
- package/dist/cli/jsonOutput.js.map +1 -0
- package/dist/cli/jsonOutput.test.d.ts +2 -0
- package/dist/cli/jsonOutput.test.d.ts.map +1 -0
- package/dist/cli/jsonOutput.test.js +44 -0
- package/dist/cli/jsonOutput.test.js.map +1 -0
- package/dist/cli/resolveOrg.d.ts +2 -0
- package/dist/cli/resolveOrg.d.ts.map +1 -0
- package/dist/cli/resolveOrg.js +15 -0
- package/dist/cli/resolveOrg.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/chunkMarkdown.d.ts +6 -0
- package/dist/lib/chunkMarkdown.d.ts.map +1 -0
- package/dist/lib/chunkMarkdown.js +73 -0
- package/dist/lib/chunkMarkdown.js.map +1 -0
- package/dist/lib/chunkMarkdown.test.d.ts +2 -0
- package/dist/lib/chunkMarkdown.test.d.ts.map +1 -0
- package/dist/lib/chunkMarkdown.test.js +171 -0
- package/dist/lib/chunkMarkdown.test.js.map +1 -0
- package/dist/lib/config.d.ts +6 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +25 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/config.test.js +67 -0
- package/dist/lib/config.test.js.map +1 -1
- package/dist/lib/configSchema.d.ts +44 -0
- package/dist/lib/configSchema.d.ts.map +1 -1
- package/dist/lib/configSchema.js +20 -0
- package/dist/lib/configSchema.js.map +1 -1
- package/dist/lib/customFieldWrite.d.ts +21 -0
- package/dist/lib/customFieldWrite.d.ts.map +1 -0
- package/dist/lib/customFieldWrite.js +83 -0
- package/dist/lib/customFieldWrite.js.map +1 -0
- package/dist/lib/customFieldWrite.test.d.ts +2 -0
- package/dist/lib/customFieldWrite.test.d.ts.map +1 -0
- package/dist/lib/customFieldWrite.test.js +87 -0
- package/dist/lib/customFieldWrite.test.js.map +1 -0
- package/dist/lib/exportFields.d.ts +30 -0
- package/dist/lib/exportFields.d.ts.map +1 -0
- package/dist/lib/exportFields.js +169 -0
- package/dist/lib/exportFields.js.map +1 -0
- package/dist/lib/exportFields.test.d.ts +2 -0
- package/dist/lib/exportFields.test.d.ts.map +1 -0
- package/dist/lib/exportFields.test.js +145 -0
- package/dist/lib/exportFields.test.js.map +1 -0
- package/dist/lib/exporter.d.ts +25 -3
- package/dist/lib/exporter.d.ts.map +1 -1
- package/dist/lib/exporter.js +195 -18
- package/dist/lib/exporter.js.map +1 -1
- package/dist/lib/exporter.test.d.ts +2 -0
- package/dist/lib/exporter.test.d.ts.map +1 -0
- package/dist/lib/exporter.test.js +227 -0
- package/dist/lib/exporter.test.js.map +1 -0
- package/dist/lib/jiraClient.d.ts +272 -1
- package/dist/lib/jiraClient.d.ts.map +1 -1
- package/dist/lib/jiraClient.discovery.test.d.ts +2 -0
- package/dist/lib/jiraClient.discovery.test.d.ts.map +1 -0
- package/dist/lib/jiraClient.discovery.test.js +209 -0
- package/dist/lib/jiraClient.discovery.test.js.map +1 -0
- package/dist/lib/jiraClient.js +656 -16
- package/dist/lib/jiraClient.js.map +1 -1
- package/dist/lib/jiraClient.test.d.ts +2 -0
- package/dist/lib/jiraClient.test.d.ts.map +1 -0
- package/dist/lib/jiraClient.test.js +383 -0
- package/dist/lib/jiraClient.test.js.map +1 -0
- package/dist/lib/jiraClient.write.test.d.ts +2 -0
- package/dist/lib/jiraClient.write.test.d.ts.map +1 -0
- package/dist/lib/jiraClient.write.test.js +358 -0
- package/dist/lib/jiraClient.write.test.js.map +1 -0
- package/dist/lib/markdownToWiki.d.ts +2 -0
- package/dist/lib/markdownToWiki.d.ts.map +1 -0
- package/dist/lib/markdownToWiki.js +110 -0
- package/dist/lib/markdownToWiki.js.map +1 -0
- package/dist/lib/markdownToWiki.test.d.ts +2 -0
- package/dist/lib/markdownToWiki.test.d.ts.map +1 -0
- package/dist/lib/markdownToWiki.test.js +122 -0
- package/dist/lib/markdownToWiki.test.js.map +1 -0
- package/dist/lib/platform.d.ts +2 -0
- package/dist/lib/platform.d.ts.map +1 -1
- package/dist/lib/platform.js +8 -0
- package/dist/lib/platform.js.map +1 -1
- package/dist/lib/runCommand.d.ts +1 -0
- package/dist/lib/runCommand.d.ts.map +1 -1
- package/dist/lib/runCommand.js +8 -1
- package/dist/lib/runCommand.js.map +1 -1
- package/dist/lib/worklog.d.ts +36 -0
- package/dist/lib/worklog.d.ts.map +1 -0
- package/dist/lib/worklog.js +188 -0
- package/dist/lib/worklog.js.map +1 -0
- package/dist/lib/worklog.test.d.ts +2 -0
- package/dist/lib/worklog.test.d.ts.map +1 -0
- package/dist/lib/worklog.test.js +118 -0
- package/dist/lib/worklog.test.js.map +1 -0
- package/package.json +3 -1
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
export const BUILT_IN_FIELDS = [
|
|
2
|
+
'key',
|
|
3
|
+
'status',
|
|
4
|
+
'issueType',
|
|
5
|
+
'priority',
|
|
6
|
+
'resolution',
|
|
7
|
+
'assignee',
|
|
8
|
+
'reporter',
|
|
9
|
+
'creator',
|
|
10
|
+
'createdAt',
|
|
11
|
+
'updatedAt',
|
|
12
|
+
'dueDate',
|
|
13
|
+
'resolutionDate',
|
|
14
|
+
'components',
|
|
15
|
+
'labels',
|
|
16
|
+
'fixVersions',
|
|
17
|
+
'versions',
|
|
18
|
+
'sprint',
|
|
19
|
+
'storyPoints',
|
|
20
|
+
'timetracking',
|
|
21
|
+
'issueLinks',
|
|
22
|
+
'parent',
|
|
23
|
+
'epic',
|
|
24
|
+
'subtasks',
|
|
25
|
+
];
|
|
26
|
+
export const BUILT_IN_FIELD_TO_JIRA_ID = {
|
|
27
|
+
key: null,
|
|
28
|
+
status: 'status',
|
|
29
|
+
issueType: 'issuetype',
|
|
30
|
+
priority: 'priority',
|
|
31
|
+
resolution: 'resolution',
|
|
32
|
+
assignee: 'assignee',
|
|
33
|
+
reporter: 'reporter',
|
|
34
|
+
creator: 'creator',
|
|
35
|
+
createdAt: 'created',
|
|
36
|
+
updatedAt: 'updated',
|
|
37
|
+
dueDate: 'duedate',
|
|
38
|
+
resolutionDate: 'resolutiondate',
|
|
39
|
+
components: 'components',
|
|
40
|
+
labels: 'labels',
|
|
41
|
+
fixVersions: 'fixVersions',
|
|
42
|
+
versions: 'versions',
|
|
43
|
+
sprint: '__sprint__',
|
|
44
|
+
storyPoints: '__storyPoints__',
|
|
45
|
+
timetracking: 'timetracking',
|
|
46
|
+
issueLinks: 'issuelinks',
|
|
47
|
+
parent: 'parent',
|
|
48
|
+
epic: '__epic__',
|
|
49
|
+
subtasks: '__subtasks__',
|
|
50
|
+
};
|
|
51
|
+
export const PRESETS = {
|
|
52
|
+
minimal: ['key', 'status', 'issueType', 'parent', 'epic', 'subtasks'],
|
|
53
|
+
default: [
|
|
54
|
+
'key',
|
|
55
|
+
'status',
|
|
56
|
+
'issueType',
|
|
57
|
+
'priority',
|
|
58
|
+
'assignee',
|
|
59
|
+
'reporter',
|
|
60
|
+
'createdAt',
|
|
61
|
+
'updatedAt',
|
|
62
|
+
'dueDate',
|
|
63
|
+
'components',
|
|
64
|
+
'labels',
|
|
65
|
+
'fixVersions',
|
|
66
|
+
'sprint',
|
|
67
|
+
'storyPoints',
|
|
68
|
+
'parent',
|
|
69
|
+
'epic',
|
|
70
|
+
'subtasks',
|
|
71
|
+
'issueLinks',
|
|
72
|
+
],
|
|
73
|
+
all: [...BUILT_IN_FIELDS],
|
|
74
|
+
};
|
|
75
|
+
export const CUSTOM_FIELD_TYPES = ['scalar', 'select', 'user', 'sprint', 'number', 'array'];
|
|
76
|
+
const ALWAYS_FETCH = ['summary', 'description', 'status', 'parent', 'attachment', 'issuetype'];
|
|
77
|
+
export function parseFieldsFlag(raw) {
|
|
78
|
+
const tokens = raw
|
|
79
|
+
.split(',')
|
|
80
|
+
.map((t) => t.trim())
|
|
81
|
+
.filter(Boolean);
|
|
82
|
+
const include = [];
|
|
83
|
+
const exclude = [];
|
|
84
|
+
let preset;
|
|
85
|
+
for (const tok of tokens) {
|
|
86
|
+
if (tok === 'all' || tok === 'default' || tok === 'minimal') {
|
|
87
|
+
preset = tok;
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
if (tok.startsWith('+')) {
|
|
91
|
+
include.push(tok.slice(1));
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
if (tok.startsWith('-')) {
|
|
95
|
+
exclude.push(tok.slice(1));
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
// bare name → replacement mode (no preset implied unless above)
|
|
99
|
+
include.push(tok);
|
|
100
|
+
}
|
|
101
|
+
// If no preset and only bare names (no +/-), treat as custom list (preset=undefined, include=names).
|
|
102
|
+
// The resolver will treat preset=undefined as "exactly the include list".
|
|
103
|
+
const hasAdditive = tokens.some((t) => t.startsWith('+') || t.startsWith('-'));
|
|
104
|
+
if (!preset && !hasAdditive && include.length > 0) {
|
|
105
|
+
return { include, exclude: [] };
|
|
106
|
+
}
|
|
107
|
+
return { preset, include, exclude };
|
|
108
|
+
}
|
|
109
|
+
export function resolveFieldSet(selector, customFieldDefs = {}) {
|
|
110
|
+
const customKeys = Object.keys(customFieldDefs);
|
|
111
|
+
let base;
|
|
112
|
+
if (!selector || (!selector.preset && !selector.include && !selector.exclude)) {
|
|
113
|
+
base = [...PRESETS.default];
|
|
114
|
+
}
|
|
115
|
+
else if (selector.preset) {
|
|
116
|
+
base = [...PRESETS[selector.preset]];
|
|
117
|
+
}
|
|
118
|
+
else if (selector.include && selector.include.length > 0 && !selector.exclude?.length) {
|
|
119
|
+
// bare-name mode: exact set from include
|
|
120
|
+
base = [...selector.include];
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
base = [...PRESETS.default];
|
|
124
|
+
}
|
|
125
|
+
const set = new Set(base);
|
|
126
|
+
if (selector?.include) {
|
|
127
|
+
for (const k of selector.include)
|
|
128
|
+
set.add(k);
|
|
129
|
+
}
|
|
130
|
+
if (selector?.exclude) {
|
|
131
|
+
for (const k of selector.exclude)
|
|
132
|
+
set.delete(k);
|
|
133
|
+
}
|
|
134
|
+
// Custom field keys are always included if defined and not explicitly excluded.
|
|
135
|
+
for (const k of customKeys) {
|
|
136
|
+
if (!selector?.exclude?.includes(k))
|
|
137
|
+
set.add(k);
|
|
138
|
+
}
|
|
139
|
+
const friendlyKeys = [...set];
|
|
140
|
+
const jiraIds = new Set(ALWAYS_FETCH);
|
|
141
|
+
for (const key of friendlyKeys) {
|
|
142
|
+
if (key in BUILT_IN_FIELD_TO_JIRA_ID) {
|
|
143
|
+
const id = BUILT_IN_FIELD_TO_JIRA_ID[key];
|
|
144
|
+
if (id && !id.startsWith('__'))
|
|
145
|
+
jiraIds.add(id);
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
const def = customFieldDefs[key];
|
|
149
|
+
if (def)
|
|
150
|
+
jiraIds.add(def.id);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return {
|
|
154
|
+
friendlyKeys,
|
|
155
|
+
jiraFieldIds: [...jiraIds],
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
export function hasSprintRequested(friendlyKeys, customFieldDefs) {
|
|
159
|
+
if (!friendlyKeys.includes('sprint'))
|
|
160
|
+
return false;
|
|
161
|
+
// If user provided a "sprint" custom field override, no autodetection needed.
|
|
162
|
+
return !customFieldDefs.sprint;
|
|
163
|
+
}
|
|
164
|
+
export function hasStoryPointsRequested(friendlyKeys, customFieldDefs) {
|
|
165
|
+
if (!friendlyKeys.includes('storyPoints'))
|
|
166
|
+
return false;
|
|
167
|
+
return !customFieldDefs.storyPoints;
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=exportFields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exportFields.js","sourceRoot":"","sources":["../../src/lib/exportFields.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exportFields.test.d.ts","sourceRoot":"","sources":["../../src/lib/exportFields.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { BUILT_IN_FIELDS, BUILT_IN_FIELD_TO_JIRA_ID, PRESETS, hasSprintRequested, hasStoryPointsRequested, parseFieldsFlag, resolveFieldSet, } from './exportFields.js';
|
|
3
|
+
describe('parseFieldsFlag', () => {
|
|
4
|
+
it('parses a preset name alone', () => {
|
|
5
|
+
expect(parseFieldsFlag('all')).toEqual({ preset: 'all', include: [], exclude: [] });
|
|
6
|
+
expect(parseFieldsFlag('minimal')).toEqual({ preset: 'minimal', include: [], exclude: [] });
|
|
7
|
+
expect(parseFieldsFlag('default')).toEqual({ preset: 'default', include: [], exclude: [] });
|
|
8
|
+
});
|
|
9
|
+
it('parses +/- additive operators on top of default', () => {
|
|
10
|
+
expect(parseFieldsFlag('+sprint,+storyPoints,-creator')).toEqual({
|
|
11
|
+
preset: undefined,
|
|
12
|
+
include: ['sprint', 'storyPoints'],
|
|
13
|
+
exclude: ['creator'],
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
it('parses bare names as an exact custom list', () => {
|
|
17
|
+
expect(parseFieldsFlag('key,status,labels')).toEqual({
|
|
18
|
+
include: ['key', 'status', 'labels'],
|
|
19
|
+
exclude: [],
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
it('combines a preset with adjustments', () => {
|
|
23
|
+
expect(parseFieldsFlag('all,-creator,+severity')).toEqual({
|
|
24
|
+
preset: 'all',
|
|
25
|
+
include: ['severity'],
|
|
26
|
+
exclude: ['creator'],
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
it('handles whitespace and empty tokens', () => {
|
|
30
|
+
expect(parseFieldsFlag(' all , +x , , -y ')).toEqual({
|
|
31
|
+
preset: 'all',
|
|
32
|
+
include: ['x'],
|
|
33
|
+
exclude: ['y'],
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
describe('resolveFieldSet', () => {
|
|
38
|
+
it('defaults to the default preset when selector is undefined', () => {
|
|
39
|
+
const r = resolveFieldSet(undefined);
|
|
40
|
+
expect(r.friendlyKeys.sort()).toEqual([...PRESETS.default].sort());
|
|
41
|
+
});
|
|
42
|
+
it('expands the all preset', () => {
|
|
43
|
+
const r = resolveFieldSet({ preset: 'all' });
|
|
44
|
+
expect(r.friendlyKeys).toContain('sprint');
|
|
45
|
+
expect(r.friendlyKeys).toContain('storyPoints');
|
|
46
|
+
expect(r.friendlyKeys).toContain('issueLinks');
|
|
47
|
+
});
|
|
48
|
+
it('expands minimal preset to the legacy field set', () => {
|
|
49
|
+
const r = resolveFieldSet({ preset: 'minimal' });
|
|
50
|
+
expect(new Set(r.friendlyKeys)).toEqual(new Set(PRESETS.minimal));
|
|
51
|
+
});
|
|
52
|
+
it('applies include and exclude on top of preset', () => {
|
|
53
|
+
const r = resolveFieldSet({ preset: 'minimal', include: ['labels'], exclude: ['subtasks'] });
|
|
54
|
+
expect(r.friendlyKeys).toContain('labels');
|
|
55
|
+
expect(r.friendlyKeys).not.toContain('subtasks');
|
|
56
|
+
});
|
|
57
|
+
it('treats bare-name selectors as an exact list', () => {
|
|
58
|
+
const r = resolveFieldSet({ include: ['key', 'status', 'priority'], exclude: [] });
|
|
59
|
+
expect(new Set(r.friendlyKeys)).toEqual(new Set(['key', 'status', 'priority']));
|
|
60
|
+
});
|
|
61
|
+
it('includes Jira API IDs for the always-fetch base set', () => {
|
|
62
|
+
const r = resolveFieldSet({ preset: 'minimal' });
|
|
63
|
+
for (const must of ['summary', 'description', 'status', 'parent', 'attachment', 'issuetype']) {
|
|
64
|
+
expect(r.jiraFieldIds).toContain(must);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
it('maps friendly keys to standard Jira field IDs', () => {
|
|
68
|
+
const r = resolveFieldSet({ preset: 'all' });
|
|
69
|
+
expect(r.jiraFieldIds).toContain('priority');
|
|
70
|
+
expect(r.jiraFieldIds).toContain('duedate');
|
|
71
|
+
expect(r.jiraFieldIds).toContain('resolutiondate');
|
|
72
|
+
expect(r.jiraFieldIds).toContain('components');
|
|
73
|
+
expect(r.jiraFieldIds).toContain('labels');
|
|
74
|
+
expect(r.jiraFieldIds).toContain('fixVersions');
|
|
75
|
+
expect(r.jiraFieldIds).toContain('issuelinks');
|
|
76
|
+
});
|
|
77
|
+
it('adds custom field keys and their Jira IDs', () => {
|
|
78
|
+
const defs = {
|
|
79
|
+
severity: { id: 'customfield_99999', type: 'select' },
|
|
80
|
+
team: { id: 'customfield_88888', type: 'scalar' },
|
|
81
|
+
};
|
|
82
|
+
const r = resolveFieldSet({ preset: 'minimal' }, defs);
|
|
83
|
+
expect(r.friendlyKeys).toContain('severity');
|
|
84
|
+
expect(r.friendlyKeys).toContain('team');
|
|
85
|
+
expect(r.jiraFieldIds).toContain('customfield_99999');
|
|
86
|
+
expect(r.jiraFieldIds).toContain('customfield_88888');
|
|
87
|
+
});
|
|
88
|
+
it('allows excluding a custom field', () => {
|
|
89
|
+
const defs = {
|
|
90
|
+
severity: { id: 'customfield_99999', type: 'select' },
|
|
91
|
+
};
|
|
92
|
+
const r = resolveFieldSet({ preset: 'minimal', exclude: ['severity'] }, defs);
|
|
93
|
+
expect(r.friendlyKeys).not.toContain('severity');
|
|
94
|
+
});
|
|
95
|
+
it('treats empty selector as default preset', () => {
|
|
96
|
+
const r1 = resolveFieldSet({});
|
|
97
|
+
const r2 = resolveFieldSet({ preset: undefined, include: [], exclude: [] });
|
|
98
|
+
expect(r1.friendlyKeys.sort()).toEqual([...PRESETS.default].sort());
|
|
99
|
+
expect(r2.friendlyKeys.sort()).toEqual([...PRESETS.default].sort());
|
|
100
|
+
});
|
|
101
|
+
it('does not emit pseudo IDs like __sprint__ or __subtasks__', () => {
|
|
102
|
+
const r = resolveFieldSet({ preset: 'all' });
|
|
103
|
+
expect(r.jiraFieldIds.some((id) => id.startsWith('__'))).toBe(false);
|
|
104
|
+
});
|
|
105
|
+
it('passes through preset with only exclude (no include)', () => {
|
|
106
|
+
const r = resolveFieldSet({ preset: 'default', exclude: ['priority'] });
|
|
107
|
+
expect(r.friendlyKeys).not.toContain('priority');
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
describe('BUILT_IN_FIELDS catalog', () => {
|
|
111
|
+
it('has a Jira-ID mapping for every built-in field', () => {
|
|
112
|
+
for (const key of BUILT_IN_FIELDS) {
|
|
113
|
+
expect(BUILT_IN_FIELD_TO_JIRA_ID).toHaveProperty(key);
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
it('default preset is a subset of all preset', () => {
|
|
117
|
+
const all = new Set(PRESETS.all);
|
|
118
|
+
for (const k of PRESETS.default)
|
|
119
|
+
expect(all.has(k)).toBe(true);
|
|
120
|
+
});
|
|
121
|
+
it('minimal preset is a subset of default preset', () => {
|
|
122
|
+
const def = new Set(PRESETS.default);
|
|
123
|
+
for (const k of PRESETS.minimal)
|
|
124
|
+
expect(def.has(k)).toBe(true);
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
describe('hasSprintRequested / hasStoryPointsRequested', () => {
|
|
128
|
+
it('returns true when key requested and no custom override defined', () => {
|
|
129
|
+
expect(hasSprintRequested(['sprint'], {})).toBe(true);
|
|
130
|
+
expect(hasStoryPointsRequested(['storyPoints'], {})).toBe(true);
|
|
131
|
+
});
|
|
132
|
+
it('returns false when key not requested', () => {
|
|
133
|
+
expect(hasSprintRequested(['key', 'status'], {})).toBe(false);
|
|
134
|
+
expect(hasStoryPointsRequested(['key', 'status'], {})).toBe(false);
|
|
135
|
+
});
|
|
136
|
+
it('returns false when user supplies a custom override', () => {
|
|
137
|
+
const defs = {
|
|
138
|
+
sprint: { id: 'customfield_10020', type: 'sprint' },
|
|
139
|
+
storyPoints: { id: 'customfield_10016', type: 'number' },
|
|
140
|
+
};
|
|
141
|
+
expect(hasSprintRequested(['sprint'], defs)).toBe(false);
|
|
142
|
+
expect(hasStoryPointsRequested(['storyPoints'], defs)).toBe(false);
|
|
143
|
+
});
|
|
144
|
+
});
|
|
145
|
+
//# sourceMappingURL=exportFields.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exportFields.test.js","sourceRoot":"","sources":["../../src/lib/exportFields.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,OAAO,EACP,kBAAkB,EAClB,uBAAuB,EACvB,eAAe,EACf,eAAe,GAEhB,MAAM,mBAAmB,CAAC;AAE3B,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QACpF,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5F,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,eAAe,CAAC,+BAA+B,CAAC,CAAC,CAAC,OAAO,CAAC;YAC/D,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC;YAClC,OAAO,EAAE,CAAC,SAAS,CAAC;SACrB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC;YACnD,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC;YACpC,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,CAAC,eAAe,CAAC,wBAAwB,CAAC,CAAC,CAAC,OAAO,CAAC;YACxD,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,CAAC,UAAU,CAAC;YACrB,OAAO,EAAE,CAAC,SAAS,CAAC;SACrB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC;YACnD,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,CAAC,GAAG,CAAC;YACd,OAAO,EAAE,CAAC,GAAG,CAAC;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QACrC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,CAAC,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAChD,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,CAAC,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACjD,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC7F,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,GAAG,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QACnF,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,CAAC,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACjD,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC;YAC7F,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,CAAC,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC7C,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACnD,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC/C,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAChD,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,IAAI,GAAoB;YAC5B,QAAQ,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE;YACrD,IAAI,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE;SAClD,CAAC;QACF,MAAM,CAAC,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;QACvD,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC7C,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QACtD,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,IAAI,GAAoB;YAC5B,QAAQ,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE;SACtD,CAAC;QACF,MAAM,CAAC,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC9E,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5E,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACpE,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,CAAC,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,CAAC,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACxE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YAClC,MAAM,CAAC,yBAAyB,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACxD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,8CAA8C,EAAE,GAAG,EAAE;IAC5D,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,CAAC,uBAAuB,CAAC,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9D,MAAM,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,IAAI,GAAoB;YAC5B,MAAM,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE;YACnD,WAAW,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE;SACzD,CAAC;QACF,MAAM,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,CAAC,uBAAuB,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/lib/exporter.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { type JiraConfig } from './jiraClient.js';
|
|
2
|
+
import { type CustomFieldDefs, type FieldSelector } from './exportFields.js';
|
|
2
3
|
export type ExportOptions = {
|
|
3
4
|
outputDir: string;
|
|
4
5
|
includeSubtasks?: boolean;
|
|
5
6
|
includeParentEpic?: boolean;
|
|
7
|
+
fieldSelector?: FieldSelector;
|
|
8
|
+
customFieldDefs?: CustomFieldDefs;
|
|
6
9
|
videoFrames?: {
|
|
7
10
|
enabled: boolean;
|
|
8
11
|
fps?: number;
|
|
@@ -11,18 +14,37 @@ export type ExportOptions = {
|
|
|
11
14
|
similarityThreshold?: number;
|
|
12
15
|
};
|
|
13
16
|
};
|
|
17
|
+
export type VideoExtractionInfo = {
|
|
18
|
+
filename: string;
|
|
19
|
+
frameCount: number;
|
|
20
|
+
dedupedCount: number;
|
|
21
|
+
error?: string;
|
|
22
|
+
};
|
|
23
|
+
export type ExportedItem = {
|
|
24
|
+
key: string;
|
|
25
|
+
path: string;
|
|
26
|
+
attachmentCount: number;
|
|
27
|
+
videos: VideoExtractionInfo[];
|
|
28
|
+
};
|
|
14
29
|
export type ExportResult = {
|
|
15
|
-
imported:
|
|
16
|
-
updated:
|
|
30
|
+
imported: ExportedItem[];
|
|
31
|
+
updated: ExportedItem[];
|
|
17
32
|
failed: Array<{
|
|
18
33
|
key: string;
|
|
19
34
|
error: string;
|
|
20
35
|
}>;
|
|
21
36
|
};
|
|
37
|
+
type ExportIssueOutcome = {
|
|
38
|
+
taskDir: string;
|
|
39
|
+
taskMdPath: string;
|
|
40
|
+
attachmentCount: number;
|
|
41
|
+
videos: VideoExtractionInfo[];
|
|
42
|
+
};
|
|
22
43
|
export declare class JiraExporter {
|
|
23
44
|
private client;
|
|
24
45
|
constructor(config: JiraConfig, apiToken: string);
|
|
25
|
-
exportIssue(issueKey: string, options: ExportOptions): Promise<
|
|
46
|
+
exportIssue(issueKey: string, options: ExportOptions): Promise<ExportIssueOutcome>;
|
|
26
47
|
exportIssues(issueKeys: string[], options: ExportOptions): Promise<ExportResult>;
|
|
27
48
|
}
|
|
49
|
+
export {};
|
|
28
50
|
//# sourceMappingURL=exporter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exporter.d.ts","sourceRoot":"","sources":["../../src/lib/exporter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,UAAU,EAAqB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"exporter.d.ts","sourceRoot":"","sources":["../../src/lib/exporter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,UAAU,EAAqB,MAAM,iBAAiB,CAAC;AAEjF,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,aAAa,EACnB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,WAAW,CAAC,EAAE;QACZ,OAAO,EAAE,OAAO,CAAC;QACjB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,mBAAmB,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,MAAM,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/C,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,mBAAmB,EAAE,CAAC;CAC/B,CAAC;AAsMF,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAa;gBAEf,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM;IAI1C,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAuGlF,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;CAiCvF"}
|