ccommit 3.1.4 → 3.1.5-canary.1

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/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2021-2023 Nice Group of People, LLC
3
+ Copyright (c) 2021-2026 Nice Group of People, LLC
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2021-2023 Nice Group of People, LLC
3
+ Copyright (c) 2021-2026 Nice Group of People, LLC
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/index.mjs ADDED
@@ -0,0 +1,41 @@
1
+ #!/usr/bin/env node
2
+ import e from"meow";import t from"node:process";import n from"enquirer";import r from"node:fs";import{execa as i}from"execa";import a from"ansi-colors";import{execSync as o}from"node:child_process";import{join as s}from"node:path";const c={COMMIT:`commit`,HOOK:`hook`,LIST:`list`},l={CONVENTIONAL:`conventional`,CONVENTIONAL_NO_EMOJI:`conventional-no-emoji`,GITMOJI:`gitmoji`},u={CLIENT:`client`,HOOK:`hook`},d={EMOJI:`emoji`,TYPE:`type`},f=Object.freeze({BREAKING:`breaking`,COMMIT:`commit`,DRYRUN:`dryrun`,EMOJI:`emoji`,HELP:`help`,HOOK:`hook`,LIST:`list`,SKIP:`skip`,VERSION:`version`}),p={[l.CONVENTIONAL]:`{type}{scope}{breaking}: {emoji}{title}`,[l.CONVENTIONAL_NO_EMOJI]:`{type}{scope}{breaking}: {title}`,[l.GITMOJI]:`{emoji}{breaking}{scope}{title}`},m={MESSAGES:{COMMAND_LINE_WITHOUT_REQUIRED:`❯ Command line option requires both: --title, --type`,COMMIT_FAIL:`❯
3
+
4
+ ❯ Oops! An error occurred. There is likely additional logging output above.
5
+
6
+ ❯ You can run the same commit with this command:
7
+
8
+
9
+ {REPLACE}
10
+ `,GENERATOR_TAKING_OVER:`❯ Generator will take it from here (CTRL+C to quit)`,MODE_CONFLICT:`❯ Please choose one or the other: --commit, -c | --hook, -u`,REPLACE:`{REPLACE}`,STAGED_FILES:`❯ There are no staged files for git. Did you mean to do a dry-run (-n)?`,TYPE_INCORRECT:`❯ There is no gitmoji/type associated with: {REPLACE}`},TYPES:{ERROR:`error`,INFO:`info`,SUCCESS:`success`,WARNING:`warning`}},h=Object.freeze({FORMAT:`format`,MESSAGE:`message`,SCOPE:`scope`,TITLE:`title`,TYPE:`type`}),g={MAX:12,MIN:3},_={MAJOR:`major`,MINOR:`minor`,NULL:`null`,PATCH:`patch`},v={MAX:48,MAX_SWAG:40,MIN:3,MIN_SWAG:15},y={MAX:15},b=()=>i(`git`,[`rev-parse`,`--absolute-git-dir`]).then(({stdout:e})=>{(r.existsSync(e+`/rebase-merge`)||r.existsSync(e+`/rebase-apply`))&&t.exit(0)}),x=()=>new Promise(e=>{let n=t.argv[4];n&&(n.startsWith(`commit`)||n.startsWith(`merge`))&&t.exit(0),e()}),S=()=>x().then(b),C=[{code:`:wheelchair:`,description:`Improve Accessibility`,emoji:`♿️`,emojiLength:1,semver:_.PATCH,type:`access`},{code:`:chart_with_upwards_trend:`,description:`Add or Update Analytics or Track Code`,emoji:`📈`,emojiLength:1,semver:_.PATCH,type:`analytics`},{code:`:dizzy:`,description:`Add or Update Animations and Transitions`,emoji:`💫`,emojiLength:1,semver:_.PATCH,type:`animation`},{code:`:building_construction:`,description:`Make Architectural Changes`,emoji:`🏗️`,emojiLength:0,semver:_.NULL,type:`arch`},{code:`:bento:`,description:`Add or Update Assets`,emoji:`🍱`,emojiLength:1,semver:_.PATCH,type:`assets`},{code:`:t-rex:`,description:`Backwards Compatibility`,emoji:`🦖`,emojiLength:1,semver:_.NULL,type:`backwards`},{code:`:beers:`,description:`Write Code Drunkenly`,emoji:`🍻`,emojiLength:1,semver:_.NULL,type:`beer`},{code:`:boom:`,description:`Introduce Breaking Changes`,emoji:`💥`,emojiLength:1,semver:_.MAJOR,type:`breaking`},{code:`:hammer:`,description:`Add or Update Development Scripts`,emoji:`🔨`,emojiLength:1,semver:_.NULL,type:`build`},{code:`:goal_net:`,description:`Catch Errors`,emoji:`🥅`,emojiLength:1,semver:_.PATCH,type:`catch`},{code:`:computer_disk:`,description:`Changes That Don’t Modify Src or Test Files`,emoji:`💽️`,emojiLength:1,semver:_.NULL,type:`chore`},{code:`:construction_worker:`,description:`Add or Update CI Build System`,emoji:`👷`,emojiLength:1,semver:_.NULL,type:`ci`},{code:`:wastebasket:`,description:`Deprecate Code That Needs to Be Cleaned Up`,emoji:`🗑️`,emojiLength:0,semver:_.PATCH,type:`clean`},{code:`:alien:`,description:`Update Code Due to External API Changes`,emoji:`👽️`,emojiLength:1,semver:_.PATCH,type:`compat`},{code:`:thread:`,description:`Add or Update Code Related to Multithreading or Concurrency`,emoji:`🧵`,emojiLength:1,semver:_.NULL,type:`concurrency`},{code:`:wrench:`,description:`Add or Update Configuration Files`,emoji:`🔧`,emojiLength:1,semver:_.PATCH,type:`config`},{code:`:busts_in_silhouette:`,description:`Add or Update Contributor(s)`,emoji:`👥`,emojiLength:1,semver:_.NULL,type:`contrib-add`},{code:`:monocle_face:`,description:`Data Exploration/inspection`,emoji:`🧐`,emojiLength:1,semver:_.NULL,type:`data`},{code:`:card_file_box:`,description:`Perform Database Related Changes`,emoji:`🗃️`,emojiLength:0,semver:_.PATCH,type:`db`},{code:`:heavy_plus_sign:`,description:`Add a Dependency`,emoji:`➕`,emojiLength:1,semver:_.PATCH,type:`dep-add`},{code:`:heavy_minus_sign:`,description:`Remove a Dependency`,emoji:`➖`,emojiLength:1,semver:_.PATCH,type:`dep-rm`},{code:`:package:`,description:`Add or Update Compiled Files or Packages`,emoji:`📦️`,emojiLength:1,semver:_.PATCH,type:`dep-up`},{code:`:rocket:`,description:`Deploy Stuff`,emoji:`🚀`,emojiLength:1,semver:_.NULL,type:`deploy`},{code:`:bulb:`,description:`Add or Update Comments in Source Code`,emoji:`💡`,emojiLength:1,semver:_.NULL,type:`docs-code`},{code:`:memo:`,description:`Add or Update Documentation`,emoji:`📝`,emojiLength:1,semver:_.NULL,type:`docs`},{code:`:arrow_down:`,description:`Downgrade Dependencies`,emoji:`⬇️`,emojiLength:0,semver:_.PATCH,type:`downgrade`},{code:`:technologist:`,description:`Improve Developer Experience`,emoji:`💻`,emojiLength:1,semver:_.NULL,type:`dx`},{code:`:egg:`,description:`Add or Update an Easter Egg`,emoji:`🥚`,emojiLength:1,semver:_.PATCH,type:`egg`},{code:`:alembic:`,description:`Perform Experiments`,emoji:`⚗️`,emojiLength:0,semver:_.PATCH,type:`experiment`},{code:`:sparkles:`,description:`Introduce New Features`,emoji:`✨`,emojiLength:1,semver:_.MINOR,type:`feat`},{code:`:bug:`,description:`Fix a Bug`,emoji:`🐛`,emojiLength:1,semver:_.PATCH,type:`fix`},{code:`:green_heart:`,description:`Fix CI Build`,emoji:`💚`,emojiLength:1,semver:_.NULL,type:`fix-ci`},{code:`:triangular_flag_on_post:`,description:`Add Update or Remove Feature Flags`,emoji:`🚩`,emojiLength:1,semver:_.PATCH,type:`flags`},{code:`:stethoscope:`,description:`Add or Update Healthcheck`,emoji:`🩺`,emojiLength:1,semver:_.NULL,type:`healthcheck`},{code:`:ambulance:`,description:`Critical Hotfix`,emoji:`🚑️`,emojiLength:1,semver:_.PATCH,type:`hotfix`},{code:`:globe_with_meridians:`,description:`Internationalization and Localization`,emoji:`🌐`,emojiLength:1,semver:_.PATCH,type:`i18n`},{code:`:see_no_evil:`,description:`Add or Update a Gitignore File.`,emoji:`🙈`,emojiLength:1,semver:_.NULL,type:`ignore`},{code:`:bricks:`,description:`Infrastructure Related Changes`,emoji:`🧱`,emojiLength:1,semver:_.NULL,type:`inf`},{code:`:tada:`,description:`Begin a Project`,emoji:`🎉`,emojiLength:1,semver:_.PATCH,type:`init`},{code:`:iphone:`,description:`Work on Responsive Design`,emoji:`📱`,emojiLength:1,semver:_.PATCH,type:`iphone`},{code:`:page_facing_up:`,description:`Add or Update License`,emoji:`📄`,emojiLength:1,semver:_.NULL,type:`license`},{code:`:rotating_light:`,description:`Fix Compiler / Linter Warnings`,emoji:`🚨`,emojiLength:1,semver:_.NULL,type:`lint`},{code:`:loud_sound:`,description:`Add or Update Logs`,emoji:`🔊`,emojiLength:1,semver:_.NULL,type:`log-add`},{code:`:mute:`,description:`Remove Logs`,emoji:`🔇`,emojiLength:1,semver:_.NULL,type:`log-rm`},{code:`:necktie:`,description:`Add or Update Business Logic`,emoji:`👔`,emojiLength:1,semver:_.PATCH,type:`logic`},{code:`:twisted_rightwards_arrows:`,description:`Merge Branches`,emoji:`🔀`,emojiLength:1,semver:_.NULL,type:`merge`},{code:`:clown_face:`,description:`Mock Things`,emoji:`🤡`,emojiLength:1,semver:_.NULL,type:`mock`},{code:`:truck:`,description:`Move or Rename Resources (Eg.: Files Paths Routes).`,emoji:`🚚`,emojiLength:1,semver:_.NULL,type:`mv`},{code:`:airplane:`,description:`Provide offline support`,emoji:`✈️`,emojiLength:1,semver:_.PATCH,type:`offline`},{code:`:adhesive_bandage:`,description:`Simple Fix for a Non-Critical Issue`,emoji:`🩹`,emojiLength:1,semver:_.PATCH,type:`patch`},{code:`:zap:`,description:`Improve Performance`,emoji:`⚡️`,emojiLength:1,semver:_.PATCH,type:`perf`},{code:`:poop:`,description:`Write Bad Code That Needs to Be Improved`,emoji:`💩`,emojiLength:1,semver:_.NULL,type:`poo`},{code:`:fire:`,description:`Remove Code or Files`,emoji:`🔥`,emojiLength:1,semver:_.NULL,type:`prune`},{code:`:pushpin:`,description:`Pin Dependencies to Specific Versions`,emoji:`📌`,emojiLength:1,semver:_.PATCH,type:`pushpin`},{code:`:recycle:`,description:`Refactor Code`,emoji:`♻️`,emojiLength:0,semver:_.NULL,type:`refactor`},{code:`:bookmark:`,description:`Release / Version Tags`,emoji:`🔖`,emojiLength:1,semver:_.NULL,type:`release`},{code:`:rewind:`,description:`Revert Changes`,emoji:`⏪️`,emojiLength:1,semver:_.PATCH,type:`revert`},{code:`:coffin:`,description:`Remove Dead Code`,emoji:`⚰️`,emojiLength:0,semver:_.NULL,type:`rip`},{code:`:passport_control:`,description:`Work on Code Related to Authorization Roles and Permissions`,emoji:`🛂`,emojiLength:1,semver:_.PATCH,type:`roles`},{code:`:fast_forward:`,description:`Create Rollforward Version`,emoji:`⏩️`,emojiLength:1,semver:_.NULL,type:`rollforward`},{code:`:rocket:`,description:`Custom Type for CI/CD to Hook into Run Build Override`,emoji:`🚀️`,emojiLength:1,semver:_.PATCH,type:`run-build`},{code:`:closed_lock_with_key:`,description:`Add or Update Secrets`,emoji:`🔐`,emojiLength:1,semver:_.NULL,type:`secrets`},{code:`:lock:`,description:`Fix Security Issues`,emoji:`🔒️`,emojiLength:1,semver:_.PATCH,type:`security`},{code:`:seedling:`,description:`Add or Update Seed Files`,emoji:`🌱`,emojiLength:1,semver:_.NULL,type:`seed`},{code:`:mag:`,description:`Improve Seo`,emoji:`🔍️`,emojiLength:1,semver:_.PATCH,type:`seo`},{code:`:camera_flash:`,description:`Add or Update Snapshots`,emoji:`📸`,emojiLength:1,semver:_.NULL,type:`snapshot`},{code:`:money_with_wings:`,description:`Add Sponsorships or Money Related Infrastructure`,emoji:`💸`,emojiLength:1,semver:_.NULL,type:`sponsor`},{code:`:art:`,description:`Improve Structure / Format of the Code`,emoji:`🎨`,emojiLength:1,semver:_.NULL,type:`style`},{code:`:test_tube:`,description:`Add a Failing Test`,emoji:`🧪`,emojiLength:1,semver:_.NULL,type:`test-fail`},{code:`:white_check_mark:`,description:`Add Update or Pass Tests`,emoji:`✅`,emojiLength:1,semver:_.NULL,type:`test`},{code:`:speech_balloon:`,description:`Add or Update Text and Literals`,emoji:`💬`,emojiLength:1,semver:_.PATCH,type:`texts`},{code:`:label:`,description:`Add or Update Types`,emoji:`🏷️`,emojiLength:0,semver:_.PATCH,type:`types`},{code:`:pencil2:`,description:`Fix Typos`,emoji:`✏️`,emojiLength:0,semver:_.PATCH,type:`typo`},{code:`:lipstick:`,description:`Add or Update the UI and Style Files`,emoji:`💄`,emojiLength:1,semver:_.PATCH,type:`ui`},{code:`:arrow_up:`,description:`Upgrade Dependencies`,emoji:`⬆️`,emojiLength:0,semver:_.PATCH,type:`upgrade`},{code:`:children_crossing:`,description:`Improve User Experience / Usability`,emoji:`🚸`,emojiLength:1,semver:_.PATCH,type:`ux`},{code:`:safety_vest:`,description:`Add or update code related to validation`,emoji:`🦺`,emojiLength:1,semver:_.PATCH,type:`validation`},{code:`:construction:`,description:`Work in Progress`,emoji:`🚧`,emojiLength:1,semver:_.NULL,type:`wip`}],w=(e,t,n)=>C[C.findIndex(n=>n[t]===e)]?.[n],T=(e,t)=>[f.COMMIT,f.HOOK].includes(e)?{dryrun:t[f.DRYRUN],emoji:t[f.EMOJI],format:t[h.FORMAT]===l.CONVENTIONAL?t[f.EMOJI]?l.CONVENTIONAL:l.CONVENTIONAL_NO_EMOJI:l.GITMOJI,message:t[h.MESSAGE],mode:e===f.HOOK?u.HOOK:u.CLIENT,scope:t[h.SCOPE],skip:t[f.SKIP],title:t[h.TITLE],type:t[h.TYPE]}:null,E=(e,n)=>{let r=e.flags,i=Object.keys(r).map(e=>r[e]&&e).find(e=>n[e]),a=I();!r[f.DRYRUN]&&!a&&(console.log(j(m.TYPES.ERROR,m.MESSAGES.STAGED_FILES)),t.exit(2)),r[f.COMMIT]&&r[f.HOOK]&&(console.log(j(m.TYPES.ERROR,m.MESSAGES.MODE_CONFLICT)),t.exit(2)),(r[h.MESSAGE]||r[h.SCOPE]||r[h.TITLE]||r[h.TYPE])&&(r[f.SKIP]=!0),r[f.SKIP]&&(r[h.TITLE]&&r[h.TYPE]?r[f.SKIP]=!0:(r[f.SKIP]=!1,console.log(j(m.TYPES.ERROR,m.MESSAGES.COMMAND_LINE_WITHOUT_REQUIRED)),r[h.TITLE]=void 0,r[h.TYPE]=void 0));let o=T(i,r);return n[i]?n[i](o):e.showHelp()},D=({emoji:e,emojiLength:t})=>t===0?`${e} `:`${e} `,O=e=>e?.padEnd(y.MAX),k=e=>e.map(({description:e,emoji:t,emojiLength:n,type:r})=>{console.log(`${D({emoji:t,emojiLength:n})} ${O(r)} ${e}`)}),A=(e,t)=>{let n=p[e?.format],r=t?.gitmoji?`${t?.gitmoji} `:``,i=t?.scope?`(${t?.scope.replace(/ {2}/g,`--`).replace(/ /g,`-`).toLowerCase().trim()})`:``;return i=i&&e?.format===l.GITMOJI?`${i} `:i,n.replace(/\{emoji\}/g,r).replace(/\{scope\}/g,i).replace(/\{breaking\}/g,``).replace(/\{title\}/g,t?.title).replace(/\{type\}/g,t?.type)},j=(e,t,n)=>{let r=n?t.replace(/\{REPLACE\}/g,n):t;return r=`\n${r}\n`,e===m.TYPES.ERROR?a.magenta.bold(r):e===m.TYPES.INFO?a.blue.bold(r):e===m.TYPES.WARNING?a.yellow.bold(r):a.green.bold(r)},M=(e,t,n)=>{let r=n?t.replace(/\{REPLACE\}/g,n):t;return e===m.TYPES.ERROR?a.red.bold(r):e===m.TYPES.INFO?a.white.bold(r):e===m.TYPES.WARNING?a.yellow.bold(r):a.green.bold(r)},N=e=>{let t=e.length,n=t.toString(),r=m.TYPES.SUCCESS;return t<v.MIN||t>v.MAX?r=m.TYPES.ERROR:(t<v.MIN_SWAG||t>v.MAX_SWAG)&&(r=m.TYPES.WARNING),M(r,m.MESSAGES.REPLACE,n)},P=()=>o(`git rev-parse --show-toplevel 2>`+(process.platform===`win32`?` nul`:`/dev/null`)).toString().trim(),F=()=>{let e,t=``;e=o(`git rev-parse --abbrev-ref HEAD`),e=e.toString().trim().split(`/`);let n=e[0],r=(e[1]?e[1]:n).split(`-`),i=r[0],a=r[1]?r[1]:i,s=`${i}-${a}`;return!isNaN(parseFloat(a))&&isFinite(parseFloat(a))&&(t=s),t},I=()=>!!o(`git diff --name-only --staged`).toString().trim(),L=e=>{console.log(a.magenta.bold(`❯ dry-run mode: ${e}\n`))},R=()=>{t.on(`SIGINT`,()=>{console.log(a.magenta.bold(`❯ [ccommit] interrupted`)),t.exit(0)})},z=()=>C.map(({description:e,emoji:t,emojiLength:n,type:r})=>({description:e,emoji:t,emojiLength:n,type:r})),B=(e,t)=>{let n=`Character Count (${N(e)}/${t})`;return`${a.dim.cyan(`›`)} ${a.dim.bold(n)}`},V=e=>e.submitted?e.cancelled?a.magenta(`✖`):a.green(`✔`):a.cyan(`?`),H=[{default:`(y/N)`,format(e){let t=e?`yes`:`no`;return this.state.submitted?a.green(t):a.dim(t)},initial:!1,message:`Is there a breaking change?`,name:`breaking`,prefix(){return V(this.state)},styles:{primary:a.white},type:`confirm`},{footer(){return B(this.state.input,v.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>v.MAX?`Cannot exceed ${v.MAX} characters`:!0:!0}},{choices:z().map(({description:e,emoji:t,emojiLength:n,type:r})=>{let i=t;return{name:` ${D({emoji:t,emojiLength:n})} ${O(r)} ${e}`,value:i}}),footer(){return`${a.dim.cyan(`›`)} ${a.dim.bold(`scroll up and down to reveal more ↕`)}`},highlight(e){return a.cyanBright(e)},limit:18,message:`Please choose a commit type`,name:`gitmoji`,type:`autocomplete`},{footer(){return B(this.state.input,g.MAX)},format(){return this.state.submitted?a.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?!0:t<g.MIN?`Must have at least ${g.MIN} characters`:t>g.MAX?`Cannot exceed ${g.MAX} characters`:!0}},{footer(){return B(this.state.input,v.MAX)},hint(){return this.state.initial?`… tab to use initial value`:``},initial:F()?`${F()} `:``,message:`Please enter the commit title`,name:`title`,type:`input`,validate(e){let t=e.length;return t<v.MIN?`Must have at least ${v.MIN} characters`:t>v.MAX?`Cannot exceed ${v.MAX} characters`:!0}},{footer(){return`${a.dim.cyan(`›`)} ${a.dim(`Return twice to submit/skip: ⮑ ⮑`)}`},message:`Please share a more detailed commit message (if applicable)`,multiline:!0,name:`message`,result(e){return e===`
11
+ `?``:e},type:`input`}],U=async(e,n)=>{try{let t=e?.subject,r=e?.message,a=e?.messageBreaking,o=[`commit`,`-m`,t];r&&o.push(`-m`,r),a&&o.push(`-m`,a),n?.dryrun?L([`git`,...o].join(` `)):await i(`git`,o,{buffer:!1,stdio:`inherit`})}catch(e){console.error(j(m.TYPES.ERROR,m.MESSAGES.COMMIT_FAIL,e.escapedCommand)),t.exit(1)}},W=s(P(),`.git`,`COMMIT_EDITMSG`),G=(e,n)=>{try{let t=e?.subject;e?.message&&e?.message!==`
12
+ `&&(t+=`\n\n${e.message}`),e?.messageBreaking&&e?.messageBreaking!==`
13
+ `&&(t+=`\n\n${e.messageBreaking}`),n?.dryrun?L(t):r.writeFileSync(W,t)}catch(e){console.error(e),t.exit(1)}finally{t.exit(0)}},{prompt:K}=n,q=async e=>{let n={};return e.skip?(n=e,n.gitmoji=w(n.type,d.TYPE,d.EMOJI),n.gitmoji||(console.log(j(m.TYPES.ERROR,m.MESSAGES.TYPE_INCORRECT,n.type)),t.exit(2))):await K(H).then(e=>(e.type=w(e.gitmoji,d.EMOJI,d.TYPE),e)).then(e=>{n=e}).catch(console.error),n.subject=n?A(e,n):``,e.mode===u.HOOK?G(n,e):U(n,e)};var J=e=>e.mode===u.HOOK?(R(),S().then(()=>q(e))):q(e),Y=()=>k(C);
14
+ /*!
15
+ * For license information please see index.js.LICENSE.txt
16
+ */
17
+ E(e(`
18
+ Usage
19
+ $ ccommit -c
20
+
21
+ Flags
22
+ --${f.BREAKING}, -b 💥 Breaking Change
23
+ --${f.COMMIT}, -c 💽 Mode: Client
24
+ --${f.DRYRUN}, -n 🎽 Mode: Dry Run
25
+ --${f.EMOJI}, -e 😜 Emoji (default)
26
+ --${f.HOOK}, -u 🪝 Mode: Hook
27
+ --${f.LIST}, -l 📖 List all types
28
+ --${f.VERSION}, -v 📦 Print installed version
29
+
30
+ Options
31
+ --${h.FORMAT} 😜 Commit Format: conventional|gitmoji (default)
32
+ --${h.MESSAGE} 📝 Commit Message
33
+ --${h.SCOPE} 🔬 Commit Scope
34
+ --${h.TITLE} 📓 Commit Title
35
+ --${h.TYPE} ✨ Commit Type
36
+
37
+ Notes
38
+ - Pass any non-format options the following will be required: --title, --type
39
+ - If you do not pass any options the Conventional Commit Generator prompt will run
40
+ - Branch Name detection is enabled to pre-populate Issue Tracker information in prompt
41
+ `,{flags:{[f.BREAKING]:{default:!1,shortFlag:`b`,type:`boolean`},[f.COMMIT]:{shortFlag:`c`,type:`boolean`},[f.DRYRUN]:{shortFlag:`n`,type:`boolean`},[f.EMOJI]:{default:!0,shortFlag:`e`,type:`boolean`},[f.HELP]:{shortFlag:`h`,type:`boolean`},[f.HOOK]:{shortFlag:`u`,type:`boolean`},[f.LIST]:{shortFlag:`l`,type:`boolean`},[f.SKIP]:{default:!1,type:`boolean`},[f.VERSION]:{shortFlag:`v`,type:`boolean`},[h.FORMAT]:{default:l.GITMOJI,type:`string`},[h.MESSAGE]:{type:`string`},[h.SCOPE]:{type:`string`},[h.TITLE]:{type:`string`},[h.TYPE]:{type:`string`}},importMeta:import.meta}),{[c.COMMIT]:e=>J(e),[c.HOOK]:e=>J(e),[c.LIST]:()=>Y()});export{};
package/package.json CHANGED
@@ -1,9 +1,12 @@
1
1
  {
2
2
  "name": "ccommit",
3
- "version": "3.1.4",
3
+ "version": "3.1.5-canary.1",
4
4
  "type": "module",
5
5
  "description": "😜 ➕ 👔 🟰 ccommit \n Conventional Commit Generator that interprets commit types from gitmoji and conventional",
6
- "repository": "jeromefitz/packages.git",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/JeromeFitz/packages"
9
+ },
7
10
  "homepage": "https://github.com/JeromeFitz/packages/tree/main/packages/ccommit#readme",
8
11
  "author": {
9
12
  "name": "Jerome Fitzgerald",
@@ -13,14 +16,14 @@
13
16
  "license": "MIT",
14
17
  "private": false,
15
18
  "engines": {
16
- "node": ">=20"
19
+ "node": ">=24"
17
20
  },
18
21
  "bin": {
19
- "ccommit": "./index.js"
22
+ "ccommit": "./index.mjs"
20
23
  },
21
24
  "exports": {
22
- "types": "./index.d.ts",
23
- "default": "./index.js"
25
+ ".": "./index.mjs",
26
+ "./package.json": "./package.json"
24
27
  },
25
28
  "keywords": [
26
29
  "commit",
@@ -34,16 +37,14 @@
34
37
  "semver"
35
38
  ],
36
39
  "scripts": {
37
- "build": "tsup",
40
+ "build": "tsdown",
38
41
  "clean": "rm -rf .turbo && rm -rf dist",
39
42
  "clean:install": "pnpm run clean && rm -rf node_modules",
40
43
  "copy": "mkdir -p ./dist && ./scripts/copy.sh",
41
- "dev": "tsup --watch",
44
+ "dev": "tsdown --watch",
42
45
  "dry:run": "pnpm run build && node ./index.js -c -n",
43
- "format:lint": "pnpm run lint:eslint --fix && pnpm run format:prettier --write",
44
- "format:prettier": "prettier \"./src/**/*.{cjs,js,jsx,mjs,ts,tsx,json,md,mdx,css,html,yml,yaml,scss}\" --ignore-unknown --log-level warn",
45
- "lint": "pnpm run format:prettier --check && pnpm run lint:eslint",
46
- "lint:eslint": "eslint ./src --max-warnings=0",
46
+ "lint": "pnpm run lint:typescript",
47
+ "lint:typescript": "tsc --noEmit --declaration",
47
48
  "package": "pkg . --output ./.bin/ccommit --targets latest-linux-x64,latest-macos-x64,latest-win-x64",
48
49
  "prepare": "is-ci || pnpm run build",
49
50
  "semantic-release": "semantic-release",
@@ -52,16 +53,17 @@
52
53
  "dependencies": {
53
54
  "ansi-colors": "4.1.3",
54
55
  "enquirer": "2.4.1",
55
- "execa": "9.6.0",
56
+ "execa": "9.6.1",
56
57
  "fuse.js": "7.1.0",
57
- "meow": "13.2.0"
58
+ "meow": "14.1.0"
58
59
  },
59
60
  "devDependencies": {
60
61
  "is-ci": "4.1.0",
61
62
  "pkg": "5.8.1"
62
63
  },
63
64
  "publishConfig": {
64
- "registry": "https://registry.npmjs.org/"
65
+ "registry": "https://registry.npmjs.org/",
66
+ "provenance": true
65
67
  },
66
68
  "sideEffects": false
67
69
  }
package/index.js DELETED
@@ -1,50 +0,0 @@
1
- #!/usr/bin/env node
2
- 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
3
-
4
- \u276F Oops! An error occurred. There is likely additional logging output above.
5
-
6
- \u276F You can run the same commit with this command:
7
-
8
- \u276F
9
- {REPLACE}
10
- `,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=`
11
- ${r}
12
- `,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}
13
- `));};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===`
14
- `?"":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!==`
15
- `&&(i+=`
16
-
17
- ${e.message}`),e?.messageBreaking&&e?.messageBreaking!==`
18
- `&&(i+=`
19
-
20
- ${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(`
21
- Usage
22
- $ ccommit -c
23
-
24
- Flags
25
- --${n.BREAKING}, -b \u{1F4A5} Breaking Change
26
- --${n.COMMIT}, -c \u{1F4BD} Mode: Client
27
- --${n.DRYRUN}, -n \u{1F3BD} Mode: Dry Run
28
- --${n.EMOJI}, -e \u{1F61C} Emoji (default)
29
- --${n.HOOK}, -u \u{1FA9D} Mode: Hook
30
- --${n.LIST}, -l \u{1F4D6} List all types
31
- --${n.VERSION}, -v \u{1F4E6} Print installed version
32
-
33
- Options
34
- --${m.FORMAT} \u{1F61C} Commit Format: conventional|gitmoji (default)
35
- --${m.MESSAGE} \u{1F4DD} Commit Message
36
- --${m.SCOPE} \u{1F52C} Commit Scope
37
- --${m.TITLE} \u{1F4D3} Commit Title
38
- --${m.TYPE} \u2728 Commit Type
39
-
40
- Notes
41
- - Pass any non-format options the following will be required: --title, --type
42
- - If you do not pass any options the Conventional Commit Generator prompt will run
43
- - Branch Name detection is enabled to pre-populate Issue Tracker information in prompt
44
- `,{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);
45
- /*!
46
- * reference: https://github.com/carloscuesta/gitmoji-cli
47
- */
48
- /*!
49
- * For license information please see index.js.LICENSE.txt
50
- */