@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.
Files changed (3) hide show
  1. package/README.md +11 -10
  2. package/dist/index.js +3 -1
  3. 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
- - _ci
142
- - _[os]
143
- - _default
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: ['@under_koen/bsm/package.scripts.js'],
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.5",
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
- "build": "bsm build",
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.3.1",
32
- "@typescript-eslint/eslint-plugin": "^5.60.0",
33
- "@typescript-eslint/parser": "^5.60.0",
34
- "@under_koen/bsm": "^0.0.4",
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.18.6",
38
- "eslint": "^8.43.0",
39
- "eslint-config-prettier": "^8.8.0",
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": "2.8.8",
48
+ "prettier": "3.0.3",
42
49
  "prettier-package-json": "^2.8.0",
43
- "typescript": "^5.1.3"
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",