PHP 8.2.30
Preview: version.js Size: 3.50 KB
//proc/thread-self/root/opt/alt/alt-nodejs24/root/lib/node_modules/npm/lib/commands/version.js

const { resolve } = require('node:path')
const { readFile } = require('node:fs/promises')
const { output } = require('proc-log')
const BaseCommand = require('../base-cmd.js')

class Version extends BaseCommand {
  static description = 'Bump a package version'
  static name = 'version'
  static params = [
    'allow-same-version',
    'commit-hooks',
    'git-tag-version',
    'json',
    'preid',
    'sign-git-tag',
    'workspace',
    'workspaces',
    'workspaces-update',
    'include-workspace-root',
  ]

  static workspaces = true
  static ignoreImplicitWorkspace = false

  static usage = ['[<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease | from-git]']

  static async completion (opts) {
    const {
      conf: {
        argv: { remain },
      },
    } = opts
    if (remain.length > 2) {
      return []
    }

    return [
      'major',
      'minor',
      'patch',
      'premajor',
      'preminor',
      'prepatch',
      'prerelease',
      'from-git',
    ]
  }

  async exec (args) {
    switch (args.length) {
      case 0:
        return this.list()
      case 1:
        return this.change(args)
      default:
        throw this.usageError()
    }
  }

  async execWorkspaces (args) {
    switch (args.length) {
      case 0:
        return this.listWorkspaces()
      case 1:
        return this.changeWorkspaces(args)
      default:
        throw this.usageError()
    }
  }

  async change (args) {
    const libnpmversion = require('libnpmversion')
    const prefix = this.npm.config.get('tag-version-prefix')
    const version = await libnpmversion(args[0], {
      ...this.npm.flatOptions,
      path: this.npm.prefix,
    })
    return output.standard(`${prefix}${version}`)
  }

  async changeWorkspaces (args) {
    const updateWorkspaces = require('../utils/update-workspaces.js')
    const libnpmversion = require('libnpmversion')
    const prefix = this.npm.config.get('tag-version-prefix')
    const {
      config,
      flatOptions,
      localPrefix,
    } = this.npm
    await this.setWorkspaces()
    const updatedWorkspaces = []
    for (const [name, path] of this.workspaces) {
      output.standard(name)
      const version = await libnpmversion(args[0], {
        ...flatOptions,
        'git-tag-version': false,
        path,
      })
      updatedWorkspaces.push(name)
      output.standard(`${prefix}${version}`)
    }
    return updateWorkspaces({
      config,
      flatOptions,
      localPrefix,
      npm: this.npm,
      workspaces: updatedWorkspaces,
    })
  }

  async list (results = {}) {
    const pj = resolve(this.npm.prefix, 'package.json')

    const pkg = await readFile(pj, 'utf8')
      .then(data => JSON.parse(data))
      .catch(() => ({}))

    if (pkg.name && pkg.version) {
      results[pkg.name] = pkg.version
    }

    results.npm = this.npm.version
    for (const [key, version] of Object.entries(process.versions)) {
      results[key] = version
    }

    if (this.npm.config.get('json')) {
      output.buffer(results)
    } else {
      output.standard(results)
    }
  }

  async listWorkspaces () {
    const results = {}
    await this.setWorkspaces()
    for (const path of this.workspacePaths) {
      const pj = resolve(path, 'package.json')
      // setWorkspaces has already parsed package.json so we know it won't error
      const pkg = await readFile(pj, 'utf8').then(data => JSON.parse(data))

      if (pkg.name && pkg.version) {
        results[pkg.name] = pkg.version
      }
    }
    return this.list(results)
  }
}

module.exports = Version

Directory Contents

Dirs: 0 × Files: 67

Name Size Perms Modified Actions
6.17 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
1.29 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
3.14 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
847 B lrw-r--r-- 2026-02-23 07:38:41
Edit Download
11.48 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
4.22 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
8.90 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
10.99 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
1.41 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
2.43 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
7.98 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
5.52 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
449 B lrw-r--r-- 2026-02-23 07:38:41
Edit Download
10.06 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
1.76 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
3.42 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
3.57 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
2.16 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
634 B lrw-r--r-- 2026-02-23 07:38:41
Edit Download
6.46 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
577 B lrw-r--r-- 2026-02-23 07:38:41
Edit Download
5.53 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
3.67 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
7.07 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
373 B lrw-r--r-- 2026-02-23 07:38:41
Edit Download
370 B lrw-r--r-- 2026-02-23 07:38:41
Edit Download
5.10 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
5.25 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
234 B lrw-r--r-- 2026-02-23 07:38:41
Edit Download
1.29 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
1.42 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
16.80 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
3.98 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
7.95 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
5.85 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
2.69 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
873 B lrw-r--r-- 2026-02-23 07:38:41
Edit Download
3.60 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
309 B lrw-r--r-- 2026-02-23 07:38:41
Edit Download
10.45 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
799 B lrw-r--r-- 2026-02-23 07:38:41
Edit Download
9.50 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
3.51 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
2.19 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
1.24 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
303 B lrw-r--r-- 2026-02-23 07:38:41
Edit Download
295 B lrw-r--r-- 2026-02-23 07:38:41
Edit Download
6.27 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
4.42 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
1.83 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
671 B lrw-r--r-- 2026-02-23 07:38:41
Edit Download
2.65 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
1.88 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
1.03 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
293 B lrw-r--r-- 2026-02-23 07:38:41
Edit Download
288 B lrw-r--r-- 2026-02-23 07:38:41
Edit Download
4.36 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
288 B lrw-r--r-- 2026-02-23 07:38:41
Edit Download
5.92 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
302 B lrw-r--r-- 2026-02-23 07:38:41
Edit Download
1.52 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
5.38 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
183 B lrw-r--r-- 2026-02-23 07:38:41
Edit Download
1.74 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
3.50 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
13.54 KB lrw-r--r-- 2026-02-23 07:38:41
Edit Download
527 B lrw-r--r-- 2026-02-23 07:38:41
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).