__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

aptanhua@216.73.216.200: ~ $
'use strict'

const BB = require('bluebird')

const cacache = require('cacache')
const createReadStream = require('graceful-fs').createReadStream
const getPublishConfig = require('./utils/get-publish-config.js')
const lifecycle = BB.promisify(require('./utils/lifecycle.js'))
const log = require('npmlog')
const mapToRegistry = require('./utils/map-to-registry.js')
const npa = require('npm-package-arg')
const npm = require('./npm.js')
const output = require('./utils/output.js')
const pack = require('./pack')
const pacote = require('pacote')
const pacoteOpts = require('./config/pacote')
const path = require('path')
const readJson = BB.promisify(require('read-package-json'))
const semver = require('semver')
const statAsync = BB.promisify(require('graceful-fs').stat)
const readUserInfo = require('./utils/read-user-info.js')

publish.usage = 'npm publish [<tarball>|<folder>] [--tag <tag>] [--access <public|restricted>]' +
                "\n\nPublishes '.' if no argument supplied" +
                '\n\nSets tag `latest` if no --tag specified'

publish.completion = function (opts, cb) {
  // publish can complete to a folder with a package.json
  // or a tarball, or a tarball url.
  // for now, not yet implemented.
  return cb()
}

module.exports = publish
function publish (args, isRetry, cb) {
  if (typeof cb !== 'function') {
    cb = isRetry
    isRetry = false
  }
  if (args.length === 0) args = ['.']
  if (args.length !== 1) return cb(publish.usage)

  log.verbose('publish', args)

  const t = npm.config.get('tag').trim()
  if (semver.validRange(t)) {
    return cb(new Error('Tag name must not be a valid SemVer range: ' + t))
  }

  publish_(args[0]).then((pkg) => {
    output(`+ ${pkg._id}`)
    cb()
  }, cb)
}

function publish_ (arg) {
  return statAsync(arg).then((stat) => {
    if (stat.isDirectory()) {
      return stat
    } else {
      const err = new Error('not a directory')
      err.code = 'ENOTDIR'
      throw err
    }
  }).then(() => {
    return publishFromDirectory(arg)
  }, (err) => {
    if (err.code !== 'ENOENT' && err.code !== 'ENOTDIR') {
      throw err
    } else {
      return publishFromPackage(arg)
    }
  })
}

function publishFromDirectory (arg) {
  // All this readJson is because any of the given scripts might modify the
  // package.json in question, so we need to refresh after every step.
  return pack.prepareDirectory(arg).then(() => {
    return readJson(path.join(arg, 'package.json'))
  }).then((pkg) => {
    return lifecycle(pkg, 'prepublishOnly', arg)
  }).then(() => {
    return readJson(path.join(arg, 'package.json'))
  }).then((pkg) => {
    return cacache.tmp.withTmp(npm.tmp, {tmpPrefix: 'fromDir'}, (tmpDir) => {
      const target = path.join(tmpDir, 'package.tgz')
      return pack.packDirectory(pkg, arg, target).then(() => {
        return upload(arg, pkg, false, target)
      })
    })
  }).then(() => {
    return readJson(path.join(arg, 'package.json'))
  }).tap((pkg) => {
    return lifecycle(pkg, 'publish', arg)
  }).tap((pkg) => {
    return lifecycle(pkg, 'postpublish', arg)
  })
}

function publishFromPackage (arg) {
  return cacache.tmp.withTmp(npm.tmp, {tmpPrefix: 'fromPackage'}, (tmp) => {
    const extracted = path.join(tmp, 'package')
    const target = path.join(tmp, 'package.json')
    const opts = pacoteOpts()
    return pacote.tarball.toFile(arg, target, opts)
    .then(() => pacote.extract(arg, extracted, opts))
    .then(() => readJson(path.join(extracted, 'package.json')))
    .tap((pkg) => upload(arg, pkg, false, target))
  })
}

function upload (arg, pkg, isRetry, cached) {
  if (!pkg) {
    return BB.reject(new Error('no package.json file found'))
  }
  if (pkg.private) {
    return BB.reject(new Error(
      'This package has been marked as private\n' +
      "Remove the 'private' field from the package.json to publish it."
    ))
  }

  const mappedConfig = getPublishConfig(
    pkg.publishConfig,
    npm.config,
    npm.registry
  )
  const config = mappedConfig.config
  const registry = mappedConfig.client

  pkg._npmVersion = npm.version
  pkg._nodeVersion = process.versions.node

  delete pkg.modules

  return BB.fromNode((cb) => {
    mapToRegistry(pkg.name, config, (err, registryURI, auth, registryBase) => {
      if (err) { return cb(err) }
      cb(null, [registryURI, auth, registryBase])
    })
  }).spread((registryURI, auth, registryBase) => {
    // we just want the base registry URL in this case
    log.verbose('publish', 'registryBase', registryBase)
    log.silly('publish', 'uploading', cached)

    pkg._npmUser = {
      name: auth.username,
      email: auth.email
    }

    const params = {
      metadata: pkg,
      body: createReadStream(cached),
      auth: auth
    }

    // registry-frontdoor cares about the access level, which is only
    // configurable for scoped packages
    if (config.get('access')) {
      if (!npa(pkg.name).scope && config.get('access') === 'restricted') {
        throw new Error("Can't restrict access to unscoped packages.")
      }

      params.access = config.get('access')
    }

    log.showProgress('publish:' + pkg._id)
    return BB.fromNode((cb) => {
      registry.publish(registryBase, params, cb)
    }).catch((err) => {
      if (
        err.code === 'EPUBLISHCONFLICT' &&
        npm.config.get('force') &&
        !isRetry
      ) {
        log.warn('publish', 'Forced publish over ' + pkg._id)
        return BB.fromNode((cb) => {
          npm.commands.unpublish([pkg._id], cb)
        }).finally(() => {
          // ignore errors.  Use the force.  Reach out with your feelings.
          return upload(arg, pkg, true, cached).catch(() => {
            // but if it fails again, then report the first error.
            throw err
          })
        })
      } else {
        throw err
      }
    })
  }).catch((err) => {
    if (err.code !== 'EOTP' && !(err.code === 'E401' && /one-time pass/.test(err.message))) throw err
    // we prompt on stdout and read answers from stdin, so they need to be ttys.
    if (!process.stdin.isTTY || !process.stdout.isTTY) throw err
    return readUserInfo.otp('Enter OTP:  ').then((otp) => {
      npm.config.set('otp', otp)
      return upload(arg, pkg, isRetry, cached)
    })
  })
}

Filemanager

Name Type Size Permission Actions
auth Folder 0755
config Folder 0755
doctor Folder 0755
install Folder 0755
search Folder 0755
utils Folder 0755
access.js File 3.23 KB 0644
adduser.js File 1.28 KB 0644
bin.js File 515 B 0644
bugs.js File 879 B 0644
build.js File 4.45 KB 0644
cache.js File 4.43 KB 0644
completion.js File 7.06 KB 0644
config.js File 7.22 KB 0644
dedupe.js File 4.83 KB 0644
deprecate.js File 1.41 KB 0644
dist-tag.js File 3.67 KB 0644
docs.js File 1.05 KB 0644
doctor.js File 3.97 KB 0644
edit.js File 985 B 0644
explore.js File 1.63 KB 0644
fetch-package-metadata.js File 3.8 KB 0644
fetch-package-metadata.md File 1.77 KB 0644
get.js File 235 B 0644
help-search.js File 5.65 KB 0644
help.js File 6.32 KB 0644
init.js File 1.26 KB 0644
install-test.js File 507 B 0644
install.js File 32.16 KB 0644
link.js File 5.56 KB 0644
logout.js File 1.1 KB 0644
ls.js File 15.83 KB 0644
npm.js File 13.3 KB 0644
outdated.js File 12.15 KB 0644
owner.js File 7.55 KB 0644
pack.js File 7.21 KB 0644
ping.js File 688 B 0644
prefix.js File 330 B 0644
profile.js File 10.61 KB 0644
prune.js File 2.14 KB 0644
publish.js File 6.1 KB 0644
rebuild.js File 2.09 KB 0644
repo.js File 1.45 KB 0644
restart.js File 64 B 0644
root.js File 316 B 0644
run-script.js File 5.18 KB 0644
search.js File 3.15 KB 0644
set.js File 276 B 0644
shrinkwrap.js File 7.76 KB 0644
star.js File 1.17 KB 0644
stars.js File 1.1 KB 0644
start.js File 62 B 0644
stop.js File 61 B 0644
substack.js File 509 B 0644
team.js File 1.41 KB 0644
test.js File 324 B 0644
token.js File 6.2 KB 0644
unbuild.js File 4.11 KB 0644
uninstall.js File 2.22 KB 0644
unpublish.js File 3.55 KB 0644
update.js File 2.18 KB 0644
version.js File 9.1 KB 0644
view.js File 9.26 KB 0644
visnup.js File 4.01 KB 0644
whoami.js File 1.42 KB 0644
xmas.js File 1.57 KB 0644