Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
angular-vertxbus
Advanced tools
Client side library using VertX Event Bus as an Angular Service module
Branch | Stability | Status |
---|---|---|
Canary | unstable | |
Master | stable |
Automatic tests running against the latest version of the major browsers:
Either download it manually or install it automatically with Bower bower install -D angular-vertxbus
or npm npm install -D angular-vertxbus
.
Then only import dist/angular-vertxbus.js
or dist/angular-vertxbus.min.js
. The file itself comes with a CJS header.
Alternatively you can use the cdnjs: cdnjs.com/libraries/angular-vertxbus.
The source code is written using newer JavaScript (ECMAScript 2015+)and is using the JavaScript transpiler BabelJS.
Depending on your target clients, you probably need to include a browser polyfill (for ES5 clients). BabelJS itself
recommends the requirement of its own polyfill. Either you use the explained
way using npm modules and/or browserify, or you can use the alternative artifact variant dist/angular-vertxbus.withpolyfill.js
.
This library performs integration tests for AngularJS 1.2 - 1.6!
This library is being developed against the eventbus.js
from Vert.x 3.
An Api Documentation is available.
You have to define the module dependency, this module is named knalli.angular-vertxbus
.
angular.module('app', ['knalli.angular-vertxbus'])
.controller('MyCtrl', function(vertxEventBus, vertxEventBusService) {
// using the EventBus directly
vertxEventBus.send('my.address', {data: 123});
// using the service
vertxEventBusService.send('my.address', {data: 123})
});
vertxEventBusService.on('myaddress', function(err, message) {
console.log('Received a message: ', message);
});
vertxEventBusService.publish('myaddress', {data: 123});
vertxEventBusService.send('myaddress', {data: 123})
.then(function(reply) {
console.log('A reply received: ', reply);
})
.catch(function() {
console.warn('No message');
});
// The "No reply message found" is controlled via a timeout (default 10000ms)
vertxEventBusService.send('myaddress', {data: 123}, {timeout: 3000})
.then(function(reply) {
console.log('A reply received: ', reply);
})
.catch(function() {
console.warn('No message within 3 seconds');
});
// If the reply is an error, this will be the payload
vertxEventBusService.send('myaddress', {data: 123})
.then(function(reply) {
console.log('A reply received: ', reply);
})
.catch(function(err) {
console.warn(err);
});
The module has some advanced configuration options. Perhaps you do not have to change them, but at least you should know them!
Each module configuration option must be defined in the run
phase, i.e.:
angular.module('app', ['knalli.angular-vertxbus'])
.config(function(vertxEventBusProvider) {
vertxEventBusProvider
.enable()
.useReconnect()
.useUrlServer('http://live.example.org:8888');
});
Please have a look at the API documentation for vertxEventBusProvider and vertxEventBusServiceProvider for further options.
The module contains two items: the stub holder vertxEventBus
for the Vert.x EventBus and a more comfortbale high level service vertxEventBusService
.
The stub is required because the Vert.x Event Bus cannot handle a reconnect. The reason is the underlaying SockJS which cannot handle a reconnect, too. A reconnect means to create a new instance of SockJS
, therefore a new instance of EventBus
. The stub ensures only one single instance exists. Otherwise a global module was not possible.
More or less the stub supports the same API calls like the original EventBus
.
Based on the stub, the high level service vertxEventBusService
detects disconnects, handles reconnects and ensures re-registrations of subscriptions. Furthermore, the service provides some neat aliases for the usage of handlers.
// Same as EventBus.registerHandler()
service.registerHandler('myaddress', callback);
service.on('myaddress', callback);
service.addListener('myaddress', callback);
// Same as EventBus.unregisterHandler()
service.unregisterHandler('myaddress', callback);
service.un('myaddress', callback);
service.removeListener('myaddress', callback);
// Same as EventBus.send()
service.send('myaddress', data)
// Same as EventBus.publish
service.publish('myaddress', data)
service.emit('myaddress', data)
// Same as EventBus.readyState()
service.readyState()
In addition to this, when sending a message with an expected reply:
// Same as EventBus.send() but with a promise
service.send('myaddress', data)
.then(function(reply) {})
.catch(function(err) {})
For each connect or disconnect, a global broadcast will be emitted (on $rootScope
with 'vertx-eventbus.system.connected'
, 'vertx-eventbus.system.disconnected'
)
Note: Check that dependencies are be installed (npm install
).
The unit tests are available with npm test
which is actually a shortcut for grunt test
. It performs tests under the current primary target version of AngularJS. Use npm run test-scopes
for testing other scoped versions as well.
Note: Check that dependencies are be installed (npm install
).
The local test environment starts and utilizes a full Vert.x node and a NodeJS based web server.
Easy: Just run npm run -s start-server
and open http://localhost:3000/
in your preferred browser.
If you have changed something, just invoke npm run -s compile
in parallel and refresh the browser.
Alternatively:
npm run install-it-vertx-server
downloads and installs a Vert.x locally. This will store a cached download artifact at test/e2e//vertx/
.npm run start-it-vertx-server
starts an Vert.x on port 8080
.npm run start-it-web-server
starts a web server on port 3000
.npm run -s compile
has been invoked so there is a dist/angular-vertxbus.js
.Copyright 2017 by Jan Philipp. Licensed under MIT.
6.4.1 (2018-02-23)
<a name="6.4.0"></a>
<a name="6.3.0"></a>
FAQs
AngularJS facade and service acting as a Vert.x SockJS client
We found that angular-vertxbus demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.