RangeError with Meteor and Twilio Client - meteor

I am trying to set up outgoing calls on Meteor through Twilio. To do that, I have a method on the backend to generate a capability token.
When I try to actually initiate the call, I get a RangeError that nobody else seems to have experienced.
// get capability token
Meteor.call('twilioCallToken', function(err, capToken) {
if (capToken) {
Twilio.Device.setup(capToken, { closeProtection: true }); // RangeError thrown on this line
}
});
The exact error is:
Exception in delivering result of invoking 'twilioCallToken': RangeError: Maximum call stack size exceeded
at a.addCommand.(anonymous function) [as setup] (https://static.twilio.com/libs/twiliojs/1.2/twilio.min.js:1:411)
at a.addCommand.(anonymous function) [as setup] (https://static.twilio.com/libs/twiliojs/1.2/twilio.min.js:1:411)
at a.addCommand.(anonymous function) [as setup] (https://static.twilio.com/libs/twiliojs/1.2/twilio.min.js:1:411)
at a.addCommand.(anonymous function) [as setup] (https://static.twilio.com/libs/twiliojs/1.2/twilio.min.js:1:411)
at a.addCommand.(anonymous function) [as setup] (https://static.twilio.com/libs/twiliojs/1.2/twilio.min.js:1:411)
at a.addCommand.(anonymous function) [as setup] (https://static.twilio.com/libs/twiliojs/1.2/twilio.min.js:1:411)
at a.addCommand.(anonymous function) [as setup] (https://static.twilio.com/libs/twiliojs/1.2/twilio.min.js:1:411)
at a.addCommand.(anonymous function) [as setup] (https://static.twilio.com/libs/twiliojs/1.2/twilio.min.js:1:411)
at a.addCommand.(anonymous function) [as setup] (https://static.twilio.com/libs/twiliojs/1.2/twilio.min.js:1:411)
at a.addCommand.(anonymous function) [as setup] (https://static.twilio.com/libs/twiliojs/1.2/twilio.min.js:1:411)

Related

Using Meteor wrapAync and/or bindEnvironment when calling function in methods.js using async function in fixtures.js

My Meteor project has the DASH SDK installed as an NPM package. The goal is to call the "funds" function in methods.js from fixtures.js whenever a transaction is received. The address and amount are console logging from fixtures.js correctly, but I am receiving an error regarding bindEnvironment due to fibers. It does not console log from methods.js.
fixtures.js
import { Meteor } from 'meteor/meteor';
Meteor.startup(() => {
const Dash = require("dash");
const mnemonic = 'fake fake fake fake fake fake fake fake fake fake fake fake';
const client = new Dash.Client({ network: "testnet", wallet: { mnemonic } });
async function listenUnconfirmedTransaction() {
const account = await client.wallet.getAccount();
console.log(account);
account.on('FETCHED/CONFIRMED_TRANSACTION', (data) => {
console.dir(data);
var amount = data.payload.transaction.outputs[0]._satoshis;
var address = data.payload.transaction.outputs[0].script.toAddress("testnet").toString();
console.log("Amount: " + amount + ", Address: " + address);
if (address) {
Meteor.call('funds', address, amount, (error) => { if (error) { console.log(error); }});
};
});
};
listenUnconfirmedTransaction();
}
methods.js
import { Meteor } from 'meteor/meteor';
Meteor.methods({
'funds': function (address, received) {
console.log("Address: " + address + ", Received: " + received);
}
});
I have looked into the bindEnvironment and wrapAsync for Meteor, but I am not understanding how I can use them in this situation. Please advise
EDIT
Error:
I20220918-19:58:40.577(-7)? Amount: 200000000, Address: yQKFphqFK7yWSCzxor9SthWwL9Z17u4TyJ
I20220918-19:58:40.624(-7)? error: Error syncing incoming transactions Meteor code must always run within a Fiber. Try wrapping callbacks that you pass to non-Meteor libraries with Meteor.bindEnvironment. Error: Meteor code must always run within a Fiber. Try wrapping callbacks that you pass to non-Meteor libraries with Meteor.bindEnvironment.
I20220918-19:58:40.625(-7)? at Object.Meteor._nodeCodeMustBeInFiber (packages/meteor.js:1188:11)
I20220918-19:58:40.625(-7)? at Meteor.EnvironmentVariable.EVp.get (packages/meteor.js:1213:10)
I20220918-19:58:40.625(-7)? at Server.applyAsync (packages/ddp-server/livedata_server.js:1774:64)
I20220918-19:58:40.626(-7)? at Server.apply (packages/ddp-server/livedata_server.js:1739:26)
I20220918-19:58:40.626(-7)? at Server.call (packages/ddp-server/livedata_server.js:1721:17)
I20220918-19:58:40.626(-7)? at Account.<anonymous> (server/main.js:16:20)
I20220918-19:58:40.626(-7)? at Account.emit (events.js:400:28)
I20220918-19:58:40.626(-7)? at Account.emit (domain.js:475:12)
I20220918-19:58:40.626(-7)? at Storage.<anonymous> (/home/alexanderwshea/Meteor/dashreceiver/node_modules/#dashevo/wallet-lib/src/types/Account/Account.js:107:72)
I20220918-19:58:40.626(-7)? at Storage.emit (events.js:400:28)
I20220918-19:58:40.627(-7)? at Storage.emit (domain.js:475:12)
I20220918-19:58:40.627(-7)? at ChainStore.<anonymous> (/home/alexanderwshea/Meteor/dashreceiver/node_modules/#dashevo/wallet-lib/src/types/Storage/methods/createChainStore.js:21:14)
I20220918-19:58:40.628(-7)? at ChainStore.emit (events.js:400:28)
I20220918-19:58:40.628(-7)? at ChainStore.emit (domain.js:475:12)
I20220918-19:58:40.629(-7)? at ChainStore.considerTransaction (/home/alexanderwshea/Meteor/dashreceiver/node_modules/#dashevo/wallet-lib/src/types/ChainStore/methods/considerTransaction.js:92:10)
I20220918-19:58:40.630(-7)? at /home/alexanderwshea/Meteor/dashreceiver/node_modules/#dashevo/wallet-lib/src/types/Account/methods/importTransactions.js:31:46
W20220918-19:58:40.630(-7)? (STDERR) (node:2339) UnhandledPromiseRejectionWarning: Error: Meteor code must always run within a Fiber. Try wrapping callbacks that you pass to non-Meteor libraries with Meteor.bindEnvironment.
W20220918-19:58:40.631(-7)? (STDERR) at Object.Meteor._nodeCodeMustBeInFiber (packages/meteor.js:1188:11)
W20220918-19:58:40.632(-7)? (STDERR) at Meteor.EnvironmentVariable.EVp.get (packages/meteor.js:1213:10)
W20220918-19:58:40.632(-7)? (STDERR) at Server.applyAsync (packages/ddp-server/livedata_server.js:1774:64)
W20220918-19:58:40.632(-7)? (STDERR) at Server.apply (packages/ddp-server/livedata_server.js:1739:26)
W20220918-19:58:40.633(-7)? (STDERR) at Server.call (packages/ddp-server/livedata_server.js:1721:17)
W20220918-19:58:40.633(-7)? (STDERR) at Account.<anonymous> (server/main.js:16:20)
W20220918-19:58:40.633(-7)? (STDERR) at Account.emit (events.js:400:28)
W20220918-19:58:40.634(-7)? (STDERR) at Account.emit (domain.js:475:12)
W20220918-19:58:40.634(-7)? (STDERR) at Storage.<anonymous> (/home/alexanderwshea/Meteor/dashreceiver/node_modules/#dashevo/wallet-lib/src/types/Account/Account.js:107:72)
W20220918-19:58:40.634(-7)? (STDERR) at Storage.emit (events.js:400:28)
W20220918-19:58:40.635(-7)? (STDERR) at Storage.emit (domain.js:475:12)
W20220918-19:58:40.635(-7)? (STDERR) at ChainStore.<anonymous> (/home/alexanderwshea/Meteor/dashreceiver/node_modules/#dashevo/wallet-lib/src/types/Storage/methods/createChainStore.js:21:14)
W20220918-19:58:40.635(-7)? (STDERR) at ChainStore.emit (events.js:400:28)
W20220918-19:58:40.636(-7)? (STDERR) at ChainStore.emit (domain.js:475:12)
W20220918-19:58:40.636(-7)? (STDERR) at ChainStore.considerTransaction (/home/alexanderwshea/Meteor/dashreceiver/node_modules/#dashevo/wallet-lib/src/types/ChainStore/methods/considerTransaction.js:92:10)
W20220918-19:58:40.637(-7)? (STDERR) at /home/alexanderwshea/Meteor/dashreceiver/node_modules/#dashevo/wallet-lib/src/types/Account/methods/importTransactions.js:31:46
W20220918-19:58:40.637(-7)? (STDERR) (Use `node --trace-warnings ...` to show where the warning was created)
W20220918-19:58:40.637(-7)? (STDERR) (node:2339) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 3)
W20220918-19:58:40.638(-7)? (STDERR) (node:2339) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Ok, if you run Meteor up to version 2.7.3 you need to wrap that(details further down).
2.8 is now in preparation and it makes the move from Fibers (still compatible with NodeJS 14 but not with Node 16) to async. I think async now works server side, just keep an eye on this: https://forums.meteor.com/t/eta-of-2-8-release/58720
Wrapping for Fibers. This is basically running async code as if it was synchronous.
const bound = Meteor.bindEnvironment(callback => callback())
bound(() => {
...your code goes here.
})

Sendgrid Web API Basic install not sending email using Meteor Method

I'm using the SendGrid WebAPI for Node.js.
I followed these instructions:
I have the following code in a method I trigger from the client.
// using SendGrid's v3 Node.js Library
// https://github.com/sendgrid/sendgrid-nodejs
const sgMail = require('#sendgrid/mail');
sgMail.setApiKey(process.env.SENDGRID_API_KEY);
const msg = {
to: 'test#example.com',
from: 'test#example.com',
subject: 'Sending with SendGrid is Fun',
text: 'and easy to do anywhere, even with Node.js',
html: '<strong>and easy to do anywhere, even with Node.js</strong>',
};
sgMail.send(msg);
When I trigger the method to send, I get an odd error (below) - Not sure why this is happening. Hoping for some ideas.
Thank you!!
ERROR:
(node:21240) UnhandledPromiseRejectionWarning: RangeError: Maximum call stack size exceeded
W20190301-07:12:22.267(-8)? (STDERR) at Object.keys.forEach.key (packages/ejson/ejson.js:594:27)
W20190301-07:12:22.267(-8)? (STDERR) at Array.forEach (<anonymous>)
W20190301-07:12:22.268(-8)? (STDERR) at Object.EJSON.clone.v [as clone] (packages/ejson/ejson.js:594:18)
W20190301-07:12:22.268(-8)? (STDERR) at Object.keys.forEach.key (packages/ejson/ejson.js:595:22)
W20190301-07:12:22.268(-8)? (STDERR) at Array.forEach (<anonymous>)
W20190301-07:12:22.268(-8)? (STDERR) at Object.EJSON.clone.v [as clone] (packages/ejson/ejson.js:594:18)
W20190301-07:12:22.268(-8)? (STDERR) at Object.keys.forEach.key (packages/ejson/ejson.js:595:22)
W20190301-07:12:22.268(-8)? (STDERR) at Array.forEach (<anonymous>)
W20190301-07:12:22.268(-8)? (STDERR) at Object.EJSON.clone.v [as clone] (packages/ejson/ejson.js:594:18)
W20190301-07:12:22.268(-8)? (STDERR) at Object.keys.forEach.key (packages/ejson/ejson.js:595:22)
W20190301-07:12:22.268(-8)? (STDERR) at Array.forEach (<anonymous>)
W20190301-07:12:22.268(-8)? (STDERR) at Object.EJSON.clone.v [as clone] (packages/ejson/ejson.js:594:18)
W20190301-07:12:22.269(-8)? (STDERR) at Object.keys.forEach.key (packages/ejson/ejson.js:595:22)
W20190301-07:12:22.269(-8)? (STDERR) at Array.forEach (<anonymous>)
W20190301-07:12:22.269(-8)? (STDERR) at Object.EJSON.clone.v [as clone] (packages/ejson/ejson.js:594:18)
W20190301-07:12:22.269(-8)? (STDERR) at Object.keys.forEach.key (packages/ejson/ejson.js:595:22)
W20190301-07:12:22.269(-8)? (STDERR) (node:21240) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 9)
First of all, by putting your API_KEY on the client side, you're showing it, and it should be kept secret.
Create a new file server/smtp.js. By putting it in a server/ directory, Meteor will put it only on the server side, this code will not be visible from the client side:
Meteor.startup(function () {
process.env.MAIL_URL = 'smtp://username:password#smtp.sendgrid.net:587';
});
Add the email package to meteor. On the command line:
meteor add email
Create a file server/methods.js to add some server side methods:
Meteor.methods({
sendmail(to) {
// for security reasons, you should validate the 'to' argument
// but let's forget that for now.
Email.send({
from: "me#paulpedrazzi.com",
to: to
subject: "Awesome",
text: "It worked"
});
}
});
Whenever you want to send an email, on the client side call this method and pass it the necessary arguments:
Meteor.call('sendmail', ‘elon.musk#tesla.com’, (err, res) => {
if (err) {
alert(err);
} else {
// success!
}
});
Hope it helps.

Problem with Firebase Push Notifications in Ionic Cordova project

I am developing an Ionic app and I need push notifications. I am using firebase Cloud Messaging but i'm facing some errors with #ionic-native/push packet.
This is my initPushNotification() called in my app.component.ts
initPushNotification() {
const options: PushOptions = {
android: {
senderID: 'MY_SENDER_ID'
},
ios: {
alert: 'true',
badge: true,
sound: 'false'
}
}
const pushObject: PushObject = this.push.init(options);
pushObject.on('notification').subscribe((notification: any) => console.log('Received a notification', notification));
pushObject.on('registration').subscribe((registration: any) => console.log('Device registered', registration));
pushObject.on('error').subscribe(error => console.error('Error with Push plugin', error));
}
I'm currently facing this error:
core.js:1449 ERROR Error: Uncaught (in promise): TypeError: Object(...) is not a function
TypeError: Object(...) is not a function
at PushObject.on (index.js:61)
at MyApp.webpackJsonp.493.MyApp.initPushNotification (app.component.ts:105)
at app.component.ts:75
at t.invoke (polyfills.js:3)
at Object.onInvoke (core.js:4760)
at t.invoke (polyfills.js:3)
at r.run (polyfills.js:3)
at polyfills.js:3
at t.invokeTask (polyfills.js:3)
at Object.onInvokeTask (core.js:4751)
at c (polyfills.js:3)
at polyfills.js:3
at t.invokeTask (polyfills.js:3)
at Object.onInvokeTask (core.js:4751)
at t.invokeTask (polyfills.js:3)
at r.runTask (polyfills.js:3)
at o (polyfills.js:3)
at e.invokeTask [as invoke] (polyfills.js:3)
at p (polyfills.js:2)
at HTMLDocument.v (polyfills.js:2)
defaultErrorLogger # core.js:1449
I get this error in Chrome, in emulator and in real device.
It seems that pushobject is not being recognized.
Note that I am using:
import { Push, PushObject, PushOptions } from '#ionic-native/push/ngx';
And that I have imported Push as Provider in app.module.ts.
Thank you guys if you understand the issue.
This usually happens when you have different versions of #ionic-native packages installed.
Run an npm ls --depth=0 and make sure that all your #ionic-native packages installed locally are well aligned
Fixed just using previous version of push.

Meteor 1.3 update migration

I'm just working through the update to 1.3 and not sure how to handle this error. I'm thinking it might have to do with file load order changing in 1.3. Any ideas? Thanks!
W20160407-09:54:43.528(1)? (STDERR) /Users/technical/.meteor/packages/meteor-tool/.1.3.1.10rlef4++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/server-lib/node_modules/fibers/future.js:267
W20160407-09:54:43.528(1)? (STDERR) throw(ex);
W20160407-09:54:43.528(1)? (STDERR) ^
W20160407-09:54:43.553(1)? (STDERR) TypeError: Cannot read property 'path' of undefined
W20160407-09:54:43.553(1)? (STDERR) at Routing (packages/lookback:emails/lib/routing.js:17:9)
W20160407-09:54:43.554(1)? (STDERR) at packages/lookback:emails/lib/mailer.js:279:11
W20160407-09:54:43.554(1)? (STDERR) at Array.forEach (native)
W20160407-09:54:43.554(1)? (STDERR) at packages/lookback:emails/lib/mailer.js:278:28
W20160407-09:54:43.554(1)? (STDERR) at Function._.each._.forEach (packages/underscore.js:147:22)
W20160407-09:54:43.554(1)? (STDERR) at Object.init (packages/lookback:emails/lib/mailer.js:274:9)
W20160407-09:54:43.554(1)? (STDERR) at Object.Mailer.init (packages/lookback:emails/lib/mailer.js:303:7)
W20160407-09:54:43.554(1)? (STDERR) at app/server/lib/config/config.js:72:8
W20160407-09:54:43.554(1)? (STDERR) at /Users/technical/code/mssc1.3/.meteor/local/build/programs/server/boot.js:290:5
server/lib/config/config.js
Meteor.startup(function() {
this.Templates = {}
Templates.remindEventEmail = {
path: 'remindEventEmail.html'
};
Mailer.init({
templates: Templates
});
});
private/remindEventEmail.html
<p>Email code<p>
it's not a 1.3 thing, it's a lookback > 0.7.0 thing
if you don't need email previews, simply setting
Mailer.config({
addRoutes: false
});
may fix your problem.
otherwise follow along for how I use it with Flow Router
according to:
you now need to supply a route field on your template object
https://github.com/lookback/meteor-emails#version-history
route: {
path: '/sample/:name',
// params is an object, with potentially named parameters, and a `query` property
// for a potential query string.
data: function(params) {
// `this` is the HTTP response object.
return {
name: params.name // instead of this.params.name
};
}
}
so your
Templates.remindEventEmail = {
path: 'remindEventEmail.html'
};
should become
Templates.remindEventEmail = {
path: 'remindEventEmail.html'
route: {
path: '/event/:_id/remind',
data: function(params) {
return {
event: Events.findOne(params._id);
}
}
}
};
the actual route would then be /emails/event/:_id/remind
please notice the data pattern, you might use another style of query or nesting of the main data context

Download of previously stored document in Meteor fails

My meteor application does not download previously stored documents.
Initially I thought I was having problems with ongoworks:security support for CollectionFS.
RsrchDocs.files.permit(['download']).apply() causes Invalid key errors. Have read the ongoworks:security docs and CollectionFS docs multiple times without finding my error. The Github repository for "ongoworks:security issues 4, 17, 20 appear to address this problem. It is not clear that the issues raised were ever fully resolved. I have tried the suggestions without success. Since RsrchDocs.allow({...}) (option B) allows the server to (re)start without error I may (probably?) have another error preventing the download.
With option A or B in place, hovering over the download link in the browser displays the correct URL, but clicking the link does not initiate the download. Manually copying the URL into the address field and submitting that does successfully download the document.
What should I do/change in my meteor app to successfully download a previously stored document?
server/security.js
RsrchDocs.files.permit(['insert', 'update', 'remove']).apply();
// Option A:
// Uncommented causes "(STDERR) Error: EBADF, read" on (re)start
// Document download is NOT permitted.
//Security.permit(['download']).collections([RsrchDocs]).apply();
// Option B:
// Uncommented (re)starts without any error message
// Document download is NOT permitted
//RsrchDocs.allow({
// download: function(userId, doc){
// return true;
// }
//});
// Option C:
// Uncommented (re)starting meteor causes multiline error message
// Server start fails
//RsrchDocs.files.permit(['download']).apply();
// The error messages:
[[[[[ C:\Users\loco\My Projects\Meteor\research ]]]]]
=> Started proxy.
=> Started MongoDB.
I20150817-10:38:58.532(-5)? Meteor._wrapAsync has been renamed to Meteor.wrapAsync
=> Started your app.
=> App running at: http://localhost:3000/
Type Control-C twice to stop.
(STDERR) Error: EBADF, read
Meteor._wrapAsync has been renamed to Meteor.wrapAsync
(STDERR)
(STDERR) C:\Users\loco\AppData\Local\.meteor\packages\meteor-tool\1.1.4\mt-os.windows.x86_32\dev_bundle\server-lib\node_modules\fibers\future.js:245
(STDERR) throw(ex);
(STDERR) ^
(STDERR) Error: allow: Invalid key: download
(STDERR) at packages/mongo/collection.js:723:1
(STDERR) at Array.forEach (native)
(STDERR) at Function._.each._.forEach (packages/underscore/underscore.js:105:1)
(STDERR) at [object Object].addValidator (packages/mongo/collection.js:721:1)
(STDERR) at [object Object].Mongo.Collection.allow (packages/mongo/collection.js:769:1)
(STDERR) at packages/ongoworks:security/security-util.js:39:1
(STDERR) at Array.forEach (native)
(STDERR) at Function._.each._.forEach (packages/underscore/underscore.js:105:1)
(STDERR) at addFuncForAll (packages/ongoworks:security/security-util.js:38:1)
(STDERR) at packages/ongoworks:security/security-util.js:56:1
(STDERR) at Array.forEach (native)
(STDERR) at Function._.each._.forEach (packages/underscore/underscore.js:105:1)
(STDERR) at ensureCreated (packages/ongoworks:security/security-util.js:52:1)
(STDERR) at ensureDefaultAllow (packages/ongoworks:security/security-util.js:70:1)
(STDERR) at SecurityRuleConstructor.Security.Rule.apply (packages/ongoworks:security/security-api.js:76:1)
(STDERR) at app\server\security.js:18:38
(STDERR) at app\server\security.js:22:3
(STDERR) at C:\Users\loco\My Projects\Meteor\research\.meteor\local\build\programs\server\boot.js:222:10
(STDERR) at Array.forEach (native)
(STDERR) at Function._.each._.forEach (C:\Users\loco\AppData\Local\.meteor\packages\meteor-tool\1.1.4\mt-os.windows.x86_32\dev_bundle\server-lib\node_modules\underscore\underscore.js:79:11)
(STDERR) at C:\Users\loco\My Projects\Meteor\research\.meteor\local\build\programs\server\boot.js:117:5
=> Exited with code: 8
Meteor._wrapAsync has been renamed to Meteor.wrapAsync
lib/collections/rsrchDocs.js
RsrchDocs = new FS.Collection("rsrchDocs", {
stores: [new FS.Store.FileSystem("rsrchDocs")]
});
if(Meteor.isClient){
Meteor.subscribe('RsrchDocs')
}
// server/publish.js
Meteor.publish('RsrchDocs', function(){
return RsrchDocs.find({});
});
client/documents/templates.html
<template name='subjDocs'>
<div id='upload' class='upload'>
{{> upload}}
</div>
<div class="col-xs-12" id="docsTable">
{{> reactiveTable collection=subjDocs settings=docSettings }}
</div>
</template>
client/documents/helpers.js
Template.subjDocs.helpers({
subjDocs: function() {
return RsrchDocs.find({ 'metadata.subjId': this._id });
},
docSettings: function(){
return {
fields: [
{ key: 'metadata.subjId', label: 'Subject', hidden: false },
// ...
{ key: 'original.name', label: 'Name',
fn: function(value, object) {
var docName = value;
var dnloadURL = object.url({download: true});
var linkStr = "<a href= '"+dnloadURL+"' >"+docName+"</a>";
return Spacebars.SafeString(linkStr);
},
},
],
};
}
});
client/documents/events.js
Template.subjDocs.events({
'click .reactive-table tr': function (event) {
event.preventDefault();
var subjDoc = this;
switch (event.target.className) {
case 'delete':
if( confirm && subjDoc ) {
subjDoc.remove()
};
return false;
break;
//case ...
};
},
});
Environment:
Windows 7
C:\Users\ ... \research>meteor list
accounts-password 1.1.1
alanning:roles 1.2.13
aldeed:autoform 5.4.1
aldeed:collection2 2.3.3
aldeed:simple-schema 1.3.3
aslagle:reactive-table 0.8.11
cfs:ejson-file 0.1.4
cfs:filesystem 0.1.2
cfs:gridfs 0.0.33
cfs:standard-packages 0.5.9
cfs:ui 0.1.3
email 1.0.6
fortawesome:fontawesome 4.4.0
ian:accounts-ui-bootstrap-3 1.2.77
iron:router 1.0.9
meteor-platform 1.2.2
ongoworks:security 1.2.0
raix:ui-dropped-event 0.0.7
reactive-var 1.0.5
sanjo:jasmine 0.17.0
twbs:bootstrap 3.3.5
velocity:html-reporter 0.8.2

Resources