diff --git a/Gruntfile.js b/Gruntfile.js index e2e6c27..322fa5f 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -68,6 +68,7 @@ module.exports = function(grunt) { // @todo Extendable. urls: [ 'storage=false', + 'config=false', '', // 'jquery=1.5.2&jstorage=0.4.12', // 'jquery=1.6.4&jstorage=0.4.12', diff --git a/dist/groucho.js b/dist/groucho.js index 3fa2d2a..b5f445a 100644 --- a/dist/groucho.js +++ b/dist/groucho.js @@ -1,4 +1,4 @@ -/*! Groucho - v0.2.3 - 2017-05-07 +/*! Groucho - v0.2.3 - 2017-09-04 * https://github.com/tableau-mkt/groucho * Copyright (c) 2017 Josh Lind; Licensed MIT */ @@ -183,12 +183,18 @@ var groucho = window.groucho || {}; 'addons': {} }; - // Set empty configs to defaults. - for (var config in defaults) { - if (!groucho.config.hasOwnProperty(config)) { - groucho.config[config] = defaults[config]; + // Handle empty config. + if (!groucho.hasOwnProperty('config')) { + groucho.config = defaults; + } + else { + // Set each empty config to the defaults. + for (var setting in defaults) { + if (!groucho.config.hasOwnProperty(setting)) { + groucho.config[setting] = defaults[setting]; + } + } } - } // Data availability. groucho.userDeferred = groucho.userDeferred || $.Deferred(); diff --git a/dist/groucho.map b/dist/groucho.map index 0b1bf75..15e1aa1 100644 --- a/dist/groucho.map +++ b/dist/groucho.map @@ -1 +1 @@ -{"version":3,"file":"dist/groucho.min.js","sources":["dist/groucho.js"],"names":["groucho","window","$","getFavoriteTerms","vocab","returnAll","threshold","collectTerms","vocName","i","tid","results","termProp","returnTerms","hasOwnProperty","count","name","filterByCount","topCount","isEmpty","makeArray","obj","arr","id","push","prop","getActivities","config","taxonomyProperty","pages","favThreshold","url","favoriteTerms","jQuery","Zepto","defaults","trackExtent","trackProperties","lastClicked","ttl","addons","userDeferred","Deferred","document","ready","schema","trackOrigins","trackHit","trackClicks","defaultStorage","error","console","log","storage","jStorage","set","value","TTL","get","remove","deleteKey","index","available","storageAvailable","clear","flush","n","Date","getTime","hit","timestamp","location","href","referrer","resolve","dlHelper","DataLayerHelper","dataLayer","trackIds","trackVals","createActivity","fn","click","this","text","userSet","data","keepExisting","userProperty","property","undefined","userGet","propertyName","userProperties","indexOf","replace","group","diff","length","_key","record","returnVals","matchable","RegExp","match","sort","a","b","parseInt","split","keys","user.sessionOrigin","oldKey","version","newKey"],"mappings":";;;;;AAIA,GAAIA,SAAUC,OAAOD,aAErB,SAAUE,EAAGF,GAaXA,EAAQG,iBAAmB,SAAUC,EAAOC,EAAWC,GAiBrD,QAASC,GAAaC,EAASC,GAC7B,IAAK,GAAIC,KAAOC,GAAQF,GAAGG,GAAUJ,GAE9BK,EAAYC,eAAeN,KAC9BK,EAAYL,OAIVK,EAAYL,GAASM,eAAeJ,GACtCG,EAAYL,GAASE,GAAKK,QAI1BF,EAAYL,GAASE,IAASM,KAAQL,EAAQF,GAAGG,GAAUJ,GAASE,GAAMK,MAAS,GAUzF,QAASE,GAAcT,GACrB,GAAIU,GAAWZ,CAGf,KAAK,GAAII,KAAOG,GAAYL,GAEtBK,EAAYL,GAASE,GAAKK,OAASG,IACrCA,EAAWL,EAAYL,GAASE,GAAKK,MAIzC,KAAKL,IAAOG,GAAYL,GAClBK,EAAYL,GAASE,GAAKK,MAAQG,SAC7BL,GAAYL,GAASE,EAI5BS,GAAQN,EAAYL,WACfK,GAAYL,GAOvB,QAASY,GAAUC,GACjB,GAAIC,KACJ,KAAK,GAAIb,KAAKY,GACZA,EAAIZ,GAAGc,GAAKd,EACZa,EAAIE,KAAKH,EAAIZ,GAEf,OAAOa,GAQT,QAASH,GAAQE,GACf,IAAK,GAAII,KAAQJ,GACf,GAAIA,EAAIP,eAAeW,GACrB,OAAO,CAGX,QAAO,EApFT,GAIIjB,GAJAG,EAAUX,EAAQ0B,cAAc,YAChCd,EAAWZ,EAAQ2B,OAAOC,iBAC1BC,KACAhB,IAqFJ,IAjFAT,EAAQA,GAAS,IACjBC,EAAYA,IAAa,EACzBC,EAAYA,GAAaN,EAAQ2B,OAAOG,aA+EhB,mBAAblB,GAA0B,CAEnC,IAAK,GAAIH,KAAKE,GAEZ,GAAKA,EAAQG,eAAeL,IAGS,mBAA1BoB,GAAMlB,EAAQF,GAAGsB,MAAwBpB,EAAQF,GAAGK,eAAeF,GAI5E,GAFAiB,EAAMlB,EAAQF,GAAGsB,MAAO,EAEV,MAAV3B,EAEF,IAAKI,IAAWG,GAAQF,GAAGG,GACzBL,EAAaC,EAASC,OAKpBE,GAAQF,GAAGG,GAAUE,eAAeV,IACtCG,EAAaH,EAAOK,EAQ5B,KAAKJ,EACH,IAAKG,IAAWK,GACdI,EAAcT,EAKlB,IAAc,MAAVJ,EAAe,CACjB,IAAKI,IAAWK,GAEdA,EAAYL,GAAWY,EAAUP,EAAYL,GAI3CH,MAAc,IAChBL,EAAQgC,cAAgBnB,OAK1BA,GAAcO,EAAUP,EAAYT,IAIxC,MAAOS,KAGRZ,OAAOgC,QAAUhC,OAAOiC,OAASjC,OAAOC,EAAGF,QAE9C,IAAIA,SAAUC,OAAOD,aAGrB,SAAUE,EAAGF,GAGX,GAAImC,IACEP,iBAAoB,OACpBQ,YAAe,GACfN,aAAgB,EAChBO,iBACE,QACA,OACA,QAEFC,YAAe,IACfC,IAAO,EACPC,UAIN,KAAK,GAAIb,KAAUQ,GACZnC,EAAQ2B,OAAOb,eAAea,KACjC3B,EAAQ2B,OAAOA,GAAUQ,EAASR,GAKtC3B,GAAQyC,aAAezC,EAAQyC,cAAgBvC,EAAEwC,WAEjD1C,EAAQgC,eAAgB,EAGxB9B,EAAEyC,UAAUC,MAAM,WAEhB5C,EAAQ6C,SAER7C,EAAQ8C,eACR9C,EAAQ+C,WACR/C,EAAQgD,iBAGT/C,OAAOgC,QAAUhC,OAAOiC,OAASjC,OAAOC,EAAGF,QAE9C,IAAIA,SAAUC,OAAOD,aAErB,SAAUE,EAAGF,GAEX,GAAIiD,GACAC,CAGJA,GAAQ,WAEN,MADAC,SAAQC,IAAI,mCACL,GAMJpD,EAAQqD,UACXJ,EAAkB/C,EAAEY,eAAe,aAAuC,gBAAfZ,GAAEoD,SAG7DtD,EAAQqD,SAQNE,IAAK,EAAmB,SAAahC,EAAIiC,EAAOjB,GAE9C,MADAA,GAAMA,GAAOvC,EAAQ2B,OAAOY,KAAO,EAC5BrC,EAAEoD,SAASC,IAAIhC,EAAIiC,GAAQC,IAAKlB,KACrCW,EAOJQ,IAAK,EAAmB,SAAanC,GACnC,MAAOrB,GAAEoD,SAASI,IAAInC,IACpB2B,EAOJS,OAAQ,EAAmB,SAAgBpC,GACzC,MAAOrB,GAAEoD,SAASM,UAAUrC,IAC1B2B,EAOJW,MAAO,EAAmB,WACxB,MAAO3D,GAAEoD,SAASO,SAChBX,EAKJY,UAAW,EAAmB,WAC5B,MAAO5D,GAAEoD,SAASS,oBAChBb,EAMJc,MAAO,EAAmB,WACxB,MAAO9D,GAAEoD,SAASW,SAChBf,KAKPjD,OAAOgC,QAAUhC,OAAOiC,OAASjC,OAAOC,EAAGF,QAE9C,IAAIA,SAAUC,OAAOD,aAErB,SAAUE,EAAGF,GAKXA,EAAQ8C,aAAe,WACrB,GAAIoB,IAAI,GAAIC,OAAOC,UACfC,GACEC,UAAaJ,EACbnC,IAAO9B,OAAOsE,SAASC,KAIxBxE,GAAQqD,QAAQK,IAAI,uBAA0Bf,SAAS8B,UAC1DzE,EAAQqD,QAAQE,IAAI,qBAAsBc,GAIvCrE,EAAQqD,QAAQK,IAAI,iBACvBW,EAAII,SAAW9B,SAAS8B,SACxBzE,EAAQqD,QAAQE,IAAI,cAAec,IAIrCrE,EAAQyC,aAAaiC,WAOvB1E,EAAQ+C,SAAW,WACjB,GAAI4B,GAAW,GAAIC,iBAAgBC,WAC/BC,EAAW9E,EAAQ2B,OAAOU,gBAC1B0C,GACEhD,IAAO9B,OAAOsE,SAASC,KAK7B,IAAyB,mBAAdK,WACT,IAAK,GAAIpE,KAAKqE,GAEPA,EAAShE,eAAeL,IAGY,mBAA9BkE,GAASjB,IAAIoB,EAASrE,MAC/BsE,EAAUD,EAASrE,IAAMkE,EAASjB,IAAIoB,EAASrE,IAMrDT,GAAQgF,eAAe,WAAYD,IAOrC/E,EAAQgD,YAAc,WACfhD,EAAQ2B,OAAOW,aAEM,kBAAfpC,GAAE+E,GAAGC,OACdhF,EAAEF,EAAQ2B,OAAOW,aAAa4C,MAAM,WAClClF,EAAQqD,QAAQE,IAAI,mBAAoBrD,EAAEiF,MAAMC,YAKrDnF,OAAOgC,QAAUhC,OAAOiC,OAASjC,OAAOC,EAAGF,QAE9C,IAAIA,SAAUC,OAAOD,aAErB,SAAUE,EAAGF,GAUXA,EAAQqF,QAAU,SAAUC,EAAMC,EAAchD,GAC9C,GAAIiD,EAGJ,KAAK,GAAIC,KAAYH,GACdA,EAAKxE,eAAe2E,IAAiC,gBAAbA,KAIzCF,IACFC,EAAexF,EAAQqD,QAAQK,IAAI,QAAU+B,GACtB,OAAjBD,GAA0CE,SAAjBF,IAMjCxF,EAAQqD,QAAQE,IAAI,QAAUkC,EAAUH,EAAKG,GAAWlD,KAa5DvC,EAAQ2F,QAAU,SAAUF,GAC1B,GAEIG,GAFA/B,EAAQ7D,EAAQqD,QAAQQ,QACxBgC,IAIJ,IAAwB,mBAAbJ,GACT,MAAOzF,GAAQqD,QAAQK,IAAI,QAAU+B,EAGvC,KAAK,GAAIhF,KAAKoD,GACa,gBAAbA,GAAMpD,IAAmD,IAA9BoD,EAAMpD,GAAGqF,QAAQ,WACtDF,EAAe/B,EAAMpD,GAAGsF,QAAQ,QAAS,IACzCF,EAAeD,GAAgB5F,EAAQqD,QAAQK,IAAIG,EAAMpD,IAI7D,OAAOoF,IAcT7F,EAAQgF,eAAiB,SAAUgB,EAAOV,EAAM/C,GAC9C,GAAI5B,GAAUX,EAAQ0B,cAAcsE,GAChC9B,GAAI,GAAIC,OAAOC,UACf6B,EAAO,CAMX,IAHAjG,EAAQqD,QAAQE,IAAI,SAAWyC,EAAQ,IAAM9B,EAAGoB,EAAM/C,GAGlD5B,EAAQuF,QAAUlG,EAAQ2B,OAAOS,YAAa,CAChD6D,EAAOtF,EAAQuF,OAASlG,EAAQ2B,OAAOS,WAEvC,KAAK,GAAI3B,GAAE,EAAMwF,GAAHxF,EAASA,IACrBT,EAAQqD,QAAQM,OAAOhD,EAAQF,GAAG0F,QAexCnG,EAAQ0B,cAAgB,SAAUsE,GAChC,GAGII,GAHAzF,EAAUX,EAAQqD,QAAQQ,QAC1BwC,KACAC,EAAY,EAAU,GAAIC,QAAO,UAAYP,EAAQ,IAAK,MAAO,CAGrE,KAAK,GAAIvF,KAAKE,GAEPA,EAAQG,eAAeL,KAGxBuF,EACkC,OAAhCrF,EAAQF,GAAG+F,MAAMF,KAEnBF,EAASpG,EAAQqD,QAAQK,IAAI/C,EAAQF,IAErC2F,EAAOD,KAAOxF,EAAQF,GACtB4F,EAAW7E,KAAK4E,KAKlBA,EAASpG,EAAQqD,QAAQK,IAAI/C,EAAQF,IAErC2F,EAAOD,KAAOxF,EAAQF,GACtB4F,EAAW7E,KAAK4E,IAqBpB,OAhBAC,GAAWI,KAAK,SAAUC,EAAGC,GAG3B,MAAKD,GAAE5F,eAAe,SAAY4F,EAAEP,KAAKK,MAAM,OAC1CG,EAAE7F,eAAe,SAAY6F,EAAER,KAAKK,MAAM,MAI3CI,SAASD,EAAER,KAAKU,MAAM,KAAK,GAAI,IAAMD,SAASF,EAAEP,KAAKU,MAAM,KAAK,GAAI,IAC/D,GAGA,EAPA,IAWJR,GAOTrG,EAAQ6C,OAAS,WAEf,GAAIiE,IACEC,sBACEC,OAAU,sBACVC,QAAW,SAInB,KAAK,GAAIC,KAAUJ,GACoB,OAAhC9G,EAAQqD,QAAQK,IAAIwD,IAAmE,OAA7ClH,EAAQqD,QAAQK,IAAIoD,EAAKI,GAAQF,UAC9EhH,EAAQqD,QAAQE,IAAI2D,EAAQlH,EAAQqD,QAAQE,IAAIuD,EAAKI,GAAQF,SAC7DhH,EAAQqD,QAAQM,OAAOmD,EAAKI,GAAQF,WAKzC/G,OAAOgC,QAAUhC,OAAOiC,OAASjC,OAAOC,EAAGF"} \ No newline at end of file +{"version":3,"file":"dist/groucho.min.js","sources":["dist/groucho.js"],"names":["groucho","window","$","getFavoriteTerms","vocab","returnAll","threshold","collectTerms","vocName","i","tid","results","termProp","returnTerms","hasOwnProperty","count","name","filterByCount","topCount","isEmpty","makeArray","obj","arr","id","push","prop","getActivities","config","taxonomyProperty","pages","favThreshold","url","favoriteTerms","jQuery","Zepto","defaults","trackExtent","trackProperties","lastClicked","ttl","addons","setting","userDeferred","Deferred","document","ready","schema","trackOrigins","trackHit","trackClicks","defaultStorage","error","console","log","storage","jStorage","set","value","TTL","get","remove","deleteKey","index","available","storageAvailable","clear","flush","n","Date","getTime","hit","timestamp","location","href","referrer","resolve","dlHelper","DataLayerHelper","dataLayer","trackIds","trackVals","createActivity","fn","click","this","text","userSet","data","keepExisting","userProperty","property","undefined","userGet","propertyName","userProperties","indexOf","replace","group","diff","length","_key","record","returnVals","matchable","RegExp","match","sort","a","b","parseInt","split","keys","user.sessionOrigin","oldKey","version","newKey"],"mappings":"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"} \ No newline at end of file diff --git a/dist/groucho.min.js b/dist/groucho.min.js index 602c162..061d4d0 100644 --- a/dist/groucho.min.js +++ b/dist/groucho.min.js @@ -1,7 +1,7 @@ -/*! Groucho - v0.2.3 - 2017-05-07 +/*! Groucho - v0.2.3 - 2017-09-04 * https://github.com/tableau-mkt/groucho * Copyright (c) 2017 Josh Lind; Licensed MIT */ -var groucho=window.groucho||{};!function(a,b){b.getFavoriteTerms=function(a,c,d){function e(a,b){for(var c in j[b][k][a])m.hasOwnProperty(a)||(m[a]={}),m[a].hasOwnProperty(c)?m[a][c].count++:m[a][c]={name:j[b][k][a][c],count:1}}function f(a){var b=d;for(var c in m[a])m[a][c].count>=b&&(b=m[a][c].count);for(c in m[a])m[a][c].count=b.config.trackExtent){g=e.length-b.config.trackExtent;for(var h=0;g>=h;h++)b.storage.remove(e[h]._key)}},b.getActivities=function(a){var c,d=b.storage.index(),e=[],f=a?new RegExp("^track."+a+".","g"):!1;for(var g in d)d.hasOwnProperty(g)&&(a?null!==d[g].match(f)&&(c=b.storage.get(d[g]),c._key=d[g],e.push(c)):(c=b.storage.get(d[g]),c._key=d[g],e.push(c)));return e.sort(function(a,b){return a.hasOwnProperty("_key")&&a._key.match(/\./)&&b.hasOwnProperty("_key")&&b._key.match(/\./)?parseInt(b._key.split(".")[2],10)>parseInt(a._key.split(".")[2],10)?-1:1:0}),e},b.schema=function(){var a={"user.sessionOrigin":{oldKey:"user.session_origin",version:"0.2.0"}};for(var c in a)null===b.storage.get(c)&&null!==b.storage.get(a[c].oldKey)&&(b.storage.set(c,b.storage.set(a[c].oldKey)),b.storage.remove(a[c].oldKey))}}(window.jQuery||window.Zepto||window.$,groucho); +var groucho=window.groucho||{};!function(a,b){b.getFavoriteTerms=function(a,c,d){function e(a,b){for(var c in j[b][k][a])m.hasOwnProperty(a)||(m[a]={}),m[a].hasOwnProperty(c)?m[a][c].count++:m[a][c]={name:j[b][k][a][c],count:1}}function f(a){var b=d;for(var c in m[a])m[a][c].count>=b&&(b=m[a][c].count);for(c in m[a])m[a][c].count=b.config.trackExtent){g=e.length-b.config.trackExtent;for(var h=0;g>=h;h++)b.storage.remove(e[h]._key)}},b.getActivities=function(a){var c,d=b.storage.index(),e=[],f=a?new RegExp("^track."+a+".","g"):!1;for(var g in d)d.hasOwnProperty(g)&&(a?null!==d[g].match(f)&&(c=b.storage.get(d[g]),c._key=d[g],e.push(c)):(c=b.storage.get(d[g]),c._key=d[g],e.push(c)));return e.sort(function(a,b){return a.hasOwnProperty("_key")&&a._key.match(/\./)&&b.hasOwnProperty("_key")&&b._key.match(/\./)?parseInt(b._key.split(".")[2],10)>parseInt(a._key.split(".")[2],10)?-1:1:0}),e},b.schema=function(){var a={"user.sessionOrigin":{oldKey:"user.session_origin",version:"0.2.0"}};for(var c in a)null===b.storage.get(c)&&null!==b.storage.get(a[c].oldKey)&&(b.storage.set(c,b.storage.set(a[c].oldKey)),b.storage.remove(a[c].oldKey))}}(window.jQuery||window.Zepto||window.$,groucho); //# sourceMappingURL=dist/groucho.map \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..65f5177 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1905 @@ +{ + "name": "Groucho", + "version": "0.2.3", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "abbrev": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", + "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=" + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "argparse": { + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz", + "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=", + "dev": true, + "requires": { + "underscore": "1.7.0", + "underscore.string": "2.4.0" + }, + "dependencies": { + "underscore.string": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz", + "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=", + "dev": true + } + } + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "dev": true + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "dev": true + }, + "async": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz", + "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=", + "dev": true + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "batch": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.0.tgz", + "integrity": "sha1-/S4Fp6XWlrTbkxQBPihdj/NVfsM=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "bl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.3.tgz", + "integrity": "sha1-/FQhoo/UImA2w7OJGmaiW8ZNIm4=", + "dev": true, + "requires": { + "readable-stream": "2.0.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "0.10.31", + "util-deprecate": "1.0.2" + } + } + } + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer-crc32": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.1.tgz", + "integrity": "sha1-vj5TgvwCttYySVasGvmKqYsIU0w=", + "dev": true + }, + "bytes": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-0.2.1.tgz", + "integrity": "sha1-VVsIq8sGP4l1kFMCUj5M1P/f3zE=", + "dev": true + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true + }, + "caseless": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "cli": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/cli/-/cli-0.4.5.tgz", + "integrity": "sha1-ePlIXNFhtWbppsctcXDEJw6B22E=", + "dev": true, + "requires": { + "glob": "3.1.21" + } + }, + "coffee-script": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz", + "integrity": "sha1-FQ1rTLUiiUNp7+1qIQHCC8f0pPQ=", + "dev": true + }, + "colors": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", + "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=", + "dev": true + }, + "combined-stream": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "dev": true, + "requires": { + "delayed-stream": "1.0.0" + } + }, + "commander": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", + "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", + "dev": true + }, + "compressible": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-1.0.0.tgz", + "integrity": "sha1-+D5JwcthQhdTVFElqAEdaLSSQn0=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.0.tgz", + "integrity": "sha1-U/fUPFHF5D+ByP3QMyHGMb5o1hE=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.0.6", + "typedarray": "0.0.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "0.10.31", + "util-deprecate": "1.0.2" + } + } + } + }, + "connect": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/connect/-/connect-2.13.1.tgz", + "integrity": "sha1-qrgr6fB2WkI6qZQxq5IqqoCBqiI=", + "dev": true, + "requires": { + "batch": "0.5.0", + "buffer-crc32": "0.2.1", + "bytes": "0.2.1", + "compressible": "1.0.0", + "cookie": "0.1.0", + "cookie-signature": "1.0.1", + "debug": "0.8.1", + "fresh": "0.2.0", + "methods": "0.1.0", + "multiparty": "2.2.0", + "negotiator": "0.3.0", + "pause": "0.0.1", + "qs": "0.6.6", + "raw-body": "1.1.3", + "send": "0.1.4", + "uid2": "0.0.3" + } + }, + "connect-livereload": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/connect-livereload/-/connect-livereload-0.3.2.tgz", + "integrity": "sha1-3bcKpQkB1YN4NmJ3Dj07Y9fOQP8=", + "dev": true + }, + "console-browserify": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-0.1.6.tgz", + "integrity": "sha1-0SijwLuINQ61YmxufHGm8P1ImDw=", + "dev": true + }, + "cookie": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.0.tgz", + "integrity": "sha1-kOtGndzpBchm3mh+/EMTHYgB+dA=", + "dev": true + }, + "cookie-signature": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.1.tgz", + "integrity": "sha1-ROByFIrwHm6OJK+/EmkNaK5pjss=", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true, + "requires": { + "boom": "2.10.1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "dateformat": { + "version": "1.0.2-1.2.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz", + "integrity": "sha1-sCIMAt6YYXQztyhRz0fePfLNvuk=", + "dev": true + }, + "debug": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-0.8.1.tgz", + "integrity": "sha1-IP9NJvXkIstoobrLu2EDmtjBwTA=", + "dev": true + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "es6-promise": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-2.3.0.tgz", + "integrity": "sha1-lu258v2wGZWCKyY92KratnSBgbw=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.3.3.tgz", + "integrity": "sha1-8CQBb1qI4Eb9EgBQVek5gC5sXyM=", + "dev": true, + "requires": { + "esprima": "1.1.1", + "estraverse": "1.5.1", + "esutils": "1.0.0", + "source-map": "0.1.34" + }, + "dependencies": { + "esprima": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.1.1.tgz", + "integrity": "sha1-W28VR/TRAuZw4UDFCb5ncdautUk=", + "dev": true + } + } + }, + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=", + "dev": true + }, + "estraverse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz", + "integrity": "sha1-hno+jlip+EYYr7bC3bzZFrfLr3E=", + "dev": true + }, + "esutils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz", + "integrity": "sha1-gVHTWOIMisx/t0XnRywAJf5JZXA=", + "dev": true + }, + "eventemitter2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=", + "dev": true + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "dev": true + }, + "extract-zip": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.5.0.tgz", + "integrity": "sha1-ksz22B73Cp+kwXRxFMzvbYaIpsQ=", + "dev": true, + "requires": { + "concat-stream": "1.5.0", + "debug": "0.7.4", + "mkdirp": "0.5.0", + "yauzl": "2.4.1" + }, + "dependencies": { + "debug": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz", + "integrity": "sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk=", + "dev": true + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "faye-websocket": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.4.4.tgz", + "integrity": "sha1-wUxbO/FNdBf/v9mQwKdJXNnzN7w=", + "dev": true + }, + "fd-slicer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", + "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "dev": true, + "requires": { + "pend": "1.2.0" + } + }, + "fileset": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/fileset/-/fileset-0.1.8.tgz", + "integrity": "sha1-UGuRqTluqn4y+0KoQHfHoMc2t0E=", + "dev": true, + "requires": { + "glob": "3.1.21", + "minimatch": "0.2.14" + } + }, + "findup-sync": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz", + "integrity": "sha1-fz56l7gjksZTvwZYm9hRkOk8NoM=", + "dev": true, + "requires": { + "glob": "3.2.11", + "lodash": "2.4.2" + }, + "dependencies": { + "glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", + "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "minimatch": "0.3.0" + } + }, + "lodash": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", + "dev": true + }, + "minimatch": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", + "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", + "dev": true, + "requires": { + "lru-cache": "2.7.3", + "sigmund": "1.0.1" + } + } + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.1.tgz", + "integrity": "sha1-rjFduaSQf6BlUCMEpm13M0de43w=", + "dev": true, + "requires": { + "async": "2.5.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.16" + }, + "dependencies": { + "async": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", + "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", + "dev": true, + "requires": { + "lodash": "4.17.4" + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + }, + "fresh": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.2.0.tgz", + "integrity": "sha1-v9lALPPfEsSkwxDHn5mj3eE9NKc=", + "dev": true + }, + "fs-extra": { + "version": "0.26.7", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.26.7.tgz", + "integrity": "sha1-muH92UiXeY7at20JGM9C0MMYT6k=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "2.4.0", + "klaw": "1.3.1", + "path-is-absolute": "1.0.1", + "rimraf": "2.2.8" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + } + } + }, + "gaze": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.3.4.tgz", + "integrity": "sha1-X5S92gr+U7xxCWm81vKCVI1gwnk=", + "dev": true, + "requires": { + "fileset": "0.1.8", + "minimatch": "0.2.14" + } + }, + "generate-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", + "dev": true + }, + "generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "dev": true, + "requires": { + "is-property": "1.0.2" + } + }, + "getobject": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz", + "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "glob": { + "version": "3.1.21", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", + "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", + "dev": true, + "requires": { + "graceful-fs": "1.2.3", + "inherits": "1.0.2", + "minimatch": "0.2.14" + }, + "dependencies": { + "inherits": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", + "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", + "dev": true + } + } + }, + "graceful-fs": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", + "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", + "dev": true + }, + "grunt": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz", + "integrity": "sha1-VpN81RlDJK3/bSB2MYMqnWuk5/A=", + "dev": true, + "requires": { + "async": "0.1.22", + "coffee-script": "1.3.3", + "colors": "0.6.2", + "dateformat": "1.0.2-1.2.3", + "eventemitter2": "0.4.14", + "exit": "0.1.2", + "findup-sync": "0.1.3", + "getobject": "0.1.0", + "glob": "3.1.21", + "grunt-legacy-log": "0.1.3", + "grunt-legacy-util": "0.2.0", + "hooker": "0.2.3", + "iconv-lite": "0.2.11", + "js-yaml": "2.0.5", + "lodash": "0.9.2", + "minimatch": "0.2.14", + "nopt": "1.0.10", + "rimraf": "2.2.8", + "underscore.string": "2.2.1", + "which": "1.0.9" + } + }, + "grunt-cli": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz", + "integrity": "sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=", + "requires": { + "findup-sync": "0.3.0", + "grunt-known-options": "1.1.0", + "nopt": "3.0.6", + "resolve": "1.1.7" + }, + "dependencies": { + "findup-sync": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", + "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", + "requires": { + "glob": "5.0.15" + } + }, + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "1.1.8" + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "requires": { + "abbrev": "1.1.0" + } + }, + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" + } + } + }, + "grunt-contrib-clean": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-0.4.1.tgz", + "integrity": "sha1-f49G4vKnGH6cLQg6swJiqmpk4zQ=", + "dev": true + }, + "grunt-contrib-concat": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-0.3.0.tgz", + "integrity": "sha1-SPoNQzbSm2U62CJaa9b4VrRIPjI=", + "dev": true + }, + "grunt-contrib-connect": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/grunt-contrib-connect/-/grunt-contrib-connect-0.7.1.tgz", + "integrity": "sha1-ytjeRFqBBbNJEtHCAjjM6Y3BPr4=", + "dev": true, + "requires": { + "async": "0.2.10", + "connect": "2.13.1", + "connect-livereload": "0.3.2", + "open": "0.0.4", + "portscanner": "0.2.2" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", + "dev": true + } + } + }, + "grunt-contrib-jshint": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-0.6.5.tgz", + "integrity": "sha1-OvtGdnRTZMxKGe7nk0wOBgCLVm4=", + "dev": true, + "requires": { + "jshint": "2.1.11" + } + }, + "grunt-contrib-uglify": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-0.2.7.tgz", + "integrity": "sha1-5r2lHgxAoUWfbOrUI8Ze/XJaG/c=", + "dev": true, + "requires": { + "grunt-lib-contrib": "0.6.1", + "uglify-js": "2.4.24" + } + }, + "grunt-contrib-watch": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-0.4.4.tgz", + "integrity": "sha1-Mg/HfFzTO3PlRGzZ7ZGWEhFqpjw=", + "dev": true, + "requires": { + "gaze": "0.3.4", + "tiny-lr": "0.0.4" + } + }, + "grunt-known-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.0.tgz", + "integrity": "sha1-pCdO6zL6dl2lp6OxcSYXzjsUQUk=" + }, + "grunt-legacy-log": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz", + "integrity": "sha1-7ClCboAwIa9ZAp+H0vnNczWgVTE=", + "dev": true, + "requires": { + "colors": "0.6.2", + "grunt-legacy-log-utils": "0.1.1", + "hooker": "0.2.3", + "lodash": "2.4.2", + "underscore.string": "2.3.3" + }, + "dependencies": { + "lodash": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", + "dev": true + }, + "underscore.string": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz", + "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=", + "dev": true + } + } + }, + "grunt-legacy-log-utils": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz", + "integrity": "sha1-wHBrndkGThFvNvI/5OawSGcsD34=", + "dev": true, + "requires": { + "colors": "0.6.2", + "lodash": "2.4.2", + "underscore.string": "2.3.3" + }, + "dependencies": { + "lodash": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", + "dev": true + }, + "underscore.string": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz", + "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=", + "dev": true + } + } + }, + "grunt-legacy-util": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz", + "integrity": "sha1-kzJIhNv343qf98Am3/RR2UqeVUs=", + "dev": true, + "requires": { + "async": "0.1.22", + "exit": "0.1.2", + "getobject": "0.1.0", + "hooker": "0.2.3", + "lodash": "0.9.2", + "underscore.string": "2.2.1", + "which": "1.0.9" + } + }, + "grunt-lib-contrib": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/grunt-lib-contrib/-/grunt-lib-contrib-0.6.1.tgz", + "integrity": "sha1-P1att9oG6BR5XuJBWw6+X7iQPrs=", + "dev": true, + "requires": { + "zlib-browserify": "0.0.1" + } + }, + "grunt-lib-phantomjs-istanbul": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/grunt-lib-phantomjs-istanbul/-/grunt-lib-phantomjs-istanbul-0.6.0.tgz", + "integrity": "sha1-8yxeMnqmvBf2vtjS6NUNIGBpo0k=", + "dev": true, + "requires": { + "eventemitter2": "0.4.14", + "phantomjs": "1.9.20", + "semver": "1.0.14", + "temporary": "0.0.8" + } + }, + "grunt-qunit-istanbul": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/grunt-qunit-istanbul/-/grunt-qunit-istanbul-0.4.7.tgz", + "integrity": "sha1-eArYfTXXLN+oAE13XNX5vr6sFl0=", + "dev": true, + "requires": { + "grunt-lib-phantomjs-istanbul": "0.6.0", + "istanbul": "0.2.16", + "rimraf": "2.2.8" + } + }, + "handlebars": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-1.3.0.tgz", + "integrity": "sha1-npsTCpPjiUkTItl1zz7BgYw3zjQ=", + "dev": true, + "requires": { + "optimist": "0.3.7", + "uglify-js": "2.3.6" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", + "dev": true, + "optional": true + }, + "uglify-js": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.3.6.tgz", + "integrity": "sha1-+gmEdwtCi3qbKoBY9GNV0U/vIRo=", + "dev": true, + "optional": true, + "requires": { + "async": "0.2.10", + "optimist": "0.3.7", + "source-map": "0.1.34" + } + } + } + }, + "har-validator": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "commander": "2.11.0", + "is-my-json-valid": "2.16.0", + "pinkie-promise": "2.0.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "hasha": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz", + "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=", + "dev": true, + "requires": { + "is-stream": "1.1.0", + "pinkie-promise": "2.0.1" + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "dev": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true + }, + "hooker": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", + "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", + "dev": true + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "iconv-lite": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz", + "integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "is-my-json-valid": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", + "integrity": "sha1-8Hndm/2uZe4gOKrorLyGqxCeNpM=", + "dev": true, + "requires": { + "generate-function": "2.0.0", + "generate-object-property": "1.2.0", + "jsonpointer": "4.0.1", + "xtend": "4.0.1" + } + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "istanbul": { + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.2.16.tgz", + "integrity": "sha1-hwVFoNT0tM4WEDnp6AWpjCxwC9k=", + "dev": true, + "requires": { + "abbrev": "1.0.9", + "async": "0.9.2", + "escodegen": "1.3.3", + "esprima": "1.2.5", + "fileset": "0.1.8", + "handlebars": "1.3.0", + "js-yaml": "3.9.1", + "mkdirp": "0.5.0", + "nopt": "3.0.6", + "resolve": "0.7.4", + "which": "1.0.9", + "wordwrap": "0.0.2" + }, + "dependencies": { + "abbrev": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", + "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", + "dev": true + }, + "argparse": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "dev": true, + "requires": { + "sprintf-js": "1.0.3" + } + }, + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", + "dev": true + }, + "esprima": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.5.tgz", + "integrity": "sha1-CZNQL+r2aBODJXVvMPmlH+7sEek=", + "dev": true + }, + "js-yaml": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.9.1.tgz", + "integrity": "sha512-CbcG379L1e+mWBnLvHWWeLs8GyV/EMw862uLI3c+GxVyDHWZcjZinwuBd3iW2pgxgIlksW/1vNJa4to+RvDOww==", + "dev": true, + "requires": { + "argparse": "1.0.9", + "esprima": "4.0.0" + }, + "dependencies": { + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + } + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "requires": { + "abbrev": "1.0.9" + } + } + } + }, + "js-yaml": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz", + "integrity": "sha1-olrmUJmZ6X3yeMZxnaEb0Gh3Q6g=", + "dev": true, + "requires": { + "argparse": "0.1.16", + "esprima": "1.0.4" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, + "optional": true + }, + "jshint": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.1.11.tgz", + "integrity": "sha1-61EI/vm6Xd67gwmD9XLSQuSeP5Y=", + "dev": true, + "requires": { + "cli": "0.4.5", + "console-browserify": "0.1.6", + "minimatch": "0.2.14", + "shelljs": "0.1.4", + "underscore": "1.4.4" + }, + "dependencies": { + "underscore": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz", + "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=", + "dev": true + } + } + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true, + "optional": true + } + } + }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "kew": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", + "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=", + "dev": true + }, + "klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true, + "optional": true + } + } + }, + "lodash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz", + "integrity": "sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw=", + "dev": true + }, + "lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", + "dev": true + }, + "methods": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/methods/-/methods-0.1.0.tgz", + "integrity": "sha1-M11Cnu/SG3us8unJIqjSvRSjDk8=", + "dev": true + }, + "mime": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", + "integrity": "sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA=", + "dev": true + }, + "mime-db": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz", + "integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg=", + "dev": true + }, + "mime-types": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz", + "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=", + "dev": true, + "requires": { + "mime-db": "1.29.0" + } + }, + "minimatch": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", + "dev": true, + "requires": { + "lru-cache": "2.7.3", + "sigmund": "1.0.1" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", + "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "multiparty": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/multiparty/-/multiparty-2.2.0.tgz", + "integrity": "sha1-pWfCrwAK0i3I8qZT2Rl4rh9TFvQ=", + "dev": true, + "requires": { + "readable-stream": "1.1.14", + "stream-counter": "0.2.0" + } + }, + "negotiator": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.3.0.tgz", + "integrity": "sha1-cG1pLv7d9XTVfqn7GriaT6fuj2A=", + "dev": true + }, + "node-uuid": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", + "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=", + "dev": true + }, + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "requires": { + "abbrev": "1.1.0" + } + }, + "noptify": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/noptify/-/noptify-0.0.3.tgz", + "integrity": "sha1-WPZUpz2XU98MUdlobckhBKZ/S7s=", + "dev": true, + "requires": { + "nopt": "2.0.0" + }, + "dependencies": { + "nopt": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-2.0.0.tgz", + "integrity": "sha1-ynQW8gpeP5w7hhgPlilfo9C1Lg0=", + "dev": true, + "requires": { + "abbrev": "1.1.0" + } + } + } + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1.0.2" + } + }, + "open": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/open/-/open-0.0.4.tgz", + "integrity": "sha1-XeRqCFi59J+fIRqo8mYoVQZX8mI=", + "dev": true + }, + "optimist": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz", + "integrity": "sha1-yQlBrVnkJzMokjB00s8ufLxuwNk=", + "dev": true, + "requires": { + "wordwrap": "0.0.2" + } + }, + "package": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package/-/package-1.0.1.tgz", + "integrity": "sha1-0lofmeJQbcsn1nBLg9yooxLk7cw=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "pause": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", + "integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10=", + "dev": true + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "phantomjs": { + "version": "1.9.20", + "resolved": "https://registry.npmjs.org/phantomjs/-/phantomjs-1.9.20.tgz", + "integrity": "sha1-RCSsog4U0lXAsIia9va4lz2hDg0=", + "dev": true, + "requires": { + "extract-zip": "1.5.0", + "fs-extra": "0.26.7", + "hasha": "2.2.0", + "kew": "0.7.0", + "progress": "1.1.8", + "request": "2.67.0", + "request-progress": "2.0.1", + "which": "1.2.14" + }, + "dependencies": { + "which": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", + "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", + "dev": true, + "requires": { + "isexe": "2.0.0" + } + } + } + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "2.0.4" + } + }, + "portscanner": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-0.2.2.tgz", + "integrity": "sha1-g5PuEoTm4a8/19X2BqL9N4zjdDg=", + "dev": true, + "requires": { + "async": "0.1.15" + }, + "dependencies": { + "async": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/async/-/async-0.1.15.tgz", + "integrity": "sha1-IYDqyizypspSgNQcBYW+ybPkm9M=", + "dev": true + } + } + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "dev": true + }, + "progress": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", + "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", + "dev": true + }, + "qs": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz", + "integrity": "sha1-bgFQmP9RlouKPIGQAdXyyJvEsQc=", + "dev": true + }, + "range-parser": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz", + "integrity": "sha1-wEJ//vUcEKy6B4KkbJYC50T/Ygs=", + "dev": true + }, + "raw-body": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.3.tgz", + "integrity": "sha1-PS+R4kSSWcxnuMPOnwYdtbmHk1s=", + "dev": true, + "requires": { + "bytes": "0.2.1" + } + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "request": { + "version": "2.67.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.67.0.tgz", + "integrity": "sha1-ivdHgOK/EeoK6aqWXBHxGv0nJ0I=", + "dev": true, + "requires": { + "aws-sign2": "0.6.0", + "bl": "1.0.3", + "caseless": "0.11.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "1.0.1", + "har-validator": "2.0.6", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.16", + "node-uuid": "1.4.8", + "oauth-sign": "0.8.2", + "qs": "5.2.1", + "stringstream": "0.0.5", + "tough-cookie": "2.2.2", + "tunnel-agent": "0.4.3" + }, + "dependencies": { + "qs": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.1.tgz", + "integrity": "sha1-gB/uAw4LlFDWOFrcSKTMVbRK7fw=", + "dev": true + } + } + }, + "request-progress": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz", + "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=", + "dev": true, + "requires": { + "throttleit": "1.0.0" + } + }, + "resolve": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.7.4.tgz", + "integrity": "sha1-OVqe+ehz+/4SvRRAi9kbuTYAPWk=", + "dev": true + }, + "rimraf": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", + "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=", + "dev": true + }, + "semver": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/semver/-/semver-1.0.14.tgz", + "integrity": "sha1-ysXi1Vpvv5WMsiCuhEBFBxx49nY=", + "dev": true + }, + "send": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/send/-/send-0.1.4.tgz", + "integrity": "sha1-vnDY0b4B3mGCGvE3gLUDRaT3Gr0=", + "dev": true, + "requires": { + "debug": "0.8.1", + "fresh": "0.2.0", + "mime": "1.2.11", + "range-parser": "0.0.4" + } + }, + "shelljs": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.1.4.tgz", + "integrity": "sha1-37vnjVbDwBaNL7eeEOzR28sH7A4=", + "dev": true + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "source-map": { + "version": "0.1.34", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz", + "integrity": "sha1-p8/omux7FoLDsZjQrPtH19CQVms=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "dev": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "stream-counter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-0.2.0.tgz", + "integrity": "sha1-3tJmVWMZyLDiIoErnPOyb6fZR94=", + "dev": true, + "requires": { + "readable-stream": "1.1.14" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "temporary": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/temporary/-/temporary-0.0.8.tgz", + "integrity": "sha1-oYqYHSi6jKNgJ/s8MFOMPst0CsA=", + "dev": true, + "requires": { + "package": "1.0.1" + } + }, + "throttleit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", + "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", + "dev": true + }, + "tiny-lr": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-0.0.4.tgz", + "integrity": "sha1-gGGFR/Y/aX0Fy0DEwsSwg1Ia77Y=", + "dev": true, + "requires": { + "debug": "0.7.4", + "faye-websocket": "0.4.4", + "noptify": "0.0.3", + "qs": "0.5.6" + }, + "dependencies": { + "debug": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz", + "integrity": "sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk=", + "dev": true + }, + "qs": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/qs/-/qs-0.5.6.tgz", + "integrity": "sha1-MbGtBYVnZRxSaSFQa5qHk5EaA4Q=", + "dev": true + } + } + }, + "tough-cookie": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.2.tgz", + "integrity": "sha1-yDoYMPTl7wuT7yo0iOck+N4Basc=", + "dev": true + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", + "dev": true + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, + "optional": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "uglify-js": { + "version": "2.4.24", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.24.tgz", + "integrity": "sha1-+tV1XB4Vd2WLsG/5q25UjJW+vW4=", + "dev": true, + "requires": { + "async": "0.2.10", + "source-map": "0.1.34", + "uglify-to-browserify": "1.0.2", + "yargs": "3.5.4" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", + "dev": true + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true + }, + "uid2": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz", + "integrity": "sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I=", + "dev": true + }, + "underscore": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", + "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=", + "dev": true + }, + "underscore.string": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz", + "integrity": "sha1-18D6KvXVoaZ/QlPa7pgTLnM/Dxk=", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "1.3.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "which": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz", + "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=", + "dev": true + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "yargs": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.5.4.tgz", + "integrity": "sha1-2K/49mXpTDS9JZvevRv68N3TU2E=", + "dev": true, + "requires": { + "camelcase": "1.2.1", + "decamelize": "1.2.0", + "window-size": "0.1.0", + "wordwrap": "0.0.2" + } + }, + "yauzl": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", + "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", + "dev": true, + "requires": { + "fd-slicer": "1.0.1" + } + }, + "zlib-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/zlib-browserify/-/zlib-browserify-0.0.1.tgz", + "integrity": "sha1-T6akXQDbwV8xikr6HZr8Aljhdsw=", + "dev": true + } + } +} diff --git a/src/groucho.js b/src/groucho.js index efa6228..0d354a7 100644 --- a/src/groucho.js +++ b/src/groucho.js @@ -22,18 +22,18 @@ var groucho = window.groucho || {}; 'addons': {} }; - // Handle empty config. - if (!groucho.hasOwnProperty('config')) { - groucho.config = groucho.defaults; - } - else { - // Set empty configs to defaults. - for (var setting in defaults) { - if (!groucho.config.hasOwnProperty(setting)) { - groucho.config[setting] = defaults[setting]; + // Handle empty config. + if (!groucho.hasOwnProperty('config')) { + groucho.config = defaults; + } + else { + // Set each empty config to the defaults. + for (var setting in defaults) { + if (!groucho.config.hasOwnProperty(setting)) { + groucho.config[setting] = defaults[setting]; + } } } - } // Data availability. groucho.userDeferred = groucho.userDeferred || $.Deferred(); diff --git a/test/groucho.html b/test/groucho.html index 7391906..2d898b4 100644 --- a/test/groucho.html +++ b/test/groucho.html @@ -66,6 +66,11 @@ if (!location.href.match(/\?noflush\=|&noflush\=/)) { groucho.storage.clear(); } + // Act as if config was not set in mock file + if (location.search.match(/[?&]config=false/) !== null) { + window._config = groucho.config + delete groucho.config; + } return simpleInclude('../src/groucho.js'); }) .then(function() { @@ -74,6 +79,9 @@ if (location.search.match(/[?&]storage=false/) !== null) { test = 'groucho_storage_errors.js'; } + if (location.search.match(/[?&]config=false/) !== null) { + test = 'groucho_config_test.js'; + } // Load test. return simpleInclude(test); }) diff --git a/test/groucho_config_test.js b/test/groucho_config_test.js new file mode 100644 index 0000000..cc7975c --- /dev/null +++ b/test/groucho_config_test.js @@ -0,0 +1,6 @@ +module('Config'); + +test('Config', 2 , function() { + ok(typeof groucho.config === "object", "Config exists without being explicitly set"); + deepEqual( groucho.config.trackProperties, ['title','type','tags'], "Config object set to defaults"); +});