@currents/cmd 1.11.0-beta.1 → 1.11.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/dist/bin/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #! /usr/bin/env node
2
- "use strict";var ss=Object.create;var fe=Object.defineProperty;var as=Object.getOwnPropertyDescriptor;var cs=Object.getOwnPropertyNames;var ps=Object.getPrototypeOf,ms=Object.prototype.hasOwnProperty;var us=(t,e)=>{for(var r in e)fe(t,r,{get:e[r],enumerable:!0})},ds=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of cs(e))!ms.call(t,n)&&n!==r&&fe(t,n,{get:()=>e[n],enumerable:!(o=as(e,n))||o.enumerable});return t};var l=(t,e,r)=>(r=t!=null?ss(ps(t)):{},ds(e||!t||!t.__esModule?fe(r,"default",{value:t,enumerable:!0}):r,t));var bI=require("source-map-support/register");var os=require("@commander-js/extra-typings");var dr={name:"@currents/cmd",version:"1.11.0-beta.1",main:"./dist/index.js",author:{name:"Currents Software Inc",email:"hello@currents.dev"},license:"MIT",repository:{type:"git",url:"https://github.com/currents-dev/currents-reporter"},description:"Currents CLI tools",scripts:{test:"vitest",rm:"rimraf dist",lint:'TIMING=1 eslint "**/*.ts*"',types:"tsc --noEmit",build:"tsup-node --minify --dts",dev:"tsup-node --watch --dts",release:"release-it","publish:npm":"npm run rm && npm run build && ./publish.js"},devDependencies:{"@jest/reporters":"^30.4.1","@jest/types":"^30.4.1","@release-it/conventional-changelog":"^12.0.0","release-it":"^21.0.2","@types/archiver":"^6.0.3","@types/async-retry":"^1.4.9","@types/debug":"^4.1.12","@types/fs-extra":"^11.0.4","@types/getos":"^3.0.4","@types/lodash":"^4.17.16","@types/node":"^25.5.0","@types/proxy-from-env":"^1.0.4","@types/semver":"^7.5.8","@types/tmp":"^0.2.6","@types/unzipper":"^0.10.11","@types/uuid":"^10.0.0","@types/xml2js":"^0.4.14","@types/xxhashjs":"^0.2.4",jest:"^30.4.2",rimraf:"^6.0.1",tsup:"^8.3.5",typescript:"^5.9.3",vitest:"^4.1.0"},dependencies:{"@commander-js/extra-typings":"^13.1.0","@currents/commit-info":"1.0.1-beta.0",archiver:"^7.0.1","async-retry":"^1.3.3",axios:"1.18.1","axios-retry":"4.5.0",chalk:"^4.1.2",commander:"^13.1.0",debug:"^4.4.0",dotenv:"^17.4.2",execa:"^9.5.1","fs-extra":"^11.3.4",getos:"^3.2.1",globby:"^11.1.0","https-proxy-agent":"^7.0.4","jest-cli":"^30.2.0","jest-config":"^30.3.0",lodash:"^4.18.1",nanoid:"^3.3.8","pretty-ms":"^7.0.1","proxy-from-env":"^1.1.0",semver:"^7.8.5","source-map-support":"^0.5.21",tmp:"^0.2.7","tmp-promise":"^3.0.3","ts-pattern":"^5.8.0",unzipper:"^0.12.3",uuid:"11.1.1",xml2js:"^0.6.2",xxhashjs:"^0.2.2"},bin:{currents:"./dist/bin/index.js","currents-cli":"./dist/bin/index.js"},files:["dist","!**/*.map","!**/*/*.map"],keywords:["cloud test dashboard","test reporter","test results","currents","currents dashboard","ci"],exports:{".":{import:"./dist/index.js",require:"./dist/index.js",types:"./dist/index.d.ts"},"./discovery/jest":{import:"./dist/services/upload/discovery/jest/reporter.js",require:"./dist/services/upload/discovery/jest/reporter.js",types:"./dist/services/upload/discovery/jest/reporter.d.ts"},"./package.json":"./package.json"},"release-it":{npm:{publish:!1},github:{release:!0,releaseName:"${npm.name} v${version}"},plugins:{"@release-it/conventional-changelog":{preset:"angular",header:"# Changelog",ignoreVersion:!0,infile:"./CHANGELOG.md"}},git:{commitMessage:"chore: release ${npm.name} v${version}",tagName:"${npm.name}-v${version}"}}};var mt=dr.version;var tr=require("@commander-js/extra-typings");var ls=[];function le(t){ls.push(t)}var D=l(require("chalk")),j=l(require("util"));var ge=require("debug"),gs=l(require("fs-extra")),c=(0,ge.debug)("currents"),Es=null;function fr(){ge.debug.enable("currents,currents:*")}function lr(t){Es=t}var gr=[],Er=[];var St=(...t)=>{let e=j.default.format(...t);le(e),console.log(e)},Cs=(...t)=>{let e=j.default.format(...t);le(e),console.error(e)},O=St,R=(...t)=>{let e=j.default.format(...t);return Er.push(e),c("WARNING: ",e),St(D.default.bgYellow.black(" WARNING "),e)},ot=(...t)=>{let e=j.default.format(...Cr(t));return c("WARNING: ",j.default.format(...t)),St(D.default.bgYellow.black(" WARNING "),e)},Pt=(...t)=>St(D.default.green.bold(j.default.format(...t))),I=(...t)=>{let e=j.default.format(...Cr(t));return gr.push(e),c("ERROR: ",j.default.format(...t)),Cs(D.default.bgRed.white(" ERROR "),e)};var Cr=t=>t.map(e=>e instanceof Error?e.message:e),xt=(t=2)=>console.log(Array(t).fill("").join(`
2
+ "use strict";var ss=Object.create;var fe=Object.defineProperty;var as=Object.getOwnPropertyDescriptor;var cs=Object.getOwnPropertyNames;var ps=Object.getPrototypeOf,ms=Object.prototype.hasOwnProperty;var us=(t,e)=>{for(var r in e)fe(t,r,{get:e[r],enumerable:!0})},ds=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of cs(e))!ms.call(t,n)&&n!==r&&fe(t,n,{get:()=>e[n],enumerable:!(o=as(e,n))||o.enumerable});return t};var l=(t,e,r)=>(r=t!=null?ss(ps(t)):{},ds(e||!t||!t.__esModule?fe(r,"default",{value:t,enumerable:!0}):r,t));var bI=require("source-map-support/register");var os=require("@commander-js/extra-typings");var dr={name:"@currents/cmd",version:"1.11.0",main:"./dist/index.js",author:{name:"Currents Software Inc",email:"hello@currents.dev"},license:"MIT",repository:{type:"git",url:"https://github.com/currents-dev/currents-reporter"},description:"Currents CLI tools",scripts:{test:"vitest",rm:"rimraf dist",lint:'TIMING=1 eslint "**/*.ts*"',types:"tsc --noEmit",build:"tsup-node --minify --dts",dev:"tsup-node --watch --dts",release:"release-it","publish:npm":"npm run rm && npm run build && ./publish.js"},devDependencies:{"@jest/reporters":"^30.4.1","@jest/types":"^30.4.1","@release-it/conventional-changelog":"^12.0.0","release-it":"^21.0.2","@types/archiver":"^6.0.3","@types/async-retry":"^1.4.9","@types/debug":"^4.1.12","@types/fs-extra":"^11.0.4","@types/getos":"^3.0.4","@types/lodash":"^4.17.16","@types/node":"^25.5.0","@types/proxy-from-env":"^1.0.4","@types/semver":"^7.5.8","@types/tmp":"^0.2.6","@types/unzipper":"^0.10.11","@types/uuid":"^10.0.0","@types/xml2js":"^0.4.14","@types/xxhashjs":"^0.2.4",jest:"^30.4.2",rimraf:"^6.0.1",tsup:"^8.3.5",typescript:"^5.9.3",vitest:"^4.1.0"},dependencies:{"@commander-js/extra-typings":"^13.1.0","@currents/commit-info":"1.1.0",archiver:"^7.0.1","async-retry":"^1.3.3",axios:"1.18.1","axios-retry":"4.5.0",chalk:"^4.1.2",commander:"^13.1.0",debug:"^4.4.0",dotenv:"^17.4.2",execa:"^9.5.1","fs-extra":"^11.3.4",getos:"^3.2.1",globby:"^11.1.0","https-proxy-agent":"^7.0.4","jest-cli":"^30.2.0","jest-config":"^30.3.0",lodash:"^4.18.1",nanoid:"^3.3.8","pretty-ms":"^7.0.1","proxy-from-env":"^1.1.0",semver:"^7.8.5","source-map-support":"^0.5.21",tmp:"^0.2.7","tmp-promise":"^3.0.3","ts-pattern":"^5.8.0",unzipper:"^0.12.3",uuid:"11.1.1",xml2js:"^0.6.2",xxhashjs:"^0.2.2"},bin:{currents:"./dist/bin/index.js","currents-cli":"./dist/bin/index.js"},files:["dist","!**/*.map","!**/*/*.map"],keywords:["cloud test dashboard","test reporter","test results","currents","currents dashboard","ci"],exports:{".":{import:"./dist/index.js",require:"./dist/index.js",types:"./dist/index.d.ts"},"./discovery/jest":{import:"./dist/services/upload/discovery/jest/reporter.js",require:"./dist/services/upload/discovery/jest/reporter.js",types:"./dist/services/upload/discovery/jest/reporter.d.ts"},"./package.json":"./package.json"},"release-it":{npm:{publish:!1},github:{release:!0,releaseName:"${npm.name} v${version}"},plugins:{"@release-it/conventional-changelog":{preset:"angular",header:"# Changelog",ignoreVersion:!0,infile:"./CHANGELOG.md"}},git:{commitMessage:"chore: release ${npm.name} v${version}",tagName:"${npm.name}-v${version}"}}};var mt=dr.version;var tr=require("@commander-js/extra-typings");var ls=[];function le(t){ls.push(t)}var D=l(require("chalk")),j=l(require("util"));var ge=require("debug"),gs=l(require("fs-extra")),c=(0,ge.debug)("currents"),Es=null;function fr(){ge.debug.enable("currents,currents:*")}function lr(t){Es=t}var gr=[],Er=[];var St=(...t)=>{let e=j.default.format(...t);le(e),console.log(e)},Cs=(...t)=>{let e=j.default.format(...t);le(e),console.error(e)},O=St,R=(...t)=>{let e=j.default.format(...t);return Er.push(e),c("WARNING: ",e),St(D.default.bgYellow.black(" WARNING "),e)},ot=(...t)=>{let e=j.default.format(...Cr(t));return c("WARNING: ",j.default.format(...t)),St(D.default.bgYellow.black(" WARNING "),e)},Pt=(...t)=>St(D.default.green.bold(j.default.format(...t))),I=(...t)=>{let e=j.default.format(...Cr(t));return gr.push(e),c("ERROR: ",j.default.format(...t)),Cs(D.default.bgRed.white(" ERROR "),e)};var Cr=t=>t.map(e=>e instanceof Error?e.message:e),xt=(t=2)=>console.log(Array(t).fill("").join(`
3
3
  `)),jc=D.default.cyan,$c=D.default.blueBright,Vc=D.default.red,Yc=D.default.yellow,Jc=D.default.green,Wc=D.default.gray,qc=D.default.white,Qc=D.default.black,Xc=D.default.magenta,g=D.default.dim,zc=D.default.bold;var Xn=l(require("chalk"));function Ir(t,e){if(!t)return t;let r={...t};return e.forEach(o=>{r.hasOwnProperty(o)&&(r[o]="*****")}),r}function bt(t){return Ir(t,["apiKey"])}function T(t){return Ir(t,["recordKey","key"])}var X=class extends Error{};var G=l(require("fs-extra")),Tt=require("path"),Rr=require("uuid");async function nt(t){try{return await G.default.readJson(t)}catch(e){throw I("Error while reading JSON file: %s",t,e),I}}async function it(t,e){try{return await G.default.writeFile(t,e,"utf8"),t}catch(r){throw I(`Error writing file at ${t}:`,r),r}}async function _t(t,e){try{try{return await G.default.access(t),t}catch{return await G.default.writeFile(t,e,"utf8"),t}}catch(r){throw I(`Error writing file at ${t}:`,r),r}}async function Tr(t,e){if(e){await G.default.ensureDir(t);return}let r=(0,Tt.dirname)(t);await G.default.ensureDir(r)}function Rs(){let t=new Date().toISOString().replace(/[:.]/g,"-"),e=(0,Rr.v4)();return`${t}-${e}`}async function _r(t,e){let r=Rs(),o=(0,Tt.join)(t,e,r);return st(o)}async function st(t){try{return await G.default.ensureDir(t),c("Folder created",t),t}catch(e){throw I(`Failed to create folder at ${t}:`,e),e}}async function wt(t,e){try{return await G.default.ensureDir((0,Tt.dirname)(e)),await G.default.copy(t,e),c("File copied from %s to %s",t,e),e}catch(r){throw I(`Failed to copy file from ${t} to ${e}:`,r),r}}var hr=l(require("crypto"));function $(t){return hr.createHash("sha256").update(t).digest("base64").slice(0,8).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}var Nt={};us(Nt,{getNanoid:()=>Ts,userFacingNanoid:()=>Ce});var Ee=require("nanoid"),Or="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",Ts=(t=16)=>(0,Ee.customAlphabet)(Or,t)(),Ce=(0,Ee.customAlphabet)(Or,12);function yr(t){return Object.entries(t??{}).reduce((e,[r,o])=>o===void 0?e:{...e,[r]:o},{})}function Ar(t){if(!(t===void 0||t.trim()===""))return!["false","0","no","off"].includes(t.trim().toLowerCase())}function _(t,e){return"env"in t[e]&&t[e].env?t[e].env:""}function Bt(t,e){return t[e].cli}function Lt(t,e){return t[e].name}function M(t,e,r,o,n){let i={...yr(o),...yr(r())};return e.forEach(s=>{if(!i[s])throw I(`${Lt(t,s)} is required for Currents Reporter. Use the following methods to set the value:
4
4
  - as environment variable: ${g(_(t,s))}
5
5
  - as CLI flag of the command: ${g(Bt(t,s))}`),new X("Missing required config variable")}),typeof n=="function"&&n(i),i}var _s={apiKey:{name:"Api Key",env:"CURRENTS_API_KEY",cli:"--api-key"},debug:{name:"Debug",env:"CURRENTS_DEBUG",cli:"--debug"}},hs={branch:{name:"Run Branch",cli:"--branch"},output:{name:"Output Path",env:"CURRENTS_OUTPUT",cli:"--output"},ciBuildId:{name:"CI Build ID",cli:"--ci-build-id"},projectId:{name:"Project ID",env:"CURRENTS_PROJECT_ID",cli:"--project-id"},tag:{name:"Run Tag",cli:"--tag"}},V={..._s,...hs};function Ur(){return{apiKey:process.env[V.apiKey.env],debug:!!process.env[V.debug.env]}}var Os=c.extend("config"),ys=["apiKey","projectId"],As=t=>{let{ciBuildId:e,tag:r,branch:o}=t;if(!([e,r,o].filter(Boolean).length===1||r&&o&&!e))throw I('"ciBuildId", "tag", "branch" or a combination of "tag" and "branch" are expected to be provided'),new X("Missing or invalid parameters")},Ie=null;function Dr(t){Ie=M(V,ys,Ur,t,As),Os("Resolved config: %o",bt(Ie))}function Mt(){return Ie}var eo=require("fs/promises");var $r=l(require("lodash"));var Lr=l(require("axios")),Mr=l(require("axios-retry")),Oe=l(require("lodash"));var Sr=()=>process.env.CURRENTS_API_URL??"https://cy.currents.dev",Pr=()=>process.env.CURRENTS_REST_API_URL??"https://api.currents.dev",xr=()=>3e4;var Re=require("axios"),Te=l(require("pretty-ms"));var br=c.extend("http"),vt=t=>[3*1e3,15*1e3,30*1e3][t-1],wr=t=>(br("isRetriableError: %o",{message:t.message,code:"code"in t?t.code:void 0,status:"response"in t?t.response?.status:void 0,headers:"response"in t?t.response?.headers:void 0,data:"response"in t?t.response?.data:void 0,isAxiosError:(0,Re.isAxiosError)(t)}),"code"in t&&t.code&&["ECONNABORTED","ECONNREFUSED","ECONNRESET","ETIMEDOUT","ENETRESET"].includes(t.code)?!0:(0,Re.isAxiosError)(t)?[429,502,503,504].includes(t.response?.status??0):!1),Ft=()=>3;function Nr(t,e,r){br("Network request '%s' failed: '%s'. Next attempt is in %s (%d/%d).",`${r.method?.toUpperCase()} ${r.url}`,e.message,(0,Te.default)(vt(t)),t,Ft()),R("Network request '%s' failed: '%s'. Next attempt is in %s (%d/%d).",`${r.method?.toUpperCase()} ${r.url}`,e.message,(0,Te.default)(vt(t)),t,Ft())}var _e=c.extend("http");var he={api:null,restApi:null};function Us(t){let e=t==="api"?Sr():Pr();_e("client base url: %s",e);let r=Lr.default.create({baseURL:e,timeout:xr(),transitional:{clarifyTimeoutError:!0}});return r.interceptors.request.use(o=>{let n=o["axios-retry"]?.retryCount??0;o.headers.set({"x-cmd-version":mt}),o.headers.get("Content-Type")||o.headers.set("Content-Type","application/json");let i={...Oe.default.pick(o,"method","url","headers"),baseURL:e,data:Buffer.isBuffer(o.data)?"buffer":o.data,params:o.params};return n?_e("network request retry: %o",Br({...i,baseURL:e,isRetry:!0})):_e("network request: %o",Br(i)),o}),(0,Mr.default)(r,{retries:Ft(),retryCondition:wr,retryDelay:vt,shouldResetTimeout:!0,onRetry:Nr}),r}function vr(t){return he[t]===null&&(he[t]=Us(t)),he[t]}function Br(t){return{method:t.method,baseURL:t.baseURL,url:t.url,data:t.isRetry?"<retry>":Ds(t.data),params:t.isRetry?"<retry>":t.params,headers:{...t.headers,Authorization:"Bearer ***","x-currents-key":"***"}}}function Ds(t){return t?.results?.raw?T({...t,results:{...t.results,raw:"***"}}):Oe.default.isPlainObject(t)?T(t):t}var Gr=require("axios"),Hr=l(require("lodash")),S=require("ts-pattern");function Kr(t){(0,S.match)(t).when(Gr.isAxiosError,Ss).otherwise(()=>{R("Unexpected error while sending network request: %s",t)})}function Ss(t){return(0,S.match)(t).with({code:"ECONNABORTED"},()=>{R("Network connection aborted")}).with({code:"ECONNREFUSED"},()=>{R("Network connection aborted")}).with({code:"ECONNRESET"},()=>{R("Network connection reset")}).with({code:"ETIMEDOUT"},()=>{R("Network connection timeout")}).with({response:S.P.not(S.P.nullish)},e=>{Ps(e,{status:e.response.status,data:e.response.data})}).otherwise(e=>{R(`[currents] Unexpected network error: %s
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";var ir=Object.create;var K=Object.defineProperty;var ar=Object.getOwnPropertyDescriptor;var cr=Object.getOwnPropertyNames;var Er=Object.getPrototypeOf,ur=Object.prototype.hasOwnProperty;var he=(e,t)=>{for(var r in t)K(e,r,{get:t[r],enumerable:!0})},Se=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of cr(t))!ur.call(e,n)&&n!==r&&K(e,n,{get:()=>t[n],enumerable:!(o=ar(t,n))||o.enumerable});return e};var u=(e,t,r)=>(r=e!=null?ir(Er(e)):{},Se(t||!e||!e.__esModule?K(r,"default",{value:e,enumerable:!0}):r,e)),pr=e=>Se(K({},"__esModule",{value:!0}),e);var No={};he(No,{handleCurrentsReport:()=>nr});module.exports=pr(No);var Ne=require("debug"),mr=u(require("fs-extra")),c=(0,Ne.debug)("currents"),_r=null;function Be(e){_r=e}var j={};he(j,{getNanoid:()=>lr,userFacingNanoid:()=>Ee});var ce=require("nanoid"),Le="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",lr=(e=16)=>(0,ce.customAlphabet)(Le,e)(),Ee=(0,ce.customAlphabet)(Le,12);var m=require("lodash");var Y=c.extend("ci"),Ir=(e,...t)=>(0,m.chain)(t).compact().join(e).value(),Rr=(e,t)=>(0,m.set)(e,(0,m.camelCase)(t),process.env[t]),f=e=>(0,m.transform)(e,Rr,{}),fr=()=>process.env.TF_BUILD&&process.env.AZURE_HTTP_USER_AGENT,Tr=()=>(0,m.some)(process.env,(e,t)=>/^CODEBUILD_/.test(t)),dr=()=>process.env.bamboo_buildNumber,gr=()=>(0,m.some)(process.env,(e,t)=>/^CONCOURSE_/.test(t)),Cr=()=>process.env.GITLAB_CI||process.env.CI_SERVER_NAME&&/^GitLab/.test(process.env.CI_SERVER_NAME),Ur=()=>!!(process.env.BUILD_ID&&process.env.PROJECT_ID&&process.env.PROJECT_NUMBER||process.env.GCP_PROJECT||process.env.GCLOUD_PROJECT||process.env.GOOGLE_CLOUD_PROJECT),Or=()=>process.env.JENKINS_URL||process.env.JENKINS_HOME||process.env.JENKINS_VERSION||process.env.HUDSON_URL||process.env.HUDSON_HOME,Dr={appveyor:"APPVEYOR",azure:fr,awsCodeBuild:Tr,bamboo:dr,bitbucket:"BITBUCKET_BUILD_NUMBER",buildkite:"BUILDKITE",circle:"CIRCLECI",concourse:gr,codeFresh:"CF_BUILD_ID",drone:"DRONE",githubActions:"GITHUB_ACTIONS",gitlab:Cr,goCD:"GO_JOB_NAME",jenkins:Or,googleCloud:Ur,semaphore:"SEMAPHORE",teamcity:"TEAMCITY_VERSION",travis:"TRAVIS",netlify:"NETLIFY"};function Ar(){let{env:e}=process;return(0,m.findKey)(Dr,t=>{if((0,m.isString)(t))return e[t];if((0,m.isFunction)(t))return t()})}var Pe=()=>({appveyor:f(["APPVEYOR_JOB_ID","APPVEYOR_ACCOUNT_NAME","APPVEYOR_PROJECT_SLUG","APPVEYOR_BUILD_NUMBER","APPVEYOR_BUILD_VERSION","APPVEYOR_PULL_REQUEST_NUMBER","APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH"]),azure:f(["AGENT_BUILDDIRECTORY","AGENT_ID","AGENT_JOBNAME","AGENT_JOBSTATUS","AGENT_MACHINENAME","AGENT_NAME","AGENT_OS","AGENT_OSARCHITECTURE","BUILD_BUILDID","BUILD_BUILDNUMBER","BUILD_BUILDURI","BUILD_CONTAINERID","BUILD_CRONSCHEDULE_DISPLAYNAME","BUILD_DEFINITIONNAME","BUILD_DEFINITIONVERSION","BUILD_QUEUEDBY","BUILD_QUEUEDBYID","BUILD_REASON","BUILD_REPOSITORY_ID","BUILD_REPOSITORY_NAME","BUILD_REPOSITORY_PROVIDER","BUILD_REPOSITORY_URI","BUILD_REQUESTEDFOR","BUILD_REQUESTEDFOREMAIL","BUILD_REQUESTEDFORID","BUILD_SOURCEBRANCH","BUILD_SOURCEBRANCHNAME","BUILD_SOURCESDIRECTORY","BUILD_SOURCEVERSION","BUILD_SOURCEVERSIONAUTHOR","BUILD_SOURCEVERSIONMESSAGE","BUILD_STAGINGDIRECTORY","BUILD_TRIGGEREDBY_BUILDID","BUILD_TRIGGEREDBY_BUILDNUMBER","BUILD_TRIGGEREDBY_DEFINITIONID","BUILD_TRIGGEREDBY_DEFINITIONNAME","BUILD_TRIGGEREDBY_PROJECTID","COMMON_TESTRESULTSDIRECTORY","PIPELINE_WORKSPACE","SYSTEM_COLLECTIONID","SYSTEM_COLLECTIONURI","SYSTEM_DEFAULTWORKINGDIRECTORY","SYSTEM_DEFINITIONID","SYSTEM_HOSTTYPE","SYSTEM_JOBATTEMPT","SYSTEM_JOBDISPLAYNAME","SYSTEM_JOBID","SYSTEM_JOBNAME","SYSTEM_PHASEATTEMPT","SYSTEM_PHASEDISPLAYNAME","SYSTEM_PHASENAME","SYSTEM_PLANID","SYSTEM_PULLREQUEST_ISFORK","SYSTEM_PULLREQUEST_PULLREQUESTID","SYSTEM_PULLREQUEST_PULLREQUESTNUMBER","SYSTEM_PULLREQUEST_SOURCEREPOSITORYURI","SYSTEM_PULLREQUEST_SOURCEBRANCH","SYSTEM_PULLREQUEST_SOURCECOMMITID","SYSTEM_PULLREQUEST_TARGETBRANCH","SYSTEM_PULLREQUEST_TARGETBRANCHNAME","SYSTEM_STAGEATTEMPT","SYSTEM_STAGEDISPLAYNAME","SYSTEM_STAGENAME","SYSTEM_TEAMFOUNDATIONCOLLECTIONURI","SYSTEM_TEAMPROJECT","SYSTEM_TEAMPROJECTID","SYSTEM_TIMELINEID"]),awsCodeBuild:f(["AWS_DEFAULT_REGION","AWS_REGION","CODEBUILD_BATCH_BUILD_IDENTIFIER","CODEBUILD_BUILD_ARN","CODEBUILD_BUILD_ID","CODEBUILD_BUILD_IMAGE","CODEBUILD_BUILD_NUMBER","CODEBUILD_BUILD_SUCCEEDING","CODEBUILD_BUILD_URL","CODEBUILD_INITIATOR","CODEBUILD_PROJECT_ARN","CODEBUILD_PUBLIC_BUILD_URL","CODEBUILD_RESOLVED_SOURCE_VERSION","CODEBUILD_SOURCE_REPO_URL","CODEBUILD_SOURCE_VERSION","CODEBUILD_SRC_DIR","CODEBUILD_START_TIME","CODEBUILD_WEBHOOK_ACTOR_ACCOUNT_ID","CODEBUILD_WEBHOOK_BASE_REF","CODEBUILD_WEBHOOK_EVENT","CODEBUILD_WEBHOOK_HEAD_REF","CODEBUILD_WEBHOOK_MERGE_COMMIT","CODEBUILD_WEBHOOK_PREV_COMMIT","CODEBUILD_WEBHOOK_TRIGGER","CODEBUILD_WEBHOOK_LABEL","CODEBUILD_WEBHOOK_RUN_ID","CODEBUILD_WEBHOOK_JOB_ID","CODEBUILD_WEBHOOK_WORKFLOW_NAME","CODEBUILD_RUNNER_OWNER","CODEBUILD_RUNNER_REPO","CODEBUILD_RUNNER_REPO_DOMAIN","CODEBUILD_RUNNER_WITH_BUILDSPEC"]),bamboo:f(["bamboo_buildNumber","bamboo_buildResultsUrl","bamboo_planRepository_repositoryUrl","bamboo_buildKey"]),bitbucket:f(["CI","BITBUCKET_WORKSPACE","BITBUCKET_REPO_SLUG","BITBUCKET_REPO_UUID","BITBUCKET_REPO_FULL_NAME","BITBUCKET_REPO_IS_PRIVATE","BITBUCKET_REPO_OWNER","BITBUCKET_REPO_OWNER_UUID","BITBUCKET_PROJECT_KEY","BITBUCKET_PROJECT_UUID","BITBUCKET_BUILD_NUMBER","BITBUCKET_PIPELINE_UUID","BITBUCKET_STEP_UUID","BITBUCKET_STEP_RUN_NUMBER","BITBUCKET_STEP_TRIGGERER_UUID","BITBUCKET_PARALLEL_STEP","BITBUCKET_PARALLEL_STEP_COUNT","BITBUCKET_CLONE_DIR","BITBUCKET_COMMIT","BITBUCKET_BRANCH","BITBUCKET_TAG","BITBUCKET_BOOKMARK","BITBUCKET_GIT_HTTP_ORIGIN","BITBUCKET_GIT_SSH_ORIGIN","BITBUCKET_PR_ID","BITBUCKET_PR_DESTINATION_BRANCH","BITBUCKET_PR_DESTINATION_COMMIT","BITBUCKET_DEPLOYMENT_ENVIRONMENT","BITBUCKET_DEPLOYMENT_ENVIRONMENT_UUID","BITBUCKET_EXIT_CODE"]),buildkite:f(["BUILDKITE_ORGANIZATION_SLUG","BUILDKITE_PIPELINE_ID","BUILDKITE_PIPELINE_NAME","BUILDKITE_PIPELINE_SLUG","BUILDKITE_PIPELINE_DEFAULT_BRANCH","BUILDKITE_REPO","BUILDKITE_SOURCE","BUILDKITE_BRANCH","BUILDKITE_TAG","BUILDKITE_COMMIT","BUILDKITE_MESSAGE","BUILDKITE_BUILD_AUTHOR","BUILDKITE_BUILD_AUTHOR_EMAIL","BUILDKITE_JOB_ID","BUILDKITE_BUILD_ID","BUILDKITE_BUILD_URL","BUILDKITE_BUILD_NUMBER","BUILDKITE_LABEL","BUILDKITE_COMMAND","BUILDKITE_STEP_ID","BUILDKITE_STEP_KEY","BUILDKITE_PARALLEL_JOB","BUILDKITE_PARALLEL_JOB_COUNT","BUILDKITE_RETRY_COUNT","BUILDKITE_COMPUTE_TYPE","BUILDKITE_CLUSTER_NAME","BUILDKITE_PULL_REQUEST","BUILDKITE_PULL_REQUEST_REPO","BUILDKITE_PULL_REQUEST_BASE_BRANCH","BUILDKITE_PULL_REQUEST_DRAFT","BUILDKITE_PULL_REQUEST_LABELS","BUILDKITE_MERGE_QUEUE_BASE_BRANCH","BUILDKITE_MERGE_QUEUE_BASE_COMMIT","BUILDKITE_REBUILT_FROM_BUILD_ID","BUILDKITE_REBUILT_FROM_BUILD_NUMBER","BUILDKITE_TRIGGERED_FROM_BUILD_ID","BUILDKITE_TRIGGERED_FROM_BUILD_NUMBER","BUILDKITE_TRIGGERED_FROM_BUILD_PIPELINE_SLUG"]),circle:f(["CI","CIRCLECI","CIRCLE_BRANCH","CIRCLE_BUILD_NUM","CIRCLE_BUILD_URL","CIRCLE_PREVIOUS_BUILD_NUM","CIRCLE_JOB","CIRCLE_WORKFLOW_ID","CIRCLE_WORKFLOW_JOB_ID","CIRCLE_WORKFLOW_WORKSPACE_ID","CIRCLE_PIPELINE_ID","CIRCLE_ORGANIZATION_ID","CIRCLE_PROJECT_ID","CIRCLE_PROJECT_REPONAME","CIRCLE_PROJECT_USERNAME","CIRCLE_REPOSITORY_URL","CIRCLE_WORKING_DIRECTORY","CIRCLE_SHA1","CIRCLE_TAG","CIRCLE_USERNAME","CIRCLE_NODE_INDEX","CIRCLE_NODE_TOTAL","CIRCLE_PR_NUMBER","CIRCLE_PR_REPONAME","CIRCLE_PR_USERNAME","CIRCLE_PULL_REQUEST","CIRCLE_PULL_REQUESTS","CI_PULL_REQUEST"]),concourse:f(["BUILD_ID","BUILD_NAME","BUILD_JOB_NAME","BUILD_PIPELINE_NAME","BUILD_TEAM_NAME","ATC_EXTERNAL_URL"]),codeFresh:f(["CF_BUILD_ID","CF_BUILD_URL","CF_CURRENT_ATTEMPT","CF_STEP_NAME","CF_PIPELINE_NAME","CF_PIPELINE_TRIGGER_ID","CF_PULL_REQUEST_ID","CF_PULL_REQUEST_IS_FORK","CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_TARGET"]),drone:f(["DRONE_BUILD_LINK","DRONE_BUILD_NUMBER","DRONE_PULL_REQUEST"]),githubActions:f(["CI","GITHUB_ACTIONS","GITHUB_WORKFLOW","GITHUB_WORKFLOW_REF","GITHUB_WORKFLOW_SHA","GITHUB_ACTION","GITHUB_ACTION_PATH","GITHUB_ACTION_REPOSITORY","GITHUB_JOB","GITHUB_EVENT_NAME","GITHUB_EVENT_PATH","GITHUB_RUN_ID","GITHUB_RUN_NUMBER","GITHUB_RUN_ATTEMPT","GITHUB_REPOSITORY","GITHUB_REPOSITORY_ID","GITHUB_REPOSITORY_OWNER","GITHUB_REPOSITORY_OWNER_ID","GITHUB_REF","GITHUB_REF_NAME","GITHUB_REF_TYPE","GITHUB_REF_PROTECTED","GITHUB_BASE_REF","GITHUB_HEAD_REF","GITHUB_SHA","GITHUB_ACTOR","GITHUB_ACTOR_ID","GITHUB_TRIGGERING_ACTOR","GITHUB_SERVER_URL","GITHUB_API_URL","GITHUB_GRAPHQL_URL","GITHUB_WORKSPACE","GITHUB_RETENTION_DAYS","RUNNER_OS","RUNNER_ARCH","RUNNER_NAME","RUNNER_ENVIRONMENT","RUNNER_DEBUG"]),gitlab:f(["CI_PIPELINE_ID","CI_PIPELINE_URL","CI_BUILD_ID","CI_JOB_ID","CI_JOB_URL","CI_JOB_NAME","CI_NODE_INDEX","CI_NODE_TOTAL","GITLAB_HOST","CI_PROJECT_ID","CI_PROJECT_URL","CI_REPOSITORY_URL","CI_ENVIRONMENT_URL","CI_DEFAULT_BRANCH","RUN_ATTEMPT","CI_MERGE_REQUEST_IID","CI_MERGE_REQUEST_PROJECT_URL","CI_MERGE_REQUEST_TITLE","CI_MERGE_REQUEST_SOURCE_BRANCH_NAME","CI_MERGE_REQUEST_TARGET_BRANCH_NAME","CI_OPEN_MERGE_REQUESTS"]),goCD:f(["GO_SERVER_URL","GO_ENVIRONMENT_NAME","GO_PIPELINE_NAME","GO_PIPELINE_COUNTER","GO_PIPELINE_LABEL","GO_STAGE_NAME","GO_STAGE_COUNTER","GO_JOB_NAME","GO_TRIGGER_USER","GO_REVISION","GO_TO_REVISION","GO_FROM_REVISION","GO_MATERIAL_HAS_CHANGED"]),googleCloud:f(["BUILD_ID","PROJECT_ID","REPO_NAME","BRANCH_NAME","TAG_NAME","COMMIT_SHA","SHORT_SHA"]),jenkins:f(["BRANCH_NAME","BUILD_DISPLAY_NAME","BUILD_ID","BUILD_NUMBER","BUILD_TAG","BUILD_URL","CHANGE_AUTHOR","CHANGE_AUTHOR_DISPLAY_NAME","CHANGE_AUTHOR_EMAIL","CHANGE_BRANCH","CHANGE_FORK","CHANGE_ID","CHANGE_TARGET","CHANGE_TITLE","CHANGE_URL","CI","EXECUTOR_NUMBER","JAVA_HOME","JENKINS_HOME","JENKINS_URL","JOB_BASE_NAME","JOB_NAME","JOB_URL","NODE_LABELS","NODE_NAME","RUN_ARTIFACTS_DISPLAY_URL","RUN_CHANGES_DISPLAY_URL","TAG_NAME","WORKSPACE","WORKSPACE_TMP","GIT_AUTHOR_EMAIL","GIT_AUTHOR_NAME","GIT_BRANCH","GIT_COMMIT","GIT_COMMITTER_EMAIL","GIT_COMMITTER_NAME","GIT_LOCAL_BRANCH","GIT_PREVIOUS_COMMIT","GIT_PREVIOUS_SUCCESSFUL_COMMIT","GIT_URL","ghprbActualCommit","ghprbGhRepository","ghprbPullId","ghprbPullLink","ghprbSourceBranch","ghprbTargetBranch","ghprbTriggerAuthorLogin"]),semaphore:f(["SEMAPHORE_BRANCH_ID","SEMAPHORE_BUILD_NUMBER","SEMAPHORE_CURRENT_JOB","SEMAPHORE_CURRENT_THREAD","SEMAPHORE_EXECUTABLE_UUID","SEMAPHORE_GIT_BRANCH","SEMAPHORE_GIT_DIR","SEMAPHORE_GIT_REF","SEMAPHORE_GIT_REF_TYPE","SEMAPHORE_GIT_REPO_SLUG","SEMAPHORE_GIT_SHA","SEMAPHORE_GIT_URL","SEMAPHORE_JOB_COUNT","SEMAPHORE_JOB_ID","SEMAPHORE_JOB_NAME","SEMAPHORE_JOB_UUID","SEMAPHORE_PIPELINE_ID","SEMAPHORE_PLATFORM","SEMAPHORE_PROJECT_DIR","SEMAPHORE_PROJECT_HASH_ID","SEMAPHORE_PROJECT_ID","SEMAPHORE_PROJECT_NAME","SEMAPHORE_PROJECT_UUID","SEMAPHORE_REPO_SLUG","SEMAPHORE_TRIGGER_SOURCE","SEMAPHORE_WORKFLOW_ID","PULL_REQUEST_NUMBER"]),teamcity:null,travis:f(["TRAVIS_JOB_ID","TRAVIS_BUILD_ID","TRAVIS_BUILD_WEB_URL","TRAVIS_REPO_SLUG","TRAVIS_JOB_NUMBER","TRAVIS_EVENT_TYPE","TRAVIS_COMMIT_RANGE","TRAVIS_BUILD_NUMBER","TRAVIS_PULL_REQUEST","TRAVIS_PULL_REQUEST_BRANCH","TRAVIS_PULL_REQUEST_SHA"]),netlify:f(["BUILD_ID","CONTEXT","URL","DEPLOY_URL","DEPLOY_PRIME_URL","DEPLOY_ID"])}),hr=()=>{let{env:e}=process;return{appveyor:{sha:e.APPVEYOR_REPO_COMMIT,branch:e.APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH||e.APPVEYOR_REPO_BRANCH,message:Ir(`
2
- `,e.APPVEYOR_REPO_COMMIT_MESSAGE,e.APPVEYOR_REPO_COMMIT_MESSAGE_EXTENDED),authorName:e.APPVEYOR_REPO_COMMIT_AUTHOR,authorEmail:e.APPVEYOR_REPO_COMMIT_AUTHOR_EMAIL},awsCodeBuild:{sha:e.CODEBUILD_RESOLVED_SOURCE_VERSION,remoteOrigin:e.CODEBUILD_SOURCE_REPO_URL},azure:{sha:e.BUILD_SOURCEVERSION,branch:e.BUILD_SOURCEBRANCHNAME,message:e.BUILD_SOURCEVERSIONMESSAGE,authorName:e.BUILD_SOURCEVERSIONAUTHOR,authorEmail:e.BUILD_REQUESTEDFOREMAIL},bamboo:{sha:e.bamboo_planRepository_revision,branch:e.bamboo_planRepository_branch,authorName:e.bamboo_planRepository_username,remoteOrigin:e.bamboo_planRepository_repositoryURL},bitbucket:{sha:e.BITBUCKET_COMMIT,branch:e.BITBUCKET_BRANCH},buildkite:{sha:e.BUILDKITE_COMMIT,branch:e.BUILDKITE_BRANCH,message:e.BUILDKITE_MESSAGE,authorName:e.BUILDKITE_BUILD_CREATOR,authorEmail:e.BUILDKITE_BUILD_CREATOR_EMAIL,remoteOrigin:e.BUILDKITE_REPO,defaultBranch:e.BUILDKITE_PIPELINE_DEFAULT_BRANCH},circle:{sha:e.CIRCLE_SHA1,branch:e.CIRCLE_BRANCH,authorName:e.CIRCLE_USERNAME,remoteOrigin:e.CIRCLE_REPOSITORY_URL},codeFresh:{sha:e.CF_REVISION,branch:e.CF_BRANCH,message:e.CF_COMMIT_MESSAGE,authorName:e.CF_COMMIT_AUTHOR},drone:{sha:e.DRONE_COMMIT_SHA,branch:e.DRONE_SOURCE_BRANCH,message:e.DRONE_COMMIT_MESSAGE,authorName:e.DRONE_COMMIT_AUTHOR,authorEmail:e.DRONE_COMMIT_AUTHOR_EMAIL,remoteOrigin:e.DRONE_GIT_HTTP_URL,defaultBranch:e.DRONE_REPO_BRANCH},githubActions:{sha:e.GITHUB_SHA,branch:e.GH_BRANCH||e.GITHUB_REF,defaultBranch:e.GITHUB_BASE_REF,remoteBranch:e.GITHUB_HEAD_REF,runAttempt:e.GITHUB_RUN_ATTEMPT},gitlab:{sha:e.CI_COMMIT_SHA,branch:e.CI_COMMIT_REF_NAME,message:e.CI_COMMIT_MESSAGE,authorName:e.GITLAB_USER_NAME,authorEmail:e.GITLAB_USER_EMAIL,remoteOrigin:e.CI_REPOSITORY_URL,defaultBranch:e.CI_DEFAULT_BRANCH},googleCloud:{sha:e.COMMIT_SHA,branch:e.BRANCH_NAME},jenkins:{sha:e.GIT_COMMIT,branch:e.GIT_BRANCH},semaphore:{sha:e.SEMAPHORE_GIT_SHA,branch:e.SEMAPHORE_GIT_BRANCH,remoteOrigin:e.SEMAPHORE_GIT_REPO_SLUG},snap:null,teamcity:null,travis:{sha:e.TRAVIS_PULL_REQUEST_SHA||e.TRAVIS_COMMIT,branch:e.TRAVIS_PULL_REQUEST_BRANCH||e.TRAVIS_BRANCH,message:e.TRAVIS_COMMIT_MESSAGE},netlify:{sha:e.COMMIT_REF,branch:e.BRANCH,remoteOrigin:e.REPOSITORY_URL}}},ye=e=>{let t=Me();return t?(0,m.chain)(e()).get(t).value():{}};function Sr(){return(0,m.chain)(Pe()).omitBy(m.isNull).keys().value()}function Nr(e){return e&&Sr().includes(e)}function Me(){let e=Ar();return Y("detected CI provider name: %s",e),e||null}function Br(){return ye(Pe)}function xe(){return ye(hr)}function be(e){let t=Br(),r=Me(),o=Lr(e,r);return Y("detected CI provider: %s",r),Y("detected CI params: %O",t),Y("detected CI build ID: %o",o),{params:t,provider:r,ciBuildId:o}}function Lr(e,t){return e?{source:"user",value:e}:Nr(t)?{source:"server",value:null}:{source:"random",value:`auto:${Ee()}`}}var ve=require("@currents/commit-info"),Ge=require("lodash");var V=require("lodash");var ue=c.extend("ci-git");function we(e){ue("git commit existing info: %O",e);let t=xe();ue("commit info from provider environment variables: %O",t);let r=(0,V.transform)(e,(o,n,s)=>{let i=n||(t?t[s]:null);return o[s]=(0,V.defaultTo)(i,null)});return ue("combined git and environment variables from provider: %O",r),r}var Pr=async()=>{let e=await(0,ve.commitInfo)();return we({branch:e.branch,remoteOrigin:e.remote,authorEmail:e.email,authorName:e.author,message:e.message,sha:e.sha,ghaEventData:e.ghaEventData})},Fe=(0,Ge.memoize)(Pr);var He=u(require("getos")),ke=require("lodash"),h=require("os"),Ke=require("util"),yr=async()=>{if((0,h.platform)()==="linux")try{let e=await(0,Ke.promisify)(He.default)();return"dist"in e&&"release"in e?[e.dist,e.release].join(" - "):(0,h.release)()}catch{return(0,h.release)()}return(0,h.release)()},Mr=async()=>{let e=await yr();return{osName:(0,h.platform)(),osVersion:e,osCpus:[],osMemory:{free:(0,h.freemem)(),total:(0,h.totalmem)()}}},je=(0,ke.memoize)(Mr);var Ye={name:"@currents/cmd",version:"1.11.0-beta.1",main:"./dist/index.js",author:{name:"Currents Software Inc",email:"hello@currents.dev"},license:"MIT",repository:{type:"git",url:"https://github.com/currents-dev/currents-reporter"},description:"Currents CLI tools",scripts:{test:"vitest",rm:"rimraf dist",lint:'TIMING=1 eslint "**/*.ts*"',types:"tsc --noEmit",build:"tsup-node --minify --dts",dev:"tsup-node --watch --dts",release:"release-it","publish:npm":"npm run rm && npm run build && ./publish.js"},devDependencies:{"@jest/reporters":"^30.4.1","@jest/types":"^30.4.1","@release-it/conventional-changelog":"^12.0.0","release-it":"^21.0.2","@types/archiver":"^6.0.3","@types/async-retry":"^1.4.9","@types/debug":"^4.1.12","@types/fs-extra":"^11.0.4","@types/getos":"^3.0.4","@types/lodash":"^4.17.16","@types/node":"^25.5.0","@types/proxy-from-env":"^1.0.4","@types/semver":"^7.5.8","@types/tmp":"^0.2.6","@types/unzipper":"^0.10.11","@types/uuid":"^10.0.0","@types/xml2js":"^0.4.14","@types/xxhashjs":"^0.2.4",jest:"^30.4.2",rimraf:"^6.0.1",tsup:"^8.3.5",typescript:"^5.9.3",vitest:"^4.1.0"},dependencies:{"@commander-js/extra-typings":"^13.1.0","@currents/commit-info":"1.0.1-beta.0",archiver:"^7.0.1","async-retry":"^1.3.3",axios:"1.18.1","axios-retry":"4.5.0",chalk:"^4.1.2",commander:"^13.1.0",debug:"^4.4.0",dotenv:"^17.4.2",execa:"^9.5.1","fs-extra":"^11.3.4",getos:"^3.2.1",globby:"^11.1.0","https-proxy-agent":"^7.0.4","jest-cli":"^30.2.0","jest-config":"^30.3.0",lodash:"^4.18.1",nanoid:"^3.3.8","pretty-ms":"^7.0.1","proxy-from-env":"^1.1.0",semver:"^7.8.5","source-map-support":"^0.5.21",tmp:"^0.2.7","tmp-promise":"^3.0.3","ts-pattern":"^5.8.0",unzipper:"^0.12.3",uuid:"11.1.1",xml2js:"^0.6.2",xxhashjs:"^0.2.2"},bin:{currents:"./dist/bin/index.js","currents-cli":"./dist/bin/index.js"},files:["dist","!**/*.map","!**/*/*.map"],keywords:["cloud test dashboard","test reporter","test results","currents","currents dashboard","ci"],exports:{".":{import:"./dist/index.js",require:"./dist/index.js",types:"./dist/index.d.ts"},"./discovery/jest":{import:"./dist/services/upload/discovery/jest/reporter.js",require:"./dist/services/upload/discovery/jest/reporter.js",types:"./dist/services/upload/discovery/jest/reporter.d.ts"},"./package.json":"./package.json"},"release-it":{npm:{publish:!1},github:{release:!0,releaseName:"${npm.name} v${version}"},plugins:{"@release-it/conventional-changelog":{preset:"angular",header:"# Changelog",ignoreVersion:!0,infile:"./CHANGELOG.md"}},git:{commitMessage:"chore: release ${npm.name} v${version}",tagName:"${npm.name}-v${version}"}}};var J=Ye.version;function br(e,t){if(!e)return e;let r={...e};return t.forEach(o=>{r.hasOwnProperty(o)&&(r[o]="*****")}),r}function S(e){return br(e,["recordKey","key"])}var wr=[];function pe(e){wr.push(e)}var d=u(require("chalk")),b=u(require("util"));var Ve=[],Je=[];var $e=(...e)=>{let t=b.default.format(...e);pe(t),console.log(t)},vr=(...e)=>{let t=b.default.format(...e);pe(t),console.error(t)},$=$e,l=(...e)=>{let t=b.default.format(...e);return Je.push(t),c("WARNING: ",t),$e(d.default.bgYellow.black(" WARNING "),t)};var I=(...e)=>{let t=b.default.format(...Gr(e));return Ve.push(t),c("ERROR: ",b.default.format(...e)),vr(d.default.bgRed.white(" ERROR "),t)};var Gr=e=>e.map(t=>t instanceof Error?t.message:t),W=(e=2)=>console.log(Array(e).fill("").join(`
2
+ `,e.APPVEYOR_REPO_COMMIT_MESSAGE,e.APPVEYOR_REPO_COMMIT_MESSAGE_EXTENDED),authorName:e.APPVEYOR_REPO_COMMIT_AUTHOR,authorEmail:e.APPVEYOR_REPO_COMMIT_AUTHOR_EMAIL},awsCodeBuild:{sha:e.CODEBUILD_RESOLVED_SOURCE_VERSION,remoteOrigin:e.CODEBUILD_SOURCE_REPO_URL},azure:{sha:e.BUILD_SOURCEVERSION,branch:e.BUILD_SOURCEBRANCHNAME,message:e.BUILD_SOURCEVERSIONMESSAGE,authorName:e.BUILD_SOURCEVERSIONAUTHOR,authorEmail:e.BUILD_REQUESTEDFOREMAIL},bamboo:{sha:e.bamboo_planRepository_revision,branch:e.bamboo_planRepository_branch,authorName:e.bamboo_planRepository_username,remoteOrigin:e.bamboo_planRepository_repositoryURL},bitbucket:{sha:e.BITBUCKET_COMMIT,branch:e.BITBUCKET_BRANCH},buildkite:{sha:e.BUILDKITE_COMMIT,branch:e.BUILDKITE_BRANCH,message:e.BUILDKITE_MESSAGE,authorName:e.BUILDKITE_BUILD_CREATOR,authorEmail:e.BUILDKITE_BUILD_CREATOR_EMAIL,remoteOrigin:e.BUILDKITE_REPO,defaultBranch:e.BUILDKITE_PIPELINE_DEFAULT_BRANCH},circle:{sha:e.CIRCLE_SHA1,branch:e.CIRCLE_BRANCH,authorName:e.CIRCLE_USERNAME,remoteOrigin:e.CIRCLE_REPOSITORY_URL},codeFresh:{sha:e.CF_REVISION,branch:e.CF_BRANCH,message:e.CF_COMMIT_MESSAGE,authorName:e.CF_COMMIT_AUTHOR},drone:{sha:e.DRONE_COMMIT_SHA,branch:e.DRONE_SOURCE_BRANCH,message:e.DRONE_COMMIT_MESSAGE,authorName:e.DRONE_COMMIT_AUTHOR,authorEmail:e.DRONE_COMMIT_AUTHOR_EMAIL,remoteOrigin:e.DRONE_GIT_HTTP_URL,defaultBranch:e.DRONE_REPO_BRANCH},githubActions:{sha:e.GITHUB_SHA,branch:e.GH_BRANCH||e.GITHUB_REF,defaultBranch:e.GITHUB_BASE_REF,remoteBranch:e.GITHUB_HEAD_REF,runAttempt:e.GITHUB_RUN_ATTEMPT},gitlab:{sha:e.CI_COMMIT_SHA,branch:e.CI_COMMIT_REF_NAME,message:e.CI_COMMIT_MESSAGE,authorName:e.GITLAB_USER_NAME,authorEmail:e.GITLAB_USER_EMAIL,remoteOrigin:e.CI_REPOSITORY_URL,defaultBranch:e.CI_DEFAULT_BRANCH},googleCloud:{sha:e.COMMIT_SHA,branch:e.BRANCH_NAME},jenkins:{sha:e.GIT_COMMIT,branch:e.GIT_BRANCH},semaphore:{sha:e.SEMAPHORE_GIT_SHA,branch:e.SEMAPHORE_GIT_BRANCH,remoteOrigin:e.SEMAPHORE_GIT_REPO_SLUG},snap:null,teamcity:null,travis:{sha:e.TRAVIS_PULL_REQUEST_SHA||e.TRAVIS_COMMIT,branch:e.TRAVIS_PULL_REQUEST_BRANCH||e.TRAVIS_BRANCH,message:e.TRAVIS_COMMIT_MESSAGE},netlify:{sha:e.COMMIT_REF,branch:e.BRANCH,remoteOrigin:e.REPOSITORY_URL}}},ye=e=>{let t=Me();return t?(0,m.chain)(e()).get(t).value():{}};function Sr(){return(0,m.chain)(Pe()).omitBy(m.isNull).keys().value()}function Nr(e){return e&&Sr().includes(e)}function Me(){let e=Ar();return Y("detected CI provider name: %s",e),e||null}function Br(){return ye(Pe)}function xe(){return ye(hr)}function be(e){let t=Br(),r=Me(),o=Lr(e,r);return Y("detected CI provider: %s",r),Y("detected CI params: %O",t),Y("detected CI build ID: %o",o),{params:t,provider:r,ciBuildId:o}}function Lr(e,t){return e?{source:"user",value:e}:Nr(t)?{source:"server",value:null}:{source:"random",value:`auto:${Ee()}`}}var ve=require("@currents/commit-info"),Ge=require("lodash");var V=require("lodash");var ue=c.extend("ci-git");function we(e){ue("git commit existing info: %O",e);let t=xe();ue("commit info from provider environment variables: %O",t);let r=(0,V.transform)(e,(o,n,s)=>{let i=n||(t?t[s]:null);return o[s]=(0,V.defaultTo)(i,null)});return ue("combined git and environment variables from provider: %O",r),r}var Pr=async()=>{let e=await(0,ve.commitInfo)();return we({branch:e.branch,remoteOrigin:e.remote,authorEmail:e.email,authorName:e.author,message:e.message,sha:e.sha,ghaEventData:e.ghaEventData})},Fe=(0,Ge.memoize)(Pr);var He=u(require("getos")),ke=require("lodash"),h=require("os"),Ke=require("util"),yr=async()=>{if((0,h.platform)()==="linux")try{let e=await(0,Ke.promisify)(He.default)();return"dist"in e&&"release"in e?[e.dist,e.release].join(" - "):(0,h.release)()}catch{return(0,h.release)()}return(0,h.release)()},Mr=async()=>{let e=await yr();return{osName:(0,h.platform)(),osVersion:e,osCpus:[],osMemory:{free:(0,h.freemem)(),total:(0,h.totalmem)()}}},je=(0,ke.memoize)(Mr);var Ye={name:"@currents/cmd",version:"1.11.0",main:"./dist/index.js",author:{name:"Currents Software Inc",email:"hello@currents.dev"},license:"MIT",repository:{type:"git",url:"https://github.com/currents-dev/currents-reporter"},description:"Currents CLI tools",scripts:{test:"vitest",rm:"rimraf dist",lint:'TIMING=1 eslint "**/*.ts*"',types:"tsc --noEmit",build:"tsup-node --minify --dts",dev:"tsup-node --watch --dts",release:"release-it","publish:npm":"npm run rm && npm run build && ./publish.js"},devDependencies:{"@jest/reporters":"^30.4.1","@jest/types":"^30.4.1","@release-it/conventional-changelog":"^12.0.0","release-it":"^21.0.2","@types/archiver":"^6.0.3","@types/async-retry":"^1.4.9","@types/debug":"^4.1.12","@types/fs-extra":"^11.0.4","@types/getos":"^3.0.4","@types/lodash":"^4.17.16","@types/node":"^25.5.0","@types/proxy-from-env":"^1.0.4","@types/semver":"^7.5.8","@types/tmp":"^0.2.6","@types/unzipper":"^0.10.11","@types/uuid":"^10.0.0","@types/xml2js":"^0.4.14","@types/xxhashjs":"^0.2.4",jest:"^30.4.2",rimraf:"^6.0.1",tsup:"^8.3.5",typescript:"^5.9.3",vitest:"^4.1.0"},dependencies:{"@commander-js/extra-typings":"^13.1.0","@currents/commit-info":"1.1.0",archiver:"^7.0.1","async-retry":"^1.3.3",axios:"1.18.1","axios-retry":"4.5.0",chalk:"^4.1.2",commander:"^13.1.0",debug:"^4.4.0",dotenv:"^17.4.2",execa:"^9.5.1","fs-extra":"^11.3.4",getos:"^3.2.1",globby:"^11.1.0","https-proxy-agent":"^7.0.4","jest-cli":"^30.2.0","jest-config":"^30.3.0",lodash:"^4.18.1",nanoid:"^3.3.8","pretty-ms":"^7.0.1","proxy-from-env":"^1.1.0",semver:"^7.8.5","source-map-support":"^0.5.21",tmp:"^0.2.7","tmp-promise":"^3.0.3","ts-pattern":"^5.8.0",unzipper:"^0.12.3",uuid:"11.1.1",xml2js:"^0.6.2",xxhashjs:"^0.2.2"},bin:{currents:"./dist/bin/index.js","currents-cli":"./dist/bin/index.js"},files:["dist","!**/*.map","!**/*/*.map"],keywords:["cloud test dashboard","test reporter","test results","currents","currents dashboard","ci"],exports:{".":{import:"./dist/index.js",require:"./dist/index.js",types:"./dist/index.d.ts"},"./discovery/jest":{import:"./dist/services/upload/discovery/jest/reporter.js",require:"./dist/services/upload/discovery/jest/reporter.js",types:"./dist/services/upload/discovery/jest/reporter.d.ts"},"./package.json":"./package.json"},"release-it":{npm:{publish:!1},github:{release:!0,releaseName:"${npm.name} v${version}"},plugins:{"@release-it/conventional-changelog":{preset:"angular",header:"# Changelog",ignoreVersion:!0,infile:"./CHANGELOG.md"}},git:{commitMessage:"chore: release ${npm.name} v${version}",tagName:"${npm.name}-v${version}"}}};var J=Ye.version;function br(e,t){if(!e)return e;let r={...e};return t.forEach(o=>{r.hasOwnProperty(o)&&(r[o]="*****")}),r}function S(e){return br(e,["recordKey","key"])}var wr=[];function pe(e){wr.push(e)}var d=u(require("chalk")),b=u(require("util"));var Ve=[],Je=[];var $e=(...e)=>{let t=b.default.format(...e);pe(t),console.log(t)},vr=(...e)=>{let t=b.default.format(...e);pe(t),console.error(t)},$=$e,l=(...e)=>{let t=b.default.format(...e);return Je.push(t),c("WARNING: ",t),$e(d.default.bgYellow.black(" WARNING "),t)};var I=(...e)=>{let t=b.default.format(...Gr(e));return Ve.push(t),c("ERROR: ",b.default.format(...e)),vr(d.default.bgRed.white(" ERROR "),t)};var Gr=e=>e.map(t=>t instanceof Error?t.message:t),W=(e=2)=>console.log(Array(e).fill("").join(`
3
3
  `)),pn=d.default.cyan,mn=d.default.blueBright,_n=d.default.red,ln=d.default.yellow,In=d.default.green,Rn=d.default.gray,fn=d.default.white,Tn=d.default.black,dn=d.default.magenta,w=d.default.dim,gn=d.default.bold;var v=u(require("fs-extra")),me=require("path"),Hr=require("uuid");async function M(e){try{return await v.default.readJson(e)}catch(t){throw I("Error while reading JSON file: %s",e,t),I}}async function _e(e,t){try{return await v.default.writeFile(e,t,"utf8"),e}catch(r){throw I(`Error writing file at ${e}:`,r),r}}async function We(e){try{return await v.default.ensureDir(e),c("Folder created",e),e}catch(t){throw I(`Failed to create folder at ${e}:`,t),t}}async function Qe(e,t){try{return await v.default.ensureDir((0,me.dirname)(t)),await v.default.copy(e,t),c("File copied from %s to %s",e,t),t}catch(r){throw I(`Failed to copy file from ${e} to ${t}:`,r),r}}var qe=u(require("crypto"));function Xe(e){return qe.createHash("sha256").update(e).digest("base64").slice(0,8).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}var rr=u(require("axios")),De=u(require("fs-extra")),se=u(require("path")),or=u(require("semver"));var lt=u(require("lodash"));var st=u(require("axios")),it=u(require("axios-retry")),Te=u(require("lodash"));var ze=()=>process.env.CURRENTS_API_URL??"https://cy.currents.dev",Ze=()=>process.env.CURRENTS_REST_API_URL??"https://api.currents.dev",et=()=>3e4;var le=require("axios"),Ie=u(require("pretty-ms"));var tt=c.extend("http"),Q=e=>[3*1e3,15*1e3,30*1e3][e-1],rt=e=>(tt("isRetriableError: %o",{message:e.message,code:"code"in e?e.code:void 0,status:"response"in e?e.response?.status:void 0,headers:"response"in e?e.response?.headers:void 0,data:"response"in e?e.response?.data:void 0,isAxiosError:(0,le.isAxiosError)(e)}),"code"in e&&e.code&&["ECONNABORTED","ECONNREFUSED","ECONNRESET","ETIMEDOUT","ENETRESET"].includes(e.code)?!0:(0,le.isAxiosError)(e)?[429,502,503,504].includes(e.response?.status??0):!1),q=()=>3;function ot(e,t,r){tt("Network request '%s' failed: '%s'. Next attempt is in %s (%d/%d).",`${r.method?.toUpperCase()} ${r.url}`,t.message,(0,Ie.default)(Q(e)),e,q()),l("Network request '%s' failed: '%s'. Next attempt is in %s (%d/%d).",`${r.method?.toUpperCase()} ${r.url}`,t.message,(0,Ie.default)(Q(e)),e,q())}var Re=c.extend("http");var fe={api:null,restApi:null};function kr(e){let t=e==="api"?ze():Ze();Re("client base url: %s",t);let r=st.default.create({baseURL:t,timeout:et(),transitional:{clarifyTimeoutError:!0}});return r.interceptors.request.use(o=>{let n=o["axios-retry"]?.retryCount??0;o.headers.set({"x-cmd-version":J}),o.headers.get("Content-Type")||o.headers.set("Content-Type","application/json");let s={...Te.default.pick(o,"method","url","headers"),baseURL:t,data:Buffer.isBuffer(o.data)?"buffer":o.data,params:o.params};return n?Re("network request retry: %o",nt({...s,baseURL:t,isRetry:!0})):Re("network request: %o",nt(s)),o}),(0,it.default)(r,{retries:q(),retryCondition:rt,retryDelay:Q,shouldResetTimeout:!0,onRetry:ot}),r}function at(e){return fe[e]===null&&(fe[e]=kr(e)),fe[e]}function nt(e){return{method:e.method,baseURL:e.baseURL,url:e.url,data:e.isRetry?"<retry>":Kr(e.data),params:e.isRetry?"<retry>":e.params,headers:{...e.headers,Authorization:"Bearer ***","x-currents-key":"***"}}}function Kr(e){return e?.results?.raw?S({...e,results:{...e.results,raw:"***"}}):Te.default.isPlainObject(e)?S(e):e}var ut=require("axios"),pt=u(require("lodash")),T=require("ts-pattern");function mt(e){(0,T.match)(e).when(ut.isAxiosError,jr).otherwise(()=>{l("Unexpected error while sending network request: %s",e)})}function jr(e){return(0,T.match)(e).with({code:"ECONNABORTED"},()=>{l("Network connection aborted")}).with({code:"ECONNREFUSED"},()=>{l("Network connection aborted")}).with({code:"ECONNRESET"},()=>{l("Network connection reset")}).with({code:"ETIMEDOUT"},()=>{l("Network connection timeout")}).with({response:T.P.not(T.P.nullish)},t=>{Yr(t,{status:t.response.status,data:t.response.data})}).otherwise(t=>{l(`[currents] Unexpected network error: %s
4
4
  %O`,e.message,{method:e.response?.config.method,url:e.response?.config.url,status:e.response?.status,payload:e.response?.config.data})})}function Yr(e,{status:t,data:r}){(0,T.match)(t).with(401,()=>{l(`[currents] ${e.response?.config.method} ${e.response?.config.url}} - 401 Unauthorized Request from cloud service`)}).with(400,()=>{l(`[currents] ${e.response?.config.method} ${e.response?.config.url} - 400 Bad Request from cloud service:
5
5
  %o`,r)}).with(404,()=>{l(`[currents] ${e.response?.config.method} ${e.response?.config.url} - 404 Not Found from cloud service`)}).with(429,()=>{l(`[currents] ${e.response?.config.method} ${e.response?.config.url} - 429 Too Many Requests from cloud service`)}).with(422,()=>{Vr(e,r)}).otherwise(()=>{l(`[currents] Unexpected network response: %s
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@currents/cmd",
3
- "version": "1.11.0-beta.1",
3
+ "version": "1.11.0",
4
4
  "main": "./dist/index.js",
5
5
  "author": {
6
6
  "name": "Currents Software Inc",
@@ -49,7 +49,7 @@
49
49
  },
50
50
  "dependencies": {
51
51
  "@commander-js/extra-typings": "^13.1.0",
52
- "@currents/commit-info": "1.0.1-beta.0",
52
+ "@currents/commit-info": "1.1.0",
53
53
  "archiver": "^7.0.1",
54
54
  "async-retry": "^1.3.3",
55
55
  "axios": "1.18.1",