@eldrforge/kodrdriv 0.0.51 → 1.2.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 +3 -1
- package/dist/application.js +29 -5
- package/dist/application.js.map +1 -1
- package/dist/arguments.js +187 -75
- package/dist/arguments.js.map +1 -1
- package/dist/commands/audio-commit.js +35 -14
- package/dist/commands/audio-commit.js.map +1 -1
- package/dist/commands/audio-review.js +41 -20
- package/dist/commands/audio-review.js.map +1 -1
- package/dist/commands/clean.js +2 -2
- package/dist/commands/clean.js.map +1 -1
- package/dist/commands/commit.js +369 -47
- package/dist/commands/commit.js.map +1 -1
- package/dist/commands/development.js +264 -0
- package/dist/commands/development.js.map +1 -0
- package/dist/commands/link.js +357 -182
- package/dist/commands/link.js.map +1 -1
- package/dist/commands/publish.js +419 -306
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/release.js +240 -18
- package/dist/commands/release.js.map +1 -1
- package/dist/commands/review.js +56 -40
- package/dist/commands/review.js.map +1 -1
- package/dist/commands/select-audio.js +4 -4
- package/dist/commands/select-audio.js.map +1 -1
- package/dist/commands/tree.js +779 -40
- package/dist/commands/tree.js.map +1 -1
- package/dist/commands/unlink.js +267 -372
- package/dist/commands/unlink.js.map +1 -1
- package/dist/commands/versions.js +224 -0
- package/dist/commands/versions.js.map +1 -0
- package/dist/constants.js +50 -12
- package/dist/constants.js.map +1 -1
- package/dist/content/diff.js +122 -1
- package/dist/content/diff.js.map +1 -1
- package/dist/content/files.js +192 -0
- package/dist/content/files.js.map +1 -0
- package/dist/content/issues.js +17 -46
- package/dist/content/issues.js.map +1 -1
- package/dist/content/log.js +16 -0
- package/dist/content/log.js.map +1 -1
- package/dist/logging.js +3 -3
- package/dist/logging.js.map +1 -1
- package/dist/main.js +0 -0
- package/dist/prompt/commit.js +11 -4
- package/dist/prompt/commit.js.map +1 -1
- package/dist/prompt/instructions/commit.md +20 -2
- package/dist/prompt/instructions/release.md +27 -10
- package/dist/prompt/instructions/review.md +75 -8
- package/dist/prompt/release.js +15 -7
- package/dist/prompt/release.js.map +1 -1
- package/dist/prompt/review.js +2 -2
- package/dist/prompt/review.js.map +1 -1
- package/dist/types.js +36 -7
- package/dist/types.js.map +1 -1
- package/dist/util/child.js +146 -4
- package/dist/util/child.js.map +1 -1
- package/dist/util/countdown.js +215 -0
- package/dist/util/countdown.js.map +1 -0
- package/dist/util/general.js +157 -13
- package/dist/util/general.js.map +1 -1
- package/dist/util/git.js +587 -0
- package/dist/util/git.js.map +1 -0
- package/dist/util/github.js +531 -11
- package/dist/util/github.js.map +1 -1
- package/dist/util/interactive.js +463 -0
- package/dist/util/interactive.js.map +1 -0
- package/dist/util/openai.js +152 -25
- package/dist/util/openai.js.map +1 -1
- package/dist/util/performance.js +5 -73
- package/dist/util/performance.js.map +1 -1
- package/dist/util/safety.js +4 -4
- package/dist/util/safety.js.map +1 -1
- package/dist/util/storage.js +30 -3
- package/dist/util/storage.js.map +1 -1
- package/dist/util/validation.js +1 -25
- package/dist/util/validation.js.map +1 -1
- package/package.json +12 -10
- package/test-increment.js +0 -0
- package/test-multiline/cli/package.json +8 -0
- package/test-multiline/core/package.json +5 -0
- package/test-multiline/mobile/package.json +8 -0
- package/test-multiline/web/package.json +8 -0
- package/dist/util/npmOptimizations.js +0 -174
- package/dist/util/npmOptimizations.js.map +0 -1
package/dist/arguments.js
CHANGED
|
@@ -21,8 +21,11 @@ z.object({
|
|
|
21
21
|
cached: z.boolean().optional(),
|
|
22
22
|
add: z.boolean().optional(),
|
|
23
23
|
sendit: z.boolean().optional(),
|
|
24
|
+
interactive: z.boolean().optional(),
|
|
25
|
+
amend: z.boolean().optional(),
|
|
24
26
|
from: z.string().optional(),
|
|
25
27
|
to: z.string().optional(),
|
|
28
|
+
targetVersion: z.string().optional(),
|
|
26
29
|
excludedPatterns: z.array(z.string()).optional(),
|
|
27
30
|
excludedPaths: z.array(z.string()).optional(),
|
|
28
31
|
context: z.string().optional(),
|
|
@@ -30,19 +33,26 @@ z.object({
|
|
|
30
33
|
direction: z.string().optional(),
|
|
31
34
|
messageLimit: z.number().optional(),
|
|
32
35
|
skipFileCheck: z.boolean().optional(),
|
|
36
|
+
maxDiffBytes: z.number().optional(),
|
|
33
37
|
mergeMethod: z.enum([
|
|
34
38
|
'merge',
|
|
35
39
|
'squash',
|
|
36
40
|
'rebase'
|
|
37
41
|
]).optional(),
|
|
42
|
+
syncTarget: z.boolean().optional(),
|
|
38
43
|
scopeRoots: z.string().optional(),
|
|
44
|
+
workspaceFile: z.string().optional(),
|
|
45
|
+
cleanNodeModules: z.boolean().optional(),
|
|
39
46
|
startFrom: z.string().optional(),
|
|
47
|
+
stopAt: z.string().optional(),
|
|
40
48
|
script: z.string().optional(),
|
|
41
49
|
cmd: z.string().optional(),
|
|
42
50
|
publish: z.boolean().optional(),
|
|
43
51
|
parallel: z.boolean().optional(),
|
|
52
|
+
continue: z.boolean().optional(),
|
|
44
53
|
includeCommitHistory: z.boolean().optional(),
|
|
45
54
|
includeRecentDiffs: z.boolean().optional(),
|
|
55
|
+
editorTimeout: z.number().optional(),
|
|
46
56
|
includeReleaseNotes: z.boolean().optional(),
|
|
47
57
|
includeGithubIssues: z.boolean().optional(),
|
|
48
58
|
commitHistoryLimit: z.number().optional(),
|
|
@@ -52,7 +62,9 @@ z.object({
|
|
|
52
62
|
file: z.string().optional(),
|
|
53
63
|
directory: z.string().optional(),
|
|
54
64
|
directories: z.array(z.string()).optional(),
|
|
55
|
-
keepTemp: z.boolean().optional()
|
|
65
|
+
keepTemp: z.boolean().optional(),
|
|
66
|
+
noMilestones: z.boolean().optional(),
|
|
67
|
+
subcommand: z.string().optional()
|
|
56
68
|
});
|
|
57
69
|
// Function to transform flat CLI args into nested Config structure
|
|
58
70
|
const transformCliArgs = (finalCliArgs, commandName)=>{
|
|
@@ -71,15 +83,18 @@ const transformCliArgs = (finalCliArgs, commandName)=>{
|
|
|
71
83
|
// Map preferencesDir (CLI) to preferencesDirectory (Config standard)
|
|
72
84
|
if (finalCliArgs.preferencesDir !== undefined) transformedCliArgs.preferencesDirectory = finalCliArgs.preferencesDir;
|
|
73
85
|
// Nested mappings for 'commit' options
|
|
74
|
-
if (finalCliArgs.cached !== undefined || finalCliArgs.sendit !== undefined || finalCliArgs.add !== undefined || finalCliArgs.skipFileCheck !== undefined) {
|
|
86
|
+
if (finalCliArgs.cached !== undefined || finalCliArgs.sendit !== undefined || finalCliArgs.add !== undefined || finalCliArgs.skipFileCheck !== undefined || finalCliArgs.maxDiffBytes !== undefined || finalCliArgs.interactive !== undefined || finalCliArgs.amend !== undefined) {
|
|
75
87
|
transformedCliArgs.commit = {};
|
|
76
88
|
if (finalCliArgs.add !== undefined) transformedCliArgs.commit.add = finalCliArgs.add;
|
|
77
89
|
if (finalCliArgs.cached !== undefined) transformedCliArgs.commit.cached = finalCliArgs.cached;
|
|
78
90
|
if (finalCliArgs.sendit !== undefined) transformedCliArgs.commit.sendit = finalCliArgs.sendit;
|
|
91
|
+
if (finalCliArgs.interactive !== undefined) transformedCliArgs.commit.interactive = finalCliArgs.interactive;
|
|
92
|
+
if (finalCliArgs.amend !== undefined) transformedCliArgs.commit.amend = finalCliArgs.amend;
|
|
79
93
|
if (finalCliArgs.messageLimit !== undefined) transformedCliArgs.commit.messageLimit = finalCliArgs.messageLimit;
|
|
80
94
|
if (finalCliArgs.context !== undefined) transformedCliArgs.commit.context = finalCliArgs.context;
|
|
81
95
|
if (finalCliArgs.direction !== undefined) transformedCliArgs.commit.direction = finalCliArgs.direction;
|
|
82
96
|
if (finalCliArgs.skipFileCheck !== undefined) transformedCliArgs.commit.skipFileCheck = finalCliArgs.skipFileCheck;
|
|
97
|
+
if (finalCliArgs.maxDiffBytes !== undefined) transformedCliArgs.commit.maxDiffBytes = finalCliArgs.maxDiffBytes;
|
|
83
98
|
}
|
|
84
99
|
// Nested mappings for 'audioCommit' options
|
|
85
100
|
if (finalCliArgs.file !== undefined || finalCliArgs.keepTemp !== undefined) {
|
|
@@ -88,20 +103,29 @@ const transformCliArgs = (finalCliArgs, commandName)=>{
|
|
|
88
103
|
if (finalCliArgs.keepTemp !== undefined) transformedCliArgs.audioCommit.keepTemp = finalCliArgs.keepTemp;
|
|
89
104
|
}
|
|
90
105
|
// Nested mappings for 'release' options
|
|
91
|
-
if (finalCliArgs.from !== undefined || finalCliArgs.to !== undefined) {
|
|
106
|
+
if (finalCliArgs.from !== undefined || finalCliArgs.to !== undefined || finalCliArgs.maxDiffBytes !== undefined || finalCliArgs.interactive !== undefined || finalCliArgs.noMilestones !== undefined) {
|
|
92
107
|
transformedCliArgs.release = {};
|
|
93
108
|
if (finalCliArgs.from !== undefined) transformedCliArgs.release.from = finalCliArgs.from;
|
|
94
109
|
if (finalCliArgs.to !== undefined) transformedCliArgs.release.to = finalCliArgs.to;
|
|
95
110
|
if (finalCliArgs.context !== undefined) transformedCliArgs.release.context = finalCliArgs.context;
|
|
111
|
+
if (finalCliArgs.interactive !== undefined) transformedCliArgs.release.interactive = finalCliArgs.interactive;
|
|
96
112
|
if (finalCliArgs.messageLimit !== undefined) transformedCliArgs.release.messageLimit = finalCliArgs.messageLimit;
|
|
113
|
+
if (finalCliArgs.maxDiffBytes !== undefined) transformedCliArgs.release.maxDiffBytes = finalCliArgs.maxDiffBytes;
|
|
114
|
+
if (finalCliArgs.noMilestones !== undefined) transformedCliArgs.release.noMilestones = finalCliArgs.noMilestones;
|
|
97
115
|
}
|
|
98
|
-
// Nested mappings for 'publish' options
|
|
99
|
-
if (finalCliArgs.mergeMethod !== undefined) {
|
|
116
|
+
// Nested mappings for 'publish' options (only when it's actually a publish command or has publish-specific options)
|
|
117
|
+
if (finalCliArgs.mergeMethod !== undefined || finalCliArgs.targetVersion !== undefined || finalCliArgs.syncTarget !== undefined || finalCliArgs.noMilestones !== undefined || commandName === 'publish' && (finalCliArgs.from !== undefined || finalCliArgs.interactive !== undefined)) {
|
|
100
118
|
transformedCliArgs.publish = {};
|
|
101
119
|
if (finalCliArgs.mergeMethod !== undefined) transformedCliArgs.publish.mergeMethod = finalCliArgs.mergeMethod;
|
|
120
|
+
if (finalCliArgs.from !== undefined) transformedCliArgs.publish.from = finalCliArgs.from;
|
|
121
|
+
if (finalCliArgs.targetVersion !== undefined) transformedCliArgs.publish.targetVersion = finalCliArgs.targetVersion;
|
|
122
|
+
if (finalCliArgs.interactive !== undefined) transformedCliArgs.publish.interactive = finalCliArgs.interactive;
|
|
123
|
+
if (finalCliArgs.syncTarget !== undefined) transformedCliArgs.publish.syncTarget = finalCliArgs.syncTarget;
|
|
124
|
+
if (finalCliArgs.noMilestones !== undefined) transformedCliArgs.publish.noMilestones = finalCliArgs.noMilestones;
|
|
102
125
|
}
|
|
103
|
-
// Nested mappings for 'link' and 'unlink' options
|
|
104
|
-
|
|
126
|
+
// Nested mappings for 'link' and 'unlink' options
|
|
127
|
+
const linkPackageArgument = finalCliArgs.packageArgument;
|
|
128
|
+
if (finalCliArgs.scopeRoots !== undefined || commandName === 'link' && linkPackageArgument !== undefined) {
|
|
105
129
|
transformedCliArgs.link = {};
|
|
106
130
|
if (finalCliArgs.scopeRoots !== undefined) {
|
|
107
131
|
try {
|
|
@@ -110,6 +134,26 @@ const transformCliArgs = (finalCliArgs, commandName)=>{
|
|
|
110
134
|
throw new Error(`Invalid JSON for scope-roots: ${finalCliArgs.scopeRoots}`);
|
|
111
135
|
}
|
|
112
136
|
}
|
|
137
|
+
if (commandName === 'link' && linkPackageArgument !== undefined) {
|
|
138
|
+
transformedCliArgs.link.packageArgument = linkPackageArgument;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
// Nested mappings for 'unlink' options
|
|
142
|
+
const unlinkPackageArgument = finalCliArgs.packageArgument;
|
|
143
|
+
if (commandName === 'unlink' && (finalCliArgs.scopeRoots !== undefined || unlinkPackageArgument !== undefined || finalCliArgs.workspaceFile !== undefined || finalCliArgs.cleanNodeModules !== undefined)) {
|
|
144
|
+
transformedCliArgs.unlink = {};
|
|
145
|
+
if (finalCliArgs.scopeRoots !== undefined) {
|
|
146
|
+
try {
|
|
147
|
+
transformedCliArgs.unlink.scopeRoots = safeJsonParse(finalCliArgs.scopeRoots, 'scopeRoots CLI argument');
|
|
148
|
+
} catch (error) {
|
|
149
|
+
throw new Error(`Invalid JSON for scope-roots: ${finalCliArgs.scopeRoots}`);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
if (finalCliArgs.workspaceFile !== undefined) transformedCliArgs.unlink.workspaceFile = finalCliArgs.workspaceFile;
|
|
153
|
+
if (finalCliArgs.cleanNodeModules !== undefined) transformedCliArgs.unlink.cleanNodeModules = finalCliArgs.cleanNodeModules;
|
|
154
|
+
if (unlinkPackageArgument !== undefined) {
|
|
155
|
+
transformedCliArgs.unlink.packageArgument = unlinkPackageArgument;
|
|
156
|
+
}
|
|
113
157
|
}
|
|
114
158
|
// Nested mappings for 'audio-review' options (only when it's not a tree command)
|
|
115
159
|
if (commandName !== 'tree' && (finalCliArgs.includeCommitHistory !== undefined || finalCliArgs.includeRecentDiffs !== undefined || finalCliArgs.includeReleaseNotes !== undefined || finalCliArgs.includeGithubIssues !== undefined || finalCliArgs.commitHistoryLimit !== undefined || finalCliArgs.diffHistoryLimit !== undefined || finalCliArgs.releaseNotesLimit !== undefined || finalCliArgs.githubIssuesLimit !== undefined || finalCliArgs.file !== undefined || finalCliArgs.directories !== undefined || finalCliArgs.keepTemp !== undefined)) {
|
|
@@ -143,12 +187,14 @@ const transformCliArgs = (finalCliArgs, commandName)=>{
|
|
|
143
187
|
if (finalCliArgs.githubIssuesLimit !== undefined) transformedCliArgs.review.githubIssuesLimit = finalCliArgs.githubIssuesLimit;
|
|
144
188
|
if (finalCliArgs.context !== undefined) transformedCliArgs.review.context = finalCliArgs.context;
|
|
145
189
|
if (finalCliArgs.sendit !== undefined) transformedCliArgs.review.sendit = finalCliArgs.sendit;
|
|
190
|
+
if (finalCliArgs.editorTimeout !== undefined) transformedCliArgs.review.editorTimeout = finalCliArgs.editorTimeout;
|
|
146
191
|
}
|
|
147
192
|
// Nested mappings for 'tree' options (add when relevant args present)
|
|
148
193
|
if (commandName === 'tree') {
|
|
149
194
|
const treeExcludedPatterns = finalCliArgs.excludedPatterns || finalCliArgs.excludedPaths;
|
|
150
195
|
const builtInCommand = finalCliArgs.builtInCommand;
|
|
151
|
-
|
|
196
|
+
const packageArgument = finalCliArgs.packageArgument;
|
|
197
|
+
if (finalCliArgs.directory !== undefined || finalCliArgs.directories !== undefined || treeExcludedPatterns !== undefined || finalCliArgs.startFrom !== undefined || finalCliArgs.stopAt !== undefined || finalCliArgs.cmd !== undefined || finalCliArgs.parallel !== undefined || builtInCommand !== undefined || finalCliArgs.continue !== undefined || packageArgument !== undefined || finalCliArgs.cleanNodeModules !== undefined) {
|
|
152
198
|
transformedCliArgs.tree = {};
|
|
153
199
|
if (finalCliArgs.directories !== undefined) transformedCliArgs.tree.directories = finalCliArgs.directories;
|
|
154
200
|
else if (finalCliArgs.directory !== undefined) transformedCliArgs.tree.directories = [
|
|
@@ -156,11 +202,27 @@ const transformCliArgs = (finalCliArgs, commandName)=>{
|
|
|
156
202
|
];
|
|
157
203
|
if (treeExcludedPatterns !== undefined) transformedCliArgs.tree.excludedPatterns = treeExcludedPatterns;
|
|
158
204
|
if (finalCliArgs.startFrom !== undefined) transformedCliArgs.tree.startFrom = finalCliArgs.startFrom;
|
|
205
|
+
if (finalCliArgs.stopAt !== undefined) transformedCliArgs.tree.stopAt = finalCliArgs.stopAt;
|
|
159
206
|
if (finalCliArgs.cmd !== undefined) transformedCliArgs.tree.cmd = finalCliArgs.cmd;
|
|
160
207
|
if (finalCliArgs.parallel !== undefined) transformedCliArgs.tree.parallel = finalCliArgs.parallel;
|
|
161
208
|
if (builtInCommand !== undefined) transformedCliArgs.tree.builtInCommand = builtInCommand;
|
|
209
|
+
if (finalCliArgs.continue !== undefined) transformedCliArgs.tree.continue = finalCliArgs.continue;
|
|
210
|
+
if (packageArgument !== undefined) transformedCliArgs.tree.packageArgument = packageArgument;
|
|
211
|
+
if (finalCliArgs.cleanNodeModules !== undefined) transformedCliArgs.tree.cleanNodeModules = finalCliArgs.cleanNodeModules;
|
|
162
212
|
}
|
|
163
213
|
}
|
|
214
|
+
// Nested mappings for 'development' options
|
|
215
|
+
if (commandName === 'development' && (finalCliArgs.targetVersion !== undefined || finalCliArgs.noMilestones !== undefined)) {
|
|
216
|
+
transformedCliArgs.development = {};
|
|
217
|
+
if (finalCliArgs.targetVersion !== undefined) transformedCliArgs.development.targetVersion = finalCliArgs.targetVersion;
|
|
218
|
+
if (finalCliArgs.noMilestones !== undefined) transformedCliArgs.development.noMilestones = finalCliArgs.noMilestones;
|
|
219
|
+
}
|
|
220
|
+
// Nested mappings for 'versions' options
|
|
221
|
+
if (commandName === 'versions' && (finalCliArgs.subcommand !== undefined || finalCliArgs.directories !== undefined)) {
|
|
222
|
+
transformedCliArgs.versions = {};
|
|
223
|
+
if (finalCliArgs.subcommand !== undefined) transformedCliArgs.versions.subcommand = finalCliArgs.subcommand;
|
|
224
|
+
if (finalCliArgs.directories !== undefined) transformedCliArgs.versions.directories = finalCliArgs.directories;
|
|
225
|
+
}
|
|
164
226
|
// Handle excluded patterns (Commander.js converts --excluded-paths to excludedPaths)
|
|
165
227
|
const excludedPatterns = finalCliArgs.excludedPatterns || finalCliArgs.excludedPaths;
|
|
166
228
|
if (excludedPatterns !== undefined) transformedCliArgs.excludedPatterns = excludedPatterns;
|
|
@@ -228,17 +290,60 @@ const configure = async (cardigantime)=>{
|
|
|
228
290
|
// Get values from config file using Cardigantime's hierarchical configuration
|
|
229
291
|
const fileValues = await cardigantime.read(transformedCliArgs);
|
|
230
292
|
// Merge configurations: Defaults -> File -> CLI
|
|
231
|
-
// Properly merge
|
|
293
|
+
// Properly merge nested sections to preserve config file values when CLI args are partial
|
|
232
294
|
const mergedLink = {
|
|
233
295
|
...KODRDRIV_DEFAULTS.link,
|
|
234
296
|
...fileValues.link,
|
|
235
297
|
...transformedCliArgs.link
|
|
236
298
|
};
|
|
299
|
+
const mergedCommit = {
|
|
300
|
+
...KODRDRIV_DEFAULTS.commit,
|
|
301
|
+
...fileValues.commit,
|
|
302
|
+
...transformedCliArgs.commit
|
|
303
|
+
};
|
|
304
|
+
const mergedRelease = {
|
|
305
|
+
...KODRDRIV_DEFAULTS.release,
|
|
306
|
+
...fileValues.release,
|
|
307
|
+
...transformedCliArgs.release
|
|
308
|
+
};
|
|
309
|
+
const mergedPublish = {
|
|
310
|
+
...KODRDRIV_DEFAULTS.publish,
|
|
311
|
+
...fileValues.publish,
|
|
312
|
+
...transformedCliArgs.publish
|
|
313
|
+
};
|
|
314
|
+
const mergedAudioCommit = {
|
|
315
|
+
...KODRDRIV_DEFAULTS.audioCommit,
|
|
316
|
+
...fileValues.audioCommit,
|
|
317
|
+
...transformedCliArgs.audioCommit
|
|
318
|
+
};
|
|
319
|
+
const mergedAudioReview = {
|
|
320
|
+
...KODRDRIV_DEFAULTS.audioReview,
|
|
321
|
+
...fileValues.audioReview,
|
|
322
|
+
...transformedCliArgs.audioReview
|
|
323
|
+
};
|
|
324
|
+
const mergedReview = {
|
|
325
|
+
...KODRDRIV_DEFAULTS.review,
|
|
326
|
+
...fileValues.review,
|
|
327
|
+
...transformedCliArgs.review
|
|
328
|
+
};
|
|
329
|
+
const mergedTree = {
|
|
330
|
+
...KODRDRIV_DEFAULTS.tree,
|
|
331
|
+
...fileValues.tree,
|
|
332
|
+
...transformedCliArgs.tree
|
|
333
|
+
};
|
|
237
334
|
const partialConfig = {
|
|
238
335
|
...KODRDRIV_DEFAULTS,
|
|
239
336
|
...fileValues,
|
|
240
337
|
...transformedCliArgs,
|
|
241
|
-
|
|
338
|
+
// Override with properly merged nested sections
|
|
339
|
+
link: mergedLink,
|
|
340
|
+
commit: mergedCommit,
|
|
341
|
+
release: mergedRelease,
|
|
342
|
+
publish: mergedPublish,
|
|
343
|
+
audioCommit: mergedAudioCommit,
|
|
344
|
+
audioReview: mergedAudioReview,
|
|
345
|
+
review: mergedReview,
|
|
346
|
+
tree: mergedTree
|
|
242
347
|
}; // Cast to Partial<Config> initially
|
|
243
348
|
// Specific validation and processing after merge
|
|
244
349
|
const config = await validateAndProcessOptions(partialConfig);
|
|
@@ -276,7 +381,7 @@ async function getCliConfig(program) {
|
|
|
276
381
|
// Add global options to the main program
|
|
277
382
|
// (cardigantime already adds most global options like --verbose, --debug, --config-dir)
|
|
278
383
|
// Add subcommands
|
|
279
|
-
const commitCommand = program.command('commit').argument('[direction]', 'direction or guidance for the commit message').description('Generate commit notes').option('--context <context>', 'context for the commit message').option('--cached', 'use cached diff').option('--add', 'add all changes before committing').option('--sendit', 'Commit with the message generated. No review.').option('--message-limit <messageLimit>', 'limit the number of messages to generate').option('--skip-file-check', 'skip check for file: dependencies before committing');
|
|
384
|
+
const commitCommand = program.command('commit').argument('[direction]', 'direction or guidance for the commit message').description('Generate commit notes').option('--context <context>', 'context for the commit message').option('--cached', 'use cached diff').option('--add', 'add all changes before committing').option('--sendit', 'Commit with the message generated. No review.').option('--interactive', 'Present commit message for interactive review and editing').option('--amend', 'Amend the last commit with the generated message').option('--message-limit <messageLimit>', 'limit the number of messages to generate').option('--skip-file-check', 'skip check for file: dependencies before committing').option('--max-diff-bytes <maxDiffBytes>', 'maximum bytes per file in diff (default: 2048)');
|
|
280
385
|
// Add shared options to commit command
|
|
281
386
|
addSharedOptions(commitCommand);
|
|
282
387
|
// Customize help output for commit command
|
|
@@ -302,6 +407,14 @@ async function getCliConfig(program) {
|
|
|
302
407
|
'--sendit',
|
|
303
408
|
'Commit with the message generated. No review.'
|
|
304
409
|
],
|
|
410
|
+
[
|
|
411
|
+
'--interactive',
|
|
412
|
+
'Present commit message for interactive review and editing'
|
|
413
|
+
],
|
|
414
|
+
[
|
|
415
|
+
'--amend',
|
|
416
|
+
'Amend the last commit with the generated message'
|
|
417
|
+
],
|
|
305
418
|
[
|
|
306
419
|
'--message-limit <messageLimit>',
|
|
307
420
|
'limit the number of messages to generate'
|
|
@@ -354,19 +467,19 @@ async function getCliConfig(program) {
|
|
|
354
467
|
});
|
|
355
468
|
const audioCommitCommand = program.command('audio-commit').option('--cached', 'use cached diff').option('--add', 'add all changes before committing').option('--sendit', 'Commit with the message generated. No review.').option('--direction <direction>', 'direction or guidance for the commit message').option('--message-limit <messageLimit>', 'limit the number of messages to generate').option('--file <file>', 'audio file path').description('Record audio to provide context, then generate and optionally commit with AI-generated message');
|
|
356
469
|
addSharedOptions(audioCommitCommand);
|
|
357
|
-
const releaseCommand = program.command('release').option('--from <from>', 'branch to generate release notes from').option('--to <to>', 'branch to generate release notes to').option('--context <context>', 'context for the commit message').description('Generate release notes');
|
|
470
|
+
const releaseCommand = program.command('release').option('--from <from>', 'branch to generate release notes from').option('--to <to>', 'branch to generate release notes to').option('--context <context>', 'context for the commit message').option('--interactive', 'Present release notes for interactive review and editing').option('--max-diff-bytes <maxDiffBytes>', 'maximum bytes per file in diff (default: 2048)').option('--no-milestones', 'disable GitHub milestone integration').description('Generate release notes');
|
|
358
471
|
addSharedOptions(releaseCommand);
|
|
359
|
-
const publishCommand = program.command('publish').option('--merge-method <method>', 'method to merge PR (merge, squash, rebase)', 'squash').option('--sendit', 'skip all confirmation prompts and proceed automatically').description('Publish a release');
|
|
472
|
+
const publishCommand = program.command('publish').option('--merge-method <method>', 'method to merge PR (merge, squash, rebase)', 'squash').option('--from <from>', 'branch/tag to generate release notes from (default: main)').option('--target-version <targetVersion>', 'target version for release (explicit version like "4.30.0" or semantic bump: "patch", "minor", "major")').option('--interactive', 'present release notes for interactive review and editing').option('--sendit', 'skip all confirmation prompts and proceed automatically').option('--sync-target', 'attempt to automatically sync target branch with remote before publishing').option('--no-milestones', 'disable GitHub milestone integration').description('Publish a release');
|
|
360
473
|
addSharedOptions(publishCommand);
|
|
361
|
-
const treeCommand = program.command('tree [command]').option('--directory <directory>', 'target directory containing multiple packages (defaults to current directory)').option('--directories [directories...]', 'target directories containing multiple packages (defaults to current directory)').option('--start-from <startFrom>', 'resume execution from this package directory name (useful for restarting failed builds)').option('--cmd <cmd>', 'shell command to execute in each package directory (e.g., "npm install", "git status")').option('--parallel', 'execute packages in parallel when dependencies allow (packages with no interdependencies run simultaneously)').option('--excluded-patterns [excludedPatterns...]', 'patterns to exclude packages from processing (e.g., "**/node_modules/**", "dist/*")').description('Analyze package dependencies in workspace and execute commands in dependency order. Supports built-in commands: commit, publish, link, unlink');
|
|
474
|
+
const treeCommand = program.command('tree [command] [packageArgument]').option('--directory <directory>', 'target directory containing multiple packages (defaults to current directory)').option('--directories [directories...]', 'target directories containing multiple packages (defaults to current directory)').option('--start-from <startFrom>', 'resume execution from this package directory name (useful for restarting failed builds)').option('--stop-at <stopAt>', 'stop execution at this package directory name (the specified package will not be executed)').option('--cmd <cmd>', 'shell command to execute in each package directory (e.g., "npm install", "git status")').option('--parallel', 'execute packages in parallel when dependencies allow (packages with no interdependencies run simultaneously)').option('--excluded-patterns [excludedPatterns...]', 'patterns to exclude packages from processing (e.g., "**/node_modules/**", "dist/*")').option('--continue', 'continue from previous tree publish execution').option('--clean-node-modules', 'for unlink command: remove node_modules and package-lock.json, then reinstall dependencies').description('Analyze package dependencies in workspace and execute commands in dependency order. Supports built-in commands: commit, publish, link, unlink, development, branches');
|
|
362
475
|
addSharedOptions(treeCommand);
|
|
363
476
|
const linkCommand = program.command('link').option('--scope-roots <scopeRoots>', 'JSON mapping of scopes to root directories (e.g., \'{"@company": "../"}\')').description('Create npm file: dependencies for local development');
|
|
364
477
|
addSharedOptions(linkCommand);
|
|
365
|
-
const unlinkCommand = program.command('unlink').option('--scope-roots <scopeRoots>', 'JSON mapping of scopes to root directories (e.g., \'{"@company": "../"}\')').description('Restore original dependencies and rebuild node_modules');
|
|
478
|
+
const unlinkCommand = program.command('unlink').option('--scope-roots <scopeRoots>', 'JSON mapping of scopes to root directories (e.g., \'{"@company": "../"}\')').option('--clean-node-modules', 'remove node_modules and package-lock.json, then reinstall dependencies').description('Restore original dependencies and rebuild node_modules');
|
|
366
479
|
addSharedOptions(unlinkCommand);
|
|
367
480
|
const audioReviewCommand = program.command('audio-review').option('--include-commit-history', 'include recent commit log messages in context (default: true)').option('--no-include-commit-history', 'exclude commit log messages from context').option('--include-recent-diffs', 'include recent commit diffs in context (default: true)').option('--no-include-recent-diffs', 'exclude recent diffs from context').option('--include-release-notes', 'include recent release notes in context (default: false)').option('--no-include-release-notes', 'exclude release notes from context').option('--include-github-issues', 'include open GitHub issues in context (default: true)').option('--no-include-github-issues', 'exclude GitHub issues from context').option('--commit-history-limit <limit>', 'number of recent commits to include', parseInt).option('--diff-history-limit <limit>', 'number of recent commit diffs to include', parseInt).option('--release-notes-limit <limit>', 'number of recent release notes to include', parseInt).option('--github-issues-limit <limit>', 'number of open GitHub issues to include (max 20)', parseInt).option('--context <context>', 'additional context for the audio review').option('--file <file>', 'audio file path').option('--directory <directory>', 'directory containing audio files to process').option('--max-recording-time <time>', 'maximum recording time in seconds', parseInt).option('--sendit', 'Create GitHub issues automatically without confirmation').description('Record audio, transcribe with Whisper, and analyze for project issues using AI');
|
|
368
481
|
addSharedOptions(audioReviewCommand);
|
|
369
|
-
const reviewCommand = program.command('review').argument('[note]', 'review note to analyze for project issues').option('--include-commit-history', 'include recent commit log messages in context (default: true)').option('--no-include-commit-history', 'exclude commit log messages from context').option('--include-recent-diffs', 'include recent commit diffs in context (default: true)').option('--no-include-recent-diffs', 'exclude recent diffs from context').option('--include-release-notes', 'include recent release notes in context (default: false)').option('--no-include-release-notes', 'exclude release notes from context').option('--include-github-issues', 'include open GitHub issues in context (default: true)').option('--no-include-github-issues', 'exclude GitHub issues from context').option('--commit-history-limit <limit>', 'number of recent commits to include', parseInt).option('--diff-history-limit <limit>', 'number of recent commit diffs to include', parseInt).option('--release-notes-limit <limit>', 'number of recent release notes to include', parseInt).option('--github-issues-limit <limit>', 'number of open GitHub issues to include (max 20)', parseInt).option('--context <context>', 'additional context for the review').option('--sendit', 'Create GitHub issues automatically without confirmation').description('Analyze review note for project issues using AI');
|
|
482
|
+
const reviewCommand = program.command('review').argument('[note]', 'review note to analyze for project issues').option('--include-commit-history', 'include recent commit log messages in context (default: true)').option('--no-include-commit-history', 'exclude commit log messages from context').option('--include-recent-diffs', 'include recent commit diffs in context (default: true)').option('--no-include-recent-diffs', 'exclude recent diffs from context').option('--include-release-notes', 'include recent release notes in context (default: false)').option('--no-include-release-notes', 'exclude release notes from context').option('--include-github-issues', 'include open GitHub issues in context (default: true)').option('--no-include-github-issues', 'exclude GitHub issues from context').option('--commit-history-limit <limit>', 'number of recent commits to include', parseInt).option('--diff-history-limit <limit>', 'number of recent commit diffs to include', parseInt).option('--release-notes-limit <limit>', 'number of recent release notes to include', parseInt).option('--github-issues-limit <limit>', 'number of open GitHub issues to include (max 20)', parseInt).option('--context <context>', 'additional context for the review').option('--sendit', 'Create GitHub issues automatically without confirmation').option('--editor-timeout <timeout>', 'timeout for editor in milliseconds (default: no timeout)', parseInt).description('Analyze review note for project issues using AI');
|
|
370
483
|
addSharedOptions(reviewCommand);
|
|
371
484
|
// Customize help output for review command
|
|
372
485
|
reviewCommand.configureHelp({
|
|
@@ -491,6 +604,10 @@ async function getCliConfig(program) {
|
|
|
491
604
|
});
|
|
492
605
|
const cleanCommand = program.command('clean').description('Remove the output directory and all generated files');
|
|
493
606
|
addSharedOptions(cleanCommand);
|
|
607
|
+
const developmentCommand = program.command('development').option('--target-version <targetVersion>', 'target version bump type (patch, minor, major) or explicit version (e.g., "2.1.0")', 'patch').option('--no-milestones', 'disable GitHub milestone integration').description('Switch to working branch and set up development version');
|
|
608
|
+
addSharedOptions(developmentCommand);
|
|
609
|
+
const versionsCommand = program.command('versions <subcommand>').option('--directories [directories...]', 'directories to scan for packages (defaults to current directory)').description('Update dependency versions across packages. Subcommands: minor');
|
|
610
|
+
addSharedOptions(versionsCommand);
|
|
494
611
|
const selectAudioCommand = program.command('select-audio').description('Interactively select and save audio device for recording');
|
|
495
612
|
addSharedOptions(selectAudioCommand);
|
|
496
613
|
program.parse();
|
|
@@ -524,16 +641,30 @@ async function getCliConfig(program) {
|
|
|
524
641
|
commandOptions = publishCommand.opts();
|
|
525
642
|
} else if (commandName === 'tree' && treeCommand.opts) {
|
|
526
643
|
commandOptions = treeCommand.opts();
|
|
527
|
-
// Handle positional
|
|
644
|
+
// Handle positional arguments for built-in command and package argument
|
|
528
645
|
const args = treeCommand.args;
|
|
529
646
|
if (args && args.length > 0 && args[0]) {
|
|
530
647
|
// Store the built-in command for later processing
|
|
531
648
|
commandOptions.builtInCommand = args[0];
|
|
649
|
+
// For link/unlink commands, store additional arguments as package arguments
|
|
650
|
+
if ((args[0] === 'link' || args[0] === 'unlink') && args.length > 1 && args[1]) {
|
|
651
|
+
commandOptions.packageArgument = args[1];
|
|
652
|
+
}
|
|
532
653
|
}
|
|
533
654
|
} else if (commandName === 'link' && linkCommand.opts) {
|
|
534
655
|
commandOptions = linkCommand.opts();
|
|
656
|
+
// Handle positional argument for package specification
|
|
657
|
+
const args = linkCommand.args;
|
|
658
|
+
if (args && args.length > 0 && args[0]) {
|
|
659
|
+
commandOptions.packageArgument = args[0];
|
|
660
|
+
}
|
|
535
661
|
} else if (commandName === 'unlink' && unlinkCommand.opts) {
|
|
536
662
|
commandOptions = unlinkCommand.opts();
|
|
663
|
+
// Handle positional argument for package specification
|
|
664
|
+
const args = unlinkCommand.args;
|
|
665
|
+
if (args && args.length > 0 && args[0]) {
|
|
666
|
+
commandOptions.packageArgument = args[0];
|
|
667
|
+
}
|
|
537
668
|
} else if (commandName === 'audio-review' && audioReviewCommand.opts) {
|
|
538
669
|
commandOptions = audioReviewCommand.opts();
|
|
539
670
|
} else if (commandName === 'review' && reviewCommand.opts) {
|
|
@@ -550,6 +681,15 @@ async function getCliConfig(program) {
|
|
|
550
681
|
}
|
|
551
682
|
} else if (commandName === 'clean' && cleanCommand.opts) {
|
|
552
683
|
commandOptions = cleanCommand.opts();
|
|
684
|
+
} else if (commandName === 'development' && developmentCommand.opts) {
|
|
685
|
+
commandOptions = developmentCommand.opts();
|
|
686
|
+
} else if (commandName === 'versions' && versionsCommand.opts) {
|
|
687
|
+
commandOptions = versionsCommand.opts();
|
|
688
|
+
// Handle positional argument for subcommand
|
|
689
|
+
const args = versionsCommand.args;
|
|
690
|
+
if (args && args.length > 0 && args[0]) {
|
|
691
|
+
commandOptions.subcommand = args[0];
|
|
692
|
+
}
|
|
553
693
|
} else if (commandName === 'select-audio' && selectAudioCommand.opts) {
|
|
554
694
|
commandOptions = selectAudioCommand.opts();
|
|
555
695
|
}
|
|
@@ -583,10 +723,9 @@ async function validateAndProcessSecureOptions() {
|
|
|
583
723
|
}
|
|
584
724
|
// Renamed validation function to reflect its broader role
|
|
585
725
|
async function validateAndProcessOptions(options) {
|
|
586
|
-
var _options_commit, _options_commit1, _options_commit2, _options_commit3, _options_commit4, _options_commit5, _options_commit6, _options_audioCommit, _options_audioCommit1, _options_audioCommit2, _options_audioCommit3, _options_release, _options_release1, _options_release2, _options_release3, _options_audioReview, _options_audioReview1, _options_audioReview2, _options_audioReview3, _options_audioReview4, _options_audioReview5, _options_audioReview6, _options_audioReview7, _options_audioReview8, _options_audioReview9, _options_audioReview10, _options_audioReview11, _options_audioReview12, _options_audioReview13, _options_audioReview14, _options_review, _options_review1, _options_review2, _options_review3, _options_review4, _options_review5, _options_review6, _options_review7, _options_review8, _options_review9, _options_review10, _options_publish, _options_publish1, _options_publish2, _options_publish3, _options_publish4, _options_publish5, _options_link, _options_link1, _options_tree, _options_tree1, _options_tree2, _options_tree3, _options_tree4, _options_tree5;
|
|
587
726
|
const contextDirectories = await validateContextDirectories(options.contextDirectories || KODRDRIV_DEFAULTS.contextDirectories);
|
|
588
727
|
const configDir = options.configDirectory || KODRDRIV_DEFAULTS.configDirectory;
|
|
589
|
-
var _options_dryRun, _options_verbose, _options_debug, _options_overrides, _options_model, _options_outputDirectory, _options_preferencesDirectory, _options_discoveredConfigDirs, _options_resolvedConfigDirs,
|
|
728
|
+
var _options_dryRun, _options_verbose, _options_debug, _options_overrides, _options_model, _options_outputDirectory, _options_preferencesDirectory, _options_discoveredConfigDirs, _options_resolvedConfigDirs, _options_excludedPatterns;
|
|
590
729
|
// Skip config directory validation since Cardigantime handles hierarchical lookup
|
|
591
730
|
// Ensure all required fields are present and have correct types after merging
|
|
592
731
|
const finalConfig = {
|
|
@@ -602,77 +741,50 @@ async function validateAndProcessOptions(options) {
|
|
|
602
741
|
// Cardigantime-specific properties (from fileValues or defaults)
|
|
603
742
|
discoveredConfigDirs: (_options_discoveredConfigDirs = options.discoveredConfigDirs) !== null && _options_discoveredConfigDirs !== void 0 ? _options_discoveredConfigDirs : [],
|
|
604
743
|
resolvedConfigDirs: (_options_resolvedConfigDirs = options.resolvedConfigDirs) !== null && _options_resolvedConfigDirs !== void 0 ? _options_resolvedConfigDirs : [],
|
|
605
|
-
// Command-specific options
|
|
744
|
+
// Command-specific options - ensure all defaults are present even for partial configs
|
|
606
745
|
commit: {
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
sendit: (_options_commit_sendit = (_options_commit2 = options.commit) === null || _options_commit2 === void 0 ? void 0 : _options_commit2.sendit) !== null && _options_commit_sendit !== void 0 ? _options_commit_sendit : KODRDRIV_DEFAULTS.commit.sendit,
|
|
610
|
-
messageLimit: (_options_commit_messageLimit = (_options_commit3 = options.commit) === null || _options_commit3 === void 0 ? void 0 : _options_commit3.messageLimit) !== null && _options_commit_messageLimit !== void 0 ? _options_commit_messageLimit : KODRDRIV_DEFAULTS.commit.messageLimit,
|
|
611
|
-
context: (_options_commit4 = options.commit) === null || _options_commit4 === void 0 ? void 0 : _options_commit4.context,
|
|
612
|
-
direction: (_options_commit5 = options.commit) === null || _options_commit5 === void 0 ? void 0 : _options_commit5.direction,
|
|
613
|
-
skipFileCheck: (_options_commit_skipFileCheck = (_options_commit6 = options.commit) === null || _options_commit6 === void 0 ? void 0 : _options_commit6.skipFileCheck) !== null && _options_commit_skipFileCheck !== void 0 ? _options_commit_skipFileCheck : KODRDRIV_DEFAULTS.commit.skipFileCheck
|
|
746
|
+
...KODRDRIV_DEFAULTS.commit,
|
|
747
|
+
...Object.fromEntries(Object.entries(options.commit || {}).filter(([_, v])=>v !== undefined))
|
|
614
748
|
},
|
|
615
749
|
audioCommit: {
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
file: (_options_audioCommit2 = options.audioCommit) === null || _options_audioCommit2 === void 0 ? void 0 : _options_audioCommit2.file,
|
|
619
|
-
keepTemp: (_options_audioCommit3 = options.audioCommit) === null || _options_audioCommit3 === void 0 ? void 0 : _options_audioCommit3.keepTemp
|
|
750
|
+
...KODRDRIV_DEFAULTS.audioCommit,
|
|
751
|
+
...Object.fromEntries(Object.entries(options.audioCommit || {}).filter(([_, v])=>v !== undefined))
|
|
620
752
|
},
|
|
621
753
|
release: {
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
messageLimit: (_options_release_messageLimit = (_options_release2 = options.release) === null || _options_release2 === void 0 ? void 0 : _options_release2.messageLimit) !== null && _options_release_messageLimit !== void 0 ? _options_release_messageLimit : KODRDRIV_DEFAULTS.release.messageLimit,
|
|
625
|
-
context: (_options_release3 = options.release) === null || _options_release3 === void 0 ? void 0 : _options_release3.context
|
|
754
|
+
...KODRDRIV_DEFAULTS.release,
|
|
755
|
+
...Object.fromEntries(Object.entries(options.release || {}).filter(([_, v])=>v !== undefined))
|
|
626
756
|
},
|
|
627
757
|
audioReview: {
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
includeReleaseNotes: (_options_audioReview_includeReleaseNotes = (_options_audioReview2 = options.audioReview) === null || _options_audioReview2 === void 0 ? void 0 : _options_audioReview2.includeReleaseNotes) !== null && _options_audioReview_includeReleaseNotes !== void 0 ? _options_audioReview_includeReleaseNotes : KODRDRIV_DEFAULTS.audioReview.includeReleaseNotes,
|
|
631
|
-
includeGithubIssues: (_options_audioReview_includeGithubIssues = (_options_audioReview3 = options.audioReview) === null || _options_audioReview3 === void 0 ? void 0 : _options_audioReview3.includeGithubIssues) !== null && _options_audioReview_includeGithubIssues !== void 0 ? _options_audioReview_includeGithubIssues : KODRDRIV_DEFAULTS.audioReview.includeGithubIssues,
|
|
632
|
-
commitHistoryLimit: (_options_audioReview_commitHistoryLimit = (_options_audioReview4 = options.audioReview) === null || _options_audioReview4 === void 0 ? void 0 : _options_audioReview4.commitHistoryLimit) !== null && _options_audioReview_commitHistoryLimit !== void 0 ? _options_audioReview_commitHistoryLimit : KODRDRIV_DEFAULTS.audioReview.commitHistoryLimit,
|
|
633
|
-
diffHistoryLimit: (_options_audioReview_diffHistoryLimit = (_options_audioReview5 = options.audioReview) === null || _options_audioReview5 === void 0 ? void 0 : _options_audioReview5.diffHistoryLimit) !== null && _options_audioReview_diffHistoryLimit !== void 0 ? _options_audioReview_diffHistoryLimit : KODRDRIV_DEFAULTS.audioReview.diffHistoryLimit,
|
|
634
|
-
releaseNotesLimit: (_options_audioReview_releaseNotesLimit = (_options_audioReview6 = options.audioReview) === null || _options_audioReview6 === void 0 ? void 0 : _options_audioReview6.releaseNotesLimit) !== null && _options_audioReview_releaseNotesLimit !== void 0 ? _options_audioReview_releaseNotesLimit : KODRDRIV_DEFAULTS.audioReview.releaseNotesLimit,
|
|
635
|
-
githubIssuesLimit: (_options_audioReview_githubIssuesLimit = (_options_audioReview7 = options.audioReview) === null || _options_audioReview7 === void 0 ? void 0 : _options_audioReview7.githubIssuesLimit) !== null && _options_audioReview_githubIssuesLimit !== void 0 ? _options_audioReview_githubIssuesLimit : KODRDRIV_DEFAULTS.audioReview.githubIssuesLimit,
|
|
636
|
-
context: (_options_audioReview8 = options.audioReview) === null || _options_audioReview8 === void 0 ? void 0 : _options_audioReview8.context,
|
|
637
|
-
sendit: (_options_audioReview_sendit = (_options_audioReview9 = options.audioReview) === null || _options_audioReview9 === void 0 ? void 0 : _options_audioReview9.sendit) !== null && _options_audioReview_sendit !== void 0 ? _options_audioReview_sendit : KODRDRIV_DEFAULTS.audioReview.sendit,
|
|
638
|
-
maxRecordingTime: (_options_audioReview_maxRecordingTime = (_options_audioReview10 = options.audioReview) === null || _options_audioReview10 === void 0 ? void 0 : _options_audioReview10.maxRecordingTime) !== null && _options_audioReview_maxRecordingTime !== void 0 ? _options_audioReview_maxRecordingTime : KODRDRIV_DEFAULTS.audioReview.maxRecordingTime,
|
|
639
|
-
audioDevice: (_options_audioReview_audioDevice = (_options_audioReview11 = options.audioReview) === null || _options_audioReview11 === void 0 ? void 0 : _options_audioReview11.audioDevice) !== null && _options_audioReview_audioDevice !== void 0 ? _options_audioReview_audioDevice : KODRDRIV_DEFAULTS.audioReview.audioDevice,
|
|
640
|
-
file: (_options_audioReview12 = options.audioReview) === null || _options_audioReview12 === void 0 ? void 0 : _options_audioReview12.file,
|
|
641
|
-
directory: (_options_audioReview13 = options.audioReview) === null || _options_audioReview13 === void 0 ? void 0 : _options_audioReview13.directory,
|
|
642
|
-
keepTemp: (_options_audioReview14 = options.audioReview) === null || _options_audioReview14 === void 0 ? void 0 : _options_audioReview14.keepTemp
|
|
758
|
+
...KODRDRIV_DEFAULTS.audioReview,
|
|
759
|
+
...Object.fromEntries(Object.entries(options.audioReview || {}).filter(([_, v])=>v !== undefined))
|
|
643
760
|
},
|
|
644
761
|
review: {
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
includeReleaseNotes: (_options_review_includeReleaseNotes = (_options_review2 = options.review) === null || _options_review2 === void 0 ? void 0 : _options_review2.includeReleaseNotes) !== null && _options_review_includeReleaseNotes !== void 0 ? _options_review_includeReleaseNotes : KODRDRIV_DEFAULTS.review.includeReleaseNotes,
|
|
648
|
-
includeGithubIssues: (_options_review_includeGithubIssues = (_options_review3 = options.review) === null || _options_review3 === void 0 ? void 0 : _options_review3.includeGithubIssues) !== null && _options_review_includeGithubIssues !== void 0 ? _options_review_includeGithubIssues : KODRDRIV_DEFAULTS.review.includeGithubIssues,
|
|
649
|
-
commitHistoryLimit: (_options_review_commitHistoryLimit = (_options_review4 = options.review) === null || _options_review4 === void 0 ? void 0 : _options_review4.commitHistoryLimit) !== null && _options_review_commitHistoryLimit !== void 0 ? _options_review_commitHistoryLimit : KODRDRIV_DEFAULTS.review.commitHistoryLimit,
|
|
650
|
-
diffHistoryLimit: (_options_review_diffHistoryLimit = (_options_review5 = options.review) === null || _options_review5 === void 0 ? void 0 : _options_review5.diffHistoryLimit) !== null && _options_review_diffHistoryLimit !== void 0 ? _options_review_diffHistoryLimit : KODRDRIV_DEFAULTS.review.diffHistoryLimit,
|
|
651
|
-
releaseNotesLimit: (_options_review_releaseNotesLimit = (_options_review6 = options.review) === null || _options_review6 === void 0 ? void 0 : _options_review6.releaseNotesLimit) !== null && _options_review_releaseNotesLimit !== void 0 ? _options_review_releaseNotesLimit : KODRDRIV_DEFAULTS.review.releaseNotesLimit,
|
|
652
|
-
githubIssuesLimit: (_options_review_githubIssuesLimit = (_options_review7 = options.review) === null || _options_review7 === void 0 ? void 0 : _options_review7.githubIssuesLimit) !== null && _options_review_githubIssuesLimit !== void 0 ? _options_review_githubIssuesLimit : KODRDRIV_DEFAULTS.review.githubIssuesLimit,
|
|
653
|
-
context: (_options_review8 = options.review) === null || _options_review8 === void 0 ? void 0 : _options_review8.context,
|
|
654
|
-
sendit: (_options_review_sendit = (_options_review9 = options.review) === null || _options_review9 === void 0 ? void 0 : _options_review9.sendit) !== null && _options_review_sendit !== void 0 ? _options_review_sendit : KODRDRIV_DEFAULTS.review.sendit,
|
|
655
|
-
note: (_options_review10 = options.review) === null || _options_review10 === void 0 ? void 0 : _options_review10.note
|
|
762
|
+
...KODRDRIV_DEFAULTS.review,
|
|
763
|
+
...Object.fromEntries(Object.entries(options.review || {}).filter(([_, v])=>v !== undefined))
|
|
656
764
|
},
|
|
657
765
|
publish: {
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
requiredEnvVars: (_options_publish_requiredEnvVars = (_options_publish2 = options.publish) === null || _options_publish2 === void 0 ? void 0 : _options_publish2.requiredEnvVars) !== null && _options_publish_requiredEnvVars !== void 0 ? _options_publish_requiredEnvVars : KODRDRIV_DEFAULTS.publish.requiredEnvVars,
|
|
661
|
-
linkWorkspacePackages: (_options_publish_linkWorkspacePackages = (_options_publish3 = options.publish) === null || _options_publish3 === void 0 ? void 0 : _options_publish3.linkWorkspacePackages) !== null && _options_publish_linkWorkspacePackages !== void 0 ? _options_publish_linkWorkspacePackages : KODRDRIV_DEFAULTS.publish.linkWorkspacePackages,
|
|
662
|
-
unlinkWorkspacePackages: (_options_publish_unlinkWorkspacePackages = (_options_publish4 = options.publish) === null || _options_publish4 === void 0 ? void 0 : _options_publish4.unlinkWorkspacePackages) !== null && _options_publish_unlinkWorkspacePackages !== void 0 ? _options_publish_unlinkWorkspacePackages : KODRDRIV_DEFAULTS.publish.unlinkWorkspacePackages,
|
|
663
|
-
sendit: (_options_publish_sendit = (_options_publish5 = options.publish) === null || _options_publish5 === void 0 ? void 0 : _options_publish5.sendit) !== null && _options_publish_sendit !== void 0 ? _options_publish_sendit : KODRDRIV_DEFAULTS.publish.sendit
|
|
766
|
+
...KODRDRIV_DEFAULTS.publish,
|
|
767
|
+
...Object.fromEntries(Object.entries(options.publish || {}).filter(([_, v])=>v !== undefined))
|
|
664
768
|
},
|
|
665
769
|
link: {
|
|
666
|
-
|
|
667
|
-
|
|
770
|
+
...KODRDRIV_DEFAULTS.link,
|
|
771
|
+
...Object.fromEntries(Object.entries(options.link || {}).filter(([_, v])=>v !== undefined))
|
|
772
|
+
},
|
|
773
|
+
unlink: {
|
|
774
|
+
...KODRDRIV_DEFAULTS.unlink,
|
|
775
|
+
...Object.fromEntries(Object.entries(options.unlink || {}).filter(([_, v])=>v !== undefined))
|
|
668
776
|
},
|
|
669
777
|
tree: {
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
778
|
+
...KODRDRIV_DEFAULTS.tree,
|
|
779
|
+
...Object.fromEntries(Object.entries(options.tree || {}).filter(([_, v])=>v !== undefined))
|
|
780
|
+
},
|
|
781
|
+
development: {
|
|
782
|
+
...KODRDRIV_DEFAULTS.development,
|
|
783
|
+
...Object.fromEntries(Object.entries(options.development || {}).filter(([_, v])=>v !== undefined))
|
|
784
|
+
},
|
|
785
|
+
versions: {
|
|
786
|
+
...KODRDRIV_DEFAULTS.versions,
|
|
787
|
+
...Object.fromEntries(Object.entries(options.versions || {}).filter(([_, v])=>v !== undefined))
|
|
676
788
|
},
|
|
677
789
|
excludedPatterns: (_options_excludedPatterns = options.excludedPatterns) !== null && _options_excludedPatterns !== void 0 ? _options_excludedPatterns : KODRDRIV_DEFAULTS.excludedPatterns
|
|
678
790
|
};
|