{
  "version": 3,
  "sources": ["../../build.ts", "../../bin/continuous-integration.ts", "../../bin/find-root.ts"],
  "sourcesContent": ["#!/usr/bin/env node\n\nimport os from 'node:os'\n\nimport { ContinuousIntegration as CI } from './bin/continuous-integration'\nimport { pkg } from './bin/find-root'\n\nexport let version = ''\nexport let release = Boolean(CI.tag)\n\nexport function buildNumber(n = 4) {\n  version = pkg.version as string\n\n  if (!release && CI.service) {\n    version += '.' + `${CI.build_number % (10 ** n)}`.padStart(n, '0') // assuming you are not outputting thousands of builds a week\n  }\n  else if (!release) {\n    version += `.${os.userInfo().username}.${os.hostname()}`\n  }\n}\n\nbuildNumber()\n", "import * as child_process from 'node:child_process'\n\nclass ContinuousIntegrationSingleton {\n  public service = ''\n  public build_number = 0\n  public tag = ''\n  public commit_message = ''\n  public branch = ''\n  public pull_request = false\n  public issue = ''\n\n  constructor() {\n    for (const [id, name] of Object.entries({ CIRCLECI: 'Circle', TRAVIS: 'Travis', SEMAPHORE: 'Semaphore', GITHUB_ACTIONS: 'GitHub' })) {\n      if (process.env[id] === 'true') this.service = name\n    }\n\n    switch (this.service) {\n      case 'Circle':\n        this.build_number = this.parseInt(this.env('CIRCLE_BUILD_NUM'))\n        try {\n          const sha = this.env('CIRCLE_SHA1')\n          this.tag = child_process.execSync(`git describe --exact-match ${sha}`, { stdio: 'pipe' }).toString().trim()\n        }\n        catch (err) {\n          this.tag = ''\n        }\n        this.commit_message = child_process.execSync(`git log --format=%B -n 1 ${this.env('CIRCLE_SHA1')}`).toString().trim()\n        this.branch = this.env('CIRCLE_BRANCH')\n        this.pull_request = !!process.env.CIRCLE_PULL_REQUEST\n        break\n\n      case 'GitHub':\n        this.build_number = this.parseInt(this.env('GITHUB_RUN_NUMBER'))\n        this.commit_message = child_process.execSync(`git log --format=%B -n 1 ${this.env('GITHUB_SHA')}`).toString().trim()\n        this.pull_request = this.env('GITHUB_EVENT_NAME').startsWith('pull-request')\n\n        const githubRef = this.env('GITHUB_REF')\n\n        if (process.env.GITHUB_HEAD_REF) {\n          this.branch = process.env.GITHUB_HEAD_REF.split('/').pop() || ''\n        }\n        else if (githubRef.startsWith('refs/tags/')) {\n          // leave branch undefined when tagged... not great\n          this.tag = githubRef.split('/').pop() || ''\n        }\n        else if (githubRef.startsWith('refs/heads/')) {\n          this.branch = githubRef.split('/').pop() || ''\n        }\n        this.branch = this.branch || ''\n        this.issue = this.branch.match(/^gh-([0-9]+)$/)?.[1] || ''\n        break\n\n      default:\n        if (process.env.CI === 'true') throw new Error(`Unexpected CI service ${this.service}`)\n    }\n  }\n\n  private env(name: string): string {\n    const value = process.env[name]\n    if (!value) throw new Error(`${name} is not set`)\n    return value\n  }\n\n  private parseInt(n: number | string | undefined): number {\n    if (typeof n === 'undefined') throw new Error('missing integer value')\n    if (typeof n === 'number') return n\n    const int = parseInt(n)\n    if (isNaN(int)) throw new Error(`${n} is not an integer`)\n    return int\n  }\n}\n\nexport const ContinuousIntegration = new ContinuousIntegrationSingleton() // eslint-disable-line @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match\n", "import fs from 'node:fs'\nimport path from 'node:path'\n\nconst folders = process.cwd().split(path.sep)\nconst rootIndex = folders.findIndex((folder: string, i: number) => fs.existsSync(path.join(folders.slice(0, i + 1).join(path.sep), 'package.json')))\nexport const root = (rootIndex > 0 ? folders.slice(0, rootIndex + 1) : folders).join(path.sep)\nconsole.log('project directory:', root)\n\nexport const pkg = JSON.parse(fs.readFileSync(path.join(root, 'package.json'), 'utf-8'))\n"],
  "mappings": "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",
  "names": ["path", "fs", "os"]
}
