__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
'use strict'
module.exports = exports = search
var npm = require('./npm.js')
var allPackageSearch = require('./search/all-package-search')
var esearch = require('./search/esearch.js')
var formatPackageStream = require('./search/format-package-stream.js')
var usage = require('./utils/usage')
var output = require('./utils/output.js')
var log = require('npmlog')
var ms = require('mississippi')
search.usage = usage(
'search',
'npm search [--long] [search terms ...]'
)
search.completion = function (opts, cb) {
cb(null, [])
}
function search (args, cb) {
var searchOpts = {
description: npm.config.get('description'),
exclude: prepareExcludes(npm.config.get('searchexclude')),
include: prepareIncludes(args, npm.config.get('searchopts')),
limit: npm.config.get('searchlimit'),
log: log,
staleness: npm.config.get('searchstaleness'),
unicode: npm.config.get('unicode')
}
if (searchOpts.include.length === 0) {
return cb(new Error('search must be called with arguments'))
}
// Used later to figure out whether we had any packages go out
var anyOutput = false
var entriesStream = ms.through.obj()
var esearchWritten = false
esearch(searchOpts).on('data', function (pkg) {
entriesStream.write(pkg)
!esearchWritten && (esearchWritten = true)
}).on('error', function (e) {
if (esearchWritten) {
// If esearch errored after already starting output, we can't fall back.
return entriesStream.emit('error', e)
}
log.warn('search', 'fast search endpoint errored. Using old search.')
allPackageSearch(searchOpts).on('data', function (pkg) {
entriesStream.write(pkg)
}).on('error', function (e) {
entriesStream.emit('error', e)
}).on('end', function () {
entriesStream.end()
})
}).on('end', function () {
entriesStream.end()
})
// Grab a configured output stream that will spit out packages in the
// desired format.
var outputStream = formatPackageStream({
args: args, // --searchinclude options are not highlighted
long: npm.config.get('long'),
description: npm.config.get('description'),
json: npm.config.get('json'),
parseable: npm.config.get('parseable'),
color: npm.color
})
outputStream.on('data', function (chunk) {
if (!anyOutput) { anyOutput = true }
output(chunk.toString('utf8'))
})
log.silly('search', 'searching packages')
ms.pipe(entriesStream, outputStream, function (er) {
if (er) return cb(er)
if (!anyOutput && !npm.config.get('json') && !npm.config.get('parseable')) {
output('No matches found for ' + (args.map(JSON.stringify).join(' ')))
}
log.silly('search', 'search completed')
log.clearProgress()
cb(null, {})
})
}
function prepareIncludes (args, searchopts) {
if (typeof searchopts !== 'string') searchopts = ''
return searchopts.split(/\s+/).concat(args).map(function (s) {
return s.toLowerCase()
}).filter(function (s) { return s })
}
function prepareExcludes (searchexclude) {
var exclude
if (typeof searchexclude === 'string') {
exclude = searchexclude.split(/\s+/)
} else {
exclude = []
}
return exclude.map(function (s) {
return s.toLowerCase()
})
}
| 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 |
|