UNPKG

@ibm/telemetry-js

Version:

JavaScript telemetry tooling for open/inner source projects

9 lines (8 loc) 8.02 kB
#!/usr/bin/env node /* * Copyright IBM Corp. 2023, 2025 * * This source code is licensed under the Apache-2.0 license found in the * LICENSE file in the root directory of this source tree. */ var A=Object.create;var l=Object.defineProperty;var P=Object.getOwnPropertyDescriptor;var B=Object.getOwnPropertyNames;var N=Object.getPrototypeOf,O=Object.prototype.hasOwnProperty;var f=(n,e)=>()=>(n&&(e=n(n=0)),e);var L=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),h=(n,e)=>{for(var t in e)l(n,t,{get:e[t],enumerable:!0})},y=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let E of B(e))!O.call(n,E)&&E!==t&&l(n,E,{get:()=>e[E],enumerable:!(r=P(e,E))||r.enumerable});return n};var M=(n,e,t)=>(t=n!=null?A(N(n)):{},y(e||!n||!n.__esModule?l(t,"default",{value:n,enumerable:!0}):t,n));var p=L((x,G)=>{G.exports=[{name:"Agola CI",constant:"AGOLA",env:"AGOLA_GIT_REF",pr:"AGOLA_PULL_REQUEST_ID"},{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:"TF_BUILD",pr:{BUILD_REASON:"PullRequest"}},{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:"Earthly",constant:"EARTHLY",env:"EARTHLY_CI"},{name:"Expo Application Services",constant:"EAS",env:"EAS_BUILD"},{name:"Gerrit",constant:"GERRIT",env:"GERRIT_PROJECT"},{name:"Gitea Actions",constant:"GITEA_ACTIONS",env:"GITEA_ACTIONS"},{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:"Prow",constant:"PROW",env:"PROW_JOB_ID"},{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:"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:"Vela",constant:"VELA",env:"VELA",pr:{VELA_PULL_REQUEST:"1"}},{name:"Vercel",constant:"VERCEL",env:{any:["NOW_BUILDER","VERCEL"]},pr:"VERCEL_GIT_PULL_REQUEST_ID"},{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 T=L(a=>{"use strict";var U=p(),s=process.env;Object.defineProperty(a,"_vendors",{value:U.map(function(n){return n.constant})});a.name=null;a.isPR=null;U.forEach(function(n){let t=(Array.isArray(n.env)?n.env:[n.env]).every(function(r){return m(r)});if(a[n.constant]=t,!!t)switch(a.name=n.name,typeof n.pr){case"string":a.isPR=!!s[n.pr];break;case"object":"env"in n.pr?a.isPR=n.pr.env in s&&s[n.pr.env]!==n.pr.ne:"any"in n.pr?a.isPR=n.pr.any.some(function(r){return!!s[r]}):a.isPR=m(n.pr);break;default:a.isPR=null}});a.isCI=!!(s.CI!=="false"&&(s.BUILD_ID||s.BUILD_NUMBER||s.CI||s.CI_APP_ID||s.CI_BUILD_ID||s.CI_BUILD_NUMBER||s.CI_NAME||s.CONTINUOUS_INTEGRATION||s.RUN_ID||a.name));function m(n){return typeof n=="string"?!!s[n]:"env"in n?s[n.env]&&s[n.env].includes(n.includes):"any"in n?n.any.some(function(e){return!!s[e]}):Object.keys(n).every(function(e){return s[e]===n[e]})}});var D={};h(D,{createLogFilePath:()=>w});import{tmpdir as b}from"node:os";import{join as Q}from"node:path";function w(n){let e=Math.round(Math.random()*999999).toString().padStart(6,"0");return Q(b(),`ibmtelemetry-${n.replace(/[:.-]/g,"")}-${e}.log`)}var S=f(()=>{"use strict"});var c=M(T(),1);import{createHash as V}from"node:crypto";import{existsSync as u,readFileSync as H}from"node:fs";var k={"Secure Pipelines Services":["PIPELINE_RUN_URL","PIPELINE_RUN_ID","PIPELINE_ID"]},_=class{constructor(e){this.name=c.name!==null&&c.name!==void 0?c.name:"",this.isCI=c.isCI||this.customCICheck()||this.containerCheck(),this.isExportEnabled=process.env.IBM_TELEMETRY_EXPORT_DISABLED!=="true",this.isTelemetryEnabled=process.env.IBM_TELEMETRY_DISABLED!=="true",this.cwd=process.cwd(),e?.isCI!==void 0&&(this.isCI=e.isCI),e?.isExportEnabled!==void 0&&(this.isExportEnabled=e.isExportEnabled),e?.isTelemetryEnabled!==void 0&&(this.isTelemetryEnabled=e.isTelemetryEnabled),e?.cwd!==void 0&&(this.cwd=e.cwd);let t=V("sha256");t.update(this.name),this.name=t.digest("hex")}customCICheck(){for(let[e,t]of Object.entries(k))if(t.some(r=>process.env[r]!==void 0))return this.name=e,!0;return!1}containerCheck(){if(u("/run/.containerenv"))return this.name="Podman",!0;if(u("/.dockerenv"))return this.name="Docker",!0;if(u("/proc/self/cgroup"))try{if(H("/proc/self/cgroup","utf8").includes("docker"))return this.name="Docker",!0}catch(e){console.log("Error reading /proc/self/cgroup:",e)}return!1}getConfig(){return{cwd:this.cwd,isCI:this.isCI,name:this.name,isExportEnabled:this.isExportEnabled,isTelemetryEnabled:this.isTelemetryEnabled}}};var Y=function(n,e,t,r){function E(o){return o instanceof t?o:new t(function(i){i(o)})}return new(t||(t=Promise))(function(o,i){function d(I){try{R(r.next(I))}catch(C){i(C)}}function v(I){try{R(r.throw(I))}catch(C){i(C)}}function R(I){I.done?o(I.value):E(I.value).then(d,v)}R((r=r.apply(n,e||[])).next())})};function z(){return Y(this,void 0,void 0,function*(){let n=yield import("node:child_process"),e=yield import("node:path"),{fileURLToPath:t}=yield import("node:url"),{createLogFilePath:r}=yield Promise.resolve().then(()=>(S(),D)),E=new Date().toISOString(),o=r(E),i=new _;i.isCI===!1||i.isTelemetryEnabled===!1||(console.log("Log file:",o),n.spawn(process.argv0,[e.join(e.dirname(t(import.meta.url)),"background-process.js"),`--log=${o}`,...process.argv.slice(2)],{stdio:"ignore",detached:!0,shell:!1}).unref())})}export{z as spawnBackgroundProcess};