├── .eslintrc ├── .gitignore ├── .iron-node.js ├── .jshintrc ├── .npmrc ├── .travis.yml ├── CONTRIBUTING.md ├── ISSUE_TEMPLATE.md ├── LICENSE.md ├── README.md ├── app ├── app.js ├── bower_components │ ├── octicons │ │ ├── .bower.json │ │ ├── CHANGELOG.md │ │ ├── CONTRIBUTING.md │ │ ├── LICENSE.txt │ │ ├── README.md │ │ ├── bower.json │ │ ├── octicons │ │ │ ├── README.md │ │ │ ├── octicons-local.ttf │ │ │ ├── octicons.css │ │ │ ├── octicons.eot │ │ │ ├── octicons.less │ │ │ ├── octicons.scss │ │ │ ├── octicons.svg │ │ │ ├── octicons.ttf │ │ │ ├── octicons.woff │ │ │ └── sprockets-octicons.scss │ │ ├── package.json │ │ └── svg │ │ │ ├── alert.svg │ │ │ ├── alignment-align.svg │ │ │ ├── alignment-aligned-to.svg │ │ │ ├── alignment-unalign.svg │ │ │ ├── arrow-down.svg │ │ │ ├── arrow-left.svg │ │ │ ├── arrow-right.svg │ │ │ ├── arrow-small-down.svg │ │ │ ├── arrow-small-left.svg │ │ │ ├── arrow-small-right.svg │ │ │ ├── arrow-small-up.svg │ │ │ ├── arrow-up.svg │ │ │ ├── beer.svg │ │ │ ├── book.svg │ │ │ ├── bookmark.svg │ │ │ ├── briefcase.svg │ │ │ ├── broadcast.svg │ │ │ ├── browser.svg │ │ │ ├── bug.svg │ │ │ ├── calendar.svg │ │ │ ├── check.svg │ │ │ ├── checklist.svg │ │ │ ├── chevron-down.svg │ │ │ ├── chevron-left.svg │ │ │ ├── chevron-right.svg │ │ │ ├── chevron-up.svg │ │ │ ├── circle-slash.svg │ │ │ ├── circuit-board.svg │ │ │ ├── clippy.svg │ │ │ ├── clock.svg │ │ │ ├── cloud-download.svg │ │ │ ├── cloud-upload.svg │ │ │ ├── code.svg │ │ │ ├── color-mode.svg │ │ │ ├── comment-discussion.svg │ │ │ ├── comment.svg │ │ │ ├── credit-card.svg │ │ │ ├── dash.svg │ │ │ ├── dashboard.svg │ │ │ ├── database.svg │ │ │ ├── device-camera-video.svg │ │ │ ├── device-camera.svg │ │ │ ├── device-desktop.svg │ │ │ ├── device-mobile.svg │ │ │ ├── diff-added.svg │ │ │ ├── diff-ignored.svg │ │ │ ├── diff-modified.svg │ │ │ ├── diff-removed.svg │ │ │ ├── diff-renamed.svg │ │ │ ├── diff.svg │ │ │ ├── ellipsis.svg │ │ │ ├── eye.svg │ │ │ ├── file-binary.svg │ │ │ ├── file-code.svg │ │ │ ├── file-directory.svg │ │ │ ├── file-media.svg │ │ │ ├── file-pdf.svg │ │ │ ├── file-submodule.svg │ │ │ ├── file-symlink-directory.svg │ │ │ ├── file-symlink-file.svg │ │ │ ├── file-text.svg │ │ │ ├── file-zip.svg │ │ │ ├── flame.svg │ │ │ ├── fold.svg │ │ │ ├── gear.svg │ │ │ ├── gift.svg │ │ │ ├── gist-secret.svg │ │ │ ├── gist.svg │ │ │ ├── git-branch.svg │ │ │ ├── git-commit.svg │ │ │ ├── git-compare.svg │ │ │ ├── git-merge.svg │ │ │ ├── git-pull-request.svg │ │ │ ├── globe.svg │ │ │ ├── graph.svg │ │ │ ├── heart.svg │ │ │ ├── history.svg │ │ │ ├── home.svg │ │ │ ├── horizontal-rule.svg │ │ │ ├── hourglass.svg │ │ │ ├── hubot.svg │ │ │ ├── inbox.svg │ │ │ ├── info.svg │ │ │ ├── issue-closed.svg │ │ │ ├── issue-opened.svg │ │ │ ├── issue-reopened.svg │ │ │ ├── jersey.svg │ │ │ ├── jump-down.svg │ │ │ ├── jump-left.svg │ │ │ ├── jump-right.svg │ │ │ ├── jump-up.svg │ │ │ ├── key.svg │ │ │ ├── keyboard.svg │ │ │ ├── law.svg │ │ │ ├── light-bulb.svg │ │ │ ├── link-external.svg │ │ │ ├── link.svg │ │ │ ├── list-ordered.svg │ │ │ ├── list-unordered.svg │ │ │ ├── location.svg │ │ │ ├── lock.svg │ │ │ ├── logo-github.svg │ │ │ ├── mail-read.svg │ │ │ ├── mail-reply.svg │ │ │ ├── mail.svg │ │ │ ├── mark-github.svg │ │ │ ├── markdown.svg │ │ │ ├── megaphone.svg │ │ │ ├── mention.svg │ │ │ ├── microscope.svg │ │ │ ├── milestone.svg │ │ │ ├── mirror.svg │ │ │ ├── mortar-board.svg │ │ │ ├── move-down.svg │ │ │ ├── move-left.svg │ │ │ ├── move-right.svg │ │ │ ├── move-up.svg │ │ │ ├── mute.svg │ │ │ ├── no-newline.svg │ │ │ ├── octoface.svg │ │ │ ├── organization.svg │ │ │ ├── package.svg │ │ │ ├── paintcan.svg │ │ │ ├── pencil.svg │ │ │ ├── person.svg │ │ │ ├── pin.svg │ │ │ ├── playback-fast-forward.svg │ │ │ ├── playback-pause.svg │ │ │ ├── playback-play.svg │ │ │ ├── playback-rewind.svg │ │ │ ├── plug.svg │ │ │ ├── plus.svg │ │ │ ├── podium.svg │ │ │ ├── primitive-dot.svg │ │ │ ├── primitive-square.svg │ │ │ ├── pulse.svg │ │ │ ├── puzzle.svg │ │ │ ├── question.svg │ │ │ ├── quote.svg │ │ │ ├── radio-tower.svg │ │ │ ├── repo-clone.svg │ │ │ ├── repo-force-push.svg │ │ │ ├── repo-forked.svg │ │ │ ├── repo-pull.svg │ │ │ ├── repo-push.svg │ │ │ ├── repo.svg │ │ │ ├── rocket.svg │ │ │ ├── rss.svg │ │ │ ├── ruby.svg │ │ │ ├── screen-full.svg │ │ │ ├── screen-normal.svg │ │ │ ├── search.svg │ │ │ ├── server.svg │ │ │ ├── settings.svg │ │ │ ├── sign-in.svg │ │ │ ├── sign-out.svg │ │ │ ├── split.svg │ │ │ ├── squirrel.svg │ │ │ ├── star.svg │ │ │ ├── steps.svg │ │ │ ├── stop.svg │ │ │ ├── sync.svg │ │ │ ├── tag.svg │ │ │ ├── telescope.svg │ │ │ ├── terminal.svg │ │ │ ├── three-bars.svg │ │ │ ├── thumbsdown.svg │ │ │ ├── thumbsup.svg │ │ │ ├── tools.svg │ │ │ ├── trashcan.svg │ │ │ ├── triangle-down.svg │ │ │ ├── triangle-left.svg │ │ │ ├── triangle-right.svg │ │ │ ├── triangle-up.svg │ │ │ ├── unfold.svg │ │ │ ├── unmute.svg │ │ │ ├── versions.svg │ │ │ ├── x.svg │ │ │ └── zap.svg │ ├── primer-css │ │ ├── .bower.json │ │ ├── .bowerrc │ │ ├── .editorconfig │ │ ├── CONTRIBUTING.md │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── bower.json │ │ ├── css │ │ │ ├── .primer-stats.md │ │ │ └── primer.css │ │ ├── package.json │ │ └── scss │ │ │ ├── _alerts.scss │ │ │ ├── _avatars.scss │ │ │ ├── _base.scss │ │ │ ├── _blankslate.scss │ │ │ ├── _buttons.scss │ │ │ ├── _counter.scss │ │ │ ├── _filter-list.scss │ │ │ ├── _flex-table.scss │ │ │ ├── _forms.scss │ │ │ ├── _layout.scss │ │ │ ├── _menu.scss │ │ │ ├── _mixins.scss │ │ │ ├── _normalize.scss │ │ │ ├── _states.scss │ │ │ ├── _tabnav.scss │ │ │ ├── _tooltips.scss │ │ │ ├── _truncate.scss │ │ │ ├── _type.scss │ │ │ ├── _utility.scss │ │ │ ├── _variables.scss │ │ │ └── primer.scss │ └── primer-markdown │ │ ├── .bower.json │ │ ├── CLA.md │ │ ├── CONTRIBUTING.md │ │ ├── LICENSE.md │ │ ├── bower.json │ │ ├── components │ │ ├── markdown.scss │ │ └── user-content.scss │ │ └── dist │ │ ├── user-content.css │ │ └── user-content.min.css ├── config.js ├── devtools-extension │ ├── background.js │ ├── devtools.html │ ├── devtools.js │ ├── icon.png │ ├── inserted-script.js │ ├── jquery-3.1.0.min.js │ ├── manifest.json │ ├── messageback-script.js │ ├── messaging.js │ ├── panel.html │ └── panel.js ├── icon.png ├── index.html ├── index.js ├── menu.js ├── package.json ├── require-custom-wrap.js ├── require.js ├── src │ ├── css │ │ ├── app.css │ │ └── iron-node-regular.ttf │ └── js │ │ └── look-at-this │ │ ├── look-at-this.css │ │ ├── look-at-this.min.js │ │ └── sprite__social-icon.png └── update.js ├── bin └── run.js ├── docs ├── 5f3c6a4c-45db-11e5-89d1-baa44f58f67e.png ├── 6a6f925a-45da-11e5-89e5-7378a7b7a359.png ├── CHANGE-ELECTRON-VERSION.md ├── CONFIGURATION.md ├── DEBUG-NODEJS-COMMANDLINE-APPS.md ├── FEATURES.md ├── MASTER-THE-BREAKPOINTS.md ├── METEOR-DEBUG-BUILD.md ├── METEOR.md ├── NATIVE-MODULES.md ├── PACKAGES.md ├── PROFILE.md ├── VERSION-DETAILS.md ├── console-package-log.png ├── console-require.png ├── debug-piped-result-of-coffee-script.jpg ├── iron-node-demo.gif ├── supported-platforms.md └── version-details.png ├── font ├── a-upper.svg ├── d-lower.svg ├── e-lower.svg ├── i-lower.svg ├── i-upper.svg ├── iron-node-regular.ttf ├── iron-node.sfd ├── logo.html ├── n-lower.svg ├── n-upper.svg ├── o-lower.svg └── r-lower.svg ├── logo ├── icon.png ├── logo.png ├── logo2.png ├── logo3.png └── logo_sm.png ├── package-lock.json ├── package.json ├── screenshot.jpg ├── test.js └── test ├── main.js └── syntax.text /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "xo-space", 3 | "env": { 4 | "mocha": true, 5 | "node": true 6 | }, 7 | "rules":{ 8 | "no-trailing-spaces" : "off", 9 | "no-multiple-empty-lines":"off", 10 | "space-before-function-paren" : "off", 11 | "keyword-spacing" : "off", 12 | "indent" : "off", 13 | "quotes": ["warn", "double", "avoid-escape"], 14 | "eol-last" : "off", 15 | "space-before-blocks" : "off", 16 | "no-mixed-spaces-and-tabs" : "warn", 17 | "key-spacing" : "off", 18 | "comma-spacing" : "off", 19 | "no-multi-spaces" : "off", 20 | "padded-blocks" : "warn", 21 | "spaced-comment": "off", 22 | "no-extra-boolean-cast" : "off", 23 | "max-depth":["error", 4], 24 | "no-negated-condition":"off", 25 | "no-implicit-coercion":"off", 26 | "no-unused-vars":"warn", 27 | "no-useless-escape" : "off", 28 | "space-in-parens" : "off", 29 | "semi-spacing": "off", 30 | "no-useless-concat": "off", 31 | "max-params":["error", 3], 32 | "max-nested-callbacks":["error", { "max": 3 }], 33 | "max-statements" : ["warn", { "max": 60 }], 34 | "max-lines": ["warn", 300], 35 | "no-lonely-if" :"off", 36 | "space-infix-ops" : "warn", 37 | "camelcase" : "off", 38 | "comma-dangle" : "warn", 39 | "no-new-func":"off", 40 | "no-prototype-builtins":"off", 41 | "no-new":"warn" 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | app/node_modules 3 | /dist 4 | /jsconfig.json 5 | /CHANGELOG.md 6 | 7 | #eclipse Config Files # 8 | .classpath 9 | .project 10 | .settings 11 | .metadata 12 | #outputfolder 13 | /target 14 | /results 15 | 16 | # Log Files 17 | *.log 18 | logs 19 | npm-debug.log* 20 | /bin/iron-node.env.json 21 | -------------------------------------------------------------------------------- /.iron-node.js: -------------------------------------------------------------------------------- 1 | var path = require("path"); 2 | var settings = { 3 | "nodeModule" : { 4 | // "scriptInjection" : "debugger;", // Prepend some custom javascript code to your code. 5 | "arguments" : [ // Add additional arguments. Node will pass undefined to these parms. This is usefull to mimic a native browser environment. 6 | "window", "document", "self", "navigator", 7 | ] 8 | }, 9 | "v8": { 10 | "flags" : [ // DEFAULT=[]; https://github.com/thlorenz/v8-flags/blob/master/flags-0.11.md 11 | // "--harmony-arrow-functions" 12 | ] 13 | }, 14 | "app": { 15 | "native+" : true, // DEFAULT=FALSE; extends require to search native modules respecting the current v8 engine version. 16 | "autoAddWorkSpace" : false, // DEFAULT=TRUE; disables the autoAddWorkSpace behavior. 17 | "openDevToolsDetached" : true, // DEFAULT=FALSE; opens the dev tools windows detached in an own window. 18 | "hideMainWindow" : true, // DEFAULT=FALSE; hides the main window to show dev tools only. 19 | "useIronNodeDevToolsExtension" : false, // DEFAULT=TRUE; loads the IronNodeDevToolsExtension. 20 | }, 21 | "workSpaceDirectory" : function(argv) { // determines the workspace directory for specific commandline applications. 22 | var result = ""; 23 | if (argv[2]){ 24 | result = path.dirname(argv[2]); 25 | var startupScriptName = path.basename(argv[2]).toLowerCase(); 26 | 27 | switch(startupScriptName) { 28 | case "_mocha": 29 | result = process.cwd(); 30 | break; 31 | default: 32 | result = path.resolve(result); 33 | break; 34 | } 35 | } 36 | 37 | return result; 38 | } 39 | }; 40 | 41 | module.exports = settings; -------------------------------------------------------------------------------- /.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "esversion": 6, 3 | "passfail" : false, 4 | "maxerr" : 100, 5 | "browser" : true, 6 | "node" : false, 7 | "rhino" : false, 8 | "couch" : false, 9 | "wsh" : true, 10 | "jquery" : true, 11 | "prototypejs" : false, 12 | "mootools" : false, 13 | "dojo" : false, 14 | "predef" : [ 15 | "angular", 16 | "test", 17 | "ok", 18 | "require", 19 | "process", 20 | "assert", 21 | "it", 22 | "describe", 23 | "should", 24 | "module", 25 | "__dirname" 26 | ], 27 | 28 | "debug" : false, 29 | "devel" : true, 30 | "es5" : false, 31 | "strict" : false, 32 | "globalstrict" : false, 33 | 34 | 35 | 36 | "asi" : true, 37 | "laxbreak" : true, 38 | "bitwise" : true, 39 | "boss" : false, 40 | "curly" : true, 41 | "eqeqeq" : true, 42 | "eqnull" : false, 43 | "evil" : true, 44 | "expr" : false, 45 | "forin" : false, 46 | "immed" : true, 47 | "latedef" : true, 48 | "loopfunc" : false, 49 | "noarg" : true, 50 | "regexp" : true, 51 | "regexdash" : false, 52 | "scripturl" : true, 53 | "shadow" : false, 54 | "supernew" : false, 55 | "undef" : true, 56 | "unused" : true, 57 | 58 | 59 | "newcap" : true, 60 | "noempty" : true, 61 | "nonew" : true, 62 | "nomen" : true, 63 | "onevar" : false, 64 | "plusplus" : false, 65 | "sub" : false, 66 | "trailing" : true, 67 | "white" : true, 68 | "indent" : 2, 69 | "maxdepth" : 4, 70 | "maxcomplexity" : 12, 71 | "maxparams" : 3, 72 | "maxstatements" : 60 73 | } -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | message=":arrow_up: %s" -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.12" 4 | before_script: 5 | - npm install -g mocha -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to ironNode 2 | 3 | :+1::tada: First off, thanks for taking the time to contribute! :tada::+1: 4 | 5 | This project adheres to the [Open Code of Conduct][code-of-conduct]. By participating, you are expected to uphold this code. 6 | [code-of-conduct]: http://todogroup.org/opencodeofconduct/#iron-node/opensource@github.com 7 | 8 | The following is a set of guidelines for contributing to ironNode. 9 | These are just guidelines, not rules, use your best judgment and feel free to 10 | propose changes to this document in a pull request. 11 | 12 | ## Submit an issue, feedback or a feature request - Any of these issue topics are welcome :O) 13 | 14 | * You can create an issue [here](https://github.com/s-a/iron-node/issues/new), 15 | but before doing that please read the notes below and include as many details as 16 | possible with your report. If you can, please include: 17 | * The version of ironNode you are using 18 | * The operating system you are using 19 | * If applicable, what you were doing when the issue arose and what you 20 | expected to happen 21 | * Other things that will help resolve your issue: 22 | * Screenshots and animated GIFs 23 | * Error output that appears in your terminal, dev tools or as an alert 24 | * Perform a [cursory search](https://github.com/s-a/iron-node/issues?utf8=✓&q=is%3Aissue+) 25 | to see if a similar issue has already been submitted 26 | 27 | ## Submitting Pull Requests 28 | 29 | * Include screenshots and animated GIFs in your pull request whenever possible. 30 | * Follow the [coding style defined in .jshintrc](/.jshintrc). 31 | * Write documentation in [Markdown](https://daringfireball.net/projects/markdown). 32 | 33 | 34 | 35 | - Fork it! 36 | - Clone your fork 37 | - Install development dependencies 38 | - ```cd iron-node;``` 39 | - ```npm install;``` 40 | - Create your feature branch: `git checkout -b my-new-feature;` 41 | - Add add your new code 42 | - Run the tests: `npm test;` 43 | - Commit your changes: `git commit -am 'Add some feature';` 44 | - Push to the branch: `git push origin my-new-feature;` 45 | - Submit a pull request :dog: 46 | 47 | ## Execute iron-node in development mode 48 | 49 | ```bash 50 | # mocha-test 51 | $ node bin/run.js node_modules/mocha/bin/_mocha; 52 | 53 | # run a custom script 54 | $ node bin/run.js c:\\test\\yourscript.js; 55 | 56 | # pipe something 57 | $ echo var i = 0;debugger; | node bin/run.js c:\\test\\yourscript.js; 58 | ``` 59 | -------------------------------------------------------------------------------- /ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ### Description 2 | 3 | [Description of the issue] 4 | 5 | ### Steps to Reproduce 6 | 7 | _This is just a suggestion to create a perfect issue report. Delete blocks you do not know or do not want to post_ 8 | 9 | 1. [First Step] 10 | 2. [Second Step] 11 | 3. [and so on...] 12 | 13 | **Expected behavior:** [What you expect to happen] 14 | 15 | **Actual behavior:** [What actually happens] 16 | 17 | **Reproduces how often:** [What percentage of the time does it reproduce?] 18 | 19 | **Screenshot(s):** [Screenshot(s) or animated gifs of the error situtaion] 20 | 21 | **Error log(s):** From devTools console or shell terminal 22 | 23 | ### Version(s) 24 | 25 | You can get this information from devTools (https://github.com/s-a/iron-node/blob/master/docs/VERSION-DETAILS.md). 26 | 27 | ===================== 28 | **Notes from ironNode maintainer:** 29 | You are welcome to add a feature or fix a bug via sending [pull request](CONTRIBUTING.md), 30 | it'll be incredibly faster than just opening a bug or feature request issue. :fireworks: Thanks! -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | # License 2 | 3 | Copyright (c) 2016 Stephan Ahlf 4 | This software is licensed under MIT. 5 | 6 | ## Development dependecies 7 | All files located in the node_modules and external directories are 8 | externally maintained libraries used by this software which have their 9 | own licenses; we recommend you read them, as their terms may differ from 10 | the terms above. 11 | 12 | ## MIT 13 | 14 | The MIT License (MIT) 15 | 16 | Copyright (c) 2016 Stephan Ahlf 17 | 18 | Permission is hereby granted, free of charge, to any person obtaining a copy 19 | of this software and associated documentation files (the "Software"), to deal 20 | in the Software without restriction, including without limitation the rights 21 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 22 | copies of the Software, and to permit persons to whom the Software is 23 | furnished to do so, subject to the following conditions: 24 | 25 | The above copyright notice and this permission notice shall be included in all 26 | copies or substantial portions of the Software. 27 | 28 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 29 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 30 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 31 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 32 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 33 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 34 | SOFTWARE. -------------------------------------------------------------------------------- /app/bower_components/octicons/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "octicons", 3 | "description": "GitHub's icon font", 4 | "license": [ 5 | "OFL-1.1", 6 | "MIT" 7 | ], 8 | "homepage": "https://octicons.github.com", 9 | "authors": [ 10 | "GitHub " 11 | ], 12 | "main": [ 13 | "octicons/sprockets-octicons.scss", 14 | "octicons/octicons.eot", 15 | "octicons/octicons.svg", 16 | "octicons/octicons.ttf", 17 | "octicons/octicons.woff" 18 | ], 19 | "keywords": [ 20 | "GitHub", 21 | "icons", 22 | "font", 23 | "web font", 24 | "icon font" 25 | ], 26 | "ignore": [ 27 | "**/.*", 28 | "bower_components" 29 | ], 30 | "version": "2.4.1", 31 | "_release": "2.4.1", 32 | "_resolution": { 33 | "type": "version", 34 | "tag": "v2.4.1", 35 | "commit": "bb60b8475dd1e03041416c406007a625d50a64d1" 36 | }, 37 | "_source": "git://github.com/github/octicons.git", 38 | "_target": "*", 39 | "_originalSource": "octicons" 40 | } -------------------------------------------------------------------------------- /app/bower_components/octicons/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## 2.2.0 (Feb 18, 2015) 2 | - Add two new icons: `thumbsup` and `thumbsdown` 3 | 4 | ## 2.0.1 (June 16, 2014) 5 | 6 | - Add mention of github.com/logos to the license 7 | 8 | ## 2.0.0 (June 16, 2014) 9 | 10 | - Hello world 11 | -------------------------------------------------------------------------------- /app/bower_components/octicons/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | The contents of */octicons* */svg* are generated by an automated process. Changes to these files may be accepted, but may also be overwritten. 2 | 3 | Octicons is GitHub's icon font. At this time, new icons will only add icons when they are needed for GitHub products. 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/LICENSE.txt: -------------------------------------------------------------------------------- 1 | (c) 2012-2015 GitHub 2 | 3 | When using the GitHub logos, be sure to follow the GitHub logo guidelines (https://github.com/logos) 4 | 5 | Font License: SIL OFL 1.1 (http://scripts.sil.org/OFL) 6 | Applies to all font files 7 | 8 | Code License: MIT (http://choosealicense.com/licenses/mit/) 9 | Applies to all other files 10 | -------------------------------------------------------------------------------- /app/bower_components/octicons/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "octicons", 3 | "description": "GitHub's icon font", 4 | "license": [ 5 | "OFL-1.1", 6 | "MIT" 7 | ], 8 | "homepage": "https://octicons.github.com", 9 | "authors": [ 10 | "GitHub " 11 | ], 12 | "main": [ 13 | "octicons/sprockets-octicons.scss", 14 | "octicons/octicons.eot", 15 | "octicons/octicons.svg", 16 | "octicons/octicons.ttf", 17 | "octicons/octicons.woff" 18 | ], 19 | "keywords": [ 20 | "GitHub", 21 | "icons", 22 | "font", 23 | "web font", 24 | "icon font" 25 | ], 26 | "ignore": [ 27 | "**/.*", 28 | "bower_components" 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /app/bower_components/octicons/octicons/README.md: -------------------------------------------------------------------------------- 1 | If you intend to install Octicons locally, install `octicons-local.ttf`. It should appear as “github-octicons” in your font list. It is specially designed not to conflict with GitHub's web fonts. 2 | -------------------------------------------------------------------------------- /app/bower_components/octicons/octicons/octicons-local.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s-a/iron-node/3d4d254524216acb36f1731458aaca0d3f4e4356/app/bower_components/octicons/octicons/octicons-local.ttf -------------------------------------------------------------------------------- /app/bower_components/octicons/octicons/octicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s-a/iron-node/3d4d254524216acb36f1731458aaca0d3f4e4356/app/bower_components/octicons/octicons/octicons.eot -------------------------------------------------------------------------------- /app/bower_components/octicons/octicons/octicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s-a/iron-node/3d4d254524216acb36f1731458aaca0d3f4e4356/app/bower_components/octicons/octicons/octicons.ttf -------------------------------------------------------------------------------- /app/bower_components/octicons/octicons/octicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s-a/iron-node/3d4d254524216acb36f1731458aaca0d3f4e4356/app/bower_components/octicons/octicons/octicons.woff -------------------------------------------------------------------------------- /app/bower_components/octicons/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "octicons", 3 | "version": "2.4.1", 4 | "description": "GitHub's icon font", 5 | "main": "README.md", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/github/octicons.git" 9 | }, 10 | "keywords": [ 11 | "GitHub", 12 | "icons", 13 | "font", 14 | "web font", 15 | "icon font" 16 | ], 17 | "author": "GitHub ", 18 | "license": "SIL OFL 1.1, MIT", 19 | "bugs": { 20 | "url": "https://github.com/github/octicons/issues" 21 | }, 22 | "homepage": "https://octicons.github.com" 23 | } 24 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/alert.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/alignment-align.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/alignment-aligned-to.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/alignment-unalign.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/arrow-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/arrow-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/arrow-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/arrow-small-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/arrow-small-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/arrow-small-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/arrow-small-up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/arrow-up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/beer.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/book.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/bookmark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/briefcase.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/broadcast.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/browser.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/bug.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/calendar.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/check.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/checklist.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/chevron-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/chevron-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/chevron-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/chevron-up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/circle-slash.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/circuit-board.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/clippy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/clock.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/cloud-download.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/cloud-upload.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/code.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/color-mode.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/comment-discussion.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/comment.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/credit-card.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/dash.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/dashboard.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/database.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/device-camera-video.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/device-camera.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/device-desktop.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/device-mobile.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/diff-added.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/diff-ignored.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/diff-modified.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/diff-removed.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/diff-renamed.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/diff.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/ellipsis.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/eye.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/file-binary.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/file-code.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/file-directory.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/file-media.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/file-pdf.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/file-submodule.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/file-symlink-directory.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/file-symlink-file.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/file-text.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/file-zip.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/flame.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/fold.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/gear.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/gift.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/gist-secret.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/gist.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/git-branch.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/git-commit.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/git-compare.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/git-merge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/git-pull-request.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/globe.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/graph.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/heart.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/history.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/home.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/horizontal-rule.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/hourglass.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/hubot.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/inbox.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/info.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/issue-closed.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/issue-opened.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/issue-reopened.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/jersey.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/jump-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/jump-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/jump-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/jump-up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/key.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/keyboard.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/law.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/light-bulb.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/link-external.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/link.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/list-ordered.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/list-unordered.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/location.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/lock.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/mail-read.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/mail-reply.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/mail.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/mark-github.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/markdown.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/megaphone.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/mention.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/microscope.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/milestone.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/mirror.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/mortar-board.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/move-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/move-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/move-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/move-up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/mute.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/no-newline.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/octoface.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/organization.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/package.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/paintcan.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/pencil.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/person.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/pin.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/playback-fast-forward.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/playback-pause.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/playback-play.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/playback-rewind.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/plug.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/plus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/podium.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/primitive-dot.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/primitive-square.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/pulse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/question.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/quote.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/radio-tower.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/repo-clone.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/repo-force-push.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/repo-forked.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/repo-pull.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/repo-push.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/repo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/rocket.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/rss.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/ruby.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/screen-full.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/screen-normal.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/search.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/server.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/settings.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/sign-in.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/sign-out.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/split.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/squirrel.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/star.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/steps.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/stop.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/sync.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/tag.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/telescope.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/terminal.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/three-bars.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/thumbsdown.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/thumbsup.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/tools.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/trashcan.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/triangle-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/triangle-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/triangle-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/triangle-up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/unfold.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/unmute.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/versions.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/x.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/octicons/svg/zap.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/bower_components/primer-css/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "primer-css", 3 | "ignore": [ 4 | "docs/", 5 | ".gitignore", 6 | ".hound.yml", 7 | ".scss-lint.yml", 8 | "_config.yml", 9 | "Gemfile", 10 | "Gemfile.lock", 11 | "Gruntfile.js" 12 | ], 13 | "main": [ 14 | "scss/primer.scss" 15 | ], 16 | "dependencies": { 17 | "octicons": "*", 18 | "primer-markdown": "https://github.com/primer/markdown.git#2.1.7" 19 | }, 20 | "homepage": "https://github.com/primer/primer", 21 | "version": "2.3.0", 22 | "_release": "2.3.0", 23 | "_resolution": { 24 | "type": "version", 25 | "tag": "v2.3.0", 26 | "commit": "99a89715f1ce016ab957c9d8d10691366a2a8dce" 27 | }, 28 | "_source": "git://github.com/primer/primer.git", 29 | "_target": "~2.3.0", 30 | "_originalSource": "primer-css", 31 | "_direct": true 32 | } -------------------------------------------------------------------------------- /app/bower_components/primer-css/.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "docs/bower_components" 3 | } -------------------------------------------------------------------------------- /app/bower_components/primer-css/.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | end_of_line = lf 8 | indent_size = 2 9 | indent_style = space 10 | insert_final_newline = true 11 | trim_trailing_whitespace = true 12 | -------------------------------------------------------------------------------- /app/bower_components/primer-css/LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 GitHub, Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /app/bower_components/primer-css/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "primer-css", 3 | "ignore": [ 4 | "docs/", 5 | ".gitignore", 6 | ".hound.yml", 7 | ".scss-lint.yml", 8 | "_config.yml", 9 | "Gemfile", 10 | "Gemfile.lock", 11 | "Gruntfile.js" 12 | ], 13 | "main": [ 14 | "scss/primer.scss" 15 | ], 16 | "dependencies": { 17 | "octicons": "*", 18 | "primer-markdown": "https://github.com/primer/markdown.git#2.1.7" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/bower_components/primer-css/css/.primer-stats.md: -------------------------------------------------------------------------------- 1 | # [primer]( http://primercss.io ) 2 | 3 | **Version:** `2.2.1` 4 | 5 | ## Parker Report 6 | 7 | ### css/primer.css 8 | 9 | - **Total Stylesheets:** 1 10 | - **Total Stylesheet Size:** 28454 11 | - **Total Media Queries:** 1 12 | - **Total Rules:** 366 13 | - **Selectors Per Rule:** 1.489071038251366 14 | - **Total Selectors:** 545 15 | - **Identifiers Per Selector:** 2.1247706422018346 16 | - **Specificity Per Selector:** 16.387155963302753 17 | - **Top Selector Specificity:** 50 18 | - **Top Selector Specificity Selector:** .fullscreen-overlay-enabled.dark-theme .tooltipped .tooltipped-s:before 19 | - **Total Id Selectors:** 0 20 | - **Total Identifiers:** 1158 21 | - **Total Declarations:** 921 22 | - **Total Unique Colors:** 79 23 | - **Total Important Keywords:** 1 24 | -------------------------------------------------------------------------------- /app/bower_components/primer-css/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "primer", 3 | "version": "2.3.0", 4 | "homepage": "http://primercss.io", 5 | "author": "GitHub, Inc.", 6 | "scss": "./scss/primer.scss", 7 | "license": "MIT", 8 | "repository": { 9 | "type": "git", 10 | "url": "https://github.com/primer/primer.git" 11 | }, 12 | "devDependencies": { 13 | "autoprefixer-core": "~5.2.1", 14 | "grunt": "~0.4.5", 15 | "grunt-build-control": "~0.2.0", 16 | "grunt-jekyll": "~0.4.2", 17 | "grunt-parker": "~0.1.0", 18 | "grunt-sass": "~0.18.0", 19 | "grunt-contrib-watch": "~0.6.1", 20 | "grunt-postcss": "~0.5.1" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/bower_components/primer-css/scss/_alerts.scss: -------------------------------------------------------------------------------- 1 | .flash-messages { 2 | margin-top: 15px; 3 | margin-bottom: 15px; 4 | } 5 | 6 | .flash, 7 | .flash-global { 8 | position: relative; 9 | font-size: 14px; 10 | line-height: 1.6; 11 | color: #246; 12 | background-color: #e2eef9; 13 | border: solid 1px #bac6d3; 14 | 15 | &.flash-warn { 16 | color: #4c4a42; 17 | background-color: #fff9ea; 18 | border-color: #dfd8c2; 19 | } 20 | 21 | &.flash-error { 22 | color: #911; 23 | background-color: #fcdede; 24 | border-color: #d2b2b2; 25 | } 26 | 27 | .flash-close { 28 | float: right; 29 | padding: 17px; // bigger hit area 30 | margin-top: -15px; // negative margins to account for bigger padding 31 | margin-right: -15px; 32 | margin-left: 20px; 33 | color: inherit; 34 | text-decoration: none; 35 | cursor: pointer; 36 | opacity: 0.6; 37 | 38 | &:hover { 39 | opacity: 1; 40 | } 41 | } 42 | 43 | p:last-child { 44 | margin-bottom: 0; 45 | } 46 | 47 | // Flashes can have an action button instead of the cross. 48 | .flash-action { 49 | float: right; 50 | margin-top: -4px; 51 | margin-left: 20px; 52 | } 53 | 54 | // Make links stand out 55 | a { 56 | font-weight: bold; 57 | } 58 | } 59 | 60 | .flash { 61 | padding: 15px; 62 | border-radius: 3px; 63 | 64 | + .flash { margin-top: 5px; } 65 | } 66 | 67 | // Add an icon 68 | .flash-with-icon { 69 | padding-left: 40px; 70 | 71 | > .octicon { 72 | float: left; 73 | margin-top: 3px; 74 | margin-left: -25px; 75 | } 76 | } 77 | 78 | 79 | // Global notices 80 | // 81 | // Useful for site-wide banners and global notifications. 82 | 83 | .flash-global { 84 | padding: 10px; 85 | margin-top: -1px; 86 | border-width: 1px 0; 87 | 88 | h2, 89 | p { 90 | margin-top: 0; 91 | margin-bottom: 0; 92 | font-size: 14px; 93 | line-height: 1.4; 94 | } 95 | 96 | // Global flashes can have an action buttons too. 97 | .flash-action { 98 | margin-top: 5px; 99 | } 100 | } 101 | 102 | // Content within flash messages. 103 | .flash-title { 104 | margin-top: 0; 105 | margin-bottom: 5px; 106 | } 107 | -------------------------------------------------------------------------------- /app/bower_components/primer-css/scss/_avatars.scss: -------------------------------------------------------------------------------- 1 | .avatar { 2 | display: inline-block; 3 | overflow: hidden; // Ensure page layout in Firefox should images fail to load 4 | line-height: 1; 5 | vertical-align: middle; 6 | border-radius: 3px; 7 | } 8 | 9 | .avatar-small { border-radius: 2px; } 10 | 11 | .avatar-link { 12 | float: left; 13 | line-height: 1; 14 | } 15 | 16 | // User for example on /stars and /user for grids of avatars 17 | .avatar-group-item { 18 | display: inline-block; 19 | margin-bottom: 3px; 20 | } 21 | 22 | // .avatar-parent-child is when you see a small avatar at the bottom right 23 | // corner of a larger avatar. 24 | // 25 | // No Styleguide version 26 | .avatar-parent-child { 27 | position: relative; 28 | } 29 | 30 | .avatar-child { 31 | position: absolute; 32 | right: -15%; 33 | bottom: -9%; 34 | background-color: #fff; // For transparent backgrounds 35 | border-radius: 2px; 36 | box-shadow: -2px -2px 0 rgba(255, 255, 255, 0.8); 37 | } 38 | -------------------------------------------------------------------------------- /app/bower_components/primer-css/scss/_base.scss: -------------------------------------------------------------------------------- 1 | * { 2 | box-sizing: border-box; 3 | } 4 | 5 | input, 6 | select, 7 | textarea, 8 | button { 9 | font: #{$body-font-size}/1.4 $body-font; 10 | } 11 | 12 | body { 13 | font: #{$body-font-size}/1.4 $body-font; 14 | color: $brand-gray-dark; 15 | background-color: #fff; 16 | } 17 | 18 | a { 19 | color: $brand-blue; 20 | text-decoration: none; 21 | 22 | &:hover, 23 | &:active { 24 | text-decoration: underline; 25 | } 26 | } 27 | 28 | // Horizontal lines 29 | // 30 | // TODO-MDO: Remove `.rule` from everywhere and replace with `
`s 31 | hr, 32 | .rule { 33 | height: 0; 34 | margin: 15px 0; 35 | overflow: hidden; 36 | background: transparent; 37 | border: 0; 38 | border-bottom: 1px solid #ddd; 39 | @include clearfix(); 40 | } 41 | -------------------------------------------------------------------------------- /app/bower_components/primer-css/scss/_blankslate.scss: -------------------------------------------------------------------------------- 1 | .blankslate { 2 | position: relative; 3 | padding: 30px; 4 | text-align: center; 5 | background-color: #fafafa; 6 | border: 1px solid #e5e5e5; 7 | border-radius: 3px; 8 | box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.05); 9 | 10 | &.clean-background { 11 | background: none; 12 | border: 0; 13 | box-shadow: none; 14 | } 15 | 16 | &.capped { 17 | border-radius: 0 0 3px 3px; 18 | } 19 | 20 | &.spacious { 21 | padding: 100px 60px 120px; 22 | } 23 | 24 | &.has-fixed-width { 25 | width: 485px; 26 | margin: 0 auto; 27 | } 28 | 29 | &.large-format { 30 | h3 { 31 | margin: 0.75em 0; 32 | font-size: 20px; 33 | } 34 | 35 | p { 36 | font-size: 16px; 37 | 38 | &.has-fixed-width { 39 | width: 540px; 40 | margin: 0 auto; 41 | text-align: left; 42 | } 43 | } 44 | 45 | .mega-octicon { 46 | width: 40px; 47 | height: 40px; 48 | font-size: 40px; 49 | color: #aaa; 50 | } 51 | 52 | .octicon-inbox { 53 | font-size: 48px; 54 | line-height: 40px; 55 | } 56 | } 57 | 58 | code { 59 | padding: 2px 5px 3px; 60 | font-size: 14px; 61 | background: #fff; 62 | border: 1px solid #eee; 63 | border-radius: 3px; 64 | } 65 | 66 | > .mega-octicon { color: #aaa; } 67 | 68 | .mega-octicon + .mega-octicon { margin-left: 10px; } 69 | 70 | .tabnav + & { margin-top: 20px; } 71 | 72 | .context-loader.large-format-loader { padding-top: 50px; } 73 | } 74 | -------------------------------------------------------------------------------- /app/bower_components/primer-css/scss/_counter.scss: -------------------------------------------------------------------------------- 1 | .counter { 2 | display: inline-block; 3 | padding: 2px 5px; 4 | font-size: 11px; 5 | font-weight: bold; 6 | line-height: 1; 7 | color: #666; 8 | background-color: #eee; 9 | border-radius: 20px; 10 | } 11 | -------------------------------------------------------------------------------- /app/bower_components/primer-css/scss/_filter-list.scss: -------------------------------------------------------------------------------- 1 | // Filters list 2 | // 3 | // A vertical list of filters. 4 | .filter-list { 5 | list-style-type: none; 6 | 7 | &.small .filter-item { 8 | padding: 4px 10px; 9 | margin: 0 0 2px; 10 | font-size: 12px; 11 | } 12 | 13 | &.pjax-active .filter-item { 14 | color: $brand-gray; 15 | background-color: transparent; 16 | 17 | &.pjax-active { 18 | color: #fff; 19 | background-color: $brand-blue; 20 | } 21 | } 22 | } 23 | 24 | .filter-item { 25 | position: relative; 26 | display: block; 27 | padding: 8px 10px; 28 | margin-bottom: 5px; 29 | overflow: hidden; 30 | font-size: 14px; 31 | color: $brand-gray; 32 | text-decoration: none; 33 | text-overflow: ellipsis; 34 | white-space: nowrap; 35 | cursor: pointer; 36 | border-radius: 3px; 37 | 38 | &:hover { 39 | text-decoration: none; 40 | background-color: #eee; 41 | } 42 | 43 | &.selected { 44 | color: #fff; 45 | background-color: $brand-blue; 46 | 47 | .octicon-remove-close { 48 | float: right; 49 | opacity: 0.8; 50 | } 51 | } 52 | 53 | .count { 54 | float: right; 55 | font-weight: bold; 56 | } 57 | 58 | .bar { 59 | position: absolute; 60 | top: 2px; 61 | right: 0; 62 | bottom: 2px; 63 | z-index: -1; 64 | display: inline-block; 65 | background-color: #f1f1f1; 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /app/bower_components/primer-css/scss/_flex-table.scss: -------------------------------------------------------------------------------- 1 | // Flex table is a module for creating dynamically resizable elements that 2 | // always sit on the same horizontal line (e.g., they never wrap). Using 3 | // tables means it's cross browser friendly. 4 | 5 | .flex-table { 6 | display: table; 7 | } 8 | 9 | // Place this on every "cell" 10 | .flex-table-item { 11 | display: table-cell; 12 | width: 1%; 13 | white-space: nowrap; 14 | vertical-align: middle; 15 | } 16 | 17 | // Place this on the largest or most important "cell" 18 | .flex-table-item-primary { 19 | width: 99%; 20 | } 21 | -------------------------------------------------------------------------------- /app/bower_components/primer-css/scss/_layout.scss: -------------------------------------------------------------------------------- 1 | // Fixed-width, centered column for site content. 2 | .container { 3 | width: $container-width; 4 | margin-right: auto; 5 | margin-left: auto; 6 | @include clearfix; 7 | } 8 | 9 | // Grid system 10 | // 11 | // Create rows with `.columns` to clear the floated columns and outdent the 12 | // padding on `.column`s with negative margin for alignment. 13 | 14 | .columns { 15 | margin-right: -$grid-gutter; 16 | margin-left: -$grid-gutter; 17 | @include clearfix; 18 | } 19 | 20 | // Base class for every column (requires a column width from below) 21 | .column { 22 | float: left; 23 | padding-right: $grid-gutter; 24 | padding-left: $grid-gutter; 25 | } 26 | 27 | // Column widths 28 | .one-third { 29 | width: 33.333333%; 30 | } 31 | 32 | .two-thirds { 33 | width: 66.666667%; 34 | } 35 | 36 | .one-fourth { 37 | width: 25%; 38 | } 39 | 40 | .one-half { 41 | width: 50%; 42 | } 43 | 44 | .three-fourths { 45 | width: 75%; 46 | } 47 | 48 | .one-fifth { 49 | width: 20%; 50 | } 51 | 52 | .four-fifths { 53 | width: 80%; 54 | } 55 | 56 | // Single column hack 57 | .single-column { 58 | padding-right: $grid-gutter; 59 | padding-left: $grid-gutter; 60 | } 61 | 62 | // Equal width columns via table sorcery. 63 | .table-column { 64 | display: table-cell; 65 | width: 1%; 66 | padding-right: $grid-gutter; 67 | padding-left: $grid-gutter; 68 | vertical-align: top; 69 | } 70 | -------------------------------------------------------------------------------- /app/bower_components/primer-css/scss/_menu.scss: -------------------------------------------------------------------------------- 1 | // Side menu 2 | // 3 | // A menu on the side of a page, defaults to left side. e.g. github.com/about 4 | 5 | .menu { 6 | margin-bottom: 15px; 7 | list-style: none; 8 | background-color: #fff; 9 | border: 1px solid #d8d8d8; 10 | border-radius: 3px; 11 | } 12 | 13 | .menu-item { 14 | position: relative; 15 | display: block; 16 | padding: 8px 10px; 17 | text-shadow: 0 1px 0 #fff; 18 | border-bottom: 1px solid #eee; 19 | 20 | &:first-child { 21 | border-top: 0; 22 | border-top-right-radius: 2px; 23 | border-top-left-radius: 2px; 24 | 25 | &:before { border-top-left-radius: 2px; } 26 | } 27 | 28 | &:last-child { 29 | border-bottom: 0; 30 | border-bottom-right-radius: 2px; 31 | border-bottom-left-radius: 2px; 32 | 33 | &:before { border-bottom-left-radius: 2px; } 34 | } 35 | 36 | &:hover { 37 | text-decoration: none; 38 | background-color: #f9f9f9; 39 | } 40 | 41 | &.selected { 42 | font-weight: bold; 43 | color: #222; 44 | cursor: default; 45 | background-color: #fff; 46 | 47 | &:before { 48 | position: absolute; 49 | top: 0; 50 | left: 0; 51 | bottom: 0; 52 | width: 2px; 53 | content: ""; 54 | background-color: #d26911; 55 | } 56 | } 57 | 58 | .octicon { 59 | margin-right: 5px; 60 | width: 16px; 61 | color: $brand-gray-dark; 62 | text-align: center; 63 | } 64 | 65 | .counter { 66 | float: right; 67 | margin-left: 5px; 68 | } 69 | 70 | .menu-warning { 71 | float: right; 72 | color: #d26911; 73 | } 74 | 75 | .avatar { 76 | float: left; 77 | margin-right: 5px; 78 | } 79 | 80 | &.alert { 81 | .counter { 82 | color: $brand-red; 83 | } 84 | } 85 | } 86 | 87 | .menu-heading { 88 | display: block; 89 | padding: 8px 10px; 90 | margin-top: 0; 91 | margin-bottom: 0; 92 | font-size: 13px; 93 | font-weight: bold; 94 | line-height: 20px; 95 | color: #555; 96 | background-color: #f7f7f7; 97 | border-bottom: 1px solid #eee; 98 | 99 | &:hover { 100 | text-decoration: none; 101 | } 102 | 103 | &:first-child { 104 | border-top-right-radius: 2px; 105 | border-top-left-radius: 2px; 106 | } 107 | 108 | &:last-child { 109 | border-bottom-right-radius: 2px; 110 | border-bottom-left-radius: 2px; 111 | border-bottom: 0; 112 | } 113 | } 114 | -------------------------------------------------------------------------------- /app/bower_components/primer-css/scss/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Clearfix 2 | // 3 | // Clears floats via mixin (avoid using as a class). 4 | 5 | @mixin clearfix { 6 | &:before { 7 | display: table; 8 | content: ""; 9 | } 10 | 11 | &:after { 12 | display: table; 13 | clear: both; 14 | content: ""; 15 | } 16 | } 17 | 18 | // Creates a linear gradient background, from top to bottom. 19 | // 20 | // $start - The color hex at the top. 21 | // $end - The color hex at the bottom. 22 | 23 | @mixin gradient($start: #fafafa, $end: #eaeaea) { 24 | @warn "Gradient mixin is deprecated."; 25 | // scss-lint:disable VendorPrefix 26 | background-color: $end; 27 | // FF 3.6+ 28 | background-image: -moz-linear-gradient($start, $end); 29 | // Safari 5.1+, Chrome 10+ 30 | background-image: -webkit-linear-gradient($start, $end); 31 | background-image: linear-gradient($start, $end); 32 | background-repeat: repeat-x; 33 | } 34 | 35 | // Text hiding for image based text replacement. 36 | // Higher performance than -9999px because it only renders 37 | // the size of the actual text, not a full 9999px box. 38 | 39 | @mixin hide-text() { 40 | overflow: hidden; 41 | text-indent: 100%; 42 | white-space: nowrap; 43 | } 44 | 45 | // Octicon bootstrap 46 | // 47 | // Quickly load the typography requirements for Octicons icon font. 48 | 49 | @mixin icon-bootstrap($size) { 50 | font: normal normal #{$size}/1 "octicons"; 51 | display: inline-block; 52 | text-decoration: none; 53 | -webkit-font-smoothing: antialiased; 54 | } 55 | -------------------------------------------------------------------------------- /app/bower_components/primer-css/scss/_states.scss: -------------------------------------------------------------------------------- 1 | // A rounded corner box containing a label "open" or "closed" 2 | // Without a state it is grey. 3 | // 4 | // open - green background 5 | // reopened - green background 6 | // closed - red background 7 | // merged - purple background 8 | // renamed - orange background 9 | // 10 | // No styleguide reference 11 | .state { 12 | display: inline-block; 13 | padding: 4px 8px; 14 | font-weight: bold; 15 | line-height: 20px; 16 | color: #fff; 17 | text-align: center; 18 | border-radius: 3px; 19 | background-color: #999; 20 | } 21 | 22 | .state-open, 23 | .state-proposed, 24 | .state-reopened { 25 | background-color: $status-open; 26 | } 27 | 28 | .state-merged { background-color: $status-merged; } 29 | 30 | .state-closed { background-color: $status-closed; } 31 | 32 | .state-renamed { background-color: $status-renamed; } 33 | -------------------------------------------------------------------------------- /app/bower_components/primer-css/scss/_tabnav.scss: -------------------------------------------------------------------------------- 1 | // Outer wrapper 2 | .tabnav { 3 | margin-top: 0; 4 | margin-bottom: 15px; 5 | border-bottom: 1px solid #ddd; 6 | 7 | .counter { 8 | margin-left: 5px; 9 | } 10 | } 11 | 12 | .tabnav-tabs { 13 | margin-bottom: -1px; 14 | } 15 | 16 | .tabnav-tab { 17 | display: inline-block; 18 | padding: 8px 12px; 19 | font-size: 14px; 20 | line-height: 20px; 21 | color: #666; 22 | text-decoration: none; 23 | border: 1px solid transparent; 24 | border-bottom: 0; 25 | 26 | &.selected { 27 | color: #333; 28 | background-color: #fff; 29 | border-color: #ddd; 30 | border-radius: 3px 3px 0 0; 31 | } 32 | 33 | &:hover { text-decoration: none; } 34 | } 35 | 36 | // Tabnav extras 37 | // 38 | // Tabnav extras are non-tab elements that sit in the tabnav. Usually they're 39 | // inline text or links. 40 | 41 | .tabnav-extra { 42 | display: inline-block; 43 | padding-top: 10px; 44 | margin-left: 10px; 45 | font-size: 12px; 46 | color: #666; 47 | 48 | > .octicon { 49 | margin-right: 2px; 50 | } 51 | } 52 | 53 | a.tabnav-extra:hover { 54 | color: $brand-blue; 55 | text-decoration: none; 56 | } 57 | 58 | // Tabnav buttons 59 | // 60 | // For when there are multiple buttons, space them out appropriately. Requires 61 | // the buttons to be floated or inline-block. 62 | 63 | .tabnav-btn { 64 | margin-left: 10px; 65 | } 66 | -------------------------------------------------------------------------------- /app/bower_components/primer-css/scss/_truncate.scss: -------------------------------------------------------------------------------- 1 | // Truncate 2 | // 3 | // css-truncate will shorten text with an ellipsis. 4 | 5 | .css-truncate { 6 | // Truncate double target 7 | // 8 | // css-truncate will shorten text with an ellipsis. The maximum width 9 | // of the truncated text can be changed by overriding the max-width 10 | // of the .css-truncate-target 11 | &.css-truncate-target, 12 | .css-truncate-target { 13 | display: inline-block; 14 | max-width: 125px; 15 | overflow: hidden; 16 | text-overflow: ellipsis; 17 | white-space: nowrap; 18 | vertical-align: top; 19 | } 20 | 21 | &.expandable.zeroclipboard-is-hover .css-truncate-target, 22 | &.expandable.zeroclipboard-is-hover.css-truncate-target, 23 | &.expandable:hover .css-truncate-target, 24 | &.expandable:hover.css-truncate-target { 25 | max-width: 10000px !important; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/bower_components/primer-css/scss/_type.scss: -------------------------------------------------------------------------------- 1 | // Headings 2 | // -------------------------------------------------- 3 | 4 | h1, 5 | h2, 6 | h3, 7 | h4, 8 | h5, 9 | h6 { 10 | margin-top: 15px; 11 | margin-bottom: 15px; 12 | line-height: 1.1; 13 | } 14 | 15 | h1 { font-size: 30px; } 16 | h2 { font-size: 21px; } 17 | h3 { font-size: 16px; } 18 | h4 { font-size: 14px; } 19 | h5 { font-size: 12px; } 20 | h6 { font-size: 11px; } 21 | 22 | 23 | // Body text 24 | // -------------------------------------------------- 25 | 26 | small { 27 | font-size: 90%; 28 | } 29 | 30 | blockquote { 31 | margin: 0; 32 | } 33 | 34 | // Large leading paragraphs 35 | .lead { 36 | margin-bottom: 30px; 37 | font-size: 20px; 38 | font-weight: 300; 39 | color: #555; 40 | } 41 | 42 | // Text utilities 43 | .text-muted { color: $brand-gray; } 44 | .text-danger { color: $brand-red; } 45 | 46 | .text-emphasized { 47 | font-weight: bold; 48 | color: #333; 49 | } 50 | 51 | 52 | // Lists 53 | // -------------------------------------------------- 54 | 55 | ul, 56 | ol { 57 | padding: 0; 58 | margin-top: 0; 59 | margin-bottom: 0; 60 | } 61 | 62 | ol ol, 63 | ul ol { 64 | list-style-type: lower-roman; 65 | } 66 | 67 | ul ul ol, 68 | ul ol ol, 69 | ol ul ol, 70 | ol ol ol { 71 | list-style-type: lower-alpha; 72 | } 73 | 74 | dd { 75 | margin-left: 0; 76 | } 77 | 78 | 79 | // Code 80 | // -------------------------------------------------- 81 | 82 | tt, 83 | code { 84 | font-family: $mono-font; 85 | font-size: 12px; 86 | } 87 | 88 | pre { 89 | margin-top: 0; 90 | margin-bottom: 0; 91 | font: 12px $mono-font; 92 | } 93 | -------------------------------------------------------------------------------- /app/bower_components/primer-css/scss/_utility.scss: -------------------------------------------------------------------------------- 1 | // Clear floats 2 | .clearfix { 3 | @include clearfix; 4 | } 5 | 6 | // Floats 7 | .right { float: right; } 8 | 9 | .left { float: left; } 10 | 11 | 12 | // Layout 13 | 14 | // Centers content horizontally. Can be used inside or outside the grid. 15 | .centered { 16 | display: block; 17 | float: none; 18 | margin-left: auto; 19 | margin-right: auto; 20 | } 21 | 22 | 23 | // Text alignment 24 | .text-right { text-align: right; } 25 | 26 | .text-left { text-align: left; } 27 | 28 | .text-center { text-align: center; } 29 | 30 | 31 | // Text states 32 | .danger { color: #c00; } 33 | 34 | .mute { color: #000; } 35 | 36 | .text-diff-added { color: darken($brand-green, 10%); } 37 | 38 | .text-diff-deleted { color: $brand-red; } 39 | 40 | .text-open, 41 | .text-success { color: $status-open; } 42 | 43 | .text-closed { color: $status-closed; } 44 | 45 | .text-reverted { color: $status-reverted; } 46 | 47 | .text-merged { color: $status-merged; } 48 | 49 | .text-renamed { color: $status-renamed; } 50 | 51 | .text-pending { color: $status-pending; } 52 | 53 | .text-error, 54 | .text-failure { color: $brand-red; } 55 | 56 | 57 | // Muted link 58 | // 59 | // Have a link you need to be gray to start, and blue on hover? Use this. 60 | .muted-link { 61 | color: $brand-gray; 62 | 63 | &:hover { 64 | color: $brand-blue; 65 | text-decoration: none; 66 | } 67 | } 68 | 69 | // Misc 70 | .hidden { 71 | display: none; 72 | } 73 | 74 | .warning { 75 | padding: 0.5em; 76 | margin-bottom: 0.8em; 77 | font-weight: bold; 78 | background-color: #fffccc; 79 | } 80 | 81 | .error_box { 82 | padding: 1em; 83 | font-weight: bold; 84 | background-color: #ffebe8; 85 | border: 1px solid #dd3c10; 86 | } 87 | -------------------------------------------------------------------------------- /app/bower_components/primer-css/scss/_variables.scss: -------------------------------------------------------------------------------- 1 | $container-width: 980px !default; 2 | $grid-gutter: 10px !default; 3 | 4 | // Brand colors 5 | $brand-blue: #4078c0 !default; 6 | $brand-gray-light: #999 !default; 7 | $brand-gray: #767676 !default; 8 | $brand-gray-dark: #333 !default; 9 | $brand-green: #6cc644 !default; 10 | $brand-red: #bd2c00 !default; 11 | $brand-orange: #c9510c !default; 12 | $brand-purple: #6e5494 !default; 13 | 14 | // Font stack 15 | $body-font: Helvetica, arial, nimbussansl, liberationsans, freesans, clean, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol" !default; 16 | 17 | // The base body size 18 | $body-font-size: 13px !default; 19 | 20 | // Monospace font stack 21 | $mono-font: Consolas, "Liberation Mono", Menlo, Courier, monospace !default; 22 | 23 | // State indicators. 24 | $status-open: $brand-green; 25 | $status-closed: $brand-red; 26 | $status-reverted: $status-closed; 27 | $status-merged: $brand-purple; 28 | $status-renamed: #fffa5d; 29 | $status-pending: #cea61b; 30 | 31 | // Repository type colors 32 | $repo-private-text: #a1882b; 33 | $repo-private-bg: #fff9ea; 34 | $repo-private-icon: #e9dba5; 35 | -------------------------------------------------------------------------------- /app/bower_components/primer-css/scss/primer.scss: -------------------------------------------------------------------------------- 1 | /* 2 | * Primer 3 | * http://primercss.io 4 | * 5 | * Released under MIT license. Copyright 2015 GitHub, Inc. 6 | */ 7 | 8 | // Primer master file 9 | // 10 | // Imports all Primer files in their intended order for easy mass-inclusion. 11 | // Should you need specific files, you can easily use separate `@import`s. 12 | 13 | // Global requirements 14 | @import "variables"; 15 | @import "mixins"; 16 | 17 | // Basecoat 18 | @import "normalize"; 19 | @import "base"; 20 | @import "type"; 21 | @import "layout"; 22 | @import "forms"; 23 | @import "utility"; 24 | 25 | // Components 26 | @import "alerts"; 27 | @import "avatars"; 28 | @import "blankslate"; 29 | @import "counter"; 30 | @import "buttons"; 31 | @import "menu"; 32 | @import "tabnav"; 33 | @import "filter-list"; 34 | @import "states"; 35 | @import "tooltips"; 36 | 37 | // Utilities 38 | @import "flex-table"; 39 | @import "truncate"; 40 | -------------------------------------------------------------------------------- /app/bower_components/primer-markdown/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "primer-user-content", 3 | "keywords": [ 4 | "github", 5 | "markdown", 6 | "css" 7 | ], 8 | "main": [ 9 | "dist/github-markdown.css" 10 | ], 11 | "ignore": [ 12 | "**/.*", 13 | "*.js", 14 | "README.md", 15 | "Gruntfile.js", 16 | "package.json", 17 | "render-test.md" 18 | ], 19 | "homepage": "https://github.com/primer/markdown", 20 | "version": "2.1.7", 21 | "_release": "2.1.7", 22 | "_resolution": { 23 | "type": "version", 24 | "tag": "v2.1.7", 25 | "commit": "66c71cd395676b58fe3de587fb643eb0c11509d8" 26 | }, 27 | "_source": "https://github.com/primer/markdown.git", 28 | "_target": "2.1.7", 29 | "_originalSource": "https://github.com/primer/markdown.git" 30 | } -------------------------------------------------------------------------------- /app/bower_components/primer-markdown/LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 GitHub, Inc 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /app/bower_components/primer-markdown/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "primer-user-content", 3 | "keywords": [ 4 | "github", 5 | "markdown", 6 | "css" 7 | ], 8 | "main": [ 9 | "dist/github-markdown.css" 10 | ], 11 | "ignore": [ 12 | "**/.*", 13 | "*.js", 14 | "README.md", 15 | "Gruntfile.js", 16 | "package.json", 17 | "render-test.md" 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /app/bower_components/primer-markdown/components/user-content.scss: -------------------------------------------------------------------------------- 1 | @import "primer-user-content/components/markdown"; 2 | -------------------------------------------------------------------------------- /app/config.js: -------------------------------------------------------------------------------- 1 | var fs = require("fs"); 2 | var path = require("path"); 3 | var deepExtend = require('deep-extend'); 4 | 5 | 6 | var linuxHome = function () { 7 | return process.env.HOME || process.env.HOMEPATH || process.env.USERPROFILE; 8 | }; 9 | 10 | var osxHome = function () { 11 | return path.join(process.env.HOME, "Library/Preferences"); 12 | }; 13 | 14 | var home = function () { 15 | return process.env.APPDATA || (process.platform === "darwin" ? osxHome() : linuxHome()); 16 | }; 17 | 18 | 19 | var Config = function(argv) { 20 | var workSpaceDirectory = ""; 21 | var startupScriptName = ""; 22 | 23 | var dir = ""; 24 | if (argv[2]){ 25 | dir = argv[2]; 26 | workSpaceDirectory = path.dirname(argv[2]); 27 | startupScriptName = path.basename(argv[2]).toLowerCase(); 28 | } 29 | // the only build in default 30 | switch(startupScriptName) { 31 | case "_mocha": 32 | workSpaceDirectory = process.cwd(); 33 | break; 34 | } 35 | 36 | var defaults = { 37 | filename : null, 38 | settings : { 39 | v8:{}, 40 | app:{}, 41 | workSpaceDirectory : function() { 42 | var p = path.resolve(workSpaceDirectory); 43 | return p; 44 | } 45 | } 46 | }; 47 | var result = {}; 48 | 49 | var configFilename = path.join(path.resolve(path.dirname(dir)), ".iron-node.js"); // full pathname 50 | if (!fs.existsSync(configFilename)){ 51 | configFilename = path.join(process.cwd(), path.resolve(path.dirname(dir)), ".iron-node.js"); // relative pathname 52 | } 53 | try{ 54 | configFilename = path.normalize(configFilename); 55 | if (!fs.existsSync(configFilename)){ 56 | configFilename = path.join( process.cwd(), ".iron-node.js"); // current working dir pathname 57 | } 58 | } catch (e){ 59 | configFilename = path.join( process.cwd(), ".iron-node.js"); // current working dir pathname 60 | } 61 | if (!fs.existsSync(configFilename)){ 62 | configFilename = path.join( home(), "iron-node", ".iron-node.js"); // global config pathname 63 | } 64 | if (fs.existsSync(configFilename)){ 65 | try{ 66 | result = { 67 | filename : configFilename, 68 | settings : require(configFilename) 69 | }; 70 | } catch(e){ 71 | console.error(e); 72 | } 73 | } 74 | 75 | 76 | var cfg = deepExtend(defaults, result); 77 | return cfg; 78 | }; 79 | 80 | module.exports = Config; -------------------------------------------------------------------------------- /app/devtools-extension/background.js: -------------------------------------------------------------------------------- 1 | // Chrome automatically creates a background.html page for this to execute. 2 | // This can access the inspected page via executeScript 3 | // 4 | // Can use: 5 | // chrome.tabs.* 6 | // chrome.extension.* 7 | 8 | 9 | 10 | chrome.extension.onConnect.addListener(function (port) { 11 | 12 | var extensionListener = function (message, sender, sendResponse) { 13 | 14 | if(message.tabId && message.content) { 15 | 16 | //Evaluate script in inspectedPage 17 | if(message.action === 'code') { 18 | chrome.tabs.executeScript(message.tabId, {code: message.content}); 19 | 20 | //Attach script to inspectedPage 21 | } else if(message.action === 'script') { 22 | chrome.tabs.executeScript(message.tabId, {file: message.content}); 23 | 24 | //Pass message to inspectedPage 25 | } else { 26 | chrome.tabs.sendMessage(message.tabId, message, sendResponse); 27 | } 28 | 29 | // This accepts messages from the inspectedPage and 30 | // sends them to the panel 31 | } else { 32 | port.postMessage(message); 33 | } 34 | sendResponse(message); 35 | } 36 | 37 | // Listens to messages sent from the panel 38 | chrome.extension.onMessage.addListener(extensionListener); 39 | 40 | port.onDisconnect.addListener(function(port) { 41 | chrome.extension.onMessage.removeListener(extensionListener); 42 | }); 43 | 44 | // port.onMessage.addListener(function (message) { 45 | // port.postMessage(message); 46 | // }); 47 | 48 | }); 49 | chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { 50 | console.log(request, sender, sendResponse); 51 | return true; 52 | }); 53 | 54 | chrome.commands.onCommand.addListener(function(command) { 55 | console.log(command); 56 | }); 57 | -------------------------------------------------------------------------------- /app/devtools-extension/devtools.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/devtools-extension/devtools.js: -------------------------------------------------------------------------------- 1 | // Can use 2 | // chrome.devtools.* 3 | // chrome.extension.* 4 | 5 | // Create a tab in the devtools area 6 | chrome.devtools.panels.create("ironNode", "icon.png", "panel.html", function(panel) {}); 7 | 8 | 9 | 10 | function doc_keyUp(e) { 11 | alert("a") 12 | // this would test for whichever key is 40 and the ctrl key at the same time 13 | if (e.ctrlKey && e.keyCode == 65) { 14 | // call your function to do the thing 15 | pauseSound(); 16 | } 17 | } 18 | 19 | document.addEventListener('keyup', doc_keyUp, false); -------------------------------------------------------------------------------- /app/devtools-extension/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s-a/iron-node/3d4d254524216acb36f1731458aaca0d3f4e4356/app/devtools-extension/icon.png -------------------------------------------------------------------------------- /app/devtools-extension/inserted-script.js: -------------------------------------------------------------------------------- 1 | // This is included and executed in the inspected page 2 | function inserted() { 3 | console.log('External script attached'); 4 | } 5 | inserted(); -------------------------------------------------------------------------------- /app/devtools-extension/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ironNodeDevTools", 3 | "version": "0.1", 4 | "description": "ironNodeDevTools", 5 | "devtools_page": "devtools.html", 6 | "background": { 7 | "scripts": [ 8 | "background.js" 9 | ] 10 | }, 11 | "permissions": [ 12 | "tabs", 13 | "activeTab", 14 | "http://*/*", 15 | "https://*/*" 16 | ], 17 | "commands": { 18 | "toggle-feature-foo": { 19 | "suggested_key": { 20 | "default": "Alt+Y", 21 | "mac": "Command+Shift+Y" 22 | }, 23 | "description": "Toggle feature foo" 24 | }, 25 | "_execute_browser_action": { 26 | "suggested_key": { 27 | "windows": "Ctrl+D", 28 | "mac": "Command+Shift+Y", 29 | "chromeos": "Ctrl+Shift+U", 30 | "linux": "Ctrl+Shift+J" 31 | } 32 | }, 33 | "_execute_page_action": { 34 | "suggested_key": { 35 | "default": "Ctrl+Shift+E", 36 | "windows": "Shift+P", 37 | "mac": "Alt+Shift+P" 38 | } 39 | } 40 | }, 41 | "manifest_version": 2 42 | } -------------------------------------------------------------------------------- /app/devtools-extension/messageback-script.js: -------------------------------------------------------------------------------- 1 | // document.querySelector('button').addEventListener('click', function() { 2 | // chrome.extension.sendMessage({action: 'message', content:"Changed by page"}, function(message){}); 3 | // }); 4 | document.querySelector('button').addEventListener('click', function() { 5 | sendObjectToDevTools({content: "Changed by page"}); 6 | }); 7 | function sendObjectToDevTools(message) { 8 | // The callback here can be used to execute something on receipt 9 | chrome.extension.sendMessage(message, function(message){}); 10 | } -------------------------------------------------------------------------------- /app/devtools-extension/messaging.js: -------------------------------------------------------------------------------- 1 | // This creates and maintains the communication channel between 2 | // the inspectedPage and the dev tools panel. 3 | // 4 | // In this example, messages are JSON objects 5 | // { 6 | // action: ['code'|'script'|'message'], // What action to perform on the inspected page 7 | // content: [String|Path to script|Object], // data to be passed through 8 | // tabId: [Automatically added] 9 | // } 10 | 11 | (function createChannel() { 12 | //Create a port with background page for continous message communication 13 | var port = chrome.extension.connect({ 14 | name: "Sample Communication" //Given a Name 15 | }); 16 | 17 | // Listen to messages from the background page 18 | port.onMessage.addListener(function (message) { 19 | document.querySelector('#insertmessagebutton').innerHTML = message.content; 20 | // port.postMessage(message); 21 | }); 22 | 23 | }()); 24 | 25 | // This sends an object to the background page 26 | // where it can be relayed to the inspected page 27 | function sendObjectToInspectedPage(message) { 28 | message.tabId = chrome.devtools.inspectedWindow.tabId; 29 | chrome.extension.sendMessage(message); 30 | } -------------------------------------------------------------------------------- /app/devtools-extension/panel.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/devtools-extension/panel.js: -------------------------------------------------------------------------------- 1 | // This one acts in the context of the panel in the Dev Tools 2 | // 3 | // Can use 4 | // chrome.devtools.* 5 | // chrome.extension.* 6 | 7 | 8 | 9 | document.querySelector('#executescript').addEventListener('click', function() { 10 | sendObjectToInspectedPage({action: "code", content: "window.close();"}); 11 | }, false); 12 | 13 | document.querySelector('#insertscript').addEventListener('click', function() { 14 | sendObjectToInspectedPage({action: "script", content: "inserted-script.js"}); 15 | }, false); 16 | 17 | document.querySelector('#insertmessagebutton').addEventListener('click', function() { 18 | sendObjectToInspectedPage({action: "code", content: "document.body.innerHTML=''"}); 19 | sendObjectToInspectedPage({action: "script", content: "messageback-script.js"}); 20 | }, false); -------------------------------------------------------------------------------- /app/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s-a/iron-node/3d4d254524216acb36f1731458aaca0d3f4e4356/app/icon.png -------------------------------------------------------------------------------- /app/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 21 | 22 |
23 |
24 | 25 | 26 | 27 |

No DEBUG.md or README.md found.

28 |

Use it to share general project informations or detailed debug informations about your project with your co-workers.

29 |
30 |
31 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /app/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "iron-node-app", 3 | "title": "iron-node-app", 4 | "description": "iron-node-app", 5 | "version": "0.0.1", 6 | "author": "Stephan Ahlf ", 7 | "keywords": [], 8 | "license": "MIT", 9 | "main": "index.js", 10 | "private": false, 11 | "scripts": {}, 12 | "dependencies": {}, 13 | "devDependencies": {} 14 | } 15 | -------------------------------------------------------------------------------- /app/require-custom-wrap.js: -------------------------------------------------------------------------------- 1 | var settings; 2 | var Module = require("module"); 3 | 4 | 5 | var isArray = function(ar) { 6 | return ar instanceof Array || Array.isArray(ar) || (ar && ar !== Object.prototype && isArray(ar.__proto__)); 7 | }; 8 | 9 | var newModuleWrap = function(script) { 10 | var nodeParms = ["exports", "require", "module", "__filename", "__dirname", "process", "global"]; 11 | if (settings.nodeModule.arguments && isArray(settings.nodeModule.arguments)){ 12 | for (var i = 0; i < settings.nodeModule.arguments.length; i++) { 13 | var parm = settings.nodeModule.arguments[i]; 14 | nodeParms.push(parm); 15 | } 16 | } 17 | 18 | var w = []; 19 | w.push("(function (" + nodeParms.join(", ") + ") { \n"); 20 | 21 | if(settings.nodeModule && settings.nodeModule.scriptInjection){ 22 | script = settings.nodeModule.scriptInjection + "\n" + script; 23 | } 24 | 25 | w.push("\n});"); 26 | 27 | return w[0] + script + w[1]; 28 | }; 29 | 30 | var ModedModule = function (ironNodeSettings) { 31 | settings = ironNodeSettings; 32 | console.log(settings); 33 | if (ironNodeSettings && ironNodeSettings.nodeModule){ 34 | (function(moduleWrapMethode) { 35 | Module.wrap = function(script) { 36 | return moduleWrapMethode(script); // Call the new wrapper function 37 | }; 38 | }(newModuleWrap)); // Pass original function to IIFE 39 | } 40 | }; 41 | 42 | module.exports = ModedModule; -------------------------------------------------------------------------------- /app/require.js: -------------------------------------------------------------------------------- 1 | //var fs = require("fs"); 2 | var fs = require("fs"); 3 | var path = require("path"); 4 | var NMP = require("nmp"); 5 | var nmp = new NMP(); 6 | var Module = require('module'); 7 | 8 | // keep a copy of original require function 9 | var _require = Module.prototype.require; 10 | 11 | 12 | var checkNodeModulesLevel = function(dir) { 13 | var result = -1; 14 | var p = dir; 15 | 16 | while( path.basename(p) !== "node_modules" ){ 17 | // can it go back? 18 | var newPath = path.join(p, ".."); 19 | if (newPath !== p){ 20 | p = newPath; 21 | result++; 22 | } else { 23 | break; 24 | } 25 | } 26 | 27 | return result; 28 | 29 | }; 30 | 31 | Module.prototype.require = function require(name) { 32 | var result = null; 33 | 34 | // test if native module should be loaded. 35 | if (path.extname(name).toLowerCase() === ".node" || fs.existsSync(name + ".node")){ 36 | console.groupCollapsed("ironNode require(\"" + name + "\")"); 37 | try{ 38 | var fn = path.basename(name); 39 | var fn2 = (path.isAbsolute(name) ? name : this.filename); 40 | var p = path.join(fn2, ".."); 41 | 42 | /*jump back to nearest node_modules*/ 43 | var nodeModulesLevel = checkNodeModulesLevel(fn2); 44 | if (nodeModulesLevel === -1){ 45 | throw "native+ fallback for `" + name + "` failed! You can try `iron-node --compile`"; 46 | } 47 | for (var lvl = 0; lvl < nodeModulesLevel-1; lvl++) { 48 | p = path.join(p, ".."); 49 | } 50 | p = path.join(p, "bin", nmp.versionString(), fn); 51 | 52 | console.warn("try native+ method `require(" + p + ");`"); 53 | result = _require.call(this, p); 54 | } catch(e) { 55 | console.error("error while `require(" + path.basename(name) + ");`", e); 56 | result = _require.call(this, name); 57 | } finally { 58 | if (result !== null){ 59 | console.info("success"); 60 | } 61 | console.groupEnd(); 62 | } 63 | } else { 64 | result = _require.call(this, name); 65 | } 66 | return result; 67 | }; 68 | -------------------------------------------------------------------------------- /app/src/css/app.css: -------------------------------------------------------------------------------- 1 | 2 | @font-face { 3 | font-family: "iron-node-regular"; 4 | src: url("iron-node-regular.ttf"); 5 | } 6 | 7 | body{ 8 | margin: 22px; 9 | } 10 | 11 | 12 | #logo{ 13 | font-family: iron-node-regular; 14 | font-size: 11px; 15 | padding: 0; 16 | margin: 0; 17 | display: inline-block; 18 | border-radius: 2px; 19 | border: solid 1px #0D0D0D; 20 | background-color: #4078c0; 21 | } 22 | 23 | .part1{ 24 | display: inline-block; 25 | padding-right: 3px; 26 | padding-left: 5px; 27 | background-color: #0D0D0D; 28 | } 29 | .part2{ 30 | display: inline-block; 31 | color:#0D0D0D; 32 | padding-left: 3px; 33 | padding-right: 5px; 34 | } 35 | 36 | #home-page{ 37 | float:right; 38 | margin-right: 22px; 39 | } 40 | 41 | #social-icons{ 42 | display: inline-block; 43 | margin-right: 22px; 44 | } 45 | .social-share-button{ 46 | width: 16px; 47 | height: 16px; 48 | margin-right: 3px; 49 | } 50 | .social-icon{ 51 | box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37); 52 | } 53 | .social-icon:hover{ 54 | box-shadow: 0 20px 40px 0 rgba(0, 0, 0, 0.3); 55 | } 56 | .social-icon:active{ 57 | box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.3); 58 | } 59 | .social-icon{ 60 | border-radius: 2px; 61 | } 62 | 63 | article{ 64 | box-sizing: border-box; 65 | height: 100%; 66 | overflow: auto; 67 | padding-top: 10px; 68 | padding-bottom: 40px; 69 | } 70 | 71 | 72 | footer { 73 | box-sizing: border-box; 74 | background: #DFDFDF; 75 | width: 100%; 76 | position: fixed; 77 | left: 0; 78 | bottom: 0; 79 | border-bottom:1px solid #A3A3A3; 80 | border-top:1px solid #A3A3A3; 81 | padding: 0; 82 | padding-top: 11px; 83 | padding-left: 11px; 84 | margin: 0; 85 | } 86 | 87 | .version-badge{ 88 | position: absolute; 89 | margin-top: -1px; 90 | margin-left: 10px; 91 | box-sizing: border-box; 92 | } -------------------------------------------------------------------------------- /app/src/css/iron-node-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s-a/iron-node/3d4d254524216acb36f1731458aaca0d3f4e4356/app/src/css/iron-node-regular.ttf -------------------------------------------------------------------------------- /app/src/js/look-at-this/look-at-this.css: -------------------------------------------------------------------------------- 1 | .social-icon-delicious{ 2 | background-position:0 0; 3 | background-color:#3274D1; 4 | } 5 | .social-icon-digg{ 6 | background-position:0 6.65%; 7 | background-color:#14589E; 8 | } 9 | .social-icon-email{ 10 | background-position:0 13.3%; 11 | background-color:#ccc; 12 | } 13 | .social-icon-facebook{ 14 | background-position:0 19.950000000000003%; 15 | background-color:#3B5998; 16 | } 17 | .social-icon-flattr{ 18 | background-position:0 26.6%; 19 | background-color:#F67C1A; 20 | } 21 | .social-icon-github{ 22 | background-position:0 33.25%; 23 | } 24 | .social-icon-googleplus{ 25 | background-position:0 39.9%; 26 | background-color:#D14836; 27 | } 28 | .social-icon-hackernews{ 29 | background-position:0 46.55%; 30 | background-color:#FF6600; 31 | } 32 | .social-icon-echojs{ 33 | background-position:0 53.199999999999996%; 34 | background-color:#AA0000; 35 | } 36 | .social-icon-linkedin{ 37 | background-position:0 59.849999999999994%; 38 | background-color:#007FB1; 39 | } 40 | .social-icon-pinterest{ 41 | background-position:0 66.5%; 42 | background-color:#CB2027; 43 | } 44 | .social-icon-reddit{ 45 | background-position:0 73.15%; 46 | background-color:#FF4500; 47 | } 48 | .social-icon-stumbleupon{ 49 | background-position:0 79.80000000000001%; 50 | background-color:#EB4924; 51 | } 52 | .social-icon-tumblr{ 53 | background-position:0 86.45000000000002%; 54 | background-color:#2C4762; 55 | } 56 | .social-icon-twitter{ 57 | background-position:0 93.10000000000002%; 58 | background-color:#00ACED; 59 | } 60 | .social-icon-xing{ 61 | background-position:0 99.75000000000003%; 62 | background-color:#006567; 63 | } 64 | .social-icon{ 65 | background-image: url("sprite__social-icon.png"); 66 | background-repeat: no-repeat; 67 | display: inline-block; 68 | background-size: cover; 69 | width:100%; 70 | height:100%; 71 | transition:all 0.1s ease-in-out; 72 | } 73 | 74 | .social-share-button{ 75 | display: inline-block; 76 | width: 32px; 77 | height: 32px; 78 | /*transition: width 0.4s ease-in, height 0.4s ease-in;*/ 79 | margin-right: 11px; 80 | margin-bottom: 11px; 81 | } -------------------------------------------------------------------------------- /app/src/js/look-at-this/sprite__social-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s-a/iron-node/3d4d254524216acb36f1731458aaca0d3f4e4356/app/src/js/look-at-this/sprite__social-icon.png -------------------------------------------------------------------------------- /app/update.js: -------------------------------------------------------------------------------- 1 | const {dialog} = require("electron"); 2 | var execute = function(cmd, done) { 3 | var exec = require("child_process").exec; 4 | exec(cmd, 5 | function (error, stdout, stderr) { 6 | console.log("CMD:", cmd); 7 | console.log(stdout); 8 | console.log(stderr); 9 | if (error === null) { 10 | done(stdout); 11 | } else { 12 | console.log("exec error: " + error); 13 | throw error; 14 | } 15 | }); 16 | }; 17 | 18 | var Update = function () { 19 | return this; 20 | }; 21 | 22 | Update.prototype.check = function(window) { 23 | dialog.showMessageBox(window, {type:"info", title:"ironNode Update check", message:"Stay tuned. This may take a few seconds.", detail:"", buttons: ["ok"]}); 24 | execute("npm outdated -g --depth=0 iron-node", function(str){ 25 | dialog.showMessageBox(window, {type:"info", title:"ironNode Update check done", message:str, detail:"", buttons: ["ok"]}); 26 | }); 27 | }; 28 | 29 | module.exports = Update; -------------------------------------------------------------------------------- /bin/run.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var electron = require("electron"); 3 | var proc = require("child_process"); 4 | var fs = require("fs"); 5 | var os = require('os'); 6 | var path = require("path"); 7 | 8 | var sep = path.sep; 9 | var userHome = os.homedir() + sep + '.iron-node'; 10 | function mkDirOnce (dirPath) { 11 | console.log('userhome ' + dirPath) 12 | try { 13 | fs.statSync(dirPath); 14 | console.log('exist') 15 | } catch(e) { 16 | try { 17 | fs.mkdirSync(dirPath); 18 | console.log('created') 19 | }catch(error){ 20 | console.log('error:' + error); 21 | } 22 | } 23 | } 24 | mkDirOnce(userHome); 25 | 26 | var args = [path.join(__dirname, "..", "app")]; 27 | for (var i = 2; i < process.argv.length; i++) { 28 | var arg = process.argv[i]; 29 | args.push(arg); 30 | } 31 | 32 | 33 | var onStdIn = function(done) { 34 | if( process.stdin.isTTY === true ){ 35 | done(); 36 | } 37 | 38 | var body = ""; 39 | process.stdin.on("data", function(chunk) { 40 | if (chunk){ 41 | body += chunk.toString(); 42 | } 43 | }); 44 | 45 | process.stdin.on("end", function() { 46 | done(body); 47 | }); 48 | }; 49 | 50 | onStdIn(function(stdin){ 51 | if (stdin){ 52 | var temporaryFilename = path.join(__dirname, "iron-node.piped-result.~mp.js"); 53 | fs.writeFileSync(temporaryFilename, stdin); 54 | args[1] = temporaryFilename; 55 | } 56 | 57 | fs.writeFileSync(path.join(userHome, "iron-node.env.json"), JSON.stringify(process.env, null, 4)); 58 | 59 | // spawn electron 60 | var _proc = proc.spawn(electron, args); 61 | 62 | _proc.on("close", function (code) { 63 | process.exit(code); 64 | }); 65 | }); -------------------------------------------------------------------------------- /docs/5f3c6a4c-45db-11e5-89d1-baa44f58f67e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s-a/iron-node/3d4d254524216acb36f1731458aaca0d3f4e4356/docs/5f3c6a4c-45db-11e5-89d1-baa44f58f67e.png -------------------------------------------------------------------------------- /docs/6a6f925a-45da-11e5-89e5-7378a7b7a359.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s-a/iron-node/3d4d254524216acb36f1731458aaca0d3f4e4356/docs/6a6f925a-45da-11e5-89e5-7378a7b7a359.png -------------------------------------------------------------------------------- /docs/CHANGE-ELECTRON-VERSION.md: -------------------------------------------------------------------------------- 1 | # Change electron-prebuilt version 2 | 3 | ```bash 4 | # find iron-node installation 5 | $ where iron-node; 6 | # -> C:\Users\sahlf\AppData\Roaming\npm\iron-node 7 | 8 | $ cd c:\Users\sahlf\AppData\Roaming\npm\node_modules\iron-node\; 9 | $ npm unstinall electron-prebuilt; 10 | $ npm install electron-prebuilt@YOUR_VERSION_NUMBER --save 11 | -------------------------------------------------------------------------------- /docs/CONFIGURATION.md: -------------------------------------------------------------------------------- 1 | # Local and global configuration 2 | 3 | Since v1.5.20 ironNode supports local and global configuration via a configuration setup file. 4 | A configuration is saved in a file called [.iron-node.js](/.iron-node.js). 5 | ironNode scans the directory of the given JavaScript file first (local). If not found the next try is in ironNode' s ```AppData``` folder (global). 6 | 7 | ## v8 flags 8 | You can setup the [v8-flags](https://github.com/thlorenz/v8-flags/blob/master/flags-0.11.md) at the ```v8``` section in [.iron-node.js](/.iron-node.js). 9 | 10 | ## Settings 11 | All available settings are described in the ***[example .iron-node.js configuration file](/.iron-node.js)*** 12 | 13 | 14 | 15 | ## How to find the AppData folder? 16 | ```bash 17 | # on Windows 18 | cd %APPDATA% 19 | 20 | # on Linux 21 | cd $XDG_CONFIG_HOME 22 | # or 23 | cd ~/.config; 24 | 25 | # on OS X 26 | cd ~/Library/Preferences; 27 | 28 | # create if not exists 29 | mkdir iron-node; 30 | 31 | # Finaly 32 | cd iron-node; 33 | ``` -------------------------------------------------------------------------------- /docs/DEBUG-NODEJS-COMMANDLINE-APPS.md: -------------------------------------------------------------------------------- 1 | # How to debug other Node.js command line applications like a Grunt task 2 | 3 | ironNode needs a JavaScript file as entry point for a debug session. 4 | So first of all you have to locate the global or local installation of the commandline app you want to use. 5 | 6 | Here we have a handy collection of scripts. You can simply copy and paste them into the ```scripts``` section of your ```package.json```. Feel free to :tada: contribute and add your scripts here! 7 | 8 | ## debug script calls 9 | 10 | ```javascript 11 | ... 12 | "scripts": { 13 | ... 14 | "debug-mocha": "iron-node node_modules/mocha/bin/_mocha", 15 | "debug-grunt": "iron-node node_modules/grunt-cli/bin/grunt build", 16 | "debug-gulp": "iron-node node_modules/gulp/bin/gulp.js", 17 | ... 18 | }, 19 | ... 20 | ``` 21 | 22 | Now it is easy to start a debug session using ```npm run ...```. 23 | 24 | ## usage 25 | 26 | ```bash 27 | $ cd your-project-path; 28 | $ npm run debug-mocha; 29 | ``` 30 | 31 | ## :warning: Heads Up 32 | 33 | Some command line apps may use native modules. Please read [How to use native modules?](/docs/NATIVE-MODULES.md). -------------------------------------------------------------------------------- /docs/FEATURES.md: -------------------------------------------------------------------------------- 1 | # ironNode Features 2 | People asked for a feature comparison table or want me to tell them why ironNode is "better" than other Node.js debúgging tools. This is not trivial because ironNode uses a different approach and it aims a more easy workflow. 3 | 4 | # ironNode is a debugger no more and no less. 5 | It does what you expect and it claims to do this with a higher performance than other debug tools in workflow and usage. 6 | ironNode have the powerful DevTools JavaScript debugger UI under the hood and it provides access to debugging features Chrome DevTools includes. 7 | 8 | ## Execution controls 9 | Continue, Step over, Step into, Step out, Toggle [conditional] breakpoints, Call Stack panel, Blackbox JavaScript files, Pause on Exceptions, Pause on Uncaught Exceptions. 10 | 11 | ## Interaction with paused breakpoints 12 | Inspect and edit scopes, variables and object properties, Live Editing, Exception tracking, Viewing exception stack trace and Console output inspection. 13 | 14 | #### More... and more. 15 | Detailed description about [javascript debugging](https://developer.chrome.com/devtools/docs/javascript-debugging). 16 | 17 | ## :yellow_heart: +Features 18 | ironNode have io.js under the hood. As a result of this it supports EcmaScript 6 (ES6 Harmony) out of the box without any precompilers. [Screenshot](http://s-a.github.io/iron-node/iron-node__es6__lg.jpg). 19 | Restart your project with ```ctrl+r``` shortcut. 20 | 21 | 22 | ## :sunglasses: Cool stuff 23 | ironNode does support themes. 24 | ironNode does not use WebSockets or something like this. (No connection lost messages or something like that). 25 | ironNode works independent of local node installation because it has its own. 26 | No too fast scripts to attach the debugger problems. 27 | No ```--debug-brk``` or other preperation necessary to start a debug session. 28 | No UI in a weird states behavior. 29 | NO UI doesn't load or doesn't work and refresh didn't help behavior 30 | No debugger takes a long time to start up behavior. 31 | 32 | ### :no_entry: Limitations 33 | Native modules need a recompilation against the current electron version. Please read ["How to use native modules?"](/docs/NATIVE-MODULES.md). 34 | As part of design ironNode does not support remote debugging, debugging of many processes (such as cluster). -------------------------------------------------------------------------------- /docs/MASTER-THE-BREAKPOINTS.md: -------------------------------------------------------------------------------- 1 | # Master the break-points 2 | There are 2 ways to declare a break point. 3 | 4 | ### The keyword debugger 5 | ### The break-point in DevTools GUI (```ctrl+b``` or ```right / left click``` on the line number in source code side bar). 6 | This one needs some attention. To set up a break point from within GUI the desired JavaScript needs to be loaded into memory first, so that it is available for selection. :warning: Heads up : After that there are 2 Versions available via ```ctrl+p``` 7 | The first one (mapped via ```autoAddWorkSpace```) is ready to edit and save from within DevTools. 8 | ![require](6a6f925a-45da-11e5-89e5-7378a7b7a359.png) 9 | 10 | The second one (loaded into memory) is awaiting custom [conditional] breakpoints and is always surrounded by the Node.js module scope (function (exports, require, module, __filename, __dirname) {});. 11 | ![require](5f3c6a4c-45db-11e5-89d1-baa44f58f67e.png) 12 | 13 | ## If you are not planing to use the editing features of DevTools... 14 | There is a way to disable the mapping via [Local and global configuration](CONFIGURATION.md) -------------------------------------------------------------------------------- /docs/METEOR-DEBUG-BUILD.md: -------------------------------------------------------------------------------- 1 | ```bash 2 | ## create a meteor build 3 | $ meteor build ../todos-build --debug --directory 4 | $ cd ../todos-build/bundle/programs/server 5 | $ npm install 6 | 7 | ## compile native modules 8 | $ cd c:\git\todos-build\bundle\ 9 | $ iron-node -c 10 | 11 | ## start a mongo db 12 | $ cd c:\git\ 13 | $ mkdir mongo 14 | $ mongod --dbpath c:\git\mongo --port 8001 15 | 16 | ## setup metor environment 17 | $ set MONGO_URL=mongodb://localhost:8001/your_db 18 | $ set ROOT_URL=http://localhost:3000 19 | $ set PORT=3000 20 | $ set BIND_IP=localhost 21 | 22 | ## start the project 23 | $ cd c:\git\todos-build\bundle\ 24 | $ iron-node main.js 25 | ``` -------------------------------------------------------------------------------- /docs/METEOR.md: -------------------------------------------------------------------------------- 1 | # How to use ironNode with [Meteor](https://www.meteor.com/)? 2 | ***Draft (need help to make this work)*** 3 | 4 | 5 | So far we are only able to debug meteor builds compiled with ```--debug``` . 6 | 7 | The following is what we want to do in future. Note this is a Windows example, but it should be easy for you to adapt for Linux and OS X. **Feel free to contribute to submit your notes for other platforms!** 8 | 9 | 10 | ## Find global meteor installation folder on your machine 11 | ```bash 12 | $ where meteor; 13 | # C:\Users\Stephan\AppData\Local\.meteor\meteor.bat 14 | ``` 15 | 16 | 17 | ## Compile all native modules used by meteor 18 | ```bash 19 | $ cd C:\Users\Stephan\AppData\Local\.meteor\packages; 20 | $ iron-node --compile 21 | ``` 22 | 23 | ## Create an alias for meteor as iron-meteor 24 | ```bash 25 | $ cd c:\Users\Stephan\AppData\Local\.meteor\; 26 | $ cp -rp meteor.bat iron-meteor.bat; 27 | ``` 28 | Edit iron-meteor.bat 29 | ~~"%~dp0\packages\meteor-tool\1.1.3\mt-os.windows.x86_32\meteor.bat" %*~~ 30 | "%~dp0\packages\meteor-tool\1.1.3\mt-os.windows.x86_32\iron-meteor.bat" %* 31 | 32 | ```bash 33 | $ cd c:\Users\Stephan\AppData\Local\.meteor\packages\meteor-tool\1.1.3\mt-os.windows.x86_32\; 34 | $ cp -rp meteor.bat iron-meteor.bat; 35 | ``` 36 | Edit iron-meteor.bat 37 | ~~"%~dp0\dev_bundle\bin\node.exe" "%~dp0\tools\main.js" %*~~ 38 | iron-node "%~dp0\tools\main.js" %* 39 | 40 | ## Start Meteor projects with ironNode instead of Meteor 41 | ```bash 42 | $ cd your-meteor-project; 43 | $ iron-meteor; 44 | ``` -------------------------------------------------------------------------------- /docs/NATIVE-MODULES.md: -------------------------------------------------------------------------------- 1 | # Native Node module compatibility 2 | 3 | > The native Node modules are supported by Electron, but since Electron is using a different V8 version from official Node, you have to manually specify the location of Electron's headers when building native modules. 4 | See https://github.com/atom/electron/blob/master/docs/tutorial/using-native-node-modules.md for more details. 5 | 6 | *ironNode uses [electron-recompile](https://github.com/s-a/electron-recompile) which aims to help to compile native modules for a specific electron version.* Normaly it depends on the Node.js module if you can manage different native versions at the same time. 7 | 8 | 9 | ## To make a long story short 10 | 11 | ### --compile (Compile all native modules in Node.js project) 12 | I implemented both [```electron-recompile```](https://github.com/s-a/electron-recompile) and [```Node Module Path```](https://github.com/s-a/nmp) to implement a "re-compile" feature. 13 | By ```calling iron-node --compile[=your-node-project-path]``` you can recompile all native modules in the ```node_modules``` subfolder or the current workking directory against the current installed iron-node v8 version. 14 | 15 | ### Extend require to search native modules respecting the current v8 version. 16 | If you ever get an error while loading native node modules you can activate an overwrite of the internal node [```require```](/../app/require.js) function. You can make use of ```native+``` option after you have re-compiled all native modules in your node project folder with ```iron-node --compile=```. *So far this option needs manual activation. May be it defaults to ```true``` in future. Once we have figured out that it is not dangerous :flushed:*. 17 | 18 | 19 | See [Local and global configuration](CONFIGURATION.md) to learn how to configure the [.iron-node.js](/.iron-node.js) configuration file. 20 | 21 | 22 | ![require](console-require.png) 23 | 24 | ## Dependencies 25 | - Install node.js 26 | - ```npm install --global --production windows-build-tools``` -------------------------------------------------------------------------------- /docs/PACKAGES.md: -------------------------------------------------------------------------------- 1 | # ironNode packages 2 | ironNode use [package.js](https://github.com/s-a/package.js) to open the software to plugin developers. 3 | If exists it scans the AppData directory for installed plugins. 4 | 5 | A list of plugins is available here: https://www.npmjs.com/browse/keyword/iron-node. 6 | 7 | To install a Plugin: 8 | 9 | ```bash 10 | # on Windows 11 | cd %APPDATA% 12 | 13 | # on Linux 14 | cd $XDG_CONFIG_HOME 15 | # or 16 | cd ~/.config; 17 | 18 | # on OS X 19 | cd ~/Library/Application Support; 20 | 21 | # create if not exists 22 | mkdir iron-node; 23 | 24 | # Finaly 25 | cd iron-node; 26 | npm install your-plugin; 27 | ``` 28 | 29 | ## For package developers. 30 | A ironNode package is identified by ```iron_node_package : true``` within package.json. 31 | 32 | If you need any events feel free to submit a PR or create an issue. 33 | 34 | ## Example package 35 | 36 | ### package.json 37 | ```javascript 38 | { 39 | "name": "iron-node-theme", 40 | "version": "1.0.0", 41 | "description": "", 42 | "main": "index.js", 43 | "iron_node_package": true, 44 | "scripts": { 45 | "test": "echo \"Error: no test specified\" && exit 1" 46 | }, 47 | "author": "Stephan Ahlf (https://github.com/s-a)", 48 | "license": "ISC" 49 | } 50 | ``` 51 | 52 | 53 | ### index.js 54 | ```javascript 55 | var MyPlugin = function() { 56 | this.init(); 57 | return this; 58 | }; 59 | 60 | 61 | MyPlugin.prototype.init = function() { 62 | var path = require("path"); 63 | 64 | // CSS injection 65 | var style = document.createElement("style"); 66 | style.setAttribute('type', 'text/css'); 67 | style.innerHTML = "body{background-color:yellow}"; 68 | window.document.head.appendChild(style); 69 | 70 | // external CSS file 71 | var style2 = document.createElement("link"); 72 | style2.setAttribute('rel', 'stylesheet'); 73 | style2.setAttribute('type', 'text/css'); 74 | style2.setAttribute('href', 'file://' + path.join(__dirname, "custom.css")); 75 | window.document.head.appendChild(style2); 76 | }; 77 | 78 | module.exports = MyPlugin; 79 | ``` 80 | 81 | ### custom.css 82 | ```css 83 | /*custom.css*/ 84 | body{ 85 | color:cyan; 86 | } 87 | ``` 88 | 89 | 90 | ![Console package log](console-package-log.png) -------------------------------------------------------------------------------- /docs/VERSION-DETAILS.md: -------------------------------------------------------------------------------- 1 | # ironNode Under The Hood 2 | 3 | 4 | Version details may change with forthcoming ironNode releases. To keep you up-to-date take a look at the console log. 5 | 6 | ![Version details](version-details.png) -------------------------------------------------------------------------------- /docs/console-package-log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s-a/iron-node/3d4d254524216acb36f1731458aaca0d3f4e4356/docs/console-package-log.png -------------------------------------------------------------------------------- /docs/console-require.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s-a/iron-node/3d4d254524216acb36f1731458aaca0d3f4e4356/docs/console-require.png -------------------------------------------------------------------------------- /docs/debug-piped-result-of-coffee-script.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s-a/iron-node/3d4d254524216acb36f1731458aaca0d3f4e4356/docs/debug-piped-result-of-coffee-script.jpg -------------------------------------------------------------------------------- /docs/iron-node-demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s-a/iron-node/3d4d254524216acb36f1731458aaca0d3f4e4356/docs/iron-node-demo.gif -------------------------------------------------------------------------------- /docs/supported-platforms.md: -------------------------------------------------------------------------------- 1 | # Supported Platforms 2 | 3 | Following platforms are supported by ironNode/Electron: 4 | 5 | Check out the latest version of this doc at -> https://github.com/atom/electron/blob/master/docs/tutorial/supported-platforms.md 6 | 7 | ### OS X 8 | 9 | Only 64bit binaries are provided for OS X, and the minimum OS X version 10 | supported is OS X 10.8. 11 | 12 | ### Windows 13 | 14 | Windows 7 and later are supported, older operating systems are not supported 15 | (and do not work). 16 | 17 | Both `x86` and `amd64` (x64) binaries are provided for Windows. Please note, the 18 | `ARM` version of Windows is not supported for now. 19 | 20 | ### Linux 21 | 22 | The prebuilt `ia32`(`i686`) and `x64`(`amd64`) binaries of Electron are built on 23 | Ubuntu 12.04, the `arm` binary is built against ARM v7 with hard-float ABI and 24 | NEON for Debian Wheezy. 25 | 26 | Whether the prebuilt binary can run on a distribution depends on whether the 27 | distribution includes the libraries that Electron is linked to on the building 28 | platform, so only Ubuntu 12.04 is guaranteed to work, but following platforms 29 | are also verified to be able to run the prebuilt binaries of Electron: 30 | 31 | * Ubuntu 12.04 and later 32 | * Fedora 21 33 | * Debian 8 34 | -------------------------------------------------------------------------------- /docs/version-details.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s-a/iron-node/3d4d254524216acb36f1731458aaca0d3f4e4356/docs/version-details.png -------------------------------------------------------------------------------- /font/d-lower.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 21 | 39 | 41 | 42 | 44 | image/svg+xml 45 | 47 | 48 | 49 | 50 | 51 | 55 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /font/e-lower.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 21 | 39 | 41 | 42 | 44 | image/svg+xml 45 | 47 | 48 | 49 | 50 | 51 | 55 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /font/i-lower.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 21 | 39 | 41 | 42 | 44 | image/svg+xml 45 | 47 | 48 | 49 | 50 | 54 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /font/i-upper.svg: -------------------------------------------------------------------------------- 1 | 2 | 13 | 15 | 17 | 18 | 20 | image/svg+xml 21 | 23 | 24 | 25 | 26 | 27 | 29 | 33 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /font/iron-node-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s-a/iron-node/3d4d254524216acb36f1731458aaca0d3f4e4356/font/iron-node-regular.ttf -------------------------------------------------------------------------------- /font/logo.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 27 | 28 | 29 | ironNode 30 | 31 | -------------------------------------------------------------------------------- /font/n-lower.svg: -------------------------------------------------------------------------------- 1 | 2 | 13 | 15 | 17 | 18 | 20 | image/svg+xml 21 | 23 | 24 | 25 | 26 | 27 | 29 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /font/n-upper.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 21 | 41 | 43 | 44 | 46 | image/svg+xml 47 | 49 | 50 | 51 | 52 | 53 | 57 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /font/o-lower.svg: -------------------------------------------------------------------------------- 1 | 2 | 13 | 15 | 17 | 18 | 20 | image/svg+xml 21 | 23 | 24 | 25 | 26 | 27 | 29 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /font/r-lower.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 21 | 39 | 41 | 42 | 44 | image/svg+xml 45 | 47 | 48 | 49 | 50 | 51 | 55 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /logo/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s-a/iron-node/3d4d254524216acb36f1731458aaca0d3f4e4356/logo/icon.png -------------------------------------------------------------------------------- /logo/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s-a/iron-node/3d4d254524216acb36f1731458aaca0d3f4e4356/logo/logo.png -------------------------------------------------------------------------------- /logo/logo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s-a/iron-node/3d4d254524216acb36f1731458aaca0d3f4e4356/logo/logo2.png -------------------------------------------------------------------------------- /logo/logo3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s-a/iron-node/3d4d254524216acb36f1731458aaca0d3f4e4356/logo/logo3.png -------------------------------------------------------------------------------- /logo/logo_sm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s-a/iron-node/3d4d254524216acb36f1731458aaca0d3f4e4356/logo/logo_sm.png -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "iron-node", 3 | "version": "3.0.23", 4 | "description": "Debug Node.js code on the fly with Chrome Developer Tools on Linux, Windows and OS X.", 5 | "main": "index.js", 6 | "bin": { 7 | "iron-node": "./bin/run.js" 8 | }, 9 | "preferGlobal": true, 10 | "scripts": { 11 | "start": "node bin/run.js", 12 | "mdlint": "rem node_modules/.bin/mdlint glob \"docs/*.md\"", 13 | "test": "node node_modules/mocha/bin/_mocha", 14 | "test2": "node bin/run.js ./../test.js", 15 | "changelog": "node node_modules/changelog/bin/changelog.js all --markdown > ./CHANGELOG.md", 16 | "dev": "node bin/run.js", 17 | "node-sass-test": "node_modules/.bin/electron ./app ..\\require\\node-sass.js", 18 | "pipe-test": "echo var i = 0;debugger; | node bin/run.js", 19 | "pipe-test-coffee": "coffee -p ./../require/app.coffee | node bin/run.js", 20 | "edge-test": "node bin/run.js ..\\require\\edge.js", 21 | "mocha-debug": "node_modules/.bin/electron ./app node_modules/mocha/bin/_mocha", 22 | "mocha-test": "node bin/run.js node_modules/mocha/bin/_mocha", 23 | "mocha-t": "iron-node node_modules/mocha/bin/_mocha", 24 | "test-notify": "node_modules/.bin/electron ./app ..\\require\\notify.js", 25 | "compiler": "node_modules\\.bin\\electron ./app --compile=c:\\git\\require\\", 26 | "err": "node bin/run.js ..\\require\\error.js", 27 | "bump": "npm version patch && git push && git push --tags && npm publish" 28 | }, 29 | "pre-commit": [ 30 | "test", 31 | "mdlint" 32 | ], 33 | "repository": { 34 | "type": "git", 35 | "url": "git+https://github.com/s-a/iron-node.git" 36 | }, 37 | "productName": "ironNode", 38 | "author": "Stephan Ahlf (https://github.com/s-a)", 39 | "license": "MIT", 40 | "bugs": { 41 | "url": "https://github.com/s-a/iron-node/issues" 42 | }, 43 | "homepage": "https://github.com/s-a/iron-node#readme", 44 | "dependencies": { 45 | "commander": "^2.9.0", 46 | "deep-extend": "^0.5.0", 47 | "electron": "^2.0.8", 48 | "electron-recompile": "^1.0.16", 49 | "markdown": "^0.5.0", 50 | "nmp": "^1.0.3", 51 | "package.js": "^1.1.3", 52 | "pretty-error": "^2.0.2", 53 | "syntax-error": "^1.1.6" 54 | }, 55 | "devDependencies": { 56 | "changelog": "^1.0.7", 57 | "eslint": "^4.4.1", 58 | "eslint-config-xo-space": "^0.16.0", 59 | "jshint": "^2.9.4", 60 | "mdlint": "^0.1.0", 61 | "mocha": "^3.5.0", 62 | "should": "^11.2.1" 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /screenshot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s-a/iron-node/3d4d254524216acb36f1731458aaca0d3f4e4356/screenshot.jpg -------------------------------------------------------------------------------- /test.js: -------------------------------------------------------------------------------- 1 | var s = 0; 2 | debugger; 3 | s =1; 4 | -------------------------------------------------------------------------------- /test/main.js: -------------------------------------------------------------------------------- 1 | var fs = require('fs'); 2 | var path = require('path'); 3 | require('should'); 4 | var jshint = require("jshint"); 5 | 6 | var jshintrcFilename = path.join(__dirname, "/../", ".jshintrc"); 7 | var jshintrc = JSON.parse(fs.readFileSync(jshintrcFilename)); 8 | 9 | var getLineEndingsStyle = function(fn){ 10 | var result = "unknown"; 11 | var styles = { 12 | 'unix': /[^\r]\n/, 13 | 'osx': /\r/, 14 | 'windows': /\r\n/ 15 | }; 16 | 17 | var text = fs.readFileSync(fn); 18 | for (var os in styles) { 19 | if (styles.hasOwnProperty(os)){ 20 | var regex = styles[os]; 21 | if(regex.test(text)){ 22 | result = os; 23 | } 24 | } 25 | } 26 | return result; 27 | } 28 | 29 | var processJsHint = function(fn) { 30 | var code = fs.readFileSync(fn).toString(); 31 | jshint.JSHINT(code, jshintrc); 32 | var data = jshint.JSHINT.data(); 33 | var errors = data.errors; 34 | return errors; 35 | }; 36 | 37 | var preProcessJsHint = function (fn) { 38 | return function(){ 39 | var report = processJsHint(fn); 40 | var success = (report === undefined); 41 | if (report){ 42 | console.log("JSHINT success:", success, report); 43 | } 44 | 45 | success.should.equal(true); 46 | } 47 | }; 48 | 49 | var javascriptFilesToTest = []; 50 | javascriptFilesToTest.push(path.join(__dirname, "..", "bin", "run.js")); 51 | javascriptFilesToTest.push(path.join(__dirname, "..", "app", "app.js")); 52 | javascriptFilesToTest.push(path.join(__dirname, "..", "app", "index.js")); 53 | javascriptFilesToTest.push(path.join(__dirname, "..", "app", "menu.js")); 54 | javascriptFilesToTest.push(path.join(__dirname, "..", "app", "require.js")); 55 | javascriptFilesToTest.push(path.join(__dirname, "..", "app", "config.js")); 56 | javascriptFilesToTest.push(path.join(__dirname, "main.js")); 57 | 58 | 59 | 60 | describe('unix-style', function(){ 61 | it('run.js', function(){ 62 | getLineEndingsStyle(path.join(__dirname, "..", "bin", "run.js")).should.equal("unix"); 63 | }); 64 | }); 65 | 66 | describe('jshint', function(){ 67 | for (var i = 0; i < javascriptFilesToTest.length; i++) { 68 | var fn = javascriptFilesToTest[i]; 69 | it('should pass jshint tests for ' + fn, preProcessJsHint(fn)); 70 | } 71 | }); --------------------------------------------------------------------------------