@kitschpatrol/repo-config 7.5.1 → 7.5.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.
Files changed (2) hide show
  1. package/bin/cli.js +1 -1
  2. package/package.json +1 -1
package/bin/cli.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import"cosmiconfig";import"cosmiconfig-typescript-loader";import{execa as e}from"execa";import t from"fs-extra";import n from"node:fs";import r from"node:path";import{PassThrough as i,Transform as a}from"node:stream";import{fileURLToPath as o}from"node:url";import{packageUp as s,packageUpSync as c}from"package-up";import l from"picocolors";import u from"yargs";import{hideBin as d}from"yargs/helpers";import f from"@pinojs/json-colorizer";import p from"decircular";import m from"deepmerge";import h from"json-stringify-pretty-compact";import{findWorkspaces as g,findWorkspacesRoot as _}from"find-workspaces";import v from"node:fs/promises";import{stripVTControlCharacters as ee}from"node:util";import{globby as te}from"globby";import y,{gt as b,minVersion as x}from"semver";import{readWantedLockfile as S}from"@pnpm/lockfile.fs";var ne=`7.5.1`;function re(e){return e instanceof Error&&`exitCode`in e&&typeof e.exitCode==`number`}function C(e){return f(h(p(e),{indent:2,replacer(e,t){return typeof t==`function`?t.name:t}}),{colors:{BRACKET:`gray`}})}const ie=(e,t,n)=>{let r=[...e];for(let[i,a]of t.entries())r[i]===void 0?r[i]=n.cloneUnlessOtherwiseSpecified(a,n):n.isMergeableObject(a)?r[i]=w(e[i],a,n):e.includes(a)||r.push(a);return r};function w(e,t,n={arrayMerge:ie}){return m(e,t,n)}function ae(e,t){return e.startsWith(t+r.sep)}function T(){let e=E(),t=new Set([e]),n=g();if(n!==null)for(let i of n){let n=r.resolve(i.location);ae(n,e)&&t.add(n)}return[...t]}function E(){let e=c();if(e===void 0)throw Error(`No package.json found.`);return r.dirname(e)}function D(){let e=_();return e===null?E():r.resolve(e.location)}function O(e){if(e===`workspace-root`)return D();if(e===`package-dir`)return E();if(typeof e==`string`){if(!t.pathExistsSync(e))throw Error(`Custom cwd directory does not exist: ${e}`);return e}return process.cwd()}async function oe(e,t){try{let{default:n}=await import(`prettier`),r=await n.resolveConfig(e),i=await n.format(t,{filepath:e,...r});await v.writeFile(e,i,`utf8`)}catch{console.warn(`Skipped formatting ${e} since Prettier is not installed.`)}}async function k(e){try{await oe(e,await v.readFile(e,`utf8`))}catch{}}const A=/\r?\n/;function j(e){return new a({transform(t,n,r){let i=t.toString().split(A).filter(t=>t.trim()!==``&&!e(ee(t))).join(`
2
+ import"cosmiconfig";import"cosmiconfig-typescript-loader";import{execa as e}from"execa";import t from"fs-extra";import n from"node:fs";import r from"node:path";import{PassThrough as i,Transform as a}from"node:stream";import{fileURLToPath as o}from"node:url";import{packageUp as s,packageUpSync as c}from"package-up";import l from"picocolors";import u from"yargs";import{hideBin as d}from"yargs/helpers";import f from"@pinojs/json-colorizer";import p from"decircular";import m from"deepmerge";import h from"json-stringify-pretty-compact";import{findWorkspaces as g,findWorkspacesRoot as _}from"find-workspaces";import v from"node:fs/promises";import{stripVTControlCharacters as ee}from"node:util";import{globby as te}from"globby";import y,{gt as b,minVersion as x}from"semver";import{readWantedLockfile as S}from"@pnpm/lockfile.fs";var ne=`7.5.2`;function re(e){return e instanceof Error&&`exitCode`in e&&typeof e.exitCode==`number`}function C(e){return f(h(p(e),{indent:2,replacer(e,t){return typeof t==`function`?t.name:t}}),{colors:{BRACKET:`gray`}})}const ie=(e,t,n)=>{let r=[...e];for(let[i,a]of t.entries())r[i]===void 0?r[i]=n.cloneUnlessOtherwiseSpecified(a,n):n.isMergeableObject(a)?r[i]=w(e[i],a,n):e.includes(a)||r.push(a);return r};function w(e,t,n={arrayMerge:ie}){return m(e,t,n)}function ae(e,t){return e.startsWith(t+r.sep)}function T(){let e=E(),t=new Set([e]),n=g();if(n!==null)for(let i of n){let n=r.resolve(i.location);ae(n,e)&&t.add(n)}return[...t]}function E(){let e=c();if(e===void 0)throw Error(`No package.json found.`);return r.dirname(e)}function D(){let e=_();return e===null?E():r.resolve(e.location)}function O(e){if(e===`workspace-root`)return D();if(e===`package-dir`)return E();if(typeof e==`string`){if(!t.pathExistsSync(e))throw Error(`Custom cwd directory does not exist: ${e}`);return e}return process.cwd()}async function oe(e,t){try{let{default:n}=await import(`prettier`),r=await n.resolveConfig(e),i=await n.format(t,{filepath:e,...r});await v.writeFile(e,i,`utf8`)}catch{console.warn(`Skipped formatting ${e} since Prettier is not installed.`)}}async function k(e){try{await oe(e,await v.readFile(e,`utf8`))}catch{}}const A=/\r?\n/;function j(e){return new a({transform(t,n,r){let i=t.toString().split(A).filter(t=>t.trim()!==``&&!e(ee(t))).join(`
3
3
  `);this.push(i+`
4
4
  `),r()}})}function M(e,t){return new a({transform(n,r,i){let a=n.toString().split(A).filter(e=>e.trim().length>0).map(n=>`${e?t===void 0?e:l[t](e):``} ${n}\n`).join(``);this.push(a),i()}})}async function se(e){let t=[];return new Promise((n,r)=>{e.on(`data`,e=>t.push(e)),e.on(`error`,e=>{r(e)}),e.on(`end`,()=>{n(Buffer.concat(t).toString(`utf8`))})})}function N(e,t){return t===1?e:e+`s`}async function ce(e,t,n,r,i){let a=1,o;if(r.logPrefix===void 0)o=e;else{let t=M(r.logPrefix,r.logColor);t.pipe(e),o=t}i&&o.write(l.bold(`Running: "${r.name}() with Positional arguments: ${String(t)} and Option flags: ${String(n)}"`));try{a=await r.execute(o,t,n)}catch(e){console.error(String(e)),a=1}return a}async function le(t,n,r,a,o){let s=1,c;if(a.logPrefix===void 0)c=t;else{let e=M(a.logPrefix,a.logColor);e.pipe(t),c=e}let l=a.subcommands??[],u=[...a.receivePositionalArguments?n:[],...a.positionalArguments??[]],d=[...a.receiveOptionFlags?r:[],...a.optionFlags??[]],f=[...l,...d,...u],p=O(a.cwdOverride);o&&c.write(`Running: "${a.name} ${f.join(` `)}"`);let m=a.prettyJsonOutput?new i:c;try{let t=e(a.name,f,{cwd:p,env:{...process.env.NO_COLOR===void 0?{FORCE_COLOR:`true`}:{}},preferLocal:!0,reject:!1,stdin:`inherit`});if(a.outputFilter){let e=j(a.outputFilter),n=j(a.outputFilter);t.stdout.pipe(e).pipe(m,{end:!1}),t.stderr.pipe(n).pipe(m,{end:!1})}else t.stdout.pipe(m,{end:!1}),t.stderr.pipe(m,{end:!1});if(await t,a.prettyJsonOutput){m.end();let e=await se(m),t=C(JSON.parse(e)).split(`
5
5
  `);for(let e of t)c.write(`${e}\n`)}s=t.exitCode??1}catch(e){console.error(`${a.name} failed with error:`),console.error(e),re(e)&&(s=typeof e.exitCode==`number`?e.exitCode:1)}return s}function ue(e){return`execute`in e}const de=/^ksc-/;function P(e){return e.replace(de,``)}function F(e){return e===void 0||e.length===0?[]:e.flatMap(e=>e.split(`,`)).map(e=>P(e.trim()))}function I(e){return e.option(`skip`,{array:!0,describe:`Tool names to skip (with or without "ksc-" prefix).`,type:`string`})}async function L(e,t,n,r,i,a,o){let s=o??[],c=[],u=[];for(let e of r)s.length>0&&s.includes(P(e.name))?u.push(e):c.push(e);if(s.length>0){let t=new Set(u.map(e=>P(e.name))),n=s.filter(e=>!t.has(e));if(n.length>0){let t=r.map(e=>P(e.name)).join(`, `);e.write(`⚠️ ${l.yellow(`Unrecognized --skip ${N(`value`,n.length)}: ${n.join(`, `)}. Available: ${t}`)}\n`)}}let d=[];for(let r of c){let a=await(ue(r)?ce(e,t,n,r,i):le(e,t,n,r,i));d.push({exitCode:a,name:r.name})}let f=r.length;if(u.length>0){let t=u.map(({name:e})=>e);e.write(`⏭️ ${l.dim(l.bold(`${t.length} / ${f} ${N(`Command`,t.length)} Skipped:`))} ${l.dim(t.join(`, `))}\n`)}if(a){let t=d.filter(({exitCode:e})=>e===0).map(({name:e})=>e),n=d.filter(({exitCode:e})=>e!==0).map(({name:e})=>e);t.length>0&&e.write(`✅ ${l.green(l.bold(`${t.length} / ${f} ${N(`Command`,t.length)} Succeeded:`))} ${l.green(t.join(`, `))}\n`),n.length>0&&e.write(`❌ ${l.red(l.bold(`${n.length} / ${f} ${N(`Command`,n.length)} Failed:`))} ${l.red(n.join(`, `))}\n`)}return+!d.every(({exitCode:e})=>e===0)}async function R(e,i,a,c){let l=await s();if(l===void 0)throw Error("The `init` command must be used in a directory with a package.json file");let u=await s({cwd:o(import.meta.url)});if(u===void 0)return e.write(`Error: The script being called was not in a package, weird.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kitschpatrol/repo-config",
3
- "version": "7.5.1",
3
+ "version": "7.5.2",
4
4
  "description": "Repository configuration and GitHub workflows for @kitschpatrol/shared-config.",
5
5
  "keywords": [
6
6
  "shared-config",