@under_koen/bsm 0.0.5 → 1.0.0
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 +11 -10
- package/dist/index.js +3 -1
- package/package.json +22 -11
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
|
|
@@ -468,11 +471,9 @@ You can extend scripts with options by using the `extends` key. You can import s
|
|
|
468
471
|
```javascript
|
|
469
472
|
// package.scripts.js
|
|
470
473
|
module.exports = {
|
|
471
|
-
extends: [
|
|
472
|
-
['./test', "World"]
|
|
473
|
-
],
|
|
474
|
+
extends: [["./test", "World"]],
|
|
474
475
|
scripts: {},
|
|
475
|
-
}
|
|
476
|
+
};
|
|
476
477
|
```
|
|
477
478
|
|
|
478
479
|
```javascript
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
#! /usr/bin/env node
|
|
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)});
|
|
2
|
+
"use strict";var on=Object.create;var j=Object.defineProperty;var sn=Object.getOwnPropertyDescriptor;var cn=Object.getOwnPropertyNames;var fn=Object.getPrototypeOf,un=Object.prototype.hasOwnProperty;var x=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var an=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of cn(e))!un.call(n,i)&&i!==t&&j(n,i,{get:()=>e[i],enumerable:!(r=sn(e,i))||r.enumerable});return n};var b=(n,e,t)=>(t=n!=null?on(fn(n)):{},an(e||!n||!n.__esModule?j(t,"default",{value:n,enumerable:!0}):t,n));var Y=x((Tn,K)=>{"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 Q(n){return typeof n=="number"||/^0x[0-9a-f]+$/i.test(n)?!0:/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(n)}function V(n,e){return e==="constructor"&&typeof n[e]=="function"||e==="__proto__"}K.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(c){t.bools[c]=!0});var r={};function i(c){return r[c].some(function(d){return t.bools[d]})}Object.keys(e.alias||{}).forEach(function(c){r[c]=[].concat(e.alias[c]),r[c].forEach(function(d){r[d]=[c].concat(r[c].filter(function(v){return d!==v}))})}),[].concat(e.string).filter(Boolean).forEach(function(c){t.strings[c]=!0,r[c]&&[].concat(r[c]).forEach(function(d){t.strings[d]=!0})});var s=e.default||{},o={_:[]};function f(c,d){return t.allBools&&/^--[^=]+$/.test(d)||t.strings[c]||t.bools[c]||r[c]}function p(c,d,v){for(var a=c,O=0;O<d.length-1;O++){var R=d[O];if(V(a,R))return;a[R]===void 0&&(a[R]={}),(a[R]===Object.prototype||a[R]===Number.prototype||a[R]===String.prototype)&&(a[R]={}),a[R]===Array.prototype&&(a[R]=[]),a=a[R]}var A=d[d.length-1];V(a,A)||((a===Object.prototype||a===Number.prototype||a===String.prototype)&&(a={}),a===Array.prototype&&(a=[]),a[A]===void 0||t.bools[A]||typeof a[A]=="boolean"?a[A]=v:Array.isArray(a[A])?a[A].push(v):a[A]=[a[A],v])}function E(c,d,v){if(!(v&&t.unknownFn&&!f(c,v)&&t.unknownFn(v)===!1)){var a=!t.strings[c]&&Q(d)?Number(d):d;p(o,c.split("."),a),(r[c]||[]).forEach(function(O){p(o,O.split("."),a)})}}Object.keys(t.bools).forEach(function(c){E(c,s[c]===void 0?!1:s[c])});var w=[];n.indexOf("--")!==-1&&(w=n.slice(n.indexOf("--")+1),n=n.slice(0,n.indexOf("--")));for(var I=0;I<n.length;I++){var u=n[I],l,C;if(/^--.+=/.test(u)){var G=u.match(/^--([^=]+)=([\s\S]*)$/);l=G[1];var y=G[2];t.bools[l]&&(y=y!=="false"),E(l,y,u)}else if(/^--no-.+/.test(u))l=u.match(/^--no-(.+)/)[1],E(l,!1,u);else if(/^--.+/.test(u))l=u.match(/^--(.+)/)[1],C=n[I+1],C!==void 0&&!/^(-|--)[^-]/.test(C)&&!t.bools[l]&&!t.allBools&&(!r[l]||!i(l))?(E(l,C,u),I+=1):/^(true|false)$/.test(C)?(E(l,C==="true",u),I+=1):E(l,t.strings[l]?"":!0,u);else if(/^-[^-]+/.test(u)){for(var T=u.slice(1,-1).split(""),g=!1,S=0;S<T.length;S++){if(C=u.slice(S+2),C==="-"){E(T[S],C,u);continue}if(/[A-Za-z]/.test(T[S])&&C[0]==="="){E(T[S],C.slice(1),u),g=!0;break}if(/[A-Za-z]/.test(T[S])&&/-?\d+(\.\d*)?(e-?\d+)?$/.test(C)){E(T[S],C,u),g=!0;break}if(T[S+1]&&T[S+1].match(/\W/)){E(T[S],u.slice(S+2),u),g=!0;break}else E(T[S],t.strings[T[S]]?"":!0,u)}l=u.slice(-1)[0],!g&&l!=="-"&&(n[I+1]&&!/^(-|--)[^-]/.test(n[I+1])&&!t.bools[l]&&(!r[l]||!i(l))?(E(l,n[I+1],u),I+=1):n[I+1]&&/^(true|false)$/.test(n[I+1])?(E(l,n[I+1]==="true",u),I+=1):E(l,t.strings[l]?"":!0,u))}else if((!t.unknownFn||t.unknownFn(u)!==!1)&&o._.push(t.strings._||!Q(u)?u:Number(u)),e.stopEarly){o._.push.apply(o._,n.slice(I+1));break}}return Object.keys(s).forEach(function(c){ln(o,c.split("."))||(p(o,c.split("."),s[c]),(r[c]||[]).forEach(function(d){p(o,d.split("."),s[c])}))}),e["--"]?o["--"]=w.slice():w.forEach(function(c){o._.push(c)}),o}});var z=x((Ln,pn)=>{pn.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 nn=x(_=>{"use strict";var k=z(),m=process.env;Object.defineProperty(_,"_vendors",{value:k.map(function(n){return n.constant})});_.name=null;_.isPR=null;k.forEach(function(n){let t=(Array.isArray(n.env)?n.env:[n.env]).every(function(r){return Z(r)});if(_[n.constant]=t,!!t)switch(_.name=n.name,typeof n.pr){case"string":_.isPR=!!m[n.pr];break;case"object":"env"in n.pr?_.isPR=n.pr.env in m&&m[n.pr.env]!==n.pr.ne:"any"in n.pr?_.isPR=n.pr.any.some(function(r){return!!m[r]}):_.isPR=Z(n.pr);break;default:_.isPR=null}});_.isCI=!!(m.CI!=="false"&&(m.BUILD_ID||m.BUILD_NUMBER||m.CI||m.CI_APP_ID||m.CI_BUILD_ID||m.CI_BUILD_NUMBER||m.CI_NAME||m.CONTINUOUS_INTEGRATION||m.RUN_ID||_.name));function Z(n){return typeof n=="string"?!!m[n]:"env"in n?m[n.env]&&m[n.env].includes(n.includes):"any"in n?n.any.some(function(e){return!!m[e]}):Object.keys(n).every(function(e){return m[e]===n[e]})}});var rn=b(Y()),h=b(require("node:fs")),B=b(require("path"));function N(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`),W(n.scripts);else for(let i of r){console.log(`
|
|
4
|
+
\x1B[1mAvailable commands: \x1B[90m${i}\x1B[0m`);let s=i.split("."),o=[[n.scripts,[],s]];for(;o.length>0;){let f=o.shift();if(f)if(f[2].length===0)W(f[0],f[1]);else if(f[2][0]==="*"){if(typeof f[0]=="object")if(Array.isArray(f[0]))for(let p=0;p<f[0].length;p++)o.push([f[0][p],[...f[1],p.toString()],[]]);else for(let p in f[0])Object.hasOwn(f[0],p)&&o.push([f[0][p],[...f[1],p],f[2].slice(1)])}else{let p=f[2][0];if(typeof f[0]=="object")if(Array.isArray(f[0])){let E=parseInt(p);o.push([f[0][E],[...f[1],E.toString()],f[2].slice(1)])}else o.push([f[0][p],[...f[1],p],f[2].slice(1)])}}}process.exit(0)}function W(n,e=[]){if(Array.isArray(n))n.forEach((t,r)=>{P(t,[...e,r.toString()])});else if(typeof n=="object"){e.length>0&&P(n,[...e]);for(let t in n)Object.hasOwn(n,t)&&P(n[t],[...e,t])}else P(n,e)}function P(n,e){if(n===void 0){console.error(`\x1B[31mScript '${e.join(".")}' not found\x1B[0m`);return}if(e[e.length-1]==="$description")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`:Object.hasOwn(n,"$description")?r=`\x1B[90m${n.$description}\x1B[0m`:r=`\x1B[90m{${Object.keys(n).join(", ")}}\x1B[0m`,console.log(`${t}${r}`)}function F(n){return n!==null&&typeof n=="object"}function M(n,e,t=".",r){if(!F(e))return M(n,{},t,r);let i=Object.assign({},e);for(let s in n){if(s==="__proto__"||s==="constructor")continue;let o=n[s];o!=null&&(r&&r(i,s,o,t)||(Array.isArray(o)&&Array.isArray(i[s])?i[s]=[...o,...i[s]]:F(o)&&F(i[s])?i[s]=M(o,i[s],(t?`${t}.`:"")+s.toString(),r):i[s]=o))}return i}function H(n){return(...e)=>e.reduce((t,r)=>M(t,r,"",n),{})}var X=H(),vn=H((n,e,t)=>{if(typeof n[e]<"u"&&typeof t=="function")return n[e]=t(n[e]),!0}),An=H((n,e,t)=>{if(Array.isArray(n[e])&&typeof t=="function")return n[e]=t(n[e]),!0});var En={scripts:{},config:{allowFunction:!1}};function dn(n){return Array.isArray(n)?n[0]:n}function mn(n){return!Object.hasOwn(n,"extends")||!n.extends?[]:n.extends.map(e=>J(e,!1))}function J(n,e=!0){if(!n)return;let t=dn(n);try{t=require.resolve(t,{paths:[process.cwd()]});let r=require(t);typeof r=="function"&&(r=r(...Array.isArray(n)?n.slice(1):[]));let i=mn(r);return X(r,...i,En)}catch(r){if((r==null?void 0:r.code)==="MODULE_NOT_FOUND"){if(e)return;console.error(`\x1B[31mCannot find config '${t}' to extend\x1B[0m`),process.exit(1)}console.error(r),Array.isArray(n)&&(n=n[0]),console.error(`\x1B[31mError loading config '${n}'\x1B[0m`),process.exit(1)}}function q(n){let e=[n.config,process.env.BSM_CONFIG,"./package.scripts.js","./package.scripts.json"].filter(t=>t!==void 0);for(let t of e){let r=J(t);if(r)return process.env.BSM_CONFIG=t,r}console.error(`\x1B[31mCannot find config ${e.filter(t=>t!==void 0).map(t=>`'${t}'`).join(" or ")}\x1B[0m`),process.exit(1)}var en=b(require("node:child_process")),tn=b(nn()),L=class n{static async runScript(e,t,r,i){typeof e=="function"?await n.executeFunction(e,t,r,i):typeof e=="string"?await n.executeString(e,t,r,i):typeof e=="object"?Array.isArray(e)?await n.executeArray(e,t,r,i):await n.executeObject(e,t,r,i):n.notFound(r,i)}static notFound(e,t){t.ignoreNotFound||(console.error(`\x1B[31mScript '${e.join(".")}' not found\x1B[0m`),process.exit(127))}static async executeFunction(e,t,r,i){var o;console.log(`> \x1B[93mExecuting JavaScript function\x1B[0m \x1B[90m(${[...r].join(".")})\x1B[0m`);let s;try{s=await e.call(null,process.argv)}catch(f){throw f instanceof Error&&(f.stack=(o=f.stack)==null?void 0:o.split(" at executeFunction")[0]),{function:f,script:r.join(".")}}if(s==null){t.length>0&&n.notFound([...r,...t],i);return}await n.runScript(s,t,r,{...i,excludeArgs:!0})}static async executeString(e,t,r,i){var s;if(t.length>0)return n.notFound([...r,...t],i);if(!i.excludeArgs&&((s=process.argv)!=null&&s.length)&&(e+=" "+process.argv.join(" ")),console.log(`> ${e} \x1B[90m(${r.join(".")})\x1B[0m`),e!=="")return await new Promise((o,f)=>{en.default.spawn(e,[],{stdio:"inherit",shell:!0,env:{...process.env,BSM_PATH:r.slice(0,-1).join("."),BSM_SCRIPT:r.join(".")}}).on("close",E=>{E===0?o():f({code:E,script:r.join(".")})})})}static async executeArray(e,t,r,i){if(t.length===0||t[0]==="*"){for(let s=0;s<e.length;s++)await n.runScript(e[s],t.slice(1),[...r,s.toString()],{...i,ignoreNotFound:t[0]==="*"?!0:i.ignoreNotFound});return}else{let s=t[0],o=e[parseInt(s)];if(o===void 0)return n.notFound([...r,s],i);await n.runScript(o,t.slice(1),[...r,s],i)}}static async executeObject(e,t,r,i){var s;try{if(await n.executeHook(e,"_pre",r,i),t.length===0)await n.runObject(e,r,i);else if(t[0]==="*")for(let o in e)o.startsWith("_")||o.startsWith("$")||Object.hasOwn(e,o)&&await n.runScript(e[o],t.slice(1),[...r,o],{...i,ignoreNotFound:!0});else{let o=t[0];if(Object.hasOwn(e,o))await n.runScript(e[o],t.slice(1),[...r,o],i);else return n.notFound([...r,o],i)}await n.executeHook(e,"_post",r,i)}catch(o){if(process.env.BSM_ERROR=((s=o.code)==null?void 0:s.toString())??"1",await n.executeHook(e,"_onError",r,i),!await n.executeHook(e,"_catch",r,i))throw o}finally{await n.executeHook(e,"_finally",r,i)}}static async executeHook(e,t,r,i){return Object.hasOwn(e,t)?(await n.runScript(e[t],[],[...r,t],{...i,excludeArgs:!0}),!0):!1}static get _isCI(){return tn.isCI}static async runObject(e,t,r){let i=`_${process.platform}`;n._isCI&&Object.hasOwn(e,"_ci")?await n.runScript(e._ci,[],[...t,"_ci"],r):Object.hasOwn(e,i)?await n.runScript(e[i],[],[...t,i],r):Object.hasOwn(e,"_default")?await n.runScript(e._default,[],[...t,"_default"],r):n.notFound(t,r)}};var U=(0,rn.default)(process.argv.slice(2),{"--":!0});process.argv=U["--"]??[];var D=q(U);async function In(){N(D,U,U.h),N(D,U,U.help),N(D,U,U._.length===0),Sn(process.env,await Cn());for(let n of U._){if(n.startsWith("~")&&process.env.BSM_PATH){let e=process.env.BSM_PATH.split("."),t=$(D.scripts,e);if(t){await L.runScript(t,n.split(".").splice(1),e,{});continue}}await L.runScript(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 h.promises.access(B.default.join(n,"node_modules/.bin"),h.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))}In().catch(n=>{n.function&&(console.error(n.function),console.error(`\x1B[31mError executing function '${n.script}'\x1B[0m`),process.exit(1)),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": "1.0.0",
|
|
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>",
|
|
@@ -20,27 +20,38 @@
|
|
|
20
20
|
"dist"
|
|
21
21
|
],
|
|
22
22
|
"scripts": {
|
|
23
|
-
"
|
|
23
|
+
"bsm": "bsm",
|
|
24
|
+
"build": "bsm build.prod",
|
|
24
25
|
"build:dev": "bsm build.dev",
|
|
25
26
|
"build:watch": "bsm build.watch",
|
|
26
27
|
"prettier": "bsm prettier",
|
|
27
28
|
"prepublishOnly": "bsm build.prod"
|
|
28
29
|
},
|
|
29
30
|
"devDependencies": {
|
|
31
|
+
"@semantic-release/changelog": "^6.0.3",
|
|
32
|
+
"@semantic-release/exec": "^6.0.3",
|
|
33
|
+
"@semantic-release/git": "^10.0.1",
|
|
34
|
+
"@semantic-release/github": "^8.0.7",
|
|
30
35
|
"@types/minimist": "^1.2.2",
|
|
31
|
-
"@types/node": "^20.
|
|
32
|
-
"@
|
|
33
|
-
"@typescript-eslint/
|
|
34
|
-
"@
|
|
36
|
+
"@types/node": "^20.5.9",
|
|
37
|
+
"@types/sinon": "^10.0.16",
|
|
38
|
+
"@typescript-eslint/eslint-plugin": "^6.6.0",
|
|
39
|
+
"@typescript-eslint/parser": "^6.6.0",
|
|
40
|
+
"@under_koen/bsm": "^0.0.6",
|
|
41
|
+
"c8": "^8.0.1",
|
|
35
42
|
"ci-info": "^3.8.0",
|
|
36
43
|
"defu": "^6.1.2",
|
|
37
|
-
"esbuild": "^0.
|
|
38
|
-
"eslint": "^8.
|
|
39
|
-
"eslint-config-prettier": "^
|
|
44
|
+
"esbuild": "^0.19.2",
|
|
45
|
+
"eslint": "^8.48.0",
|
|
46
|
+
"eslint-config-prettier": "^9.0.0",
|
|
40
47
|
"minimist": "^1.2.8",
|
|
41
|
-
"prettier": "
|
|
48
|
+
"prettier": "3.0.3",
|
|
42
49
|
"prettier-package-json": "^2.8.0",
|
|
43
|
-
"
|
|
50
|
+
"semantic-release": "^21.0.1",
|
|
51
|
+
"sinon": "^15.2.0",
|
|
52
|
+
"tsm": "^2.3.0",
|
|
53
|
+
"typescript": "^5.2.2",
|
|
54
|
+
"uvu": "^0.5.6"
|
|
44
55
|
},
|
|
45
56
|
"keywords": [
|
|
46
57
|
"script",
|