Security News
GitHub Removes Malicious Pull Requests Targeting Open Source Repositories
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
@seneca/repl
Advanced tools
A Seneca.js plugin
This open source module is sponsored and supported by Voxgig. |
---|
Supports Seneca versions 3.x and higher.
To install, simply use npm. Remember you will need to install Seneca.js if you haven't already.
> npm install seneca
> npm install @seneca/repl
var Seneca = require('seneca')
var seneca = Seneca()
// open repl on default port 30303
.use('repl')
// open another repl on port 10001
.use('repl', {port: 10001})
// open yet another repl on a free port chosen by your OS
// look at the INFO level logs for the host and port
// or get them from seneca.export('repl/address')
.use('repl', {port: 0})
To access the REPL, run the seneca-repl
command provided by this
module. Install this as a global module for easy access:
$ npm install -g @seneca/repl
Provide the host (default localhost
) and port (default 30303
):
$ seneca-repl remote-host 12345
The seneca-repl
command provides a convenient REPL interface including line editing and history. In production settings you'll want to create an SSH tunnel or similar
for this purpose.
Alternatively you can telnet to the port:
$ telnet localhost 30303
Replace localhost
if remote with the address of the remote system.
For more comfortable experience with working cursor keys, use rlwrap
$ rlwrap telnet localhost 30303
The repl evaluates JavaScript directly. See the
Node.js repl docs
for more. You also have a seneca
instance available:
seneca x.y.z [seneca-id] -> seneca.toString()
You can submit messages directly using jsonic format:
seneca x.y.z [seneca-id] -> role:seneca,cmd:stats
IN 000000: { role: 'seneca', cmd: 'stats' } # ftlbto0vvizm/6qt4gg83fylm cmd:stats,role:seneca (4aybxhxseldu) action_seneca_stats
OUT 000000: { start: '2017-03-15T13:15:36.016Z',
act: { calls: 3, done: 3, fails: 0, cache: 0 },
actmap: undefined,
now: '2017-03-15T13:17:15.313Z',
uptime: 99297 }
The message and response are printed, along with a sequence number. If the Seneca instance is a client of other Seneca services, the message will be sent to the other services, and marked as transported.
It is often convenient to run a Seneca repl as a separate service, acting as a client to all the other Seneca services. This gives you a central point of control for your system.
There are some command aliases for common actions:
list <pin>
: list local patterns, optionally narrowed by pin
tree
: show local patterns in tree formatstats
: print local statisticsstats full
: print full local statisticsexit
or quit
: exit the repl sessionlast
: run last command againhistory
: print command historyset <path> <value>
: set a seneca option, e.g: set debug.deprecation true
get <path>
: get a seneca optionalias <name> <cmd>
: define a new aliastrace
: toggle IN/OUT tracing of submitted messageslog
: toggle printing of remote log entries in test format (NOTE: these are unfiltered)log match <literal>
: when logging is enabled, only print lines matching the provided literal stringdepth <number>
: set depth of Util.inspect printingtest
: boolean falseSet plugin options when loading with:
seneca.use('doc', { name: value, ... })
Note: foo.bar
in the list above means
{ foo: { bar: ... } }
add:cmd,sys:repl
»Add a REPL command dynamically
The Senecajs org encourages open participation. If you feel you can help in any way, be it with documentation, examples, extra testing, or new features please get in touch.
To run tests, simply use npm:
> npm run test
Copyright (c) 2015-2020, Richard Rodger and other contributors. Licensed under MIT.
FAQs
Provides a client and server REPL for Seneca microservice systems.
The npm package @seneca/repl receives a total of 463 weekly downloads. As such, @seneca/repl popularity was classified as not popular.
We found that @seneca/repl demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.