ccommit 3.1.4 → 3.1.5-canary.2
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 +1 -1
- package/index.js.LICENSE.txt +1 -1
- package/index.mjs +41 -0
- package/package.json +17 -15
- package/index.js +0 -50
package/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2021-
|
|
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.js.LICENSE.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2021-
|
|
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.
|
|
3
|
+
"version": "3.1.5-canary.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "😜 ➕ 👔 🟰 ccommit \n Conventional Commit Generator that interprets commit types from gitmoji and conventional",
|
|
6
|
-
"repository":
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/JeromeFitz/packages.git"
|
|
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": ">=
|
|
19
|
+
"node": ">=24"
|
|
17
20
|
},
|
|
18
21
|
"bin": {
|
|
19
|
-
"ccommit": "./index.
|
|
22
|
+
"ccommit": "./index.mjs"
|
|
20
23
|
},
|
|
21
24
|
"exports": {
|
|
22
|
-
"
|
|
23
|
-
"
|
|
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": "
|
|
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": "
|
|
44
|
+
"dev": "tsdown --watch",
|
|
42
45
|
"dry:run": "pnpm run build && node ./index.js -c -n",
|
|
43
|
-
"
|
|
44
|
-
"
|
|
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.
|
|
56
|
+
"execa": "9.6.1",
|
|
56
57
|
"fuse.js": "7.1.0",
|
|
57
|
-
"meow": "
|
|
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
|
-
*/
|