{"_id":"spf","_rev":"34-19af4f3eb48ea38d5ff8d6efecf161bb","name":"spf","description":"A lightweight JS framework for fast navigation and page updates from YouTube","dist-tags":{"latest":"2.4.0"},"versions":{"2.0.0-alpha.1":{"name":"spf","version":"2.0.0-alpha.1","description":"A framework for navigation and page updates from YouTube","homepage":"https://github.com/youtube/spfjs","repository":{"type":"git","url":"https://github.com/youtube/spfjs.git"},"bugs":{"url":"https://github.com/youtube/spfjs/issues"},"license":"MIT","gitHead":"2b0384f25610bd54bf7f200d3fb0844bdd8596e0","_id":"spf@2.0.0-alpha.1","scripts":{},"_shasum":"7044c49b126d9e89991c77030cfe68950b8bcd0e","_from":".","_npmVersion":"1.5.0-alpha-1","_npmUser":{"name":"nicksay","email":"nicksay@gmail.com"},"maintainers":[{"name":"nicksay","email":"nicksay@gmail.com"}],"dist":{"shasum":"7044c49b126d9e89991c77030cfe68950b8bcd0e","tarball":"https://registry.npmjs.org/spf/-/spf-2.0.0-alpha.1.tgz","integrity":"sha512-cuTgysVemvqLEK6LFsHbXbK12+mtBMRNNnQa2Oqan2i58U5rpDVLI18W0mmTQ1REceR4DsD3djRPS7KNSxMYfA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDTG0UE4GVM0veZ594DkstqJUj6wzyqr0Nid+t34L3wKAiBoDqZyPf7pIhsATMP16+LP76UGMk5T2Eio1DFXbg+I/A=="}]},"deprecated":"Please use the latest stable release."},"2.0.0-alpha.2":{"name":"spf","version":"2.0.0-alpha.2","description":"A framework for navigation and page updates from YouTube","homepage":"https://github.com/youtube/spfjs","repository":{"type":"git","url":"https://github.com/youtube/spfjs.git"},"bugs":{"url":"https://github.com/youtube/spfjs/issues"},"license":"MIT","gitHead":"f0e4cd117e613a5b1164f27f80a8b75fe05095ee","_id":"spf@2.0.0-alpha.2","scripts":{},"_shasum":"dbe31daec5d37f5c8937e9d16d3c42bb5e5e4e33","_from":".","_npmVersion":"1.5.0-alpha-1","_npmUser":{"name":"nicksay","email":"nicksay@gmail.com"},"maintainers":[{"name":"nicksay","email":"nicksay@gmail.com"}],"dist":{"shasum":"dbe31daec5d37f5c8937e9d16d3c42bb5e5e4e33","tarball":"https://registry.npmjs.org/spf/-/spf-2.0.0-alpha.2.tgz","integrity":"sha512-RUKjYbDfpfBUhEUpGpRfjIsLv3pEczEFSTvGAUMJHI4JkFsUmszQr2C0KaYBme2MLOM44+PHggupmARMf117Vw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICqZ3etJcd5+Wh8h/mHtxk3xmtT2kE/2hA3cUSTeGp0sAiBkCfPXbRqmgCkjks+C6zAZZfi73mLg0EmjCCuU9ND2rg=="}]},"deprecated":"Please use the latest stable release."},"2.0.0-beta.1":{"name":"spf","version":"2.0.0-beta.1","description":"A framework for navigation and page updates from YouTube","license":"MIT","homepage":"https://github.com/youtube/spfjs","repository":{"type":"git","url":"https://github.com/youtube/spfjs.git"},"bugs":{"url":"https://github.com/youtube/spfjs/issues"},"scripts":{"dist":"make dist","prepublish":"npm run dist"},"devDependencies":{"minimist":"^1.1.0","q":"^1.0.1","q-io":"^1.11.4","semver":"^4.1.0","wordwrap":"0.0.2"},"gitHead":"b92821b13ac78aa4a56e8c357a77c09bca6e0ddc","_id":"spf@2.0.0-beta.1","_shasum":"97ec4116e2bbf441dd145fd7d7d8a94904e61fa5","_from":".","_npmVersion":"1.5.0-alpha-1","_npmUser":{"name":"nicksay","email":"nicksay@gmail.com"},"maintainers":[{"name":"nicksay","email":"nicksay@gmail.com"}],"dist":{"shasum":"97ec4116e2bbf441dd145fd7d7d8a94904e61fa5","tarball":"https://registry.npmjs.org/spf/-/spf-2.0.0-beta.1.tgz","integrity":"sha512-MjX5BnHNZS3cht9oWDjtcydeq3mdJMZb5cOS5z3jTL/ooIP1+lKV3DICrsTeucxe1ZzC8Rhbe/RYlR9erIFi/Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCaZtX+2sp6DDaciaI7fKQ3/+lYFcJVdEt+KHhcdhhhAIgW1eso28ph7O7UdQGGS86iERcE63U5SyEfB+CoEf4Qt0="}]},"deprecated":"Please use the latest stable release."},"2.0.0-beta.2":{"name":"spf","version":"2.0.0-beta.2","description":"A framework for navigation and page updates from YouTube","license":"MIT","homepage":"https://github.com/youtube/spfjs","repository":{"type":"git","url":"https://github.com/youtube/spfjs.git"},"bugs":{"url":"https://github.com/youtube/spfjs/issues"},"scripts":{"dist":"make dist","prepublish":"npm run dist"},"devDependencies":{"minimist":"^1.1.0","q":"^1.0.1","q-io":"^1.11.4","semver":"^4.1.0","wordwrap":"0.0.2"},"gitHead":"f11d4c06e6342c2c9be9bafd637d938f54eee2c9","_id":"spf@2.0.0-beta.2","_shasum":"8b27f366621bcf9f20ee6c558a7ad9009e6ffee6","_from":".","_npmVersion":"1.5.0-alpha-1","_npmUser":{"name":"nicksay","email":"nicksay@gmail.com"},"maintainers":[{"name":"nicksay","email":"nicksay@gmail.com"}],"dist":{"shasum":"8b27f366621bcf9f20ee6c558a7ad9009e6ffee6","tarball":"https://registry.npmjs.org/spf/-/spf-2.0.0-beta.2.tgz","integrity":"sha512-CmH6a4kXF2gNSzUuy6O6/swOgG3fp5IsMVujrfxe8GlL/19f5TSRGBEFIWkLuIplFBk/gcEv5jxI6ll4E7vzKg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDuz5b0eeTV221TRlJTPr6zMwGigukBhZy+CdaAsQj6KgIhAJIEHsyz7ek62WRquLCSTsVdzLIloT45EgQZ6RPXtTKu"}]},"deprecated":"Please use the latest stable release."},"2.0.0":{"name":"spf","version":"2.0.0","description":"A framework for navigation and page updates from YouTube","license":"MIT","homepage":"https://github.com/youtube/spfjs","repository":{"type":"git","url":"https://github.com/youtube/spfjs.git"},"bugs":{"url":"https://github.com/youtube/spfjs/issues"},"scripts":{"dist":"make dist","prepublish":"npm run dist"},"devDependencies":{"minimist":"^1.1.0","q":"^1.0.1","q-io":"^1.11.4","semver":"^4.1.0","wordwrap":"0.0.2"},"gitHead":"022dc571f86c886a5c0983068538c0396ed41aa9","_id":"spf@2.0.0","_shasum":"aa7aebcb209d77327efa57ea42619eb562a3138e","_from":".","_npmVersion":"1.5.0-alpha-1","_npmUser":{"name":"nicksay","email":"nicksay@gmail.com"},"maintainers":[{"name":"nicksay","email":"nicksay@gmail.com"}],"dist":{"shasum":"aa7aebcb209d77327efa57ea42619eb562a3138e","tarball":"https://registry.npmjs.org/spf/-/spf-2.0.0.tgz","integrity":"sha512-4DOLgyiJH4CQG8RGRXXuSgJd0IY6z/TBRBmWmpDe3Kej4MMoLJK+orTEMUV0XDAKkDascscmSGsbEAQHNLmMgw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCjRKsRIereO3up4CZ5UOcBxOewqvILOQfnHdJiHhpRqQIgWIq/GaXK+a37jCdUByccsYHh2SsDawvGEJxOxDXtPHI="}]}},"2.0.1":{"name":"spf","version":"2.0.1","description":"A lightweight JS framework for fast navigation and page updates from YouTube","license":"MIT","homepage":"https://github.com/youtube/spfjs","repository":{"type":"git","url":"https://github.com/youtube/spfjs.git"},"bugs":{"url":"https://github.com/youtube/spfjs/issues"},"devDependencies":{"minimist":"^1.1.0","q":"^1.0.1","q-io":"^1.11.4","semver":"^4.1.0","wordwrap":"0.0.2"},"gitHead":"2a2a8bb6fadcf144f8c354f43dad5ba25016ffd3","_id":"spf@2.0.1","scripts":{},"_shasum":"22b8ed83c9fd16be970d6505495695dff71212a2","_from":".","_npmVersion":"1.5.0-alpha-1","_npmUser":{"name":"nicksay","email":"nicksay@gmail.com"},"maintainers":[{"name":"nicksay","email":"nicksay@gmail.com"}],"dist":{"shasum":"22b8ed83c9fd16be970d6505495695dff71212a2","tarball":"https://registry.npmjs.org/spf/-/spf-2.0.1.tgz","integrity":"sha512-i8UJI7spGlv4bWPUVnTBdyWVO8f1o76djFzcfWxAZ4z2Ua7+i9VGlA8pOtSWLpdzS9Qi/sVkNKmO/sFQ5KJ+Dg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH8He9Hz6IF95sdRGuyIiPtuEFGmQXoP6oSjoA5ga+RiAiBou4Fclxb2GWG3/sFOnqZZk7NQLmBWZPcW8XllW1+mAg=="}]}},"2.1.0":{"name":"spf","version":"2.1.0","description":"A lightweight JS framework for fast navigation and page updates from YouTube","license":"MIT","homepage":"https://github.com/youtube/spfjs","repository":{"type":"git","url":"https://github.com/youtube/spfjs.git"},"bugs":{"url":"https://github.com/youtube/spfjs/issues"},"scripts":{"prepublish":"bower install && bin/configure.js","build":"ninja","build-all":"ninja all","build-spf":"ninja spf spf-debug spf-trace","build-boot":"ninja boot boot-debug boot-trace","build-dev":"ninja dev","build-tests":"ninja tests","build-demo":"ninja demo","dist":"ninja dist","test":"ninja test","lint":"ninja lint","fix":"ninja fix","start":"ninja demo && cd build/demo && python -m app","clean":"rm -rf build build.ninja dist","reset":"npm run clean; rm -rf bower_components node_modules vendor"},"devDependencies":{"bower":"^1.3.12","closure-linter-wrapper":"^0.2.9","glob":"^4.3.1","minimist":"^1.1.0","ninja-build":"^0.1.5","ninja-build-gen":"^0.1.3","phantomjs":"^1.9.12","semver":"^4.1.0","wordwrap":"0.0.2"},"gitHead":"121c28e3c99256c9baddf77a0bd18f64da9d0757","_id":"spf@2.1.0","_shasum":"db228d5089eb1d4dbbb498bb2f9394c03bbed601","_from":".","_npmVersion":"1.5.0-alpha-1","_npmUser":{"name":"nicksay","email":"nicksay@gmail.com"},"maintainers":[{"name":"nicksay","email":"nicksay@gmail.com"}],"dist":{"shasum":"db228d5089eb1d4dbbb498bb2f9394c03bbed601","tarball":"https://registry.npmjs.org/spf/-/spf-2.1.0.tgz","integrity":"sha512-qzzLUykj/DiXsQ5Ex3TqljywlyvclO0rwWojycoKBwity2aAnXZPY2LjXoXBzvFxgqgmYXb9x3UHt7djTKSPkg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDs7xha8/U0ZyjY1Y1iLBh70JFZ73FNUjwhrSS+DYqbZAIhAPi6xhMpiixnHbW7bH1MYaObhR77CCQR64iJKBwzZr31"}]}},"2.1.1":{"name":"spf","version":"2.1.1","description":"A lightweight JS framework for fast navigation and page updates from YouTube","license":"MIT","homepage":"https://github.com/youtube/spfjs","repository":{"type":"git","url":"https://github.com/youtube/spfjs.git"},"bugs":{"url":"https://github.com/youtube/spfjs/issues"},"scripts":{"prepublish":"bower install && bin/configure.js","build":"ninja","build-all":"ninja all","build-spf":"ninja spf spf-debug spf-trace","build-boot":"ninja boot boot-debug boot-trace","build-dev":"ninja dev","build-tests":"ninja tests","build-demo":"ninja demo","dist":"ninja dist","test":"ninja test","lint":"ninja lint","fix":"ninja fix","start":"ninja demo && cd build/demo && python -m app","clean":"rm -rf build build.ninja dist","reset":"npm run clean; rm -rf bower_components node_modules vendor"},"devDependencies":{"bower":"^1.3.12","closure-linter-wrapper":"^0.2.9","glob":"^4.3.1","minimist":"^1.1.0","ninja-build":"^0.1.5","ninja-build-gen":"^0.1.3","phantomjs":"^1.9.12","semver":"^4.1.0","wordwrap":"0.0.2"},"gitHead":"f15e41e6c9828ecb328a9659d0b89779f1eb97c7","_id":"spf@2.1.1","_shasum":"a2f83d58f5a074ac1043df08bd06205de4bf78ea","_from":".","_npmVersion":"1.5.0-alpha-1","_npmUser":{"name":"nicksay","email":"nicksay@gmail.com"},"maintainers":[{"name":"nicksay","email":"nicksay@gmail.com"}],"dist":{"shasum":"a2f83d58f5a074ac1043df08bd06205de4bf78ea","tarball":"https://registry.npmjs.org/spf/-/spf-2.1.1.tgz","integrity":"sha512-rXjdvrTbOfoQ1MpvESRXV9ifAVVA+bZPZMTACFIDjmBxeIAW9o1u2MeGI66yurWyXu4/2rAvpCtfehoQ+tKP5Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJkk7V6pISZ8cHGkFlpTt2wwYhIcKTahE6fOAm6gLYaAIhAMDcgBVxDoOrdTv1mBQmuNzPIcs5uEEc2+x2V21HU4pY"}]}},"2.1.2":{"name":"spf","version":"2.1.2","description":"A lightweight JS framework for fast navigation and page updates from YouTube","license":"MIT","homepage":"https://github.com/youtube/spfjs","repository":{"type":"git","url":"https://github.com/youtube/spfjs.git"},"bugs":{"url":"https://github.com/youtube/spfjs/issues"},"scripts":{"prepublish":"bower install && bin/configure.js","build":"ninja","build-all":"ninja all","build-spf":"ninja spf spf-debug spf-trace","build-boot":"ninja boot boot-debug boot-trace","build-dev":"ninja dev","build-tests":"ninja tests","build-demo":"ninja demo","dist":"ninja dist","test":"ninja test","lint":"ninja lint","fix":"ninja fix","start":"ninja demo && cd build/demo && python -m app","clean":"rm -rf build build.ninja dist","reset":"npm run clean; rm -rf bower_components node_modules vendor"},"devDependencies":{"bower":"^1.3.12","closure-linter-wrapper":"^0.2.9","glob":"^4.3.1","jsdox":"^0.4.7","minimist":"^1.1.0","ninja-build":"^0.1.5","ninja-build-gen":"^0.1.3","phantomjs":"^1.9.12","semver":"^4.1.0","wordwrap":"0.0.2"},"gitHead":"6f305f77e03979e01f26b237504170f354debdb3","_id":"spf@2.1.2","_shasum":"5428dbc9bfd2bf1784b49d33faec42ecb5adc9f6","_from":".","_npmVersion":"1.5.0-alpha-1","_npmUser":{"name":"nicksay","email":"nicksay@gmail.com"},"maintainers":[{"name":"nicksay","email":"nicksay@gmail.com"}],"dist":{"shasum":"5428dbc9bfd2bf1784b49d33faec42ecb5adc9f6","tarball":"https://registry.npmjs.org/spf/-/spf-2.1.2.tgz","integrity":"sha512-Lkc8YmMD0+E+z/ZwHBMgMsCy9Y/4IlDdgeMhPuWK4XlFncZ5G/GN3NJQVdm6GEsjtl2ia6gwNFRP5vfHSWmhfQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJZUF3ABE3wnrsERuO+hDTYNZBEg5jD825b8LzZnFu3QIhAKHCtN5zXXkT1Gmm6t6OGnX6dADyOV0GTcJATbSi5SWz"}]}},"2.2.0":{"name":"spf","version":"2.2.0","description":"A lightweight JS framework for fast navigation and page updates from YouTube","license":"MIT","homepage":"https://github.com/youtube/spfjs","repository":{"type":"git","url":"https://github.com/youtube/spfjs.git"},"bugs":{"url":"https://github.com/youtube/spfjs/issues"},"scripts":{"prepublish":"bower install && bin/configure.js","build":"ninja","build-all":"ninja all","build-spf":"ninja spf spf-debug spf-trace","build-boot":"ninja boot boot-debug boot-trace","build-dev":"ninja dev","build-tests":"ninja tests","build-demo":"ninja demo","dist":"ninja dist","test":"ninja test","lint":"ninja lint","fix":"ninja fix","start":"ninja demo && cd build/demo && python -m app","clean":"rm -rf build build.ninja dist npm-debug.log","clean-web":"rm -rf web/_site web/assets/vendor","clean-install":"rm -rf bower_components node_modules vendor","reset":"npm run clean; npm run clean-web; npm run clean-install"},"devDependencies":{"bower":"^1.3.12","closure-linter-wrapper":"^0.2.9","glob":"^4.3.1","jsdox":"^0.4.7","minimist":"^1.1.0","ninja-build":"^0.1.5","ninja-build-gen":"^0.1.3","phantomjs":"^1.9.12","semver":"^4.1.0","wordwrap":"0.0.2"},"gitHead":"b2910a5be8c42d22a64f568985613c2ac7e4a951","_id":"spf@2.2.0","_shasum":"fd89b0c7480acf3834574fab82f3a9eadf6aa14d","_from":".","_npmVersion":"2.3.0","_nodeVersion":"0.10.36","_npmUser":{"name":"nicksay","email":"nicksay@gmail.com"},"maintainers":[{"name":"nicksay","email":"nicksay@gmail.com"}],"dist":{"shasum":"fd89b0c7480acf3834574fab82f3a9eadf6aa14d","tarball":"https://registry.npmjs.org/spf/-/spf-2.2.0.tgz","integrity":"sha512-qwl4Ao7MGJGlzTWyKtnOgFRZOan18kenohYb+m7kXWhaP6H32uhV4QK39E5PbGnBv5BwcXqO7hx2kAXlaNlbJg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFTvnlyEjZDezIVkouLD8riDuEy8MsutiQQndYgeCxJxAiEA5PatAHhRjTe9NenCiVSINJJxX88oFwZ8m2a7BA5Vvsw="}]}},"2.3.0":{"name":"spf","version":"2.3.0","description":"A lightweight JS framework for fast navigation and page updates from YouTube","license":"MIT","homepage":"https://github.com/youtube/spfjs","repository":{"type":"git","url":"git+https://github.com/youtube/spfjs.git"},"bugs":{"url":"https://github.com/youtube/spfjs/issues"},"scripts":{"prepublish":"bower install && bin/configure.js","build":"ninja","build-all":"ninja all","build-spf":"ninja spf spf-debug spf-trace","build-boot":"ninja boot boot-debug boot-trace","build-dev":"ninja dev","build-tests":"ninja tests","build-demo":"ninja demo","dist":"ninja dist","test":"ninja test","lint":"ninja lint","fix":"ninja fix","start":"ninja demo && cd build/demo && python -m app","clean":"rm -rf build build.ninja dist npm-debug.log","clean-web":"rm -rf web/_site web/assets/vendor","clean-install":"rm -rf bower_components node_modules vendor","reset":"npm run clean; npm run clean-web; npm run clean-install"},"devDependencies":{"bower":"^1.3.12","closure-linter-wrapper":"^0.2.9","glob":"^4.3.1","jsdox":"^0.4.7","minimist":"^1.1.0","ninja-build":"^0.1.5","ninja-build-gen":"^0.1.3","phantomjs":"^1.9.12","semver":"^4.1.0","wordwrap":"0.0.2"},"gitHead":"92852243fa44bc38e1f0f805f3e52103d5a77dbe","_id":"spf@2.3.0","_shasum":"c12ec571e5d76aeaca7067667f94f2d5ae17f6ec","_from":".","_npmVersion":"3.3.3","_nodeVersion":"4.1.0","_npmUser":{"name":"nicksay","email":"nicksay@gmail.com"},"maintainers":[{"name":"nicksay","email":"nicksay@gmail.com"}],"dist":{"shasum":"c12ec571e5d76aeaca7067667f94f2d5ae17f6ec","tarball":"https://registry.npmjs.org/spf/-/spf-2.3.0.tgz","integrity":"sha512-zmP6eqWKRLG5wyTjnTRo95ezEv+oSKM7GoORioSPGIdNUJO0j080qCkAB2u9XfQp0/k2gbZsMDT4kGkCG6ogAg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH1Z5w4Z+avUV3XGPZOm/G5ZwWkiBK0B15KGnoQQMCQsAiEAtzUR3COkkCObsxOVOwP6wM2pECS9U8U71ZKC1iap4O4="}]}},"2.3.1":{"name":"spf","version":"2.3.1","description":"A lightweight JS framework for fast navigation and page updates from YouTube","license":"MIT","homepage":"https://github.com/youtube/spfjs","repository":{"type":"git","url":"git+https://github.com/youtube/spfjs.git"},"bugs":{"url":"https://github.com/youtube/spfjs/issues"},"scripts":{"prepublish":"bower install && bin/configure.js","build":"ninja","build-all":"ninja all","build-spf":"ninja spf spf-debug spf-trace","build-boot":"ninja boot boot-debug boot-trace","build-dev":"ninja dev","build-tests":"ninja tests","build-demo":"ninja demo","dist":"ninja dist","test":"ninja test","lint":"ninja lint","fix":"ninja fix","start":"ninja demo && cd build/demo && python -m app","clean":"rm -rf build build.ninja dist npm-debug.log","clean-web":"rm -rf web/_site web/assets/vendor","clean-install":"rm -rf bower_components node_modules vendor","reset":"npm run clean; npm run clean-web; npm run clean-install"},"devDependencies":{"bower":"^1.3.12","closure-linter-wrapper":"^0.2.9","glob":"^4.3.1","jsdox":"^0.4.7","minimist":"^1.1.0","ninja-build":"^0.1.5","ninja-build-gen":"^0.1.3","phantomjs":"^1.9.12","semver":"^4.1.0","wordwrap":"0.0.2"},"gitHead":"976007bf899e04beed3e2241225a4bf89cae89c5","_id":"spf@2.3.1","_shasum":"5dfd07d9559a9c912a3a496bb9ae56778798f3b1","_from":".","_npmVersion":"2.14.4","_nodeVersion":"4.1.1","_npmUser":{"name":"nicksay","email":"nicksay@gmail.com"},"maintainers":[{"name":"nicksay","email":"nicksay@gmail.com"}],"dist":{"shasum":"5dfd07d9559a9c912a3a496bb9ae56778798f3b1","tarball":"https://registry.npmjs.org/spf/-/spf-2.3.1.tgz","integrity":"sha512-oZVVv2K2bbGm7kWCf67PR/iKrba7eY7IRaMDwwXRRfyD76JBBVUenbzO96Rp2ucQpGmhtsBJGOFsfgWri0uvRQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQClpqhGk8kI7/HPmjklHSA3GtH06MsnFJhMz1OBBj0/EgIgUG5Oc23qbLMWn0IUwA1IuVTKJvoi1hSpqVvSes7Ys9s="}]}},"2.3.2":{"name":"spf","version":"2.3.2","description":"A lightweight JS framework for fast navigation and page updates from YouTube","license":"MIT","homepage":"https://github.com/youtube/spfjs","repository":{"type":"git","url":"git+https://github.com/youtube/spfjs.git"},"bugs":{"url":"https://github.com/youtube/spfjs/issues"},"scripts":{"prepublish":"bower install && bin/configure.js","build":"ninja","build-all":"ninja all","build-spf":"ninja spf spf-debug spf-trace","build-boot":"ninja boot boot-debug boot-trace","build-dev":"ninja dev","build-tests":"ninja tests","build-demo":"ninja demo","dist":"ninja dist","test":"ninja test","lint":"ninja lint","fix":"ninja fix","start":"ninja demo && cd build/demo && python -m app","clean":"rm -rf build build.ninja dist npm-debug.log","clean-web":"rm -rf web/_site web/assets/vendor","clean-install":"rm -rf bower_components node_modules vendor","reset":"npm run clean; npm run clean-web; npm run clean-install"},"devDependencies":{"bower":"^1.3.12","closure-linter-wrapper":"^0.2.9","glob":"^4.3.1","jsdox":"^0.4.7","minimist":"^1.1.0","ninja-build":"^0.1.5","ninja-build-gen":"^0.1.3","phantomjs":"^1.9.12","semver":"^4.1.0","wordwrap":"0.0.2"},"gitHead":"81e42917a20da6912aea00b0010f276c24c10abf","_id":"spf@2.3.2","_shasum":"4e4595d85441f5c83b0d20fddd5de6b70e3d0f43","_from":".","_npmVersion":"3.6.0","_nodeVersion":"5.6.0","_npmUser":{"name":"nicksay","email":"nicksay@gmail.com"},"dist":{"shasum":"4e4595d85441f5c83b0d20fddd5de6b70e3d0f43","tarball":"https://registry.npmjs.org/spf/-/spf-2.3.2.tgz","integrity":"sha512-wAlKEScwMBavx19+vjtlMQXWwQ8oEsODqXA/p2TFGJqpNFd1aHyQOpQx6Zyg0MFLdv5wQzIWyKHyUQzCAS3mlQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGXcoTBYJm7KRfEg8w/u1cSYYbadtTD1ygucNx6jK8MYAiEAkq0Sjsng9xMtL66BEp91ev8m1VnNxvL28+F0eVsN/1A="}]},"maintainers":[{"name":"nicksay","email":"nicksay@gmail.com"}],"_npmOperationalInternal":{"host":"packages-13-west.internal.npmjs.com","tmp":"tmp/spf-2.3.2.tgz_1458162298022_0.3415589667856693"}},"2.4.0":{"name":"spf","version":"2.4.0","description":"A lightweight JS framework for fast navigation and page updates from YouTube","license":"MIT","homepage":"https://github.com/youtube/spfjs","repository":{"type":"git","url":"git+https://github.com/youtube/spfjs.git"},"bugs":{"url":"https://github.com/youtube/spfjs/issues"},"scripts":{"prepublish":"bower install && bin/configure.js","build":"ninja","build-all":"ninja all","build-spf":"ninja spf spf-debug spf-trace","build-boot":"ninja boot boot-debug boot-trace","build-dev":"ninja dev","build-tests":"ninja tests","build-demo":"ninja demo","dist":"ninja dist","test":"ninja test","lint":"ninja lint","fix":"ninja fix","start":"ninja demo && cd build/demo && python -m app","clean":"rm -rf build build.ninja dist npm-debug.log","clean-web":"rm -rf web/_site web/assets/vendor","clean-install":"rm -rf bower_components node_modules vendor","reset":"npm run clean; npm run clean-web; npm run clean-install"},"devDependencies":{"bower":"^1.3.12","closure-linter-wrapper":"^0.2.9","glob":"^4.3.1","jsdox":"^0.4.7","minimist":"^1.1.0","ninja-build":"^0.1.5","ninja-build-gen":"^0.1.3","phantomjs":"^1.9.12","semver":"^4.1.0","wordwrap":"0.0.2"},"gitHead":"f65923656ad5fa9f3f3085dce4f0672ccf4af84e","_id":"spf@2.4.0","_shasum":"bf02cfaf33961bb5ec720b282c9326a1d85c61d5","_from":".","_npmVersion":"3.6.0","_nodeVersion":"5.6.0","_npmUser":{"name":"nicksay","email":"nicksay@gmail.com"},"dist":{"shasum":"bf02cfaf33961bb5ec720b282c9326a1d85c61d5","tarball":"https://registry.npmjs.org/spf/-/spf-2.4.0.tgz","integrity":"sha512-CSTvNESUC8ELfoK21OWhEtwnxboC+Q+li4z1fwE9X1ZRCGznY6aTu3lhzqrTGeK7KgdIojdf77ByqmmglHlDtg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC0pBNaUQo4ulL7YHWKrHDM7mSPWPlraD1Q7ac4eopGWwIhAJF5V+CterAzu7LNIKRj3Tkab5+BFf04io3m/e29vd5m"}]},"maintainers":[{"name":"nicksay","email":"nicksay@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/spf-2.4.0.tgz_1466700509985_0.7705711727030575"}}},"readme":"# [![SPF][]](https://youtube.github.io/spfjs/)\n\n[![Version][]](https://badge.fury.io/js/spf)\n[![Status][]](https://travis-ci.org/youtube/spfjs)\n\n\nStructured Page Fragments — or SPF for short — is a lightweight\nJS framework for fast navigation and page updates from YouTube.\n\nUsing progressive enhancement and HTML5, SPF integrates with\nyour site to enable a faster, more fluid user experience by\nupdating just the sections of the page that change during\nnavigation, not the whole page.  SPF provides a response format\nfor sending document fragments, a robust system for script and\nstyle management, an in-memory cache, on-the-fly processing, and\nmore.\n\n**Learn more at [youtube.github.io/spfjs][]**\n\n\n## Overview\n\nSPF allows you to leverage the benefits of a static initial page\nload, while gaining the performance and user experience benefits\nof dynamic page loads:\n\n**User Experience**  \n1. Get the fastest possible initial page load.  \n2. Keep a responsive persistent interface during navigation.  \n\n**Performance**  \n1. Leverage existing techniques for static rendering.  \n2. Load small responses and fewer resources each navigation.  \n\n**Development**  \n1. Use any server-side language and template system.  \n2. Be productive by using the same code for static and dynamic\n   rendering.\n\n\n## Download\n\nInstall with [npm][]:\n\n```sh\nnpm install spf\n```\n\nInstall with [Bower][]:\n\n```sh\nbower install spf\n```\n\nOr, see the [download page][] for options to download the latest\nrelease and link to minified JS from a CDN:\n\n> [Download SPF](https://youtube.github.io/spfjs/download/)\n\n\n## Get Started\n\nThe SPF client library is a single ~10K [UMD][] JS file with no\ndependencies.  It may be asynchronously delay-loaded.  All\nfunctions are exposed via the global `spf` object.\n\n**Enable SPF**\n\nTo add SPF to your site, include the JS file and run `spf.init()`.\n\n```html\n<script>\n  spf.init();\n</script>\n```\n\n**Send requests**\n\nSPF does not change your site's navigation automatically and\ninstead uses progressive enhancement to enable dynamic\nnavigation for certain links.  Just add a `spf-link` class to an\n`<a>` tag to activate SPF.\n\nGo from static navigation:\n\n```html\n<a href=\"/destination\">Go!</a>\n```\n\nto dynamic navigation:\n\n```html\n<!-- Link enabled: a SPF request will be sent -->\n<a class=\"spf-link\" href=\"/destination\">Go!</a>\n```\n\n**Return responses**\n\nIn static navigation, an entire HTML page is sent.  In dynamic\nnavigation, only fragments are sent, using JSON as transport.\nWhen SPF sends a request to the server, it appends a\nconfigurable identifier to the URL so that your server can\nproperly handle the request.  (By default, this will be\n`?spf=navigate`.)\n\nIn the following example, a common layout of upper masthead,\nmiddle content, and lower footer is used.  In dynamic\nnavigation, only the fragment for the middle content is sent,\nsince the masthead and footer don't change.\n\nGo from static navigation:\n\n`GET /destination`\n\n```html\n<html>\n  <head>\n    <!-- Styles -->\n  </head>\n  <body>\n    <div id=\"masthead\">...</div>\n    <div id=\"content\">\n      <!-- Content -->\n    </div>\n    <div id=\"footer\">...</div>\n    <!-- Scripts -->\n  </body>\n</html>\n```\n\nto dynamic navigation:\n\n`GET /destination?spf=navigate`\n\n```json\n{\n  \"head\": \"<!-- Styles -->\",\n  \"body\": {\n    \"content\":\n        \"<!-- Content -->\",\n  },\n  \"foot\": \"<!-- Scripts -->\"\n}\n```\n\nSee the [documentation][] for complete information.\n\n\n## Browser Support\n\nTo use dynamic navigation, SPF requires the HTML5 History API.\nThis is broadly supported by all current browsers, including\nChrome 5+, Firefox 4+, and IE 10+.  See a full browser\ncompatibility table at [Can I Use][].  Underlying functionality,\nsuch as AJAX-style page updates and script/style loading, is\nmore broadly supported by IE 8+.\n\n\n## Get Help\n\nSend feedback, comments, or questions about SPF to\n<spfjs@googlegroups.com>.\n\nFile bugs or feature requests at [GitHub][].\n\nJoin our [mailing list][] and follow [@spfjs][] on Twitter for\nupdates.\n\n\n## License\n\nMIT  \nCopyright 2012-2016 Google, Inc.\n\n\n\n[youtube.github.io/spfjs]: https://youtube.github.io/spfjs/\n[npm]: https://www.npmjs.com/\n[Bower]: http://bower.io/\n[download page]: https://youtube.github.io/spfjs/download/\n[UMD]: https://github.com/umdjs/umd\n[documentation]: https://youtube.github.io/spfjs/documentation/\n[Can I Use]: http://caniuse.com/#feat=history\n[GitHub]: https://github.com/youtube/spfjs/issues\n[mailing list]: https://groups.google.com/group/spfjs\n[@spfjs]: https://twitter.com/spfjs\n\n[SPF]: https://youtube.github.io/spfjs/assets/images/banner-728x388.jpg\n[Version]: https://badge.fury.io/js/spf.svg\n[Status]: https://secure.travis-ci.org/youtube/spfjs.svg?branch=master\n","maintainers":[{"name":"nicksay","email":"nicksay@gmail.com"}],"time":{"modified":"2022-06-26T22:48:28.556Z","created":"2014-07-11T08:12:55.097Z","2.0.0-alpha.1":"2014-07-11T08:12:55.097Z","2.0.0-alpha.2":"2014-07-19T17:37:15.134Z","2.0.0-beta.1":"2014-11-14T18:28:14.154Z","2.0.0-beta.2":"2014-11-20T01:17:25.383Z","2.0.0":"2014-11-24T18:18:13.797Z","2.0.1":"2014-12-03T22:22:01.251Z","2.1.0":"2014-12-12T23:06:05.632Z","2.1.1":"2014-12-12T23:41:31.941Z","2.1.2":"2015-01-28T21:15:50.562Z","2.2.0":"2015-04-10T20:53:40.270Z","2.3.0":"2015-10-02T21:03:00.587Z","2.3.1":"2016-01-13T18:50:08.081Z","2.3.2":"2016-03-16T21:05:00.588Z","2.4.0":"2016-06-23T16:48:32.753Z"},"homepage":"https://github.com/youtube/spfjs","repository":{"type":"git","url":"git+https://github.com/youtube/spfjs.git"},"bugs":{"url":"https://github.com/youtube/spfjs/issues"},"license":"MIT","readmeFilename":"README.md","users":{"nicksay":true,"nickdenardis":true,"timdp":true}}