Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
revoke.js53 linesDownload Raw Back to trust
1const globalDefinitions = require('@npmcli/config/lib/definitions/definitions.js')
2const Definition = require('@npmcli/config/lib/definitions/definition.js')
3const { otplease } = require('../../utils/auth.js')
4const npmFetch = require('npm-registry-fetch')
5const npa = require('npm-package-arg')
6const TrustCommand = require('../../trust-cmd.js')
7
8class TrustRevoke extends TrustCommand {
9  static description = 'Revoke a trusted relationship for a package'
10  static name = 'revoke'
11  static positionals = 1 // expects at most 1 positional (package name)
12
13  static usage = [
14    '[package] --id=<trust-id>',
15  ]
16
17  static definitions = [
18    new Definition('id', {
19      default: null,
20      type: String,
21      description: 'ID of the trusted relationship to revoke',
22      required: true,
23    }),
24    globalDefinitions['dry-run'],
25    globalDefinitions.registry,
26  ]
27
28  async exec (positionalArgs, flags) {
29    const dryRun = this.config.get('dry-run')
30    const pkgName = positionalArgs[0] || (await this.optionalPkgJson()).name
31    if (!pkgName) {
32      throw new Error('Package name must be specified either as an argument or in the package.json file')
33    }
34    const { id } = flags
35    if (!id) {
36      throw new Error('ID of the trusted relationship to revoke must be specified with the --id option')
37    }
38    this.dialogue`Attempting to revoke trusted configuration for package ${pkgName} with id ${id}`
39    if (dryRun) {
40      return
41    }
42    const spec = npa(pkgName)
43    const uri = `/-/package/${spec.escapedName}/trust/${encodeURIComponent(id)}`
44    await otplease(this.npm, this.npm.flatOptions, opts => npmFetch(uri, {
45      ...opts,
46      method: 'DELETE',
47    }))
48    this.dialogue`Revoked trusted configuration for package ${pkgName} with id ${id}`
49  }
50}
51
52module.exports = TrustRevoke
53 
codekingpro/portable-devtools · Team Ai