UNPKG

commitlint-config-czg-gitmoji

Version:
684 lines (675 loc) โ€ข 15.9 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// ../node_modules/.pnpm/@commitlint+types@19.5.0/node_modules/@commitlint/types/lib/rules.js var RuleConfigSeverity; (function(RuleConfigSeverity2) { RuleConfigSeverity2[RuleConfigSeverity2["Disabled"] = 0] = "Disabled"; RuleConfigSeverity2[RuleConfigSeverity2["Warning"] = 1] = "Warning"; RuleConfigSeverity2[RuleConfigSeverity2["Error"] = 2] = "Error"; })(RuleConfigSeverity || (RuleConfigSeverity = {})); var RuleConfigQuality; (function(RuleConfigQuality2) { RuleConfigQuality2[RuleConfigQuality2["User"] = 0] = "User"; RuleConfigQuality2[RuleConfigQuality2["Qualified"] = 1] = "Qualified"; })(RuleConfigQuality || (RuleConfigQuality = {})); // src/parser.ts var _gitmojiregex = require('@gitmoji/gitmoji-regex'); // ../node_modules/.pnpm/gitmojis@3.14.0/node_modules/gitmojis/dist/index.mjs var $schema$1 = "https://gitmoji.dev/api/gitmojis/schema"; var gitmojis$1 = [ { emoji: "๐ŸŽจ", entity: "&#x1f3a8;", code: ":art:", description: "Improve structure / format of the code.", name: "art", semver: null }, { emoji: "โšก๏ธ", entity: "&#x26a1;", code: ":zap:", description: "Improve performance.", name: "zap", semver: "patch" }, { emoji: "๐Ÿ”ฅ", entity: "&#x1f525;", code: ":fire:", description: "Remove code or files.", name: "fire", semver: null }, { emoji: "๐Ÿ›", entity: "&#x1f41b;", code: ":bug:", description: "Fix a bug.", name: "bug", semver: "patch" }, { emoji: "๐Ÿš‘๏ธ", entity: "&#128657;", code: ":ambulance:", description: "Critical hotfix.", name: "ambulance", semver: "patch" }, { emoji: "โœจ", entity: "&#x2728;", code: ":sparkles:", description: "Introduce new features.", name: "sparkles", semver: "minor" }, { emoji: "๐Ÿ“", entity: "&#x1f4dd;", code: ":memo:", description: "Add or update documentation.", name: "memo", semver: null }, { emoji: "๐Ÿš€", entity: "&#x1f680;", code: ":rocket:", description: "Deploy stuff.", name: "rocket", semver: null }, { emoji: "๐Ÿ’„", entity: "&#ff99cc;", code: ":lipstick:", description: "Add or update the UI and style files.", name: "lipstick", semver: "patch" }, { emoji: "๐ŸŽ‰", entity: "&#127881;", code: ":tada:", description: "Begin a project.", name: "tada", semver: null }, { emoji: "โœ…", entity: "&#x2705;", code: ":white_check_mark:", description: "Add, update, or pass tests.", name: "white-check-mark", semver: null }, { emoji: "๐Ÿ”’๏ธ", entity: "&#x1f512;", code: ":lock:", description: "Fix security or privacy issues.", name: "lock", semver: "patch" }, { emoji: "๐Ÿ”", entity: "&#x1f510;", code: ":closed_lock_with_key:", description: "Add or update secrets.", name: "closed-lock-with-key", semver: null }, { emoji: "๐Ÿ”–", entity: "&#x1f516;", code: ":bookmark:", description: "Release / Version tags.", name: "bookmark", semver: null }, { emoji: "๐Ÿšจ", entity: "&#x1f6a8;", code: ":rotating_light:", description: "Fix compiler / linter warnings.", name: "rotating-light", semver: null }, { emoji: "๐Ÿšง", entity: "&#x1f6a7;", code: ":construction:", description: "Work in progress.", name: "construction", semver: null }, { emoji: "๐Ÿ’š", entity: "&#x1f49a;", code: ":green_heart:", description: "Fix CI Build.", name: "green-heart", semver: null }, { emoji: "โฌ‡๏ธ", entity: "โฌ‡๏ธ", code: ":arrow_down:", description: "Downgrade dependencies.", name: "arrow-down", semver: "patch" }, { emoji: "โฌ†๏ธ", entity: "โฌ†๏ธ", code: ":arrow_up:", description: "Upgrade dependencies.", name: "arrow-up", semver: "patch" }, { emoji: "๐Ÿ“Œ", entity: "&#x1F4CC;", code: ":pushpin:", description: "Pin dependencies to specific versions.", name: "pushpin", semver: "patch" }, { emoji: "๐Ÿ‘ท", entity: "&#x1f477;", code: ":construction_worker:", description: "Add or update CI build system.", name: "construction-worker", semver: null }, { emoji: "๐Ÿ“ˆ", entity: "&#x1F4C8;", code: ":chart_with_upwards_trend:", description: "Add or update analytics or track code.", name: "chart-with-upwards-trend", semver: "patch" }, { emoji: "โ™ป๏ธ", entity: "&#x267b;", code: ":recycle:", description: "Refactor code.", name: "recycle", semver: null }, { emoji: "โž•", entity: "&#10133;", code: ":heavy_plus_sign:", description: "Add a dependency.", name: "heavy-plus-sign", semver: "patch" }, { emoji: "โž–", entity: "&#10134;", code: ":heavy_minus_sign:", description: "Remove a dependency.", name: "heavy-minus-sign", semver: "patch" }, { emoji: "๐Ÿ”ง", entity: "&#x1f527;", code: ":wrench:", description: "Add or update configuration files.", name: "wrench", semver: "patch" }, { emoji: "๐Ÿ”จ", entity: "&#128296;", code: ":hammer:", description: "Add or update development scripts.", name: "hammer", semver: null }, { emoji: "๐ŸŒ", entity: "&#127760;", code: ":globe_with_meridians:", description: "Internationalization and localization.", name: "globe-with-meridians", semver: "patch" }, { emoji: "โœ๏ธ", entity: "&#59161;", code: ":pencil2:", description: "Fix typos.", name: "pencil2", semver: "patch" }, { emoji: "๐Ÿ’ฉ", entity: "&#58613;", code: ":poop:", description: "Write bad code that needs to be improved.", name: "poop", semver: null }, { emoji: "โช๏ธ", entity: "&#9194;", code: ":rewind:", description: "Revert changes.", name: "rewind", semver: "patch" }, { emoji: "๐Ÿ”€", entity: "&#128256;", code: ":twisted_rightwards_arrows:", description: "Merge branches.", name: "twisted-rightwards-arrows", semver: null }, { emoji: "๐Ÿ“ฆ๏ธ", entity: "&#1F4E6;", code: ":package:", description: "Add or update compiled files or packages.", name: "package", semver: "patch" }, { emoji: "๐Ÿ‘ฝ๏ธ", entity: "&#1F47D;", code: ":alien:", description: "Update code due to external API changes.", name: "alien", semver: "patch" }, { emoji: "๐Ÿšš", entity: "&#1F69A;", code: ":truck:", description: "Move or rename resources (e.g.: files, paths, routes).", name: "truck", semver: null }, { emoji: "๐Ÿ“„", entity: "&#1F4C4;", code: ":page_facing_up:", description: "Add or update license.", name: "page-facing-up", semver: null }, { emoji: "๐Ÿ’ฅ", entity: "&#x1f4a5;", code: ":boom:", description: "Introduce breaking changes.", name: "boom", semver: "major" }, { emoji: "๐Ÿฑ", entity: "&#1F371", code: ":bento:", description: "Add or update assets.", name: "bento", semver: "patch" }, { emoji: "โ™ฟ๏ธ", entity: "&#9855;", code: ":wheelchair:", description: "Improve accessibility.", name: "wheelchair", semver: "patch" }, { emoji: "๐Ÿ’ก", entity: "&#128161;", code: ":bulb:", description: "Add or update comments in source code.", name: "bulb", semver: null }, { emoji: "๐Ÿป", entity: "&#x1f37b;", code: ":beers:", description: "Write code drunkenly.", name: "beers", semver: null }, { emoji: "๐Ÿ’ฌ", entity: "&#128172;", code: ":speech_balloon:", description: "Add or update text and literals.", name: "speech-balloon", semver: "patch" }, { emoji: "๐Ÿ—ƒ๏ธ", entity: "&#128451;", code: ":card_file_box:", description: "Perform database related changes.", name: "card-file-box", semver: "patch" }, { emoji: "๐Ÿ”Š", entity: "&#128266;", code: ":loud_sound:", description: "Add or update logs.", name: "loud-sound", semver: null }, { emoji: "๐Ÿ”‡", entity: "&#128263;", code: ":mute:", description: "Remove logs.", name: "mute", semver: null }, { emoji: "๐Ÿ‘ฅ", entity: "&#128101;", code: ":busts_in_silhouette:", description: "Add or update contributor(s).", name: "busts-in-silhouette", semver: null }, { emoji: "๐Ÿšธ", entity: "&#128696;", code: ":children_crossing:", description: "Improve user experience / usability.", name: "children-crossing", semver: "patch" }, { emoji: "๐Ÿ—๏ธ", entity: "&#1f3d7;", code: ":building_construction:", description: "Make architectural changes.", name: "building-construction", semver: null }, { emoji: "๐Ÿ“ฑ", entity: "&#128241;", code: ":iphone:", description: "Work on responsive design.", name: "iphone", semver: "patch" }, { emoji: "๐Ÿคก", entity: "&#129313;", code: ":clown_face:", description: "Mock things.", name: "clown-face", semver: null }, { emoji: "๐Ÿฅš", entity: "&#129370;", code: ":egg:", description: "Add or update an easter egg.", name: "egg", semver: "patch" }, { emoji: "๐Ÿ™ˆ", entity: "&#8bdfe7;", code: ":see_no_evil:", description: "Add or update a .gitignore file.", name: "see-no-evil", semver: null }, { emoji: "๐Ÿ“ธ", entity: "&#128248;", code: ":camera_flash:", description: "Add or update snapshots.", name: "camera-flash", semver: null }, { emoji: "โš—๏ธ", entity: "&#x2697;", code: ":alembic:", description: "Perform experiments.", name: "alembic", semver: "patch" }, { emoji: "๐Ÿ”๏ธ", entity: "&#128269;", code: ":mag:", description: "Improve SEO.", name: "mag", semver: "patch" }, { emoji: "๐Ÿท๏ธ", entity: "&#127991;", code: ":label:", description: "Add or update types.", name: "label", semver: "patch" }, { emoji: "๐ŸŒฑ", entity: "&#127793;", code: ":seedling:", description: "Add or update seed files.", name: "seedling", semver: null }, { emoji: "๐Ÿšฉ", entity: "&#x1F6A9;", code: ":triangular_flag_on_post:", description: "Add, update, or remove feature flags.", name: "triangular-flag-on-post", semver: "patch" }, { emoji: "๐Ÿฅ…", entity: "&#x1F945;", code: ":goal_net:", description: "Catch errors.", name: "goal-net", semver: "patch" }, { emoji: "๐Ÿ’ซ", entity: "&#x1f4ab;", code: ":dizzy:", description: "Add or update animations and transitions.", name: "dizzy", semver: "patch" }, { emoji: "๐Ÿ—‘๏ธ", entity: "&#x1F5D1;", code: ":wastebasket:", description: "Deprecate code that needs to be cleaned up.", name: "wastebasket", semver: "patch" }, { emoji: "๐Ÿ›‚", entity: "&#x1F6C2;", code: ":passport_control:", description: "Work on code related to authorization, roles and permissions.", name: "passport-control", semver: "patch" }, { emoji: "๐Ÿฉน", entity: "&#x1FA79;", code: ":adhesive_bandage:", description: "Simple fix for a non-critical issue.", name: "adhesive-bandage", semver: "patch" }, { emoji: "๐Ÿง", entity: "&#x1F9D0;", code: ":monocle_face:", description: "Data exploration/inspection.", name: "monocle-face", semver: null }, { emoji: "โšฐ๏ธ", entity: "&#x26B0;", code: ":coffin:", description: "Remove dead code.", name: "coffin", semver: null }, { emoji: "๐Ÿงช", entity: "&#x1F9EA;", code: ":test_tube:", description: "Add a failing test.", name: "test-tube", semver: null }, { emoji: "๐Ÿ‘”", entity: "&#128084;", code: ":necktie:", description: "Add or update business logic.", name: "necktie", semver: "patch" }, { emoji: "๐Ÿฉบ", entity: "&#x1FA7A;", code: ":stethoscope:", description: "Add or update healthcheck.", name: "stethoscope", semver: null }, { emoji: "๐Ÿงฑ", entity: "&#x1f9f1;", code: ":bricks:", description: "Infrastructure related changes.", name: "bricks", semver: null }, { emoji: "๐Ÿง‘โ€๐Ÿ’ป", entity: "&#129489;&#8205;&#128187;", code: ":technologist:", description: "Improve developer experience.", name: "technologist", semver: null }, { emoji: "๐Ÿ’ธ", entity: "&#x1F4B8;", code: ":money_with_wings:", description: "Add sponsorships or money related infrastructure.", name: "money-with-wings", semver: null }, { emoji: "๐Ÿงต", entity: "&#x1F9F5;", code: ":thread:", description: "Add or update code related to multithreading or concurrency.", name: "thread", semver: null }, { emoji: "๐Ÿฆบ", entity: "&#x1F9BA;", code: ":safety_vest:", description: "Add or update code related to validation.", name: "safety-vest", semver: null } ]; var gitmojisJson = { $schema: $schema$1, gitmojis: gitmojis$1 }; var gitmojis = gitmojisJson.gitmojis; // src/rule.ts var gitmojiCodes = gitmojis.map((gitmoji) => gitmoji.code); var gitmojiUnicode = gitmojis.map((gitmoji) => gitmoji.emoji); var gitmojiRule = (parsed) => { let errorMsg = "passed"; let pass; const { emojiType } = parsed; if (!emojiType) { pass = false; errorMsg = "Your commit type is empty, please add your commit message."; return [pass, errorMsg]; } pass = gitmojiUnicode.includes(emojiType) || gitmojiCodes.includes(emojiType); if (!pass) { errorMsg = `${emojiType} is not in the correct gitmoji list, please check the emoji code on https://gitmoji.dev/.`; } return [pass, errorMsg]; }; // src/plugin.ts var gitmojiPlugin = { rules: { "valid-gitmoji-type": gitmojiRule } }; // src/parser.ts var gitmojiCodeStr = _gitmojiregex.gitmojiCodeRegex.source; var gitmojiUnicodeStr = _gitmojiregex.gitmojiUnicodeRegex.source; var emojiStr = _gitmojiregex.emojiRegex.source; var headerPattern = new RegExp(`^(?<emojiType>${gitmojiCodeStr}|(?:${gitmojiUnicodeStr})|(?:${emojiStr}))\\s?(?:\\((?<scope>.*)\\))?!?:?\\s(?<subject>.+)$`); var parserOpts = { headerPattern, headerCorrespondence: ["emojiType", "scope", "subject"], noteKeywords: ["BREAKING CHANGE", "BREAKING CHANGES"], revertPattern: /^(?<emojiType>โช๏ธ|:rewind:):\s(?<subject>[\s\S]*?)\sThis reverts commit (?<hash>\w+)\./i, revertCorrespondence: ["subject", "hash"] }; var parserPreset = { parserOpts, plugins: { gitmoji: gitmojiPlugin } }; // src/index.ts var rules = { // gitmoji rule "valid-gitmoji-type": [RuleConfigSeverity.Error, "always"], // use gitmoji type "type-enum": [RuleConfigSeverity.Error, "always", gitmojiUnicode], // content start with blank line "body-leading-blank": [RuleConfigSeverity.Error, "always"], // end with blank line "footer-leading-blank": [RuleConfigSeverity.Error, "always"], // title max length 100 characters "header-max-length": [RuleConfigSeverity.Error, "always", 100], // Scope always lower case "scope-case": [RuleConfigSeverity.Error, "always", "lower-case"], // subject can not be empty "subject-empty": [RuleConfigSeverity.Error, "never"], // subject can not use dot "subject-full-stop": [RuleConfigSeverity.Error, "never", "."] }; var config = { rules, parserPreset, plugins: [gitmojiPlugin] }; var src_default = config; exports.default = src_default;