ccommit
Version:
😜 ➕ 👔 🟰 ccommit Conventional Commit Generator that interprets commit types from gitmoji and conventional
50 lines (42 loc) • 19 kB
JavaScript
import Oe from'meow';import M from'process';import je from'enquirer';import $ from'fs';import {execa}from'execa';import p from'ansi-colors';import {execSync}from'child_process';import {join}from'path';var C={COMMIT:"commit",HOOK:"hook",LIST:"list"},d={CONVENTIONAL:"conventional",CONVENTIONAL_NO_EMOJI:"conventional-no-emoji",GITMOJI:"gitmoji"},f={CLIENT:"client",HOOK:"hook"},T={EMOJI:"emoji",TYPE:"type"},n=Object.freeze({BREAKING:"breaking",COMMIT:"commit",DRYRUN:"dryrun",EMOJI:"emoji",HELP:"help",HOOK:"hook",LIST:"list",SKIP:"skip",VERSION:"version"}),G={[d.CONVENTIONAL]:"{type}{scope}{breaking}: {emoji}{title}",[d.CONVENTIONAL_NO_EMOJI]:"{type}{scope}{breaking}: {title}",[d.GITMOJI]:"{emoji}{breaking}{scope}{title}"},s={MESSAGES:{COMMAND_LINE_WITHOUT_REQUIRED:"\u276F Command line option requires both: --title, --type",COMMIT_FAIL:`\u276F
\u276F Oops! An error occurred. There is likely additional logging output above.
\u276F You can run the same commit with this command:
\u276F
{REPLACE}
`,MODE_CONFLICT:"\u276F Please choose one or the other: --commit, -c | --hook, -u",REPLACE:"{REPLACE}",STAGED_FILES:"\u276F There are no staged files for git. Did you mean to do a dry-run (-n)?",TYPE_INCORRECT:"\u276F There is no gitmoji/type associated with: {REPLACE}"},TYPES:{ERROR:"error",INFO:"info",SUCCESS:"success",WARNING:"warning"}},m=Object.freeze({FORMAT:"format",MESSAGE:"message",SCOPE:"scope",TITLE:"title",TYPE:"type"}),y={MAX:12,MIN:3},o={MAJOR:"major",MINOR:"minor",NULL:"null",PATCH:"patch"},c={MAX:48,MAX_SWAG:40,MIN:3,MIN_SWAG:15},D={MAX:15};var w=()=>execa("git",["rev-parse","--absolute-git-dir"]).then(({stdout:e})=>{($.existsSync(e+"/rebase-merge")||$.existsSync(e+"/rebase-apply"))&&M.exit(0);}),Y=4,B=()=>new Promise(e=>{let t=M.argv[Y];t&&(t.startsWith("commit")||t.startsWith("merge"))&&M.exit(0),e();}),v=()=>B().then(w);var oe=[{code:":wheelchair:",description:"Improve Accessibility",emoji:"\u267F\uFE0F",emojiLength:1,semver:o.PATCH,type:"access"},{code:":chart_with_upwards_trend:",description:"Add or Update Analytics or Track Code",emoji:"\u{1F4C8}",emojiLength:1,semver:o.PATCH,type:"analytics"},{code:":dizzy:",description:"Add or Update Animations and Transitions",emoji:"\u{1F4AB}",emojiLength:1,semver:o.PATCH,type:"animation"},{code:":building_construction:",description:"Make Architectural Changes",emoji:"\u{1F3D7}\uFE0F",emojiLength:0,semver:o.NULL,type:"arch"},{code:":bento:",description:"Add or Update Assets",emoji:"\u{1F371}",emojiLength:1,semver:o.PATCH,type:"assets"},{code:":beers:",description:"Write Code Drunkenly",emoji:"\u{1F37B}",emojiLength:1,semver:o.NULL,type:"beer"},{code:":boom:",description:"Introduce Breaking Changes",emoji:"\u{1F4A5}",emojiLength:1,semver:o.MAJOR,type:"breaking"},{code:":hammer:",description:"Add or Update Development Scripts",emoji:"\u{1F528}",emojiLength:1,semver:o.NULL,type:"build"},{code:":goal_net:",description:"Catch Errors",emoji:"\u{1F945}",emojiLength:1,semver:o.PATCH,type:"catch"},{code:":computer_disk:",description:"Changes That Don\u2019t Modify Src or Test Files",emoji:"\u{1F4BD}\uFE0F",emojiLength:1,semver:o.NULL,type:"chore"},{code:":construction_worker:",description:"Add or Update CI Build System",emoji:"\u{1F477}",emojiLength:1,semver:o.NULL,type:"ci"},{code:":wastebasket:",description:"Deprecate Code That Needs to Be Cleaned Up",emoji:"\u{1F5D1}\uFE0F",emojiLength:0,semver:o.PATCH,type:"clean"},{code:":alien:",description:"Update Code Due to External API Changes",emoji:"\u{1F47D}\uFE0F",emojiLength:1,semver:o.PATCH,type:"compat"},{code:":thread:",description:"Add or Update Code Related to Multithreading or Concurrency",emoji:"\u{1F9F5}",emojiLength:1,semver:o.NULL,type:"concurrency"},{code:":wrench:",description:"Add or Update Configuration Files",emoji:"\u{1F527}",emojiLength:1,semver:o.PATCH,type:"config"},{code:":busts_in_silhouette:",description:"Add or Update Contributor(s)",emoji:"\u{1F465}",emojiLength:1,semver:o.NULL,type:"contrib-add"},{code:":monocle_face:",description:"Data Exploration/inspection",emoji:"\u{1F9D0}",emojiLength:1,semver:o.NULL,type:"data"},{code:":card_file_box:",description:"Perform Database Related Changes",emoji:"\u{1F5C3}\uFE0F",emojiLength:0,semver:o.PATCH,type:"db"},{code:":heavy_plus_sign:",description:"Add a Dependency",emoji:"\u2795",emojiLength:1,semver:o.PATCH,type:"dep-add"},{code:":heavy_minus_sign:",description:"Remove a Dependency",emoji:"\u2796",emojiLength:1,semver:o.PATCH,type:"dep-rm"},{code:":package:",description:"Add or Update Compiled Files or Packages",emoji:"\u{1F4E6}\uFE0F",emojiLength:1,semver:o.PATCH,type:"dep-up"},{code:":rocket:",description:"Deploy Stuff",emoji:"\u{1F680}",emojiLength:1,semver:o.NULL,type:"deploy"},{code:":bulb:",description:"Add or Update Comments in Source Code",emoji:"\u{1F4A1}",emojiLength:1,semver:o.NULL,type:"docs-code"},{code:":memo:",description:"Add or Update Documentation",emoji:"\u{1F4DD}",emojiLength:1,semver:o.NULL,type:"docs"},{code:":arrow_down:",description:"Downgrade Dependencies",emoji:"\u2B07\uFE0F",emojiLength:0,semver:o.PATCH,type:"downgrade"},{code:":technologist:",description:"Improve Developer Experience",emoji:"\u{1F4BB}",emojiLength:1,semver:o.NULL,type:"dx"},{code:":egg:",description:"Add or Update an Easter Egg",emoji:"\u{1F95A}",emojiLength:1,semver:o.PATCH,type:"egg"},{code:":alembic:",description:"Perform Experiments",emoji:"\u2697\uFE0F",emojiLength:0,semver:o.PATCH,type:"experiment"},{code:":sparkles:",description:"Introduce New Features",emoji:"\u2728",emojiLength:1,semver:o.MINOR,type:"feat"},{code:":bug:",description:"Fix a Bug",emoji:"\u{1F41B}",emojiLength:1,semver:o.PATCH,type:"fix"},{code:":green_heart:",description:"Fix CI Build",emoji:"\u{1F49A}",emojiLength:1,semver:o.NULL,type:"fix-ci"},{code:":triangular_flag_on_post:",description:"Add Update or Remove Feature Flags",emoji:"\u{1F6A9}",emojiLength:1,semver:o.PATCH,type:"flags"},{code:":stethoscope:",description:"Add or Update Healthcheck",emoji:"\u{1FA7A}",emojiLength:1,semver:o.NULL,type:"healthcheck"},{code:":ambulance:",description:"Critical Hotfix",emoji:"\u{1F691}\uFE0F",emojiLength:1,semver:o.PATCH,type:"hotfix"},{code:":globe_with_meridians:",description:"Internationalization and Localization",emoji:"\u{1F310}",emojiLength:1,semver:o.PATCH,type:"i18n"},{code:":see_no_evil:",description:"Add or Update a Gitignore File.",emoji:"\u{1F648}",emojiLength:1,semver:o.NULL,type:"ignore"},{code:":bricks:",description:"Infrastructure Related Changes",emoji:"\u{1F9F1}",emojiLength:1,semver:o.NULL,type:"inf"},{code:":tada:",description:"Begin a Project",emoji:"\u{1F389}",emojiLength:1,semver:o.PATCH,type:"init"},{code:":iphone:",description:"Work on Responsive Design",emoji:"\u{1F4F1}",emojiLength:1,semver:o.PATCH,type:"iphone"},{code:":page_facing_up:",description:"Add or Update License",emoji:"\u{1F4C4}",emojiLength:1,semver:o.NULL,type:"license"},{code:":rotating_light:",description:"Fix Compiler / Linter Warnings",emoji:"\u{1F6A8}",emojiLength:1,semver:o.NULL,type:"lint"},{code:":loud_sound:",description:"Add or Update Logs",emoji:"\u{1F50A}",emojiLength:1,semver:o.NULL,type:"log-add"},{code:":mute:",description:"Remove Logs",emoji:"\u{1F507}",emojiLength:1,semver:o.NULL,type:"log-rm"},{code:":necktie:",description:"Add or Update Business Logic",emoji:"\u{1F454}",emojiLength:1,semver:o.PATCH,type:"logic"},{code:":twisted_rightwards_arrows:",description:"Merge Branches",emoji:"\u{1F500}",emojiLength:1,semver:o.NULL,type:"merge"},{code:":clown_face:",description:"Mock Things",emoji:"\u{1F921}",emojiLength:1,semver:o.NULL,type:"mock"},{code:":truck:",description:"Move or Rename Resources (Eg.: Files Paths Routes).",emoji:"\u{1F69A}",emojiLength:1,semver:o.NULL,type:"mv"},{code:":adhesive_bandage:",description:"Simple Fix for a Non-Critical Issue",emoji:"\u{1FA79}",emojiLength:1,semver:o.PATCH,type:"patch"},{code:":zap:",description:"Improve Performance",emoji:"\u26A1\uFE0F",emojiLength:1,semver:o.PATCH,type:"perf"},{code:":poop:",description:"Write Bad Code That Needs to Be Improved",emoji:"\u{1F4A9}",emojiLength:1,semver:o.NULL,type:"poo"},{code:":fire:",description:"Remove Code or Files",emoji:"\u{1F525}",emojiLength:1,semver:o.NULL,type:"prune"},{code:":pushpin:",description:"Pin Dependencies to Specific Versions",emoji:"\u{1F4CC}",emojiLength:1,semver:o.PATCH,type:"pushpin"},{code:":recycle:",description:"Refactor Code",emoji:"\u267B\uFE0F",emojiLength:0,semver:o.NULL,type:"refactor"},{code:":bookmark:",description:"Release / Version Tags",emoji:"\u{1F516}",emojiLength:1,semver:o.NULL,type:"release"},{code:":rewind:",description:"Revert Changes",emoji:"\u23EA\uFE0F",emojiLength:1,semver:o.PATCH,type:"revert"},{code:":coffin:",description:"Remove Dead Code",emoji:"\u26B0\uFE0F",emojiLength:0,semver:o.NULL,type:"rip"},{code:":passport_control:",description:"Work on Code Related to Authorization Roles and Permissions",emoji:"\u{1F6C2}",emojiLength:1,semver:o.PATCH,type:"roles"},{code:":fast_forward:",description:"Create Rollforward Version",emoji:"\u23E9\uFE0F",emojiLength:1,semver:o.NULL,type:"rollforward"},{code:":rocket:",description:"Custom Type for CI/CD to Hook into Run Build Override",emoji:"\u{1F680}\uFE0F",emojiLength:1,semver:o.PATCH,type:"run-build"},{code:":closed_lock_with_key:",description:"Add or Update Secrets",emoji:"\u{1F510}",emojiLength:1,semver:o.NULL,type:"secrets"},{code:":lock:",description:"Fix Security Issues",emoji:"\u{1F512}\uFE0F",emojiLength:1,semver:o.PATCH,type:"security"},{code:":seedling:",description:"Add or Update Seed Files",emoji:"\u{1F331}",emojiLength:1,semver:o.NULL,type:"seed"},{code:":mag:",description:"Improve Seo",emoji:"\u{1F50D}\uFE0F",emojiLength:1,semver:o.PATCH,type:"seo"},{code:":camera_flash:",description:"Add or Update Snapshots",emoji:"\u{1F4F8}",emojiLength:1,semver:o.NULL,type:"snapshot"},{code:":money_with_wings:",description:"Add Sponsorships or Money Related Infrastructure",emoji:"\u{1F4B8}",emojiLength:1,semver:o.NULL,type:"sponsor"},{code:":art:",description:"Improve Structure / Format of the Code",emoji:"\u{1F3A8}",emojiLength:1,semver:o.NULL,type:"style"},{code:":test_tube:",description:"Add a Failing Test",emoji:"\u{1F9EA}",emojiLength:1,semver:o.NULL,type:"test-fail"},{code:":white_check_mark:",description:"Add Update or Pass Tests",emoji:"\u2705",emojiLength:1,semver:o.NULL,type:"test"},{code:":speech_balloon:",description:"Add or Update Text and Literals",emoji:"\u{1F4AC}",emojiLength:1,semver:o.PATCH,type:"texts"},{code:":label:",description:"Add or Update Types",emoji:"\u{1F3F7}\uFE0F",emojiLength:0,semver:o.PATCH,type:"types"},{code:":pencil2:",description:"Fix Typos",emoji:"\u270F\uFE0F",emojiLength:0,semver:o.PATCH,type:"typo"},{code:":lipstick:",description:"Add or Update the UI and Style Files",emoji:"\u{1F484}",emojiLength:1,semver:o.PATCH,type:"ui"},{code:":arrow_up:",description:"Upgrade Dependencies",emoji:"\u2B06\uFE0F",emojiLength:0,semver:o.PATCH,type:"upgrade"},{code:":children_crossing:",description:"Improve User Experience / Usability",emoji:"\u{1F6B8}",emojiLength:1,semver:o.PATCH,type:"ux"},{code:":safety_vest:",description:"Add or update code related to validation",emoji:"\u{1F9BA}",emojiLength:1,semver:o.PATCH,type:"validation"},{code:":construction:",description:"Work in Progress",emoji:"\u{1F6A7}",emojiLength:1,semver:o.NULL,type:"wip"}],L=oe;var E=(e,t,i)=>{let r=L.findIndex(a=>a[t]===e);return L[r]?.[i]};var ie=(e,t)=>[n.COMMIT,n.HOOK].includes(e)?{dryrun:t[n.DRYRUN],emoji:t[n.EMOJI],format:t[m.FORMAT]===d.CONVENTIONAL?t[n.EMOJI]?d.CONVENTIONAL:d.CONVENTIONAL_NO_EMOJI:d.GITMOJI,message:t[m.MESSAGE],mode:e===n.HOOK?f.HOOK:f.CLIENT,scope:t[m.SCOPE],skip:t[n.SKIP],title:t[m.TITLE],type:t[m.TYPE]}:null,N=(e,t)=>{let i=e.flags,r=Object.keys(i).map(h=>i[h]&&h).find(h=>t[h]),a=P();!i[n.DRYRUN]&&!a&&(console.log(g(s.TYPES.ERROR,s.MESSAGES.STAGED_FILES)),M.exit(2)),i[n.COMMIT]&&i[n.HOOK]&&(console.log(g(s.TYPES.ERROR,s.MESSAGES.MODE_CONFLICT)),M.exit(2)),(i[m.MESSAGE]||i[m.SCOPE]||i[m.TITLE]||i[m.TYPE])&&(i[n.SKIP]=true),i[n.SKIP]&&(i[m.TITLE]&&i[m.TYPE]?i[n.SKIP]=true:(i[n.SKIP]=false,console.log(g(s.TYPES.ERROR,s.MESSAGES.COMMAND_LINE_WITHOUT_REQUIRED)),i[m.TITLE]=void 0,i[m.TYPE]=void 0));let l=ie(r,i);return t[r]?t[r](l):e.showHelp()};var A=({emoji:e,emojiLength:t})=>t===0?`${e} `:`${e} `,O=e=>e?.padEnd(D.MAX),R=e=>e.map(({description:t,emoji:i,emojiLength:r,type:a})=>{console.log(`${A({emoji:i,emojiLength:r})} ${O(a)} ${t}`);}),b=(e,t)=>{let i=G[e?.format],r=t?.gitmoji?`${t?.gitmoji} `:"",a=t?.scope?`(${t?.scope.replace(/ {2}/g,"--").replace(/ /g,"-").toLowerCase().trim()})`:"";return a=a&&e?.format===d.GITMOJI?`${a} `:a,i.replace(/\{emoji\}/g,r).replace(/\{scope\}/g,a).replace(/\{breaking\}/g,"").replace(/\{title\}/g,t?.title).replace(/\{type\}/g,t?.type)};var g=(e,t,i)=>{let r=i?t.replace(/\{REPLACE\}/g,i):t;return r=`
${r}
`,p.magenta.bold(r)},_=(e,t,i)=>{let r=i?t.replace(/\{REPLACE\}/g,i):t;return e===s.TYPES.ERROR?p.red.bold(r):e===s.TYPES.INFO?p.white.bold(r):e===s.TYPES.WARNING?p.yellow.bold(r):p.green.bold(r)};var U=e=>{let t=e.length,i=t.toString(),r=s.TYPES.SUCCESS;return t<c.MIN||t>c.MAX?r=s.TYPES.ERROR:(t<c.MIN_SWAG||t>c.MAX_SWAG)&&(r=s.TYPES.WARNING),_(r,s.MESSAGES.REPLACE,i)};var x=()=>{let e=process.platform==="win32"?" nul":"/dev/null";return execSync("git rev-parse --show-toplevel 2>"+e).toString().trim()};var I=()=>{let e,t="";e=execSync("git rev-parse --abbrev-ref HEAD"),e=e.toString().trim().split("/");let i=e[0],a=(e[1]?e[1]:i).split("-"),l=a[0],h=a[1]?a[1]:l,ee=`${l}-${h}`;return !isNaN(parseFloat(h))&&isFinite(parseFloat(h))&&(t=ee),t};var P=()=>!!execSync("git diff --name-only --staged").toString().trim();var j=e=>{console.log(p.magenta.bold(`\u276F dry-run mode: ${e}
`));};var k=()=>{M.on("SIGINT",()=>{console.log(p.magenta.bold("\u276F [ccommit] interrupted")),M.exit(0);});};var ce=()=>L.map(({description:e,emoji:t,emojiLength:i,type:r})=>({description:e,emoji:t,emojiLength:i,type:r})),H=(e,t)=>{let r=`Character Count (${U(e)}/${t})`;return `${p.dim.cyan("\u203A")} ${p.dim.bold(r)}`},pe=e=>e.submitted?e.cancelled?p.magenta("\u2716"):p.green("\u2714"):p.cyan("?"),de=[{default:"(y/N)",format(e){let t=e?"yes":"no";return this.state.submitted?p.green(t):p.dim(t)},initial:false,message:"Is there a breaking change?",name:"breaking",prefix(){return pe(this.state)},styles:{primary:p.white},type:"confirm"},{footer(){return H(this.state.input,c.MAX)},message:"Please share breaking change info",name:"messageBreaking",result(e){return e?`BREAKING CHANGE: ${e.trim()}`:""},skip(){return !this.state.answers.breaking},type:"input",validate(e){let t=e?.length||0;return this.state.answers.breaking?t<15?"Must have at least 15 characters":t>c.MAX?`Cannot exceed ${c.MAX} characters`:true:true}},{choices:ce().map(({description:e,emoji:t,emojiLength:i,type:r})=>{let a=t;return {name:` ${A({emoji:t,emojiLength:i})} ${O(r)} ${e}`,value:a}}),footer(){return `${p.dim.cyan("\u203A")} ${p.dim.bold("scroll up and down to reveal more \u2195")}`},highlight(e){return p.cyanBright(e)},limit:18,message:"Please choose a commit type",name:"gitmoji",type:"autocomplete"},{footer(){return H(this.state.input,y.MAX)},format(){return this.state.submitted?p.green(this.value):this.value},message:"Please share the scope (if any)",name:"scope",type:"input",validate(e){let t=e.length;return t===0?true:t<y.MIN?`Must have at least ${y.MIN} characters`:t>y.MAX?`Cannot exceed ${y.MAX} characters`:true}},{footer(){return H(this.state.input,c.MAX)},hint(){return this.state.initial?"\u2026 tab to use initial value":""},initial:I()?`${I()} `:"",message:"Please enter the commit title",name:"title",type:"input",validate(e){let t=e.length;return t<c.MIN?`Must have at least ${c.MIN} characters`:t>c.MAX?`Cannot exceed ${c.MAX} characters`:true}},{footer(){return `${p.dim.cyan("\u203A")} ${p.dim("Return twice to submit/skip: \u2B91 \u2B91")}`},message:"Please share a more detailed commit message (if applicable)",multiline:true,name:"message",result(e){return e===`
`?"":e},type:"input"}],J=de;var he=async(e,t)=>{try{let i=e?.subject,r=e?.message,a=e?.messageBreaking,l=["commit","-m",i];r&&l.push("-m",r),a&&l.push("-m",a),t?.dryrun?j(["git",...l].join(" ")):await execa("git",l,{buffer:!1,stdio:"inherit"});}catch(i){console.error(g(s.TYPES.ERROR,s.MESSAGES.COMMIT_FAIL,i.escapedCommand)),M.exit(1);}},V=he;var fe=join(x(),".git","COMMIT_EDITMSG"),ye=(e,t)=>{try{let i=e?.subject;e?.message&&e?.message!==`
`&&(i+=`
${e.message}`),e?.messageBreaking&&e?.messageBreaking!==`
`&&(i+=`
${e.messageBreaking}`),t?.dryrun?j(i):$.writeFileSync(fe,i);}catch(i){console.error(i),M.exit(1);}finally{M.exit(0);}},z=ye;var{prompt:Ce}=je,q=async e=>{let t={};return e.skip?(t=e,t.gitmoji=E(t.type,T.TYPE,T.EMOJI),t.gitmoji||(console.log(g(s.TYPES.ERROR,s.MESSAGES.TYPE_INCORRECT,t.type)),M.exit(2))):await Ce(J).then(i=>(i.type=E(i.gitmoji,T.EMOJI,T.TYPE),i)).then(i=>{t=i;}).catch(console.error),t.subject=t?b(e,t):"",e.mode===f.HOOK?z(t,e):V(t,e)},Ee=e=>e.mode===f.HOOK?(k(),v().then(()=>q(e))):q(e),Q=Ee;var S=Q;var Ae=()=>R(L),Z=Ae;var F=Z;var Ie=Oe(`
Usage
$ ccommit -c
Flags
--${n.BREAKING}, -b \u{1F4A5} Breaking Change
--${n.COMMIT}, -c \u{1F4BD} Mode: Client
--${n.DRYRUN}, -n \u{1F3BD} Mode: Dry Run
--${n.EMOJI}, -e \u{1F61C} Emoji (default)
--${n.HOOK}, -u \u{1FA9D} Mode: Hook
--${n.LIST}, -l \u{1F4D6} List all types
--${n.VERSION}, -v \u{1F4E6} Print installed version
Options
--${m.FORMAT} \u{1F61C} Commit Format: conventional|gitmoji (default)
--${m.MESSAGE} \u{1F4DD} Commit Message
--${m.SCOPE} \u{1F52C} Commit Scope
--${m.TITLE} \u{1F4D3} Commit Title
--${m.TYPE} \u2728 Commit Type
Notes
- Pass any non-format options the following will be required: --title, --type
- If you do not pass any options the Conventional Commit Generator prompt will run
- Branch Name detection is enabled to pre-populate Issue Tracker information in prompt
`,{flags:{[n.BREAKING]:{default:false,shortFlag:"b",type:"boolean"},[n.COMMIT]:{shortFlag:"c",type:"boolean"},[n.DRYRUN]:{shortFlag:"n",type:"boolean"},[n.EMOJI]:{default:true,shortFlag:"e",type:"boolean"},[n.HELP]:{shortFlag:"h",type:"boolean"},[n.HOOK]:{shortFlag:"u",type:"boolean"},[n.LIST]:{shortFlag:"l",type:"boolean"},[n.SKIP]:{default:false,type:"boolean"},[n.VERSION]:{shortFlag:"v",type:"boolean"},[m.FORMAT]:{default:d.GITMOJI,type:"string"},[m.MESSAGE]:{type:"string"},[m.SCOPE]:{type:"string"},[m.TITLE]:{type:"string"},[m.TYPE]:{type:"string"}},importMeta:import.meta}),Se={[C.COMMIT]:e=>S(e),[C.HOOK]:e=>S(e),[C.LIST]:()=>F()};N(Ie,Se);
/*!
* reference: https://github.com/carloscuesta/gitmoji-cli
*/
/*!
* For license information please see index.js.LICENSE.txt
*/