@ibm/telemetry-js
Version:
JavaScript telemetry tooling for open/inner source projects
21 lines (18 loc) • 7.4 kB
JavaScript
/*
* 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 U=Object.create;var c=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var T=Object.getPrototypeOf,p=Object.prototype.hasOwnProperty;var _=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports);var D=(e,n,E,a)=>{if(n&&typeof n=="object"||typeof n=="function")for(let I of m(n))!p.call(e,I)&&I!==E&&c(e,I,{get:()=>n[I],enumerable:!(a=l(n,I))||a.enumerable});return e};var S=(e,n,E)=>(E=e!=null?U(T(e)):{},D(n||!e||!e.__esModule?c(E,"default",{value:e,enumerable:!0}):E,e));var R=_((N,v)=>{v.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 u=_(s=>{"use strict";var L=R(),t=process.env;Object.defineProperty(s,"_vendors",{value:L.map(function(e){return e.constant})});s.name=null;s.isPR=null;L.forEach(function(e){let E=(Array.isArray(e.env)?e.env:[e.env]).every(function(a){return C(a)});if(s[e.constant]=E,!!E)switch(s.name=e.name,typeof e.pr){case"string":s.isPR=!!t[e.pr];break;case"object":"env"in e.pr?s.isPR=e.pr.env in t&&t[e.pr.env]!==e.pr.ne:"any"in e.pr?s.isPR=e.pr.any.some(function(a){return!!t[a]}):s.isPR=C(e.pr);break;default:s.isPR=null}});s.isCI=!!(t.CI!=="false"&&(t.BUILD_ID||t.BUILD_NUMBER||t.CI||t.CI_APP_ID||t.CI_BUILD_ID||t.CI_BUILD_NUMBER||t.CI_NAME||t.CONTINUOUS_INTEGRATION||t.RUN_ID||s.name));function C(e){return typeof e=="string"?!!t[e]:"env"in e?t[e.env]&&t[e.env].includes(e.includes):"any"in e?e.any.some(function(n){return!!t[n]}):Object.keys(e).every(function(n){return t[n]===e[n]})}});var r=S(u(),1);import{createHash as A}from"node:crypto";import{existsSync as i,readFileSync as P}from"node:fs";var d={"Secure Pipelines Services":["PIPELINE_RUN_URL","PIPELINE_RUN_ID","PIPELINE_ID"]},o=class{constructor(n){this.name=r.name!==null&&r.name!==void 0?r.name:"",this.isCI=r.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(),n?.isCI!==void 0&&(this.isCI=n.isCI),n?.isExportEnabled!==void 0&&(this.isExportEnabled=n.isExportEnabled),n?.isTelemetryEnabled!==void 0&&(this.isTelemetryEnabled=n.isTelemetryEnabled),n?.cwd!==void 0&&(this.cwd=n.cwd);let E=A("sha256");E.update(this.name),this.name=E.digest("hex")}customCICheck(){for(let[n,E]of Object.entries(d))if(E.some(a=>process.env[a]!==void 0))return this.name=n,!0;return!1}containerCheck(){if(i("/run/.containerenv"))return this.name="Podman",!0;if(i("/.dockerenv"))return this.name="Docker",!0;if(i("/proc/self/cgroup"))try{if(P("/proc/self/cgroup","utf8").includes("docker"))return this.name="Docker",!0}catch(n){console.log("Error reading /proc/self/cgroup:",n)}return!1}getConfig(){return{cwd:this.cwd,isCI:this.isCI,name:this.name,isExportEnabled:this.isExportEnabled,isTelemetryEnabled:this.isTelemetryEnabled}}};function G(){let e=new o;e.isCI&&e.isTelemetryEnabled&&console.log(`
--------------------------------------------------------------------------------
NOTICE:
A package you installed is using IBM Telemetry to collect anonymous usage data.
This information is used to influence the project's roadmap and prioritize bug
fixes.
You can opt-out of this process by setting IBM_TELEMETRY_DISABLED='true' in your
environment.
To learn more, please visit: https://github.com/ibm-telemetry/telemetry-js'
--------------------------------------------------------------------------------
`)}export{G as notify};