@commitlint/cz-commitlint 13.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.
Files changed (72) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/README.md +61 -0
  3. package/lib/Process.d.ts +4 -0
  4. package/lib/Process.d.ts.map +1 -0
  5. package/lib/Process.js +23 -0
  6. package/lib/Process.js.map +1 -0
  7. package/lib/Question.d.ts +42 -0
  8. package/lib/Question.d.ts.map +1 -0
  9. package/lib/Question.js +134 -0
  10. package/lib/Question.js.map +1 -0
  11. package/lib/SectionBody.d.ts +4 -0
  12. package/lib/SectionBody.d.ts.map +1 -0
  13. package/lib/SectionBody.js +42 -0
  14. package/lib/SectionBody.js.map +1 -0
  15. package/lib/SectionFooter.d.ts +12 -0
  16. package/lib/SectionFooter.d.ts.map +1 -0
  17. package/lib/SectionFooter.js +138 -0
  18. package/lib/SectionFooter.js.map +1 -0
  19. package/lib/SectionHeader.d.ts +12 -0
  20. package/lib/SectionHeader.d.ts.map +1 -0
  21. package/lib/SectionHeader.js +51 -0
  22. package/lib/SectionHeader.js.map +1 -0
  23. package/lib/index.d.ts +11 -0
  24. package/lib/index.d.ts.map +1 -0
  25. package/lib/index.js +21 -0
  26. package/lib/index.js.map +1 -0
  27. package/lib/services/getRuleQuestionConfig.d.ts +4 -0
  28. package/lib/services/getRuleQuestionConfig.d.ts.map +1 -0
  29. package/lib/services/getRuleQuestionConfig.js +63 -0
  30. package/lib/services/getRuleQuestionConfig.js.map +1 -0
  31. package/lib/store/defaultPromptConfigs.d.ts +29 -0
  32. package/lib/store/defaultPromptConfigs.d.ts.map +1 -0
  33. package/lib/store/defaultPromptConfigs.js +30 -0
  34. package/lib/store/defaultPromptConfigs.js.map +1 -0
  35. package/lib/store/prompts.d.ts +5 -0
  36. package/lib/store/prompts.d.ts.map +1 -0
  37. package/lib/store/prompts.js +39 -0
  38. package/lib/store/prompts.js.map +1 -0
  39. package/lib/store/rules.d.ts +7 -0
  40. package/lib/store/rules.d.ts.map +1 -0
  41. package/lib/store/rules.js +19 -0
  42. package/lib/store/rules.js.map +1 -0
  43. package/lib/types.d.ts +3 -0
  44. package/lib/types.d.ts.map +1 -0
  45. package/lib/types.js +3 -0
  46. package/lib/types.js.map +1 -0
  47. package/lib/utils/case-fn.d.ts +9 -0
  48. package/lib/utils/case-fn.d.ts.map +1 -0
  49. package/lib/utils/case-fn.js +52 -0
  50. package/lib/utils/case-fn.js.map +1 -0
  51. package/lib/utils/full-stop-fn-test.d.ts +2 -0
  52. package/lib/utils/full-stop-fn-test.d.ts.map +1 -0
  53. package/lib/utils/full-stop-fn-test.js +63 -0
  54. package/lib/utils/full-stop-fn-test.js.map +1 -0
  55. package/lib/utils/full-stop-fn.d.ts +9 -0
  56. package/lib/utils/full-stop-fn.d.ts.map +1 -0
  57. package/lib/utils/full-stop-fn.js +32 -0
  58. package/lib/utils/full-stop-fn.js.map +1 -0
  59. package/lib/utils/leading-blank-fn-test.d.ts +2 -0
  60. package/lib/utils/leading-blank-fn-test.d.ts.map +1 -0
  61. package/lib/utils/leading-blank-fn-test.js +39 -0
  62. package/lib/utils/leading-blank-fn-test.js.map +1 -0
  63. package/lib/utils/leading-blank-fn.d.ts +8 -0
  64. package/lib/utils/leading-blank-fn.d.ts.map +1 -0
  65. package/lib/utils/leading-blank-fn.js +27 -0
  66. package/lib/utils/leading-blank-fn.js.map +1 -0
  67. package/lib/utils/rules.d.ts +30 -0
  68. package/lib/utils/rules.d.ts.map +1 -0
  69. package/lib/utils/rules.js +79 -0
  70. package/lib/utils/rules.js.map +1 -0
  71. package/license.md +19 -0
  72. package/package.json +53 -0
package/lib/index.js ADDED
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.prompter = void 0;
7
+ const load_1 = __importDefault(require("@commitlint/load"));
8
+ const Process_1 = __importDefault(require("./Process"));
9
+ /**
10
+ * Entry point for commitizen
11
+ * @param inquirer instance passed by commitizen, unused
12
+ * @param commit callback to execute with complete commit message
13
+ * @return {void}
14
+ */
15
+ function prompter(inquirer, commit) {
16
+ (0, load_1.default)().then(({ rules, prompt = {} }) => {
17
+ (0, Process_1.default)(rules, prompt, inquirer).then(commit);
18
+ });
19
+ }
20
+ exports.prompter = prompter;
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAoC;AAEpC,wDAAgC;AAGhC;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,QAAkB,EAAE,MAAc;IAC1D,IAAA,cAAI,GAAE,CAAC,IAAI,CAAC,CAAC,EAAC,KAAK,EAAE,MAAM,GAAG,EAAE,EAAC,EAAE,EAAE;QACpC,IAAA,iBAAO,EAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACJ,CAAC;AAJD,4BAIC"}
@@ -0,0 +1,4 @@
1
+ import { RuleField } from '@commitlint/types';
2
+ import { QuestionConfig } from '../Question';
3
+ export default function (rulePrefix: RuleField): QuestionConfig | null;
4
+ //# sourceMappingURL=getRuleQuestionConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getRuleQuestionConfig.d.ts","sourceRoot":"","sources":["../../src/services/getRuleQuestionConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAe3C,MAAM,CAAC,OAAO,WAAW,UAAU,EAAE,SAAS,GAAG,cAAc,GAAG,IAAI,CAyDrE"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const prompts_1 = require("../store/prompts");
7
+ const rules_1 = require("../store/rules");
8
+ const case_fn_1 = __importDefault(require("../utils/case-fn"));
9
+ const full_stop_fn_1 = __importDefault(require("../utils/full-stop-fn"));
10
+ const rules_2 = require("../utils/rules");
11
+ function default_1(rulePrefix) {
12
+ var _a;
13
+ const questions = (0, prompts_1.getPromptQuestions)();
14
+ const questionSettings = questions[rulePrefix];
15
+ const emptyRule = (0, rules_1.getRule)(rulePrefix, 'empty');
16
+ const mustBeEmpty = emptyRule && (0, rules_2.ruleIsActive)(emptyRule) && (0, rules_2.ruleIsApplicable)(emptyRule);
17
+ if (mustBeEmpty) {
18
+ return null;
19
+ }
20
+ const canBeSkip = !emptyRule || (0, rules_2.ruleIsDisabled)(emptyRule);
21
+ const enumRule = (0, rules_1.getRule)(rulePrefix, 'enum');
22
+ const enumRuleList = enumRule && (0, rules_2.enumRuleIsActive)(enumRule) ? (0, rules_2.getEnumList)(enumRule) : null;
23
+ let enumList;
24
+ if (enumRuleList) {
25
+ const enumDescriptions = questionSettings === null || questionSettings === void 0 ? void 0 : questionSettings['enum'];
26
+ if (enumDescriptions) {
27
+ const enumNames = Object.keys(enumDescriptions);
28
+ const longest = Math.max(...enumRuleList.map((enumName) => enumName.length));
29
+ // TODO emoji + title
30
+ enumList = enumRuleList
31
+ .sort((a, b) => enumNames.indexOf(a) - enumNames.indexOf(b))
32
+ .map((enumName) => {
33
+ var _a;
34
+ const enumDescription = (_a = enumDescriptions[enumName]) === null || _a === void 0 ? void 0 : _a.description;
35
+ if (enumDescription) {
36
+ return {
37
+ name: `${enumName}:`.padEnd(longest + 4) + enumDescription,
38
+ value: enumName,
39
+ short: enumName,
40
+ };
41
+ }
42
+ else {
43
+ return enumName;
44
+ }
45
+ });
46
+ }
47
+ else {
48
+ enumList = [...enumRuleList];
49
+ }
50
+ }
51
+ return {
52
+ skip: canBeSkip,
53
+ enumList,
54
+ title: (_a = questionSettings === null || questionSettings === void 0 ? void 0 : questionSettings['description']) !== null && _a !== void 0 ? _a : `${rulePrefix}:`,
55
+ caseFn: (0, case_fn_1.default)((0, rules_1.getRule)(rulePrefix, 'case')),
56
+ fullStopFn: (0, full_stop_fn_1.default)((0, rules_1.getRule)(rulePrefix, 'full-stop')),
57
+ minLength: (0, rules_2.getMinLength)((0, rules_1.getRule)(rulePrefix, 'min-length')),
58
+ maxLength: (0, rules_2.getMaxLength)((0, rules_1.getRule)(rulePrefix, 'max-length')),
59
+ messages: (0, prompts_1.getPromptMessages)(),
60
+ };
61
+ }
62
+ exports.default = default_1;
63
+ //# sourceMappingURL=getRuleQuestionConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getRuleQuestionConfig.js","sourceRoot":"","sources":["../../src/services/getRuleQuestionConfig.ts"],"names":[],"mappings":";;;;;AAEA,8CAAuE;AACvE,0CAAuC;AACvC,+DAAyC;AACzC,yEAAkD;AAClD,0CAQwB;AAExB,mBAAyB,UAAqB;;IAC7C,MAAM,SAAS,GAAG,IAAA,4BAAkB,GAAE,CAAC;IACvC,MAAM,gBAAgB,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAA,eAAO,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAE/C,MAAM,WAAW,GAChB,SAAS,IAAI,IAAA,oBAAY,EAAC,SAAS,CAAC,IAAI,IAAA,wBAAgB,EAAC,SAAS,CAAC,CAAC;IAErE,IAAI,WAAW,EAAE;QAChB,OAAO,IAAI,CAAC;KACZ;IAED,MAAM,SAAS,GAAG,CAAC,SAAS,IAAI,IAAA,sBAAc,EAAC,SAAS,CAAC,CAAC;IAE1D,MAAM,QAAQ,GAAG,IAAA,eAAO,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC7C,MAAM,YAAY,GACjB,QAAQ,IAAI,IAAA,wBAAgB,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvE,IAAI,QAAQ,CAAC;IAEb,IAAI,YAAY,EAAE;QACjB,MAAM,gBAAgB,GAAG,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAG,MAAM,CAAC,CAAC;QAEpD,IAAI,gBAAgB,EAAE;YACrB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAChD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CACvB,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAClD,CAAC;YACF,qBAAqB;YACrB,QAAQ,GAAG,YAAY;iBACrB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;iBAC3D,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;;gBACjB,MAAM,eAAe,GAAG,MAAA,gBAAgB,CAAC,QAAQ,CAAC,0CAAE,WAAW,CAAC;gBAChE,IAAI,eAAe,EAAE;oBACpB,OAAO;wBACN,IAAI,EAAE,GAAG,QAAQ,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,eAAe;wBAC1D,KAAK,EAAE,QAAQ;wBACf,KAAK,EAAE,QAAQ;qBACf,CAAC;iBACF;qBAAM;oBACN,OAAO,QAAQ,CAAC;iBAChB;YACF,CAAC,CAAC,CAAC;SACJ;aAAM;YACN,QAAQ,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;SAC7B;KACD;IAED,OAAO;QACN,IAAI,EAAE,SAAS;QACf,QAAQ;QACR,KAAK,EAAE,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAG,aAAa,CAAC,mCAAI,GAAG,UAAU,GAAG;QAC5D,MAAM,EAAE,IAAA,iBAAS,EAAC,IAAA,eAAO,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC9C,UAAU,EAAE,IAAA,sBAAa,EAAC,IAAA,eAAO,EAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAC3D,SAAS,EAAE,IAAA,oBAAY,EAAC,IAAA,eAAO,EAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAC1D,SAAS,EAAE,IAAA,oBAAY,EAAC,IAAA,eAAO,EAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAC1D,QAAQ,EAAE,IAAA,2BAAiB,GAAE;KAC7B,CAAC;AACH,CAAC;AAzDD,4BAyDC"}
@@ -0,0 +1,29 @@
1
+ declare const _default: {
2
+ messages: {
3
+ skip: string;
4
+ max: string;
5
+ min: string;
6
+ emptyWarning: string;
7
+ upperLimitWarning: string;
8
+ lowerLimitWarning: string;
9
+ };
10
+ questions: {
11
+ type: {
12
+ description: string;
13
+ };
14
+ scope: {
15
+ description: string;
16
+ };
17
+ subject: {
18
+ description: string;
19
+ };
20
+ body: {
21
+ description: string;
22
+ };
23
+ footer: {
24
+ description: string;
25
+ };
26
+ };
27
+ };
28
+ export default _default;
29
+ //# sourceMappingURL=defaultPromptConfigs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultPromptConfigs.d.ts","sourceRoot":"","sources":["../../src/store/defaultPromptConfigs.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wBA4BE"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = {
4
+ messages: {
5
+ skip: '(press enter to skip)',
6
+ max: '(max %d chars)',
7
+ min: '(min %d chars)',
8
+ emptyWarning: '(%s is required)',
9
+ upperLimitWarning: '%s is %d characters longer than the upper limit',
10
+ lowerLimitWarning: '%s is %d characters less than the lower limit',
11
+ },
12
+ questions: {
13
+ type: {
14
+ description: '<type> holds information about the goal of a change.',
15
+ },
16
+ scope: {
17
+ description: '<scope> marks which sub-component of the project is affected',
18
+ },
19
+ subject: {
20
+ description: '<subject> is a short, high-level description of the change',
21
+ },
22
+ body: {
23
+ description: '<body> holds additional information about the change',
24
+ },
25
+ footer: {
26
+ description: '<footer> holds further meta data, such as breaking changes and issue ids',
27
+ },
28
+ },
29
+ };
30
+ //# sourceMappingURL=defaultPromptConfigs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultPromptConfigs.js","sourceRoot":"","sources":["../../src/store/defaultPromptConfigs.ts"],"names":[],"mappings":";;AAAA,kBAAe;IACd,QAAQ,EAAE;QACT,IAAI,EAAE,uBAAuB;QAC7B,GAAG,EAAE,gBAAgB;QACrB,GAAG,EAAE,gBAAgB;QACrB,YAAY,EAAE,kBAAkB;QAChC,iBAAiB,EAAE,iDAAiD;QACpE,iBAAiB,EAAE,+CAA+C;KAClE;IACD,SAAS,EAAE;QACV,IAAI,EAAE;YACL,WAAW,EAAE,sDAAsD;SACnE;QACD,KAAK,EAAE;YACN,WAAW,EACV,8DAA8D;SAC/D;QACD,OAAO,EAAE;YACR,WAAW,EAAE,4DAA4D;SACzE;QACD,IAAI,EAAE;YACL,WAAW,EAAE,sDAAsD;SACnE;QACD,MAAM,EAAE;YACP,WAAW,EACV,0EAA0E;SAC3E;KACD;CACD,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { PromptConfig, UserPromptConfig } from '@commitlint/types';
2
+ export declare function setPromptConfig(newPromptConfig: UserPromptConfig): void;
3
+ export declare function getPromptMessages(): Readonly<PromptConfig['messages']>;
4
+ export declare function getPromptQuestions(): Readonly<PromptConfig['questions']>;
5
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/store/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAYjE,wBAAgB,eAAe,CAAC,eAAe,EAAE,gBAAgB,GAAG,IAAI,CAevE;AAED,wBAAgB,iBAAiB,IAAI,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAEtE;AAED,wBAAgB,kBAAkB,IAAI,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAExE"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getPromptQuestions = exports.getPromptMessages = exports.setPromptConfig = void 0;
7
+ const isPlainObject_1 = __importDefault(require("lodash/isPlainObject"));
8
+ const defaultPromptConfigs_1 = __importDefault(require("./defaultPromptConfigs"));
9
+ const storeKey = Symbol('promptConfig');
10
+ const store = {
11
+ [storeKey]: defaultPromptConfigs_1.default,
12
+ };
13
+ function setPromptConfig(newPromptConfig) {
14
+ const { messages, questions } = newPromptConfig;
15
+ if (messages) {
16
+ const requiredMessageKeys = Object.keys(defaultPromptConfigs_1.default.messages);
17
+ requiredMessageKeys.forEach((key) => {
18
+ const message = messages[key];
19
+ if (typeof message === 'string') {
20
+ store[storeKey]['messages'][key] = message;
21
+ }
22
+ });
23
+ }
24
+ if (questions && (0, isPlainObject_1.default)(questions)) {
25
+ store[storeKey]['questions'] = questions;
26
+ }
27
+ }
28
+ exports.setPromptConfig = setPromptConfig;
29
+ function getPromptMessages() {
30
+ var _a;
31
+ return (_a = (store[storeKey] && store[storeKey]['messages'])) !== null && _a !== void 0 ? _a : {};
32
+ }
33
+ exports.getPromptMessages = getPromptMessages;
34
+ function getPromptQuestions() {
35
+ var _a;
36
+ return (_a = (store[storeKey] && store[storeKey]['questions'])) !== null && _a !== void 0 ? _a : {};
37
+ }
38
+ exports.getPromptQuestions = getPromptQuestions;
39
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/store/prompts.ts"],"names":[],"mappings":";;;;;;AACA,yEAAiD;AACjD,kFAA0D;AAE1D,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAExC,MAAM,KAAK,GAEP;IACH,CAAC,QAAQ,CAAC,EAAE,8BAAoB;CAChC,CAAC;AAEF,SAAgB,eAAe,CAAC,eAAiC;IAChE,MAAM,EAAC,QAAQ,EAAE,SAAS,EAAC,GAAG,eAAe,CAAC;IAC9C,IAAI,QAAQ,EAAE;QACb,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,8BAAoB,CAAC,QAAQ,CAAC,CAAC;QACvE,mBAAmB,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;YAC3C,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBAChC,KAAK,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;aAC3C;QACF,CAAC,CAAC,CAAC;KACH;IAED,IAAI,SAAS,IAAI,IAAA,uBAAa,EAAC,SAAS,CAAC,EAAE;QAC1C,KAAK,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;KACzC;AACF,CAAC;AAfD,0CAeC;AAED,SAAgB,iBAAiB;;IAChC,OAAO,MAAA,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,mCAAI,EAAE,CAAC;AAC/D,CAAC;AAFD,8CAEC;AAED,SAAgB,kBAAkB;;IACjC,OAAO,MAAA,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,mCAAI,EAAE,CAAC;AAChE,CAAC;AAFD,gDAEC"}
@@ -0,0 +1,7 @@
1
+ import { QualifiedRules } from '@commitlint/types';
2
+ import { Rule } from '../types';
3
+ export declare function getRule(key: string, property: string): Rule | undefined;
4
+ export declare function setRules(newRules: QualifiedRules): void;
5
+ export declare type GetRuleMethod = typeof getRule;
6
+ export declare type SetRulesMethod = typeof setRules;
7
+ //# sourceMappingURL=rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/store/rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAC,IAAI,EAAC,MAAM,UAAU,CAAC;AAU9B,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAKvE;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAEvD;AAED,oBAAY,aAAa,GAAG,OAAO,OAAO,CAAC;AAC3C,oBAAY,cAAc,GAAG,OAAO,QAAQ,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setRules = exports.getRule = void 0;
4
+ const storeKey = Symbol('rules');
5
+ const store = {
6
+ [storeKey]: {},
7
+ };
8
+ function getRule(key, property) {
9
+ if (key.split('-').length > 1) {
10
+ return;
11
+ }
12
+ return store[storeKey][`${key}-${property}`];
13
+ }
14
+ exports.getRule = getRule;
15
+ function setRules(newRules) {
16
+ store[storeKey] = newRules;
17
+ }
18
+ exports.setRules = setRules;
19
+ //# sourceMappingURL=rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/store/rules.ts"],"names":[],"mappings":";;;AAGA,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AAEjC,MAAM,KAAK,GAEP;IACH,CAAC,QAAQ,CAAC,EAAE,EAAE;CACd,CAAC;AAEF,SAAgB,OAAO,CAAC,GAAW,EAAE,QAAgB;IACpD,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QAC9B,OAAO;KACP;IACD,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,GAAG,IAAI,QAAQ,EAAE,CAAC,CAAC;AAC9C,CAAC;AALD,0BAKC;AAED,SAAgB,QAAQ,CAAC,QAAwB;IAChD,KAAK,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;AAC5B,CAAC;AAFD,4BAEC"}
package/lib/types.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import { RuleConfigCondition, RuleConfigSeverity } from '@commitlint/types';
2
+ export declare type Rule = Readonly<[RuleConfigSeverity.Disabled]> | Readonly<[RuleConfigSeverity, RuleConfigCondition]> | Readonly<[RuleConfigSeverity, RuleConfigCondition, unknown]>;
3
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAE,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AAE1E,oBAAY,IAAI,GACb,QAAQ,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,GACvC,QAAQ,CAAC,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC,GACnD,QAAQ,CAAC,CAAC,kBAAkB,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC,CAAC"}
package/lib/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { Rule } from '../types';
2
+ export declare type CaseFn = (input: string) => string;
3
+ /**
4
+ * Get forced case for rule
5
+ * @param rule to parse
6
+ * @return transform function applying the enforced case
7
+ */
8
+ export default function getCaseFn(rule?: Rule): CaseFn;
9
+ //# sourceMappingURL=case-fn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"case-fn.d.ts","sourceRoot":"","sources":["../../src/utils/case-fn.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,IAAI,EAAC,MAAM,UAAU,CAAC;AAG9B,oBAAY,MAAM,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;AAE/C;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,CAsCrD"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const camelCase_1 = __importDefault(require("lodash/camelCase"));
7
+ const kebabCase_1 = __importDefault(require("lodash/kebabCase"));
8
+ const snakeCase_1 = __importDefault(require("lodash/snakeCase"));
9
+ const startCase_1 = __importDefault(require("lodash/startCase"));
10
+ const upperFirst_1 = __importDefault(require("lodash/upperFirst"));
11
+ const rules_1 = require("./rules");
12
+ /**
13
+ * Get forced case for rule
14
+ * @param rule to parse
15
+ * @return transform function applying the enforced case
16
+ */
17
+ function getCaseFn(rule) {
18
+ const noop = (input) => input;
19
+ if (!rule || !(0, rules_1.ruleIsActive)(rule) || (0, rules_1.ruleIsNotApplicable)(rule)) {
20
+ return noop;
21
+ }
22
+ const target = rule[2];
23
+ if (Array.isArray(target)) {
24
+ return noop;
25
+ }
26
+ switch (target) {
27
+ case 'camel-case':
28
+ return (input) => (0, camelCase_1.default)(input);
29
+ case 'kebab-case':
30
+ return (input) => (0, kebabCase_1.default)(input);
31
+ case 'snake-case':
32
+ return (input) => (0, snakeCase_1.default)(input);
33
+ case 'pascal-case':
34
+ return (input) => (0, upperFirst_1.default)((0, camelCase_1.default)(input));
35
+ case 'start-case':
36
+ return (input) => (0, startCase_1.default)(input);
37
+ case 'upper-case':
38
+ case 'uppercase':
39
+ return (input) => input.toUpperCase();
40
+ case 'sentence-case':
41
+ case 'sentencecase':
42
+ return (input) => `${input.charAt(0).toUpperCase()}${input.substring(1).toLowerCase()}`;
43
+ case 'lower-case':
44
+ case 'lowercase':
45
+ case 'lowerCase': // Backwards compat config-angular v4
46
+ return (input) => input.toLowerCase();
47
+ default:
48
+ throw new TypeError(`Unknown target case "${target}"`);
49
+ }
50
+ }
51
+ exports.default = getCaseFn;
52
+ //# sourceMappingURL=case-fn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"case-fn.js","sourceRoot":"","sources":["../../src/utils/case-fn.ts"],"names":[],"mappings":";;;;;AAAA,iEAAyC;AACzC,iEAAyC;AACzC,iEAAyC;AACzC,iEAAyC;AACzC,mEAA2C;AAE3C,mCAA0D;AAI1D;;;;GAIG;AACH,SAAwB,SAAS,CAAC,IAAW;IAC5C,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC;IAEtC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAA,oBAAY,EAAC,IAAI,CAAC,IAAI,IAAA,2BAAmB,EAAC,IAAI,CAAC,EAAE;QAC9D,OAAO,IAAI,CAAC;KACZ;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAEvB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QAC1B,OAAO,IAAI,CAAC;KACZ;IAED,QAAQ,MAAM,EAAE;QACf,KAAK,YAAY;YAChB,OAAO,CAAC,KAAa,EAAE,EAAE,CAAC,IAAA,mBAAS,EAAC,KAAK,CAAC,CAAC;QAC5C,KAAK,YAAY;YAChB,OAAO,CAAC,KAAa,EAAE,EAAE,CAAC,IAAA,mBAAS,EAAC,KAAK,CAAC,CAAC;QAC5C,KAAK,YAAY;YAChB,OAAO,CAAC,KAAa,EAAE,EAAE,CAAC,IAAA,mBAAS,EAAC,KAAK,CAAC,CAAC;QAC5C,KAAK,aAAa;YACjB,OAAO,CAAC,KAAa,EAAE,EAAE,CAAC,IAAA,oBAAU,EAAC,IAAA,mBAAS,EAAC,KAAK,CAAC,CAAC,CAAC;QACxD,KAAK,YAAY;YAChB,OAAO,CAAC,KAAa,EAAE,EAAE,CAAC,IAAA,mBAAS,EAAC,KAAK,CAAC,CAAC;QAC5C,KAAK,YAAY,CAAC;QAClB,KAAK,WAAW;YACf,OAAO,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC/C,KAAK,eAAe,CAAC;QACrB,KAAK,cAAc;YAClB,OAAO,CAAC,KAAa,EAAE,EAAE,CACxB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QACxE,KAAK,YAAY,CAAC;QAClB,KAAK,WAAW,CAAC;QACjB,KAAK,WAAW,EAAE,qCAAqC;YACtD,OAAO,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC/C;YACC,MAAM,IAAI,SAAS,CAAC,wBAAwB,MAAM,GAAG,CAAC,CAAC;KACxD;AACF,CAAC;AAtCD,4BAsCC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=full-stop-fn-test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"full-stop-fn-test.d.ts","sourceRoot":"","sources":["../../src/utils/full-stop-fn-test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const types_1 = require("@commitlint/types");
7
+ const full_stop_fn_1 = __importDefault(require("./full-stop-fn"));
8
+ test('should not apply', () => {
9
+ let rule = (0, full_stop_fn_1.default)([types_1.RuleConfigSeverity.Disabled]);
10
+ expect(rule('test.')).toBe('test.');
11
+ expect(rule('test')).toBe('test');
12
+ expect(rule('test..')).toBe('test..');
13
+ expect(rule('')).toBe('');
14
+ rule = (0, full_stop_fn_1.default)();
15
+ expect(rule('test.')).toBe('test.');
16
+ expect(rule('test')).toBe('test');
17
+ expect(rule('test..')).toBe('test..');
18
+ expect(rule('')).toBe('');
19
+ rule = (0, full_stop_fn_1.default)([types_1.RuleConfigSeverity.Disabled, 'always']);
20
+ expect(rule('test.')).toBe('test.');
21
+ expect(rule('test')).toBe('test');
22
+ expect(rule('test..')).toBe('test..');
23
+ expect(rule('')).toBe('');
24
+ rule = (0, full_stop_fn_1.default)([types_1.RuleConfigSeverity.Disabled, 'always', 1]);
25
+ expect(rule('test.')).toBe('test.');
26
+ expect(rule('test')).toBe('test');
27
+ expect(rule('test..')).toBe('test..');
28
+ expect(rule('')).toBe('');
29
+ rule = (0, full_stop_fn_1.default)([types_1.RuleConfigSeverity.Disabled, 'never']);
30
+ expect(rule('test.')).toBe('test.');
31
+ expect(rule('test')).toBe('test');
32
+ expect(rule('test..')).toBe('test..');
33
+ expect(rule('')).toBe('');
34
+ rule = (0, full_stop_fn_1.default)([types_1.RuleConfigSeverity.Disabled, 'never', ['.']]);
35
+ expect(rule('test.')).toBe('test.');
36
+ expect(rule('test')).toBe('test');
37
+ expect(rule('test..')).toBe('test..');
38
+ expect(rule('')).toBe('');
39
+ });
40
+ test('should add full stop', () => {
41
+ let rule = (0, full_stop_fn_1.default)([types_1.RuleConfigSeverity.Error, 'always', '.']);
42
+ expect(rule('test')).toBe('test.');
43
+ expect(rule('test.')).toBe('test.');
44
+ expect(rule('')).toBe('.');
45
+ rule = (0, full_stop_fn_1.default)([types_1.RuleConfigSeverity.Error, 'always', '\n']);
46
+ expect(rule('test')).toBe('test\n');
47
+ expect(rule('test.')).toBe('test.\n');
48
+ expect(rule('')).toBe('\n');
49
+ });
50
+ test('should remove full stop', () => {
51
+ let rule = (0, full_stop_fn_1.default)([types_1.RuleConfigSeverity.Error, 'never', '.']);
52
+ expect(rule('test')).toBe('test');
53
+ expect(rule('test.')).toBe('test');
54
+ expect(rule('')).toBe('');
55
+ expect(rule('test..')).toBe('test');
56
+ expect(rule('test.end')).toBe('test.end');
57
+ rule = (0, full_stop_fn_1.default)([types_1.RuleConfigSeverity.Error, 'never', '\n']);
58
+ expect(rule('test')).toBe('test');
59
+ expect(rule('test.')).toBe('test.');
60
+ expect(rule('test\n\n')).toBe('test');
61
+ expect(rule('test.\n')).toBe('test.');
62
+ });
63
+ //# sourceMappingURL=full-stop-fn-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"full-stop-fn-test.js","sourceRoot":"","sources":["../../src/utils/full-stop-fn-test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Rule } from '../types';
2
+ export declare type FullStopFn = (input: string) => string;
3
+ /**
4
+ * Get forced case for rule
5
+ * @param rule to parse
6
+ * @return transform function applying the enforced case
7
+ */
8
+ export default function getFullStopFn(rule?: Rule): FullStopFn;
9
+ //# sourceMappingURL=full-stop-fn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"full-stop-fn.d.ts","sourceRoot":"","sources":["../../src/utils/full-stop-fn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,UAAU,CAAC;AAG9B,oBAAY,UAAU,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;AAEnD;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,UAAU,CAuB7D"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const rules_1 = require("./rules");
4
+ /**
5
+ * Get forced case for rule
6
+ * @param rule to parse
7
+ * @return transform function applying the enforced case
8
+ */
9
+ function getFullStopFn(rule) {
10
+ const noop = (_) => _;
11
+ if (!rule || !(0, rules_1.ruleIsActive)(rule)) {
12
+ return noop;
13
+ }
14
+ if (typeof rule[2] !== 'string')
15
+ return noop;
16
+ const symbol = rule[2];
17
+ if ((0, rules_1.ruleIsNotApplicable)(rule)) {
18
+ return (input) => {
19
+ while (input.length > 0 && input.endsWith(symbol)) {
20
+ input = input.slice(0, input.length - 1);
21
+ }
22
+ return input;
23
+ };
24
+ }
25
+ else {
26
+ return (input) => {
27
+ return !input.endsWith(symbol) ? input + symbol : input;
28
+ };
29
+ }
30
+ }
31
+ exports.default = getFullStopFn;
32
+ //# sourceMappingURL=full-stop-fn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"full-stop-fn.js","sourceRoot":"","sources":["../../src/utils/full-stop-fn.ts"],"names":[],"mappings":";;AACA,mCAA0D;AAI1D;;;;GAIG;AACH,SAAwB,aAAa,CAAC,IAAW;IAChD,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC;IAE9B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAA,oBAAY,EAAC,IAAI,CAAC,EAAE;QACjC,OAAO,IAAI,CAAC;KACZ;IAED,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE7C,MAAM,MAAM,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC;IAE/B,IAAI,IAAA,2BAAmB,EAAC,IAAI,CAAC,EAAE;QAC9B,OAAO,CAAC,KAAa,EAAE,EAAE;YACxB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBAClD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;aACzC;YACD,OAAO,KAAK,CAAC;QACd,CAAC,CAAC;KACF;SAAM;QACN,OAAO,CAAC,KAAa,EAAE,EAAE;YACxB,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QACzD,CAAC,CAAC;KACF;AACF,CAAC;AAvBD,gCAuBC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=leading-blank-fn-test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leading-blank-fn-test.d.ts","sourceRoot":"","sources":["../../src/utils/leading-blank-fn-test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const types_1 = require("@commitlint/types");
7
+ const leading_blank_fn_1 = __importDefault(require("./leading-blank-fn"));
8
+ test('should not apply', () => {
9
+ let rule = (0, leading_blank_fn_1.default)([types_1.RuleConfigSeverity.Disabled]);
10
+ expect(rule('test')).toBe('test');
11
+ expect(rule('\ntest')).toBe('\ntest');
12
+ expect(rule('aaa\ntest')).toBe('aaa\ntest');
13
+ expect(rule('')).toBe('');
14
+ rule = (0, leading_blank_fn_1.default)();
15
+ expect(rule('test')).toBe('test');
16
+ expect(rule('\ntest')).toBe('\ntest');
17
+ expect(rule('aaa\ntest')).toBe('aaa\ntest');
18
+ expect(rule('')).toBe('');
19
+ });
20
+ test('should add leading blank', () => {
21
+ const rule = (0, leading_blank_fn_1.default)([types_1.RuleConfigSeverity.Error, 'always']);
22
+ expect(rule('test')).toBe('\ntest');
23
+ expect(rule('\ntest')).toBe('\ntest');
24
+ expect(rule('\n\ntest')).toBe('\n\ntest');
25
+ expect(rule('aaa\ntest')).toBe('\naaa\ntest');
26
+ expect(rule('\naaa\ntest')).toBe('\naaa\ntest');
27
+ expect(rule('')).toBe('\n');
28
+ });
29
+ test('should remove leading blank', () => {
30
+ const rule = (0, leading_blank_fn_1.default)([types_1.RuleConfigSeverity.Error, 'never']);
31
+ expect(rule('test')).toBe('test');
32
+ expect(rule('\ntest')).toBe('test');
33
+ expect(rule('\n\ntest')).toBe('test');
34
+ expect(rule('aaa\ntest')).toBe('aaa\ntest');
35
+ expect(rule('\naaa\ntest')).toBe('aaa\ntest');
36
+ expect(rule('\n\n\naaa\ntest')).toBe('aaa\ntest');
37
+ expect(rule('')).toBe('');
38
+ });
39
+ //# sourceMappingURL=leading-blank-fn-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leading-blank-fn-test.js","sourceRoot":"","sources":["../../src/utils/leading-blank-fn-test.ts"],"names":[],"mappings":";;;;;AAAA,6CAAqD;AACrD,0EAAmD;AAEnD,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAC7B,IAAI,IAAI,GAAG,IAAA,0BAAiB,EAAC,CAAC,0BAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5D,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE1B,IAAI,GAAG,IAAA,0BAAiB,GAAE,CAAC;IAC3B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACrC,MAAM,IAAI,GAAG,IAAA,0BAAiB,EAAC,CAAC,0BAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IACrE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1C,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC9C,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAChD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;IACxC,MAAM,IAAI,GAAG,IAAA,0BAAiB,EAAC,CAAC,0BAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IACpE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3B,CAAC,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { Rule } from '../types';
2
+ /**
3
+ * Get forced leading for rule
4
+ * @param rule to parse
5
+ * @return transform function applying the leading
6
+ */
7
+ export default function getLeadingBlankFn(rule?: Rule): (input: string) => string;
8
+ //# sourceMappingURL=leading-blank-fn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leading-blank-fn.d.ts","sourceRoot":"","sources":["../../src/utils/leading-blank-fn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,UAAU,CAAC;AAG9B;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CACxC,IAAI,CAAC,EAAE,IAAI,GACT,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAkB3B"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const rules_1 = require("./rules");
4
+ /**
5
+ * Get forced leading for rule
6
+ * @param rule to parse
7
+ * @return transform function applying the leading
8
+ */
9
+ function getLeadingBlankFn(rule) {
10
+ if (!rule || !(0, rules_1.ruleIsActive)(rule)) {
11
+ return (input) => input;
12
+ }
13
+ const remove = (input) => {
14
+ const fragments = input.split('\n');
15
+ while (fragments.length > 0 && fragments[0] === '') {
16
+ fragments.shift();
17
+ }
18
+ return fragments.join('\n');
19
+ };
20
+ const lead = (input) => {
21
+ const fragments = input.split('\n');
22
+ return fragments[0] === '' ? input : ['', ...fragments].join('\n');
23
+ };
24
+ return !(0, rules_1.ruleIsNotApplicable)(rule) ? lead : remove;
25
+ }
26
+ exports.default = getLeadingBlankFn;
27
+ //# sourceMappingURL=leading-blank-fn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leading-blank-fn.js","sourceRoot":"","sources":["../../src/utils/leading-blank-fn.ts"],"names":[],"mappings":";;AACA,mCAA0D;AAE1D;;;;GAIG;AACH,SAAwB,iBAAiB,CACxC,IAAW;IAEX,IAAI,CAAC,IAAI,IAAI,CAAC,IAAA,oBAAY,EAAC,IAAI,CAAC,EAAE;QACjC,OAAO,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC;KACxC;IAED,MAAM,MAAM,GAAG,CAAC,KAAa,EAAU,EAAE;QACxC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;YACnD,SAAS,CAAC,KAAK,EAAE,CAAC;SAClB;QACD,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,CAAC,KAAa,EAAU,EAAE;QACtC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC,CAAC;IAEF,OAAO,CAAC,IAAA,2BAAmB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;AACnD,CAAC;AApBD,oCAoBC"}
@@ -0,0 +1,30 @@
1
+ import { RuleConfigSeverity } from '@commitlint/types';
2
+ import { Rule } from '../types';
3
+ export declare function ruleIsDisabled(rule: Rule): rule is Readonly<[RuleConfigSeverity.Disabled]>;
4
+ /**
5
+ * Check if a rule definition is active
6
+ * @param rule to check
7
+ * @return if the rule definition is active
8
+ */
9
+ export declare function ruleIsActive<T extends Rule>(rule: T): rule is Exclude<T, Readonly<[RuleConfigSeverity.Disabled]>>;
10
+ /**
11
+ * Check if a rule definition is applicable
12
+ * @param rule to check
13
+ * @return if the rule definition is applicable
14
+ */
15
+ export declare function ruleIsApplicable(rule: Rule): rule is Readonly<[RuleConfigSeverity, 'always']> | Readonly<[RuleConfigSeverity, 'always', unknown]>;
16
+ /**
17
+ * Check if a rule definition is applicable
18
+ * @param rule to check
19
+ * @return if the rule definition is applicable
20
+ */
21
+ export declare function ruleIsNotApplicable(rule: Rule): rule is Readonly<[RuleConfigSeverity, 'never']> | Readonly<[RuleConfigSeverity, 'never', unknown]>;
22
+ export declare function enumRuleIsActive(rule: Rule): rule is Readonly<[
23
+ RuleConfigSeverity.Warning | RuleConfigSeverity.Error,
24
+ 'always',
25
+ string[]
26
+ ]>;
27
+ export declare function getEnumList(rule: Rule): string[];
28
+ export declare function getMaxLength(rule?: Rule): number;
29
+ export declare function getMinLength(rule?: Rule): number;
30
+ //# sourceMappingURL=rules.d.ts.map