czg 1.6.2-beta.5 → 1.6.2-beta.8
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 +12 -4
- package/lib/config.d.ts +604 -0
- package/lib/index.js +152 -146
- package/package.json +4 -3
package/README.md
CHANGED
@@ -23,7 +23,7 @@
|
|
23
23
|
</p>
|
24
24
|
|
25
25
|
<p align="center">
|
26
|
-
<a href="https://github.com/Zhengqbbb/cz-git">
|
26
|
+
<a href="https://github.com/Zhengqbbb/cz-git">GitHub</a>
|
27
27
|
|
|
28
28
|
<a href="https://cz-git.qbb.sh/cli/install.html">Installation</a>
|
29
29
|
|
|
@@ -82,11 +82,19 @@ SUBCOMMAND:
|
|
82
82
|
gpg Turn on use GPG sign commit message
|
83
83
|
|
84
84
|
OPTIONS:
|
85
|
+
:, --alias= Directly submit the defined commit message
|
85
86
|
--config= Specify the configuration file to use
|
86
|
-
|
87
|
+
|
88
|
+
OpenAI:
|
87
89
|
-N=,--ai-num= Setting AI return number subjects and Turn on choose mode
|
88
|
-
|
90
|
+
--api-key= Setup request OpenAI API secret key to local (.config/.czrc)
|
91
|
+
--api-proxy= Setup request OpenAI API proxy to local (.config/.czrc)
|
92
|
+
--api-endpoint= Setup request OpenAI API endpoint to local (.config/.czrc)
|
93
|
+
|
94
|
+
FLAG:
|
89
95
|
-r, --retry Directly retry submit by the last message
|
96
|
+
--no-ai Turn off AI prompt mode in this session
|
97
|
+
--unset-proxy Unset request API proxy on local configure
|
90
98
|
-h, --help Show help
|
91
99
|
-v, --version Show version
|
92
100
|
|
@@ -95,7 +103,7 @@ EXAMPLES:
|
|
95
103
|
czg emoji
|
96
104
|
czg :fd
|
97
105
|
czg --config="./config/cz.json"
|
98
|
-
czg --
|
106
|
+
czg --api-key="sk-XXXXX"
|
99
107
|
czg ai -N=3
|
100
108
|
|
101
109
|
Extends 'git commit' options.
|
package/lib/config.d.ts
ADDED
@@ -0,0 +1,604 @@
|
|
1
|
+
/**
|
2
|
+
* @description: fork by "@commitlint/types" v16.2.1
|
3
|
+
*/
|
4
|
+
/** ========== rules ========== */
|
5
|
+
/**
|
6
|
+
* Rules match the input either as successful or failed.
|
7
|
+
* For example, when `header-full-stop` detects a full stop and is set as "always"; it's true.
|
8
|
+
* If the `header-full-stop` discovers a full stop but is set to "never"; it's false.
|
9
|
+
*/
|
10
|
+
type RuleOutcome = Readonly<[boolean, string?]>;
|
11
|
+
/**
|
12
|
+
* Rules receive a parsed commit, condition, and possible additional settings through value.
|
13
|
+
* All rules should provide the most sensible rule condition and value.
|
14
|
+
*/
|
15
|
+
type RuleType = 'async' | 'sync' | 'either';
|
16
|
+
type BaseRule<Value = never, Type extends RuleType = 'either'> = (parsed: Commit, when?: RuleConfigCondition, value?: Value) => Type extends 'either' ? RuleOutcome | Promise<RuleOutcome> : Type extends 'async' ? Promise<RuleOutcome> : Type extends 'sync' ? RuleOutcome : never;
|
17
|
+
type Rule<Value = never> = BaseRule<Value, 'either'>;
|
18
|
+
type AsyncRule<Value = never> = BaseRule<Value, 'async'>;
|
19
|
+
type SyncRule<Value = never> = BaseRule<Value, 'sync'>;
|
20
|
+
/**
|
21
|
+
* Rules always have a severity.
|
22
|
+
* Severity indicates what to do if the rule is found to be broken
|
23
|
+
* 0 - Disable this rule
|
24
|
+
* 1 - Warn for violations
|
25
|
+
* 2 - Error for violations
|
26
|
+
*/
|
27
|
+
declare enum RuleConfigSeverity {
|
28
|
+
Disabled = 0,
|
29
|
+
Warning = 1,
|
30
|
+
Error = 2
|
31
|
+
}
|
32
|
+
/**
|
33
|
+
* Rules always have a condition.
|
34
|
+
* It can be either "always" (as tested), or "never" (as tested).
|
35
|
+
* For example, `header-full-stop` can be enforced as "always" or "never".
|
36
|
+
*/
|
37
|
+
type RuleConfigCondition = 'always' | 'never';
|
38
|
+
type RuleConfigTuple<T> = T extends void ? Readonly<[RuleConfigSeverity.Disabled]> | Readonly<[RuleConfigSeverity, RuleConfigCondition]> : Readonly<[RuleConfigSeverity.Disabled]> | Readonly<[RuleConfigSeverity, RuleConfigCondition, T]>;
|
39
|
+
declare enum RuleConfigQuality {
|
40
|
+
User = 0,
|
41
|
+
Qualified = 1
|
42
|
+
}
|
43
|
+
type QualifiedRuleConfig<T> = (() => RuleConfigTuple<T>) | (() => Promise<RuleConfigTuple<T>>) | RuleConfigTuple<T>;
|
44
|
+
type RuleConfig<V = RuleConfigQuality.Qualified, T = void> = V extends RuleConfigQuality.Qualified ? RuleConfigTuple<T> : QualifiedRuleConfig<T>;
|
45
|
+
type CaseRuleConfig<V = RuleConfigQuality.User> = RuleConfig<V, TargetCaseType | TargetCaseType[]>;
|
46
|
+
type LengthRuleConfig<V = RuleConfigQuality.User> = RuleConfig<V, number>;
|
47
|
+
type EnumRuleConfig<V = RuleConfigQuality.User> = RuleConfig<V, string[]>;
|
48
|
+
interface RulesConfig<V = RuleConfigQuality.User> {
|
49
|
+
'body-case': CaseRuleConfig<V>;
|
50
|
+
'body-empty': RuleConfig<V>;
|
51
|
+
'body-full-stop': RuleConfig<V, string>;
|
52
|
+
'body-leading-blank': RuleConfig<V>;
|
53
|
+
'body-max-length': LengthRuleConfig<V>;
|
54
|
+
'body-max-line-length': LengthRuleConfig<V>;
|
55
|
+
'body-min-length': LengthRuleConfig<V>;
|
56
|
+
'footer-empty': RuleConfig<V>;
|
57
|
+
'footer-leading-blank': RuleConfig<V>;
|
58
|
+
'footer-max-length': LengthRuleConfig<V>;
|
59
|
+
'footer-max-line-length': LengthRuleConfig<V>;
|
60
|
+
'footer-min-length': LengthRuleConfig<V>;
|
61
|
+
'header-case': CaseRuleConfig<V>;
|
62
|
+
'header-full-stop': RuleConfig<V, string>;
|
63
|
+
'header-max-length': LengthRuleConfig<V>;
|
64
|
+
'header-min-length': LengthRuleConfig<V>;
|
65
|
+
'references-empty': RuleConfig<V>;
|
66
|
+
'scope-case': CaseRuleConfig<V>;
|
67
|
+
'scope-empty': RuleConfig<V>;
|
68
|
+
'scope-enum': EnumRuleConfig<V>;
|
69
|
+
'scope-max-length': LengthRuleConfig<V>;
|
70
|
+
'scope-min-length': LengthRuleConfig<V>;
|
71
|
+
'signed-off-by': RuleConfig<V, string>;
|
72
|
+
'subject-case': CaseRuleConfig<V>;
|
73
|
+
'subject-empty': RuleConfig<V>;
|
74
|
+
'subject-full-stop': RuleConfig<V, string>;
|
75
|
+
'subject-max-length': LengthRuleConfig<V>;
|
76
|
+
'subject-min-length': LengthRuleConfig<V>;
|
77
|
+
'trailer-exists': RuleConfig<V, string>;
|
78
|
+
'type-case': CaseRuleConfig<V>;
|
79
|
+
'type-empty': RuleConfig<V>;
|
80
|
+
'type-enum': EnumRuleConfig<V>;
|
81
|
+
'type-max-length': LengthRuleConfig<V>;
|
82
|
+
'type-min-length': LengthRuleConfig<V>;
|
83
|
+
[key: string]: AnyRuleConfig<V>;
|
84
|
+
}
|
85
|
+
type AnyRuleConfig<V> = RuleConfig<V, unknown> | RuleConfig<V, void>;
|
86
|
+
interface Plugin {
|
87
|
+
rules: {
|
88
|
+
[ruleName: string]: Rule | AsyncRule | SyncRule;
|
89
|
+
};
|
90
|
+
}
|
91
|
+
interface CommitlintUserConfig {
|
92
|
+
extends?: string | string[];
|
93
|
+
formatter?: string;
|
94
|
+
rules?: Partial<RulesConfig>;
|
95
|
+
parserPreset?: string | ParserPreset | Promise<ParserPreset>;
|
96
|
+
ignores?: ((commit: string) => boolean)[];
|
97
|
+
defaultIgnores?: boolean;
|
98
|
+
plugins?: (string | Plugin)[];
|
99
|
+
helpUrl?: string;
|
100
|
+
[key: string]: unknown;
|
101
|
+
}
|
102
|
+
interface ParserPreset {
|
103
|
+
name?: string;
|
104
|
+
path?: string;
|
105
|
+
parserOpts?: unknown;
|
106
|
+
}
|
107
|
+
/** ========== parse ========== */
|
108
|
+
interface Commit {
|
109
|
+
raw: string;
|
110
|
+
header: string;
|
111
|
+
type: string | null;
|
112
|
+
scope: string | null;
|
113
|
+
subject: string | null;
|
114
|
+
body: string | null;
|
115
|
+
footer: string | null;
|
116
|
+
mentions: string[];
|
117
|
+
notes: CommitNote[];
|
118
|
+
references: CommitReference[];
|
119
|
+
revert: any;
|
120
|
+
merge: any;
|
121
|
+
}
|
122
|
+
interface CommitNote {
|
123
|
+
title: string;
|
124
|
+
text: string;
|
125
|
+
}
|
126
|
+
interface CommitReference {
|
127
|
+
raw: string;
|
128
|
+
prefix: string;
|
129
|
+
action: string | null;
|
130
|
+
owner: string | null;
|
131
|
+
repository: string | null;
|
132
|
+
issue: string | null;
|
133
|
+
}
|
134
|
+
/** ========== ensure ========== */
|
135
|
+
type TargetCaseType = 'camel-case' | 'kebab-case' | 'snake-case' | 'pascal-case' | 'start-case' | 'upper-case' | 'uppercase' | 'sentence-case' | 'sentencecase' | 'lower-case' | 'lowercase' | 'lowerCase';
|
136
|
+
|
137
|
+
/**
|
138
|
+
* @description: cz-git types
|
139
|
+
* @author: @Zhengqbbb (zhengqbbb@gmail.com)
|
140
|
+
* @license: MIT
|
141
|
+
* @copyright: Copyright (c) 2022-present Qiubin Zheng
|
142
|
+
*/
|
143
|
+
|
144
|
+
interface UserConfig extends CommitlintUserConfig {
|
145
|
+
prompt?: CommitizenGitOptions;
|
146
|
+
}
|
147
|
+
interface Answers {
|
148
|
+
/**
|
149
|
+
* @default "Select the type of change that you're committing:"
|
150
|
+
*/
|
151
|
+
type?: string;
|
152
|
+
/**
|
153
|
+
* @default 'Denote the SCOPE of this change (optional):'
|
154
|
+
*/
|
155
|
+
scope?: string | string[];
|
156
|
+
/**
|
157
|
+
* @default 'Denote the SCOPE of this change:'
|
158
|
+
*/
|
159
|
+
customScope?: string;
|
160
|
+
/**
|
161
|
+
* @default 'Write a SHORT, IMPERATIVE tense description of the change:\n'
|
162
|
+
*/
|
163
|
+
subject?: string;
|
164
|
+
/**
|
165
|
+
* @default 'a LONGER description of the change (optional). Use "|" to break new line:\n'
|
166
|
+
*/
|
167
|
+
body?: string;
|
168
|
+
/**
|
169
|
+
* @default 'Is any BREAKING CHANGE (add "!" in header) (optional) ?'
|
170
|
+
* @use need turn on options "markBreakingChangeMode"
|
171
|
+
*/
|
172
|
+
markBreaking?: string | boolean;
|
173
|
+
/**
|
174
|
+
* @default 'List any BREAKING CHANGES (optional). Use "|" to break new line:\n'
|
175
|
+
*/
|
176
|
+
breaking?: string;
|
177
|
+
/** @deprecated Please use `footerPrefixesSelect` field instead. @note fix typo option field v1.4.0: Already processed for normal compatibility */
|
178
|
+
footerPrefixsSelect?: string;
|
179
|
+
/**
|
180
|
+
* @default 'Select the ISSUES type of change (optional):'
|
181
|
+
*/
|
182
|
+
footerPrefixesSelect?: string;
|
183
|
+
/** @deprecated Please use `customFooterPrefix` field instead. @note fix typo option field v1.4.0: Already processed for normal compatibility */
|
184
|
+
customFooterPrefixs?: string;
|
185
|
+
/**
|
186
|
+
* @default 'Input ISSUES prefix:'
|
187
|
+
*/
|
188
|
+
customFooterPrefix?: string;
|
189
|
+
/**
|
190
|
+
* @default 'List any ISSUES AFFECTED by this change. E.g.: #31, #34:'
|
191
|
+
*/
|
192
|
+
footer?: string;
|
193
|
+
/**
|
194
|
+
* @default 'Are you sure you want to proceed with the commit above?'
|
195
|
+
*/
|
196
|
+
confirmCommit?: string;
|
197
|
+
/**
|
198
|
+
* @default 'Generating your AI commit subject...'
|
199
|
+
*/
|
200
|
+
generatingByAI: string;
|
201
|
+
/**
|
202
|
+
* @default 'Select suitable subject by AI generated:'
|
203
|
+
*/
|
204
|
+
generatedSelectByAI: string;
|
205
|
+
footerPrefix?: string;
|
206
|
+
}
|
207
|
+
type ScopesType = string[] | Array<{
|
208
|
+
name: string;
|
209
|
+
value?: string;
|
210
|
+
}>;
|
211
|
+
interface Option {
|
212
|
+
/**
|
213
|
+
* @description: show prompt name
|
214
|
+
*/
|
215
|
+
name: string;
|
216
|
+
/**
|
217
|
+
* @description: output real value
|
218
|
+
*/
|
219
|
+
value: string;
|
220
|
+
}
|
221
|
+
interface TypesOption extends Option {
|
222
|
+
/**
|
223
|
+
* @description: Submit emoji commit string
|
224
|
+
* @see: https://gitmoji.dev/
|
225
|
+
* @example: ":bug:" => 🐛
|
226
|
+
*/
|
227
|
+
emoji?: string;
|
228
|
+
}
|
229
|
+
/**
|
230
|
+
* provide subdivides each message part
|
231
|
+
*/
|
232
|
+
interface CommitMessageOptions {
|
233
|
+
/**
|
234
|
+
* @description: choose type list value
|
235
|
+
* @example: 'feat'
|
236
|
+
*/
|
237
|
+
type: string;
|
238
|
+
/**
|
239
|
+
* @description: choose or custom scope value
|
240
|
+
* @example: 'app'
|
241
|
+
*/
|
242
|
+
scope: string;
|
243
|
+
/**
|
244
|
+
* @description: choose type list emoji code. need turn on `useEmoji` options
|
245
|
+
* @example: ':sparkles:'
|
246
|
+
*/
|
247
|
+
emoji: string;
|
248
|
+
/**
|
249
|
+
* @description: express is a breaking change message
|
250
|
+
* @example `!`
|
251
|
+
*/
|
252
|
+
markBreaking: string;
|
253
|
+
/**
|
254
|
+
* @description: input subject
|
255
|
+
*/
|
256
|
+
subject: string;
|
257
|
+
/**
|
258
|
+
* @description: base Angular format default header
|
259
|
+
* @example `feat(app): add a feature`
|
260
|
+
*/
|
261
|
+
defaultHeader: string;
|
262
|
+
body: string;
|
263
|
+
breaking: string;
|
264
|
+
footer: string;
|
265
|
+
/**
|
266
|
+
* @description: base Angular format default all message
|
267
|
+
*/
|
268
|
+
defaultMessage: string;
|
269
|
+
}
|
270
|
+
interface GenerateAIPromptType {
|
271
|
+
type?: string;
|
272
|
+
defaultScope?: string;
|
273
|
+
maxSubjectLength?: number;
|
274
|
+
upperCaseSubject?: boolean;
|
275
|
+
diff?: string;
|
276
|
+
}
|
277
|
+
interface CommitizenGitOptions {
|
278
|
+
/**
|
279
|
+
* @description: define commonly used commit message alias
|
280
|
+
* @default { fd: "docs: fix typos" }
|
281
|
+
* @use commitizen CLI: "cz_alias=fd cz"
|
282
|
+
* @use czg CLI: "czg --alias=fd" | "czg :fd"
|
283
|
+
* @note use commitizen CLI will meet process not exit. cz-git can't resolve it.
|
284
|
+
*/
|
285
|
+
alias?: Record<string, string>;
|
286
|
+
/**
|
287
|
+
* @description: Customize prompt questions
|
288
|
+
*/
|
289
|
+
messages?: Answers;
|
290
|
+
/**
|
291
|
+
* @description: the prompt inquirer primary color
|
292
|
+
* @rule `38;5;${color_code}`
|
293
|
+
* @tip the color_code can get by https://github.com/sindresorhus/xterm-colors
|
294
|
+
* @example "38;5;043"
|
295
|
+
* @default '' //cyan color
|
296
|
+
*/
|
297
|
+
themeColorCode?: string;
|
298
|
+
/**
|
299
|
+
* @description: Customize prompt type
|
300
|
+
*/
|
301
|
+
types?: TypesOption[];
|
302
|
+
/**
|
303
|
+
* @description: Add extra types to default types
|
304
|
+
* @use Use when you don't want to add bloated defaults and don't want to adjust the default order in configuration
|
305
|
+
* @example `typesAppend: [ { value: "workflow", name: "workflow: Workflow changes"} ],`
|
306
|
+
* @default []
|
307
|
+
*/
|
308
|
+
typesAppend?: TypesOption[];
|
309
|
+
/**
|
310
|
+
* @description: default types list fuzzy search types `value` key of list.
|
311
|
+
* if choose `false` will search `name` key of list
|
312
|
+
* @use Using emoji unicode as `value` and that can't be searched
|
313
|
+
* @default true
|
314
|
+
*/
|
315
|
+
typesSearchValue?: boolean;
|
316
|
+
/** @deprecated Please use `typesSearchValue` field instead. */
|
317
|
+
typesSearchValueKey?: boolean;
|
318
|
+
/**
|
319
|
+
* @description: Use OpenAI to auto generate short description for commit message
|
320
|
+
* @default false
|
321
|
+
*/
|
322
|
+
useAI?: boolean;
|
323
|
+
/**
|
324
|
+
* @description: If >1 will turn on select mode, select generate options like returned by OpenAI
|
325
|
+
* @default 1
|
326
|
+
*/
|
327
|
+
aiNumber?: number;
|
328
|
+
/**
|
329
|
+
* @description: To ignore selection codes when sending AI API requests
|
330
|
+
* @default [ "package-lock.json", "yarn.lock", "pnpm-lock.yaml" ]
|
331
|
+
* @example: [ "pnpm-lock.yaml", "docs/public" ]
|
332
|
+
*/
|
333
|
+
aiDiffIgnore?: string[];
|
334
|
+
/**
|
335
|
+
* Choose the AI model you want to use: gpt-3.5-turbo | text-davinci-003
|
336
|
+
* gpt-3.5-turbo: Lower price consumption (10x) and faster
|
337
|
+
* text-davinci-003: Get more reliable information
|
338
|
+
*
|
339
|
+
* @default openAI-Turbo
|
340
|
+
*/
|
341
|
+
aiType?: 'openAI-Turbo' | 'openAI-Davinci';
|
342
|
+
/**
|
343
|
+
* @description: Alert!!! Save on "$HOME/.czrc" or "$HOME/.config/.czrc". Do not save on project
|
344
|
+
*/
|
345
|
+
openAIToken?: string;
|
346
|
+
/**
|
347
|
+
* It is recommended to use the command to configure the local
|
348
|
+
* `npx czg --api-proxy=<http_proxy>`
|
349
|
+
* e.g: `npx czg --api-proxy="http://127.0.0.1:1080"` or `npx czg --api-proxy="socks5://127.0.0.1:1080"`
|
350
|
+
*/
|
351
|
+
apiProxy?: string;
|
352
|
+
/**
|
353
|
+
* `npx czg --api-endpoint=<url>`
|
354
|
+
* @default "https://api.openai.com/v1"
|
355
|
+
*/
|
356
|
+
apiEndpoint?: string;
|
357
|
+
/**
|
358
|
+
* @description: Use the callback fn can customize edit information AI question information
|
359
|
+
* @param GenerateAIPromptType: provide some known parameters
|
360
|
+
* @default generateSubjectDefaultPrompt
|
361
|
+
*/
|
362
|
+
aiQuestionCB?: (aiParam: GenerateAIPromptType) => string;
|
363
|
+
/**
|
364
|
+
* @description: Use emoji ?| it will be use typesOption.emoji code
|
365
|
+
* @default false
|
366
|
+
*/
|
367
|
+
useEmoji?: boolean;
|
368
|
+
/**
|
369
|
+
* @description: Set the location of emoji in header
|
370
|
+
* @default "center"
|
371
|
+
*/
|
372
|
+
emojiAlign?: 'left' | 'center' | 'right';
|
373
|
+
/**
|
374
|
+
* @description: Provides a select of prompt to select module scopes
|
375
|
+
* @note it auto import value from rule "scope-enum" with `@commitlint`
|
376
|
+
* @use want to add scopes description or when you not use commitlint
|
377
|
+
*/
|
378
|
+
scopes?: ScopesType;
|
379
|
+
/**
|
380
|
+
* @description: default scope list fuzzy search types `name` key of list.
|
381
|
+
* if choose `true` will search `value` key of list.
|
382
|
+
* @use If have long description of scope. can use it to enhanced search.
|
383
|
+
* @default false
|
384
|
+
*/
|
385
|
+
scopesSearchValue?: boolean;
|
386
|
+
/**
|
387
|
+
* @description: Provides an overriding select of prompt to select module scopes under specific type
|
388
|
+
* @note use this option should set `scopes` option to realize distinguish
|
389
|
+
* @example: [test] => provide select e2eTest unitTest
|
390
|
+
*/
|
391
|
+
scopeOverrides?: {
|
392
|
+
[type: string]: ScopesType;
|
393
|
+
};
|
394
|
+
/**
|
395
|
+
* @description: Filter select of prompt to select module scopes by the scope.value
|
396
|
+
* @default ['.DS_Store']
|
397
|
+
*/
|
398
|
+
scopeFilters?: string[];
|
399
|
+
/**
|
400
|
+
* @description: Whether to enable scope multiple mode
|
401
|
+
* @default false
|
402
|
+
*/
|
403
|
+
enableMultipleScopes?: boolean;
|
404
|
+
/**
|
405
|
+
* @description: Multiple choice scope separator
|
406
|
+
* @default ","
|
407
|
+
*/
|
408
|
+
scopeEnumSeparator?: string;
|
409
|
+
/**
|
410
|
+
* @description: Whether to show "custom" when selecting scopes
|
411
|
+
* @note it auto check rule "scope-enum" set the option with `@commitlint`
|
412
|
+
* @use when you not use commitlint
|
413
|
+
* @default true
|
414
|
+
*/
|
415
|
+
allowCustomScopes?: boolean;
|
416
|
+
/**
|
417
|
+
* @description: Whether to show "empty" when selecting scopes
|
418
|
+
* @default true
|
419
|
+
*/
|
420
|
+
allowEmptyScopes?: boolean;
|
421
|
+
/**
|
422
|
+
* @description: Set the location of empty option (empty) and custom option (custom) in selection range
|
423
|
+
* @default "bottom"
|
424
|
+
*/
|
425
|
+
customScopesAlign?: 'top' | 'bottom' | 'top-bottom' | 'bottom-top';
|
426
|
+
/**
|
427
|
+
* @default "custom"
|
428
|
+
*/
|
429
|
+
customScopesAlias?: string;
|
430
|
+
/**
|
431
|
+
* @default "empty"
|
432
|
+
*/
|
433
|
+
emptyScopesAlias?: string;
|
434
|
+
/**
|
435
|
+
* @description: Subject is need upper case first.
|
436
|
+
* @default false
|
437
|
+
*/
|
438
|
+
upperCaseSubject?: boolean;
|
439
|
+
/**
|
440
|
+
* @description: Whether to add extra prompt BREAKCHANGE ask. to add an extra "!" to the header
|
441
|
+
* @see: https://cz-git.qbb.sh/recipes/breakingchange
|
442
|
+
* @default false
|
443
|
+
*/
|
444
|
+
markBreakingChangeMode?: boolean;
|
445
|
+
/**
|
446
|
+
* @description: Allow breaking changes in the included types output box
|
447
|
+
* @default ['feat', 'fix']
|
448
|
+
*/
|
449
|
+
allowBreakingChanges?: string[];
|
450
|
+
/**
|
451
|
+
* @description: set body and BREAKING CHANGE max length to break-line
|
452
|
+
* @default 100
|
453
|
+
* @note it auto check rule "body-max-line-length" set the option with `@commitlint`.
|
454
|
+
* @use when you not use commitlint
|
455
|
+
*/
|
456
|
+
breaklineNumber?: number;
|
457
|
+
/**
|
458
|
+
* @description: body and BREAKINGCHANGES new line char
|
459
|
+
* @default "|"
|
460
|
+
*/
|
461
|
+
breaklineChar?: string;
|
462
|
+
/**
|
463
|
+
* @deprecated Please use `issuePrefixes` field instead.
|
464
|
+
* @note fix typo option field v1.3.4: Already processed for normal compatibility
|
465
|
+
*/
|
466
|
+
issuePrefixs?: Option[];
|
467
|
+
/**
|
468
|
+
* @description: Provides a select issue prefix box in footer
|
469
|
+
* @default issuePrefixes: [{ value: "closed", name: "ISSUES has been processed" }]
|
470
|
+
*/
|
471
|
+
issuePrefixes?: Option[];
|
472
|
+
/**
|
473
|
+
* @deprecated Please use `customIssuePrefixAlign` field instead.
|
474
|
+
* @note fix typo option field v1.3.4: Already processed for normal compatibility
|
475
|
+
*/
|
476
|
+
customIssuePrefixsAlign?: 'top' | 'bottom' | 'top-bottom' | 'bottom-top';
|
477
|
+
/**
|
478
|
+
* @default "top"
|
479
|
+
*/
|
480
|
+
customIssuePrefixAlign?: 'top' | 'bottom' | 'top-bottom' | 'bottom-top';
|
481
|
+
/**
|
482
|
+
* @deprecated Please use `emptyIssuePrefixAlias` field instead.
|
483
|
+
* @note fix typo option field v1.3.4: Already processed for normal compatibility
|
484
|
+
*/
|
485
|
+
emptyIssuePrefixsAlias?: string;
|
486
|
+
/**
|
487
|
+
* @default "skip"
|
488
|
+
*/
|
489
|
+
emptyIssuePrefixAlias?: string;
|
490
|
+
/**
|
491
|
+
* @deprecated Please use `customIssuePrefixAlias` field instead.
|
492
|
+
* @note fix typo option field v1.3.4: Already processed for normal compatibility
|
493
|
+
*/
|
494
|
+
customIssuePrefixsAlias?: string;
|
495
|
+
/**
|
496
|
+
* @default "custom"
|
497
|
+
*/
|
498
|
+
customIssuePrefixAlias?: string;
|
499
|
+
/**
|
500
|
+
* @deprecated Please use `allowCustomIssuePrefix` field instead.
|
501
|
+
* @note fix typo option field v1.3.4: Already processed for normal compatibility
|
502
|
+
*/
|
503
|
+
allowCustomIssuePrefixs?: boolean;
|
504
|
+
/**
|
505
|
+
* @description: Whether to show "custom" selecting issue prefixes
|
506
|
+
* @default true
|
507
|
+
*/
|
508
|
+
allowCustomIssuePrefix?: boolean;
|
509
|
+
/**
|
510
|
+
* @deprecated Please use `allowEmptyIssuePrefix` field instead.
|
511
|
+
* @note fix typo option field v1.3.4: Already processed for normal compatibility
|
512
|
+
*/
|
513
|
+
allowEmptyIssuePrefixs?: boolean;
|
514
|
+
/**
|
515
|
+
* @description: Whether to show "skip(empty)" when selecting issue prefixes
|
516
|
+
* @default true
|
517
|
+
*/
|
518
|
+
allowEmptyIssuePrefix?: boolean;
|
519
|
+
/**
|
520
|
+
* @description: Prompt final determination whether to display the color
|
521
|
+
* @default true
|
522
|
+
*/
|
523
|
+
confirmColorize?: boolean;
|
524
|
+
/**
|
525
|
+
* @description: List of questions you want to skip
|
526
|
+
* @default []
|
527
|
+
* @example: ['body']
|
528
|
+
*/
|
529
|
+
skipQuestions?: Array<'scope' | 'body' | 'breaking' | 'footerPrefix' | 'footer' | 'confirmCommit'>;
|
530
|
+
/**
|
531
|
+
* @description: Force set max header length | Equivalent setting maxSubjectLength.
|
532
|
+
* @note it auto check rule "header-max-length" set the option with `@commitlint`.
|
533
|
+
* @use when you not use commitlint
|
534
|
+
*/
|
535
|
+
maxHeaderLength?: number;
|
536
|
+
/**
|
537
|
+
* @description: Force set max subject length.
|
538
|
+
* @note it auto check rule "subject-max-length" set the option with `@commitlint`.
|
539
|
+
* @use when you not use commitlint
|
540
|
+
*/
|
541
|
+
maxSubjectLength?: number;
|
542
|
+
/**
|
543
|
+
* @description: Is not strict subject rule. Just provide prompt word length warning.
|
544
|
+
* Effected maxHeader and maxSubject commitlint
|
545
|
+
* @example [1, 'always', 80] 1: mean warning. will be true
|
546
|
+
* @default false
|
547
|
+
*/
|
548
|
+
isIgnoreCheckMaxSubjectLength?: boolean;
|
549
|
+
/**
|
550
|
+
* @description: Force set header width.
|
551
|
+
* @note it auto check rule "subject-min-length" set the option with `@commitlint`.
|
552
|
+
* @use when you not use commitlint
|
553
|
+
*/
|
554
|
+
minSubjectLength?: number;
|
555
|
+
/**
|
556
|
+
* @description: pin type item the top of the types list (match item value)
|
557
|
+
*/
|
558
|
+
defaultType?: string;
|
559
|
+
/**
|
560
|
+
* @description: Whether to use display default value in custom scope
|
561
|
+
* @tip pin scope item the top of the scope list (match item value)
|
562
|
+
* @example: When you want to use default, just keyboard <Enter> it
|
563
|
+
*/
|
564
|
+
defaultScope?: string;
|
565
|
+
/**
|
566
|
+
* @description: default value show subject template prompt
|
567
|
+
* @example: If you want to use template complete. just keyboard <Tab> or <Right Arrow> it
|
568
|
+
* @example: If you want to use default, just keyboard <Enter> it
|
569
|
+
*/
|
570
|
+
defaultSubject?: string;
|
571
|
+
/**
|
572
|
+
* @description: default value show body and BREAKINGCHANGES template prompt
|
573
|
+
* @example: If you want to use template complete. just keyboard <Tab> or <Right Arrow> it
|
574
|
+
* @example: When you want to use default, just keyboard <Enter> it
|
575
|
+
*/
|
576
|
+
defaultBody?: string;
|
577
|
+
/**
|
578
|
+
* @description: default value show issuePrefixes custom template prompt
|
579
|
+
* @example: If you want to use template complete. just keyboard <Tab> or <Right Arrow> it
|
580
|
+
* @example: When you want to use default, just keyboard <Enter> it
|
581
|
+
*/
|
582
|
+
defaultFooterPrefix?: string;
|
583
|
+
/**
|
584
|
+
* @description: default value show issue foot template prompt
|
585
|
+
* @example: If you want to use template complete. just keyboard <Tab> or <Right Arrow> it
|
586
|
+
* @example: When you want to use default, just keyboard <Enter> it
|
587
|
+
*/
|
588
|
+
defaultIssues?: string;
|
589
|
+
/**
|
590
|
+
* @description: Whether to use GPG sign commit message (git commit -S -m)
|
591
|
+
* @note the options only support `czg` cz-git cli and no support git hooks mode
|
592
|
+
* @usage_see https://github.com/Zhengqbbb/cz-git/issues/58
|
593
|
+
* @default false
|
594
|
+
*/
|
595
|
+
useCommitSignGPG?: boolean;
|
596
|
+
/**
|
597
|
+
* @description: provide user custom finally message, can use the callback to change format
|
598
|
+
* @param CommitMessageOptions: provide subdivides each message part
|
599
|
+
* @default ({ defaultMessage }) => defaultMessage
|
600
|
+
*/
|
601
|
+
formatMessageCB?: (messageMod: CommitMessageOptions) => string;
|
602
|
+
}
|
603
|
+
|
604
|
+
export { CommitizenGitOptions, UserConfig };
|