@under_koen/bsm 0.0.4 → 0.0.6
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 +37 -6
- package/dist/index.js +3 -1
- package/package.json +9 -10
package/README.md
CHANGED
|
@@ -98,6 +98,7 @@ module.exports = {
|
|
|
98
98
|
```
|
|
99
99
|
|
|
100
100
|
In this example the following scripts are available:
|
|
101
|
+
|
|
101
102
|
- `bsm example.test`
|
|
102
103
|
- `bsm example.variant`
|
|
103
104
|
- `bsm example.subgroups.test`
|
|
@@ -112,6 +113,7 @@ module.exports = {
|
|
|
112
113
|
```
|
|
113
114
|
|
|
114
115
|
In this example the following scripts are available:
|
|
116
|
+
|
|
115
117
|
- `bsm example` (will run all scripts in the array)
|
|
116
118
|
- `bsm example.0`
|
|
117
119
|
- `bsm example.1`
|
|
@@ -138,9 +140,10 @@ module.exports = {
|
|
|
138
140
|
Specified scripts replace the default script when an condition is met.
|
|
139
141
|
|
|
140
142
|
The order of precedence is as follows:
|
|
141
|
-
|
|
142
|
-
-
|
|
143
|
-
-
|
|
143
|
+
|
|
144
|
+
- \_ci
|
|
145
|
+
- \_[os]
|
|
146
|
+
- \_default
|
|
144
147
|
|
|
145
148
|
#### CI Specified scripts
|
|
146
149
|
|
|
@@ -307,7 +310,7 @@ module.exports = {
|
|
|
307
310
|
bsm example
|
|
308
311
|
```
|
|
309
312
|
|
|
310
|
-
The above command will execute `example._default` and `example._onError`.
|
|
313
|
+
The above command will execute `example._default` and `example._onError`.
|
|
311
314
|
This will also exit with code `1`.
|
|
312
315
|
|
|
313
316
|
#### Catch hooks
|
|
@@ -450,9 +453,9 @@ You can extend scripts by using the `extends` key. You can import scripts from o
|
|
|
450
453
|
|
|
451
454
|
```javascript
|
|
452
455
|
module.exports = {
|
|
453
|
-
extends: [
|
|
456
|
+
extends: ["@under_koen/bsm/package.scripts.js"],
|
|
454
457
|
scripts: {},
|
|
455
|
-
}
|
|
458
|
+
};
|
|
456
459
|
```
|
|
457
460
|
|
|
458
461
|
```bash
|
|
@@ -461,6 +464,34 @@ bsm lint
|
|
|
461
464
|
|
|
462
465
|
The above command will execute `lint` coming from the `package.scripts.js` of `@under_koen/bsm`.
|
|
463
466
|
|
|
467
|
+
#### Extending with options (experimental)
|
|
468
|
+
|
|
469
|
+
You can extend scripts with options by using the `extends` key. You can import scripts from other files or packages.
|
|
470
|
+
|
|
471
|
+
```javascript
|
|
472
|
+
// package.scripts.js
|
|
473
|
+
module.exports = {
|
|
474
|
+
extends: [["./test", "World"]],
|
|
475
|
+
scripts: {},
|
|
476
|
+
};
|
|
477
|
+
```
|
|
478
|
+
|
|
479
|
+
```javascript
|
|
480
|
+
// test.js
|
|
481
|
+
|
|
482
|
+
module.exports = (name) => ({
|
|
483
|
+
scripts: {
|
|
484
|
+
test: `echo Hello ${name}!`,
|
|
485
|
+
},
|
|
486
|
+
});
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
```bash
|
|
490
|
+
bsm test
|
|
491
|
+
```
|
|
492
|
+
|
|
493
|
+
The above command will execute `echo Hello World!`.
|
|
494
|
+
|
|
464
495
|
## Future plans
|
|
465
496
|
|
|
466
497
|
- [ ] Have support for workspaces / lerna
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
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 fn=Object.create;var K=Object.defineProperty;var cn=Object.getOwnPropertyDescriptor;var an=Object.getOwnPropertyNames;var un=Object.getPrototypeOf,ln=Object.prototype.hasOwnProperty;var x=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var En=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of an(e))!ln.call(n,i)&&i!==t&&K(n,i,{get:()=>e[i],enumerable:!(r=cn(e,i))||r.enumerable});return n};var O=(n,e,t)=>(t=n!=null?fn(un(n)):{},En(e||!n||!n.__esModule?K(t,"default",{value:n,enumerable:!0}):t,n));var X=x((An,W)=>{"use strict";function _n(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 j(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(f){t.bools[f]=!0});var r={};function i(f){return r[f].some(function(E){return t.bools[E]})}Object.keys(e.alias||{}).forEach(function(f){r[f]=[].concat(e.alias[f]),r[f].forEach(function(E){r[E]=[f].concat(r[f].filter(function(v){return E!==v}))})}),[].concat(e.string).filter(Boolean).forEach(function(f){t.strings[f]=!0,r[f]&&[].concat(r[f]).forEach(function(E){t.strings[E]=!0})});var o=e.default||{},s={_:[]};function c(f,E){return t.allBools&&/^--[^=]+$/.test(E)||t.strings[f]||t.bools[f]||r[f]}function I(f,E,v){for(var u=f,P=0;P<E.length-1;P++){var U=E[P];if(Y(u,U))return;u[U]===void 0&&(u[U]={}),(u[U]===Object.prototype||u[U]===Number.prototype||u[U]===String.prototype)&&(u[U]={}),u[U]===Array.prototype&&(u[U]=[]),u=u[U]}var A=E[E.length-1];Y(u,A)||((u===Object.prototype||u===Number.prototype||u===String.prototype)&&(u={}),u===Array.prototype&&(u=[]),u[A]===void 0||t.bools[A]||typeof u[A]=="boolean"?u[A]=v:Array.isArray(u[A])?u[A].push(v):u[A]=[u[A],v])}function m(f,E,v){if(!(v&&t.unknownFn&&!c(f,v)&&t.unknownFn(v)===!1)){var u=!t.strings[f]&&j(E)?Number(E):E;I(s,f.split("."),u),(r[f]||[]).forEach(function(P){I(s,P.split("."),u)})}}Object.keys(t.bools).forEach(function(f){m(f,o[f]===void 0?!1:o[f])});var w=[];n.indexOf("--")!==-1&&(w=n.slice(n.indexOf("--")+1),n=n.slice(0,n.indexOf("--")));for(var p=0;p<n.length;p++){var a=n[p],l,C;if(/^--.+=/.test(a)){var V=a.match(/^--([^=]+)=([\s\S]*)$/);l=V[1];var g=V[2];t.bools[l]&&(g=g!=="false"),m(l,g,a)}else if(/^--no-.+/.test(a))l=a.match(/^--no-(.+)/)[1],m(l,!1,a);else if(/^--.+/.test(a))l=a.match(/^--(.+)/)[1],C=n[p+1],C!==void 0&&!/^(-|--)[^-]/.test(C)&&!t.bools[l]&&!t.allBools&&(!r[l]||!i(l))?(m(l,C,a),p+=1):/^(true|false)$/.test(C)?(m(l,C==="true",a),p+=1):m(l,t.strings[l]?"":!0,a);else if(/^-[^-]+/.test(a)){for(var d=a.slice(1,-1).split(""),B=!1,S=0;S<d.length;S++){if(C=a.slice(S+2),C==="-"){m(d[S],C,a);continue}if(/[A-Za-z]/.test(d[S])&&C[0]==="="){m(d[S],C.slice(1),a),B=!0;break}if(/[A-Za-z]/.test(d[S])&&/-?\d+(\.\d*)?(e-?\d+)?$/.test(C)){m(d[S],C,a),B=!0;break}if(d[S+1]&&d[S+1].match(/\W/)){m(d[S],a.slice(S+2),a),B=!0;break}else m(d[S],t.strings[d[S]]?"":!0,a)}l=a.slice(-1)[0],!B&&l!=="-"&&(n[p+1]&&!/^(-|--)[^-]/.test(n[p+1])&&!t.bools[l]&&(!r[l]||!i(l))?(m(l,n[p+1],a),p+=1):n[p+1]&&/^(true|false)$/.test(n[p+1])?(m(l,n[p+1]==="true",a),p+=1):m(l,t.strings[l]?"":!0,a))}else if((!t.unknownFn||t.unknownFn(a)!==!1)&&s._.push(t.strings._||!j(a)?a:Number(a)),e.stopEarly){s._.push.apply(s._,n.slice(p+1));break}}return Object.keys(o).forEach(function(f){_n(s,f.split("."))||(I(s,f.split("."),o[f]),(r[f]||[]).forEach(function(E){I(s,E.split("."),o[f])}))}),e["--"]?s["--"]=w.slice():w.forEach(function(f){s._.push(f)}),s}});var J=x((Pn,In)=>{In.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=x(R=>{"use strict";var z=J(),_=process.env;Object.defineProperty(R,"_vendors",{value:z.map(function(n){return n.constant})});R.name=null;R.isPR=null;z.forEach(function(n){let t=(Array.isArray(n.env)?n.env:[n.env]).every(function(r){return q(r)});if(R[n.constant]=t,!!t)switch(R.name=n.name,typeof n.pr){case"string":R.isPR=!!_[n.pr];break;case"object":"env"in n.pr?R.isPR=n.pr.env in _&&_[n.pr.env]!==n.pr.ne:"any"in n.pr?R.isPR=n.pr.any.some(function(r){return!!_[r]}):R.isPR=q(n.pr);break;default:R.isPR=null}});R.isCI=!!(_.CI!=="false"&&(_.BUILD_ID||_.BUILD_NUMBER||_.CI||_.CI_APP_ID||_.CI_BUILD_ID||_.CI_BUILD_NUMBER||_.CI_NAME||_.CONTINUOUS_INTEGRATION||_.RUN_ID||R.name));function q(n){return typeof n=="string"?!!_[n]:"env"in n?_[n.env]&&_[n.env].includes(n.includes):"any"in n?n.any.some(function(e){return!!_[e]}):Object.keys(n).every(function(e){return _[e]===n[e]})}});var en=O(X());function M(n){return n!==null&&typeof n=="object"}function $(n,e,t=".",r){if(!M(e))return $(n,{},t,r);let i=Object.assign({},e);for(let o in n){if(o==="__proto__"||o==="constructor")continue;let s=n[o];s!=null&&(r&&r(i,o,s,t)||(Array.isArray(s)&&Array.isArray(i[o])?i[o]=[...s,...i[o]]:M(s)&&M(i[o])?i[o]=$(s,i[o],(t?`${t}.`:"")+o.toString(),r):i[o]=s))}return i}function H(n){return(...e)=>e.reduce((t,r)=>$(t,r,"",n),{})}var G=H(),bn=H((n,e,t)=>{if(typeof n[e]<"u"&&typeof t=="function")return n[e]=t(n[e]),!0}),Ln=H((n,e,t)=>{if(Array.isArray(n[e])&&typeof t=="function")return n[e]=t(n[e]),!0});var tn=O(require("node:child_process")),N=O(require("node:fs")),y=O(require("path")),rn=O(Z());function h(n,e,t){let r=[];if(typeof t=="boolean"){if(!t)return}else if(typeof t=="string"||typeof t=="number")r.push(`${t}`);else if(Array.isArray(t))r.push(...t);else return;if(r.push(...e._),r.length===0)console.log(`
|
|
3
|
+
\x1B[1mAvailable commands:\x1B[0m`),k(n.scripts);else for(let i of r){console.log(`
|
|
4
|
+
\x1B[1mAvailable commands: \x1B[90m${i}\x1B[0m`);let o=i.split("."),s=[[n.scripts,[],o]];for(;s.length>0;){let c=s.shift();if(c)if(c[2].length===0)k(c[0],c[1]);else if(c[2][0]==="*"){if(typeof c[0]=="object")if(Array.isArray(c[0]))for(let I=0;I<c[0].length;I++)s.push([c[0][I],[...c[1],I.toString()],[]]);else for(let I in c[0])Object.hasOwn(c[0],I)&&s.push([c[0][I],[...c[1],I],c[2].slice(1)])}else{let I=c[2][0];if(typeof c[0]=="object")if(Array.isArray(c[0])){let m=parseInt(I);s.push([c[0][m],[...c[1],m.toString()],c[2].slice(1)])}else s.push([c[0][I],[...c[1],I],c[2].slice(1)])}}}process.exit(0)}function k(n,e=[]){if(Array.isArray(n))n.forEach((t,r)=>{Q(t,[...e,r.toString()])});else if(typeof n=="object")for(let t in n)Object.hasOwn(n,t)&&Q(n[t],[...e,t]);else Q(n,e)}function Q(n,e){if(n===void 0){console.error(`\x1B[31mScript '${e.join(".")}' not found\x1B[0m`);return}let t=`\x1B[92m${e.join(".")}\x1B[90m - \x1B[0m`,r;typeof n=="string"?r=n:typeof n=="function"?r="\x1B[90m<function>\x1B[0m":Array.isArray(n)?r=`\x1B[90m[${n.length}]\x1B[0m`:r=`\x1B[90m{${Object.keys(n).join(", ")}}\x1B[0m`,console.log(`${t}${r}`)}var T=(0,en.default)(process.argv.slice(2),{"--":!0}),on=T.config?[T.config]:[process.env.BSM_CONFIG,"./package.scripts.js","./package.scripts.json"],{config:D,file:mn}=on.reduce((n,e)=>{if(n||!e)return n;let t=sn(e);if(t)return{config:t,file:e}},void 0)??{};process.env.BSM_CONFIG=mn;var nn={scripts:{},config:{allowFunction:!1}};function sn(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 o=sn(i);Array.isArray(i)&&(i=i[0]),o?r.push(o):(console.error(`\x1B[31mCannot find config '${i}' to extend\x1B[0m`),process.exit(1))}return G(t,...r,nn)}else return G(t,nn)}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 pn(){D||(console.error(`\x1B[31mCannot find config ${on.filter(n=>n!==void 0).map(n=>`'${n}'`).join(" or ")}\x1B[0m`),process.exit(1)),h(D,T,T.h),h(D,T,T.help),h(D,T,T._.length===0),Sn(process.env,await Cn());for(let n of T._){if(n.startsWith("~")&&process.env.BSM_PATH){let e=process.env.BSM_PATH.split("."),t=F(D.scripts,e);if(t){await L(t,n.split(".").splice(1),e);continue}}await L(D.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 Cn(){let n=process.cwd();for(;await N.promises.access(y.default.join(n,"node_modules/.bin"),N.constants.X_OK).then(()=>!1,()=>!0);){let e=y.default.join(n,"../");if(e===n)return null;n=e}return y.default.join(n,"node_modules/.bin")}function F(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 F(n[r],e.slice(1))}else return F(n[t],e.slice(1))}async function L(n,e,t=[],r=!0,i=!1){try{if(typeof n=="function")try{let s=await Tn(n,e,t);if(!s&&e.length===0)return;n=s??{},r=!0}catch(s){throw console.error(s),console.error(`\x1B[31mError executing function '${t.join(".")}'\x1B[0m`),{code:1,script:t.join(".")}}await b(n,["_pre"],t,!1,!0);let o=e.slice(1);if(e.length===0)await dn(n,t,r,i);else if(e[0]==="*")await Rn(n,o,t,r,!0);else if(!await b(n,e,t,r,!1,i))return console.error(`\x1B[31mScript '${[...t,...e].join(".")}' not found\x1B[0m`),process.exit(127);await b(n,["_post"],t,!1,!0)}catch(o){if(process.env.BSM_ERROR=o.code.toString(),await b(n,["_onError"],t,!1,!0),!await b(n,["_catch"],t,!1))throw o}finally{await b(n,["_finally"],t,!1,!0)}}async function Rn(n,e,t,r,i){if(typeof n=="string")await L(n,e,t);else if(typeof n=="function")process.exit(100);else if(Array.isArray(n))for(let o=0;o<n.length;o++)await L(n[o],e,[...t,o.toString()],r,i);else for(let o in n)o.startsWith("_")||Object.hasOwn(n,o)&&await L(n[o],e,[...t,o],r,i)}async function Tn(n,e,t){return console.log(`> \x1B[93mExecuting JavaScript function\x1B[0m \x1B[90m(${[...t].join(".")})\x1B[0m`),await n.call(null,T["--"])}async function b(n,e,t,r=!0,i=!1,o=!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 c=parseInt(s);await L(n[c],e.slice(1),[...t,s],r,o)}else await L(n[s],e.slice(1),[...t,s],r,o);return!0}async function dn(n,e,t,r){switch(typeof n){case"string":await Un(n,e,t);return;case"object":if(Array.isArray(n))for(let i=0;i<n.length;i++)await L(n[i],[],[...e,i.toString()],t,r);else if(!(rn.isCI&&await b(n,["_ci"],e,t,!1,r))){if(!await b(n,[`_${process.platform}`],e,t,!1,r)){if(!await b(n,["_default"],e,t,!1,r)){if(!r)return console.error(`\x1B[31mScript '${[...e].join(".")}' is not executable\x1B[0m`),process.exit(127)}}}return}}async function Un(n,e,t){var r;if(t&&((r=T["--"])!=null&&r.length)&&(n+=" "+T["--"].join(" ")),console.log(`> ${n} \x1B[90m(${e.join(".")})\x1B[0m`),n!=="")return await new Promise((i,o)=>{tn.default.spawn(n,[],{stdio:"inherit",shell:!0,env:{...process.env,BSM_PATH:e.slice(0,-1).join("."),BSM_SCRIPT:e.join(".")}}).on("close",c=>{c===0?i():o({code:c,script:e.join(".")})})})}pn().catch(n=>{n.code===void 0&&(console.error(n),console.error("\x1B[31mScript failed\x1B[0m"),process.exit(1)),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.6",
|
|
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>",
|
|
@@ -28,19 +28,18 @@
|
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@types/minimist": "^1.2.2",
|
|
31
|
-
"@types/node": "^20.
|
|
32
|
-
"@typescript-eslint/eslint-plugin": "^
|
|
33
|
-
"@typescript-eslint/parser": "^
|
|
34
|
-
"@under_koen/bsm": "^0.0.3",
|
|
31
|
+
"@types/node": "^20.5.9",
|
|
32
|
+
"@typescript-eslint/eslint-plugin": "^6.6.0",
|
|
33
|
+
"@typescript-eslint/parser": "^6.6.0",
|
|
35
34
|
"ci-info": "^3.8.0",
|
|
36
35
|
"defu": "^6.1.2",
|
|
37
|
-
"esbuild": "^0.
|
|
38
|
-
"eslint": "^8.
|
|
39
|
-
"eslint-config-prettier": "^
|
|
36
|
+
"esbuild": "^0.19.2",
|
|
37
|
+
"eslint": "^8.48.0",
|
|
38
|
+
"eslint-config-prettier": "^9.0.0",
|
|
40
39
|
"minimist": "^1.2.8",
|
|
41
|
-
"prettier": "
|
|
40
|
+
"prettier": "3.0.3",
|
|
42
41
|
"prettier-package-json": "^2.8.0",
|
|
43
|
-
"typescript": "^5.
|
|
42
|
+
"typescript": "^5.2.2"
|
|
44
43
|
},
|
|
45
44
|
"keywords": [
|
|
46
45
|
"script",
|