Detect whether a name is registered or present on some resource (GitHub, NPM, Bower, ...).
Also allows searching for string on specified resources.
The following resources are available:
- GitHub
- NPM
- Bower
- Registry of Grunt plugins
- Registry of Gulp plugins
- JSter
- MicroJS
- CDNJS
- Web components
You can see information about all available resources by running seeq -l
(see below).
To install and use seeq Node.js should be installed in your system. Run the following command to install seeq:
npm install -g seeq
Run seeq
to show usage information.
> seeq
Usage: seeq [name]... [options]
name Name/string that should be searched for or checked for presence on a resource
Options:
-h, --help Show usage information and exit
-l, --list-resource Show information about all available resources
-r, --at Filter for available resources by name: comma-separated list of names (case-insensitive) of resources that should be checked/searched
-t, --tag Filter for available resources by tag: comma-separated list of tags (case-insensitive); -tag means that resource should not have the tag
--all-tag Whether all specified tags should be checked for a resource
-p, --partial-match Allow partial matching when checking name: 0 - disallow (by default), 1 - allow at the beginning of matching strings, 2 - allow substring matching
-c, --case-sensitive Use case-sensitive check/search when possible
-s, --search Make search instead of check
-m, --limit Limit of quantity of results per resource
--timeout Number of seconds to wait for a response before aborting a data request to a resource [60]
-f, --format Result format; can be: text, json, markdown, raw [text]
-V, --verbose Enable verbose output
-v, --version Show program version
--github-lang Search GitHub repositories that are written in the specified language
--github-limit Limit of quantity of GitHub results; default and maximum value is 100
--github-user GitHub username that should be used for authentication
--github-password GitHub account password
--github-token GitHub OAuth2 token that should be used for authentication instead of username and password
Available resources (9):
* GitHub (https://github.com) - GitHub repositories (tags: github repository project library framework package)
* NPM (https://npmjs.org) - Node packaged modules registry (tags: npm js javascript package library node)
* Bower (https://bower.io) - Bower package manager registry (tags: bower js javascript package component library browser)
* Grunt (https://gruntjs.com/plugins) - Registry of Grunt plugins (tags: grunt js javascript plugin registry node task runner)
* Gulp (https://gulpjs.com/plugins) - Registry of Gulp plugins (tags: gulp js javascript plugin registry node build)
* JSter (http://jster.net) - Catalog of JavaScript libraries and tools for web development (tags: jster js javascript catalog library framework tool)
* MicroJS (http://microjs.com) - List of micro-frameworks and micro-libraries (tags: microjs js javascript library framework micro)
* CDNJS (https://cdnjs.com) - CDN for popular web development frameworks, libraries, CSS and other assets (tags: cdnjs cdn js javascript library framework css browser)
* Web components (https://www.webcomponents.org) - Share and discover reusable web UI components (tags: webcomponents customelements web component webcomponent custom element js javascript css html gallery browser)
To make a search you can use sees
command (sees
equals to seeq -s
).
It is possible to specify format of search result:
text
- result will be converted into plain text; default formatjson
- result will be converted into JSONmarkdown
- result will be converted into Markdownraw
- result will be returned "as is" (raw JSON): in usual mode auxiliary data about resources will be deleted, in verbose mode no processing will be applied
Check numgen
, three
and some-strange-name
at resources having package
tag and limit results per resource up to 5.
> seeq numgen three some-strange-name --tag package --limit 5
Checking GitHub, NPM, Bower...
Progress: 9/9 (100%)
Results:
1. numgen
GitHub - 5
numgen - Creates objects that generate number sequences
url: https://github.com/gamtiq/numgen
numgen - A little Go command line application to generate ranges of numbers
url: https://github.com/maurogestoso/numgen
numgen
url: https://github.com/namumba22/numgen
numgen
url: https://github.com/gbochev/numgen
numgen - numger prediction
url: https://github.com/sndemo/numgen
NPM - 1
numgen - Creates objects that generate number sequences
url: https://github.com/gamtiq/numgen
keywords: number sequence generator
Bower - 1
numgen - Creates objects that generate number sequences
url: https://github.com/gamtiq/numgen
keywords: number sequence generator
2. three
GitHub - 3
three - Totally not inspired Rust 3D library
url: https://github.com/three-rs/three
three - An easy-to-use Python wrapper for the Open311 API.
url: three.codeforamerica.org
three - A GPL (v2) and Creative Commons (for the assets) game for the ioquake3 engine.
url: http://www.ioquake3.org/
NPM - 1
three - JavaScript 3D library
url: https://threejs.org/
keywords: three three.js 3d canvas svg webgl
Bower - 1
three
url: https://github.com/mrdoob/three.js
3. some-strange-name
GitHub
some-strange-name is not found.
NPM
some-strange-name is not found.
Bower
some-strange-name is not found.
Check mixing
and flight
at GitHub and Bower, allow partial matching at the beginning, use case-sensitive search,
limit Bower results up to 3 and GitHub results up to 5, include only GitHub projects that are written in JavaScript,
show additional information about found items.
> seeq mixing flight -r github,bower --partial-match 1 -c --bower-limit 3 --github-limit 5 --github-lang js --verbose
Checking GitHub, Bower...
Progress: 4/4 (100%)
Results:
1. mixing
GitHub - 5
mixing - Functions to mix, filter, change and copy/clone objects
url: https://github.com/gamtiq/mixing
repository: https://github.com/gamtiq/mixing.git
language: JavaScript
stars: 14
mixing-console-example - Audio mixing console UI example
url: https://github.com/wisdman/mixing-console-example
repository: https://github.com/wisdman/mixing-console-example.git
language: JavaScript
license: MIT
stars: 3
mixingloom-profiler-example - an example of profiling by mixingloom-profiler
url: https://github.com/wighawag/mixingloom-profiler-example
repository: https://github.com/wighawag/mixingloom-profiler-example.git
language: JavaScript
stars: 2
mixing - Spotify API for adding songs and playlists
url: https://github.com/forevernitch/mixing
repository: https://github.com/forevernitch/mixing.git
language: JavaScript
mixingMachine - program for new machines
url: https://github.com/heidgera/mixingMachine
repository: https://github.com/heidgera/mixingMachine.git
language: JavaScript
Bower - 1
mixing - Functions to mix, filter, change and copy/clone objects
url: https://github.com/gamtiq/mixing
keywords: mix merge mixin assign object filter map change copy clone modify update
version: 1.2.5
repository: https://github.com/gamtiq/mixing.git
license: MIT
2. flight
GitHub - 5
flight - A component-based, event-driven JavaScript framework from Twitter
url: http://flightjs.github.io/
repository: https://github.com/flightjs/flight.git
language: JavaScript
license: MIT
stars: 6639
flightplan - Run sequences of shell commands against local and remote hosts.
url: https://www.npmjs.com/package/flightplan
repository: https://github.com/pstadler/flightplan.git
language: JavaScript
license: MIT
stars: 1782
flightDelay - FlightDelay Project
url: https://github.com/etherisc/flightDelay
repository: https://github.com/etherisc/flightDelay.git
language: JavaScript
license: MIT
stars: 115
flightSimPanels - Flight Simulator Instrument Panels on your Browsers, using UDP over Node.js and Socket.io
url: https://github.com/dmolin/flightSimPanels
repository: https://github.com/dmolin/flightSimPanels.git
language: JavaScript
license: GPL-3.0
stars: 85
flightSimulator - Eurofighter Typhoon simulated driving(???????????)
url: https://github.com/renjianfeng/flightSimulator
repository: https://github.com/renjianfeng/flightSimulator.git
language: JavaScript
stars: 39
Bower - 3
flight - Clientside component infrastructure
url: https://github.com/flightjs/flight
version: 1.5.1
repository: https://github.com/flightjs/flight.git
flight-yql
url: https://github.com/msecret/flight-yql
version: 0.2.2
repository: https://github.com/msecret/flight-yql.git
flight-withEach
url: https://github.com/olivierlesnicki/flight-withEach
version: 1.0.0
repository: https://github.com/olivierlesnicki/flight-withEach.git
Search for pegasus
at resources that have tag library
and do not have tags node
and cdn
,
limit results per resource up to 5, print the search result in JSON format.
> sees pegasus -m 5 --tag library,-node,-cdn --all-tag -f json
Checking GitHub, Bower, JSter, MicroJS...
Progress: 4/4 (100%)
Results:
{
"pegasus": {
"GitHub": {
"result": [
{
"name": "pegasus",
"description": "A distributed key-value storage system developed and maintained by Xiaomi Cloud Storage Team.",
"url": "https://pegasus-kv.github.io/"
},
{
"name": "pegasus",
"description": "Load JSON while still loading other scripts",
"url": "http://typicode.github.io/pegasus/"
},
{
"name": "pegasus",
"description": "VM based deployment for prototyping Big Data tools on Amazon Web Services",
"url": "https://github.com/InsightDataScience/pegasus"
},
{
"name": "pegasus",
"description": "Pegasus Workflow Management System - Automate, recover, and debug scientific computations.",
"url": "https://pegasus.isi.edu/"
},
{
"name": "Pegasus",
"description": "A PEG parser generator for .NET that integrates with MSBuild and Visual Studio.",
"url": "http://otac0n.com/Pegasus/"
}
]
},
"Bower": {
"result": [
{
"name": "pegasus",
"description": "Load data while still loading other scripts, works with jQuery, Backbone, Angular...",
"url": "https://github.com/typicode/pegasus",
"keywords": [
"ajax",
"promise",
"xhr",
"http",
"request",
"XMLHttpRequest",
"data",
"json",
"bootstrap",
"performance",
"optimization",
"load",
"loader",
"preload",
"preloader"
]
}
]
},
"JSter": {
"result": []
},
"MicroJS": {
"result": [
{
"name": "Pegasus",
"description": "Load JSON data while still loading other scripts (xhr + promise).",
"url": "https://github.com/typicode/pegasus",
"keywords": [
"AJAX",
"JSON",
"GET",
"xhr",
"request",
"promise",
"parallel",
"performance",
"load",
"preload"
]
}
]
}
}
}
In your program you can use API provided by seeq in the following way:
var seeq = require("seeq");
...
function onProgress(data) {
console.log([data.number, "/", data.total, ": checked ", data.name, " at ", data.resource,
", results - ", data.result.result.length].join(""));
}
seeq.search(["chronoman", "knockout", "joy"],
callback,
{
resource: ["NPM", "Github", "web components"],
settings: {
_general: {
limit: 5,
partialMatch: 2,
caseSensitive: true
},
github: {
limit: 10,
language: "js"
}
},
progressCallback: onProgress
});
...
seeq.searchName("duratiform",
callback,
{resource: ["Bower", "MicroJS"]});
...
seeq.searchName("cheerio",
callback,
{
search: true,
resourceTag: ["library", "-cdn"]
});
...
seeq.search(["adam", "eva"],
function(resultMap) {
console.log( seeq.format.format(resultMap,
"json",
{queryList: ["eva", "adam"], verbose: true}) );
});
See JSDoc-generated documentation in doc
folder.
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.
Copyright (c) 2014-2020 Denis Sikuler
Licensed under the MIT license.