@under_koen/bsm 0.0.4 → 0.0.5
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/README.md +31 -1
- package/dist/index.js +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -450,7 +450,7 @@ You can extend scripts by using the `extends` key. You can import scripts from o
|
|
|
450
450
|
|
|
451
451
|
```javascript
|
|
452
452
|
module.exports = {
|
|
453
|
-
extends: ['@under_koen/bsm/package.scripts.js'
|
|
453
|
+
extends: ['@under_koen/bsm/package.scripts.js'],
|
|
454
454
|
scripts: {},
|
|
455
455
|
}
|
|
456
456
|
```
|
|
@@ -461,6 +461,36 @@ bsm lint
|
|
|
461
461
|
|
|
462
462
|
The above command will execute `lint` coming from the `package.scripts.js` of `@under_koen/bsm`.
|
|
463
463
|
|
|
464
|
+
#### Extending with options (experimental)
|
|
465
|
+
|
|
466
|
+
You can extend scripts with options by using the `extends` key. You can import scripts from other files or packages.
|
|
467
|
+
|
|
468
|
+
```javascript
|
|
469
|
+
// package.scripts.js
|
|
470
|
+
module.exports = {
|
|
471
|
+
extends: [
|
|
472
|
+
['./test', "World"]
|
|
473
|
+
],
|
|
474
|
+
scripts: {},
|
|
475
|
+
}
|
|
476
|
+
```
|
|
477
|
+
|
|
478
|
+
```javascript
|
|
479
|
+
// test.js
|
|
480
|
+
|
|
481
|
+
module.exports = (name) => ({
|
|
482
|
+
scripts: {
|
|
483
|
+
test: `echo Hello ${name}!`,
|
|
484
|
+
},
|
|
485
|
+
});
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
```bash
|
|
489
|
+
bsm test
|
|
490
|
+
```
|
|
491
|
+
|
|
492
|
+
The above command will execute `echo Hello World!`.
|
|
493
|
+
|
|
464
494
|
## Future plans
|
|
465
495
|
|
|
466
496
|
- [ ] Have support for workspaces / lerna
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#! /usr/bin/env node
|
|
2
|
-
"use strict";var rn=Object.create;var V=Object.defineProperty;var on=Object.getOwnPropertyDescriptor;var sn=Object.getOwnPropertyNames;var cn=Object.getPrototypeOf,an=Object.prototype.hasOwnProperty;var h=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var fn=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of sn(e))!an.call(n,o)&&o!==t&&V(n,o,{get:()=>e[o],enumerable:!(r=on(e,o))||r.enumerable});return n};var P=(n,e,t)=>(t=n!=null?rn(cn(n)):{},fn(e||!n||!n.__esModule?V(t,"default",{value:n,enumerable:!0}):t,n));var W=h((mn,Y)=>{"use strict";function un(n,e){var t=n;e.slice(0,-1).forEach(function(o){t=t[o]||{}});var r=e[e.length-1];return r in t}function x(n){return typeof n=="number"||/^0x[0-9a-f]+$/i.test(n)?!0:/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(n)}function K(n,e){return e==="constructor"&&typeof n[e]=="function"||e==="__proto__"}Y.exports=function(n,e){e||(e={});var t={bools:{},strings:{},unknownFn:null};typeof e.unknown=="function"&&(t.unknownFn=e.unknown),typeof e.boolean=="boolean"&&e.boolean?t.allBools=!0:[].concat(e.boolean).filter(Boolean).forEach(function(i){t.bools[i]=!0});var r={};function o(i){return r[i].some(function(l){return t.bools[l]})}Object.keys(e.alias||{}).forEach(function(i){r[i]=[].concat(e.alias[i]),r[i].forEach(function(l){r[l]=[i].concat(r[i].filter(function(d){return l!==d}))})}),[].concat(e.string).filter(Boolean).forEach(function(i){t.strings[i]=!0,r[i]&&[].concat(r[i]).forEach(function(l){t.strings[l]=!0})});var c=e.default||{},s={_:[]};function L(i,l){return t.allBools&&/^--[^=]+$/.test(l)||t.strings[i]||t.bools[i]||r[i]}function O(i,l,d){for(var f=i,D=0;D<l.length-1;D++){var T=l[D];if(K(f,T))return;f[T]===void 0&&(f[T]={}),(f[T]===Object.prototype||f[T]===Number.prototype||f[T]===String.prototype)&&(f[T]={}),f[T]===Array.prototype&&(f[T]=[]),f=f[T]}var m=l[l.length-1];K(f,m)||((f===Object.prototype||f===Number.prototype||f===String.prototype)&&(f={}),f===Array.prototype&&(f=[]),f[m]===void 0||t.bools[m]||typeof f[m]=="boolean"?f[m]=d:Array.isArray(f[m])?f[m].push(d):f[m]=[f[m],d])}function I(i,l,d){if(!(d&&t.unknownFn&&!L(i,d)&&t.unknownFn(d)===!1)){var f=!t.strings[i]&&x(l)?Number(l):l;O(s,i.split("."),f),(r[i]||[]).forEach(function(D){O(s,D.split("."),f)})}}Object.keys(t.bools).forEach(function(i){I(i,c[i]===void 0?!1:c[i])});var w=[];n.indexOf("--")!==-1&&(w=n.slice(n.indexOf("--")+1),n=n.slice(0,n.indexOf("--")));for(var _=0;_<n.length;_++){var a=n[_],u,S;if(/^--.+=/.test(a)){var Q=a.match(/^--([^=]+)=([\s\S]*)$/);u=Q[1];var g=Q[2];t.bools[u]&&(g=g!=="false"),I(u,g,a)}else if(/^--no-.+/.test(a))u=a.match(/^--no-(.+)/)[1],I(u,!1,a);else if(/^--.+/.test(a))u=a.match(/^--(.+)/)[1],S=n[_+1],S!==void 0&&!/^(-|--)[^-]/.test(S)&&!t.bools[u]&&!t.allBools&&(!r[u]||!o(u))?(I(u,S,a),_+=1):/^(true|false)$/.test(S)?(I(u,S==="true",a),_+=1):I(u,t.strings[u]?"":!0,a);else if(/^-[^-]+/.test(a)){for(var C=a.slice(1,-1).split(""),B=!1,p=0;p<C.length;p++){if(S=a.slice(p+2),S==="-"){I(C[p],S,a);continue}if(/[A-Za-z]/.test(C[p])&&S[0]==="="){I(C[p],S.slice(1),a),B=!0;break}if(/[A-Za-z]/.test(C[p])&&/-?\d+(\.\d*)?(e-?\d+)?$/.test(S)){I(C[p],S,a),B=!0;break}if(C[p+1]&&C[p+1].match(/\W/)){I(C[p],a.slice(p+2),a),B=!0;break}else I(C[p],t.strings[C[p]]?"":!0,a)}u=a.slice(-1)[0],!B&&u!=="-"&&(n[_+1]&&!/^(-|--)[^-]/.test(n[_+1])&&!t.bools[u]&&(!r[u]||!o(u))?(I(u,n[_+1],a),_+=1):n[_+1]&&/^(true|false)$/.test(n[_+1])?(I(u,n[_+1]==="true",a),_+=1):I(u,t.strings[u]?"":!0,a))}else if((!t.unknownFn||t.unknownFn(a)!==!1)&&s._.push(t.strings._||!x(a)?a:Number(a)),e.stopEarly){s._.push.apply(s._,n.slice(_+1));break}}return Object.keys(c).forEach(function(i){un(s,i.split("."))||(O(s,i.split("."),c[i]),(r[i]||[]).forEach(function(l){O(s,l.split("."),c[i])}))}),e["--"]?s["--"]=w.slice():w.forEach(function(i){s._.push(i)}),s}});var j=h((An,ln)=>{ln.exports=[{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codemagic",constant:"CODEMAGIC",env:"CM_BUILD_ID",pr:"CM_PULL_REQUEST"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"Expo Application Services",constant:"EAS",env:"EAS_BUILD"},{name:"Gerrit",constant:"GERRIT",env:"GERRIT_PROJECT"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Google Cloud Build",constant:"GOOGLE_CLOUD_BUILD",env:"BUILDER_OUTPUT"},{name:"Harness CI",constant:"HARNESS",env:"HARNESS_BUILD_ID"},{name:"Heroku",constant:"HEROKU",env:{env:"NODE",includes:"/app/.heroku/node/bin/node"}},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"ReleaseHub",constant:"RELEASEHUB",env:"RELEASE_BUILD_ID"},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Sourcehut",constant:"SOURCEHUT",env:{CI_NAME:"sourcehut"}},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:{any:["NOW_BUILDER","VERCEL"]}},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"},{name:"Woodpecker",constant:"WOODPECKER",env:{CI:"woodpecker"},pr:{CI_BUILD_EVENT:"pull_request"}},{name:"Xcode Cloud",constant:"XCODE_CLOUD",env:"CI_XCODE_PROJECT",pr:"CI_PULL_REQUEST_NUMBER"},{name:"Xcode Server",constant:"XCODE_SERVER",env:"XCS"}]});var q=h(R=>{"use strict";var J=j(),E=process.env;Object.defineProperty(R,"_vendors",{value:J.map(function(n){return n.constant})});R.name=null;R.isPR=null;J.forEach(function(n){let t=(Array.isArray(n.env)?n.env:[n.env]).every(function(r){return X(r)});if(R[n.constant]=t,!!t)switch(R.name=n.name,typeof n.pr){case"string":R.isPR=!!E[n.pr];break;case"object":"env"in n.pr?R.isPR=n.pr.env in E&&E[n.pr.env]!==n.pr.ne:"any"in n.pr?R.isPR=n.pr.any.some(function(r){return!!E[r]}):R.isPR=X(n.pr);break;default:R.isPR=null}});R.isCI=!!(E.CI!=="false"&&(E.BUILD_ID||E.BUILD_NUMBER||E.CI||E.CI_APP_ID||E.CI_BUILD_ID||E.CI_BUILD_NUMBER||E.CI_NAME||E.CONTINUOUS_INTEGRATION||E.RUN_ID||R.name));function X(n){return typeof n=="string"?!!E[n]:"env"in n?E[n.env]&&E[n.env].includes(n.includes):"any"in n?n.any.some(function(e){return!!E[e]}):Object.keys(n).every(function(e){return E[e]===n[e]})}});var Z=P(W());function M(n){return n!==null&&typeof n=="object"}function y(n,e,t=".",r){if(!M(e))return y(n,{},t,r);let o=Object.assign({},e);for(let c in n){if(c==="__proto__"||c==="constructor")continue;let s=n[c];s!=null&&(r&&r(o,c,s,t)||(Array.isArray(s)&&Array.isArray(o[c])?o[c]=[...s,...o[c]]:M(s)&&M(o[c])?o[c]=y(s,o[c],(t?`${t}.`:"")+c.toString(),r):o[c]=s))}return o}function H(n){return(...e)=>e.reduce((t,r)=>y(t,r,"",n),{})}var F=H(),Un=H((n,e,t)=>{if(typeof n[e]<"u"&&typeof t=="function")return n[e]=t(n[e]),!0}),vn=H((n,e,t)=>{if(Array.isArray(n[e])&&typeof t=="function")return n[e]=t(n[e]),!0});var k=P(require("node:child_process")),N=P(require("node:fs")),b=P(require("path")),nn=P(q()),A=(0,Z.default)(process.argv.slice(2),{"--":!0}),en=A.config?[A.config]:[process.env.BSM_CONFIG,"./package.scripts.js","./package.scripts.json"],{config:G,file:En}=en.reduce((n,e)=>{if(n||!e)return n;let t=tn(e);if(t)return{config:t,file:e}},void 0)??{};process.env.BSM_CONFIG=En;var z={scripts:{},config:{allowFunction:!1}};function tn(n){if(n)try{n=require.resolve(n,{paths:[process.cwd()]});let e=require(n);if(Object.hasOwn(e,"extends")&&e.extends){let t=[];for(let r of e.extends){let o=tn(r);o?t.push(o):(console.error(`\x1B[31mCannot find config '${r}' to extend\x1B[0m`),process.exit(1))}return F(e,...t,z)}else return F(e,z)}catch(e){if((e==null?void 0:e.code)==="MODULE_NOT_FOUND")return;console.error(e),console.error(`\x1B[31mError loading config '${n}'\x1B[0m`),process.exit(1)}}async function _n(){G||(console.error(`\x1B[31mCannot find config ${en.filter(n=>n!==void 0).map(n=>`'${n}'`).join(" or ")}\x1B[0m`),process.exit(1)),In(process.env,await pn());for(let n of A._){if(n.startsWith("~")&&process.env.BSM_PATH){let e=process.env.BSM_PATH.split("."),t=$(G.scripts,e);if(t){await v(t,n.split(".").splice(1),e);continue}}await v(G.scripts,n.split("."))}}function In(n,e){if(e)if(process.platform==="win32"){if(!process.env.Path||process.env.Path.includes(e))return;n.Path=`${process.env.Path};${e}`}else{if(!process.env.PATH||process.env.PATH.includes(e))return;n.PATH=`${process.env.PATH}:${e}`}}async function pn(){let n=process.cwd();for(;await N.promises.access(b.default.join(n,"node_modules/.bin"),N.constants.X_OK).then(()=>!1,()=>!0);){let e=b.default.join(n,"../");if(e===n)return null;n=e}return b.default.join(n,"node_modules/.bin")}function $(n,e){if(e.length===0)return n;let t=e[0];if(typeof n=="object"&&Object.hasOwn(n,t))if(Array.isArray(n)){let r=parseInt(t);return $(n[r],e.slice(1))}else return $(n[t],e.slice(1))}async function v(n,e,t=[],r=!0,o=!1){try{if(typeof n=="function")try{let s=await Rn(n,e,t);if(!s&&e.length===0)return;await v(s??{},e,t,r);return}catch(s){throw console.error(s),console.error(`\x1B[31mError executing function '${t.join(".")}'\x1B[0m`),{code:1,script:t.join(".")}}await U(n,["_pre"],t,!1,!0);let c=e.slice(1);if(e.length===0)await Cn(n,t,r,o);else if(e[0]==="*")await Sn(n,c,t);else if(!await U(n,e,t,!0,!1,!1))return console.error(`\x1B[31mScript '${[...t,...e].join(".")}' not found\x1B[0m`),process.exit(127);await U(n,["_post"],t,!1,!0)}catch(c){if(process.env.BSM_ERROR=c.code.toString(),await U(n,["_onError"],t,!1,!0),!await U(n,["_catch"],t,!1))throw c}finally{await U(n,["_finally"],t,!1,!0)}}async function Sn(n,e,t){if(typeof n=="string")await v(n,e,t);else if(typeof n=="function")process.exit(100);else if(Array.isArray(n))for(let r=0;r<n.length;r++)await v(n[r],e,[...t,r.toString()],!0,!0);else for(let r in n)r.startsWith("_")||Object.hasOwn(n,r)&&await v(n[r],e,[...t,r],!0,!0)}async function Rn(n,e,t){return console.log(`> \x1B[93mExecuting JavaScript function\x1B[0m \x1B[90m(${[...t].join(".")})\x1B[0m`),await n.call(null,A["--"])}async function U(n,e,t,r=!0,o=!1,c=!0){if(o&&process.env.BSM_SCRIPT===[...t,...e].join("."))return!1;let s=e[0];if(typeof n!="object"||!Object.hasOwn(n,s))return!1;if(Array.isArray(n)){let L=parseInt(s);await v(n[L],e.slice(1),[...t,s],r,c)}else await v(n[s],e.slice(1),[...t,s],r,c);return!0}async function Cn(n,e,t,r){switch(typeof n){case"string":await Tn(n,e,t);return;case"object":if(Array.isArray(n))for(let o=0;o<n.length;o++)await v(n[o],[],[...e,o.toString()]);else if(!(nn.isCI&&await U(n,["_ci"],e))){if(!await U(n,[`_${process.platform}`],e)){if(!await U(n,["_default"],e)){if(!r)return console.error(`\x1B[31mScript '${[...e].join(".")}' is not executable\x1B[0m`),process.exit(127)}}}return}}async function Tn(n,e,t){var r;if(t&&((r=A["--"])!=null&&r.length)&&(n+=" "+A["--"].join(" ")),console.log(`> ${n} \x1B[90m(${e.join(".")})\x1B[0m`),n!=="")return await new Promise((o,c)=>{k.default.spawn(n,[],{stdio:"inherit",shell:!0,env:{...process.env,BSM_PATH:e.slice(0,-1).join("."),BSM_SCRIPT:e.join(".")}}).on("close",L=>{L===0?o():c({code:L,script:e.join(".")})})})}_n().catch(n=>{console.error(`\x1B[31mScript failed with code ${n.code}\x1B[0m \x1B[90m(${n.script})\x1B[0m`),process.exit(n.code)});
|
|
2
|
+
"use strict";var on=Object.create;var y=Object.defineProperty;var sn=Object.getOwnPropertyDescriptor;var cn=Object.getOwnPropertyNames;var an=Object.getPrototypeOf,fn=Object.prototype.hasOwnProperty;var h=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var V=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of cn(e))!fn.call(n,i)&&i!==t&&y(n,i,{get:()=>e[i],enumerable:!(r=sn(e,i))||r.enumerable});return n};var P=(n,e,t)=>(t=n!=null?on(an(n)):{},V(e||!n||!n.__esModule?y(t,"default",{value:n,enumerable:!0}):t,n)),un=n=>V(y({},"__esModule",{value:!0}),n);var j=h((vn,W)=>{"use strict";function ln(n,e){var t=n;e.slice(0,-1).forEach(function(i){t=t[i]||{}});var r=e[e.length-1];return r in t}function K(n){return typeof n=="number"||/^0x[0-9a-f]+$/i.test(n)?!0:/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(n)}function Y(n,e){return e==="constructor"&&typeof n[e]=="function"||e==="__proto__"}W.exports=function(n,e){e||(e={});var t={bools:{},strings:{},unknownFn:null};typeof e.unknown=="function"&&(t.unknownFn=e.unknown),typeof e.boolean=="boolean"&&e.boolean?t.allBools=!0:[].concat(e.boolean).filter(Boolean).forEach(function(o){t.bools[o]=!0});var r={};function i(o){return r[o].some(function(l){return t.bools[l]})}Object.keys(e.alias||{}).forEach(function(o){r[o]=[].concat(e.alias[o]),r[o].forEach(function(l){r[l]=[o].concat(r[o].filter(function(d){return l!==d}))})}),[].concat(e.string).filter(Boolean).forEach(function(o){t.strings[o]=!0,r[o]&&[].concat(r[o]).forEach(function(l){t.strings[l]=!0})});var c=e.default||{},s={_:[]};function A(o,l){return t.allBools&&/^--[^=]+$/.test(l)||t.strings[o]||t.bools[o]||r[o]}function O(o,l,d){for(var f=o,D=0;D<l.length-1;D++){var T=l[D];if(Y(f,T))return;f[T]===void 0&&(f[T]={}),(f[T]===Object.prototype||f[T]===Number.prototype||f[T]===String.prototype)&&(f[T]={}),f[T]===Array.prototype&&(f[T]=[]),f=f[T]}var m=l[l.length-1];Y(f,m)||((f===Object.prototype||f===Number.prototype||f===String.prototype)&&(f={}),f===Array.prototype&&(f=[]),f[m]===void 0||t.bools[m]||typeof f[m]=="boolean"?f[m]=d:Array.isArray(f[m])?f[m].push(d):f[m]=[f[m],d])}function I(o,l,d){if(!(d&&t.unknownFn&&!A(o,d)&&t.unknownFn(d)===!1)){var f=!t.strings[o]&&K(l)?Number(l):l;O(s,o.split("."),f),(r[o]||[]).forEach(function(D){O(s,D.split("."),f)})}}Object.keys(t.bools).forEach(function(o){I(o,c[o]===void 0?!1:c[o])});var w=[];n.indexOf("--")!==-1&&(w=n.slice(n.indexOf("--")+1),n=n.slice(0,n.indexOf("--")));for(var _=0;_<n.length;_++){var a=n[_],u,p;if(/^--.+=/.test(a)){var Q=a.match(/^--([^=]+)=([\s\S]*)$/);u=Q[1];var g=Q[2];t.bools[u]&&(g=g!=="false"),I(u,g,a)}else if(/^--no-.+/.test(a))u=a.match(/^--no-(.+)/)[1],I(u,!1,a);else if(/^--.+/.test(a))u=a.match(/^--(.+)/)[1],p=n[_+1],p!==void 0&&!/^(-|--)[^-]/.test(p)&&!t.bools[u]&&!t.allBools&&(!r[u]||!i(u))?(I(u,p,a),_+=1):/^(true|false)$/.test(p)?(I(u,p==="true",a),_+=1):I(u,t.strings[u]?"":!0,a);else if(/^-[^-]+/.test(a)){for(var R=a.slice(1,-1).split(""),B=!1,S=0;S<R.length;S++){if(p=a.slice(S+2),p==="-"){I(R[S],p,a);continue}if(/[A-Za-z]/.test(R[S])&&p[0]==="="){I(R[S],p.slice(1),a),B=!0;break}if(/[A-Za-z]/.test(R[S])&&/-?\d+(\.\d*)?(e-?\d+)?$/.test(p)){I(R[S],p,a),B=!0;break}if(R[S+1]&&R[S+1].match(/\W/)){I(R[S],a.slice(S+2),a),B=!0;break}else I(R[S],t.strings[R[S]]?"":!0,a)}u=a.slice(-1)[0],!B&&u!=="-"&&(n[_+1]&&!/^(-|--)[^-]/.test(n[_+1])&&!t.bools[u]&&(!r[u]||!i(u))?(I(u,n[_+1],a),_+=1):n[_+1]&&/^(true|false)$/.test(n[_+1])?(I(u,n[_+1]==="true",a),_+=1):I(u,t.strings[u]?"":!0,a))}else if((!t.unknownFn||t.unknownFn(a)!==!1)&&s._.push(t.strings._||!K(a)?a:Number(a)),e.stopEarly){s._.push.apply(s._,n.slice(_+1));break}}return Object.keys(c).forEach(function(o){ln(s,o.split("."))||(O(s,o.split("."),c[o]),(r[o]||[]).forEach(function(l){O(s,l.split("."),c[o])}))}),e["--"]?s["--"]=w.slice():w.forEach(function(o){s._.push(o)}),s}});var X=h((Pn,En)=>{En.exports=[{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codemagic",constant:"CODEMAGIC",env:"CM_BUILD_ID",pr:"CM_PULL_REQUEST"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"Expo Application Services",constant:"EAS",env:"EAS_BUILD"},{name:"Gerrit",constant:"GERRIT",env:"GERRIT_PROJECT"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Google Cloud Build",constant:"GOOGLE_CLOUD_BUILD",env:"BUILDER_OUTPUT"},{name:"Harness CI",constant:"HARNESS",env:"HARNESS_BUILD_ID"},{name:"Heroku",constant:"HEROKU",env:{env:"NODE",includes:"/app/.heroku/node/bin/node"}},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"ReleaseHub",constant:"RELEASEHUB",env:"RELEASE_BUILD_ID"},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Sourcehut",constant:"SOURCEHUT",env:{CI_NAME:"sourcehut"}},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:{any:["NOW_BUILDER","VERCEL"]}},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"},{name:"Woodpecker",constant:"WOODPECKER",env:{CI:"woodpecker"},pr:{CI_BUILD_EVENT:"pull_request"}},{name:"Xcode Cloud",constant:"XCODE_CLOUD",env:"CI_XCODE_PROJECT",pr:"CI_PULL_REQUEST_NUMBER"},{name:"Xcode Server",constant:"XCODE_SERVER",env:"XCS"}]});var z=h(C=>{"use strict";var q=X(),E=process.env;Object.defineProperty(C,"_vendors",{value:q.map(function(n){return n.constant})});C.name=null;C.isPR=null;q.forEach(function(n){let t=(Array.isArray(n.env)?n.env:[n.env]).every(function(r){return J(r)});if(C[n.constant]=t,!!t)switch(C.name=n.name,typeof n.pr){case"string":C.isPR=!!E[n.pr];break;case"object":"env"in n.pr?C.isPR=n.pr.env in E&&E[n.pr.env]!==n.pr.ne:"any"in n.pr?C.isPR=n.pr.any.some(function(r){return!!E[r]}):C.isPR=J(n.pr);break;default:C.isPR=null}});C.isCI=!!(E.CI!=="false"&&(E.BUILD_ID||E.BUILD_NUMBER||E.CI||E.CI_APP_ID||E.CI_BUILD_ID||E.CI_BUILD_NUMBER||E.CI_NAME||E.CONTINUOUS_INTEGRATION||E.RUN_ID||C.name));function J(n){return typeof n=="string"?!!E[n]:"env"in n?E[n.env]&&E[n.env].includes(n.includes):"any"in n?n.any.some(function(e){return!!E[e]}):Object.keys(n).every(function(e){return E[e]===n[e]})}});var mn={};module.exports=un(mn);var k=P(j());function M(n){return n!==null&&typeof n=="object"}function H(n,e,t=".",r){if(!M(e))return H(n,{},t,r);let i=Object.assign({},e);for(let c in n){if(c==="__proto__"||c==="constructor")continue;let s=n[c];s!=null&&(r&&r(i,c,s,t)||(Array.isArray(s)&&Array.isArray(i[c])?i[c]=[...s,...i[c]]:M(s)&&M(i[c])?i[c]=H(s,i[c],(t?`${t}.`:"")+c.toString(),r):i[c]=s))}return i}function F(n){return(...e)=>e.reduce((t,r)=>H(t,r,"",n),{})}var G=F(),An=F((n,e,t)=>{if(typeof n[e]<"u"&&typeof t=="function")return n[e]=t(n[e]),!0}),Ln=F((n,e,t)=>{if(Array.isArray(n[e])&&typeof t=="function")return n[e]=t(n[e]),!0});var nn=P(require("node:child_process")),N=P(require("node:fs")),b=P(require("path")),en=P(z()),L=(0,k.default)(process.argv.slice(2),{"--":!0}),tn=L.config?[L.config]:[process.env.BSM_CONFIG,"./package.scripts.js","./package.scripts.json"],{config:$,file:_n}=tn.reduce((n,e)=>{if(n||!e)return n;let t=rn(e);if(t)return{config:t,file:e}},void 0)??{};process.env.BSM_CONFIG=_n;var Z={scripts:{},config:{allowFunction:!1}};function rn(n){if(n)try{let e=Array.isArray(n)?n[0]:n;e=require.resolve(e,{paths:[process.cwd()]});let t=require(e);if(typeof t=="function"&&(t=t(...Array.isArray(n)?n.slice(1):[])),Object.hasOwn(t,"extends")&&t.extends){let r=[];for(let i of t.extends){let c=rn(i);Array.isArray(i)&&(i=i[0]),c?r.push(c):(console.error(`\x1B[31mCannot find config '${i}' to extend\x1B[0m`),process.exit(1))}return G(t,...r,Z)}else return G(t,Z)}catch(e){if((e==null?void 0:e.code)==="MODULE_NOT_FOUND")return;console.error(e),Array.isArray(n)&&(n=n[0]),console.error(`\x1B[31mError loading config '${n}'\x1B[0m`),process.exit(1)}}async function In(){$||(console.error(`\x1B[31mCannot find config ${tn.filter(n=>n!==void 0).map(n=>`'${n}'`).join(" or ")}\x1B[0m`),process.exit(1)),Sn(process.env,await pn());for(let n of L._){if(n.startsWith("~")&&process.env.BSM_PATH){let e=process.env.BSM_PATH.split("."),t=x($.scripts,e);if(t){await v(t,n.split(".").splice(1),e);continue}}await v($.scripts,n.split("."))}}function Sn(n,e){if(e)if(process.platform==="win32"){if(!process.env.Path||process.env.Path.includes(e))return;n.Path=`${process.env.Path};${e}`}else{if(!process.env.PATH||process.env.PATH.includes(e))return;n.PATH=`${process.env.PATH}:${e}`}}async function pn(){let n=process.cwd();for(;await N.promises.access(b.default.join(n,"node_modules/.bin"),N.constants.X_OK).then(()=>!1,()=>!0);){let e=b.default.join(n,"../");if(e===n)return null;n=e}return b.default.join(n,"node_modules/.bin")}function x(n,e){if(e.length===0)return n;let t=e[0];if(typeof n=="object"&&Object.hasOwn(n,t))if(Array.isArray(n)){let r=parseInt(t);return x(n[r],e.slice(1))}else return x(n[t],e.slice(1))}async function v(n,e,t=[],r=!0,i=!1){try{if(typeof n=="function")try{let s=await Rn(n,e,t);if(!s&&e.length===0)return;await v(s??{},e,t,r);return}catch(s){throw console.error(s),console.error(`\x1B[31mError executing function '${t.join(".")}'\x1B[0m`),{code:1,script:t.join(".")}}await U(n,["_pre"],t,!1,!0);let c=e.slice(1);if(e.length===0)await Tn(n,t,r,i);else if(e[0]==="*")await Cn(n,c,t);else if(!await U(n,e,t,!0,!1,!1))return console.error(`\x1B[31mScript '${[...t,...e].join(".")}' not found\x1B[0m`),process.exit(127);await U(n,["_post"],t,!1,!0)}catch(c){if(process.env.BSM_ERROR=c.code.toString(),await U(n,["_onError"],t,!1,!0),!await U(n,["_catch"],t,!1))throw c}finally{await U(n,["_finally"],t,!1,!0)}}async function Cn(n,e,t){if(typeof n=="string")await v(n,e,t);else if(typeof n=="function")process.exit(100);else if(Array.isArray(n))for(let r=0;r<n.length;r++)await v(n[r],e,[...t,r.toString()],!0,!0);else for(let r in n)r.startsWith("_")||Object.hasOwn(n,r)&&await v(n[r],e,[...t,r],!0,!0)}async function Rn(n,e,t){return console.log(`> \x1B[93mExecuting JavaScript function\x1B[0m \x1B[90m(${[...t].join(".")})\x1B[0m`),await n.call(null,L["--"])}async function U(n,e,t,r=!0,i=!1,c=!0){if(i&&process.env.BSM_SCRIPT===[...t,...e].join("."))return!1;let s=e[0];if(typeof n!="object"||!Object.hasOwn(n,s))return!1;if(Array.isArray(n)){let A=parseInt(s);await v(n[A],e.slice(1),[...t,s],r,c)}else await v(n[s],e.slice(1),[...t,s],r,c);return!0}async function Tn(n,e,t,r){switch(typeof n){case"string":await dn(n,e,t);return;case"object":if(Array.isArray(n))for(let i=0;i<n.length;i++)await v(n[i],[],[...e,i.toString()]);else if(!(en.isCI&&await U(n,["_ci"],e))){if(!await U(n,[`_${process.platform}`],e)){if(!await U(n,["_default"],e)){if(!r)return console.error(`\x1B[31mScript '${[...e].join(".")}' is not executable\x1B[0m`),process.exit(127)}}}return}}async function dn(n,e,t){var r;if(t&&((r=L["--"])!=null&&r.length)&&(n+=" "+L["--"].join(" ")),console.log(`> ${n} \x1B[90m(${e.join(".")})\x1B[0m`),n!=="")return await new Promise((i,c)=>{nn.default.spawn(n,[],{stdio:"inherit",shell:!0,env:{...process.env,BSM_PATH:e.slice(0,-1).join("."),BSM_SCRIPT:e.join(".")}}).on("close",A=>{A===0?i():c({code:A,script:e.join(".")})})})}In().catch(n=>{console.error(`\x1B[31mScript failed with code ${n.code}\x1B[0m \x1B[90m(${n.script})\x1B[0m`),process.exit(n.code)});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@under_koen/bsm",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.5",
|
|
4
4
|
"description": "BSM (Basic Script Manager) is a useful tool that enables you to create clear and concise scripts without cluttering your `package.json` file.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Koen van Staveren <koen@underkoen.nl>",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"@types/node": "^20.3.1",
|
|
32
32
|
"@typescript-eslint/eslint-plugin": "^5.60.0",
|
|
33
33
|
"@typescript-eslint/parser": "^5.60.0",
|
|
34
|
-
"@under_koen/bsm": "^0.0.
|
|
34
|
+
"@under_koen/bsm": "^0.0.4",
|
|
35
35
|
"ci-info": "^3.8.0",
|
|
36
36
|
"defu": "^6.1.2",
|
|
37
37
|
"esbuild": "^0.18.6",
|