{"_id":"ti-inspector","_rev":"27-d007c232af6c9204acf978fa2770a88d","name":"ti-inspector","description":"Debug Appcelerator Titanium apps in Chrome DevTools","dist-tags":{"latest":"0.1.2"},"versions":{"0.0.1":{"name":"ti-inspector","version":"0.0.1","description":"Debug Appcelerator Titanium apps in Chrome DevTools","repository":"","keywords":["titanium","appcelerator","debugger","devtools"],"author":{"name":"Olivier Morandi"},"license":"MIT","dependencies":{"express":"3.X","underscore":"1.4.X","async":"0.1.X","websocket":"1.0.X","xml2js":"0.2.7","jade":"*","winston":"0.7.X"},"bin":{"ti-inspector":"bin/inspector.js"},"_id":"ti-inspector@0.0.1","dist":{"shasum":"b0e6517ff9a3b639cc65f918525071db30ea8404","tarball":"https://registry.npmjs.org/ti-inspector/-/ti-inspector-0.0.1.tgz","integrity":"sha512-N7jJTdi1ldhhtYa/wK+Sh3ctpk/xiVqyTJR2puXoHY+wkDdDMzpXeRkw6l7JGwvx65gynI4UBXUgyLrVpz2UhQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDKdINiHkIia184qoJ76sy61rUNW/dbWvUI6MEPgzUPzwIhAN6LeisZ9/hSzphbkEY+9dtI44z7SQMg/aCAqeMkuvsS"}]},"_from":".","_npmVersion":"1.2.14","_npmUser":{"name":"omorandi","email":"olivier.morandi@gmail.com"},"maintainers":[{"name":"omorandi","email":"olivier.morandi@gmail.com"}]},"0.0.2":{"name":"ti-inspector","version":"0.0.2","description":"Debug Appcelerator Titanium apps in Chrome DevTools","repository":"","keywords":["titanium","appcelerator","debugger","devtools"],"author":{"name":"Olivier Morandi"},"license":"MIT","dependencies":{"express":"3.X","underscore":"1.4.X","async":"0.1.X","websocket":"1.0.X","xml2js":"0.2.7","jade":"*","winston":"0.7.X","walk":"2.2.X"},"bin":{"ti-inspector":"bin/inspector.js"},"_id":"ti-inspector@0.0.2","dist":{"shasum":"16b41958206ae27bfe72064bd8740c1821b31123","tarball":"https://registry.npmjs.org/ti-inspector/-/ti-inspector-0.0.2.tgz","integrity":"sha512-Xk+yx2FQgJpyw57l91A+X/kMqf5T7pveoxpMC+a24oAgjd4O3ir6YUZ9dgeEtTglV0Xcpi3evJBdHNnfkK7l8g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGut/zdJ8auRIr9lQWbRWky9QtUYwRaLVuY3+AeN5atLAiEA/d6611Bv6+EBke2JZbk+51mwCs2o4ducnDazsLNLTiA="}]},"_from":".","_npmVersion":"1.2.14","_npmUser":{"name":"omorandi","email":"olivier.morandi@gmail.com"},"maintainers":[{"name":"omorandi","email":"olivier.morandi@gmail.com"}]},"0.0.3":{"name":"ti-inspector","version":"0.0.3","description":"Debug Appcelerator Titanium apps in Chrome DevTools","repository":"","keywords":["titanium","appcelerator","debugger","devtools"],"author":{"name":"Olivier Morandi"},"license":"MIT","dependencies":{"express":"3.X","underscore":"1.4.X","async":"0.1.X","websocket":"1.0.X","xml2js":"0.2.7","jade":"*","winston":"0.7.X","walk":"2.2.X"},"bin":{"ti-inspector":"bin/inspector.js"},"_id":"ti-inspector@0.0.3","dist":{"shasum":"6523b6cd36f30ca0ec238b8c8a385a726bdec04c","tarball":"https://registry.npmjs.org/ti-inspector/-/ti-inspector-0.0.3.tgz","integrity":"sha512-1HQY+ElCvIy5v/J7e0I6IAn/hlt4XQZZbz3j6c5hhpALJeVC2Ycxgdwkm8nBvLTBfvMQLRTeYj7jwZ8a1neglQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDonFJgirhgNt89B02tq5tPwake0Xc669eMnK8cSOJI7wIgHRDRaGgSxfss7/nsx0+lBEHhnYbT7sGYTebV+R0rsys="}]},"_from":".","_npmVersion":"1.2.14","_npmUser":{"name":"omorandi","email":"olivier.morandi@gmail.com"},"maintainers":[{"name":"omorandi","email":"olivier.morandi@gmail.com"}]},"0.0.4":{"name":"ti-inspector","version":"0.0.4","description":"Debug Appcelerator Titanium apps in Chrome DevTools","repository":"","keywords":["titanium","appcelerator","debugger","devtools"],"author":{"name":"Olivier Morandi"},"license":"MIT","dependencies":{"express":"3.X","underscore":"1.4.X","async":"0.1.X","websocket":"1.0.X","xml2js":"0.2.7","jade":"*","winston":"0.7.X","walk":"2.2.X"},"bin":{"ti-inspector":"bin/inspector.js"},"_id":"ti-inspector@0.0.4","dist":{"shasum":"70e50989aa187f2d450107f269b55974434edd89","tarball":"https://registry.npmjs.org/ti-inspector/-/ti-inspector-0.0.4.tgz","integrity":"sha512-RhxjruH4jbUgACpXS916dtBTJmqho2/TPzFIM5HZ282BEwLX7ejuxHZRTon9Xis5QtgNy+uiobm1wUaWrCu/9g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDahZFLcZ26Ua+SoymSf7V8n6ISsx4Sz/uHCMx3HyPeiAiAcmMg0LD1cdmjsawVJ1ImnJOTcD4pWhNN04Q87gBGuFg=="}]},"_from":".","_npmVersion":"1.3.9","_npmUser":{"name":"omorandi","email":"olivier.morandi@gmail.com"},"maintainers":[{"name":"omorandi","email":"olivier.morandi@gmail.com"}]},"0.0.5":{"name":"ti-inspector","version":"0.0.5","description":"Debug Appcelerator Titanium apps in Chrome DevTools","repository":"","keywords":["titanium","appcelerator","debugger","devtools"],"author":{"name":"Olivier Morandi"},"license":"MIT","dependencies":{"express":"3.X","underscore":"1.4.X","async":"0.1.X","websocket":"1.0.X","xml2js":"0.2.7","jade":"*","winston":"0.7.X","walk":"2.2.X"},"bin":{"ti-inspector":"bin/inspector.js"},"_id":"ti-inspector@0.0.5","dist":{"shasum":"e1eb6a061a6a4b225dd4d12433b6d98439a65e07","tarball":"https://registry.npmjs.org/ti-inspector/-/ti-inspector-0.0.5.tgz","integrity":"sha512-AbtHlPjm5P6fnJis6sL8dr1DOX3rLMPebbkbQQNpBZnJLKkqEe2kyzSIYg3F7iWzAEMn7Af+I957oG2MCWou6Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDq0qvuZn9D39ITNJcUUsdXppvfta6tgcJU759/eTxLoAiByTnbid45tZfePjUmNqHrgOrFwKh1AKaPyV77A0wdwzg=="}]},"_from":".","_npmVersion":"1.3.9","_npmUser":{"name":"omorandi","email":"olivier.morandi@gmail.com"},"maintainers":[{"name":"omorandi","email":"olivier.morandi@gmail.com"}]},"0.1.0":{"name":"ti-inspector","version":"0.1.0","description":"Debug Appcelerator Titanium apps in Chrome DevTools","repository":{"type":"git","url":"http://github.com/omorandi/TiInspector.git"},"keywords":["titanium","appcelerator","debugger","devtools"],"author":{"name":"Olivier Morandi"},"license":"MIT","dependencies":{"express":"3.X","underscore":"1.4.X","async":"0.1.X","websocket":"1.0.X","xml2js":"0.2.7","jade":"*","winston":"0.7.X","walk":"2.2.X"},"bin":{"ti-inspector":"bin/inspector.js"},"bugs":{"url":"https://github.com/omorandi/TiInspector/issues"},"homepage":"https://github.com/omorandi/TiInspector","_id":"ti-inspector@0.1.0","dist":{"shasum":"67e320e066564a57008a01de6449dccf84320315","tarball":"https://registry.npmjs.org/ti-inspector/-/ti-inspector-0.1.0.tgz","integrity":"sha512-vkSb8JyHgh0+i+g8plX59N3JPHHd4rHHTqLevtCVFyGLx6DOrgVUmiPgBYiotYKJ1secMl5PBwTspBuzTJohWg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICDmfrn+23Cp3eOgUk4cxme15yrh18N0VlxHHwmcw2wkAiBOxZGXbIGtKYJEGTSzvFwmgCqCoUcLZaGuYpFmSaEgsQ=="}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"omorandi","email":"olivier.morandi@gmail.com"},"maintainers":[{"name":"omorandi","email":"olivier.morandi@gmail.com"}]},"0.1.1":{"name":"ti-inspector","version":"0.1.1","description":"Debug Appcelerator Titanium apps in Chrome DevTools","repository":{"type":"git","url":"http://github.com/omorandi/TiInspector.git"},"keywords":["titanium","appcelerator","debugger","devtools"],"author":{"name":"Olivier Morandi"},"license":"MIT","dependencies":{"express":"3.X","underscore":"1.4.X","async":"0.1.X","websocket":"1.0.X","xml2js":"0.2.7","jade":"*","winston":"0.7.X","walk":"2.2.X"},"bin":{"ti-inspector":"bin/inspector.js"},"bugs":{"url":"https://github.com/omorandi/TiInspector/issues"},"homepage":"https://github.com/omorandi/TiInspector","_id":"ti-inspector@0.1.1","dist":{"shasum":"8dfa1c697217b8e025421e5770937f58f38b8f83","tarball":"https://registry.npmjs.org/ti-inspector/-/ti-inspector-0.1.1.tgz","integrity":"sha512-RiJdmWKzPOQOrMFaEACBkJo/YV2kTyQF1ZXO1nSD5mSCuxKnqDRfWPVy+Vd8UH6j5MQKoNrFUEentEPhEuyLKg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDvXtAarmrqY+LfC4C+lFhj0YN3GLayILt/4viGv/6tWwIhAPncdcs88e50rX1zr68LpBni2YEsarmPlVr51alzSPmn"}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"omorandi","email":"olivier.morandi@gmail.com"},"maintainers":[{"name":"omorandi","email":"olivier.morandi@gmail.com"}]},"0.1.2":{"name":"ti-inspector","version":"0.1.2","description":"Debug Appcelerator Titanium apps in Chrome DevTools","repository":{"type":"git","url":"http://github.com/omorandi/TiInspector.git"},"keywords":["titanium","appcelerator","debugger","devtools"],"author":{"name":"Olivier Morandi"},"license":"MIT","dependencies":{"express":"3.X","underscore":"1.4.X","async":"0.1.X","websocket":"1.0.X","xml2js":"0.2.7","jade":"*","winston":"0.7.X","walk":"2.2.X"},"devDependencies":{"jasmine-node":"1.14.X"},"scripts":{"test":"jasmine-node test"},"bin":{"ti-inspector":"bin/inspector.js"},"gitHead":"3264c857d65b05191441ac22a247d82d6bf9c943","bugs":{"url":"https://github.com/omorandi/TiInspector/issues"},"homepage":"https://github.com/omorandi/TiInspector","_id":"ti-inspector@0.1.2","_shasum":"43577504fe34bb8859d1a0eb25ebbbe620cade9d","_from":".","_npmVersion":"2.7.3","_nodeVersion":"0.10.32","_npmUser":{"name":"omorandi","email":"olivier.morandi@gmail.com"},"maintainers":[{"name":"omorandi","email":"olivier.morandi@gmail.com"}],"dist":{"shasum":"43577504fe34bb8859d1a0eb25ebbbe620cade9d","tarball":"https://registry.npmjs.org/ti-inspector/-/ti-inspector-0.1.2.tgz","integrity":"sha512-99Bz0GzxIIe+Ojm9AFATzXkkwU3Z3KQ1lsYVPESV5aGVeYX40zSUU/9XvoJqU1Qzm9ge2ovmbkxHjIx1XwwMzQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEr6puTK+0SloW7dOUSDtShCly84ZuCSZUPuum5fnPKiAiB+vyc/AhOhDZIp/0TXjKcuefKEY4So+x1v8R9LCLbTCg=="}]}}},"readme":"#Ti Inspector\n\nTi Inspector allows debugging Appcelerator Titanium applications in the Chrome DevTools web interface.\n\nThe tool acts as a gateway by translating commands and messages between the [Chrome DevTools Debugging Protocol](https://developers.google.com/chrome-developer-tools/docs/protocol/1.0/) and the [Titanium Debugger Protocol](http://docs.appcelerator.com/titanium/latest/#!/guide/Debugger_Protocol) (and vice-versa).\n\nCurrently only the iOS target platform is supported.\n\n##Motivation\nSince my Titanium development workflow mainly revolves around Sublime Text and the CLI, and firing up Titanium Studio for tracking down bugs in the integrated debugger is most of the time a painfully slow activity (start the IDE, rebuild for debugging, etc.), I wanted a more agile way to fire up a JavaScript debug session. Moreover, when debugging native modules in Xcode, sometimes it would be nice to have a view on both sides (JS and native) of the code.\n\nYou can find a more detailed post and a short demo [here](http://titaniumninja.com/debugging-titanium-apps-with-chrome-devtools/)\n\n##NOTE - Titanium SDK 3.5.X\n\nCurrently Ti Inspector doesn't work correctly with Ti SDK 3.5.X.\nSince the 3.5.0 release, Titanium underwent major changes regarding the JavaScriptCore engine and its debugger library (`libti_ios_debugger.a`).\nIn particular, the currently known issues are:\n* [Does not recognize nor stops on breakpoints](https://github.com/omorandi/TiInspector/issues/25)\n* [Ti SDK 3.5.X: sudden app termination](https://github.com/omorandi/TiInspector/issues/26)\n\nThe former is also seen in the Ti Studio debugger. Follow and watch [https://jira.appcelerator.org/browse/TIMOB-18616](https://jira.appcelerator.org/browse/TIMOB-18616) for additional info.\n\nWhile these issues are being worked on, as a temporary solution, Ti Inspector can be used by building the app with Ti SDK 3.4.1.GA during debugging\n\n##Install\n\nFor running Ti Inspector a working [node.js](http://nodejs.org/) setup is required.\n\nThe Ti Inspector module can be installed through npm with\n\n~~~\n    $ [sudo] npm install -g ti-inspector\n~~~\n\n\n##Dev install\nIn alternative, if you like to stay on the edge, you can pull the code from github and use `npm link`:\n\n~~~\n  $ git clone git@github.com:omorandi/TiInspector.git\n  $ cd TiInspector\n  $ npm install\n  $ [sudo] npm link\n~~~\n\n##Using Ti Inspector\n\nThe `ti-inspector` script can be invoked from the command line with the following arguments:\n\n~~~\n    ti-inspector [Options] [TiProjectDir]\n\n    options:\n       --web-host=[host]      host for the inspector server (default localhost)\n       --web-port=[port]      port for the inspector server (default 8080)\n       --debugger-port=[port] port for the Titanium debug server (default 8999)\n\n    TiProjectDir:\n       Directory containing a Titanium app project.\n       If not specified, the current directory is used.\n~~~\n\nSupposing you have a terminal open on a directory containing the Titanium project you want to debug you can simply issue:\n\n~~~\n    $ ti-inspector\n~~~\n\nwhich runs the script with the default argument values, then point the browser to http://localhost:8080 where a web page for the current project is shown, telling that no active debugging session is present.\n\n![](./screenshots/web-no-sessions.png)\n\nIn order to start the Titanium application for debugging it, you have to use the Titanium CLI `build` command, using the `--debug-host` hidden option. For example:\n\n~~~\n    $ titanium build -p iphone --debug-host localhost:8999\n~~~\n\nThe `--debug-host` argument represents the `host:port` pair where the debug server is listening. This is normally provided by Titanium Studio when the project is started in debug mode, however in our case Ti Inspector will act as a debug server (listening by default on tcp port 8999) for the running app.\n\nOnce the app is running in the iOS Simulator, only the splash screen will be visible, while in the page previously opened in the browser will list the current debug session:\n\n\n![](./screenshots/web-active-session.png)\n\n\nBy clicking on it, the DevTools page will be open, showing the `app.js` file source code.\n\n![](./screenshots/debug-session.png)\n\nFrom there on, you can debug your application by setting breakpoints, stepping through code, watching variables, or evaluating expressions in the console panel, etc.\n\n\n## Features\n\n* Breakpoints: setting/removing breakpoints, conditional breakpoints\n* Call stack inspection (when execution is suspended)\n* Variables and objects inspection\n* Watch expressions\n* Step operations (step over, step-into, step-out)\n* Console logging\n* Expression evaluation in the console (only when execution is suspended)\n* Suspend on exceptions (disabled by default)\n* Direct source editing and CMD-S for saving changes in your original JS files\n\n## Limitations\n\n* Android is not currently supported: supporting Android will mean implementing the [V8 remote debugging protocol](https://code.google.com/p/v8/wiki/DebuggerProtocol) in Ti Inspector.\n* On device debugging is not supported since it's treated in a special way by the CLI and Studio, though there exist some hackish ways for enabling it in a semi-manual way\n* Expressions can only be evaluated when the execution is suspended\n* TiAlloy (and any other, e.g. CoffeeScript) source mapping is not supported\n* Multiple contexts (e.g. Ti.UI.Windows created through the `url` property) are not correctly handled\n\n## Themes FTW (available from V. 0.0.3) - NOTE: NOT WORKING SINCE v0.1.2\n\nThe DevTools app styling can be customized quite easily and some open source custom css are available from [http://devthemez.com/themes/chrome-developer-tools](http://devthemez.com/themes/chrome-developer-tools).\nThese can also be used with Ti Inspector, which already includes some in the `public/themes/` directory.\n\n### Adding a custom Theme\nIf you don't like the already available themes, you can download one from [http://devthemez.com/themes/chrome-developer-tools](http://devthemez.com/themes/chrome-developer-tools), then:\n* locate the directory where Ti Inspector has been installed by npm, which is probably `/usr/local/lib/node_modules/ti-inspector`. Let's call it `$INSTALL_DIR`\n* Copy the downloaded css file to `$INSTALL_DIR/public/themes`\n* set the `TiInspector.preferences.devtools_theme` property in the `$INSTALL_DIR/public/preferences.js`  file  accordingly\n* start Ti Inspector, or simply reload the inspector panel if already running, and enjoy your new theme\n\n\n## Changelog\n\n### 0.1.2\n* Upgraded devtools to latest Blink revision\n* Fixed breakpoint handling\n\n\n### 0.1.1\n* Fixed breakpoints handling in platform-specific files (full Ti 3.2.0 support)\n\n### 0.1.0\n* Fixed issues caused by latest versions of Jade in the inspection dashboard\n* Fixed listing of platform-specific files (issue #16)\n\n### 0.0.5\n* Fixed websocket errors in latest Chrome Version 30.0.1599.66 (issue #7)\n* Enabled console panel persistence across reloads (issue #3)\n\n### 0.0.4\n\n* Added \"Debugger.pause\" command handling\n* Fixed dashboard app not showing debug sessions (issue #5)\n* Updated devtools to stable Chrome 29.0.1547.65 and fixed Cobalt.css theme\n\n\n### 0.0.3\n\n* Automatic reload of the DevTools panel when a new debugging session is started: no need to go back and forth from the dashboard. Simply reload your app and Ti Inspector will restart\n* Basic support for Chrome DevTools custom themes (chose a theme in the `public/js/preferences.js` file and reload the web app in the browser)\n\n\n### Credits\nTi Inspector was originally inspired by [node-inspector](https://github.com/node-inspector/node-inspector), started by (Danny Coates)[https://github.com/dannycoates]\n\n\n## License\n\nSee LICENSE file\n\n","maintainers":[{"name":"omorandi","email":"olivier.morandi@gmail.com"}],"time":{"modified":"2022-06-27T06:29:23.002Z","created":"2013-06-27T23:26:41.018Z","0.0.1":"2013-06-27T23:27:06.773Z","0.0.2":"2013-07-17T08:55:24.175Z","0.0.3":"2013-07-31T16:00:49.989Z","0.0.4":"2013-09-11T15:51:14.379Z","0.0.5":"2013-10-04T16:25:51.178Z","0.1.0":"2014-01-01T22:22:16.203Z","0.1.1":"2014-01-03T15:45:09.943Z","0.1.2":"2015-03-21T07:16:11.815Z"},"author":{"name":"Olivier Morandi"},"users":{"joliva":true,"xtopher":true,"davetownsend":true,"kataklisma":true},"repository":{"type":"git","url":"http://github.com/omorandi/TiInspector.git"},"homepage":"https://github.com/omorandi/TiInspector","keywords":["titanium","appcelerator","debugger","devtools"],"bugs":{"url":"https://github.com/omorandi/TiInspector/issues"},"license":"MIT","readmeFilename":"README.md"}