{"_id":"modules","_rev":"45-a2e26a023a5322e06018991953f10594","name":"modules","description":"CommonJS modules for the browser","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.0":{"name":"modules","description":"CommonJS modules for the browser","version":"0.1.0","author":{"name":"Andy VanWagoner","email":"thetalecrafter@gmail.com"},"keywords":["module","require","commonjs"],"repository":{"type":"git","url":"git://github.com/thetalecrafter/modules.git"},"main":"modules","engines":{"node":"*"},"devDependencies":{"express":">= 3.0"},"_id":"modules@0.1.0","dist":{"shasum":"ccedc41e131d4e0a025379536ebea31e02b0e6a2","tarball":"https://registry.npmjs.org/modules/-/modules-0.1.0.tgz","integrity":"sha512-6jz4nmmnIYkyWhh9ipEDeS/nS4oQ4TS/WZZ/md7Ri44UmoNlWXCaai/tYOLZJ4WiYoTWkN8eytjJXMvFnFyO1g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDd/JBR3VGUSVnNMB5OpjK2uXRStfxjVqsq7WuLwWY0vwIhANmrrxZomIVikLRy50lToIOpCriP7vWAJgtduUy9fsia"}]},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}],"directories":{}},"0.1.1":{"name":"modules","description":"CommonJS modules for the browser","version":"0.1.1","author":{"name":"Andy VanWagoner","email":"thetalecrafter@gmail.com"},"keywords":["module","require","commonjs"],"repository":{"type":"git","url":"git://github.com/thetalecrafter/modules.git"},"main":"modules","engines":{"node":"*"},"devDependencies":{"express":">= 3.0"},"_id":"modules@0.1.1","dist":{"shasum":"33dd955ee8725c1b64e5531833d0f8058caeb644","tarball":"https://registry.npmjs.org/modules/-/modules-0.1.1.tgz","integrity":"sha512-VXEeewk5T0fuiz2h7pTrmyCg2n5JvdDFyCZpt5shUVCFl0PcjdWxGlAgfrHUj2AVlAREy5tRF3V/X1TLxkwThw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH1l9kPrt7jo0ft86on+NrJGzhAMNeFzd+Yluk+i2yxCAiEAq1/DwWUofw+HG40BjeHGeJEv/oNzHOb9wYMHlXmlwYQ="}]},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}],"directories":{}},"0.1.2":{"name":"modules","description":"CommonJS modules for the browser","version":"0.1.2","author":{"name":"Andy VanWagoner","email":"thetalecrafter@gmail.com"},"keywords":["module","require","commonjs"],"repository":{"type":"git","url":"git://github.com/thetalecrafter/modules.git"},"main":"modules","engines":{"node":"*"},"devDependencies":{"express":">= 3.0"},"_id":"modules@0.1.2","dist":{"shasum":"3db74ae36acd753db9fa820003857d1474fdee3c","tarball":"https://registry.npmjs.org/modules/-/modules-0.1.2.tgz","integrity":"sha512-w7VQp6+p1OcIDkmz34GgXTJCIofZQ4lAJG6FUI4iwOJXK7dhzOcw/gZmxX1s1RV7oja/kSUuy2t4TE8UlJj0Ow==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH7aykhr45MLbWepjEK5UOArHA9zNhm/7zz/YHpGaVC1AiBswS2zb1cbi/bVGZpq85T/wv+UScWL4dwFwHsX+9c+3g=="}]},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}],"directories":{}},"0.1.3":{"name":"modules","description":"CommonJS modules for the browser","version":"0.1.3","author":{"name":"Andy VanWagoner","email":"thetalecrafter@gmail.com"},"keywords":["module","require","commonjs"],"repository":{"type":"git","url":"git://github.com/thetalecrafter/modules.git"},"main":"modules","engines":{"node":"*"},"devDependencies":{"express":">= 3.0"},"_id":"modules@0.1.3","dist":{"shasum":"6b99dedd233092151e89687d68ac3fcf1859bb76","tarball":"https://registry.npmjs.org/modules/-/modules-0.1.3.tgz","integrity":"sha512-5JnMkDoCaUt+8eqVl2FlKZmS4q+2919hABnCy8nRmFaA9edtKrQP53atWBou+bVleUmhaovARVfnTlq5uwvyHw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC3T3pU2rHqgmsFa1GGpoUwQCzHlgH0iY1OYyTRgdAUJgIgJPbsYDwjR8ExHBopsX4klPJfFxJyB1336tfZ1w0hbdo="}]},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}],"directories":{}},"0.1.4":{"name":"modules","description":"CommonJS modules for the browser","version":"0.1.4","author":{"name":"Andy VanWagoner","email":"thetalecrafter@gmail.com"},"keywords":["module","require","commonjs"],"repository":{"type":"git","url":"git://github.com/thetalecrafter/modules.git"},"main":"modules","engines":{"node":"*"},"devDependencies":{"express":">= 3.0"},"_id":"modules@0.1.4","dist":{"shasum":"86caf57324bf16cddade69bb6621b766430ba2d9","tarball":"https://registry.npmjs.org/modules/-/modules-0.1.4.tgz","integrity":"sha512-QX4y3wE3FX9mW65PZb9fnFCNRaKm10vkn9Nv1NahZrhI2gwUBe0dQSA7+CNV4MHlugCu/n+rDAzVRxsa2s8OVQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDJlExBX3xYd3N5ka73cArLDAy6hTqA4bicdFOY/v+zsAIgWewEAYT0dkEKsOa7uuDAnKTcjIaicVuF+0smTb8GmSs="}]},"_npmVersion":"1.1.59","_npmUser":{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}],"directories":{}},"0.1.5":{"name":"modules","description":"CommonJS modules for the browser","version":"0.1.5","author":{"name":"Andy VanWagoner","email":"thetalecrafter@gmail.com"},"keywords":["module","require","commonjs"],"repository":{"type":"git","url":"git://github.com/thetalecrafter/modules.git"},"main":"modules","engines":{"node":"*"},"devDependencies":{"express":">= 3.0"},"_id":"modules@0.1.5","dist":{"shasum":"3cd25c2e6092953284a64afb1cc3a1438fcea3cd","tarball":"https://registry.npmjs.org/modules/-/modules-0.1.5.tgz","integrity":"sha512-l9OKU9C2oMt/V7fNVNGMzx9yaNSGeo7c0YQHMXBswPg4yvPOsDUBe7XTmWAWmS5KCwQvJNcUl5bBk/PBMwYu1w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCsHNHq1dvFoDV5vgtYfsK0o1s7CSQN3isTXcVENFiIMQIgbs6kV05EPQyEsT2AWS1HVhYW0cB67rfkXM4jbFjbNzE="}]},"_npmVersion":"1.1.61","_npmUser":{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}],"directories":{}},"0.2.0":{"name":"modules","description":"CommonJS modules for the browser","version":"0.2.0","author":{"name":"Andy VanWagoner","email":"thetalecrafter@gmail.com"},"keywords":["module","require","commonjs"],"repository":{"type":"git","url":"git://github.com/thetalecrafter/modules.git"},"main":"modules","engines":{"node":"*"},"devDependencies":{"express":">= 3.0"},"_id":"modules@0.2.0","dist":{"shasum":"27189e05d62ebfbdaaea32f49faddba9cdc2fc2f","tarball":"https://registry.npmjs.org/modules/-/modules-0.2.0.tgz","integrity":"sha512-vGQCyFxj3MObyeQk/UL0Wiwur3MVtkD/aG7MJ1tVSRiegXQvllKLlXLsirs+uTGB/42XQaSgS1uLDKQRk+osaA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCLK/PpooquRKUvCb0tXm2H26UeyyaH/W06N1gXdC21sgIgNnNKD51FkMeI0e6Y1BjVId9HaQDjo4LuNNI74geyvwA="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}],"directories":{}},"0.2.1":{"name":"modules","description":"CommonJS modules for the browser","version":"0.2.1","author":{"name":"Andy VanWagoner","email":"thetalecrafter@gmail.com"},"keywords":["module","require","commonjs"],"repository":{"type":"git","url":"git://github.com/thetalecrafter/modules.git"},"main":"modules","engines":{"node":"*"},"devDependencies":{"express":">= 3.0"},"_id":"modules@0.2.1","dist":{"shasum":"80897fcd5fe6f96eb0e5d604ac0bbafa387161f0","tarball":"https://registry.npmjs.org/modules/-/modules-0.2.1.tgz","integrity":"sha512-ngG/rzJ/tnc4VbDsFMIa8JJlUsx+PxMTsinrwiKPutDODscIXfKqMwJHWR2qNJK/cyriIPmmelnVDRTthJBs9Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC1nClAfL2P9V5ftsoif2jTew6ppu1oWJqIu9gHQaEHoAIhAL48R8D2//BqwjJxqNLA7sC3PCkg8c8/WeICWr9rdfPe"}]},"_npmVersion":"1.1.62","_npmUser":{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}],"directories":{}},"0.2.2":{"name":"modules","description":"CommonJS modules for the browser","version":"0.2.2","author":{"name":"Andy VanWagoner","email":"thetalecrafter@gmail.com"},"keywords":["module","require","commonjs"],"repository":{"type":"git","url":"git://github.com/thetalecrafter/modules.git"},"main":"modules","engines":{"node":"*"},"devDependencies":{"express":">= 3.0"},"_id":"modules@0.2.2","dist":{"shasum":"85358182d9f91e5d0a8a24f9506c767f43c02f8c","tarball":"https://registry.npmjs.org/modules/-/modules-0.2.2.tgz","integrity":"sha512-ozzPOMA8ziqTPiTvSmRh7sZobdBFpWK1p5dgJF7mmdF9JMXP1GQHBFOoctXNfoe76kEBexQvweqF45VcRLsqCA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGSJSWpSa119xBLDQHyLYYnbAU45HbbyPM6V0M58R0haAiEAtfEYI1W6cZVJIUMyObjrsvGofOXwvKNl540Lzr94bMA="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}],"directories":{}},"0.2.3":{"name":"modules","description":"CommonJS modules for the browser","version":"0.2.3","author":{"name":"Andy VanWagoner","email":"thetalecrafter@gmail.com"},"keywords":["module","require","commonjs"],"repository":{"type":"git","url":"git://github.com/thetalecrafter/modules.git"},"main":"modules","engines":{"node":"*"},"devDependencies":{"express":">= 3.0"},"_id":"modules@0.2.3","dist":{"shasum":"f0b850e0c9c8b6f023e6cad12e9963a53a15b083","tarball":"https://registry.npmjs.org/modules/-/modules-0.2.3.tgz","integrity":"sha512-dvxwCRBwfOxRJLBjUitL7BDjQN9aITenaFWVTeq6gNBrWC/36eP1Z03LGu4SBdjhsfURWp9VcTkwQuxyYqC1vA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE/nNeZr9rCY5/SJRP+mU0WQs99xXBz8UMi3ta6fGPLXAiBNTXl6odFztyg8AH1aH1Jhgwer9uXr3w8IuxY9OU11Eg=="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}],"directories":{}},"0.2.4":{"name":"modules","description":"CommonJS modules for the browser","version":"0.2.4","author":{"name":"Andy VanWagoner","email":"thetalecrafter@gmail.com"},"keywords":["module","require","commonjs"],"repository":{"type":"git","url":"git://github.com/thetalecrafter/modules.git"},"main":"modules","engines":{"node":"*"},"devDependencies":{"express":">= 3.0"},"_id":"modules@0.2.4","dist":{"shasum":"660d5e26c90e7b0a3c76271c955885aa19d04af7","tarball":"https://registry.npmjs.org/modules/-/modules-0.2.4.tgz","integrity":"sha512-/cZM0HuOAUaI3MDK/PQIJ01AUKHZDcP63jtUOt19EhXt21xPM1uFb53yyd+rXqcHNCjj8rFQi+vbJTc9aYifBQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDhCkMWe8Fs0+1g4pF9H7wBbx2eMrWMaBahu8xDx74cVQIhAPANYJ8Zi1Yr/INt4iS+PO0BsuJYi9mhZ6YqyZneQfnk"}]},"_npmVersion":"1.1.62","_npmUser":{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}],"directories":{}},"0.2.5":{"name":"modules","description":"CommonJS modules for the browser","version":"0.2.5","author":{"name":"Andy VanWagoner","email":"thetalecrafter@gmail.com"},"keywords":["module","require","commonjs"],"repository":{"type":"git","url":"git://github.com/thetalecrafter/modules.git"},"main":"modules","engines":{"node":"*"},"devDependencies":{"express":">= 3.0"},"_id":"modules@0.2.5","dist":{"shasum":"06b8ee7b585b3f225b7ef7686ab997d719bc78c7","tarball":"https://registry.npmjs.org/modules/-/modules-0.2.5.tgz","integrity":"sha512-aeV8M1eC9JC7jlIujd43ZS/o4czzcy/X4BOl3SswNvDSXIUJOAjDhdQifTMNVIx9Xf+x0HIl/ffH1GoMYRuqlw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAuePsnlcfzS4zRPOhKU8KjvPA/4Haf7DSdUXpD6xHG2AiEAnIL37VDHp4V5xnc8maqRUEpq8ii7/2UeKpRq/gxMepU="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}]},"0.3.0":{"name":"modules","description":"CommonJS modules for the browser","version":"0.3.0","repository":{"type":"git","url":"git://github.com/thetalecrafter/modules"},"author":{"name":"Andy VanWagoner","email":"thetalecrafter@gmail.com"},"keywords":["module","require","commonjs","amd","dependency"],"main":"index","scripts":{"test":"grunt test"},"engines":{"node":"*"},"dependencies":{"async":"~0.2"},"devDependencies":{"jsdom":"~0.6","express":"~3.0","grunt":"~0.4","grunt-cli":"~0.1","grunt-contrib-jshint":"*","grunt-contrib-uglify":"*","grunt-contrib-nodeunit":"*"},"bugs":{"url":"https://github.com/thetalecrafter/modules/issues"},"_id":"modules@0.3.0","dist":{"shasum":"4cd263dfaf4c0e401cf9170dcd16c1de45cbd4d2","tarball":"https://registry.npmjs.org/modules/-/modules-0.3.0.tgz","integrity":"sha512-96wx8EeuNKLp99csMnIZkG9N9nzq6apdPrVcBJzsR5VJ4bWtOwJeJrd6L8oGP0NOlOGLWTYJY9PqCOSK7++Mtw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBX1tCz5wg3ZabmbUWPWD+pW7KBLTLylSxtEqYx55UaNAiEAqa/mQgcAcO3Ug3Ydl/DFHGrZUkc6Y2wqAIX+erRAuQs="}]},"_from":".","_npmVersion":"1.2.19","_npmUser":{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}]},"0.3.1":{"name":"modules","description":"CommonJS modules for the browser","version":"0.3.1","repository":{"type":"git","url":"git://github.com/thetalecrafter/modules"},"author":{"name":"Andy VanWagoner","email":"thetalecrafter@gmail.com"},"keywords":["module","require","commonjs","amd","dependency"],"main":"index","scripts":{"test":"grunt test"},"engines":{"node":"*"},"dependencies":{"async":"~0.2"},"devDependencies":{"jsdom":"~0.6","express":"~3.0","grunt":"~0.4","grunt-cli":"~0.1","grunt-contrib-jshint":"*","grunt-contrib-uglify":"*","grunt-contrib-nodeunit":"*"},"_id":"modules@0.3.1","dist":{"shasum":"53c561c93d8b0f8a38d9532454838494b39b7119","tarball":"https://registry.npmjs.org/modules/-/modules-0.3.1.tgz","integrity":"sha512-GhVzL4DYqdYooZQFmEElTZVxLprCanlQU2YBu2FcWKeMLIpgn5lmy6kr8z2cHdJrpcMzyJ8q2AIDt0zPJahO4A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHKwI3n4KqxZfQOOhKUX83tSnESejg4bxZP1M/AmhqwvAiEA0iPkJbPs/5aSi/JISPw8GoHRFCl99KbY/3Z7Jf4ZOK8="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}]},"0.3.2":{"name":"modules","description":"CommonJS modules for the browser","version":"0.3.2","repository":{"type":"git","url":"git://github.com/thetalecrafter/modules"},"author":{"name":"Andy VanWagoner","email":"thetalecrafter@gmail.com"},"keywords":["module","require","commonjs","amd","dependency"],"main":"index","scripts":{"test":"grunt test"},"engines":{"node":"*"},"dependencies":{"async":"~0.2"},"devDependencies":{"jsdom":"~0.6","express":"~3.0","grunt":"~0.4","grunt-cli":"~0.1","grunt-contrib-jshint":"*","grunt-contrib-uglify":"*","grunt-contrib-nodeunit":"*"},"_id":"modules@0.3.2","dist":{"shasum":"4c4090feb83119926f2adb7300850a820db4c635","tarball":"https://registry.npmjs.org/modules/-/modules-0.3.2.tgz","integrity":"sha512-CJBd9gSjh+HHdKug/WeTSLa7F2CDDkSCdE/hSzGwNcdswIIYO8WoaObrRpFY3icqk2JsnAHkZWW/NN7JTp9aKA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH8qG9AL3/kY9VTtFNAFykLyM/8BKbdNcsKfYus5MH7eAiEA+aGYrCZrzwjQPiaYjxg0Kznr1dCFc4R3B+QKzl6NAVg="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}]},"0.3.3":{"name":"modules","description":"CommonJS modules for the browser","version":"0.3.3","repository":{"type":"git","url":"git://github.com/thetalecrafter/modules"},"author":{"name":"Andy VanWagoner","email":"thetalecrafter@gmail.com"},"keywords":["module","require","commonjs","amd","dependency"],"main":"index","scripts":{"test":"grunt test"},"engines":{"node":"*"},"dependencies":{"async":"~0.2"},"devDependencies":{"jsdom":"~0.6","express":"~3.0","grunt":"~0.4","grunt-cli":"~0.1","grunt-contrib-jshint":"*","grunt-contrib-uglify":"*","grunt-contrib-nodeunit":"*"},"_id":"modules@0.3.3","dist":{"shasum":"b142c7448aa4b9c2915e1986274cc67412f352ea","tarball":"https://registry.npmjs.org/modules/-/modules-0.3.3.tgz","integrity":"sha512-g55Pj8EMtrntP3kTNoec6zB+hDqmOJu/FfBiCzjwOrJ2Ou+8PzXdxxNfw8sxa4rAlIFy4XE5Xlz9pTPpRYIypw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCW1E2fLrMA5o/TehrACkSlgGxGLpQqMEjiNdKWQgGeHwIhAOGKwnUeTo/m6Z41C1bn05mGjq3bJAn4WTn/sgqlgZW9"}]},"_npmVersion":"1.1.62","_npmUser":{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}]},"0.4.0":{"name":"modules","description":"CommonJS modules for the browser","version":"0.4.0","repository":{"type":"git","url":"git://github.com/thetalecrafter/modules"},"author":{"name":"Andy VanWagoner","email":"thetalecrafter@gmail.com"},"keywords":["module","require","commonjs","amd","dependency"],"scripts":{"test":"grunt test"},"engines":{"node":"*"},"dependencies":{},"devDependencies":{"async":"^0.8","jsdom":"^0.10","grunt":"^0.4","grunt-cli":"^0.1","grunt-contrib-jshint":"*","grunt-contrib-uglify":"*","grunt-contrib-nodeunit":"*"},"bugs":{"url":"https://github.com/thetalecrafter/modules/issues"},"homepage":"https://github.com/thetalecrafter/modules","_id":"modules@0.4.0","_shasum":"7a856fd0d8a9e0a5c3e3bbbbab68960910ec8c89","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}],"dist":{"shasum":"7a856fd0d8a9e0a5c3e3bbbbab68960910ec8c89","tarball":"https://registry.npmjs.org/modules/-/modules-0.4.0.tgz","integrity":"sha512-LX4JgwPHJr1FurPDKp1BlGgMXqZXtxO1O8ABGmj2g15CbLGlInTHcA9flqw6uN6oYKE2T0ngWdiHvcX97mdBsw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWPhrQ186BDcne5mS+bnppnyE7Qab7nNRSWwYx51458wIgErg4FQkT05uSJOtlyi+A1eow2mb9aumFhizqLHJ6/Rg="}]}}},"readme":"# modules [![Build Status](https://secure.travis-ci.org/thetalecrafter/modules.png?branch=master)](http://travis-ci.org/thetalecrafter/modules)\n\n> Use CommonJS modules client-side in web applications\n\n## Getting started\n\nInstall via npm\n\n\tnpm install modules --save-dev\n\nAdd the middleware to your express or connect app\n\n\tapp.get('/module', require('modules').middleware({\n\t\troot: './component', // where modules live in the filesystem\n\t\t// ... other options\n\t});\n\nAdd the client script to your html\n\n\n\t<script src=\"/module/define.min.js\" data-main=\"my-main-module\"></script>\n\n\n\n### Mapping and Bundling\n\nYou can create bundles (files containing multiple modules), and/or map modules to\nurls outside of the conventional location.\n\nClient-side, this mapping is handled with the `data-urls` attribute on the script\ntag, or with a call to `define.url()`. `define.url(url, ids)` maps a single url\nto all the modules at that url, and the `data-urls` attribute expects a JSON\nobject with urls as keys, and arrays of module ids as the values.\n\n\tdefine.url(\"url/of/bundle.js\", [ \"moduleid\" ])\n\n\t<script ... data-urls='{\"bundle.js\":[\"moduleid\"]}'></script>\n\n\nServer-side and at build time you can generate bundles with the following snippets:\n\n\t// Generate a bundle with a specific set of modules included\n\trequire('modules').modules(\n\t\t[ 'module1', 'module2' ],\n\t\t{ /* options */ }, // specify optional compression, etc.\n\t\tfunction(err, js, modified) {\n\t\t\t// js is a string containing the AMD-wrapped javascript for the modules\n\t\t\t// modified is the most recent modified date among the included modules\n\t\t}\n\t);\n\n\t// Generate a bundle with all of the deep dependencies of the modules, excluding\n\t//  the deep dependencies of another list of modules\n\trequire('modules/lib/bundles').bundle(\n\t\t[ 'module1', 'module2' ], // include these and their deep dependencies\n\t\t[ 'module3', 'module4' ], // except any of these or their deep dependencies\n\t\t{ /* options */ },\n\t\tfunction(err, js, modified) {\n\t\t}\n\t);\n\n\n\n\n## API\n\n### In Browser\n\n#### define.js or define.min.js\n\nThese scripts create the `define` function used to create a module environment\nin the browser. You can reference the file how ever you'd like; they are in the\n`lib` folder in the source code. However, the preferred way is to include a\nscript tag pointing to the path the middleware is listening to, or to a bundle\nincluding define:\n\n\t<script src=\"/path/to/define.min.js\"></script>\n\n* `define(id, dependencies?, factory)` -- Define module `id`. `id` is required\n\tin this implementation. If the `dependencies` parameter is omitted, the factory\n\twill not be scanned for `require()` calls, `[ 'require', 'exports', 'module' ]`\n\twill be used instead.\n\tSee the [AMD wiki](https://github.com/amdjs/amdjs-api/wiki/AMD) for details.\n* `define.amd` -- Object denoting AMD compatibility.\n\n\n#### define.shim.js\n\nThis is only useful to include first in a bundle that may be loaded before the\n`define` or `define.min` script has run. Usually the main bundle includes\n`define.min` and the shim is not needed.\n\n* `define(id, dependencies?, factory)` -- Saves the arguments for when `define`\n\tor `define.min` is loaded.\n* `define.amd` -- Object denoting AMD compatibility.\n\n\n#### module scope\n\n(inside the factory function)\n\nSee the [CommonJS Module spec](http://wiki.commonjs.org/wiki/Modules/1.1.1),\nthe [AMD spec](https://github.com/amdjs/amdjs-api/wiki/AMD), and\n[Node.js modules](http://nodejs.org/api/modules.html)\n\n* `exports` -- Alias for `module.exports`. An object to assign properties to\n\tin order to export values.\n* `module` -- An object representing this module.\n* `module.children` -- An array of `module` objects for the modules this one\n\trequires synchronously.\n* `module.exports` -- This object will be returned from `require()` calls for\n\tthis module. Assign to this to export the value. Note if you assign to this\n\tproperty, the `exports` variable is not automatically updated.\n* `module.filename` -- Alias of `uri`. The url of the script containing this\n\tmodule.\n* `module.loaded` -- True if the module has already been defined.\n* `module.parent` -- The `module` object for the module that first required\n\tthis module.\n* `module.id` -- A string of slash separated terms identifying the module.\n* `module.require()` -- A `require()` function that always resolves relative\n\tids against this module's id.\n* `module.uri` -- Alias of `filename`. The url of the script containing this\n\tmodule.\n* `require(id)` -- Returns the `exports` for the module identified. Throws an\n\terror if the module has not been loaded. `id` is a module id string.\n* `require(ids, next)` -- Asynchronously load the modules, require them, and\n\tpass them as arguments to the callback function `next`. `ids` may be a\n\tsingle id string, or an array of module id strings.\n* `require.cache` -- A store of all modules the system knows about. You may\n\tundefine a module by `delete require.cache[module.id]`. Assigning to\n\tthis property will have no effect.\n* `require.main` -- The `module` object of the module loaded by the `data-main`\n\tattribute of the define script.\n* `require.resolve(id)` -- Resolves a relative module id against this module's\n\tid, and returns the `uri` for that module.\n* `require.toUrl(id)` -- Similar to `require.resolve()`. See the AMD spec.\n* `require.map(url, ids)` -- Tell require where to load specific modules.\n\t`url` is the url to request, and `ids` is an array of module ids that are\n\tdefined by the file at the url.\n\n\n\n### In Node.js\n\n#### modules\n\n\tmodules = require('modules')\n\nProvides middleware and functions to wrap and bundle your modules for use in the\nbrowser.\n\n* `modules.dependencies(id, js, options?)` -- Finds all literal synchronous\n\t`require()` calls in a module identified by `id`. `js` is the code for the\n\tmodule as a string. If `options.absolute` is true, the returned dependency ids\n\tare made absolute, otherwise they are returned as written in the code. Returns\n\tan array of module id strings. *Note: this uses regular expressions instead\n\tof a parser. Comments are excluded. The function will miss any calls with a\n\trenamed require, or a variable instead of a string literal id.*\n* `modules.middleware(options?)` -- Returns an express / connect middleware using\n\tthe `options` passed in.\n\n\t* `compress` -- Defaults to `false`. If a function is specified, it will be\n\t\tpassed a module object with `id`, `filename`, `code`, and `modified`\n\t\tproperties as the first parameter, and a function as the second. It expects\n\t\tthe function to be called with either an error or null in the first argument,\n\t\tand the compressed code as a string in the second. Example:\n\n\t\t\tcompress:function(js, next) {\n\t\t\t\tvar UglifyJS = require('uglify-js');\n\t\t\t\tjs = UglifyJS.minify(js.code, { fromString:true });\n\t\t\t\tnext(null, js);\n\t\t\t}\n\n\t* `forbid` Defaults to `[]`. If the file path to a module matches an entry\n\t\tin this list, a `'Forbidden'` error will be passed to the next error\n\t\tmiddleware. Entries can be a string module id (filename starts with\n\t\tentry), a regular expression (`exp.test(filename)`) or any object with\n\t\ta `test` function property (`obj.test(filename)`). Files outside of the\n\t\t`root` directory are always forbidden, unless they have been mapped.\n\t\tMapped files are always allowed. Example:\n\n\t\t\tforbid: [\n\t\t\t\t'server', /\\.middleware\\.js$/,\n\t\t\t\t{ test:function(filename) {\n\t\t\t\t\treturn filename.slice(-3) === 'foo';\n\t\t\t\t} }\n\t\t\t]\n\n\t* `encoding` Defaults to `'utf8'`. Encoding to read module files in.\n\t* `map` Defaults to `{}`. Map module ids to files in the filesystem.\n\t\t`define`, `define.min`, and `define.shim` will be mapped to their\n\t\tlocations in `lib` unless explicitly mapped elsewhere. Relative paths\n\t\tare resolved against `root`. Values can also be functions Example:\n\n\t\t\tmap: {\n\t\t\t\tjquery: './vendor/jquery.min.js',\n\t\t\t\tsession: function(id, options) {\n\t\t\t\t\t// figure out or generate the file for this user\n\t\t\t\t\treturn sessionFilename;\n\t\t\t\t}\n\t\t\t}\n\n\t* `maxAge` -- Defaults to `undefined`. Seconds the browser should cache the\n\t\tmodule code. If set, will be put in a `Cache-Control: public, max-age=`\n\t\tHTTP header.\n\t* `nowrap` Defaults to `[ 'uris.json', /\\.amd\\.js$/i ]`. If a module id\n\t\tmatches an entry in this list, it is not wrapped with a `define()`\n\t\tcall. Entries can be a string module id (`entry === id`), a regular\n\t\texpression (`exp.test(id)`) or any object with a `test` function\n\t\tproperty (`obj.test(id)`).\n\t* `root` -- Defaults to `process.cwd()`. Base path for modules in the filesystem.\n\t* `translate` Defaults to `{}`. Translate specific files into CommonJS\n\t\tmodules. Object keys may be filenames, module ids, or file extensions.\n\t\tThe functions are passed a module object, with `id`, `filename`, and\n\t\t`buffer` properties. Example:\n\n\t\t\ttranslate: {\n\t\t\t\thtml: function(module, options, next) {\n\t\t\t\t\tvar id = module.id, // String\n\t\t\t\t\t\tfilename = module.filename, // String\n\t\t\t\t\t\tcontent = module.buffer, // Buffer\n\t\t\t\t\t\t_ = require('underscore');\n\t\t\t\t\tcontent = content.toString('utf8');\n\t\t\t\t\tnext(null, 'exports.template = ' + _.template(content).source);\n\t\t\t\t}\n\t\t\t}\n\n\t\tIf they do not match any keys in this option, modules are converted from\n\t\t`Buffer` to string with `options.encoding`.\n* `modules.module(id, options?, next)` -- Generate the client-side code for\n\tthe module. `id` is a module id string. `options` are the same as for\n\t`modules.middleware()`. `next(err, result)` will be called when\n\tdone. `err` is any error that may have occured, or `null` otherwise.\n\t`result` is an object with properties `code`, which is the browser javascript\n\tas a string, and `modified`, which is a `Date` of the last modified time on\n\tthe source file.\n* `modules.modules(ids, options?, next)` -- Exactly like `modules.module` only\n\t`ids` is an array of module id strings, all of which are included in the\n\tresulting `result.code`. The `result.modified` is the most recent modified\n\ttime among all of the source files loaded.\n\n\n#### bundles\n\n\tbundles = require('modules/lib/bundles')\n\nProvides functions for bundling modules with their deep dependencies.\n\n* `bundles.bundle(ids, exclude, options?, next)` -- Generate a bundle including\n\tthe browser code for all of the modules in the `ids` array and their deep\n\tdependencies, except `exclude` and all of their deep dependencies.\n\t`ids` and `exclude` are arrays of module id strings. `options` are the\n\tsame as `modules.middleware()`. `next` is called when complete, with the\n\tsame arguments as `next` in `modules.module()`.\n* `bundles.dependencies(ids, options?, next)` -- Gets a list of `ids` and all\n\tof their deep dependencies. Modules need to be loaded in order to determine\n\ttheir dependencies, so `modules.module()` is called inside this method,\n\twith the `options` passed in. `next(err, ids)` is called when complete,\n\twith `ids` as an array of absolute module id strings.\n* `bundles.expand(ids, exclude, options?, next)` -- Gets a list just like\n\t`bundles.dependencies()`, only the ids in `exclude` and their deep\n\tdependencies are omitted from the list.\n\n\n\n## Client-Side Features\n\n * CommonJS Modules 1.1.1 implementation for in-browser use\n * `module.require` function similar to Node.js implementation\n * `require(id, callback)` for async a la require.js\n * Map module ids to arbirary uris\n\n\n\n\n## Server-Side Features\n\n * Middleware for express / connect\n * Create bundles of all the deep dependencies of a list of modules\n * Configure minification using your favorite compressor\n\n\n\n\n## Browser Support\n\n* IE 8+, Chrome, Firefox, Safari, Opera\n* IE Mobile, Chrome Mobile, Firefox Mobile, Safari Mobile, Opera Mobile\n\nBasically, bugs reported in any common browser will get fixed.\nIf you need to support IE6 or IE7, please use the last version to support them:\n[v0.3.3](https://github.com/thetalecrafter/modules/tree/v0.3.3).\n\n\n\n\n## Who and Why\n\n**modules** was written by Andy VanWagoner\n([thetalecrafter](http://github.com/thetalecrafter)).\n\nSome of the motivation for this project can be found in\n[this article](http://thetalecrafter.com/2011/09/22/commonjs-in-the-browser/).\n\n* If you like writing your modules in AMD, use\n\t[require.js](http://requirejs.org).\n* If you want the browser environment to be just like Node.js, use\n\t[browserify](http://browserify.org/).\n* If you want simple CommonJS in the browser, then **modules** is for you.\n\n","maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}],"time":{"modified":"2022-06-20T03:56:12.608Z","created":"2012-09-03T20:47:47.608Z","0.1.0":"2012-09-03T20:47:48.731Z","0.1.1":"2012-09-03T22:58:56.557Z","0.1.2":"2012-09-04T00:19:11.751Z","0.1.3":"2012-09-04T01:02:44.990Z","0.1.4":"2012-09-05T16:04:47.421Z","0.1.5":"2012-09-27T22:46:53.877Z","0.2.0":"2012-10-28T05:10:11.689Z","0.2.1":"2012-10-30T20:39:06.982Z","0.2.2":"2013-01-14T21:46:58.798Z","0.2.3":"2013-02-07T17:32:31.747Z","0.2.4":"2013-04-08T20:44:53.878Z","0.2.5":"2013-04-23T17:00:36.994Z","0.3.0":"2013-06-19T03:17:19.454Z","0.3.1":"2013-06-20T22:32:17.327Z","0.3.2":"2013-06-21T00:58:33.463Z","0.3.3":"2013-07-08T16:45:18.753Z","0.4.0":"2014-06-04T02:50:38.338Z"},"author":{"name":"Andy VanWagoner","email":"thetalecrafter@gmail.com"},"repository":{"type":"git","url":"git://github.com/thetalecrafter/modules"},"homepage":"https://github.com/thetalecrafter/modules","keywords":["module","require","commonjs","amd","dependency"],"bugs":{"url":"https://github.com/thetalecrafter/modules/issues"},"readmeFilename":"README.md"}