{"_id":"squid","_rev":"217-848062b29f3a2b8e1f5f35615e7c8669","name":"squid","description":"Provides SQL tagged template strings and a schema definition function.","dist-tags":{"latest":"0.5.2"},"versions":{"0.0.1":{"name":"squid","description":"toolbox for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.0.1","repository":{"type":"git","url":"git://github.com/pgherveou/squid.git"},"bin":{"sq":"./bin/runner","sb":"./bin/builder"},"dependencies":{"mkdirp":"*","growl":"*","async":"*","moment":"*","nib":"*","optimist":"*","stylus":"*","underscore":"*","winston":"*","winston-growl":"*","coffee-script":"*","knox":"*","mime":"*","jade":"*"},"_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"_id":"squid@0.0.1","devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.4","_nodeVersion":"v0.6.12","_defaultsLoaded":true,"dist":{"shasum":"788230fe7d1c5a9e5c5cd47fb7b8b4a96cddea50","tarball":"https://registry.npmjs.org/squid/-/squid-0.0.1.tgz","integrity":"sha512-iZlWX/gQYtly+PHJVzs5o4F99YG/3e91Q/atBUq6YIbbg2NW1HpbbdwM7K3CvEC3ILbMQ0OGsky0PH1WxHoT7g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDNBtKf4MD9Ei7ZQ2oCzhZL95Bj6yorRT12Ppv5AwbwZwIgXw5eDhGlUw8nIrYSF9lutRQH8g4psZAUIyBo3lgCLI0="}]},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.0.2":{"name":"squid","description":"toolbox for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.0.2","repository":{"type":"git","url":"git://github.com/pgherveou/squid.git"},"bin":{"sq":"./bin/runner","sb":"./bin/builder"},"dependencies":{"mkdirp":"*","async":"*","moment":"*","nib":"*","optimist":"*","stylus":"*","underscore":"*","winston":"*","winston-growl":"*","coffee-script":"*","knox":"*","mime":"*","jade":"*"},"_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"_id":"squid@0.0.2","devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.4","_nodeVersion":"v0.6.12","_defaultsLoaded":true,"dist":{"shasum":"25a09434ea453bd87ea6f95f4b735ef4794375e2","tarball":"https://registry.npmjs.org/squid/-/squid-0.0.2.tgz","integrity":"sha512-/22yCWmXsjumNKNmbV69GGsoq41x+ydUSKH9+Epfmhn7i/apLFPBkypswCVs6rwT7LBZ5JeytX4uKd+mUrhtNQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG4A3oXCg34DYfkLpFa5PclxFBvqZVtlV+1CkE3VaHyIAiAhFqwemEofmySEhCwQ+ayRap9tj67e1ihpE/ovbYYf5g=="}]},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.0.3":{"name":"squid","description":"toolbox for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.0.3","repository":{"type":"git","url":"git://github.com/pgherveou/squid.git"},"bin":{"sq":"./bin/runner","sb":"./bin/builder"},"dependencies":{"mkdirp":"*","async":"*","moment":"*","nib":"*","optimist":"*","stylus":"*","underscore":"*","winston":"*","winston-growl":"*","coffee-script":"*","knox":"*","mime":"*","jade":"*"},"scripts":{"prepublish":"cake build"},"_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"_id":"squid@0.0.3","devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.4","_nodeVersion":"v0.6.12","_defaultsLoaded":true,"dist":{"shasum":"52eb24d280feeaac6fe9bc1cc98e374c04dae136","tarball":"https://registry.npmjs.org/squid/-/squid-0.0.3.tgz","integrity":"sha512-RLwFkL8DxaYNz0hpRDMTewAmNHwnnQtLh9UIKXGuuG5ocY4bhUKmgU8x79QU6pAw5nC8BUR+ojkLfntOV4tY7A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC5V1anEwUIvQNrf4JRHqoTL/nRRuh1Rnk2QyvgTQ9n1AIhAKrVtCzobEpnOD3RbpfS1zG/xgGJJ4q7/tfEWDnMvNpw"}]},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.0.4":{"name":"squid","description":"toolbox for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.0.4","repository":{"type":"git","url":"git://github.com/pgherveou/squid.git"},"bin":{"sq":"./bin/runner","sb":"./bin/builder"},"dependencies":{"mkdirp":"*","async":"*","moment":"*","nib":"*","optimist":"*","stylus":"*","underscore":"*","winston":"*","winston-growl":"*","coffee-script":"*","knox":"*","mime":"*","jade":"*"},"scripts":{"prepublish":"cake build"},"_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"_id":"squid@0.0.4","devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.4","_nodeVersion":"v0.6.12","_defaultsLoaded":true,"dist":{"shasum":"c012bc3d49b1cb2905bae3e0f9322929c221226a","tarball":"https://registry.npmjs.org/squid/-/squid-0.0.4.tgz","integrity":"sha512-wOdwg288Oc4IkjOe4TJgTEUs9EER6RsDHJNkLGmD5LX/mE1MVrHhkOMYp89EmRp6IqimNPw/3/ntNNQ2TwVqSw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDIgdYDk4ojjc3v/G2HtdjPIlZEtFlFKJlFuzq5Oe7l9QIhAMxKovgZL5DvqlQmkLP0WxK1ca0ibMSJx6Zn0AjdGyDq"}]},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.0.6":{"name":"squid","description":"toolbox for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.0.6","repository":{"type":"git","url":"git://github.com/pgherveou/squid.git"},"bin":{"sq":"./bin/runner","sb":"./bin/builder"},"dependencies":{"mkdirp":"*","async":"*","moment":"*","nib":"*","optimist":"*","stylus":"*","underscore":"*","winston":"*","winston-growl":"*","coffee-script":"*","knox":"*","mime":"*","jade":"*"},"scripts":{"prepublish":"cake build"},"_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"_id":"squid@0.0.6","devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.24","_nodeVersion":"v0.6.19","_defaultsLoaded":true,"dist":{"shasum":"3434215600c77a06c8f399fd4099b7a8469e49d3","tarball":"https://registry.npmjs.org/squid/-/squid-0.0.6.tgz","integrity":"sha512-kMfwb1dIZ126UqWUpkAcQqC6Lr5C8WuUqaPhjvys7KmczS/vegqLGmrrezK/auWiUEpgUum2OPVc8a6+9sdqnQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD3IkKO1DjB+1QDusqq0LYS3Cl7FMXLOmSFN/k5jc7iKwIhANEn0TIPYapmcIygNZwLLgYBECkzRaPpwRIhYqcdHh9T"}]},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.0.7":{"name":"squid","description":"toolbox for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.0.7","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/runner","sb":"./bin/builder"},"dependencies":{"mkdirp":"*","async":"*","moment":"*","nib":"*","optimist":"*","stylus":"*","underscore":"*","winston":"*","winston-growl":"*","coffee-script":"*","knox":"*","mime":"*","jade":"*"},"scripts":{"prepublish":"cake build"},"readme":"Squid\n=====\n\nSquid compiles your coffee, jade and stylus files, and publish  your assets to amazon s3\n\n\nInstall\n-------\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\nsq command\n----------\n\nat the root of your project directory execute: \n\n```\n$ sq\n```\n\nor if your main script isn't index.js\n\n```\n$ sq my-script.js\n```\n\nto start node in debug mode\n\n```\n$ sq -d\n```\n\n\n\n\nthis will\n\n- start your server\n- recompile your files as soon as they change and emit a growl notification**\n- restart your server when a file change inside /lib (server script directory by convention)\n\nYou can also combine it to a tool like live-reload to auto refresh your browser when client files are updated\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\n\nsb command\n----------\nif you just want to build the project source files. use the sb command \nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\n{builder} = require 'squid'\n\n# build all files in src except your css folder                     \nbuilder.buildAll ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\ns3 publication\n--------------\n\nSquid publisher let you upload files within a directory to your amazon s3 bucket. \nsquid will only upload  new or modified files to your bucket.\nsquid will upload files with a far expiry date and will zip text files\n\n```coffee\n{Publisher} = require 'squid'\n\n# create s3 publisher\npublisher = new Publisher bucket: 'name',  key: 'xx', secret: 'xx'\n\n# define filter closure that will only select js, png, and css file\nfilter = (f, stat) -> stat.isDirectory() or /\\.(js|png|css)$/.test f\n\n# publish 'public' dir to root folder '' of the  bucket\npublisher.publishDir {origin: 'public', dest: '', filter}, cb\n\n```\n\n\nSupported files for compilation\n-------------------------------\n\nsquid can compile the following files\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>template are compiled into js and wrapped in a requirejs define function</td>\n  </tr>\n</table>\n\nfiles Dependencies\n-------------------\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies for each supported file format\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\nproject structure\n-----------------\n\nTo work with squid, your project should follow this file architecture:\n\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, this will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js \n|- public\n  |- js \n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\nTodo\n----\n\n- add tests\n- remove hardcoded compilation settings and add configuration for coffee, jade and stylus compilers\n\n\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","_id":"squid@0.0.7","dist":{"shasum":"40f819f5408589114f19bd9467b17ba7a5ce2458","tarball":"https://registry.npmjs.org/squid/-/squid-0.0.7.tgz","integrity":"sha512-RSJZjEVvxkb0WX236j8ELbEfaGJAU73TN9rN+MSSyxobJIrC9zl5EW1om02x4x1opxc90y2CwcHkth6hM/hmgA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDwTM1t60berT+ogr5wrJgSOWHp50pfBayrpHPET0yUYQIgClYW7zxte2CQks+iBGSnEdafSZf1Q0wnNYqpDK2VWN4="}]},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.0.8":{"name":"squid","description":"toolbox for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.0.8","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/runner","sb":"./bin/builder"},"dependencies":{"mkdirp":"*","async":"*","moment":"*","nib":"*","optimist":"*","stylus":"*","underscore":"*","winston":"*","winston-growl":"*","coffee-script":"*","knox":"*","mime":"*","jade":"*"},"scripts":{"prepublish":"cake build"},"readme":"Squid\n=====\n\nSquid compiles your coffee, jade and stylus files, and publish  your assets to amazon s3\n\n\nInstall\n-------\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\nsq command\n----------\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nor if your main script isn't index.js\n\n```\n$ sq my-script.js\n```\n\nto start node in debug mode\n\n```\n$ sq -d\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- restart your server when a file change inside /lib (server script directory by convention)\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\n\nsb command\n----------\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\n{builder} = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\ns3 publication\n--------------\n\nSquid publisher let you upload files within a directory to your amazon s3 bucket.\nsquid will only upload  new or modified files to your bucket.\nsquid will upload files with a far expiry date and will zip text files\n\n```coffee\n{Publisher} = require 'squid'\n\n# create s3 publisher\npublisher = new Publisher bucket: 'name',  key: 'xx', secret: 'xx'\n\n# define filter closure that will only select js, png, and css file\nfilter = (f, stat) -> stat.isDirectory() or /\\.(js|png|css)$/.test f\n\n# publish 'public' dir to root folder '' of the  bucket\npublisher.publishDir {origin: 'public', dest: '', filter}, cb\n\n```\n\n\nSupported files for compilation\n-------------------------------\n\nsquid can compile the following files\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>template are compiled into js and wrapped in a requirejs define function</td>\n  </tr>\n</table>\n\nfiles Dependencies\n-------------------\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies for each supported file format\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\nproject structure\n-----------------\n\nTo work with squid, your project should follow this file architecture:\n\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, this will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\nTodo\n----\n\n- add tests\n- remove hardcoded compilation settings and add configuration for coffee, jade and stylus compilers\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","_id":"squid@0.0.8","dist":{"shasum":"7bb30d48fb7a783c259eeb656a5c25ba8d93951c","tarball":"https://registry.npmjs.org/squid/-/squid-0.0.8.tgz","integrity":"sha512-ptergRUHni2z8cEbZQZYtjOjotDUNQnNdH5DwO//PVgC+rj3083+50fs/CtgeyC2M1DWjDrpmQh5Kpc/SIlX4g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFoKfQbZRO9qJxhpUlOEkC/YFceQuyVYyI5ClfgkdFEqAiEA2LN3wFwdofBm1PSui4VplAsbe+UEjVpT/uOKWQd/tEc="}]},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.0.9":{"name":"squid","description":"toolbox for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.0.9","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"git://github.com/pgherveou/squid.git"},"bin":{"sq":"./bin/runner","sb":"./bin/builder"},"main":"index","engines":{"node":">= v0.6.x"},"dependencies":{"mkdirp":"*","async":"*","moment":"*","nib":"*","optimist":"*","stylus":"0.27.x","underscore":"*","winston":"*","winston-growl":"*","coffee-script":"*","knox":"*","mime":"*","jade":"*"},"scripts":{"prepublish":"cake build"},"_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"_id":"squid@0.0.9","devDependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.24","_nodeVersion":"v0.6.19","_defaultsLoaded":true,"dist":{"shasum":"8ceae6363ebb05f7566c49e61414c34e3b8dc1db","tarball":"https://registry.npmjs.org/squid/-/squid-0.0.9.tgz","integrity":"sha512-83CUuzYXSkIz5IPNq8Sxu/2J1av6WPPyhJTha+a2wf/tII5+T8ntD0aoXBLnsw81IWep+PWN7D4YXsng1CM/EA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDWLY+pU+LTosNGCYSKxUz0YIgKZWYLBJ7TWnrNzPzoCgIhAO0iGPjJSmIYffXqxEjLnAnqoMy0ROLsDOw77CsE0ENk"}]},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.0.10":{"name":"squid","description":"toolbox for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.0.10","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"git://github.com/pgherveou/squid.git"},"bin":{"sq":"./bin/runner","sb":"./bin/builder"},"main":"index","engines":{"node":">= v0.6.x"},"dependencies":{"mkdirp":"*","async":"*","moment":"*","nib":"*","optimist":"*","stylus":"*","underscore":"*","winston":"*","winston-growl":"*","coffee-script":"*","knox":"*","mime":"*","jade":"*"},"scripts":{"prepublish":"cake build"},"_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"_id":"squid@0.0.10","devDependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.24","_nodeVersion":"v0.6.19","_defaultsLoaded":true,"dist":{"shasum":"0c13f8a0575d5dbe7623f5fa5bb3ece9bc54ed0f","tarball":"https://registry.npmjs.org/squid/-/squid-0.0.10.tgz","integrity":"sha512-fhdTFj+2uSvP/W4dyJMl5RJaDhRhRCyy5sklh6QqrS1m9Wsau/dILPzQXiqbQuQNFSz4T3BnDF6mbrKI7hn5IA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC4DlpQes2lEiEYythsLN5Q3v9SQNldwWgoCnQwgJ0q+QIgVutzYsS0PTqdU6ZevP9SalQL05y8UdBkCrKzyAVK3Ck="}]},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.0.11":{"name":"squid","description":"toolbox for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.0.11","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/runner","sb":"./bin/builder"},"dependencies":{"mkdirp":"*","async":"*","moment":"*","nib":"*","stylus":"*","underscore":"*","winston":"*","winston-growl":"*","coffee-script":"*","knox":"*","mime":"*","jade":"*"},"scripts":{"prepublish":"cake build"},"readme":"Squid\n=====\n\nSquid compiles your coffee, jade and stylus files, and publish  your assets to amazon s3\n\n\nInstall\n-------\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\nsq command\n----------\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nor if your main script isn't index.js\n\n```\n$ sq my-script.js\n```\n\nto start node in debug mode\n\n```\n$ sq -d\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- restart your server when a file change inside /lib (server script directory by convention)\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\n\nsb command\n----------\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\n{builder} = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\ns3 publication\n--------------\n\nSquid publisher let you upload files within a directory to your amazon s3 bucket.\nsquid will only upload  new or modified files to your bucket.\nsquid will upload files with a far expiry date and will zip text files\n\n```coffee\n{Publisher} = require 'squid'\n\n# create s3 publisher\npublisher = new Publisher bucket: 'name',  key: 'xx', secret: 'xx'\n\n# define filter closure that will only select js, png, and css file\nfilter = (f, stat) -> stat.isDirectory() or /\\.(js|png|css)$/.test f\n\n# publish 'public' dir to root folder '' of the  bucket\npublisher.publishDir {origin: 'public', dest: '', filter}, cb\n\n```\n\n\nSupported files for compilation\n-------------------------------\n\nsquid can compile the following files\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>template are compiled into js and wrapped in a requirejs define function</td>\n  </tr>\n</table>\n\nfiles Dependencies\n-------------------\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies for each supported file format\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\nproject structure\n-----------------\n\nTo work with squid, your project should follow this file architecture:\n\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, this will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\nTodo\n----\n\n- add tests\n- remove hardcoded compilation settings and add configuration for coffee, jade and stylus compilers\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","_id":"squid@0.0.11","dist":{"shasum":"4bc2a17df2e30b2a58ab0110e0e9955603fd6cba","tarball":"https://registry.npmjs.org/squid/-/squid-0.0.11.tgz","integrity":"sha512-IH6OWu+or8Dktzi5QYrkZCnnzrSid4bwugf9nyPi4vyRYCD/R6skGdcWJS2xk63viT4W36r1jWbI85uYo/LjhQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCewHYHpg+dyOWi8idfRLMGqBYsz/kIIIoJHsadHK8WDAIgHDtIMlQPf225cB652h2/KTm6uHPkJrk0mB2rtLutem8="}]},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.0.12":{"name":"squid","description":"toolbox for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.0.12","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/runner","sb":"./bin/builder"},"dependencies":{"async":"*","coffee-script":"*","jade":"*","knox":"*","mkdirp":"*","mime":"*","moment":"*","nib":"*","optimist":"*","stylus":"*","underscore":"*","winston":"*","winston-growl":"*"},"scripts":{"prepublish":"cake build"},"readme":"Squid\n=====\n\nSquid compiles your coffee, jade and stylus files, and publish  your assets to amazon s3\n\n\nInstall\n-------\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\nsq command\n----------\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nor if your main script isn't index.js\n\n```\n$ sq my-script.js\n```\n\nto start node in debug mode\n\n```\n$ sq -d\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- restart your server when a file change inside /lib (server script directory by convention)\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\n\nsb command\n----------\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\n{builder} = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\ns3 publication\n--------------\n\nSquid publisher let you upload files within a directory to your amazon s3 bucket.\nsquid will only upload  new or modified files to your bucket.\nsquid will upload files with a far expiry date and will zip text files\n\n```coffee\n{Publisher} = require 'squid'\n\n# create s3 publisher\npublisher = new Publisher bucket: 'name',  key: 'xx', secret: 'xx'\n\n# define filter closure that will only select js, png, and css file\nfilter = (f, stat) -> stat.isDirectory() or /\\.(js|png|css)$/.test f\n\n# publish 'public' dir to root folder '' of the  bucket\npublisher.publishDir {origin: 'public', dest: '', filter}, cb\n\n```\n\n\nSupported files for compilation\n-------------------------------\n\nsquid can compile the following files\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>template are compiled into js and wrapped in a requirejs define function</td>\n  </tr>\n</table>\n\nfiles Dependencies\n-------------------\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies for each supported file format\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\nproject structure\n-----------------\n\nTo work with squid, your project should follow this file architecture:\n\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, this will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\nTodo\n----\n\n- add tests\n- remove hardcoded compilation settings and add configuration for coffee, jade and stylus compilers\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","_id":"squid@0.0.12","dist":{"shasum":"6041352933147c822d243190dfd9f22e6c9656ac","tarball":"https://registry.npmjs.org/squid/-/squid-0.0.12.tgz","integrity":"sha512-JfZtjJPzPcVg+X5e8D2Sjsr5AJRI2kzDjeMCN+K557CDNuHl2UyQJpTJFPMaiOK6W4qo1k4fNULNAzpuvAdYMQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC0EbsmKb/MxkjPpiElhLU/EXsMx46eq916CFa6bq6g5wIhAOGjEs7LbY/nYWRB9yDH8QzLR/UNW2iAgE3IHtjO5cyC"}]},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.0.13":{"name":"squid","description":"toolbox for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.0.13","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/runner","sb":"./bin/builder"},"dependencies":{"async":"*","coffee-script":"*","jade":"*","knox":"*","mkdirp":"*","mime":"*","moment":"*","nib":"*","optimist":"*","stylus":"*","underscore":"*","winston":"*","winston-growl":"*"},"scripts":{"prepublish":"cake build"},"readme":"Squid\n=====\n\nSquid compiles your coffee, jade and stylus files, and publish  your assets to amazon s3\n\n\nInstall\n-------\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\nsq command\n----------\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nor if your main script isn't index.js\n\n```\n$ sq my-script.js\n```\n\nto start node in debug mode\n\n```\n$ sq -d\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- restart your server when a file change inside /lib (server script directory by convention)\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\n\nsb command\n----------\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\n{builder} = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\ns3 publication\n--------------\n\nSquid publisher let you upload files within a directory to your amazon s3 bucket.\nsquid will only upload  new or modified files to your bucket.\nsquid will upload files with a far expiry date and will zip text files\n\n```coffee\n{Publisher} = require 'squid'\n\n# create s3 publisher\npublisher = new Publisher bucket: 'name',  key: 'xx', secret: 'xx'\n\n# define filter closure that will only select js, png, and css file\nfilter = (f, stat) -> stat.isDirectory() or /\\.(js|png|css)$/.test f\n\n# publish 'public' dir to root folder '' of the  bucket\npublisher.publishDir {origin: 'public', dest: '', filter}, cb\n\n```\n\n\nSupported files for compilation\n-------------------------------\n\nsquid can compile the following files\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>template are compiled into js and wrapped in a requirejs define function</td>\n  </tr>\n</table>\n\nfiles Dependencies\n-------------------\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies for each supported file format\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\nproject structure\n-----------------\n\nTo work with squid, your project should follow this file architecture:\n\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, this will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\nTodo\n----\n\n- add tests\n- remove hardcoded compilation settings and add configuration for coffee, jade and stylus compilers\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","_id":"squid@0.0.13","dist":{"shasum":"97105e4e77dde27898d6df2f79bd006b12fad714","tarball":"https://registry.npmjs.org/squid/-/squid-0.0.13.tgz","integrity":"sha512-MmQX+opGK5ci07MkvEwWIajoRJOkCsi8Acr9faj+HxMDhMeK32QazZoS8Of2GfFU5uCLN3B665mN5zyhO9XBZw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD4cUx4vx9IUsWTNMlXeRXiA3BzBr1CVxqoj9iiy1tkvgIhAKwDNLldX/OVh/kUiFFm0x+x9EeMvy/Zd/cSH0vudgHc"}]},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.0.14":{"name":"squid","description":"toolbox for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.0.14","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/runner","sb":"./bin/builder"},"dependencies":{"async":"*","coffee-script":"*","jade":"*","knox":"0.1.x","mkdirp":"*","mime":"*","moment":"*","nib":"*","optimist":"*","stylus":"*","underscore":"*","winston":"*","winston-growl":"*"},"scripts":{"prepublish":"cake build"},"readme":"Squid\n=====\n\nSquid compiles your coffee, jade and stylus files, and publish  your assets to amazon s3\n\n\nInstall\n-------\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\nsq command\n----------\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nor if your main script isn't index.js\n\n```\n$ sq my-script.js\n```\n\nto start node in debug mode\n\n```\n$ sq -d\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- restart your server when a file change inside /lib (server script directory by convention)\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\n\nsb command\n----------\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\n{builder} = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\ns3 publication\n--------------\n\nSquid publisher let you upload files within a directory to your amazon s3 bucket.\nsquid will only upload  new or modified files to your bucket.\nsquid will upload files with a far expiry date and will zip text files\n\n```coffee\n{Publisher} = require 'squid'\n\n# create s3 publisher\npublisher = new Publisher bucket: 'name',  key: 'xx', secret: 'xx'\n\n# define filter closure that will only select js, png, and css file\nfilter = (f, stat) -> stat.isDirectory() or /\\.(js|png|css)$/.test f\n\n# publish 'public' dir to root folder '' of the  bucket\npublisher.publishDir {origin: 'public', dest: '', filter}, cb\n\n```\n\n\nSupported files for compilation\n-------------------------------\n\nsquid can compile the following files\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>template are compiled into js and wrapped in a requirejs define function</td>\n  </tr>\n</table>\n\nfiles Dependencies\n-------------------\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies for each supported file format\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\nproject structure\n-----------------\n\nTo work with squid, your project should follow this file architecture:\n\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, this will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\nTodo\n----\n\n- add tests\n- remove hardcoded compilation settings and add configuration for coffee, jade and stylus compilers\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","_id":"squid@0.0.14","dist":{"shasum":"d09a6d373da478ac87ea66403c5a44bb81cd9d38","tarball":"https://registry.npmjs.org/squid/-/squid-0.0.14.tgz","integrity":"sha512-+d7LhxMgQ73u3RCkLsdhENrGxRl9OoBl1PR+4O2fCxqbEf201xnR6KyQjnq21LZWSg8d52c94Td1hxE0ptAaBA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCDM/0ekuDuO3tQpsnqiWtpGrr5ixZKwoqyDg6UqekRtgIhAJ14WJQX0q5LZBTtf8dYImEY02CAmE6hknQLIVEMEWMw"}]},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.0.15":{"name":"squid","description":"toolbox for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.0.15","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/runner","sb":"./bin/builder"},"dependencies":{"async":"*","coffee-script":"*","jade":"*","knox":"0.1.x","mkdirp":"*","mime":"*","moment":"*","nib":"*","optimist":"*","stylus":"*","underscore":"*","winston":"*","winston-growl":"*"},"scripts":{"prepublish":"cake build"},"readme":"Squid\n=====\n\nSquid compiles your coffee, jade and stylus files, and publish  your assets to amazon s3\n\n\nInstall\n-------\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\nsq command\n----------\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nor if your main script isn't index.js\n\n```\n$ sq my-script.js\n```\n\nto start node in debug mode\n\n```\n$ sq -d\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- restart your server when a file change inside /lib (server script directory by convention)\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\n\nsb command\n----------\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\n{builder} = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\ns3 publication\n--------------\n\nSquid publisher let you upload files within a directory to your amazon s3 bucket.\nsquid will only upload  new or modified files to your bucket.\nsquid will upload files with a far expiry date and will zip text files\n\n```coffee\n{Publisher} = require 'squid'\n\n# create s3 publisher\npublisher = new Publisher bucket: 'name',  key: 'xx', secret: 'xx'\n\n# define filter closure that will only select js, png, and css file\nfilter = (f, stat) -> stat.isDirectory() or /\\.(js|png|css)$/.test f\n\n# publish 'public' dir to root folder '' of the  bucket\npublisher.publishDir {origin: 'public', dest: '', filter}, cb\n\n```\n\n\nSupported files for compilation\n-------------------------------\n\nsquid can compile the following files\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>template are compiled into js and wrapped in a requirejs define function</td>\n  </tr>\n</table>\n\nfiles Dependencies\n-------------------\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies for each supported file format\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\nproject structure\n-----------------\n\nTo work with squid, your project should follow this file architecture:\n\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, this will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\nTodo\n----\n\n- add tests\n- remove hardcoded compilation settings and add configuration for coffee, jade and stylus compilers\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","_id":"squid@0.0.15","dist":{"shasum":"402a3c3f8dc3426679dd0954628ba6ae43b2a866","tarball":"https://registry.npmjs.org/squid/-/squid-0.0.15.tgz","integrity":"sha512-z4l25soV3lNzJ6AtULZIjtoBk9JzMWqowbFeVVOpAEl6KjGJupVtEqyLc0qtn2ezrtBnPDGE3Vk6F2vRzP4BIQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD+VV2W4CwQPt/iLkwwcqPPunhTZW53CsBuzXSYuI7EwwIhAMLzcEwatrNqnLo3v/PLoyilqPIWCulvpnWmL9AFnwGN"}]},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.0.16":{"name":"squid","description":"toolbox for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.0.16","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/runner","sb":"./bin/builder"},"dependencies":{"async":"0.1.x","coffee-script":"1.3.x","jade":"0.27.x","knox":"0.1.x","mkdirp":"0.3.x","mime":"1.2.x","moment":"1.7.x","nib":"0.7.x","optimist":"0.3.x","stylus":"0.29.x","lodash":"0.5.x","winston":"0.6.x","winston-growl":"0.0.x"},"scripts":{"prepublish":"cake build"},"readme":"Squid\n=====\n\nSquid compiles your coffee, jade and stylus files, and publish  your assets to amazon s3\n\n\nInstall\n-------\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\nsq command\n----------\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nor if your main script isn't index.js\n\n```\n$ sq my-script.js\n```\n\nto start node in debug mode\n\n```\n$ sq -d\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- restart your server when a file change inside /lib (server script directory by convention)\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\n\nsb command\n----------\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\n{builder} = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\ns3 publication\n--------------\n\nSquid publisher let you upload files within a directory to your amazon s3 bucket.\nsquid will only upload  new or modified files to your bucket.\nsquid will upload files with a far expiry date and will zip text files\n\n```coffee\n{Publisher} = require 'squid'\n\n# create s3 publisher\npublisher = new Publisher bucket: 'name',  key: 'xx', secret: 'xx'\n\n# define filter closure that will only select js, png, and css file\nfilter = (f, stat) -> stat.isDirectory() or /\\.(js|png|css)$/.test f\n\n# publish 'public' dir to root folder '' of the  bucket\npublisher.publishDir {origin: 'public', dest: '', filter}, cb\n\n```\n\n\nSupported files for compilation\n-------------------------------\n\nsquid can compile the following files\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>template are compiled into js and wrapped in a requirejs define function</td>\n  </tr>\n</table>\n\nfiles Dependencies\n-------------------\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies for each supported file format\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\nproject structure\n-----------------\n\nTo work with squid, your project should follow this file architecture:\n\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, this will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\nTodo\n----\n\n- add tests\n- remove hardcoded compilation settings and add configuration for coffee, jade and stylus compilers\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","_id":"squid@0.0.16","dist":{"shasum":"a68c1c881455160797d172434ee7040bc22e964e","tarball":"https://registry.npmjs.org/squid/-/squid-0.0.16.tgz","integrity":"sha512-7xd4V+Gli0ZlWsS+XhoD4+twwFBgyEyg5by9k+Muqs2MnSYhzv6cZx/3a+u8otBEhyixjtRudN8CdtyQ2QotoQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCbhpK1eqXv8BZ4ZnO+QypOTql5mwSPB/CDoG8/iba4xAIgRyK1gZO07FlT+XaJNAwBHeIFo0v17W9vprA6f+AW9x8="}]},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.0.17":{"name":"squid","description":"toolbox for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.0.17","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/runner","sb":"./bin/builder"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","knox":"0.x","mkdirp":"0.x","mime":"1.x","moment":"1.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"0.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"cake build"},"readme":"Squid\n=====\n\nSquid compiles your coffee, jade and stylus files, and publish  your assets to amazon s3\n\n\nInstall\n-------\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\nsq command\n----------\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nor if your main script isn't index.js\n\n```\n$ sq my-script.js\n```\n\nto start node in debug mode\n\n```\n$ sq -d\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- restart your server when a file change inside /lib (server script directory by convention)\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\n\nsb command\n----------\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\n{builder} = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\ns3 publication\n--------------\n\nSquid publisher let you upload files within a directory to your amazon s3 bucket.\nsquid will only upload  new or modified files to your bucket.\nsquid will upload files with a far expiry date and will zip text files\n\n```coffee\n{Publisher} = require 'squid'\n\n# create s3 publisher\npublisher = new Publisher bucket: 'name',  key: 'xx', secret: 'xx'\n\n# define filter closure that will only select js, png, and css file\nfilter = (f, stat) -> stat.isDirectory() or /\\.(js|png|css)$/.test f\n\n# publish 'public' dir to root folder '' of the  bucket\npublisher.publishDir {origin: 'public', dest: '', filter}, cb\n\n```\n\n\nSupported files for compilation\n-------------------------------\n\nsquid can compile the following files\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>template are compiled into js and wrapped in a requirejs define function</td>\n  </tr>\n</table>\n\nfiles Dependencies\n-------------------\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies for each supported file format\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\nproject structure\n-----------------\n\nTo work with squid, your project should follow this file architecture:\n\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, this will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\nTodo\n----\n\n- add tests\n- remove hardcoded compilation settings and add configuration for coffee, jade and stylus compilers\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","_id":"squid@0.0.17","dist":{"shasum":"985256cb21695ceae8ea9fbe241f4ec7a4336f8c","tarball":"https://registry.npmjs.org/squid/-/squid-0.0.17.tgz","integrity":"sha512-tDnmJAbuGtAPvc6yfw75x79oTdTx6ZfI7ntWsokfBtqLI6vBST2nO/rG7nREszGQN/98R/lXhIh6b61nWJ4vGg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBDtbA/2LRK3GCbaxLpFHRbuE69UeiJ641w4sYmjVqbOAiB1omUtUW+gcFKaxZxTFiud3NtzJ39ooYmvTPY0kyN7Cg=="}]},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.0.18":{"name":"squid","description":"toolbox for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.0.18","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/runner","sb":"./bin/builder"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","knox":"0.x","mkdirp":"0.x","mime":"1.x","moment":"1.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"0.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"cake build"},"readme":"Squid\n=====\n\nSquid compiles your coffee, jade and stylus files, and publish  your assets to amazon s3\n\n\nInstall\n-------\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\nsq command\n----------\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nor if your main script isn't index.js\n\n```\n$ sq my-script.js\n```\n\nto start node in debug mode\n\n```\n$ sq -d\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- restart your server when a file change inside /lib (server script directory by convention)\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\n\nsb command\n----------\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\n{builder} = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\ns3 publication\n--------------\n\nSquid publisher let you upload files within a directory to your amazon s3 bucket.\nsquid will only upload  new or modified files to your bucket.\nsquid will upload files with a far expiry date and will zip text files\n\n```coffee\n{Publisher} = require 'squid'\n\n# create s3 publisher\npublisher = new Publisher bucket: 'name',  key: 'xx', secret: 'xx'\n\n# define filter closure that will only select js, png, and css file\nfilter = (f, stat) -> stat.isDirectory() or /\\.(js|png|css)$/.test f\n\n# publish 'public' dir to root folder '' of the  bucket\npublisher.publishDir {origin: 'public', dest: '', filter}, cb\n\n```\n\n\nSupported files for compilation\n-------------------------------\n\nsquid can compile the following files\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>template are compiled into js and wrapped in a requirejs define function</td>\n  </tr>\n</table>\n\nfiles Dependencies\n-------------------\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies for each supported file format\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\nproject structure\n-----------------\n\nTo work with squid, your project should follow this file architecture:\n\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, this will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\nTodo\n----\n\n- add tests\n- remove hardcoded compilation settings and add configuration for coffee, jade and stylus compilers\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","_id":"squid@0.0.18","dist":{"shasum":"23ca22a95f8b8fb87b346865f5711fb1d2aadb75","tarball":"https://registry.npmjs.org/squid/-/squid-0.0.18.tgz","integrity":"sha512-rtiAN0Z75gnejW3f+oJb/03h1Nb4bmO7YmfjoEYyquUGTAHaAfNiO5Lhu0/HPU9qvN2Vn/hy7aQ2oY/NDIo+fA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA6noMw8TYHSP9cvIgu9m/8s/DoopALw7qF2FN9w9mg7AiEA0cZ8eG44mAD6kB8zqHh1xDsacmguREHph6QGvhBL/QE="}]},"_npmVersion":"1.1.58","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.0.19":{"name":"squid","description":"toolbox for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.0.19","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/runner","sb":"./bin/builder"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","knox":"0.x","mkdirp":"0.x","mime":"1.x","moment":"1.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"0.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"cake build"},"readme":"Squid\n=====\n\nSquid compiles your coffee, jade and stylus files, and publish  your assets to amazon s3\n\n\nInstall\n-------\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\nsq command\n----------\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nor if your main script isn't index.js\n\n```\n$ sq my-script.js\n```\n\nto start node in debug mode\n\n```\n$ sq -d\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- restart your server when a file change inside /lib (server script directory by convention)\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\n\nsb command\n----------\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\n{builder} = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\ns3 publication\n--------------\n\nSquid publisher let you upload files within a directory to your amazon s3 bucket.\nsquid will only upload  new or modified files to your bucket.\nsquid will upload files with a far expiry date and will zip text files\n\n```coffee\n{Publisher} = require 'squid'\n\n# create s3 publisher\npublisher = new Publisher bucket: 'name',  key: 'xx', secret: 'xx'\n\n# define filter closure that will only select js, png, and css file\nfilter = (f, stat) -> stat.isDirectory() or /\\.(js|png|css)$/.test f\n\n# publish 'public' dir to root folder '' of the  bucket\npublisher.publishDir {origin: 'public', dest: '', filter}, cb\n\n```\n\n\nSupported files for compilation\n-------------------------------\n\nsquid can compile the following files\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>template are compiled into js and wrapped in a requirejs define function</td>\n  </tr>\n</table>\n\nfiles Dependencies\n-------------------\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies for each supported file format\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\nproject structure\n-----------------\n\nTo work with squid, your project should follow this file architecture:\n\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, this will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\nTodo\n----\n\n- add tests\n- remove hardcoded compilation settings and add configuration for coffee, jade and stylus compilers\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","_id":"squid@0.0.19","dist":{"shasum":"7698751cc05451d26644917a818af3e989cfa0a9","tarball":"https://registry.npmjs.org/squid/-/squid-0.0.19.tgz","integrity":"sha512-OOmv6p2Jj9Tg9bhOBtzqh/oQDLI2xOmoFMSZvvLeETlj5NzQyaBFOaG7RaPAb1+/SD1H1VdzCSoEZMmHbTG2aA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCao09KTghGjTHOU9xZ6NuGSbYIVIFCRVaWiv/DrjzQGAIhAK2TS6l0jkyVqOUYImcJqVM4DNYn1K4JI6d2DVT9q048"}]},"_npmVersion":"1.1.58","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.0.20":{"name":"squid","description":"toolbox for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.0.20","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/runner","sb":"./bin/builder"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","knox":"0.x","mkdirp":"0.x","mime":"1.x","moment":"1.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"0.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"cake build"},"readme":"Squid\n=====\n\nSquid compiles your coffee, jade and stylus files, and publish  your assets to amazon s3\n\n\nInstall\n-------\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\nsq command\n----------\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nor if your main script isn't index.js\n\n```\n$ sq my-script.js\n```\n\nto start node in debug mode\n\n```\n$ sq -d\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- restart your server when a file change inside /lib (server script directory by convention)\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\n\nsb command\n----------\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\n{builder} = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\ns3 publication\n--------------\n\nSquid publisher let you upload files within a directory to your amazon s3 bucket.\nsquid will only upload  new or modified files to your bucket.\nsquid will upload files with a far expiry date and will zip text files\n\n```coffee\n{Publisher} = require 'squid'\n\n# create s3 publisher\npublisher = new Publisher bucket: 'name',  key: 'xx', secret: 'xx'\n\n# define filter closure that will only select js, png, and css file\nfilter = (f, stat) -> stat.isDirectory() or /\\.(js|png|css)$/.test f\n\n# publish 'public' dir to root folder '' of the  bucket\npublisher.publishDir {origin: 'public', dest: '', filter}, cb\n\n```\n\n\nSupported files for compilation\n-------------------------------\n\nsquid can compile the following files\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>template are compiled into js and wrapped in a requirejs define function</td>\n  </tr>\n</table>\n\nfiles Dependencies\n-------------------\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies for each supported file format\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\nproject structure\n-----------------\n\nTo work with squid, your project should follow this file architecture:\n\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, this will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\nTodo\n----\n\n- add tests\n- remove hardcoded compilation settings and add configuration for coffee, jade and stylus compilers\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","_id":"squid@0.0.20","dist":{"shasum":"f069bb7a2be6c6413f8bbf58ff7ae54bc74ecc7c","tarball":"https://registry.npmjs.org/squid/-/squid-0.0.20.tgz","integrity":"sha512-LYR7MYC7swopQta0aZhWmAkXu0v23OZPF+XRjBkXxnGmQe30Z5KiEj4ECePfCcPvhknbMdYu2DzaIFwtxDKPqQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHfccj3KFtoio/OI6Sgr2+Yin3+U7deOsmcxGDZlSuTgAiAsb3EOnwzc9NegCWGztP3SYRg/FxS04KViDLpZauPRUw=="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.0.21":{"name":"squid","description":"toolbox for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.0.21","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/runner","sb":"./bin/builder"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","knox":"0.x","mkdirp":"0.x","mime":"1.x","moment":"1.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"0.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"cake build"},"readme":"Squid\n=====\n\nSquid compiles your coffee, jade and stylus files, and publish  your assets to amazon s3\n\n\nInstall\n-------\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\nsq command\n----------\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nor if your main script isn't index.js\n\n```\n$ sq my-script.js\n```\n\nto start node in debug mode\n\n```\n$ sq -d\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- restart your server when a file change inside /lib (server script directory by convention)\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\n\nsb command\n----------\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\n{builder} = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\ns3 publication\n--------------\n\nSquid publisher let you upload files within a directory to your amazon s3 bucket.\nsquid will only upload  new or modified files to your bucket.\nsquid will upload files with a far expiry date and will zip text files\n\n```coffee\n{Publisher} = require 'squid'\n\n# create s3 publisher\npublisher = new Publisher bucket: 'name',  key: 'xx', secret: 'xx'\n\n# define filter closure that will only select js, png, and css file\nfilter = (f, stat) -> stat.isDirectory() or /\\.(js|png|css)$/.test f\n\n# publish 'public' dir to root folder '' of the  bucket\npublisher.publishDir {origin: 'public', dest: '', filter}, cb\n\n```\n\n\nSupported files for compilation\n-------------------------------\n\nsquid can compile the following files\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>template are compiled into js and wrapped in a requirejs define function</td>\n  </tr>\n</table>\n\nfiles Dependencies\n-------------------\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies for each supported file format\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\nproject structure\n-----------------\n\nTo work with squid, your project should follow this file architecture:\n\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, this will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\nTodo\n----\n\n- add tests\n- remove hardcoded compilation settings and add configuration for coffee, jade and stylus compilers\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","_id":"squid@0.0.21","dist":{"shasum":"5b185e49aa4efe1d5972f81cab6d739d17b2be28","tarball":"https://registry.npmjs.org/squid/-/squid-0.0.21.tgz","integrity":"sha512-BRADuO3yRtO0bEiTLRThV/scHPuo9YcAD973orCAMxYjxOPKFdmM3Ao/m2kHgFIJtqisyEVR4XclNqaHSi2SKA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIALlxRGvl1SgB9Hahrppg59bUneQymzqXs75BDzq0bISAiBdtBZmf0b25A9qvDJl/BvCUaYHmJGA/82xv/OSsTz0FQ=="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.0.22":{"name":"squid","description":"toolbox for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.0.22","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/runner","sb":"./bin/builder"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","knox":"0.x","mkdirp":"0.x","mime":"1.x","moment":"1.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"0.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"cake build"},"readme":"Squid\n=====\n\nSquid compiles your coffee, jade and stylus files, and publish  your assets to amazon s3\n\n\nInstall\n-------\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\nsq command\n----------\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nor if your main script isn't index.js\n\n```\n$ sq my-script.js\n```\n\nto start node in debug mode\n\n```\n$ sq -d\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- restart your server when a file change inside /lib (server script directory by convention)\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\n\nsb command\n----------\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\n{builder} = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\ns3 publication\n--------------\n\nSquid publisher let you upload files within a directory to your amazon s3 bucket.\nsquid will only upload  new or modified files to your bucket.\nsquid will upload files with a far expiry date and will zip text files\n\n```coffee\n{Publisher} = require 'squid'\n\n# create s3 publisher\npublisher = new Publisher bucket: 'name',  key: 'xx', secret: 'xx'\n\n# define filter closure that will only select js, png, and css file\nfilter = (f, stat) -> stat.isDirectory() or /\\.(js|png|css)$/.test f\n\n# publish 'public' dir to root folder '' of the  bucket\npublisher.publishDir {origin: 'public', dest: '', filter}, cb\n\n```\n\n\nSupported files for compilation\n-------------------------------\n\nsquid can compile the following files\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>template are compiled into js and wrapped in a requirejs define function</td>\n  </tr>\n</table>\n\nfiles Dependencies\n-------------------\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies for each supported file format\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\nproject structure\n-----------------\n\nTo work with squid, your project should follow this file architecture:\n\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, this will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\nTodo\n----\n\n- add tests\n- remove hardcoded compilation settings and add configuration for coffee, jade and stylus compilers\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","_id":"squid@0.0.22","dist":{"shasum":"d666369bce6de637291f934a6a9dde34b1ff8f2a","tarball":"https://registry.npmjs.org/squid/-/squid-0.0.22.tgz","integrity":"sha512-Qo7KnLL8ZfkXvdIvOS+5OUfvcd5/77e+EunMIXleIMlzbec4mvsak0pS63ICL91peFNgaW7bTh8xyRc4hh6F4Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCZen/hDT/uGIvFRgAr6EVypPbMjvx+csfDFemzf3I3swIhAJnbHiQNem5TkQ2YgKC1yaWMVhbZhSpkunXWqfpEpJJO"}]},"_npmVersion":"1.1.62","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.0.30":{"name":"squid","description":"toolbox for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.0.30","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/runner","sb":"./bin/builder"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","knox":"0.x","mkdirp":"0.x","mime":"1.x","moment":"1.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"0.x","underscore.string":"2.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"cake build"},"readme":"Squid\n=====\n\nSquid compiles your coffee, jade and stylus files, and publish  your assets to amazon s3\n\n\nInstall\n-------\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\nsq command\n----------\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nor if your main script isn't index.js\n\n```\n$ sq my-script.js\n```\n\nto start node in debug mode\n\n```\n$ sq -d\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- restart your server when a file change inside /lib (server script directory by convention)\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\n\nsb command\n----------\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\n{builder} = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\ns3 publication\n--------------\n\nSquid publisher let you upload files within a directory to your amazon s3 bucket.\nsquid will only upload  new or modified files to your bucket.\nsquid will upload files with a far expiry date and will zip text files\n\n```coffee\n{Publisher} = require 'squid'\n\n# create s3 publisher\npublisher = new Publisher bucket: 'name',  key: 'xx', secret: 'xx'\n\n# define filter closure that will only select js, png, and css file\nfilter = (f, stat) -> stat.isDirectory() or /\\.(js|png|css)$/.test f\n\n# publish 'public' dir to root folder '' of the  bucket\npublisher.publishDir {origin: 'public', dest: '', filter}, cb\n\n```\n\n\nSupported files for compilation\n-------------------------------\n\nsquid can compile the following files\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>template are compiled into js and wrapped in a requirejs define function</td>\n  </tr>\n</table>\n\nfiles Dependencies\n-------------------\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies for each supported file format\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\nproject structure\n-----------------\n\nTo work with squid, your project should follow this file architecture:\n\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, this will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\nTodo\n----\n\n- add tests\n- remove hardcoded compilation settings and add configuration for coffee, jade and stylus compilers\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","_id":"squid@0.0.30","dist":{"shasum":"31610d4735d09a7c00dcf65f57ab0a9b55088fa8","tarball":"https://registry.npmjs.org/squid/-/squid-0.0.30.tgz","integrity":"sha512-SE6e2Vz5lAsqJXp8uRJrmG40dCm6OKL7wr6BcJZ/BT3RruMPEMD8gSblH8eMepKUUSDIVXMvyuVyRhHWcyxoeA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDuuCKfqx/mOL60G7FMqIW5jcSX4fViMWt5eBOEfEU89AIgT4CuOqroAoqIoHFmOiMJoJvPSIOpAoiiSYrDCO+oJqw="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.0.31":{"name":"squid","description":"toolbox for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.0.31","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/runner","sb":"./bin/builder"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","knox":"0.x","mkdirp":"0.x","mime":"1.x","moment":"1.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"0.x","underscore.string":"2.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"cake build"},"readme":"Squid\n=====\n\nSquid compiles your coffee, jade and stylus files, and publish  your assets to amazon s3\n\n\nInstall\n-------\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\nsq command\n----------\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nor if your main script isn't index.js\n\n```\n$ sq my-script.js\n```\n\nto start node in debug mode\n\n```\n$ sq -d\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- restart your server when a file change inside /lib (server script directory by convention)\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\n\nsb command\n----------\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\n{builder} = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\ns3 publication\n--------------\n\nSquid publisher let you upload files within a directory to your amazon s3 bucket.\nsquid will only upload  new or modified files to your bucket.\nsquid will upload files with a far expiry date and will zip text files\n\n```coffee\n{Publisher} = require 'squid'\n\n# create s3 publisher\npublisher = new Publisher bucket: 'name',  key: 'xx', secret: 'xx'\n\n# define filter closure that will only select js, png, and css file\nfilter = (f, stat) -> stat.isDirectory() or /\\.(js|png|css)$/.test f\n\n# publish 'public' dir to root folder '' of the  bucket\npublisher.publishDir {origin: 'public', dest: '', filter}, cb\n\n```\n\n\nSupported files for compilation\n-------------------------------\n\nsquid can compile the following files\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>template are compiled into js and wrapped in a requirejs define function</td>\n  </tr>\n</table>\n\nfiles Dependencies\n-------------------\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies for each supported file format\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\nproject structure\n-----------------\n\nTo work with squid, your project should follow this file architecture:\n\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, this will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\nTodo\n----\n\n- add tests\n- remove hardcoded compilation settings and add configuration for coffee, jade and stylus compilers\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","_id":"squid@0.0.31","dist":{"shasum":"b98a04810f4301a7f8b7f751a9711e6f07b81299","tarball":"https://registry.npmjs.org/squid/-/squid-0.0.31.tgz","integrity":"sha512-ngnbvJwTU5yV4SJ/bGXuPY9LthSL9/qXs7YS3J6qFok9S2mPZdrVp6igZ03MuJxLf7Tna7sLz41WUVUbZZ/ZDg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDKZvhi/Cx73hZRqzwAoooBsofbzHrDChCiuKEvT0ia7QIgKjtP2g6xHDt2rrtzNG0J861MJCFEdztJX16uZok28G4="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.0.32":{"name":"squid","description":"toolbox for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.0.32","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/runner","sb":"./bin/builder"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","knox":"0.x","mkdirp":"0.x","mime":"1.x","moment":"1.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"0.x","underscore.string":"2.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"cake build"},"readme":"Squid\n=====\n\nSquid compiles your coffee, jade and stylus files, and publish  your assets to amazon s3\n\n\nInstall\n-------\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\nsq command\n----------\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nor if your main script isn't index.js\n\n```\n$ sq my-script.js\n```\n\nto start node in debug mode\n\n```\n$ sq -d\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- restart your server when a file change inside /lib (server script directory by convention)\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\n\nsb command\n----------\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\n{builder} = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\ns3 publication\n--------------\n\nSquid publisher let you upload files within a directory to your amazon s3 bucket.\nsquid will only upload  new or modified files to your bucket.\nsquid will upload files with a far expiry date and will zip text files\n\n```coffee\n{Publisher} = require 'squid'\n\n# create s3 publisher\npublisher = new Publisher bucket: 'name',  key: 'xx', secret: 'xx'\n\n# define filter closure that will only select js, png, and css file\nfilter = (f, stat) -> stat.isDirectory() or /\\.(js|png|css)$/.test f\n\n# publish 'public' dir to root folder '' of the  bucket\npublisher.publishDir {origin: 'public', dest: '', filter}, cb\n\n```\n\n\nSupported files for compilation\n-------------------------------\n\nsquid can compile the following files\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>template are compiled into js and wrapped in a requirejs define function</td>\n  </tr>\n</table>\n\nfiles Dependencies\n-------------------\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies for each supported file format\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\nproject structure\n-----------------\n\nTo work with squid, your project should follow this file architecture:\n\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, this will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\nTodo\n----\n\n- add tests\n- remove hardcoded compilation settings and add configuration for coffee, jade and stylus compilers\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","_id":"squid@0.0.32","dist":{"shasum":"f96c1a8c045a9b05b673cfdaf5b9701a5a20ef9f","tarball":"https://registry.npmjs.org/squid/-/squid-0.0.32.tgz","integrity":"sha512-MA9OBwb5skk5K4XlIo2CmpfUgdpBpkz6KYT5WNQU4tRC2MqCc5rAELpHbYLFTxUJQAnvBlgAJRxThbdaB2ylZA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBZcJyjSVd7to/zCiA34HX9438XZfzv0O5VwBvFNOxP4AiAF+nfNntjVfcLzjuEPZsV/fS6OTrUs7SczEUrYaHnTkg=="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.0.33":{"name":"squid","description":"toolbox for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.0.33","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/runner","sb":"./bin/builder"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","knox":"0.x","mkdirp":"0.x","mime":"1.x","moment":"1.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"0.x","underscore.string":"2.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"cake build"},"readme":"Squid\n=====\n\nSquid compiles your coffee, jade and stylus files, and publish  your assets to amazon s3\n\n\nInstall\n-------\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\nsq command\n----------\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nor if your main script isn't index.js\n\n```\n$ sq my-script.js\n```\n\nto start node in debug mode\n\n```\n$ sq -d\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- restart your server when a file change inside /lib (server script directory by convention)\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\n\nsb command\n----------\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\n{builder} = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\nSupported files for compilation\n-------------------------------\n\nsquid can compile the following files\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>template are compiled into js and wrapped in a requirejs define function</td>\n  </tr>\n</table>\n\nfiles Dependencies\n-------------------\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies for each supported file format\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\nConfiguration\n-------------\nYou can define a squid.json object to specify src and build folder, and compilation options\n\n- default options if you dont add a squid.json to your project\n\n```json\n{\n  \"src\": \"src\",\n  \"build\": \".\",\n  \"jade\": {\n    \"amd\": true\n  },\n  \"stylus\": {\n    \"url\": [\"public\"],\n    \"paths\": [\"public/images\"]\n  }\n}\n```\nSo if you have the following project\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, it will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\n\nIf your project structure is different you can add a custom squid.json configuration: \n\nThe following config \n- use mobile as src folder\n- compile mobile/js/* to app/assets/javascripts/mobile\t\t\n- compile mobile/stylesheets/* to app/assets/stylesheets/mobile\n- config stylus to lookup images in app/assets/images/mobile\n- does not wrap jade templates with an amd wrapper\n\n```json\n\n{\n  \"src\": \"mobile\",\n\t\"build\": \".\", \n\t\"mappings\": [\t\t\n\t\t{\"from\": \"js\", \"to\": \"app/assets/javascripts/mobile\"}, \n\t\t{\"from\": \"stylesheets\", \"to\": \"app/assets/stylesheets/mobile\"}\n\t],\n\t\"stylus\": { \n\t\t\"paths\": [\"app/assets/images/mobile\"],\n\t\t\"url\": [\"app/assets/\"]\n\t}, \t\n  \t\"jade\": { \n    \t\t\"amd\": false\n\t}\n}\n```\n\ns3 publication\n--------------\n\nSquid publisher let you upload files within a directory to your amazon s3 bucket.\nsquid will only upload  new or modified files to your bucket.\nsquid will upload files with a far expiry date and will zip text files\n\n```coffee\n{Publisher} = require 'squid'\n\n# create s3 publisher\npublisher = new Publisher bucket: 'name',  key: 'xx', secret: 'xx'\n\n# define filter closure that will only select js, png, and css file\nfilter = (f, stat) -> stat.isDirectory() or /\\.(js|png|css)$/.test f\n\n# publish 'public' dir to root folder '' of the  bucket\npublisher.publishDir {origin: 'public', dest: '', filter}, cb\n\n```\n\n\nTODO\n----\n- Add more compiler options for compiler (PR are welcome)\n- Write some tests !!!\n\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","_id":"squid@0.0.33","dist":{"shasum":"c8a22fcca3309b344dbb9e472ad2754b8fa74f66","tarball":"https://registry.npmjs.org/squid/-/squid-0.0.33.tgz","integrity":"sha512-AwRqfJUAuHnoBz3r3A1aVlQjHu/TrCd9BumWTxuhHnhn35cnPSNeU147olOdVZn2/c5cAWn3gB6WMyKpK862DQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFWJGT3uzYQQstkjywT94knrI87JCZ+30OdLiFDQjvE9AiBeI9N/sWMikhXRb/DBbptdOevwKQNnS0H3LeSBE9VVCA=="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.0.34":{"name":"squid","description":"toolbox for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.0.34","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/runner","sb":"./bin/builder"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","knox":"0.x","mkdirp":"0.x","mime":"1.x","moment":"1.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"0.x","underscore.string":"2.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"cake build"},"readme":"Squid\n=====\n\nSquid compiles your coffee, jade and stylus files, and publish  your assets to amazon s3\n\n\nInstall\n-------\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\nsq command\n----------\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nor if your main script isn't index.js\n\n```\n$ sq my-script.js\n```\n\nto start node in debug mode\n\n```\n$ sq -d\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- restart your server when a file change inside /lib (server script directory by convention)\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\n\nsb command\n----------\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\n{builder} = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\nSupported files for compilation\n-------------------------------\n\nsquid can compile the following files\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>template are compiled into js and wrapped in a requirejs define function</td>\n  </tr>\n</table>\n\nfiles Dependencies\n-------------------\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies for each supported file format\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\nConfiguration\n-------------\nYou can define a squid.json object to specify src and build folder, and compilation options\n\n- default options if you dont add a squid.json to your project\n\n```json\n{\n  \"src\": \"src\",\n  \"build\": \".\",\n  \"jade\": {\n    \"amd\": true\n  },\n  \"stylus\": {\n    \"url\": [\"public\"],\n    \"paths\": [\"public/images\"]\n  }\n}\n```\nSo if you have the following project\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, it will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\n\nIf your project structure is different you can add a custom squid.json configuration: \n\nThe following config \n- use mobile as src folder\n- compile mobile/js/* to app/assets/javascripts/mobile\t\t\n- compile mobile/stylesheets/* to app/assets/stylesheets/mobile\n- config stylus to lookup images in app/assets/images/mobile\n- does not wrap jade templates with an amd wrapper\n\n```json\n\n{\n  \"src\": \"mobile\",\n\t\"build\": \".\", \n\t\"mappings\": [\t\t\n\t\t{\"from\": \"js\", \"to\": \"app/assets/javascripts/mobile\"}, \n\t\t{\"from\": \"stylesheets\", \"to\": \"app/assets/stylesheets/mobile\"}\n\t],\n\t\"stylus\": { \n\t\t\"paths\": [\"app/assets/images/mobile\"],\n\t\t\"url\": [\"app/assets/\"]\n\t}, \t\n  \t\"jade\": { \n    \t\t\"amd\": false\n\t}\n}\n```\n\ns3 publication\n--------------\n\nSquid publisher let you upload files within a directory to your amazon s3 bucket.\nsquid will only upload  new or modified files to your bucket.\nsquid will upload files with a far expiry date and will zip text files\n\n```coffee\n{Publisher} = require 'squid'\n\n# create s3 publisher\npublisher = new Publisher bucket: 'name',  key: 'xx', secret: 'xx'\n\n# define filter closure that will only select js, png, and css file\nfilter = (f, stat) -> stat.isDirectory() or /\\.(js|png|css)$/.test f\n\n# publish 'public' dir to root folder '' of the  bucket\npublisher.publishDir {origin: 'public', dest: '', filter}, cb\n\n```\n\n\nTODO\n----\n- Add more compiler options for compiler (PR are welcome)\n- Write some tests !!!\n\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","_id":"squid@0.0.34","dist":{"shasum":"2c828bc3ff430da96e2268ff2b190d8ae29b325d","tarball":"https://registry.npmjs.org/squid/-/squid-0.0.34.tgz","integrity":"sha512-rOTO9SuEGoPdc+jNA1ZamFpWSTmjH97Ohlm2/sZUOSmFjQbdjWkrn6DAezxzYyAem1E22NrJcp+HENlj83Kv5w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDNIGXNR38OrNsLK3It0jwBWW4riZYf4ifu3wKMiRGZVQIgLK+l7Eh69EjvsMa+e+QbeIBvNRoA2LVkqii1BvpMoTg="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.0.35":{"name":"squid","description":"toolbox for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.0.35","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/runner","sb":"./bin/builder"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","knox":"0.x","mkdirp":"0.x","mime":"1.x","moment":"1.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"0.x","underscore.string":"2.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"cake build"},"readme":"# Squid\n\n\nSquid compiles your coffee, jade and stylus files, and publish  your assets to amazon s3\n\n\n## Install\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\n## sq command\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nor if your main script isn't index.js\n\n```\n$ sq my-script.js\n```\n\nto start node in debug mode\n\n```\n$ sq -d\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- restart your server when a file change inside /lib (server script directory by convention)\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\n\n## sb command\n\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\n{builder} = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\n## Supported files for compilation\n\nsquid can compile the following files\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>template are compiled into js and wrapped in a requirejs define function</td>\n  </tr>\n</table>\n\n## files Dependencies\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies for each supported file format\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\n## Configuration\n\nYou can define a squid.json object to specify folder mappings, and compilation options\n\n- default options if you dont add a squid.json to your project\n\n```json\n{\n  \"src\": \"src\", /* source folder */\n  \"out\": \".\", /* build  folder */\n  \"jade\": { /* jade default options */\n    \"amd\": true /* wrap jade template inside a requirejs define block */\t\n  },\n  \"stylus\": { /* stylus default options */\n    \"url\": [\"public\"], /* root public files folder  */\n    \"paths\": [\"public/images\"] /* image lookup path  */\n  }\n}\n```\nSo if you have the following project\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, it will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\n### Optional configuration\nIf your project structure is different you can add a custom squid.json configuration: \n\n#### mappings\n\nYou can define mappings rules to output your files into different folders\n\nThe following squid.json config \n- use mobile as src folder\n- compile mobile/js/* to app/assets/javascripts/mobile\t\t\n- compile mobile/stylesheets/* to app/assets/stylesheets/mobile\n\n```json\n{\n\"src\": \"mobile\",\n\"mappings\": [\t\t\n\t{\"from\": \"js\", \"to\": \"app/assets/javascripts/mobile\"}, \n\t{\"from\": \"stylesheets\", \"to\": \"app/assets/stylesheets/mobile\"}\t\n]\n}\n```\n\n### clone\n\nYou can specify different clone rules to output your files in one or more output destinations\n\nThe following squid.json config \n- compile your files to the default output folder (project root)\n- clones everything under src/public to phonegap/js\n\n```json\n{\n  \"clone\": [\n    { \"match\": \"src/public\", \"to\" : \"phonegap/js\"}\n  ]\n}\n```\n\n## s3 publication\n\nSquid publisher let you upload files within a directory to your amazon s3 bucket.\n- it only uploads new or modified files to your bucket.\n- it sets a far expiry date and zip files\n\n```coffee\n{Publisher} = require 'squid'\n\n# create s3 publisher\npublisher = new Publisher bucket: 'name',  key: 'xx', secret: 'xx'\n\n# define filter closure that will only select js, png, and css file\nfilter = (f, stat) -> stat.isDirectory() or /\\.(js|png|css)$/.test f\n\n# publish 'public' dir to root folder '' of the  bucket\npublisher.publishDir {origin: 'public', dest: '', filter}, cb\n\n```\n\n\n## TODO\n\n- Add more compiler options for compiler (PR are welcome)\n- Write some tests !!!\n\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","_id":"squid@0.0.35","dist":{"shasum":"a3411f6808d8778b641cf6672d2a53deeba6aa70","tarball":"https://registry.npmjs.org/squid/-/squid-0.0.35.tgz","integrity":"sha512-82v0MBd1Y4YP+xs3L8wfNqvAlxWr2uRtZMR+ACO3e00CYlMjMB3C8il0d4sPdYEysvZlKXbuJNzvNGO97Kn4QQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID8R50nvIyS1CcB2urxbopya39l1a9QszXEjpYzpSJHoAiBUdUS4lsXg1vtYy+YOM/YdjcsOSPpt7yKMSd+gkNHKhw=="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.0.36":{"name":"squid","description":"toolbox for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.0.36","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/runner","sb":"./bin/builder"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","knox":"0.x","mkdirp":"0.x","mime":"1.x","moment":"1.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"0.x","underscore.string":"2.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"cake build"},"readme":"# Squid\n\n\nSquid compiles your coffee, jade and stylus files, and publish  your assets to amazon s3\n\n\n## Install\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\n## sq command\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nor if your main script isn't index.js\n\n```\n$ sq my-script.js\n```\n\nto start node in debug mode\n\n```\n$ sq -d\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- restart your server when a file change inside /lib (server script directory by convention)\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\n\n## sb command\n\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\n{builder} = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\n## Supported files for compilation\n\nsquid can compile the following files. \nWant to add support for other file types? New builder can easily be implemented using the base Builder classe\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>template are compiled into js and wrapped in a requirejs define function</td>\n  </tr>\n</table>\n\n## files Dependencies\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies for each supported file format\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\n## Configuration\n\nYou can define a squid.json object to specify folder mappings, and compilation options\nHere are the default options if you dont add a squid.json to your project\n\n```js\n{\n  \"src\": \"src\", /* source folder */\n  \"out\": \".\", /* build  folder */\n  \"jade\": { /* jade default options */\n    \"amd\": true /* wrap jade template inside a requirejs define block */\t\n  },\n  \"stylus\": { /* stylus default options */\n    \"url\": [\"public\"], /* root public files folder  */\n    \"paths\": [\"public/images\"] /* image lookup path  */\n  }\n}\n```\nSo if you have the following project\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, squid will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\n### Optional configuration\nIf your project structure is different you can add a custom squid.json configuration: \n\n#### mappings\n\nYou can define mappings rules to output your files into different folders\n\nThe following squid.json config \n- use mobile as src folder\n- compile mobile/js/* to app/assets/javascripts/mobile\t\t\n- compile mobile/stylesheets/* to app/assets/stylesheets/mobile\n\n```json\n{\n\"src\": \"mobile\",\n\"mappings\": [\t\t\n\t{\"from\": \"js\", \"to\": \"app/assets/javascripts/mobile\"}, \n\t{\"from\": \"stylesheets\", \"to\": \"app/assets/stylesheets/mobile\"}\t\n]\n}\n```\n\n### post build\n\nYou can specify a script to launch after each successful file build\n\nThe following squid.json config will trigger **make bundle-app**  each time a file is successfully \nbuilt in src/public\n\n```json\n{\n  \"post_build\": {\"match\": \"src/public\", \"cmd\": \"make bundle-app\" }\n}\n```\n\n### clone\n\nYou can specify multiple output folders for your build\n\nThe following squid.json config \n- compile your files to the default output folder (project root)\n- clones everything under src/public to phonegap/js\n\n```json\n{\n  \"clone\": [\n    { \"match\": \"src/public\", \"to\" : \"phonegap/js\"}\n  ]\n}\n```\n\n\n## s3 publication\n\nSquid publisher let you upload files within a directory to your amazon s3 bucket.\n- it only uploads new or modified files to your bucket.\n- it sets a far expiry date and zip files\n\n```coffee\n{Publisher} = require 'squid'\n\n# create s3 publisher\npublisher = new Publisher bucket: 'name',  key: 'xx', secret: 'xx'\n\n# define filter closure that will only select js, png, and css file\nfilter = (f, stat) -> stat.isDirectory() or /\\.(js|png|css)$/.test f\n\n# publish 'public' dir to root folder '' of the  bucket\npublisher.publishDir {origin: 'public', dest: '', filter}, cb\n\n```\n\n\n## TODO\n\n- Add more compiler options for compiler (PR are welcome)\n- Write some tests !!!\n\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","_id":"squid@0.0.36","dist":{"shasum":"9033114340007a8cbd84e7086442ef8f2d377ce3","tarball":"https://registry.npmjs.org/squid/-/squid-0.0.36.tgz","integrity":"sha512-IJ7KrPnmzqlMWzXTFoAiOLoZ5ZLVgKMJtNpb2XAcapr8fqIckI84Ku9x5at91XTRa/dlq7vIPTxHDwok2rjZ9g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCY+MkpmFnyblz+pZ40JeYcQxkyJVrHpQSW4fu+Gl8B5AIhANo7yb2hZz5Dl6d+/rQL1a0EWaV67QFuKj2qbBiKp4GW"}]},"_npmVersion":"1.1.62","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.1.0":{"name":"squid","description":"toolbox for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.1.0","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/runner","sb":"./bin/builder"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","knox":"0.x","mkdirp":"0.x","mime":"1.x","moment":"1.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"0.x","underscore.string":"2.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"cake build"},"readme":"# Squid\n\n\nSquid compiles your coffee, jade and stylus files, and publish  your assets to amazon s3\n\n\n## Install\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\n## sq command\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nor if your main script isn't index.js\n\n```\n$ sq my-script.js\n```\n\nto start node in debug mode\n\n```\n$ sq -d\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- restart your server when a file change inside /lib (server script directory by convention)\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\n\n## sb command\n\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\n{builder} = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\n## Supported files for compilation\n\nsquid can compile the following files.\nWant to add support for other file types? New builder can easily be implemented using the base Builder classe\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>template are compiled into js and wrapped in a requirejs define function</td>\n  </tr>\n</table>\n\n## files Dependencies\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies for each supported file format\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\n## Configuration\n\nYou can define a squid.json object to specify folder mappings, and compilation options\nHere are the default options if you dont add a squid.json to your project\n\n```js\n{\n  \"src\": \"src\", /* source folder */\n  \"out\": \".\", /* build  folder */\n  \"jade\": { /* jade default options */\n    \"amd\": true /* wrap jade template inside a requirejs define block */\n  },\n  \"stylus\": { /* stylus default options */\n    \"url\": {paths: [\"public\"]}, /* url options  */\n    \"paths\": [\"public/images\"] /* image lookup path  */\n  }\n}\n```\nSo if you have the following project\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, squid will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\n### Optional configuration\nIf your project structure is different you can add a custom squid.json configuration:\n\n#### mappings\n\nYou can define mappings rules to output your files into different folders\n\nThe following squid.json config\n- use mobile as src folder\n- compile mobile/js/* to app/assets/javascripts/mobile\n- compile mobile/stylesheets/* to app/assets/stylesheets/mobile\n\n```json\n{\n\"src\": \"mobile\",\n\"mappings\": [\n\t{\"from\": \"js\", \"to\": \"app/assets/javascripts/mobile\"},\n\t{\"from\": \"stylesheets\", \"to\": \"app/assets/stylesheets/mobile\"}\n]\n}\n```\n\n### post build\n\nYou can specify a script to launch after each successful file build\n\nThe following squid.json config will trigger **make bundle-app**  each time a file is successfully\nbuilt in src/public\n\n```json\n{\n  \"post_build\": {\"match\": \"src/public\", \"cmd\": \"make bundle-app\" }\n}\n```\n\n### clone\n\nYou can specify multiple output folders for your build\n\nThe following squid.json config\n- compile your files to the default output folder (project root)\n- clones everything under src/public to phonegap/js\n\n```json\n{\n  \"clone\": [\n    { \"match\": \"src/public\", \"to\" : \"phonegap/js\"}\n  ]\n}\n```\n\n\n## s3 publication\n\nSquid publisher let you upload files within a directory to your amazon s3 bucket.\n- it only uploads new or modified files to your bucket.\n- it sets a far expiry date and zip files\n\n```coffee\n{Publisher} = require 'squid'\n\n# create s3 publisher\npublisher = new Publisher bucket: 'name',  key: 'xx', secret: 'xx'\n\n# define filter closure that will only select js, png, and css file\nfilter = (f, stat) -> stat.isDirectory() or /\\.(js|png|css)$/.test f\n\n# publish 'public' dir to root folder '' of the  bucket\npublisher.publishDir {origin: 'public', dest: '', filter}, cb\n\n```\n\n\n## TODO\n\n- Add more compiler options for compiler (PR are welcome)\n- Write some tests !!!\n\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","_id":"squid@0.1.0","dist":{"shasum":"f957b635a9624b9f50438a0c46423f04daec85ef","tarball":"https://registry.npmjs.org/squid/-/squid-0.1.0.tgz","integrity":"sha512-74AY7K99UGhluJdNY+2c0Gj9rKFM3fNdVIGx2xHdJbenvWkNBvvelWasPF4uVVnUyoEJA2lQAEcOdnymhDvG5Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEslaA0ixdRkaBiBVmtL/2EawyG2bz5Ne4YwIRakRGUSAiEAsT+k+QPswKICGLQ+aF2tHntEAoau9enDWTTd7sOFVPs="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.1.1":{"name":"squid","description":"toolbox for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.1.1","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/runner.js","sb":"./bin/builder.js"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","knox":"0.x","mkdirp":"0.x","mime":"1.x","moment":"2.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"0.x","underscore.string":"2.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"make build"},"readme":"# Squid\n\n\nSquid compiles your coffee, jade and stylus files, and publish  your assets to amazon s3\n\n\n## Install\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\n## sq command\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nor if your main script isn't index.js\n\n```\n$ sq my-script.js\n```\n\nto start node in debug mode\n\n```\n$ sq -d\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- restart your server when a file change inside /lib (server script directory by convention)\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\n\n## sb command\n\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\n{builder} = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\n## Supported files for compilation\n\nsquid can compile the following files.\nWant to add support for other file types? New builder can easily be implemented using the base Builder classe\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>template are compiled into js and wrapped in a requirejs define function</td>\n  </tr>\n</table>\n\n## files Dependencies\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies for each supported file format\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\n## Configuration\n\nYou can define a squid.json object to specify folder mappings, and compilation options\nHere are the default options if you dont add a squid.json to your project\n\n```js\n{\n  \"src\": \"src\", /* source folder */\n  \"out\": \".\", /* build  folder */\n  \"jade\": { /* jade default options */\n    \"amd\": true /* wrap jade template inside a requirejs define block */\n  },\n  \"stylus\": { /* stylus default options */\n    \"url\": {paths: [\"public\"]}, /* url options  */\n    \"paths\": [\"public/images\"] /* image lookup path  */\n  }\n}\n```\nSo if you have the following project\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, squid will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\n### Optional configuration\nIf your project structure is different you can add a custom squid.json configuration:\n\n#### mappings\n\nYou can define mappings rules to output your files into different folders\n\nThe following squid.json config\n- use mobile as src folder\n- compile mobile/js/* to app/assets/javascripts/mobile\n- compile mobile/stylesheets/* to app/assets/stylesheets/mobile\n\n```json\n{\n\"src\": \"mobile\",\n\"mappings\": [\n\t{\"from\": \"js\", \"to\": \"app/assets/javascripts/mobile\"},\n\t{\"from\": \"stylesheets\", \"to\": \"app/assets/stylesheets/mobile\"}\n]\n}\n```\n\n### post build\n\nYou can specify a script to launch after each successful file build\n\nThe following squid.json config will trigger **make bundle-app**  each time a file is successfully\nbuilt in src/public\n\n```json\n{\n  \"post_build\": {\"match\": \"src/public\", \"cmd\": \"make bundle-app\" }\n}\n```\n\n### clone\n\nYou can specify multiple output folders for your build\n\nThe following squid.json config\n- compile your files to the default output folder (project root)\n- clones everything under src/public to phonegap/js\n\n```json\n{\n  \"clone\": [\n    { \"match\": \"src/public\", \"to\" : \"phonegap/js\"}\n  ]\n}\n```\n\n\n## s3 publication\n\nSquid publisher let you upload files within a directory to your amazon s3 bucket.\n- it only uploads new or modified files to your bucket.\n- it sets a far expiry date and zip files\n\n```coffee\n{Publisher} = require 'squid'\n\n# create s3 publisher\npublisher = new Publisher bucket: 'name',  key: 'xx', secret: 'xx'\n\n# define filter closure that will only select js, png, and css file\nfilter = (f, stat) -> stat.isDirectory() or /\\.(js|png|css)$/.test f\n\n# publish 'public' dir to root folder '' of the  bucket\npublisher.publishDir {origin: 'public', dest: '', filter}, cb\n\n```\n\n\n## TODO\n\n- Add more compiler options for compiler (PR are welcome)\n- Write some tests !!!\n\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","readmeFilename":"README.md","_id":"squid@0.1.1","dist":{"shasum":"3a3e4284b381b5a8bc2e1c61d846a48419b88c7d","tarball":"https://registry.npmjs.org/squid/-/squid-0.1.1.tgz","integrity":"sha512-a27pYshNoJo2ajpiEATmbtcIpqbH2Xuqy2gvyevh9M0lF4ArfgpT44CwAEM6i1goD52UjZ6BUoWTy1/TRt6OXQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDGfjB+R97FZ6o0QHj6haTGbxboMlBKsqiz4TR/wNdslwIgHSxkv18lnPy8ccA3gSLVnCsTPobbVdAdjwJr3FpJ6PA="}]},"_from":".","_npmVersion":"1.2.11","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.1.3":{"name":"squid","description":"build utility for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.1.3","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/watch.js","sb":"./bin/builder.js"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","findr":"0.x","mkdirp":"0.x","moment":"2.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"0.x","underscore.string":"2.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"make build"},"readme":"Squid is a command line tool that monitor changes in the file system and compiles your files automatically each time you save.\nIt supports coffeescript, stylus and Jade, but can easily be extended to other file types.\n\n## Install\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\n## sq command\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- auto-restart your node server when a file loaded by your server script changes\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\nBy default squid will relaunch index.js each time a change occurs in /lib if your main script isn't index.js\nyou can specify a different script\n\n```\n$ sq my-script.js\n```\n\nto launch node in debug mode use -d option\n\n```\n$ sq -d\n```\n\n## sb command\n\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\nbuilder = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\n## Supported files for compilation\n\nsquid can compile the following files.\nWant to add support for other file types? New builder can easily be implemented using the base Builder classe\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.json</td><td>copy</td><td>validate and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>template are compiled into js and wrapped in a requirejs define function</td>\n  </tr>\n</table>\n\n## files Dependencies\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\n## Configuration\n\nYou can define a squid.json object to specify folder mappings, and compilation options\nHere are the default options if you dont add a squid.json to your project\n\n```js\n{\n  \"src\": \"src\", /* source folder */\n   \"server\": {\n      \"script\": \"index.js\", /* server script to execute */\n       env: {}\t, /*additional ennvironment variables to load*/\n   },\n  \"out\": \".\", /* build  folder */\n  \"jade\": { /* jade default options */\n    \"amd\": true /* wrap jade template inside a requirejs define block */\n  },\n  \"stylus\": { /* stylus default options */\n    \"url\": {paths: [\"public\"]}, /* url options  */\n    \"paths\": [\"public/images\"] /* image lookup path  */\n  }\n}\n```\nSo if you have the following project\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, squid will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\n\n#### mappings\n\nYou can define mappings rules to output your files into different folders\n\nThe following squid.json config will\n- use mobile as src folder\n- compile mobile/js/* to app/assets/javascripts/mobile\n- compile mobile/stylesheets/* to app/assets/stylesheets/mobile\n\n```json\n{\n\"src\": \"mobile\",\n\"mappings\": [\n\t{\"from\": \"js\", \"to\": \"app/assets/javascripts/mobile\"},\n\t{\"from\": \"stylesheets\", \"to\": \"app/assets/stylesheets/mobile\"}\n]\n}\n```\n\n## post build\n\nYou can specify a script to launch after each successful file build\n\nThe following squid.json config will trigger **make bundle-app**  each time a file is successfully\nbuilt in src/public\n\n```json\n{\n  \"post_build\": {\"match\": \"src/public\", \"cmd\": \"make bundle-app\" }\n}\n```\n\n## TODO\n\n- Add more compiler options for compiler (PR are welcome)\n\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","readmeFilename":"README.md","_id":"squid@0.1.3","dist":{"shasum":"013c98d70a0b33b9d5e8cb1657ba556b64aa50e5","tarball":"https://registry.npmjs.org/squid/-/squid-0.1.3.tgz","integrity":"sha512-VaLtWhFRFRX/WyxmuMkFqc0iHAJC/F+ykJs3Oo7v9RtEztlwszCC2E8fuODivG2wLxi7XWv8fHd7MiZGDkHBzA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC0Wtup2jNS/CM0UzZdXkpoxHi6OK28+hySjzguheeRSAIgNBbwyfF3BLk9BgeNGZ50CgjtzeyJM8yL2Q0CkAn1MGI="}]},"_from":".","_npmVersion":"1.2.11","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.1.4":{"name":"squid","description":"build utility for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.1.4","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/watch.js","sb":"./bin/builder.js"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","handlebars":"1.x","findr":"0.x","mkdirp":"0.x","moment":"2.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"0.x","underscore.string":"2.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"make build"},"readme":"Squid is a command line tool that monitor changes in the file system and compiles your files automatically each time you save.\nIt supports coffeescript, stylus and Jade, but can easily be extended to other file types.\n\n## Install\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\n## sq command\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- auto-restart your node server when a file loaded by your server script changes\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\nBy default squid will relaunch index.js each time a change occurs in /lib if your main script isn't index.js\nyou can specify a different script\n\n```\n$ sq my-script.js\n```\n\nto launch node in debug mode use -d option\n\n```\n$ sq -d\n```\n\n## sb command\n\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\nbuilder = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\n## Supported files for compilation\n\nsquid can compile the following files.\nWant to add support for other file types? New builder can easily be implemented using the base Builder classe\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.json</td><td>copy</td><td>validate and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>template are compiled into js and wrapped in a requirejs define function</td>\n  </tr>\n</table>\n\n## files Dependencies\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\n## Configuration\n\nYou can define a squid.json object to specify folder mappings, and compilation options\nHere are the default options if you dont add a squid.json to your project\n\n```js\n{\n  \"src\": \"src\", /* source folder */\n   \"server\": {\n      \"script\": \"index.js\", /* server script to execute */\n       env: {}\t, /*additional ennvironment variables to load*/\n   },\n  \"out\": \".\", /* build  folder */\n  \"jade\": { /* jade default options */\n    \"amd\": true /* wrap jade template inside a requirejs define block */\n  },\n  \"stylus\": { /* stylus default options */\n    \"url\": {paths: [\"public\"]}, /* url options  */\n    \"paths\": [\"public/images\"] /* image lookup path  */\n  }\n}\n```\nSo if you have the following project\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, squid will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\n\n#### mappings\n\nYou can define mappings rules to output your files into different folders\n\nThe following squid.json config will\n- use mobile as src folder\n- compile mobile/js/* to app/assets/javascripts/mobile\n- compile mobile/stylesheets/* to app/assets/stylesheets/mobile\n\n```json\n{\n\"src\": \"mobile\",\n\"mappings\": [\n\t{\"from\": \"js\", \"to\": \"app/assets/javascripts/mobile\"},\n\t{\"from\": \"stylesheets\", \"to\": \"app/assets/stylesheets/mobile\"}\n]\n}\n```\n\n## post build\n\nYou can specify a script to launch after each successful file build\n\nThe following squid.json config will trigger **make bundle-app**  each time a file is successfully\nbuilt in src/public\n\n```json\n{\n  \"post_build\": {\"match\": \"src/public\", \"cmd\": \"make bundle-app\" }\n}\n```\n\n## TODO\n\n- Add more compiler options for compiler (PR are welcome)\n\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","readmeFilename":"README.md","_id":"squid@0.1.4","dist":{"shasum":"f1b295aef0609674ab9ccaa4bb4e96cfb3aabc15","tarball":"https://registry.npmjs.org/squid/-/squid-0.1.4.tgz","integrity":"sha512-uIreDoVF0Zloony75Tix/aeAAMqeNAGH3jJkzep+hEVK0FliLE8Et3WS0UhENeGf1DUMjY3oP9CFA4O6hkX5Hg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCHpjyYIQEbFY8JZDLCZcpB+arhrwvYhojNvlfEDJdaoQIgWUGFmkekuVq+vL3LDbVldhoEnubMQvwBMishsllfC88="}]},"_from":".","_npmVersion":"1.2.11","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.1.5":{"name":"squid","description":"build utility for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.1.5","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/watch.js","sb":"./bin/builder.js"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","handlebars":"1.x","csslint":"0.x","optipng":"0.x","findr":"0.x","mkdirp":"0.x","moment":"2.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"0.x","underscore.string":"2.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"make build"},"readme":"Squid is a command line tool that monitor changes in the file system and compiles your files automatically each time you save.\nIt supports coffeescript, stylus and Jade, but can easily be extended to other file types.\n\n## Install\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\n## sq command\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- auto-restart your node server when a file loaded by your server script changes\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\nBy default squid will relaunch index.js each time a change occurs in /lib if your main script isn't index.js\nyou can specify a different script\n\n```\n$ sq my-script.js\n```\n\nto launch node in debug mode use -d option\n\n```\n$ sq -d\n```\n\n## sb command\n\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\nbuilder = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\n## Supported files for compilation\n\nsquid can compile the following files.\nWant to add support for other file types? New builder can easily be implemented using the base Builder classe\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.json</td><td>copy</td><td>validate and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>template are compiled into js and wrapped in a requirejs define function</td>\n  </tr>\n</table>\n\n## files Dependencies\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\n## Configuration\n\nYou can define a squid.json object to specify folder mappings, and compilation options\nHere are the default options if you dont add a squid.json to your project\n\n```js\n{\n  \"src\": \"src\", /* source folder */\n   \"server\": {\n      \"script\": \"index.js\", /* server script to execute */\n       env: {}\t, /*additional ennvironment variables to load*/\n   },\n  \"out\": \".\", /* build  folder */\n  \"jade\": { /* jade default options */\n    \"amd\": true /* wrap jade template inside a requirejs define block */\n  },\n  \"stylus\": { /* stylus default options */\n    \"url\": {paths: [\"public\"]}, /* url options  */\n    \"paths\": [\"public/images\"] /* image lookup path  */\n  }\n}\n```\nSo if you have the following project\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, squid will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\n\n#### mappings\n\nYou can define mappings rules to output your files into different folders\n\nThe following squid.json config will\n- use mobile as src folder\n- compile mobile/js/* to app/assets/javascripts/mobile\n- compile mobile/stylesheets/* to app/assets/stylesheets/mobile\n\n```json\n{\n\"src\": \"mobile\",\n\"mappings\": [\n\t{\"from\": \"js\", \"to\": \"app/assets/javascripts/mobile\"},\n\t{\"from\": \"stylesheets\", \"to\": \"app/assets/stylesheets/mobile\"}\n]\n}\n```\n\n## post build\n\nYou can specify a script to launch after each successful file build\n\nThe following squid.json config will trigger **make bundle-app**  each time a file is successfully\nbuilt in src/public\n\n```json\n{\n  \"post_build\": {\"match\": \"src/public\", \"cmd\": \"make bundle-app\" }\n}\n```\n\n## TODO\n\n- Add more compiler options for compiler (PR are welcome)\n\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","readmeFilename":"README.md","_id":"squid@0.1.5","dist":{"shasum":"5c64c4a8c2a62b38ab74e4bd12b5ff188eb2d114","tarball":"https://registry.npmjs.org/squid/-/squid-0.1.5.tgz","integrity":"sha512-zLrfOkyycmbbId3wO0OYnhIPJ3QCAR1vLm3iiQf4voR23s9jAGu2pHyv9YjIixW2LJFzXp/IugPBxcH7VqztEQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDcVBliODczd03DZOsGYXSsQaqDqOMCnRfNxHBoHf2WqgIhAINdPIyEuLTO6rIL5W4CmqD5xtPPvQj4Tiwhw+nrKkFq"}]},"_from":".","_npmVersion":"1.2.11","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.1.6":{"name":"squid","description":"build utility for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.1.6","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/watch.js","sb":"./bin/builder.js"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","handlebars":"1.x","csslint":"0.x","optipng":"0.x","findr":"0.x","mkdirp":"0.x","moment":"2.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"0.x","underscore.string":"2.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"make build"},"readme":"Squid is a command line tool that monitor changes in the file system and compiles your files automatically each time you save.\nIt supports coffeescript, stylus and Jade, but can easily be extended to other file types.\n\n## Install\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\n## sq command\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- auto-restart your node server when a file loaded by your server script changes\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\nBy default squid will relaunch index.js each time a change occurs in /lib if your main script isn't index.js\nyou can specify a different script\n\n```\n$ sq my-script.js\n```\n\nto launch node in debug mode use -d option\n\n```\n$ sq -d\n```\n\n## sb command\n\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\nbuilder = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\n## Supported files for compilation\n\nsquid can compile the following files.\nWant to add support for other file types? New builder can easily be implemented using the base Builder classe\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.json</td><td>copy</td><td>validate and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>template are compiled into js and wrapped in a requirejs define function</td>\n  </tr>\n</table>\n\n## files Dependencies\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\n## Configuration\n\nYou can define a squid.json object to specify folder mappings, and compilation options\nHere are the default options if you dont add a squid.json to your project\n\n```js\n{\n  \"src\": \"src\", /* source folder */\n   \"server\": {\n      \"script\": \"index.js\", /* server script to execute */\n       env: {}\t, /*additional ennvironment variables to load*/\n   },\n  \"out\": \".\", /* build  folder */\n  \"jade\": { /* jade default options */\n    \"amd\": true /* wrap jade template inside a requirejs define block */\n  },\n  \"stylus\": { /* stylus default options */\n    \"url\": {paths: [\"public\"]}, /* url options  */\n    \"paths\": [\"public/images\"] /* image lookup path  */\n  }\n}\n```\nSo if you have the following project\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, squid will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\n\n#### mappings\n\nYou can define mappings rules to output your files into different folders\n\nThe following squid.json config will\n- use mobile as src folder\n- compile mobile/js/* to app/assets/javascripts/mobile\n- compile mobile/stylesheets/* to app/assets/stylesheets/mobile\n\n```json\n{\n\"src\": \"mobile\",\n\"mappings\": [\n\t{\"from\": \"js\", \"to\": \"app/assets/javascripts/mobile\"},\n\t{\"from\": \"stylesheets\", \"to\": \"app/assets/stylesheets/mobile\"}\n]\n}\n```\n\n## post build\n\nYou can specify a script to launch after each successful file build\n\nThe following squid.json config will trigger **make bundle-app**  each time a file is successfully\nbuilt in src/public\n\n```json\n{\n  \"post_build\": {\"match\": \"src/public\", \"cmd\": \"make bundle-app\" }\n}\n```\n\n## TODO\n\n- Add more compiler options for compiler (PR are welcome)\n\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","readmeFilename":"README.md","_id":"squid@0.1.6","dist":{"shasum":"630dc30737b3ceb92aab6c32c839645c6492be8a","tarball":"https://registry.npmjs.org/squid/-/squid-0.1.6.tgz","integrity":"sha512-Zr1dovols5HjNUsD3Z9F7wo23bZQQKPenzom0+/NYazzlPYz3UHkpRkOafnwP+DmyZnF2i/YJJ9JuuTNgxuJeg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCrkKnJJkZY6k3NeWhf1ARcxq1aLhPhxo7Kgg0xUGU/nAIgCAaHvkNUqUYIYKlSOTDIwszS24rnJILTDfjE6HbqG/Y="}]},"_from":".","_npmVersion":"1.2.11","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.1.67":{"name":"squid","description":"build utility for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.1.67","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/watch.js","sb":"./bin/builder.js"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","handlebars":"1.x","jpegtran":"0.x","csslint":"0.x","optipng":"0.x","findr":"0.x","mkdirp":"0.x","moment":"2.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"0.x","underscore.string":"2.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"make build"},"readme":"Squid is a command line tool that monitor changes in the file system and compiles your files automatically each time you save.\nIt supports coffeescript, stylus and Jade, but can easily be extended to other file types.\n\n## Install\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\n## sq command\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- auto-restart your node server when a file loaded by your server script changes\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\nBy default squid will relaunch index.js each time a change occurs in /lib if your main script isn't index.js\nyou can specify a different script\n\n```\n$ sq my-script.js\n```\n\nto launch node in debug mode use -d option\n\n```\n$ sq -d\n```\n\n## sb command\n\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\nbuilder = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\n## Supported files for compilation\n\nsquid can compile the following files.\nWant to add support for other file types? New builder can easily be implemented using the base Builder classe\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.json</td><td>copy</td><td>validate and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>template are compiled into js and wrapped in a requirejs define function</td>\n  </tr>\n</table>\n\n## files Dependencies\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\n## Configuration\n\nYou can define a squid.json object to specify folder mappings, and compilation options\nHere are the default options if you dont add a squid.json to your project\n\n```js\n{\n  \"src\": \"src\", /* source folder */\n   \"server\": {\n      \"script\": \"index.js\", /* server script to execute */\n       env: {}\t, /*additional ennvironment variables to load*/\n   },\n  \"out\": \".\", /* build  folder */\n  \"jade\": { /* jade default options */\n    \"amd\": true /* wrap jade template inside a requirejs define block */\n  },\n  \"stylus\": { /* stylus default options */\n    \"url\": {paths: [\"public\"]}, /* url options  */\n    \"paths\": [\"public/images\"] /* image lookup path  */\n  }\n}\n```\nSo if you have the following project\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, squid will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\n\n#### mappings\n\nYou can define mappings rules to output your files into different folders\n\nThe following squid.json config will\n- use mobile as src folder\n- compile mobile/js/* to app/assets/javascripts/mobile\n- compile mobile/stylesheets/* to app/assets/stylesheets/mobile\n\n```json\n{\n\"src\": \"mobile\",\n\"mappings\": [\n\t{\"from\": \"js\", \"to\": \"app/assets/javascripts/mobile\"},\n\t{\"from\": \"stylesheets\", \"to\": \"app/assets/stylesheets/mobile\"}\n]\n}\n```\n\n## post build\n\nYou can specify a script to launch after each successful file build\n\nThe following squid.json config will trigger **make bundle-app**  each time a file is successfully\nbuilt in src/public\n\n```json\n{\n  \"post_build\": {\"match\": \"src/public\", \"cmd\": \"make bundle-app\" }\n}\n```\n\n## TODO\n\n- Add more compiler options for compiler (PR are welcome)\n\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","readmeFilename":"README.md","_id":"squid@0.1.67","dist":{"shasum":"a7b22a53f3b907d7026bbe883efc375d6601d275","tarball":"https://registry.npmjs.org/squid/-/squid-0.1.67.tgz","integrity":"sha512-kyS10Tj1S6UKTBny9ScZ+/Oz9VJ/TGoNuLlERTsanykHn5DW72ieYL/w6SpEKiRI/YURqEoVLsXG7z8Gh/pfNw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCEL2k3hFjGx6Sq2tx5UJP3lP5s59lHBz0rKqiBPyARPwIgMxTfS+V8EKlfvgvYdeiRTvBw1B2+vNyVzU4xb9mTT9w="}]},"_from":".","_npmVersion":"1.2.11","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.1.68":{"name":"squid","description":"build utility for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.1.68","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/watch.js","sb":"./bin/builder.js"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","handlebars":"1.x","jpegtran":"0.x","csslint":"0.x","optipng":"0.x","findr":"0.x","mkdirp":"0.x","moment":"2.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"0.x","underscore.string":"2.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"make build"},"readme":"Squid is a command line tool that monitor changes in the file system and compiles your files automatically each time you save.\nIt supports coffeescript, stylus and Jade, but can easily be extended to other file types.\n\n## Install\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\n## sq command\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- auto-restart your node server when a file loaded by your server script changes\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\nBy default squid will relaunch index.js each time a change occurs in /lib if your main script isn't index.js\nyou can specify a different script\n\n```\n$ sq my-script.js\n```\n\nto launch node in debug mode use -d option\n\n```\n$ sq -d\n```\n\n## sb command\n\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\nbuilder = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\n## Supported files for compilation\n\nsquid can compile the following files.\nWant to add support for other file types? New builder can easily be implemented using the base Builder classe\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.json</td><td>copy</td><td>validate and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>template are compiled into js and wrapped in a requirejs define function</td>\n  </tr>\n</table>\n\n## files Dependencies\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\n## Configuration\n\nYou can define a squid.json object to specify folder mappings, and compilation options\nHere are the default options if you dont add a squid.json to your project\n\n```js\n{\n  \"src\": \"src\", /* source folder */\n   \"server\": {\n      \"script\": \"index.js\", /* server script to execute */\n       env: {}\t, /*additional ennvironment variables to load*/\n   },\n  \"out\": \".\", /* build  folder */\n  \"jade\": { /* jade default options */\n    \"amd\": true /* wrap jade template inside a requirejs define block */\n  },\n  \"stylus\": { /* stylus default options */\n    \"url\": {paths: [\"public\"]}, /* url options  */\n    \"paths\": [\"public/images\"] /* image lookup path  */\n  }\n}\n```\nSo if you have the following project\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, squid will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\n\n#### mappings\n\nYou can define mappings rules to output your files into different folders\n\nThe following squid.json config will\n- use mobile as src folder\n- compile mobile/js/* to app/assets/javascripts/mobile\n- compile mobile/stylesheets/* to app/assets/stylesheets/mobile\n\n```json\n{\n\"src\": \"mobile\",\n\"mappings\": [\n\t{\"from\": \"js\", \"to\": \"app/assets/javascripts/mobile\"},\n\t{\"from\": \"stylesheets\", \"to\": \"app/assets/stylesheets/mobile\"}\n]\n}\n```\n\n## post build\n\nYou can specify a script to launch after each successful file build\n\nThe following squid.json config will trigger **make bundle-app**  each time a file is successfully\nbuilt in src/public\n\n```json\n{\n  \"post_build\": {\"match\": \"src/public\", \"cmd\": \"make bundle-app\" }\n}\n```\n\n## TODO\n\n- Add more compiler options for compiler (PR are welcome)\n\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","readmeFilename":"README.md","_id":"squid@0.1.68","dist":{"shasum":"ca01276932e26c6ffaebd5fdd8043a5c900e7aca","tarball":"https://registry.npmjs.org/squid/-/squid-0.1.68.tgz","integrity":"sha512-Wb4/ogMpFe13/GtGYumzMojetqhaBomB/7GM0aF9Qo1RjQ+K4sOgPQT122WGjvDT3TmmhZCTLnimwzmKfWWJmQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCn1TwIiLGxYzDbmRPzXjzvgIZDzbRPcJ0Hy06E0+mixwIhAL9dYot32auswN5D/XH7ZKS4keuI/9GeDIHEtmdlmEeI"}]},"_from":".","_npmVersion":"1.2.14","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.1.69":{"name":"squid","description":"build utility for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.1.69","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/watch.js","sb":"./bin/builder.js"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","handlebars":"1.x","jpegtran":"0.x","csslint":"0.x","optipng":"0.x","findr":"0.x","mkdirp":"0.x","moment":"2.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"1.x","underscore.string":"2.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"make build"},"readme":"Squid is a command line tool that monitor changes in the file system and compiles your files automatically each time you save.\nIt supports coffeescript, stylus and Jade, but can easily be extended to other file types.\n\n## Install\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\n## sq command\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- auto-restart your node server when a file loaded by your server script changes\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\nBy default squid will relaunch index.js each time a change occurs in /lib if your main script isn't index.js\nyou can specify a different script\n\n```\n$ sq my-script.js\n```\n\nto launch node in debug mode use -d option\n\n```\n$ sq -d\n```\n\n## sb command\n\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\nbuilder = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\n## Supported files for compilation\n\nsquid can compile the following files.\nWant to add support for other file types? New builder can easily be implemented using the base Builder classe\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.json</td><td>copy</td><td>validate and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.css</td><td>copy</td><td>verify with csslint and copy</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>compile jade js template into js</td>\n  </tr>\n  <tr>\n    <td>*.hbs</td><td>compile to js</td><td>compile jade js template into js</td>\n  </tr>  \n  <tr>\n    <td>*.png</td><td>optimize and copy</td><td>optimize png with optipng</td>\n  </tr>  \n  \n</table>\n\n## files Dependencies\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\n## Configuration\n\nYou can define a squid.json object to specify folder mappings, and compilation options\nHere are the default options if you dont add a squid.json to your project\n\n```js\n{\n  \"src\": \"src\", /* source folder */\n   \"server\": {\n      \"script\": \"index.js\", /* server script to execute */\n       env: {}\t, /*additional ennvironment variables to load*/\n   },\n  \"out\": \".\", /* build  folder */\n  \"jade\": { /* jade default options */\n    \"amd\": true /* wrap jade template inside a requirejs define block */\n  },\n  \"stylus\": { /* stylus default options */\n    \"url\": {paths: [\"public\"]}, /* url options  */\n    \"paths\": [\"public/images\"] /* image lookup path  */\n  }\n}\n```\nSo if you have the following project\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, squid will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\n\n#### mappings\n\nYou can define mappings rules to output your files into different folders\n\nThe following squid.json config will\n- use mobile as src folder\n- compile mobile/js/* to app/assets/javascripts/mobile\n- compile mobile/stylesheets/* to app/assets/stylesheets/mobile\n\n```json\n{\n\"src\": \"mobile\",\n\"mappings\": [\n\t{\"from\": \"js\", \"to\": \"app/assets/javascripts/mobile\"},\n\t{\"from\": \"stylesheets\", \"to\": \"app/assets/stylesheets/mobile\"}\n]\n}\n```\n\n## post build\n\nYou can specify a script to launch after each successful file build\n\nThe following squid.json config will trigger **make bundle-app**  each time a file is successfully\nbuilt in src/public\n\n```json\n{\n  \"post_build\": {\"match\": \"src/public\", \"cmd\": \"make bundle-app\" }\n}\n```\n\n## TODO\n\n- Add more compiler options for compiler (PR are welcome)\n\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","readmeFilename":"README.md","_id":"squid@0.1.69","dist":{"shasum":"7b6cb35ed1e45051cd8b0402ce6fc0c67bcf6eb1","tarball":"https://registry.npmjs.org/squid/-/squid-0.1.69.tgz","integrity":"sha512-6paGgT5lnl9c+km8GWNOeQduv0mRJMFFeZcBdgeOa5vokOTtxHleLXaJCougzdYE+gUeQo/Zbx417dJVR7VLLg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCCSnJuERo554Wk/QsHdtewoNirQMRWcI+7VWmLZR/l2AIhAJ5Fv5Ojk71W9691N5Hb0LylFe3e/bPtZGcFzBayIcpH"}]},"_from":".","_npmVersion":"1.2.14","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.1.70":{"name":"squid","description":"build utility for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.1.70","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/watch.js","sb":"./bin/builder.js"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","handlebars":"1.x","jpegtran":"0.x","csslint":"0.x","optipng":"0.x","findr":"0.x","mkdirp":"0.x","moment":"2.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"1.x","underscore.string":"2.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"make build"},"readme":"Squid is a command line tool that monitor changes in the file system and compiles your files automatically each time you save.\nIt supports coffeescript, stylus and Jade, but can easily be extended to other file types.\n\n## Install\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\n## sq command\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- auto-restart your node server when a file loaded by your server script changes\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\nBy default squid will relaunch index.js each time a change occurs in /lib if your main script isn't index.js\nyou can specify a different script\n\n```\n$ sq my-script.js\n```\n\nto launch node in debug mode use -d option\n\n```\n$ sq -d\n```\n\n## sb command\n\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\nbuilder = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\n## Supported files for compilation\n\nsquid can compile the following files.\nWant to add support for other file types? New builder can easily be implemented using the base Builder classe\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.json</td><td>copy</td><td>validate and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.css</td><td>copy</td><td>verify with csslint and copy</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>compile jade js template into js</td>\n  </tr>\n  <tr>\n    <td>*.hbs</td><td>compile to js</td><td>compile jade js template into js</td>\n  </tr>  \n  <tr>\n    <td>*.png</td><td>optimize and copy</td><td>optimize png with optipng</td>\n  </tr>  \n  \n</table>\n\n## files Dependencies\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\n## Configuration\n\nYou can define a squid.json object to specify folder mappings, and compilation options\nHere are the default options if you dont add a squid.json to your project\n\n```js\n{\n  \"src\": \"src\", /* source folder */\n   \"server\": {\n      \"script\": \"index.js\", /* server script to execute */\n       env: {}\t, /*additional ennvironment variables to load*/\n   },\n  \"out\": \".\", /* build  folder */\n  \"jade\": { /* jade default options */\n    \"amd\": true /* wrap jade template inside a requirejs define block */\n  },\n  \"stylus\": { /* stylus default options */\n    \"url\": {paths: [\"public\"]}, /* url options  */\n    \"paths\": [\"public/images\"] /* image lookup path  */\n  }\n}\n```\nSo if you have the following project\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, squid will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\n\n#### mappings\n\nYou can define mappings rules to output your files into different folders\n\nThe following squid.json config will\n- use mobile as src folder\n- compile mobile/js/* to app/assets/javascripts/mobile\n- compile mobile/stylesheets/* to app/assets/stylesheets/mobile\n\n```json\n{\n\"src\": \"mobile\",\n\"mappings\": [\n\t{\"from\": \"js\", \"to\": \"app/assets/javascripts/mobile\"},\n\t{\"from\": \"stylesheets\", \"to\": \"app/assets/stylesheets/mobile\"}\n]\n}\n```\n\n## post build\n\nYou can specify a script to launch after each successful file build\n\nThe following squid.json config will trigger **make bundle-app**  each time a file is successfully\nbuilt in src/public\n\n```json\n{\n  \"post_build\": {\"match\": \"src/public\", \"cmd\": \"make bundle-app\" }\n}\n```\n\n## TODO\n\n- Add more compiler options for compiler (PR are welcome)\n\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","readmeFilename":"README.md","_id":"squid@0.1.70","dist":{"shasum":"09a532b548fd2b27de0f598a60aaf4401a5d363e","tarball":"https://registry.npmjs.org/squid/-/squid-0.1.70.tgz","integrity":"sha512-11Tsor3EUV/05a4MZKK+SI/A4WoawVBNmo5v4BCk5Q6PaKR+ATwePMmraXEosuuP5bvHZz+9QaAlY92MWIJOlw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBNPoKwVViQ2ggg5D3zs7cwQ7zTb91vwxrUUu0zE93bBAiAeF1gcXw5nK5eChNKW1xhnIVsFRQBZVUQV8aVCILUtQQ=="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.1.71":{"name":"squid","description":"build utility for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.1.71","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/watch.js","sb":"./bin/builder.js"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","handlebars":"1.x","jpegtran":"0.x","csslint":"0.x","optipng":"0.x","findr":"0.x","mkdirp":"0.x","moment":"2.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"1.x","underscore.string":"2.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"make build"},"readme":"Squid is a command line tool that monitor changes in the file system and compiles your files automatically each time you save.\nIt supports coffeescript, stylus and Jade, but can easily be extended to other file types.\n\n## Install\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\n## sq command\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- auto-restart your node server when a file loaded by your server script changes\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\nBy default squid will relaunch index.js each time a change occurs in /lib if your main script isn't index.js\nyou can specify a different script\n\n```\n$ sq my-script.js\n```\n\nto launch node in debug mode use -d option\n\n```\n$ sq -d\n```\n\n## sb command\n\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\nbuilder = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\n## Supported files for compilation\n\nsquid can compile the following files.\nWant to add support for other file types? New builder can easily be implemented using the base Builder classe\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.json</td><td>copy</td><td>validate and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.css</td><td>copy</td><td>verify with csslint and copy</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>compile jade js template into js</td>\n  </tr>\n  <tr>\n    <td>*.hbs</td><td>compile to js</td><td>compile jade js template into js</td>\n  </tr>  \n  <tr>\n    <td>*.png</td><td>optimize and copy</td><td>optimize png with optipng</td>\n  </tr>  \n  \n</table>\n\n## files Dependencies\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\n## Configuration\n\nYou can define a squid.json object to specify folder mappings, and compilation options\nHere are the default options if you dont add a squid.json to your project\n\n```js\n{\n  \"src\": \"src\", /* source folder */\n   \"server\": {\n      \"script\": \"index.js\", /* server script to execute */\n       env: {}\t, /*additional ennvironment variables to load*/\n   },\n  \"out\": \".\", /* build  folder */\n  \"jade\": { /* jade default options */\n    \"amd\": true /* wrap jade template inside a requirejs define block */\n  },\n  \"stylus\": { /* stylus default options */\n    \"url\": {paths: [\"public\"]}, /* url options  */\n    \"paths\": [\"public/images\"] /* image lookup path  */\n  }\n}\n```\nSo if you have the following project\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, squid will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\n\n#### mappings\n\nYou can define mappings rules to output your files into different folders\n\nThe following squid.json config will\n- use mobile as src folder\n- compile mobile/js/* to app/assets/javascripts/mobile\n- compile mobile/stylesheets/* to app/assets/stylesheets/mobile\n\n```json\n{\n\"src\": \"mobile\",\n\"mappings\": [\n\t{\"from\": \"js\", \"to\": \"app/assets/javascripts/mobile\"},\n\t{\"from\": \"stylesheets\", \"to\": \"app/assets/stylesheets/mobile\"}\n]\n}\n```\n\n## post build\n\nYou can specify a script to launch after each successful file build\n\nThe following squid.json config will trigger **make bundle-app**  each time a file is successfully\nbuilt in src/public\n\n```json\n{\n  \"post_build\": {\"match\": \"src/public\", \"cmd\": \"make bundle-app\" }\n}\n```\n\n## TODO\n\n- Add more compiler options for compiler (PR are welcome)\n\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","readmeFilename":"README.md","_id":"squid@0.1.71","dist":{"shasum":"27dbf89042c722038eae13f7fe7d7b05cc6e6711","tarball":"https://registry.npmjs.org/squid/-/squid-0.1.71.tgz","integrity":"sha512-Paqq9F1L1Ml+IiGyaxaHSkIk+73ci6Y+O7raj7tvKX5vcoCokEBBOvi5FjLzmxniBmjDNQo4DS7b5kiqfupquw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDZG5c+dYAi7fJkbMqR+f0DD/mhFahbS6e7DfHYZhWFDQIhAM73X5vXRjeEZsZa4CQFBMBK5XWL0NCMhJxorsgCkH3T"}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.1.72":{"name":"squid","description":"build utility for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.1.72","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/watch.js","sb":"./bin/builder.js"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","handlebars":"1.x","jpegtran":"0.x","csslint":"0.x","optipng":"0.x","findr":"0.x","mkdirp":"0.x","moment":"2.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"1.x","underscore.string":"2.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"make build"},"readme":"Squid is a command line tool that monitor changes in the file system and compiles your files automatically each time you save.\nIt supports coffeescript, stylus and Jade, but can easily be extended to other file types.\n\n## Install\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\n## sq command\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- auto-restart your node server when a file loaded by your server script changes\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\nBy default squid will relaunch index.js each time a change occurs in /lib if your main script isn't index.js\nyou can specify a different script\n\n```\n$ sq my-script.js\n```\n\nto launch node in debug mode use -d option\n\n```\n$ sq -d\n```\n\n## sb command\n\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\nbuilder = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\n## Supported files for compilation\n\nsquid can compile the following files.\nWant to add support for other file types? New builder can easily be implemented using the base Builder classe\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.json</td><td>copy</td><td>validate and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.css</td><td>copy</td><td>verify with csslint and copy</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>compile jade js template into js</td>\n  </tr>\n  <tr>\n    <td>*.hbs</td><td>compile to js</td><td>compile jade js template into js</td>\n  </tr>  \n  <tr>\n    <td>*.png</td><td>optimize and copy</td><td>optimize png with optipng</td>\n  </tr>  \n  \n</table>\n\n## files Dependencies\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\n## Configuration\n\nYou can define a squid.json object to specify folder mappings, and compilation options\nHere are the default options if you dont add a squid.json to your project\n\n```js\n{\n  \"src\": \"src\", /* source folder */\n   \"server\": {\n      \"script\": \"index.js\", /* server script to execute */\n       env: {}\t, /*additional ennvironment variables to load*/\n   },\n  \"out\": \".\", /* build  folder */\n  \"jade\": { /* jade default options */\n    \"amd\": true /* wrap jade template inside a requirejs define block */\n  },\n  \"stylus\": { /* stylus default options */\n    \"url\": {paths: [\"public\"]}, /* url options  */\n    \"paths\": [\"public/images\"] /* image lookup path  */\n  }\n}\n```\nSo if you have the following project\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, squid will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\n\n#### mappings\n\nYou can define mappings rules to output your files into different folders\n\nThe following squid.json config will\n- use mobile as src folder\n- compile mobile/js/* to app/assets/javascripts/mobile\n- compile mobile/stylesheets/* to app/assets/stylesheets/mobile\n\n```json\n{\n\"src\": \"mobile\",\n\"mappings\": [\n\t{\"from\": \"js\", \"to\": \"app/assets/javascripts/mobile\"},\n\t{\"from\": \"stylesheets\", \"to\": \"app/assets/stylesheets/mobile\"}\n]\n}\n```\n\n## post build\n\nYou can specify a script to launch after each successful file build\n\nThe following squid.json config will trigger **make bundle-app**  each time a file is successfully\nbuilt in src/public\n\n```json\n{\n  \"post_build\": {\"match\": \"src/public\", \"cmd\": \"make bundle-app\" }\n}\n```\n\n## TODO\n\n- Add more compiler options for compiler (PR are welcome)\n\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","readmeFilename":"README.md","_id":"squid@0.1.72","dist":{"shasum":"8cd00379368fca474a259c3b3129dc8bef55223a","tarball":"https://registry.npmjs.org/squid/-/squid-0.1.72.tgz","integrity":"sha512-L+8dSfKpVA2AJULPvKyvKhnnFhHH24CiNOFhdS2efdMlLDUyjdpuKKORLNmp1Rx2eWUwCfJ5Jm5JnAonkz5cqg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDXw3KP1vAn1nuFLHTV6fjtN/X4A3rYgDFflOFJhKgr3AiEA522iOAoiHe8Dt8qtVLhOr5UF4aa0wBHEOIw8iR0v9uI="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.1.73":{"name":"squid","description":"build utility for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.1.73","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/watch.js","sb":"./bin/builder.js"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","handlebars":"1.x","jpegtran":"0.x","csslint":"0.x","optipng":"0.x","findr":"0.x","mkdirp":"0.x","moment":"2.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"1.x","underscore.string":"2.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"make build"},"readme":"Squid is a command line tool that monitor changes in the file system and compiles your files automatically each time you save.\nIt supports coffeescript, stylus and Jade, but can easily be extended to other file types.\n\n## Install\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\n## sq command\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- auto-restart your node server when a file loaded by your server script changes\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\nBy default squid will relaunch index.js each time a change occurs in /lib if your main script isn't index.js\nyou can specify a different script\n\n```\n$ sq my-script.js\n```\n\nto launch node in debug mode use -d option\n\n```\n$ sq -d\n```\n\n## sb command\n\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\nbuilder = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\n## Supported files for compilation\n\nsquid can compile the following files.\nWant to add support for other file types? New builder can easily be implemented using the base Builder classe\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.json</td><td>copy</td><td>validate and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.css</td><td>copy</td><td>verify with csslint and copy</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>compile jade js template into js</td>\n  </tr>\n  <tr>\n    <td>*.hbs</td><td>compile to js</td><td>compile jade js template into js</td>\n  </tr>  \n  <tr>\n    <td>*.png</td><td>optimize and copy</td><td>optimize png with optipng</td>\n  </tr>  \n  \n</table>\n\n## files Dependencies\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\n## Configuration\n\nYou can define a squid.json object to specify folder mappings, and compilation options\nHere are the default options if you dont add a squid.json to your project\n\n```js\n{\n  \"src\": \"src\", /* source folder */\n   \"server\": {\n      \"script\": \"index.js\", /* server script to execute */\n       env: {}\t, /*additional ennvironment variables to load*/\n   },\n  \"out\": \".\", /* build  folder */\n  \"jade\": { /* jade default options */\n    \"amd\": true /* wrap jade template inside a requirejs define block */\n  },\n  \"stylus\": { /* stylus default options */\n    \"url\": {paths: [\"public\"]}, /* url options  */\n    \"paths\": [\"public/images\"] /* image lookup path  */\n  }\n}\n```\nSo if you have the following project\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, squid will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\n\n#### mappings\n\nYou can define mappings rules to output your files into different folders\n\nThe following squid.json config will\n- use mobile as src folder\n- compile mobile/js/* to app/assets/javascripts/mobile\n- compile mobile/stylesheets/* to app/assets/stylesheets/mobile\n\n```json\n{\n\"src\": \"mobile\",\n\"mappings\": [\n\t{\"from\": \"js\", \"to\": \"app/assets/javascripts/mobile\"},\n\t{\"from\": \"stylesheets\", \"to\": \"app/assets/stylesheets/mobile\"}\n]\n}\n```\n\n## post build\n\nYou can specify a script to launch after each successful file build\n\nThe following squid.json config will trigger **make bundle-app**  each time a file is successfully\nbuilt in src/public\n\n```json\n{\n  \"post_build\": {\"match\": \"src/public\", \"cmd\": \"make bundle-app\" }\n}\n```\n\n## TODO\n\n- Add more compiler options for compiler (PR are welcome)\n\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","readmeFilename":"README.md","_id":"squid@0.1.73","dist":{"shasum":"d90b4bd0d68eef1fd2e7dad8c7d4f7d3f77fa4ee","tarball":"https://registry.npmjs.org/squid/-/squid-0.1.73.tgz","integrity":"sha512-e8Io/rwMbfwCROiQ/pIbprCSQ0w38Zu8LZ+mwVvrVqyqp8bvO1rH0X7qnmhou1PZ4JHDV0YdE+nXgdSkM428Kw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEOK4NmzHLbCV4qq+cI1PWv9YOD+3yQs1YfWFn52WB1nAiEAvVbJmAALVpuhMcWuVr+i/behPB2I1JMakUpcdkBC20s="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.1.74":{"name":"squid","description":"build utility for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.1.74","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/watch.js","sb":"./bin/builder.js"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","handlebars":"1.x","jpegtran":"0.x","csslint":"0.x","optipng":"0.x","findr":"0.x","mkdirp":"0.x","moment":"2.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"1.x","underscore.string":"2.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"make build"},"readme":"Squid is a command line tool that monitor changes in the file system and compiles your files automatically each time you save.\nIt supports coffeescript, stylus and Jade, but can easily be extended to other file types.\n\n## Install\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\n## sq command\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- auto-restart your node server when a file loaded by your server script changes\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\nBy default squid will relaunch index.js each time a change occurs in /lib if your main script isn't index.js\nyou can specify a different script\n\n```\n$ sq my-script.js\n```\n\nto launch node in debug mode use -d option\n\n```\n$ sq -d\n```\n\n## sb command\n\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\nbuilder = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\n## Supported files for compilation\n\nsquid can compile the following files.\nWant to add support for other file types? New builder can easily be implemented using the base Builder classe\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.json</td><td>copy</td><td>validate and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.css</td><td>copy</td><td>verify with csslint and copy</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>compile jade js template into js</td>\n  </tr>\n  <tr>\n    <td>*.hbs</td><td>compile to js</td><td>compile jade js template into js</td>\n  </tr>  \n  <tr>\n    <td>*.png</td><td>optimize and copy</td><td>optimize png with optipng</td>\n  </tr>  \n  \n</table>\n\n## files Dependencies\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\n## Configuration\n\nYou can define a squid.json object to specify folder mappings, and compilation options\nHere are the default options if you dont add a squid.json to your project\n\n```js\n{\n  \"src\": \"src\", /* source folder */\n   \"server\": {\n      \"script\": \"index.js\", /* server script to execute */\n       env: {}\t, /*additional ennvironment variables to load*/\n   },\n  \"out\": \".\", /* build  folder */\n  \"jade\": { /* jade default options */\n    \"amd\": true /* wrap jade template inside a requirejs define block */\n  },\n  \"stylus\": { /* stylus default options */\n    \"url\": {paths: [\"public\"]}, /* url options  */\n    \"paths\": [\"public/images\"] /* image lookup path  */\n  }\n}\n```\nSo if you have the following project\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, squid will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\n\n#### mappings\n\nYou can define mappings rules to output your files into different folders\n\nThe following squid.json config will\n- use mobile as src folder\n- compile mobile/js/* to app/assets/javascripts/mobile\n- compile mobile/stylesheets/* to app/assets/stylesheets/mobile\n\n```json\n{\n\"src\": \"mobile\",\n\"mappings\": [\n\t{\"from\": \"js\", \"to\": \"app/assets/javascripts/mobile\"},\n\t{\"from\": \"stylesheets\", \"to\": \"app/assets/stylesheets/mobile\"}\n]\n}\n```\n\n## post build\n\nYou can specify a script to launch after each successful file build\n\nThe following squid.json config will trigger **make bundle-app**  each time a file is successfully\nbuilt in src/public\n\n```json\n{\n  \"post_build\": {\"match\": \"src/public\", \"cmd\": \"make bundle-app\" }\n}\n```\n\n## TODO\n\n- Add more compiler options for compiler (PR are welcome)\n\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","readmeFilename":"README.md","_id":"squid@0.1.74","dist":{"shasum":"caaf5f857fc1fff5d5535ec864f2c1d7c0d5a247","tarball":"https://registry.npmjs.org/squid/-/squid-0.1.74.tgz","integrity":"sha512-eFqjETxlhC0cMMT4/kS2F/QW3331CPtWjgmvrjTJwxxZvjPlPVMtTTcpKdPLaF+FU4HimE7Nszcq8ZlrFVLM+Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDH4M0VmA98zOwMitUYdqLpzv8dDGtvbWotFIYZvDYjfAiEA3iTkAnzHP9M/S3OZRzdIpRrSB3+wa+byPeBYEkOtthw="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.1.75":{"name":"squid","description":"build utility for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.1.75","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/watch.js","sb":"./bin/builder.js"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","handlebars":"1.x","jpegtran":"0.x","csslint":"0.x","optipng":"0.x","findr":"0.x","mkdirp":"0.x","moment":"2.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"1.x","underscore.string":"2.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"make build"},"readme":"Squid is a command line tool that monitor changes in the file system and compiles your files automatically each time you save.\nIt supports coffeescript, stylus and Jade, but can easily be extended to other file types.\n\n## Install\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\n## sq command\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- auto-restart your node server when a file loaded by your server script changes\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\nBy default squid will relaunch index.js each time a change occurs in /lib if your main script isn't index.js\nyou can specify a different script\n\n```\n$ sq my-script.js\n```\n\nto launch node in debug mode use -d option\n\n```\n$ sq -d\n```\n\n## sb command\n\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\nbuilder = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\n## Supported files for compilation\n\nsquid can compile the following files.\nWant to add support for other file types? New builder can easily be implemented using the base Builder classe\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.json</td><td>copy</td><td>validate and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.css</td><td>copy</td><td>verify with csslint and copy</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>compile jade js template into js</td>\n  </tr>\n  <tr>\n    <td>*.hbs</td><td>compile to js</td><td>compile jade js template into js</td>\n  </tr>  \n  <tr>\n    <td>*.png</td><td>optimize and copy</td><td>optimize png with optipng</td>\n  </tr>  \n  \n</table>\n\n## files Dependencies\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\n## Configuration\n\nYou can define a squid.json object to specify folder mappings, and compilation options\nHere are the default options if you dont add a squid.json to your project\n\n```js\n{\n  \"src\": \"src\", /* source folder */\n   \"server\": {\n      \"script\": \"index.js\", /* server script to execute */\n       env: {}\t, /*additional ennvironment variables to load*/\n   },\n  \"out\": \".\", /* build  folder */\n  \"jade\": { /* jade default options */\n    \"amd\": true /* wrap jade template inside a requirejs define block */\n  },\n  \"stylus\": { /* stylus default options */\n    \"url\": {paths: [\"public\"]}, /* url options  */\n    \"paths\": [\"public/images\"] /* image lookup path  */\n  }\n}\n```\nSo if you have the following project\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, squid will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\n\n#### mappings\n\nYou can define mappings rules to output your files into different folders\n\nThe following squid.json config will\n- use mobile as src folder\n- compile mobile/js/* to app/assets/javascripts/mobile\n- compile mobile/stylesheets/* to app/assets/stylesheets/mobile\n\n```json\n{\n\"src\": \"mobile\",\n\"mappings\": [\n\t{\"from\": \"js\", \"to\": \"app/assets/javascripts/mobile\"},\n\t{\"from\": \"stylesheets\", \"to\": \"app/assets/stylesheets/mobile\"}\n]\n}\n```\n\n## post build\n\nYou can specify a script to launch after each successful file build\n\nThe following squid.json config will trigger **make bundle-app**  each time a file is successfully\nbuilt in src/public\n\n```json\n{\n  \"post_build\": {\"match\": \"src/public\", \"cmd\": \"make bundle-app\" }\n}\n```\n\n## TODO\n\n- Add more compiler options for compiler (PR are welcome)\n\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","readmeFilename":"README.md","_id":"squid@0.1.75","dist":{"shasum":"a8fc01ffc8eeb4dccba0c2b150ae8bc06ffb79f5","tarball":"https://registry.npmjs.org/squid/-/squid-0.1.75.tgz","integrity":"sha512-ruNJLl76sHlnUrfh/Y0yhm6bFyD3LD98OcjI4WSlu1Uk3QrtIW/9murci7IqwYQqQJfrn+aFEX2l88N4pv31ig==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCajDGql/UYMmgxfxISO8UfvsF1y6d8uDqFdm87bJcXhwIgOB/mAMB93OsCtj07s9zi+on5M3rIvFKU8kdokniiT2A="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.2.1":{"name":"squid","description":"build utility for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.2.1","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/watch.js","sb":"./bin/builder.js"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","handlebars":"1.x","jpegtran":"0.x","csslint":"0.x","optipng":"0.x","findr":"0.x","mkdirp":"0.x","moment":"2.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"1.x","underscore.string":"2.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"make build"},"readme":"Squid is a command line tool that monitor changes in the file system and compiles your files automatically each time you save.\nIt supports coffeescript, stylus and Jade, but can easily be extended to other file types.\n\n## Install\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\n## sq command\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- auto-restart your node server when a file loaded by your server script changes\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\nBy default squid will relaunch index.js each time a change occurs in /lib if your main script isn't index.js\nyou can specify a different script\n\n```\n$ sq my-script.js\n```\n\nto launch node in debug mode use -d option\n\n```\n$ sq -d\n```\n\n## sb command\n\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\nbuilder = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\n## Supported files for compilation\n\nsquid can compile the following files.\nWant to add support for other file types? New builder can easily be implemented using the base Builder classe\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.json</td><td>copy</td><td>validate and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.css</td><td>copy</td><td>verify with csslint and copy</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>compile jade js template into js</td>\n  </tr>\n  <tr>\n    <td>*.hbs</td><td>compile to js</td><td>compile jade js template into js</td>\n  </tr>  \n  <tr>\n    <td>*.png</td><td>optimize and copy</td><td>optimize png with optipng</td>\n  </tr>  \n  \n</table>\n\n## files Dependencies\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\n## Configuration\n\nYou can define a squid.json object to specify folder mappings, and compilation options\nHere are the default options if you dont add a squid.json to your project\n\n```js\n{\n  \"src\": \"src\", /* source folder */\n   \"server\": {\n      \"script\": \"index.js\", /* server script to execute */\n       env: {}\t, /*additional ennvironment variables to load*/\n   },\n  \"out\": \".\", /* build  folder */\n  \"jade\": { /* jade default options */\n    \"amd\": true /* wrap jade template inside a requirejs define block */\n  },\n  \"stylus\": { /* stylus default options */\n    \"url\": {paths: [\"public\"]}, /* url options  */\n    \"paths\": [\"public/images\"] /* image lookup path  */\n  }\n}\n```\nSo if you have the following project\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, squid will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\n\n#### mappings\n\nYou can define mappings rules to output your files into different folders\n\nThe following squid.json config will\n- use mobile as src folder\n- compile mobile/js/* to app/assets/javascripts/mobile\n- compile mobile/stylesheets/* to app/assets/stylesheets/mobile\n\n```json\n{\n\"src\": \"mobile\",\n\"mappings\": [\n\t{\"from\": \"js\", \"to\": \"app/assets/javascripts/mobile\"},\n\t{\"from\": \"stylesheets\", \"to\": \"app/assets/stylesheets/mobile\"}\n]\n}\n```\n\n## post build\n\nYou can specify a script to launch after each successful file build\n\nThe following squid.json config will trigger **make bundle-app**  each time a file is successfully\nbuilt in src/public\n\n```json\n{\n  \"post_build\": {\"match\": \"src/public\", \"cmd\": \"make bundle-app\" }\n}\n```\n\n## TODO\n\n- Add more compiler options for compiler (PR are welcome)\n\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","readmeFilename":"README.md","_id":"squid@0.2.1","dist":{"shasum":"18209cfa764b86106966193b4b09e0ed0b01370c","tarball":"https://registry.npmjs.org/squid/-/squid-0.2.1.tgz","integrity":"sha512-CzFtvDcotZE0jr7K7xi27DF5JSopFD7ltSw1SgOMCneAyYqxlXqpw/p7YuTbTx33NdCH8KmODOXKAU/mS3wyKw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3iNFLeqPp8PtMmtRPv5P/ZgHvkWukEOAvljsUke7jJAIhAIncaA5HZPuJ2vorC2lYSJ62FY3Hjf/hxfhpD97EQ2w0"}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.2.2":{"name":"squid","description":"build utility for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.2.2","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/watch.js","sb":"./bin/builder.js"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","handlebars":"1.x","jpegtran":"0.x","csslint":"0.x","optipng":"0.x","findr":"0.x","mkdirp":"0.x","moment":"2.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"1.x","underscore.string":"2.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"make build"},"readme":"Squid is a command line tool that monitor changes in the file system and compiles your files automatically each time you save.\nIt supports coffeescript, stylus and Jade, but can easily be extended to other file types.\n\n## Install\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\n## sq command\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- auto-restart your node server when a file loaded by your server script changes\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\nBy default squid will relaunch index.js each time a change occurs in /lib if your main script isn't index.js\nyou can specify a different script\n\n```\n$ sq my-script.js\n```\n\nto launch node in debug mode use -d option\n\n```\n$ sq -d\n```\n\n## sb command\n\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\nbuilder = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\n## Supported files for compilation\n\nsquid can compile the following files.\nWant to add support for other file types? New builder can easily be implemented using the base Builder classe\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.json</td><td>copy</td><td>validate and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.css</td><td>copy</td><td>verify with csslint and copy</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>compile jade js template into js</td>\n  </tr>\n  <tr>\n    <td>*.hbs</td><td>compile to js</td><td>compile jade js template into js</td>\n  </tr>  \n  <tr>\n    <td>*.png</td><td>optimize and copy</td><td>optimize png with optipng</td>\n  </tr>  \n  \n</table>\n\n## files Dependencies\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\n## Configuration\n\nYou can define a squid.json object to specify folder mappings, and compilation options\nHere are the default options if you dont add a squid.json to your project\n\n```js\n{\n  \"src\": \"src\", /* source folder */\n   \"server\": {\n      \"script\": \"index.js\", /* server script to execute */\n       env: {}\t, /*additional ennvironment variables to load*/\n   },\n  \"out\": \".\", /* build  folder */\n  \"jade\": { /* jade default options */\n    \"amd\": true /* wrap jade template inside a requirejs define block */\n  },\n  \"stylus\": { /* stylus default options */\n    \"url\": {paths: [\"public\"]}, /* url options  */\n    \"paths\": [\"public/images\"] /* image lookup path  */\n  }\n}\n```\nSo if you have the following project\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, squid will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\n\n#### mappings\n\nYou can define mappings rules to output your files into different folders\n\nThe following squid.json config will\n- use mobile as src folder\n- compile mobile/js/* to app/assets/javascripts/mobile\n- compile mobile/stylesheets/* to app/assets/stylesheets/mobile\n\n```json\n{\n\"src\": \"mobile\",\n\"mappings\": [\n\t{\"from\": \"js\", \"to\": \"app/assets/javascripts/mobile\"},\n\t{\"from\": \"stylesheets\", \"to\": \"app/assets/stylesheets/mobile\"}\n]\n}\n```\n\n## post build\n\nYou can specify a script to launch after each successful file build\n\nThe following squid.json config will trigger **make bundle-app**  each time a file is successfully\nbuilt in src/public\n\n```json\n{\n  \"post_build\": {\"match\": \"src/public\", \"cmd\": \"make bundle-app\" }\n}\n```\n\n## TODO\n\n- Add more compiler options for compiler (PR are welcome)\n\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","readmeFilename":"README.md","_id":"squid@0.2.2","dist":{"shasum":"92a0de56a8df7d45beb055070600ec071e9efbe9","tarball":"https://registry.npmjs.org/squid/-/squid-0.2.2.tgz","integrity":"sha512-5fwhPYRL2u8+KYGBZc8/oTPcV6GF1hwoyki1T+eaZxdQ3vzvbjA+c3dLJpF/VCEpOnI3OGsFD9d8gXLrL2jKFA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD4Rr9GVBFjZGRbBG5EvZl+DeNN87Si6GeUkhjMGAHQfQIgNQFuc4PIiE/VEFjv3Ry2qUFpTeFiA33lC+n4R4Vg++8="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.2.3":{"name":"squid","description":"build utility for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.2.3","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/watch.js","sb":"./bin/builder.js"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","handlebars":"1.x","jpegtran":"0.x","csslint":"0.x","optipng":"0.x","findr":"0.x","mkdirp":"0.x","moment":"2.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"1.x","underscore.string":"2.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"make build"},"readme":"Squid is a command line tool that monitor changes in the file system and compiles your files automatically each time you save.\nIt supports coffeescript, stylus and Jade, but can easily be extended to other file types.\n\n## Install\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\n## sq command\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- auto-restart your node server when a file loaded by your server script changes\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\nBy default squid will relaunch index.js each time a change occurs in /lib if your main script isn't index.js\nyou can specify a different script\n\n```\n$ sq my-script.js\n```\n\nto launch node in debug mode use -d option\n\n```\n$ sq -d\n```\n\n## sb command\n\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\nbuilder = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\n## Supported files for compilation\n\nsquid can compile the following files.\nWant to add support for other file types? New builder can easily be implemented using the base Builder classe\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.json</td><td>copy</td><td>validate and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.css</td><td>copy</td><td>verify with csslint and copy</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>compile jade js template into js</td>\n  </tr>\n  <tr>\n    <td>*.hbs</td><td>compile to js</td><td>compile jade js template into js</td>\n  </tr>  \n  <tr>\n    <td>*.png</td><td>optimize and copy</td><td>optimize png with optipng</td>\n  </tr>  \n  \n</table>\n\n## files Dependencies\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\n## Configuration\n\nYou can define a squid.json object to specify folder mappings, and compilation options\nHere are the default options if you dont add a squid.json to your project\n\n```js\n{\n  \"src\": \"src\", /* source folder */\n   \"server\": {\n      \"script\": \"index.js\", /* server script to execute */\n       env: {}\t, /*additional ennvironment variables to load*/\n   },\n  \"out\": \".\", /* build  folder */\n  \"jade\": { /* jade default options */\n    \"amd\": true /* wrap jade template inside a requirejs define block */\n  },\n  \"stylus\": { /* stylus default options */\n    \"url\": {paths: [\"public\"]}, /* url options  */\n    \"paths\": [\"public/images\"] /* image lookup path  */\n  }\n}\n```\nSo if you have the following project\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, squid will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\n\n#### mappings\n\nYou can define mappings rules to output your files into different folders\n\nThe following squid.json config will\n- use mobile as src folder\n- compile mobile/js/* to app/assets/javascripts/mobile\n- compile mobile/stylesheets/* to app/assets/stylesheets/mobile\n\n```json\n{\n\"src\": \"mobile\",\n\"mappings\": [\n\t{\"from\": \"js\", \"to\": \"app/assets/javascripts/mobile\"},\n\t{\"from\": \"stylesheets\", \"to\": \"app/assets/stylesheets/mobile\"}\n]\n}\n```\n\n## post build\n\nYou can specify a script to launch after each successful file build\n\nThe following squid.json config will trigger **make bundle-app**  each time a file is successfully\nbuilt in src/public\n\n```json\n{\n  \"post_build\": {\"match\": \"src/public\", \"cmd\": \"make bundle-app\" }\n}\n```\n\n## TODO\n\n- Add more compiler options for compiler (PR are welcome)\n\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","readmeFilename":"README.md","_id":"squid@0.2.3","dist":{"shasum":"aa70851d199304d17fee8c4e2cb9d218596d7010","tarball":"https://registry.npmjs.org/squid/-/squid-0.2.3.tgz","integrity":"sha512-e1m3DprJwHR+++SaxRoJMMOvHlehOB1v6xFFlMDvQYaHtPHRe/7tsfbo3bYGLLpAWWavFhTcf3iIbK1pHtlUQg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCjGM55T+KtF5E9RpYC28dICORDSnrSiaPi1eHhsv8kHAIgVY3R7KE+Ojxpvs6RceDL0ULJJ/ROUdMswgyVxHbzgDk="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.2.4":{"name":"squid","description":"build utility for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.2.4","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/watch.js","sb":"./bin/builder.js"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","handlebars":"1.x","jpegtran":"0.x","csslint":"0.x","optipng":"0.x","findr":"0.x","mkdirp":"0.x","moment":"2.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"1.x","underscore.string":"2.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"make build"},"readme":"Squid is a command line tool that monitor changes in the file system and compiles your files automatically each time you save.\nIt supports coffeescript, stylus and Jade, but can easily be extended to other file types.\n\n## Install\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\n## sq command\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- auto-restart your node server when a file loaded by your server script changes\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\nBy default squid will relaunch index.js each time a change occurs in /lib if your main script isn't index.js\nyou can specify a different script\n\n```\n$ sq my-script.js\n```\n\nto launch node in debug mode use -d option\n\n```\n$ sq -d\n```\n\n## sb command\n\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\nbuilder = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\n## Supported files for compilation\n\nsquid can compile the following files.\nWant to add support for other file types? New builder can easily be implemented using the base Builder classe\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.json</td><td>copy</td><td>validate and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.css</td><td>copy</td><td>verify with csslint and copy</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>compile jade js template into js</td>\n  </tr>\n  <tr>\n    <td>*.hbs</td><td>compile to js</td><td>compile jade js template into js</td>\n  </tr>  \n  <tr>\n    <td>*.png</td><td>optimize and copy</td><td>optimize png with optipng</td>\n  </tr>  \n  \n</table>\n\n## files Dependencies\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\n## Configuration\n\nYou can define a squid.json object to specify folder mappings, and compilation options\nHere are the default options if you dont add a squid.json to your project\n\n```js\n{\n  \"src\": \"src\", /* source folder */\n   \"server\": {\n      \"script\": \"index.js\", /* server script to execute */\n       env: {}\t, /*additional ennvironment variables to load*/\n   },\n  \"out\": \".\", /* build  folder */\n  \"jade\": { /* jade default options */\n    \"amd\": true /* wrap jade template inside a requirejs define block */\n  },\n  \"stylus\": { /* stylus default options */\n    \"url\": {paths: [\"public\"]}, /* url options  */\n    \"paths\": [\"public/images\"] /* image lookup path  */\n  }\n}\n```\nSo if you have the following project\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, squid will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\n\n#### mappings\n\nYou can define mappings rules to output your files into different folders\n\nThe following squid.json config will\n- use mobile as src folder\n- compile mobile/js/* to app/assets/javascripts/mobile\n- compile mobile/stylesheets/* to app/assets/stylesheets/mobile\n\n```json\n{\n\"src\": \"mobile\",\n\"mappings\": [\n\t{\"from\": \"js\", \"to\": \"app/assets/javascripts/mobile\"},\n\t{\"from\": \"stylesheets\", \"to\": \"app/assets/stylesheets/mobile\"}\n]\n}\n```\n\n## post build\n\nYou can specify a script to launch after each successful file build\n\nThe following squid.json config will trigger **make bundle-app**  each time a file is successfully\nbuilt in src/public\n\n```json\n{\n  \"post_build\": {\"match\": \"src/public\", \"cmd\": \"make bundle-app\" }\n}\n```\n\n## TODO\n\n- Add more compiler options for compiler (PR are welcome)\n\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","readmeFilename":"README.md","_id":"squid@0.2.4","dist":{"shasum":"0c312952d5d5a09ac6ce695e1792c260cdbc8fff","tarball":"https://registry.npmjs.org/squid/-/squid-0.2.4.tgz","integrity":"sha512-eXF6+v6B2LAM/RU/v/3DRNTgagOpcQz+4d/fV7EBh4BHbn2w67zsc3XLgYrj7UG4eXgBKDnurZxaEjh/tiA2yA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCdkfJZ4mpxAw/mBvfpdHRCXiVcKKEEfmLPJhB16xTL5gIhAJdLOA0/MGHJ4vYNEnsIrd2Zef9Z+wJTGATb21rysRBK"}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.2.6":{"name":"squid","description":"build utility for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.2.6","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/watch.js","sb":"./bin/builder.js"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","handlebars":"1.x","jpegtran":"0.x","csslint":"0.x","optipng":"0.x","findr":"0.x","mkdirp":"0.x","moment":"2.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"1.x","underscore.string":"2.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"make build"},"readme":"Squid is a command line tool that monitor changes in the file system and compiles your files automatically each time you save.\nIt supports coffeescript, stylus and Jade, but can easily be extended to other file types.\n\n## Install\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\n## sq command\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- auto-restart your node server when a file loaded by your server script changes\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\nBy default squid will relaunch index.js each time a change occurs in /lib if your main script isn't index.js\nyou can specify a different script\n\n```\n$ sq my-script.js\n```\n\nto launch node in debug mode use -d option\n\n```\n$ sq -d\n```\n\n## sb command\n\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\nbuilder = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\n## Supported files for compilation\n\nsquid can compile the following files.\nWant to add support for other file types? New builder can easily be implemented using the base Builder classe\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.json</td><td>copy</td><td>validate and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.css</td><td>copy</td><td>verify with csslint and copy</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>compile jade js template into js</td>\n  </tr>\n  <tr>\n    <td>*.hbs</td><td>compile to js</td><td>compile jade js template into js</td>\n  </tr>  \n  <tr>\n    <td>*.png</td><td>optimize and copy</td><td>optimize png with optipng</td>\n  </tr>  \n  \n</table>\n\n## files Dependencies\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\n## Configuration\n\nYou can define a squid.json object to specify folder mappings, and compilation options\nHere are the default options if you dont add a squid.json to your project\n\n```js\n{\n  \"src\": \"src\", /* source folder */\n   \"server\": {\n      \"script\": \"index.js\", /* server script to execute */\n       env: {}\t, /*additional ennvironment variables to load*/\n   },\n  \"out\": \".\", /* build  folder */\n  \"jade\": { /* jade default options */\n    \"amd\": true /* wrap jade template inside a requirejs define block */\n  },\n  \"stylus\": { /* stylus default options */\n    \"url\": {paths: [\"public\"]}, /* url options  */\n    \"paths\": [\"public/images\"] /* image lookup path  */\n  }\n}\n```\nSo if you have the following project\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, squid will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\n\n#### mappings\n\nYou can define mappings rules to output your files into different folders\n\nThe following squid.json config will\n- use mobile as src folder\n- compile mobile/js/* to app/assets/javascripts/mobile\n- compile mobile/stylesheets/* to app/assets/stylesheets/mobile\n\n```json\n{\n\"src\": \"mobile\",\n\"mappings\": [\n\t{\"from\": \"js\", \"to\": \"app/assets/javascripts/mobile\"},\n\t{\"from\": \"stylesheets\", \"to\": \"app/assets/stylesheets/mobile\"}\n]\n}\n```\n\n## post build\n\nYou can specify a script to launch after each successful file build\n\nThe following squid.json config will trigger **make bundle-app**  each time a file is successfully\nbuilt in src/public\n\n```json\n{\n  \"post_build\": {\"match\": \"src/public\", \"cmd\": \"make bundle-app\" }\n}\n```\n\n## TODO\n\n- Add more compiler options for compiler (PR are welcome)\n\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","readmeFilename":"README.md","_id":"squid@0.2.6","dist":{"shasum":"2875a472848ae89a66ef9d56d3f2d697186669c3","tarball":"https://registry.npmjs.org/squid/-/squid-0.2.6.tgz","integrity":"sha512-zTdzkFfs7qAyjATtzMME2JzwV8A83zl4bbBQ1TI6Rf6QN/JcJvb7Kt9GJW07jvc4lLBH/hqWx+Su3Qk080EoEQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC8GbtZY6KwxZfz73+cdNskjtnaOfSGu8yJFQZfWgdYwAIgXKB9A14reaXTBN+esbkYDCTeB6BdBKf05mpePrlYjgw="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.2.7":{"name":"squid","description":"build utility for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.2.7","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/watch.js","sb":"./bin/builder.js"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","handlebars":"1.x","jpegtran":"0.x","csslint":"0.x","optipng":"0.x","findr":"0.x","mkdirp":"0.x","moment":"2.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"1.x","underscore.string":"2.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"make build"},"readme":"Squid is a command line tool that monitor changes in the file system and compiles your files automatically each time you save.\nIt supports coffeescript, stylus and Jade, but can easily be extended to other file types.\n\n## Install\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\n## sq command\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- auto-restart your node server when a file loaded by your server script changes\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\nBy default squid will relaunch index.js each time a change occurs in /lib if your main script isn't index.js\nyou can specify a different script\n\n```\n$ sq my-script.js\n```\n\nto launch node in debug mode use -d option\n\n```\n$ sq -d\n```\n\n## sb command\n\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\nbuilder = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\n## Supported files for compilation\n\nsquid can compile the following files.\nWant to add support for other file types? New builder can easily be implemented using the base Builder classe\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.json</td><td>copy</td><td>validate and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.css</td><td>copy</td><td>verify with csslint and copy</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>compile jade js template into js</td>\n  </tr>\n  <tr>\n    <td>*.hbs</td><td>compile to js</td><td>compile jade js template into js</td>\n  </tr>  \n  <tr>\n    <td>*.png</td><td>optimize and copy</td><td>optimize png with optipng</td>\n  </tr>  \n  \n</table>\n\n## files Dependencies\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\n## Configuration\n\nYou can define a squid.json object to specify folder mappings, and compilation options\nHere are the default options if you dont add a squid.json to your project\n\n```js\n{\n  \"src\": \"src\", /* source folder */\n   \"server\": {\n      \"script\": \"index.js\", /* server script to execute */\n       env: {}\t, /*additional ennvironment variables to load*/\n   },\n  \"out\": \".\", /* build  folder */\n  \"jade\": { /* jade default options */\n    \"amd\": true /* wrap jade template inside a requirejs define block */\n  },\n  \"stylus\": { /* stylus default options */\n    \"url\": {paths: [\"public\"]}, /* url options  */\n    \"paths\": [\"public/images\"] /* image lookup path  */\n  }\n}\n```\nSo if you have the following project\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, squid will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\n\n#### mappings\n\nYou can define mappings rules to output your files into different folders\n\nThe following squid.json config will\n- use mobile as src folder\n- compile mobile/js/* to app/assets/javascripts/mobile\n- compile mobile/stylesheets/* to app/assets/stylesheets/mobile\n\n```json\n{\n\"src\": \"mobile\",\n\"mappings\": [\n\t{\"from\": \"js\", \"to\": \"app/assets/javascripts/mobile\"},\n\t{\"from\": \"stylesheets\", \"to\": \"app/assets/stylesheets/mobile\"}\n]\n}\n```\n\n## post build\n\nYou can specify a script to launch after each successful file build\n\nThe following squid.json config will trigger **make bundle-app**  each time a file is successfully\nbuilt in src/public\n\n```json\n{\n  \"post_build\": {\"match\": \"src/public\", \"cmd\": \"make bundle-app\" }\n}\n```\n\n## TODO\n\n- Add more compiler options for compiler (PR are welcome)\n\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/pgherveou/squid/issues"},"_id":"squid@0.2.7","dist":{"shasum":"237a3fab39ac03fe2d07896a34138d8adb7503b5","tarball":"https://registry.npmjs.org/squid/-/squid-0.2.7.tgz","integrity":"sha512-+Bq+fqAWfnNDo2zpHMwYNcJUiQKKD4j1he/Sb6ldgaprznuID2OBxn6CiRXYG0Rc4mC04eUmio4jh1ucXDxBQg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBQacvYSkq8YKkphGhu2U5SZ5vR7sO2G5aeczX0FuALaAiEA5skpcuYPEEjfatujqIgWTFkweOTqYu79og4+0vOQ6ns="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.2.9":{"name":"squid","description":"build utility for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.2.9","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/watch.js","sb":"./bin/builder.js"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","handlebars":"1.x","jpegtran":"0.x","csslint":"0.x","optipng":"0.x","findr":"0.x","mkdirp":"0.x","moment":"2.x","nib":"1.x","optimist":"0.x","stylus":"0.x","lodash":"1.x","underscore.string":"2.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"make build"},"readme":"Squid is a command line tool that monitor changes in the file system and compiles your files automatically each time you save.\nIt supports coffeescript, stylus and Jade, but can easily be extended to other file types.\n\n## Install\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\n## sq command\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- auto-restart your node server when a file loaded by your server script changes\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\nBy default squid will relaunch index.js each time a change occurs in /lib if your main script isn't index.js\nyou can specify a different script\n\n```\n$ sq my-script.js\n```\n\nto launch node in debug mode use -d option\n\n```\n$ sq -d\n```\n\n## sb command\n\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\nbuilder = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\n## Supported files for compilation\n\nsquid can compile the following files.\nWant to add support for other file types? New builder can easily be implemented using the base Builder classe\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.json</td><td>copy</td><td>validate and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.css</td><td>copy</td><td>verify with csslint and copy</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>compile jade js template into js</td>\n  </tr>\n  <tr>\n    <td>*.hbs</td><td>compile to js</td><td>compile jade js template into js</td>\n  </tr>  \n  <tr>\n    <td>*.png</td><td>optimize and copy</td><td>optimize png with optipng</td>\n  </tr>  \n  \n</table>\n\n## files Dependencies\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\n## Configuration\n\nYou can define a squid.json object to specify folder mappings, and compilation options\nHere are the default options if you dont add a squid.json to your project\n\n```js\n{\n  \"src\": \"src\", /* source folder */\n   \"server\": {\n      \"script\": \"index.js\", /* server script to execute */\n       env: {}\t, /*additional ennvironment variables to load*/\n   },\n  \"out\": \".\", /* build  folder */\n  \"jade\": { /* jade default options */\n    \"amd\": true /* wrap jade template inside a requirejs define block */\n  },\n  \"stylus\": { /* stylus default options */\n    \"url\": {paths: [\"public\"]}, /* url options  */\n    \"paths\": [\"public/images\"] /* image lookup path  */\n  }\n}\n```\nSo if you have the following project\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, squid will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\n\n#### mappings\n\nYou can define mappings rules to output your files into different folders\n\nThe following squid.json config will\n- use mobile as src folder\n- compile mobile/js/* to app/assets/javascripts/mobile\n- compile mobile/stylesheets/* to app/assets/stylesheets/mobile\n\n```json\n{\n\"src\": \"mobile\",\n\"mappings\": [\n\t{\"from\": \"js\", \"to\": \"app/assets/javascripts/mobile\"},\n\t{\"from\": \"stylesheets\", \"to\": \"app/assets/stylesheets/mobile\"}\n]\n}\n```\n\n## post build\n\nYou can specify a script to launch after each successful file build\n\nThe following squid.json config will trigger **make bundle-app**  each time a file is successfully\nbuilt in src/public\n\n```json\n{\n  \"post_build\": {\"match\": \"src/public\", \"cmd\": \"make bundle-app\" }\n}\n```\n\n## TODO\n\n- Add more compiler options for compiler (PR are welcome)\n\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/pgherveou/squid/issues"},"_id":"squid@0.2.9","dist":{"shasum":"ebead9d92bbb5d96f422ff7bed1e6e24958bb7a6","tarball":"https://registry.npmjs.org/squid/-/squid-0.2.9.tgz","integrity":"sha512-jIUiu7p63V6NKpvlhM6uFN6tvbfXJX3Vu2041Q+CXt58ym9gffIs8hBEfHc7B2F4Yweoa8kph1yTI8xo+z5YxQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCTZher96XpKbX+eZcgwbh13OVJgToMLC7FOT2fFdpLlwIgEauxRmRATCMMeUGuFvDrJKbuYiu1ZAArugOQT8/QYp8="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.2.0":{"name":"squid","description":"build utility for compiling coffee, stylus, jade files","author":{"name":"Pierre-Guillaume Herveou","email":"pgherveou@gmail.com"},"version":"0.2.0","homepage":"http://pgherveou.github.com/squid/","repository":{"type":"git","url":"https://github.com/pgherveou/squid"},"bin":{"sq":"./bin/watch.js","sb":"./bin/builder.js"},"dependencies":{"async":"0.x","coffee-script":"1.x","jade":"0.x","handlebars":"1.x","jpegtran":"0.x","csslint":"0.x","optipng":"0.x","findr":"0.x","mkdirp":"0.x","moment":"2.x","nib":"0.x","optimist":"0.x","stylus":"0.x","lodash":"1.x","underscore.string":"2.x","winston":"0.x","winston-growl":"0.x"},"scripts":{"prepublish":"make build"},"readme":"Squid is a command line tool that monitor changes in the file system and compiles your files automatically each time you save.\nIt supports coffeescript, stylus and Jade, but can easily be extended to other file types.\n\n## Install\n\ninstall the package globally to use the commands provided by the project (see desc below)\n\n```\n$ npm install -g squid\n```\n\n## sq command\n\nat the root of your project directory execute:\n\n```\n$ sq\n```\n\nthis will\n\n- start your server script\n- live recompile your files and emit a growl notification**\n- auto-restart your node server when a file loaded by your server script changes\n\nYou can also combine it to a tool like [liveReload] [1] to auto refresh your browser when client files are updated\n\n**If you want to enable growl notification, install [growl] [2] and [growlNotify] [3]\n\n![growl screenshot](https://github.com/pgherveou/squid/raw/gh-pages/images/growl.screenshot.png)\n\nBy default squid will relaunch index.js each time a change occurs in /lib if your main script isn't index.js\nyou can specify a different script\n\n```\n$ sq my-script.js\n```\n\nto launch node in debug mode use -d option\n\n```\n$ sq -d\n```\n\n## sb command\n\nif you just want to build the project source files. use the sb command\nat the root of your project directory execute:\n\n```\n$ sb\n```\n\nYou can also use squid to build your project inside your own build script\n\n```coffee\nbuilder = require 'squid'\n\n# build all files in src except your css folder\nbuilder.buildAll except: ['css'], (errs) ->\n  if errs\n    console.error 'Error building the project'\n    console.error \"#{e.file}: #{e.toString()}\" for e in errs\n  else\n    console.log 'build sucessful!'\n```\n\n## Supported files for compilation\n\nsquid can compile the following files.\nWant to add support for other file types? New builder can easily be implemented using the base Builder classe\n\n<table>\n  <tr>\n    <th>file</th><th>operation</th><th>note</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>copy</td><td>concat dependencies and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.json</td><td>copy</td><td>validate and copy to the output folder</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>compile to js</td><td>files are compiled with bare option</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>compile to css</td><td>nib is imported, and /public/images is added to the path</td>\n  </tr>\n  <tr>\n    <td>*.css</td><td>copy</td><td>verify with csslint and copy</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>compile to js</td><td>compile jade js template into js</td>\n  </tr>\n  <tr>\n    <td>*.hbs</td><td>compile to js</td><td>compile jade js template into js</td>\n  </tr>  \n  <tr>\n    <td>*.png</td><td>optimize and copy</td><td>optimize png with optipng</td>\n  </tr>  \n  \n</table>\n\n## files Dependencies\n\nsquid manage your file dependencies and only compile the necessary files.\nhere is how you define dependencies\n\n<table>\n  <tr>\n    <th>file</th><th>import syntax</th>\n  </tr>\n  <tr>\n    <td>*.js</td><td>//= import foo.js</td>\n  </tr>\n  <tr>\n    <td>*.coffee</td><td>#= import foo.(coffee|js)</td>\n  </tr>\n  <tr>\n    <td>*.styl</td><td>@import foo</td>\n  </tr>\n  <tr>\n    <td>*.jade</td><td>include foo</td>\n  </tr>\n</table>\n\n## Configuration\n\nYou can define a squid.json object to specify folder mappings, and compilation options\nHere are the default options if you dont add a squid.json to your project\n\n```js\n{\n  \"src\": \"src\", /* source folder */\n   \"server\": {\n      \"script\": \"index.js\", /* server script to execute */\n       env: {}\t, /*additional ennvironment variables to load*/\n   },\n  \"out\": \".\", /* build  folder */\n  \"jade\": { /* jade default options */\n    \"amd\": true /* wrap jade template inside a requirejs define block */\n  },\n  \"stylus\": { /* stylus default options */\n    \"url\": {paths: [\"public\"]}, /* url options  */\n    \"paths\": [\"public/images\"] /* image lookup path  */\n  }\n}\n```\nSo if you have the following project\n<pre>\n./\n|- index.js\n|- src\n  |- lib\n    |- server_file1.coffee\n  |- public\n    |- js\n      |- client_file1.coffee\n      |- client_file1.tpl.jade\n    |- css\n      |- file1.styl\n</pre>\n\nafter running **sb** or **sq**, squid will generate the following files\n\n<pre>\n./\n|- index.js\n|- src\n  |- ...\n|- lib\n  |- server_file1.js\n|- public\n  |- js\n    |- client_file1.js\n    |- client_file1.tpl.js\n  |- css\n    |- file1.css\n</pre>\n\n\n#### mappings\n\nYou can define mappings rules to output your files into different folders\n\nThe following squid.json config will\n- use mobile as src folder\n- compile mobile/js/* to app/assets/javascripts/mobile\n- compile mobile/stylesheets/* to app/assets/stylesheets/mobile\n\n```json\n{\n\"src\": \"mobile\",\n\"mappings\": [\n\t{\"from\": \"js\", \"to\": \"app/assets/javascripts/mobile\"},\n\t{\"from\": \"stylesheets\", \"to\": \"app/assets/stylesheets/mobile\"}\n]\n}\n```\n\n## post build\n\nYou can specify a script to launch after each successful file build\n\nThe following squid.json config will trigger **make bundle-app**  each time a file is successfully\nbuilt in src/public\n\n```json\n{\n  \"post_build\": {\"match\": \"src/public\", \"cmd\": \"make bundle-app\" }\n}\n```\n\n## TODO\n\n- Add more compiler options for compiler (PR are welcome)\n\n\n[1]: http://livereload.com/                                 \"liveReload\"\n[2]: http://growl.info/growlupdateavailable                 \"growl\"\n[3]: http://growl.info/downloads                            \"growlNotify\"\n","readmeFilename":"README.md","_id":"squid@0.2.0","dist":{"shasum":"09b55cc93f9349bfd18ac785787e02bfc8d332ef","tarball":"https://registry.npmjs.org/squid/-/squid-0.2.00.tgz","integrity":"sha512-4xJ7mkOXYNZSDo5psjobjNDi6AwcagF9RrE1FQHv3tLxu5/lntBi1OV5Ei49T73nJ0rfloNmMIwTE+H4prRhjw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDMvkXcAO1nrxXXBQ6I0yNuex2DxjkKlAYHbUo+zLIG4AIhAKWFDR0XjUPACnzvne2NNzabT8+yEYqQ8odIlzjxSmau"}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"pgherveou","email":"pgherveou@gmail.com"},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{}},"0.3.0":{"name":"squid","version":"0.3.0","description":"Provides SQL tagged template strings and a schema definition function.","main":"dist/index.js","typings":"dist/index.d.ts","scripts":{"build":"tsc","test":"ava","posttest":"prettier --list-different 'src/**' && tslint --project ."},"repository":{"type":"git","url":"git+https://github.com/andywer/squid.git"},"keywords":["schema","sql","table","template","postgres"],"author":{"name":"Andy Wermke","email":"andy@dev.next-step-software.com"},"license":"MIT","devDependencies":{"@types/debug":"0.0.31","@types/dedent":"^0.7.0","@types/node":"^10.12.18","ava":"^1.0.1","dedent":"^0.7.0","husky":"^1.2.1","prettier":"^1.15.3","pretty-quick":"^1.8.0","ts-node":"^7.0.1","tslint":"^5.12.0","tslint-config-prettier":"^1.17.0","typescript":"^3.2.2"},"dependencies":{"@types/pg":"^7.4.11","debug":"^4.1.0"},"ava":{"compileEnhancements":false,"extensions":["ts"],"require":["ts-node/register"]},"husky":{"hooks":{"pre-commit":"pretty-quick --staged"}},"prettier":{"semi":false,"printWidth":100},"gitHead":"4a107fcfb374ad5244a68b6d1cd4757f2cfe6fb5","bugs":{"url":"https://github.com/andywer/squid/issues"},"homepage":"https://github.com/andywer/squid#readme","_id":"squid@0.3.0","_npmVersion":"6.5.0","_nodeVersion":"10.13.0","_npmUser":{"name":"andywer","email":"andy.dev@next-step-software.com"},"dist":{"integrity":"sha512-e6odBkPsG1bIq8u6Gx9GvG8jFu2gCeLnaYcbQhkmohsZ5uUIayIGDMfR1RRr4kLWfQuGoWbGbdSIztKC09ymeQ==","shasum":"d5bf9480fe14f9ae764f67788a7c34dcaa801494","tarball":"https://registry.npmjs.org/squid/-/squid-0.3.0.tgz","fileCount":19,"unpackedSize":27361,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcLxgfCRA9TVsSAnZWagAA7VwP/j6ggsKkCLGCe0vJizq6\nr+SLbH/0ePu+EMVny4Wepq5htgvEm4p/hibS1nxQbsr8LPDswj/YsDkunOAt\nTurlpcMyg/hetf+C0XfsL1iH8p3n8l5kB0C3C3ANPASMI8V3557gzDQZPc/D\nj9RQq9i+Teh/diMx5Y9LH95HpOxeqxPACzFbUvwAqgNE11Q98Kv0p4HJXQPH\ns0zUhuOYNRJW0G1wquwwztJx0weI76G+7MEoSoxRnP1eJpW0U4E7DM/ZjGLd\nui12ohp/6WupJttXYsP/JuU0VMTS8JUiC04J15tWgUnaKlX8fASAwFWx7d8e\neRJ7Rl/I5QfpJqKRGdvBIj8GqroKG4vXyvZhn/b4Nk+u//LMHQklYXSuKOaO\n8mKBYCC27Gahnm+cbPHytjb68Ddd7O2hzJj3Pe4ZX8YoW/8tuqEBKnCNEmB6\nhnqruSBL/IjSCj5xZpZ3kGASQA31uT1771qJT6nHDVLqsIxRQ/QZxwEs9s+i\ncz2FGMq6Av4TPA2uatzbKFVxrnbi1+aFDhlgGCEDhKmCmjm8E48EpnBwIVIW\nDANVhLg2LhscIBjURULfhsim5JTw5/oa5jLXG7oIfjpc/MNFup4dV6MS5xs5\nSGR+3WQCT4XXMrk2KyaAzM0G8juCnaA4yXTn07brtU8U5D4V9cTBPXfXl31H\n3TTf\r\n=AxFz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGRQhxq/0bbezhmaQuEo9qaP557QnpE3yyOlwibTzegpAiB3zd4GtQDTRPNpQcydhrrObk4ZUHwbMBfdt4iXMJ5O3w=="}]},"maintainers":[{"name":"pgherveou","email":"pgherveou@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/squid_0.3.0_1546590238468_0.12446598028500633"},"_hasShrinkwrap":false},"0.4.0":{"name":"squid","version":"0.4.0","description":"Provides SQL tagged template strings and a schema definition function.","main":"dist/index.js","typings":"dist/index.d.ts","scripts":{"build":"tsc","test":"ava","posttest":"prettier --list-different 'src/**' && tslint --project ."},"repository":{"type":"git","url":"git+https://github.com/andywer/squid.git"},"keywords":["schema","sql","table","template","postgres"],"author":{"name":"Andy Wermke","email":"andy@dev.next-step-software.com"},"license":"MIT","devDependencies":{"@types/debug":"0.0.31","@types/dedent":"^0.7.0","@types/node":"^10.12.18","ava":"^1.0.1","dedent":"^0.7.0","husky":"^1.2.1","prettier":"^1.15.3","pretty-quick":"^1.8.0","ts-node":"^7.0.1","tslint":"^5.12.0","tslint-config-prettier":"^1.17.0","typescript":"^3.2.2"},"dependencies":{"@types/pg":"^7.4.11","debug":"^4.1.0"},"ava":{"compileEnhancements":false,"extensions":["ts"],"require":["ts-node/register"]},"husky":{"hooks":{"pre-commit":"pretty-quick --staged"}},"prettier":{"semi":false,"printWidth":100},"gitHead":"2ac01c35aa5160165acb3717e2e4356253a41201","bugs":{"url":"https://github.com/andywer/squid/issues"},"homepage":"https://github.com/andywer/squid#readme","_id":"squid@0.4.0","_nodeVersion":"10.13.0","_npmVersion":"6.7.0","_npmUser":{"name":"andywer","email":"andy.dev@next-step-software.com"},"dist":{"integrity":"sha512-TGRJSb+68wbJNuESWCBBqis//w+AR6Vf74vfusoPL7RMO/bvC+893DCcTLovit1iflO/PKvmNrT3a+djh8j2Iw==","shasum":"eedca7e51af0e034e52699d82c4e662998468567","tarball":"https://registry.npmjs.org/squid/-/squid-0.4.0.tgz","fileCount":17,"unpackedSize":29642,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcWoxFCRA9TVsSAnZWagAAwYQP/Rql8w9NTkBgecqB+Qq6\nVNvOk5VA63ytArHL2IjDZzyDEYALE4oN404VQNLMIJAbCPlUzMZWzrQk3Tbz\nx0vqSrqNSTfqAjycjrjL8PAygeZhYxHLjM8nOWpuAaA2Pi7iU2KUymyWF2W/\n1ySewfaBkBap9xgbqJhLlR285SVsQ5BJwHPLKuKr3G8W2C2yvwxdgcTSjZhx\nLi0K4y5xfgHk/ifDLkq59zkIVailkSFsPElghLZA4C1RERJWuLgK6AGNUz10\nZk+XQZGWMJRTcZ4TmbbhssLerV4PZPfYbw4S2Fkdzb6sRd/ZP6U+2JBohZpX\nKxy+RGA7MLxzj3whFXMwuzh53/4VJVsAEvh5+1rvnLM3pnDCtYBaPuTJCr2X\nC8DfPuzaalFrJHiHglhYe7JU4HjhvQsbdwvpbJsED02e3pruWfemNBAGJ7rm\nT9pLVixg69D10mYSPtG48Bdd8Pi73EkQgZKeDLHg6dYVPxRBQJSvHGEzdklt\ncMb+y1V2p5yDX925HvOtVTQJfdsonB4qgrK7KeUBbNVJp4HfqeWD8BaLAQWu\n/8h19N2Cz++PrTB3oZM99lPf6cEIE53TaJ9LFxAYorT/2Dkl9LF79tzDwBiR\nXaajzWIesNsCDCLYwu2+mV8cYKwH9FereDKNUmCNxM1SJppWbsAmx25gJ6PL\noqBf\r\n=MItF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC8nhOfGKnG0nWJ9iHIbV/wMwbARpRRDChaqPg+KrbzNAiBckd/9WBY/VMnzqyZkVcmKy1Zige9dZMfr0cDq/fC+9Q=="}]},"maintainers":[{"email":"andy.dev@next-step-software.com","name":"andywer"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/squid_0.4.0_1549438020459_0.7538486861894778"},"_hasShrinkwrap":false},"0.5.0":{"name":"squid","version":"0.5.0","description":"Provides SQL tagged template strings and a schema definition function.","main":"dist/index.js","typings":"dist/index.d.ts","scripts":{"prebuild":"rimraf dist/","build":"tsc","test":"ava","posttest":"prettier --list-different 'src/**' && tslint --project .","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/andywer/squid.git"},"keywords":["schema","sql","table","template","postgres"],"author":{"name":"Andy Wermke","email":"andy@dev.next-step-software.com"},"license":"MIT","devDependencies":{"@types/debug":"0.0.31","@types/dedent":"^0.7.0","@types/node":"^10.12.18","ava":"^2.3.0","dedent":"^0.7.0","husky":"^1.2.1","prettier":"^1.15.3","pretty-quick":"^1.8.0","rimraf":"^3.0.0","ts-node":"^7.0.1","tslint":"^5.12.0","tslint-config-prettier":"^1.17.0","typescript":"^3.2.2"},"dependencies":{"@types/pg":"^7.4.11","debug":"^4.1.0"},"ava":{"compileEnhancements":false,"extensions":["ts"],"require":["ts-node/register"]},"husky":{"hooks":{"pre-commit":"pretty-quick --staged"}},"prettier":{"semi":false,"printWidth":100},"gitHead":"5e00fdf43bcac20a9552f3f13f53c9ed0a9700e5","bugs":{"url":"https://github.com/andywer/squid/issues"},"homepage":"https://github.com/andywer/squid#readme","_id":"squid@0.5.0","_nodeVersion":"10.15.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-1yXzITsMY2TlQ6ZQkgzgsiRm2D+RgUyhy5kBjUOwxIGfvi65+PBWLsbVsAEDAsU2bWJ6d4pcqRY4Si1ETFqncQ==","shasum":"3fd2387b09148551abc003ca2c739494636ba7c7","tarball":"https://registry.npmjs.org/squid/-/squid-0.5.0.tgz","fileCount":17,"unpackedSize":32693,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdbNXuCRA9TVsSAnZWagAAobgP/0YaLxRue7t6BToNZsVU\nugLwgIXARQuSM5SWHRSZqTADH6eqW9bBIljj2hgAM3yPJ/ZNHiptqazts+3a\nGMbqtb48BaVax2NJ921eEcqpmW8LvKXOMDvUxSH585TfxB0qb6Knee1yALXo\ntLs6RcNqUVVEbCjhJK6x+gmiwmT1GvZIbuf2k5GAejXrpdDoEJ5d54s38h4x\nvgeHuoDEA1WOfYMAD4s2Tq3SwVwy7+4QaJc5YexcGj7pe0PnjvbS9VlbgXDr\nUxyBShSdJ5ZTGygPDpqztSM1+yp5Ay9VaFd2M3BwAHZ+VdDNMeNh1LsybOn5\nl15msW1K5n+f7lcEfEMXL4crM0FYNpgaVdRSqzIL3lTj9AZqQMHjxCSqWtnW\nNlUzU+0/aNh4afoOWAiEmWVI6BFSsSmtrHW4smuM+xAe+QLV2H3kgTNZ4gAs\nKzBIWjZX35HJcLFGZZWXXWA+IXv4FxunTzwlXZGntfur2aVK68jOc0ubNQSR\nYlHaWViJegKh96Q8qn3uypaOHIRKyjPVfQD5p122ULlsWiiy04b3CTt4LrSc\nQhuuWw8avtosfmPX/LZWysR3gJR8yJ0lQzoMNyHfNTDH0FMB4Z81txjplERc\nzenul4pnTC3TpKGmMmL5NfKuZpyCpf7tqkfJQcFUm2o7s1XGkK+9BcDNDLW8\nKpd1\r\n=1695\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCPUE11WjxM3LIm9CFuCDbAcagdEYnufXQ5YZVf9k4G7AIhAPuDgyKqqWsNWxLSKpM1tOV3b1qj3MpiCxUqLJLk1hPg"}]},"maintainers":[{"email":"andy.dev@next-step-software.com","name":"andywer"}],"_npmUser":{"name":"andywer","email":"andy.dev@next-step-software.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/squid_0.5.0_1567413741843_0.5492989606783767"},"_hasShrinkwrap":false},"0.5.1":{"name":"squid","version":"0.5.1","description":"Provides SQL tagged template strings and a schema definition function.","main":"dist/index.js","typings":"dist/index.d.ts","scripts":{"prebuild":"rimraf dist/","build":"tsc","test":"ava","posttest":"prettier --list-different 'src/**' && tslint --project .","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/andywer/squid.git"},"keywords":["schema","sql","table","template","postgres"],"author":{"name":"Andy Wermke","email":"andy@dev.next-step-software.com"},"license":"MIT","devDependencies":{"@types/debug":"0.0.31","@types/dedent":"^0.7.0","@types/node":"^10.12.18","ava":"^2.3.0","dedent":"^0.7.0","husky":"^1.2.1","prettier":"^1.15.3","pretty-quick":"^1.8.0","rimraf":"^3.0.0","ts-node":"^7.0.1","tslint":"^5.12.0","tslint-config-prettier":"^1.17.0","typescript":"^3.2.2"},"dependencies":{"@types/pg":"^7.4.11","debug":"^4.1.0"},"ava":{"compileEnhancements":false,"extensions":["ts"],"require":["ts-node/register"]},"husky":{"hooks":{"pre-commit":"pretty-quick --staged"}},"prettier":{"semi":false,"printWidth":100},"gitHead":"5de93e173ef1866d45262e86b36d937116410954","bugs":{"url":"https://github.com/andywer/squid/issues"},"homepage":"https://github.com/andywer/squid#readme","_id":"squid@0.5.1","_nodeVersion":"10.15.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-ZPWWuncxXfXU4jMuEts9/v1IpZ1EId2E+HAoKkVwXToLATcbdrIcJjBEv32AMqQsbwHbLyIEjcX5Q3O0BEFjjg==","shasum":"5b16c873d6e3142e24cdc32d8303ed19ae86bf7e","tarball":"https://registry.npmjs.org/squid/-/squid-0.5.1.tgz","fileCount":17,"unpackedSize":32700,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdbobJCRA9TVsSAnZWagAAjYoP/2H6zbdfzi73HJREgCTr\nqvttW1Tb3CJHmYtM933w+jVIkjL2SxsXpndz1vmD5IdppK+Ksv8Whsdz2AVv\nmwV4gHBEMgSyp4/9KE3RE2C7adtL+wHEx5a7AlK2V7FZH2GJT/3b/I3KgYUN\naEVdQz5DuJqe9faJcGfvVaC/qxHuZ+Bbz4waf97QQNg6aK8yvu3nI4G/rIeE\n3L5tNF6Z7NJFdBgsOvFmHamd/JuVQgtb6k5gxI4z23x3069V2bbw7/0XhOOp\n/FlEHfI0THUpdTaM+TYfgrqeTqNXYHQhetsI7KFfawETtI044oaY4CaRqG2l\npd1PahEytZ1SOpoJVfeGnVqV3eU1BYjAcu9F5RfPf30Qk1Faw0Ci9cdtCmrH\ncqTBHq/KWstT/BpvH3104ophH4fzROAEB3LFxZUiWvIa6GTa5Cy9mKcQ/mqi\nQxOZS55LdTF3YGYIXmzDUTKHxLpWt9TaEapQLabf4OtYTSdeCaH7awVZ77q2\nO9M0HvyUfpsQsZkPcAS3fVe+8Mht366onCZLDy9ipkxBU07TFSAIQOtPip18\nywv5X/kSUY9X6LzUa2VhONCIhRqxvYPacrwqwDugLIUJ3NyEWYYQey144Kzq\n1e1b6cX8B5feTEAoQje5V3DhXN9ByAHhLpnvjUK3+Bnu95sKpQghcv6pNmK2\n7N2+\r\n=Rs3B\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCeAia7fedlTYMK7XxKFjOhzBkHknxHLmE0lYXU0nq05gIgVbmrzvfQmxkW95o2meIkvJMzaaKhwlU+tzlMJdHRIf8="}]},"maintainers":[{"email":"andy.dev@next-step-software.com","name":"andywer"}],"_npmUser":{"name":"andywer","email":"andy.dev@next-step-software.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/squid_0.5.1_1567524552820_0.5046015447493082"},"_hasShrinkwrap":false},"0.5.2":{"name":"squid","version":"0.5.2","description":"Provides SQL tagged template strings and a schema definition function.","main":"dist/index.js","typings":"dist/index.d.ts","scripts":{"prebuild":"rimraf dist/","build":"tsc","test":"ava","posttest":"prettier --list-different 'src/**' && tslint --project .","test:e2e":"ava --config ava.e2e-config.js","db:start":"docker run --rm -p 5432:5432 -e POSTGRES_USER=$USER -e POSTGRES_DB=$USER -e POSTGRES_HOST_AUTH_METHOD=trust postgres:10.4-alpine","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/andywer/squid.git"},"keywords":["schema","sql","table","template","postgres"],"author":{"name":"Andy Wermke","email":"andy@dev.next-step-software.com"},"license":"MIT","devDependencies":{"@types/debug":"0.0.31","@types/dedent":"^0.7.0","@types/node":"^13.13.4","ava":"^2.3.0","dedent":"^0.7.0","husky":"^1.2.1","pg":"^8.0.3","prettier":"^1.15.3","pretty-quick":"^1.8.0","rimraf":"^3.0.0","ts-node":"^7.0.1","tslint":"^5.12.0","tslint-config-prettier":"^1.17.0","typescript":"^3.8.3"},"dependencies":{"@types/pg":"^7.4.11","debug":"^4.1.0"},"husky":{"hooks":{"pre-commit":"pretty-quick --staged"}},"prettier":{"semi":false,"printWidth":100},"gitHead":"3dfda41a087ecdfb1057875970be4988de34e0f6","bugs":{"url":"https://github.com/andywer/squid/issues"},"homepage":"https://github.com/andywer/squid#readme","_id":"squid@0.5.2","_nodeVersion":"12.16.3","_npmVersion":"6.14.11","dist":{"integrity":"sha512-cw0jVGdNMAdC+7YpISD7qSFJTWSdnkuPHnBZ8v0hgIOef2OoB2l7lWZCiHOhI+ZzWgJ0bvwsjjSX81iMtCTOAQ==","shasum":"4c83fd0c057e094b0e988e63a5e760f1171751c8","tarball":"https://registry.npmjs.org/squid/-/squid-0.5.2.tgz","fileCount":23,"unpackedSize":36599,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgaOAFCRA9TVsSAnZWagAAe/oP/iP8lIUiN8zKDPhQT6w2\na2jjBpUQzbkaJeuMkD9gbR7XL9lTSbRhc0juW9ha+XY9bQ/+QkIM8k6zciNw\n+B9SqEi6xFkk1dRbkMowt5AVnX99RcERP7jdIl78s/UfwljxCZtNlWYn/8mq\nXip77P53n7pUGWmmKy05EnUUbGOTUqDzBovqSANGHXs4bSrr/0sh+9eWE+oW\nZXiJhiZoe1DMupZaVf5JhGWUMS/8xdzy5ucobh7y3/g591UG1+3jWZrljNNA\n4ObGvg6n4jcHxxRhJGrU4phYobiN79JbBgwU78NQNlY8QeFShn3S2PEXHIov\nOwOgqK9sYXHa2uzG1ogWd9pQtnDpQfXroM68HfrTjt9ws/nzhOub+cvGn/gG\n2aQYz2qpEydC0UOW553LrimRQp/mC9rkjlj434Dph2NTTPMBHliWvQR9Eygo\nPUBTBtk52FTJvHlojqkMc4m8SBKGq0Ets69x1JJ78rpr/ISNYVON4Ie8aTiZ\nfiLOIgABL25YLwXWVJH1zz0bT8+KiVUH4m3Hf7QrkkUjF6NzOADGFuoIYgiQ\nrCbstPl26LotK+CAHJ9P5uKUhL485P9dMmnbFvfCJTahHymeZX14ByDitwtQ\n9TUVtOy9eTaDJvvda4y2kA6WMuOL2cAc2pc7MZp4H9ejtsBPtqVsMtwMCGC7\nPOGC\r\n=T8wI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICRW+OHBWBpQGxvFZoDZbpe+MLc/z706+NJjYhv/KOpXAiBg9WuLzteqXyr3YeXMN9zXtSmQgS+k8xoPpLHhlYbYrQ=="}]},"_npmUser":{"name":"andywer","email":"github@andywer.com"},"directories":{},"maintainers":[{"name":"andywer","email":"github@andywer.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/squid_0.5.2_1617485829008_0.4710779788151702"},"_hasShrinkwrap":false}},"readme":"<h1 align=\"center\">squid</h1>\n\n<p align=\"center\">\n  <b>SQL tagged template strings and schema definitions for JavaScript & TypeScript.</b>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://travis-ci.org/andywer/squid\"><img alt=\"Build status\" src=\"https://travis-ci.org/andywer/squid.svg?branch=master\" /></a>\n  <a href=\"https://www.npmjs.com/package/squid\"><img alt=\"npm version\" src=\"https://img.shields.io/npm/v/squid.svg\" /></a>\n</p>\n\n<br />\n\nThe simple and safe way of writing SQL queries in node.js. Use [`postguard`](https://github.com/andywer/postguard) to validate SQL queries in your code against your table schemas at build time 🚀\n\n&nbsp;&nbsp;&nbsp;&nbsp;👌&nbsp;&nbsp;Static typing made simple<br />\n&nbsp;&nbsp;&nbsp;&nbsp;🛡&nbsp;&nbsp;SQL injection prevention<br />\n&nbsp;&nbsp;&nbsp;&nbsp;🔦&nbsp;&nbsp;Static query validation using postguard<br />\n&nbsp;&nbsp;&nbsp;&nbsp;⚡️&nbsp;&nbsp;Almost no performance overhead<br />\n\nParameters are SQL-injection-proofed by default. You can explicitly opt-out, by wrapping the parameter value in `sql.raw()`.\n\nSupports only Postgres right now, but it is easy to add support for MySQL, SQLite, ... as well. Create an issue or pull request if you need support for another database.\n\n## Why?\n\n#### Why not use a query builder?\n\nQuery builders like [Prisma](https://www.prisma.io/) or [Knex.js](https://knexjs.org/) seem like a good choice, but they all have one issue in common: They provide an abstraction that maps 1:1 to SQL, making you create SQL queries without writing SQL, but using their proprietary API.\n\nYou don't just require developers to learn both, SQL and the query builder's API, but the additional abstraction layer is also an additional source of error.\n\n#### Why not use an ORM?\n\nORMs like [Sequelize](http://docs.sequelizejs.com/) or [TypeORM](http://typeorm.io/) can get you started quickly, but will regularly lead to slow queries and can turn into a hassle in the long run. Read more about it [here](https://medium.com/ameykpatil/why-orm-shouldnt-be-your-best-bet-fffb66314b1b) and [here](https://blog.logrocket.com/why-you-should-avoid-orms-with-examples-in-node-js-e0baab73fa5), for instance.\n\n## Installation\n\n```sh\nnpm install squid\n```\n\n## Usage\n\n### JavaScript\n\n```js\nimport { defineTable, sql, spreadInsert } from \"squid/pg\"\nimport database from \"./database\"\n\n// Feel free to put the table schema in a different file\ndefineTable(\"users\", {\n  id: Schema.Number,\n  name: Schema.String\n})\n\nexport async function queryUserById(id) {\n  const { rows } = await database.query(sql`\n    SELECT * FROM users WHERE id = ${id}\n  `)\n  return rows.length > 0 ? rows[0] : null\n}\n```\n\n### TypeScript\n\n```ts\n// schema.ts\nimport { defineTable, Schema, NewTableRow, TableRow } from \"squid\"\n\nexport type NewUserRecord = NewTableRow<typeof usersTable>\nexport type UserRecord = TableRow<typeof usersTable>\n\nconst usersTable = defineTable(\"users\", {\n  id: Schema.Number,\n  name: Schema.String\n})\n```\n\n```ts\n// users.ts\nimport { sql, spreadInsert } from \"squid/pg\"\nimport database from \"./database\"\nimport { NewUserRecord, UserRecord } from \"./schema\"\n\nexport async function createUser(record: NewUserRecord): Promise<UserRecord> {\n  const { rows } = await database.query<UserRecord>(sql`\n    INSERT INTO users ${spreadInsert(record)} RETURNING *\n  `)\n  return rows[0]\n}\n\nexport async function queryUserById(id: string): Promise<UserRecord | null> {\n  const { rows } = await database.query<UserRecord>(sql`\n    SELECT * FROM users WHERE id = ${id}\n  `)\n  return rows[0] || null\n}\n```\n\nWe extend the `pg` driver's `query()` method types transparently, so you can pass a generic type parameter specifying the type of the result rows as you can see in the sample above.\n\nThe `query()` type parameter defaults to `any`, so you don't have to specify it. If it's set, the type of the `rows` result property will be inferred accordingly.\n\n## Query values\n\nAll expressions in the SQL template strings will be escaped properly automatically, so you don't need to worry about SQL injection attacks too much.\n\nIf you need to pass a value dynamically that should not be escaped, you can use `sql.raw`:\n\n```js\nasync function updateTimestamp(userID, timestamp = null) {\n  await database.query(sql`\n    UPDATE users\n    SET timestamp = ${timestamp || sql.raw(\"NOW()\")}\n    WHERE id = ${userID}\n  `)\n}\n```\n\n## Tag function\n\nThe `sql` template tag creates query objects compatible with [`pg`](https://node-postgres.com), the super popular Postgres driver for node.\n\n```js\nimport { sql, spreadInsert } from \"squid/pg\"\n\nsql`INSERT INTO users ${spreadInsert({ name: \"Andy\", age: 29 })}`\n// => { text: \"INSERT INTO users (\"name\", \"age\") VALUES ($1, $2)\",\n//      values: [ \"Andy\", 29 ] }\n\nsql`SELECT * FROM users WHERE age < ${maxAge}`\n// => { text: \"SELECT * FROM users WHERE age < $1\",\n//      values: [ maxAge ] }\n```\n\n## Import\n\nAll schema-related exports are database-driver-agnostic, so they can be imported from the main entrypoint `squid`:\n\n```ts\nimport { defineTable, Schema, NewTableRow, TableRow } from \"squid\"\n```\n\nNon-schema-related exports are exported by the database-specific submodule `squid/pg`:\n\n```ts\nimport { sql, spreadInsert } from \"squid/pg\"\n```\n\nFor convenience `squid/pg` also exposes all the database-agnostic schema exports, so you can have one import declaration for everything:\n\n```ts\nimport { defineTable, sql, spreadInsert, Schema, NewTableRow, TableRow } from \"squid\"\n```\n\n## SQL injections\n\nAll values passed into the tagged template string are automatically escaped to prevent SQL injections. You have to explicitly opt-out of this behavior by using `sql.raw()` in case you want to dynamically modify the query.\n\nThe only attack vector left is forgetting to use the `sql` template tag. To rule out this potential source of error, there is also a way to explicitly escape a value passed to the template string: `sql.safe()`.\n\nAn untagged template string using a value wrapped in `sql.safe()` will then result in an invalid query.\n\n```js\n// This is fine\nawait database.query(sql`SELECT * FROM users LIMIT ${limit}`)\n\n// Results in the same query as the previous example\nawait database.query(sql`SELECT * FROM users LIMIT ${sql.safe(limit)}`)\n\n// Forgot the tag - SQL injection possible!\nawait database.query(`SELECT * FROM users LIMIT ${limit}`)\n\n// Forgot the tag - This line will now throw, no SQLi possible\nawait database.query(`SELECT * FROM users LIMIT ${sql.safe(limit)}`)\n```\n\n## API\n\n### sql\\`...\\`\n\nTurns a template string into a postgres query object, escapes values automatically unless they are wrapped in `sql.raw()`.\n\nExample:\n\n```js\nconst limit = 50\nawait database.query(sql`SELECT * FROM users LIMIT ${50}`)\n\n// same as:\nawait database.query({ text: \"SELECT * FROM users LIMIT $1\", values: [limit])\n```\n\n### sql.raw(expression)\n\nWrap your SQL template string values in this call to prevent escaping.\nBe careful, though. This is essentially an SQL injection prevention opt-out.\n\nExample:\n\n```js\nawait database.query(sql`\n  UPDATE users SET last_login = ${loggingIn ? \"NOW()\" : \"NULL\"} WHERE id = ${userID}\n`)\n```\n\n### sql.safe(value)\n\nWraps a value in an object that just returns the (escaped) value.\n\nUse it if you want to make sure that a query lacking the `sql` template tag cannot be executed. Otherwise a missing template string tag might lead to SQL injections.\n\n### spreadAnd({ [columnName: string]: any })\n\nCheck for equivalence of multiple column's values at once. Handy to keep long WHERE expressions short and concise.\n\nExample:\n\n```js\nconst users = await database.query(sql`\n  SELECT * FROM users WHERE ${spreadAnd({ name: \"John\", birthday: \"1990-09-10\" })}\n`)\n\n// same as:\n// sql`SELECT * FROM users WHERE name = 'John' AND birthday = '1990-09-10'`\n```\n\n### spreadInsert({ [columnName: string]: any })\n\nSpread INSERT VALUES to keep the query sweet and short without losing explicity.\n\nExample:\n\n```js\nconst users = await database.query(sql`\n  INSERT INTO users ${spreadInsert({ name: \"John\", email: \"john@example.com\" })}\n`)\n\n// same as:\n// sql`INSERT INTO users (\"name\", \"email\") VALUES ('John', 'john@example.com')`\n```\n\n```js\nconst users = await database.query(sql`\n  INSERT INTO users ${spreadInsert(\n    { name: \"John\", email: \"john@example.com\" },\n    { name: \"Travis\", email: \"travis@example.com\" }\n  )}\n`)\n\n// same as:\n// sql`INSERT INTO users (\"name\", \"email\") VALUES ('John', 'john@example.com'), ('Travis', 'travis@example.com')`\n```\n\n### spreadUpdate({ [columnName: string]: any })\n\nSpread INSERT VALUES to keep the query sweet and short without losing explicity.\n\nExample:\n\n```js\nawait database.query(sql`\n  UPDATE users\n  SET ${spreadUpdate({ name: \"John\", email: \"john@example.com\" })}\n  WHERE id = 1\n`)\n\n// same as:\n// sql`UPDATE users SET \"name\" = 'John', \"email\" = 'john@example.com' WHERE id = 1`\n```\n\n### defineTable(tableName: string, schema: { [columnName: string]: Schema.\\* })\n\nDefine a table's schema, so the queries can be validated at build time with `postguard`. When using TypeScript you can use `TableRow<typeof table>` and `NewTableRow<typeof table>` to derive TypeScript interfaces of your table records.\n\nSee [dist/schema.d.ts](./dist/schema.d.ts) for details.\n\n### Schema\n\nExample:\n\n```js\ndefineTable(\"users\", {\n  id: Schema.Number,\n  email: Schema.String,\n  email_confirmed: Schema.Boolean,\n  profile: Schema.JSON(\n    Schema.Object({\n      avatar_url: Schema.String,\n      weblink: Schema.nullable(Schema.String)\n    })\n  ),\n  created_at: Schema.default(Schema.Date),\n  updated_at: Schema.nullable(Schema.Date),\n  roles: Schema.Array(Schema.Enum([\"admin\", \"user\"]))\n})\n```\n\nSee [dist/schema.d.ts](./dist/schema.d.ts) for details.\n\n### TableRow<type> / NewTableRow<type> _(TypeScript only)_\n\nDerive table record interfaces from the table schema. The type returned by `TableRow` is the kind of object a `SELECT *` will return, while `NewTableRow` returns an object that defines the shape of an object to be used for an `INSERT` with `spreadInsert()`.\n\nThe difference between the two is that `NewTableRow` marks properties referring to columns defined as `Schema.default()` or `Schema.nullable()` as optional.\n\nExample:\n\n```ts\nconst usersTable = defineTable(\"users\", {\n  id: Schema.Number,\n  email: Schema.String\n})\n\ntype UserRecord = TableRow<typeof usersTable>\ntype NewUserRecord = NewTableRow<typeof usersTable>\n```\n\nSee [dist/schema.d.ts](./dist/schema.d.ts) for details.\n\n## Performance\n\nThe performance impact of using the template string is neglectible. Benchmarked it once and it did 1000 queries in ~10ms on my MacBook Pro.\n\n## Debugging\n\nSet the environment variable `DEBUG` to `squid:*` to enable debug logging for this package.\n\n## License\n\nMIT\n","maintainers":[{"name":"andywer","email":"github@andywer.com"}],"time":{"modified":"2022-06-26T23:21:37.108Z","created":"2012-05-20T16:56:44.262Z","0.0.1":"2012-05-20T16:56:45.887Z","0.0.2":"2012-05-20T16:57:39.484Z","0.0.3":"2012-05-21T07:02:50.860Z","0.0.4":"2012-05-24T11:55:59.141Z","0.0.6":"2012-06-10T22:56:25.856Z","0.0.7":"2012-07-09T11:38:27.480Z","0.0.8":"2012-07-09T13:33:06.905Z","0.0.9":"2012-07-29T11:16:27.699Z","0.0.10":"2012-08-05T16:02:13.349Z","0.0.11":"2012-08-15T08:24:16.771Z","0.0.12":"2012-08-15T08:28:37.005Z","0.0.13":"2012-08-15T08:31:22.661Z","0.0.14":"2012-08-16T14:36:03.055Z","0.0.15":"2012-08-16T15:32:15.160Z","0.0.16":"2012-08-16T15:56:17.400Z","0.0.17":"2012-08-22T16:09:30.220Z","0.0.18":"2012-08-24T13:01:20.441Z","0.0.19":"2012-08-29T18:05:29.334Z","0.0.20":"2012-10-04T07:59:37.485Z","0.0.21":"2012-10-08T14:37:38.399Z","0.0.22":"2012-11-30T18:41:19.266Z","0.0.30":"2012-12-01T01:44:40.476Z","0.0.31":"2012-12-01T02:22:27.409Z","0.0.32":"2012-12-01T11:36:38.952Z","0.0.33":"2013-01-22T22:31:19.831Z","0.0.34":"2013-01-22T22:41:29.738Z","0.0.35":"2013-01-24T18:55:13.636Z","0.0.36":"2013-01-27T02:04:09.202Z","0.1.0":"2013-01-27T18:02:09.803Z","0.1.1":"2013-03-01T16:42:36.415Z","0.1.3":"2013-03-03T23:10:45.471Z","0.1.4":"2013-03-06T15:35:22.321Z","0.1.5":"2013-03-07T11:54:45.825Z","0.1.6":"2013-03-07T15:02:21.847Z","0.1.67":"2013-03-20T01:14:59.935Z","0.1.68":"2013-03-21T08:45:59.264Z","0.1.69":"2013-04-16T11:31:16.018Z","0.1.70":"2013-04-30T16:22:26.957Z","0.1.71":"2013-04-30T18:46:25.666Z","0.1.72":"2013-04-30T18:50:35.700Z","0.1.73":"2013-04-30T20:41:03.487Z","0.1.74":"2013-04-30T20:47:08.545Z","0.1.75":"2013-04-30T20:50:41.789Z","0.2.1":"2013-04-30T21:38:47.226Z","0.2.2":"2013-05-01T10:53:14.170Z","0.2.3":"2013-05-01T12:56:55.323Z","0.2.4":"2013-05-01T13:09:34.623Z","0.2.6":"2013-05-18T10:52:34.685Z","0.2.7":"2013-08-07T05:59:15.170Z","0.2.9":"2013-08-26T22:28:24.521Z","0.2.0":"2013-04-30T21:17:14.090Z","0.3.0":"2019-01-04T08:23:58.647Z","0.4.0":"2019-02-06T07:27:00.629Z","0.5.0":"2019-09-02T08:42:22.039Z","0.5.1":"2019-09-03T15:29:12.923Z","0.5.2":"2021-04-03T21:37:09.157Z"},"author":{"name":"Andy Wermke","email":"andy@dev.next-step-software.com"},"repository":{"type":"git","url":"git+https://github.com/andywer/squid.git"},"users":{"fgribreau":true},"homepage":"https://github.com/andywer/squid#readme","keywords":["schema","sql","table","template","postgres"],"bugs":{"url":"https://github.com/andywer/squid/issues"},"license":"MIT","readmeFilename":"README.md"}