Git Product home page Git Product logo

meteor-devtools's Introduction

Meteor DevTools Extension

Meteor Dev Tools Chrome Extension

Build Status Dependency Status devDependency Status ES-2015

Meteor Devtools (MD) is an extension for Chrome Developer Tools that makes the process of developing Meteor apps even more enjoyable. It also allows you to look under the hood of existing applications and learn how they are built. MD includes a plugin framework and currrently comes with 3 plugins: DDP Monitor, Blaze Inspector and MiniMongo Explorer. You can install it from Chrome Web Store.

Development

Running local dev server

npm start

Running tests while developing (with reload)

npm test -- --watch

Building chrome extension for local testing (result in ./chrome)

npm run chrome

Building chrome extension for production (result in ./chrome)

npm run chrome:build

Credits

Meteor Devtools Extension is made by Meteor loving folks at The Bakery. Blaze Inspector is inspired by React Devtools and uses Element highlighter from that project.

meteor-devtools's People

Contributors

callmephilip avatar markdowney avatar masteram avatar pem-- avatar primigenus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

meteor-devtools's Issues

Blaze error

Uncaught ReferenceError: Blaze is not defined

Please, fix the error message for Meteor + React app (without Blaze). Thx!

How can I connect this to my own app?!

Maybe I'm just too dumb, but I can't get this working with my own app. If I install the extensions from the Chrome store, it seems to show some other app, with different templates and such. But there's no user interface to point it to my own app. How exactly can I set-up this extension for my own app?!

Meteor-devtools to debug Meteor app inside an iframe?

Is there a way to debug a meteor app that is running inside an iframe of another website?

As much as I tried changing the '''Top''' window to its iframe Meteor counterpart, it only worked at browsers console shell.

Set up send hook higher up in the Meteor stack

Currently the send hook sits right on top of the websocket.send which means that some non ddp traces get in every once in while (e.g. intercom jazz). We should fix this by setting the hook higher up, somewhere around Meteor.connection.send or smth like that. Also need to double check if this has any effect on stack traces

FR: show data set on the template

a common pattern is:

Template.new_cached.onCreated ->
  this.foo = new ReactiveVar 0
  this.bar = 3

would be nice to be able to see this template data in addition to the currently-shown data context.

Message stats footer

We should have a footer with a few stats on the messages sent/received + potentially a breakdown on types of messages:

-------------------------------------------------------------------------------------------------------------------------------------------
10 messages sent * 2 messages received * 3 subs * 5 method calls * 4 collection updates 
-------------------------------------------------------------------------------------------------------------------------------------------

DDP showing subscriptions twice

The DDP tab is showing the initial subscriptions of the app twice for some reason. The Chrome devtools shows that websocket is only sending "sub" messages once, but Meteor DevTools show the twice. I tried Meteor devtools Evolved extension (but I like this one better 😉) and it's showing the subscriptions only once (correctly).

Collection audits are wrong

I have a collection Products and it's defined like this (I am not writing here the schema and others for the sake of simplicity):

export const Products = new Mongo.Collection('products');

Products.allow({
  insert: () => false,
  update: () => false,
  remove: () => false
});

Products.deny({
  insert: () => true,
  update: () => true,
  remove: () => true
});

So we forbid any updates using client mongo upates (latency compensation). We do all of them through secured methods.

Nevertheless the outpout from audit in the tool is the following:

screenshot from 2016-09-03 18-22-14

We believe this wrong.

All this is reproducible using The Meteor Chef's Base...

many thanks for the tool ! :-)

Synchronous XMLHttpRequest Error

Chrome is reporting this as an error and the Meteor tab doesn't show up in dev tools anymore.

Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/.

Pause Feature

It would be wonderful to see a pause (or start/stop) feature implemented. Sometimes I'm looking at a message and it gets pushed up out of view because other messages started pouring in.

Thanks for such an awesome tool!

Give ids links to messages

I'd be really neat if any given ID was given a link which when clicked would scroll to/expand/highlight the message the ID refers to.

MiniMongo tab doesn't show dynamic collections

Hi, I can not see all my custom collections in MiniMongo tab. I can see those,t hat are initialized at app start. But during work with app I load some files dynamically. Those files then initialize some collections and work with them, but they are not visible in the tab. Is it possible to fix it? Thanks.

Running dev tools produces 'absent-click' glitch in buttons and links

Running Versions:

  • OS: Windows 10 Home; Version 10.0.14393
  • Browser: Google Chrome 58.0.3029.110 (Official Build) (64-bit)
    -- Revision: 691bdb490962d4e6ae7f25c6ab1fdd0faaf19cd0-refs/branch-heads/3029@{#830}.
  • Meteor: 1.4.4.3
  • Meteor Dev Tools: 1.6.0

Symptoms:

When the Chrome Dev Tools window is open, some kind of glitch occurs where the first click on any button or link doesn't execute it's corresponding action, on the page you are developing (using the dev tools). From the second click on forward, everything continues to work fine with any button or link (including the one pressed for the first time in the page). If you refresh the page, the problem reappears, again, only on the first click on any button or link you pressed. It results in having to click a button or link twice for it to perform it's action, the first time the page runs (either by navigating to it or by refreshing the page).

This only happens while the Chrome Dev Tools window is open. Additionally, if you uninstall the Meteor DevTools, the problem disappears (even if the Chrome Dev Tools window is open), only to return when you reinstall the extension.

Meteor Dev Tool mark users update insecure ??

I like the Meteor Dev Tool. It helps me a lot in development. But the audit tool in MeteorDevTool mark my app insecure.

In my app, there is no allow/deny rules as recommended by meteor guide. And all user insert/update/remove are done through meteor method. check, audit-arguments-checks package are used, all argument check before execute. But when open MeteorDevTool =>security=>collections, click audit button of users collection, it still gives me a red update insecure message.

I read the article about how meteor dev tool determine a collection op is insecure, http://blog.thebakery.io/introducing-a-secury-auditor-to-meteor-devtools/, it says it will mark insecure if got an error other than 403... and says 'This means that some collections might be labeled as insecure even though the appropriate Allow/Deny rules have been setup and they present no immediate vulnerability.'

But this 'insecure' message makes developer and manager really scared . Therefore, I dig it further..

I looked into the DDP log and found the user update throws 400 Match Error instead of 403.
And the test is update with argument _{id:"invalid_id}
And in server console, such update op will throw an exception: Exception while invoking method '/users/update' Error: Match error: Expected object, got undefined
at exports.check (packages/check.js:57:15)
...

I tried some test method:
_Meteor.call('users/update', ({id:"invalid_id} )
==> throw 400 Match error (it will be marked as insecure by meteorDevTool)
_Meteor.call('users/update', ({id:"invalid_id},{})
==> throw 403 error ( it will be marked as secure by MeteorDevTool)

I tried tried similar update test direct to mongo in Robomongo:

_db.getCollection('users').update({'id':'invalid_id'} )
==> throw syntax exception
Error: need an object :
_DBCollection.prototype.parseUpdate@src/mongo/shell/collection.js:428:1
DBCollection.prototype.update@src/mongo/shell/collection.js:460:18

_db.getCollection('users').update({'id':'invalid_id'},{}})
==> pass: Updated 0 record(s) in 1ms ( no access check in Romomongo)

My impression:
The arguments for updating Meteor.users not allow only _id but no other field

If I am wrong, please enlighten me.
If I am right, could the MeteorDevTool could consider add some more dummy arguments to avoid wrongly insecure which scares us.

And also the collection meteor_autoupdate_clientVersions which is mark insecure for all insert/update/remove, even in a very simple app (a app created by 'meteor create app' and removed insecure, autopublish). What does that mean? what should we do?

Thanks!

Quan

Tracker is not defined

When executing a React based app, meteor-devtools spits a ReferenceError: Tracker is not defined that applies on the VM.

Step to reproduce:

git clone https://github.com/ssr-server/ssr
cd ssr
meteor npm install
cd demo
meteor npm install
meteor --setting ./setting.json

Open Chrome dev tools and select meteor-devtools. Launch the app using the default address http://localhost:3000.

Note that our demo makes no use of Tracker. It seems that meteor-devtools relies on the app's Tracker instead of using it's own.

Scroll does not show the last collection

Bug:
If there are many collections, scroll appears, but it does not extend till the very end. The last collection is always unreachable.

Feature Request:
Keyboard support (arrow up down) to navigate between collections.

Adjust trace list scrolling behavior

Current scrolling on the trace list is a bit annoying as it keeps pulling the scrollbar down to show the latest traces. This should be fixed to only do this when a the scroll bar is forced all the way to the bottom by the user

Filter Feature

It would be wonderful to see a filter feature implemented. Sometimes I'm only interested in seeing certain messages, and have to search through the flood to see if it happened. With a text filter, I could "watch" only certain method calls.

Thanks for such an awesome tool!

Post 1.0 - Devtool

We've started discussing a possibility of turning DDP monitor into a general collection of devtools for Meteor developers where the DDP traffic monitor is one of the components. Other potential candidates:

Page action for the extension

See if we can put a page action UI element to link back to the dev extension and notify devs about warnings and show stats

FR: match blaze inspector to elements

When an element is selected in elements tab (eg when I do, on the page, right-click -> inspect), expand the blaze tree and select the corresponding element.

Unknown data

No app running..
only one tab open..
open dev-tools options..
getting data from some telescope site (i think)


screen shot 2016-06-14 at 09 11 37


screen shot 2016-06-14 at 09 04 08


screen shot 2016-06-14 at 09 02 58

Invalid Regex message in the console

Sometimes, if Meteor itself has troubles loading, this message appears in the console:

image

I was able to track this down to Meteor devtools by looking at the ID of the extension that threw this error.

Would be great if this could be fixed.

Pretty landing page

It would be nice to have a pretty landing page for the DDP Monitor with a few nice screenshots highlighting available features + extension installation button

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.