{"_id":"ims-lti","_rev":"42-de30718f27e117e451e5250a39080118","name":"ims-lti","description":"Module for building an LTI Tool Provider and accept LTI launch requests","dist-tags":{"latest":"3.0.2"},"versions":{"0.1.1":{"name":"ims-lti","version":"0.1.1","description":"Module for building an LTI Tool Provider and accept LTI launch requests","author":{"name":"James Rundquist","email":"james@courseshark.com"},"repository":{"type":"git","url":"https://github.com/omsmith/ims-lti.git"},"dependencies":{"coffee-script":"1.6.2"},"devDependencies":{"express":"3.0.5","mocha":"1.10.0","request":"2.21.0","redis":"0.8.3","should":"1.2.2"},"directories":{"lib":"./lib/"},"main":"./lib/index","bugs":{"url":"http://github.com/omsmith/ims-lti/issues"},"homepage":"https://github.com/omsmith/ims-lti","_id":"ims-lti@0.1.1","dist":{"shasum":"ae544fada0134ba2fc110efb624da3ee54dbd069","tarball":"https://registry.npmjs.org/ims-lti/-/ims-lti-0.1.1.tgz","integrity":"sha512-KyEWxOKZwbq75qYw5NoDN6NC7UfYj64Frl8hZ6E23ZKWoKcrB0nRORB3bU+APNL/xlP9gWcOi3x6DL1mTqHq7A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCK3XSThKCy7GYgIJXyu6F/qeyN9h7WAEja9PXBev7yvAIhAMvTBToLPu2UpmAo4DPQAlFvcXz3DooqV/l4ZS2QA1Pb"}]},"_from":".","_npmVersion":"1.3.25","_npmUser":{"name":"omsmith","email":"owen@omsmith.ca"},"maintainers":[{"name":"omsmith","email":"owen@omsmith.ca"}]},"0.1.2":{"name":"ims-lti","version":"0.1.2","description":"Module for building an LTI Tool Provider and accept LTI launch requests","author":{"name":"James Rundquist","email":"james@courseshark.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/omsmith/ims-lti.git"},"bugs":{"url":"http://github.com/omsmith/ims-lti/issues"},"main":"./lib/ims-lti","scripts":{"prepublish":"make build"},"devDependencies":{"redis":"0.8.3","should":"1.2.2","coffee-script":"~1.6.2","coffee-coverage":"~0.4.2","mocha":"~1.15.1","mocha-lcov-reporter":"0.0.1","mocha-multi":"~0.4.0","coveralls":"~2.10.0"},"homepage":"https://github.com/omsmith/ims-lti","_id":"ims-lti@0.1.2","dist":{"shasum":"13efb908eb663855921aea4522f7067f0a140f31","tarball":"https://registry.npmjs.org/ims-lti/-/ims-lti-0.1.2.tgz","integrity":"sha512-+owcwHVjo57WTiiAn3FKtpy1Q52gdFgTFvmi24sRCSINi/QFPDgdLnNF2puhqPtsCRPilh+0XJFv3O66yQVuwg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICcOUBhUcNpmjAng8r+lrg6lIAgR2GxF9t5Afya1PuPyAiB6anL0l0cMg7CaECjldB/Vi1aU64qDKwRe+o8YS0VKjw=="}]},"_from":".","_npmVersion":"1.3.25","_npmUser":{"name":"omsmith","email":"owen@omsmith.ca"},"maintainers":[{"name":"omsmith","email":"owen@omsmith.ca"}]},"0.1.3":{"name":"ims-lti","version":"0.1.3","description":"Module for building an LTI Tool Provider and accept LTI launch requests","author":{"name":"James Rundquist","email":"james@courseshark.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/omsmith/ims-lti.git"},"bugs":{"url":"http://github.com/omsmith/ims-lti/issues"},"main":"./lib/ims-lti","scripts":{"prepublish":"make build"},"devDependencies":{"redis":"0.8.3","should":"1.2.2","coffee-script":"~1.6.2","coffee-coverage":"~0.4.2","mocha":"~1.15.1","mocha-lcov-reporter":"0.0.1","mocha-multi":"~0.4.0","coveralls":"~2.10.0"},"homepage":"https://github.com/omsmith/ims-lti","_id":"ims-lti@0.1.3","dist":{"shasum":"b38a31a9014fd2570a8b6fd95ff6ac2c14413e57","tarball":"https://registry.npmjs.org/ims-lti/-/ims-lti-0.1.3.tgz","integrity":"sha512-HzH3311SV1/yNjpbvFZGP7izW4Q+hcIJ9m2D6g/GiecyzC//I4kX1UsjeWqKw+IknTNtgP2qK7zsDNuorvl78A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDLEGeHeW4ZfW/GJmsd+o1OBUNJvYMMxN7tdVg+j3UZlAiAzJkRmdTRuNhTSxDnDT8jj3kshiQ9manfUvR0y4iovJg=="}]},"_from":".","_npmVersion":"1.3.25","_npmUser":{"name":"omsmith","email":"owen@omsmith.ca"},"maintainers":[{"name":"omsmith","email":"owen@omsmith.ca"}]},"0.1.4":{"name":"ims-lti","version":"0.1.4","description":"Module for building an LTI Tool Provider and accept LTI launch requests","author":{"name":"James Rundquist","email":"james@courseshark.com"},"license":"MIT","keywords":["ims","lti","provider"],"repository":{"type":"git","url":"https://github.com/omsmith/ims-lti.git"},"bugs":{"url":"http://github.com/omsmith/ims-lti/issues"},"main":"./lib/ims-lti","scripts":{"prepublish":"make build"},"devDependencies":{"redis":"0.8.3","should":"1.2.2","coffee-script":"~1.6.2","coffee-coverage":"~0.4.2","mocha":"~1.15.1","mocha-lcov-reporter":"0.0.1","mocha-multi":"~0.4.0","coveralls":"~2.10.0"},"homepage":"https://github.com/omsmith/ims-lti","_id":"ims-lti@0.1.4","dist":{"shasum":"4a443c18c7228a64d50f59885dfb3ec77eeee8ac","tarball":"https://registry.npmjs.org/ims-lti/-/ims-lti-0.1.4.tgz","integrity":"sha512-KQL3MqYwdZk/JokIsUtqvGu2ntbSKcjjfyUkoITM+w9iwuQmMYKb9FmwqLcThyOvcHjn8wPnpNBpT8hzAHuFlQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC4kGLIsNdMe6JiOoplrGHVS5ZiC2Nn5p8ogX5xHyIl6wIgfkW2pM5bSp2rh+CSSjZLyaRE4qjTB/dAqrdp+wuye5M="}]},"_from":".","_npmVersion":"1.3.25","_npmUser":{"name":"omsmith","email":"owen@omsmith.ca"},"maintainers":[{"name":"omsmith","email":"owen@omsmith.ca"}]},"0.1.5":{"name":"ims-lti","version":"0.1.5","description":"Module for building an LTI Tool Provider and accept LTI launch requests","author":{"name":"James Rundquist","email":"james@courseshark.com"},"license":"MIT","keywords":["ims","lti","provider"],"repository":{"type":"git","url":"https://github.com/omsmith/ims-lti.git"},"bugs":{"url":"http://github.com/omsmith/ims-lti/issues"},"main":"./lib/ims-lti","scripts":{"prepublish":"make build"},"devDependencies":{"redis":"0.8.3","should":"1.2.2","coffee-script":"~1.6.2","coffee-coverage":"~0.4.2","mocha":"~1.15.1","mocha-lcov-reporter":"0.0.1","mocha-multi":"~0.4.0","coveralls":"~2.10.0"},"gitHead":"a4c340cba322da87d2ec2c2901ef30451c5e52c7","homepage":"https://github.com/omsmith/ims-lti","_id":"ims-lti@0.1.5","_shasum":"5a507963d032e2e16dec179b08b3aed0e7916ca8","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"omsmith","email":"owen@omsmith.ca"},"maintainers":[{"name":"omsmith","email":"owen@omsmith.ca"}],"dist":{"shasum":"5a507963d032e2e16dec179b08b3aed0e7916ca8","tarball":"https://registry.npmjs.org/ims-lti/-/ims-lti-0.1.5.tgz","integrity":"sha512-wEJAgpsxrpGOuAt/3qoxT8qIPHoZsDgGhuF4YhE3uXuVXA+pHDvcgEynoGO5zNLlwKpvoYdyAyGV4cx6p8yr8Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAMxT46wEivj9iaHZ3dARwiv6h6FVkJWitNWEHNwvFU2AiAn+5dAEFlVoJcZ5v2x8dxLlJ1oO9ENh1RaTEfiYEuWSA=="}]}},"0.2.0":{"name":"ims-lti","version":"0.2.0","description":"Module for building an LTI Tool Provider and accept LTI launch requests","author":{"name":"James Rundquist","email":"james@courseshark.com"},"license":"MIT","keywords":["ims","lti","provider"],"repository":{"type":"git","url":"https://github.com/omsmith/ims-lti.git"},"bugs":{"url":"http://github.com/omsmith/ims-lti/issues"},"main":"./lib/ims-lti","scripts":{"prepublish":"make build"},"devDependencies":{"redis":"0.8.3","should":"1.2.2","coffee-script":"~1.6.2","coffee-coverage":"~0.4.2","mocha":"~1.15.1","mocha-lcov-reporter":"0.0.1","mocha-multi":"~0.4.0","coveralls":"~2.10.0"},"gitHead":"60945ff23c1e65f48d6b4826dbdb2117bf47fa8b","homepage":"https://github.com/omsmith/ims-lti","_id":"ims-lti@0.2.0","_shasum":"7e68648ce5aa30b6bc05ae9b06e4a1528aac3f47","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"omsmith","email":"owen@omsmith.ca"},"maintainers":[{"name":"omsmith","email":"owen@omsmith.ca"}],"dist":{"shasum":"7e68648ce5aa30b6bc05ae9b06e4a1528aac3f47","tarball":"https://registry.npmjs.org/ims-lti/-/ims-lti-0.2.0.tgz","integrity":"sha512-VuLOdJ6xO5byWxEbKiLRESRZpU67ixBCmX8/ALwWRtwMlOIw7gld0pXjPzTVTjuMVDdUevKqObhFJQaHyM5BiQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDRcdRTIUAk9OeJzrZREM9pd5gxQp3xv4ns5uavZltniAIhALwZKjEDY0cm3X8JDibHJBFM7MWEtRwzCD3wKy+aZE1x"}]}},"0.2.1":{"name":"ims-lti","version":"0.2.1","description":"Module for building an LTI Tool Provider and accept LTI launch requests","author":{"name":"James Rundquist","email":"james@courseshark.com"},"license":"MIT","keywords":["ims","lti","provider"],"repository":{"type":"git","url":"https://github.com/omsmith/ims-lti.git"},"bugs":{"url":"http://github.com/omsmith/ims-lti/issues"},"main":"./lib/ims-lti","scripts":{"prepublish":"make build"},"devDependencies":{"redis":"0.8.3","should":"1.2.2","coffee-script":"~1.6.2","coffee-coverage":"~0.4.2","mocha":"~1.15.1","mocha-lcov-reporter":"0.0.1","mocha-multi":"~0.4.0","coveralls":"~2.10.0"},"gitHead":"8882003f55e43a56cd5573bce0316b3ec742768b","homepage":"https://github.com/omsmith/ims-lti","_id":"ims-lti@0.2.1","_shasum":"20b24e1815181184f1160e918c816c7d08f605a5","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"omsmith","email":"owen@omsmith.ca"},"maintainers":[{"name":"omsmith","email":"owen@omsmith.ca"}],"dist":{"shasum":"20b24e1815181184f1160e918c816c7d08f605a5","tarball":"https://registry.npmjs.org/ims-lti/-/ims-lti-0.2.1.tgz","integrity":"sha512-jz4H9bAsVfB51EekfeU53TyMNF2WDL0Jp76sY1nrJWYhggFx/O89bOmVWEiw3ympLq3KRqI52+Fq2M5P574uRQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAawvN6JnRjTcPgR/HbUTpfAYcd6guADZXMw1Ks9EjFVAiB5kyyzzR9PCNdqW8JIKROjKcS58rOpqfhP9hI4iWC6Qg=="}]}},"1.0.0":{"name":"ims-lti","version":"1.0.0","description":"Module for building an LTI Tool Provider and accept LTI launch requests","author":{"name":"James Rundquist","email":"james@courseshark.com"},"contributors":[{"name":"Owen Smith","email":"owen@omsmith.ca"},{"name":"David Kosub","email":"dave@davidkosub.com"}],"license":"MIT","keywords":["ims","lti","provider"],"repository":{"type":"git","url":"https://github.com/omsmith/ims-lti.git"},"bugs":{"url":"http://github.com/omsmith/ims-lti/issues"},"main":"./lib/ims-lti","scripts":{"prepublish":"make build"},"dependencies":{"xml2js":"~0.4.0","xmlbuilder":"~2.4.0","node-uuid":"~1.4.0"},"devDependencies":{"redis":"0.8.3","should":"1.2.2","coffee-script":"~1.6.2","coffee-coverage":"~0.4.2","mocha":"~1.15.1","mocha-lcov-reporter":"0.0.1","mocha-multi":"~0.4.0","coveralls":"~2.10.0"},"gitHead":"ee61ae33069dd24e8d588b9fb4e3bada9274fad7","homepage":"https://github.com/omsmith/ims-lti","_id":"ims-lti@1.0.0","_shasum":"f5803d275efa2159c9fb3739264c0858444931b7","_from":"./","_npmVersion":"1.4.27","_npmUser":{"name":"davidkosub","email":"dave@davidkosub.com"},"maintainers":[{"name":"omsmith","email":"owen@omsmith.ca"},{"name":"davidkosub","email":"dave@davidkosub.com"}],"dist":{"shasum":"f5803d275efa2159c9fb3739264c0858444931b7","tarball":"https://registry.npmjs.org/ims-lti/-/ims-lti-1.0.0.tgz","integrity":"sha512-5cDAaoTdi1q3kgkgULC4ARJSUl2SKdxrUrfKstrJ8xRBN3fpN/H9s9zXQ9nuWRqAbncfe22eXv/rqOKTHbP4Qw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjypYYNwDqgmmo1LcxZXi97ntz9PldkeYFF+SVjkCa7AIhAJawWBmJQJeY6CC5YNvkAwYf8UOTTtilOhu73+LIUYAK"}]}},"2.0.0":{"name":"ims-lti","version":"2.0.0","description":"Module for building an LTI Tool Provider and accept LTI launch requests","author":{"name":"James Rundquist","email":"james@courseshark.com"},"contributors":[{"name":"Owen Smith","email":"owen@omsmith.ca"},{"name":"David Kosub","email":"dave@davidkosub.com"}],"license":"MIT","keywords":["ims","lti","provider"],"repository":{"type":"git","url":"https://github.com/omsmith/ims-lti.git"},"bugs":{"url":"http://github.com/omsmith/ims-lti/issues"},"main":"./lib/ims-lti","scripts":{"prepublish":"make build"},"dependencies":{"xml2js":"~0.4.0","xmlbuilder":"~2.4.0","node-uuid":"~1.4.0"},"devDependencies":{"redis":"0.8.3","should":"1.2.2","coffee-script":"~1.6.2","coffee-coverage":"~0.4.2","mocha":"~1.15.1","mocha-lcov-reporter":"0.0.1","mocha-multi":"~0.4.0","coveralls":"~2.10.0"},"gitHead":"6e815e22b64996659d01ec3f3f82791036513bf4","homepage":"https://github.com/omsmith/ims-lti","_id":"ims-lti@2.0.0","_shasum":"7b097fd05591c4e410776ea77409d5c05291d299","_from":".","_npmVersion":"2.1.10","_nodeVersion":"0.11.13","_npmUser":{"name":"omsmith","email":"owen@omsmith.ca"},"maintainers":[{"name":"omsmith","email":"owen@omsmith.ca"},{"name":"davidkosub","email":"dave@davidkosub.com"}],"dist":{"shasum":"7b097fd05591c4e410776ea77409d5c05291d299","tarball":"https://registry.npmjs.org/ims-lti/-/ims-lti-2.0.0.tgz","integrity":"sha512-MBdyyAAZgjcR4OF8BG8ionqEs404tMDgF0N8tl3vfAIQDNWicccMErZ5r6+KEnXK+ypDHbclWp0bH+3ub8NlVw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB4DafIb/qiXOyksArE9+v+ZHoAhUMjADUqPuJWa4dnqAiEAsxN9mZUKfh8te5iO+5U4PNzp7t+0MgWJqJ3Pxa4SCpc="}]}},"2.0.1":{"name":"ims-lti","version":"2.0.1","description":"Module for building an LTI Tool Provider and accept LTI launch requests","author":{"name":"James Rundquist","email":"james@courseshark.com"},"contributors":[{"name":"Owen Smith","email":"owen@omsmith.ca"},{"name":"David Kosub","email":"dave@davidkosub.com"}],"license":"MIT","keywords":["ims","lti","provider"],"repository":{"type":"git","url":"https://github.com/omsmith/ims-lti.git"},"bugs":{"url":"http://github.com/omsmith/ims-lti/issues"},"main":"./lib/ims-lti","scripts":{"prepublish":"make build"},"dependencies":{"xml2js":"~0.4.0","xmlbuilder":"~2.4.0","node-uuid":"~1.4.0"},"devDependencies":{"redis":"0.8.3","should":"1.2.2","coffee-script":"~1.6.2","coffee-coverage":"~0.4.2","mocha":"~1.15.1","mocha-lcov-reporter":"0.0.1","mocha-multi":"~0.4.0","coveralls":"~2.10.0"},"gitHead":"f2725bfa1f9e893cf1458ca2c68c89b0cac3837a","homepage":"https://github.com/omsmith/ims-lti","_id":"ims-lti@2.0.1","_shasum":"8e4bba4c76899116dea088d4215af2132e786622","_from":".","_npmVersion":"2.1.14","_nodeVersion":"0.10.35","_npmUser":{"name":"davidkosub","email":"dave@davidkosub.com"},"maintainers":[{"name":"omsmith","email":"owen@omsmith.ca"},{"name":"davidkosub","email":"dave@davidkosub.com"}],"dist":{"shasum":"8e4bba4c76899116dea088d4215af2132e786622","tarball":"https://registry.npmjs.org/ims-lti/-/ims-lti-2.0.1.tgz","integrity":"sha512-r8VQ3nDOCW7Y3zCk7SA5kEcVdKRuwrTbCscDBbWITbs6m76GAx6ZQFMLNtlMfscbnYs0tXhOhPLvWmKElFTQ+g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID+3yNMuoIiDlQCuDiiuoqMhbR8+3tJ+NV+KKZrXTBhrAiEAzMuDXP56VSB084Yq9zgMtkvYWxOdXVtIBuWoXGR3IH4="}]}},"2.1.0":{"name":"ims-lti","version":"2.1.0","description":"Module for building an LTI Tool Provider and accept LTI launch requests","author":{"name":"James Rundquist","email":"james@courseshark.com"},"contributors":[{"name":"Owen Smith","email":"owen@omsmith.ca"},{"name":"David Kosub","email":"dave@davidkosub.com"}],"license":"MIT","keywords":["ims","lti","provider"],"repository":{"type":"git","url":"https://github.com/omsmith/ims-lti.git"},"bugs":{"url":"http://github.com/omsmith/ims-lti/issues"},"main":"./lib/ims-lti","scripts":{"prepublish":"make build"},"dependencies":{"xml2js":"~0.4.0","xmlbuilder":"~2.4.0","node-uuid":"~1.4.0"},"devDependencies":{"redis":"0.8.3","should":"1.2.2","coffee-script":"~1.6.2","coffee-coverage":"~0.4.2","mocha":"~1.15.1","mocha-lcov-reporter":"0.0.1","mocha-multi":"~0.4.0","coveralls":"~2.10.0"},"gitHead":"ab6d23f6b9c60bda767bf3743bd67e22d0b39a46","homepage":"https://github.com/omsmith/ims-lti","_id":"ims-lti@2.1.0","_shasum":"ec16a94c3b87cc33054f13779f69763d74515bcf","_from":".","_npmVersion":"2.1.14","_nodeVersion":"0.10.35","_npmUser":{"name":"davidkosub","email":"dave@davidkosub.com"},"maintainers":[{"name":"omsmith","email":"owen@omsmith.ca"},{"name":"davidkosub","email":"dave@davidkosub.com"}],"dist":{"shasum":"ec16a94c3b87cc33054f13779f69763d74515bcf","tarball":"https://registry.npmjs.org/ims-lti/-/ims-lti-2.1.0.tgz","integrity":"sha512-I2q7vfzDYragpNDCCicRDI4YGr52BE369ezcWEobkHTMz2nwBqofY2c0VKeo7MNs7yHcOt9zMP4YauoPT+o8WQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF0hNAO8W2ssQxZ8jK2TI6AHf2D02eljEOvUnHJtmbNwAiEAqkv8g3c9KgnudrpyTwCkgu6NzQ/yexOEOY22eJSniL8="}]}},"2.1.1":{"name":"ims-lti","version":"2.1.1","description":"Module for building an LTI Tool Provider and accept LTI launch requests","author":{"name":"James Rundquist","email":"james@courseshark.com"},"contributors":[{"name":"Owen Smith","email":"owen@omsmith.ca"},{"name":"David Kosub","email":"dave@davidkosub.com"}],"license":"MIT","keywords":["ims","lti","provider"],"repository":{"type":"git","url":"https://github.com/omsmith/ims-lti.git"},"bugs":{"url":"http://github.com/omsmith/ims-lti/issues"},"main":"./lib/ims-lti","scripts":{"prepublish":"make build"},"dependencies":{"xml2js":"~0.4.0","xmlbuilder":"~2.4.0","node-uuid":"~1.4.0"},"devDependencies":{"coffee-coverage":"^0.4.4","coffee-script":"^1.8.0","coveralls":"^2.11.2","mocha":"^2.1.0","mocha-lcov-reporter":"0.0.1","mocha-multi":"^0.6.0","redis":"^0.12.1","should":"^4.6.1"},"gitHead":"40f2b4fc598b5e3824227a456c7acf012674b0be","homepage":"https://github.com/omsmith/ims-lti","_id":"ims-lti@2.1.1","_shasum":"1f90d1507f110d07160e008ec369bd541da9efa6","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"davidkosub","email":"dave@davidkosub.com"},"maintainers":[{"name":"omsmith","email":"owen@omsmith.ca"},{"name":"davidkosub","email":"dave@davidkosub.com"}],"dist":{"shasum":"1f90d1507f110d07160e008ec369bd541da9efa6","tarball":"https://registry.npmjs.org/ims-lti/-/ims-lti-2.1.1.tgz","integrity":"sha512-a8Do0Acp52zcjguPOfQh1Y/XJuuQ8wc951aHNABnxkZrb1mDlhqlf4+bVv6tm+FIvelI2+3G3LKkrlAdz0Pe4Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGVSbCp3l9zIzU0utbe45l8qQ1WqzTGy9ORK7kS7yGQPAiEAmBslz2QbUPf4fPc9E1dY5griDjnY0OsOvorLJ2+uY88="}]}},"2.1.2":{"name":"ims-lti","version":"2.1.2","description":"Module for building an LTI Tool Provider and accept LTI launch requests","author":{"name":"James Rundquist","email":"james@courseshark.com"},"contributors":[{"name":"Owen Smith","email":"owen@omsmith.ca"},{"name":"David Kosub","email":"dave@davidkosub.com"}],"license":"MIT","keywords":["ims","lti","provider"],"repository":{"type":"git","url":"https://github.com/omsmith/ims-lti.git"},"bugs":{"url":"http://github.com/omsmith/ims-lti/issues"},"main":"./lib/ims-lti","scripts":{"prepublish":"make build"},"dependencies":{"xml2js":"~0.4.0","xmlbuilder":"~2.4.0","node-uuid":"~1.4.0"},"devDependencies":{"coffee-coverage":"^0.4.4","coffee-script":"^1.8.0","coveralls":"^2.11.2","mocha":"^2.1.0","mocha-lcov-reporter":"0.0.1","mocha-multi":"^0.6.0","redis":"^0.12.1","should":"^4.6.1"},"gitHead":"6af5c6ebef58b95af63d7d5a5d341fbe766ddb0f","homepage":"https://github.com/omsmith/ims-lti","_id":"ims-lti@2.1.2","_shasum":"6582a495e17aba7155765d9bf0a5c27f79d542a2","_from":".","_npmVersion":"2.5.1","_nodeVersion":"1.3.0","_npmUser":{"name":"omsmith","email":"owen@omsmith.ca"},"maintainers":[{"name":"omsmith","email":"owen@omsmith.ca"},{"name":"davidkosub","email":"dave@davidkosub.com"}],"dist":{"shasum":"6582a495e17aba7155765d9bf0a5c27f79d542a2","tarball":"https://registry.npmjs.org/ims-lti/-/ims-lti-2.1.2.tgz","integrity":"sha512-pz6DQFPv/IAz2o5CfBb5mCy+mJmA0bxks/3EiipeTeWZHUD3U8W/eqaOr8LcMW0ayAArx6HIbmdRwrR8nEEYQQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDq00zOgne1+VjfRuL8nvNPL7McAToMPG7PdaJnZqPC/gIhANgdMVHkVsV0vol9vY4U4LSHiSCEMDsdvAD3UsqnmFln"}]}},"2.1.3":{"name":"ims-lti","version":"2.1.3","description":"Module for building an LTI Tool Provider and accept LTI launch requests","author":{"name":"James Rundquist","email":"james@courseshark.com"},"contributors":[{"name":"Owen Smith","email":"owen@omsmith.ca"},{"name":"David Kosub","email":"dave@davidkosub.com"}],"license":"MIT","keywords":["ims","lti","provider"],"repository":{"type":"git","url":"https://github.com/omsmith/ims-lti.git"},"bugs":{"url":"http://github.com/omsmith/ims-lti/issues"},"main":"./lib/ims-lti","scripts":{"prepublish":"make build"},"dependencies":{"xml2js":"~0.4.0","xmlbuilder":"~2.4.0","node-uuid":"~1.4.0"},"devDependencies":{"coffee-coverage":"^0.4.4","coffee-script":"^1.8.0","coveralls":"^2.11.2","mocha":"^2.1.0","mocha-lcov-reporter":"0.0.1","mocha-multi":"^0.6.0","redis":"^0.12.1","should":"^4.6.1"},"gitHead":"6fb3243cee37a75d5c57ed8caed1d3f11221adfa","homepage":"https://github.com/omsmith/ims-lti","_id":"ims-lti@2.1.3","_shasum":"1cb9925af09cc31bbc36eff126b2085376062af1","_from":".","_npmVersion":"2.5.1","_nodeVersion":"0.10.36","_npmUser":{"name":"davidkosub","email":"dave@davidkosub.com"},"maintainers":[{"name":"omsmith","email":"owen@omsmith.ca"},{"name":"davidkosub","email":"dave@davidkosub.com"}],"dist":{"shasum":"1cb9925af09cc31bbc36eff126b2085376062af1","tarball":"https://registry.npmjs.org/ims-lti/-/ims-lti-2.1.3.tgz","integrity":"sha512-h6+/4bXT5KbxUZkXauVaqQcgZ92/CO6haxT4rPb75bO1LKLLiu+M7OO8QLepwa7GuX912kG+UvYrvqirzv7Fsw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC5KkdwIlSYY4Eww5WIxfOVzc07hHbj8YlpZWQ7NesihgIgQDQgSDMJ6KQm21Co0gah998sllL679k8JjEuOTM7/vM="}]}},"2.1.4":{"name":"ims-lti","version":"2.1.4","description":"Module for building an LTI Tool Provider and accept LTI launch requests","author":{"name":"James Rundquist","email":"james@courseshark.com"},"contributors":[{"name":"Owen Smith","email":"owen@omsmith.ca"},{"name":"David Kosub","email":"dave@davidkosub.com"}],"license":"MIT","keywords":["ims","lti","provider"],"repository":{"type":"git","url":"https://github.com/omsmith/ims-lti.git"},"bugs":{"url":"http://github.com/omsmith/ims-lti/issues"},"main":"./lib/ims-lti","scripts":{"prepublish":"make build"},"dependencies":{"xml2js":"~0.4.0","xmlbuilder":"~2.4.0","node-uuid":"~1.4.0"},"devDependencies":{"coffee-coverage":"^0.4.4","coffee-script":"^1.8.0","coveralls":"^2.11.2","mocha":"^2.1.0","mocha-lcov-reporter":"0.0.1","mocha-multi":"^0.6.0","redis":"^0.12.1","should":"^4.6.1"},"gitHead":"6c0cbf77ba11803eaee1fb2e97dc0438cbcac9b5","homepage":"https://github.com/omsmith/ims-lti","_id":"ims-lti@2.1.4","_shasum":"6e4c63e032c2af21394417410485c29950c2a752","_from":".","_npmVersion":"2.7.1","_nodeVersion":"1.6.2","_npmUser":{"name":"omsmith","email":"owen@omsmith.ca"},"maintainers":[{"name":"omsmith","email":"owen@omsmith.ca"},{"name":"davidkosub","email":"dave@davidkosub.com"}],"dist":{"shasum":"6e4c63e032c2af21394417410485c29950c2a752","tarball":"https://registry.npmjs.org/ims-lti/-/ims-lti-2.1.4.tgz","integrity":"sha512-punzoQ1cCgtaNryknqyswWU1txCvgLarQvnGN0gmGt1GWGmkSHy/usBbTuvAbZKT6JvUZctnB57CCXfWwBoI3Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIASjvvBbNBTlibCpOQqKm/0EP4woHy8NreEBZAO7uDRPAiEA3r9IbMk5nZaO5aeLfy3twUA84hC/Ymesu9aRIYc/SE4="}]}},"2.1.5":{"name":"ims-lti","version":"2.1.5","description":"Module for building an LTI Tool Provider and accept LTI launch requests","author":{"name":"James Rundquist","email":"james@courseshark.com"},"contributors":[{"name":"Owen Smith","email":"owen@omsmith.ca"},{"name":"David Kosub","email":"dave@davidkosub.com"}],"license":"MIT","keywords":["ims","lti","provider"],"repository":{"type":"git","url":"https://github.com/omsmith/ims-lti.git"},"bugs":{"url":"http://github.com/omsmith/ims-lti/issues"},"main":"./lib/ims-lti","scripts":{"prepublish":"make build"},"dependencies":{"xml2js":"~0.4.0","xmlbuilder":"~2.4.0","node-uuid":"~1.4.0"},"devDependencies":{"coffee-coverage":"^0.4.4","coffee-script":"^1.8.0","coveralls":"^2.11.2","mocha":"^2.1.0","mocha-lcov-reporter":"0.0.1","mocha-multi":"^0.6.0","redis":"^0.12.1","should":"^4.6.1"},"gitHead":"bd321c2e4bbda95e7f26ec2d7bfa8861bac55811","homepage":"https://github.com/omsmith/ims-lti","_id":"ims-lti@2.1.5","_shasum":"8e35fac9142ebd3d379a0b7fdb9fbc123b0cd82c","_from":".","_npmVersion":"2.7.1","_nodeVersion":"1.6.1","_npmUser":{"name":"omsmith","email":"owen@omsmith.ca"},"maintainers":[{"name":"omsmith","email":"owen@omsmith.ca"},{"name":"davidkosub","email":"dave@davidkosub.com"}],"dist":{"shasum":"8e35fac9142ebd3d379a0b7fdb9fbc123b0cd82c","tarball":"https://registry.npmjs.org/ims-lti/-/ims-lti-2.1.5.tgz","integrity":"sha512-BJ1M8ESceNKImrNB63uHJAUdoesUnJHJyLp28sGr/VQ8f9P0J7NE/vJ7aXujgwvKA27uxS84zKnp182zrs9QEg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAWAAGXAdGU9mePiXynwvbunweiiRolFiuKAqJjXln8RAiB2xltF6NSPSMT2hqjl8W2vhK/c2jWvl52S5K1MaGHEWg=="}]}},"2.1.6":{"name":"ims-lti","version":"2.1.6","description":"Module for building an LTI Tool Provider and accept LTI launch requests","author":{"name":"James Rundquist","email":"james@courseshark.com"},"contributors":[{"name":"Owen Smith","email":"owen@omsmith.ca"},{"name":"David Kosub","email":"dave@davidkosub.com"}],"license":"MIT","keywords":["ims","lti","provider"],"repository":{"type":"git","url":"git+https://github.com/omsmith/ims-lti.git"},"bugs":{"url":"http://github.com/omsmith/ims-lti/issues"},"main":"./lib/ims-lti","scripts":{"prepublish":"make build"},"dependencies":{"xml2js":"~0.4.0","xmlbuilder":"~2.4.0","node-uuid":"~1.4.0"},"devDependencies":{"coffee-coverage":"^0.4.4","coffee-script":"^1.8.0","coveralls":"^2.11.2","mocha":"^2.1.0","mocha-lcov-reporter":"0.0.1","mocha-multi":"^0.6.0","redis":"^0.12.1","should":"^4.6.1"},"gitHead":"93432b8ff8f894ab938091a328b445ee4ce3f109","homepage":"https://github.com/omsmith/ims-lti#readme","_id":"ims-lti@2.1.6","_shasum":"0e8bc1997d30e53b0f5a2176887a4f6a4692a066","_from":".","_npmVersion":"2.11.0","_nodeVersion":"2.2.1","_npmUser":{"name":"omsmith","email":"owen@omsmith.ca"},"dist":{"shasum":"0e8bc1997d30e53b0f5a2176887a4f6a4692a066","tarball":"https://registry.npmjs.org/ims-lti/-/ims-lti-2.1.6.tgz","integrity":"sha512-Io1Sf6IDw5N+jZJP32AwpkVVtmpDyW0l6M3jzFohE7TOn87KFkKEuXZbmoPOjICYmHpJ6aUr8uYjYQCz/+aHmQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCnFGdHxtNLefgTFXrFCaPnbAlruaGVUbSJvEImb6AbEgIgQ5zpD8cK/z+KLgcg6xcHm0c6vy0fWAX5BzQV39zJ66g="}]},"maintainers":[{"name":"omsmith","email":"owen@omsmith.ca"},{"name":"davidkosub","email":"dave@davidkosub.com"}]},"3.0.0":{"name":"ims-lti","version":"3.0.0","description":"Module for building an LTI Tool Provider and accept LTI launch requests","author":{"name":"James Rundquist","email":"james@courseshark.com"},"contributors":[{"name":"Owen Smith","email":"owen@omsmith.ca"},{"name":"David Kosub","email":"dave@davidkosub.com"}],"license":"MIT","keywords":["ims","lti","provider"],"repository":{"type":"git","url":"git+https://github.com/omsmith/ims-lti.git"},"bugs":{"url":"http://github.com/omsmith/ims-lti/issues"},"main":"./lib/ims-lti","scripts":{"prepublish":"make build"},"dependencies":{"xml2js":"~0.4.0","xmlbuilder":"~2.4.0","node-uuid":"~1.4.0"},"devDependencies":{"coffee-coverage":"^0.4.4","coffee-script":"^1.8.0","coveralls":"^2.11.2","mocha":"^2.1.0","mocha-lcov-reporter":"0.0.1","mocha-multi":"^0.6.0","redis":"^0.12.1","should":"^4.6.1"},"gitHead":"1028d1f4ed414f3e8ae448ea3cc3beb9167a083b","homepage":"https://github.com/omsmith/ims-lti#readme","_id":"ims-lti@3.0.0","_shasum":"11b22d0f32f3b543b3e33440ee9e6e76bc90764b","_from":".","_npmVersion":"2.11.0","_nodeVersion":"2.2.1","_npmUser":{"name":"omsmith","email":"owen@omsmith.ca"},"dist":{"shasum":"11b22d0f32f3b543b3e33440ee9e6e76bc90764b","tarball":"https://registry.npmjs.org/ims-lti/-/ims-lti-3.0.0.tgz","integrity":"sha512-qtK24rDJfiQJOA/czPRLybT5UQkVjzwoy0cg39pNhFkX3pPR4/fN0ptYOyoP5OPI6DoecKcKyVAffZK3N2sTHQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID4YgOrWnJEmh9NdIDjx7jSsPuyZNNAbTUVPGduXMu3SAiEAqHdpnBOOwepYGFgtuUqXgu3sqjJm97Mc/bmxjpoeMU0="}]},"maintainers":[{"name":"omsmith","email":"owen@omsmith.ca"},{"name":"davidkosub","email":"dave@davidkosub.com"}]},"3.0.1":{"name":"ims-lti","version":"3.0.1","description":"Module for building an LTI Tool Provider and accept LTI launch requests","author":{"name":"James Rundquist","email":"james@courseshark.com"},"contributors":[{"name":"Owen Smith","email":"owen@omsmith.ca"},{"name":"David Kosub","email":"dave@davidkosub.com"}],"license":"MIT","keywords":["ims","lti","provider"],"repository":{"type":"git","url":"git+https://github.com/omsmith/ims-lti.git"},"bugs":{"url":"http://github.com/omsmith/ims-lti/issues"},"main":"./lib/ims-lti","scripts":{"prepublish":"make build"},"dependencies":{"xml2js":"~0.4.0","xmlbuilder":"~2.4.0","node-uuid":"~1.4.0"},"devDependencies":{"coffee-coverage":"^0.4.4","coffee-script":"^1.8.0","coveralls":"^2.11.2","mocha":"^2.1.0","mocha-lcov-reporter":"0.0.1","mocha-multi":"^0.6.0","redis":"^0.12.1","should":"^4.6.1"},"gitHead":"c0a14cdf5c517574bfd54312d2fa5704e34cd70d","homepage":"https://github.com/omsmith/ims-lti#readme","_id":"ims-lti@3.0.1","_shasum":"5b809c3364c293549f2875482bddec41c4e1d5f9","_from":".","_npmVersion":"2.11.0","_nodeVersion":"2.2.1","_npmUser":{"name":"omsmith","email":"owen@omsmith.ca"},"dist":{"shasum":"5b809c3364c293549f2875482bddec41c4e1d5f9","tarball":"https://registry.npmjs.org/ims-lti/-/ims-lti-3.0.1.tgz","integrity":"sha512-PFVssVIWh6CG7Ukmj2aYgPsKBgLX4zfeD7GDjMvWRgGr5EeiCvWLeCjhRZnykGJVun6HaOn7rQjfslIJw1qpFQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDv2qGEaTbzYg/eUFCdMagZzelqWDNY+wKFP25JUpEedAIhAM1dk4Gnn8XdUM1Pc3GTHf8Rav8ko5hddkrejtAs+U+i"}]},"maintainers":[{"name":"omsmith","email":"owen@omsmith.ca"},{"name":"davidkosub","email":"dave@davidkosub.com"}]},"3.0.2":{"name":"ims-lti","version":"3.0.2","description":"Module for building an LTI Tool Provider and accept LTI launch requests","author":{"name":"James Rundquist","email":"james@courseshark.com"},"contributors":[{"name":"Owen Smith","email":"owen@omsmith.ca"},{"name":"David Kosub","email":"dave@davidkosub.com"}],"license":"MIT","keywords":["ims","lti","provider"],"repository":{"type":"git","url":"git+https://github.com/omsmith/ims-lti.git"},"bugs":{"url":"http://github.com/omsmith/ims-lti/issues"},"main":"./lib/ims-lti","scripts":{"prepublish":"make build"},"dependencies":{"xml2js":"~0.4.0","xmlbuilder":"~2.4.0","node-uuid":"~1.4.0"},"devDependencies":{"coffee-coverage":"^0.4.4","coffee-script":"^1.8.0","coveralls":"^2.11.2","mocha":"^2.1.0","mocha-lcov-reporter":"0.0.1","mocha-multi":"^0.6.0","redis":"^0.12.1","should":"^4.6.1"},"gitHead":"a00afa5736b5e7fe4d2dfc8a844ccd8f49c9248c","homepage":"https://github.com/omsmith/ims-lti#readme","_id":"ims-lti@3.0.2","_shasum":"8a7381c622ab813be3bf18a5aa24ebca8cb2860b","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.1","_npmUser":{"name":"omsmith","email":"owen@omsmith.ca"},"dist":{"shasum":"8a7381c622ab813be3bf18a5aa24ebca8cb2860b","tarball":"https://registry.npmjs.org/ims-lti/-/ims-lti-3.0.2.tgz","integrity":"sha512-Z+ynlE/+7kensmntd0G5uh2B9h9/IIl2zFb1aFAaBxTj2e5FoJA+0Sd/7g9hiKoVArZ3CY6lvvvTtjRPCK5a/g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDIpxVq0sb3LO8lGhFTGEbB0UO5Za923mgL1C1MolSbVwIhAKAHr8mV5pwSrB32dNkwjzwEq1hGAVm9bRzmv6dzyLgP"}]},"maintainers":[{"name":"omsmith","email":"owen@omsmith.ca"},{"name":"davidkosub","email":"dave@davidkosub.com"}]}},"readme":"# ims-lti\n\n[![Build Status](https://travis-ci.org/omsmith/ims-lti.svg?branch=master)](https://travis-ci.org/omsmith/ims-lti) [![Coverage Status](https://coveralls.io/repos/omsmith/ims-lti/badge.png)](https://coveralls.io/r/omsmith/ims-lti)\n\nThis is a nodejs library used to help create Tool Providers for the\n[IMS LTI standard](http://www.imsglobal.org/lti/index.html). Tool Consumer implmentation is left as an excersise to the reader :P\n\n## Install\n```\nnpm install ims-lti --save\n```\n\nTo require the library into your project\n```coffeescript\nrequire 'ims-lti'\n```\n\n## Supported LTI Versions\n\n* 1.0 - [Implementation Guide](http://www.imsglobal.org/lti/blti/bltiv1p0/ltiBLTIimgv1p0.html)\n* 1.1 - [Implementation Guide](http://www.imsglobal.org/LTI/v1p1/ltiIMGv1p1.html)\n* 1.1.1 - [Implementation Guide](http://www.imsglobal.org/LTI/v1p1p1/ltiIMGv1p1p1.html)\n\n## Usage\n\nThe LTI standard won't be covered here, but it would be good to familiarize yourself with the specs. [LTI documentation](http://www.imsglobal.org/lti/index.html)\n\nThis library doesn't help you manage or distribute the consumer keys and secrets. The POST\nparameters will contain the `oauth_consumer_key` and your application should use that to look up the consumer secret from your own datastore.\n\nThis library offers a few interfaces to use for managing the OAuth nonces to make sure the same nonce\nisn't used twice with the same timestamp. [Read the LTI documentation on OAuth](http://www.imsglobal.org/LTI/v1p1pd/ltiIMGv1p1pd.html#_Toc309649687). They will be covered below.\n\n### Setting up a Tool Provider (TP)\nAs a TP your app will receive a POST request with [LTI launch data](http://www.imsglobal.org/lti/v1p1pd/ltiIMGv1p1pd.html#_Toc309649684) that will be signed with OAuth using a key/secret that both the TP and Tool Consumer (TC) share. This is all covered in the [LTI security model](http://www.imsglobal.org/lti/v1p1pd/ltiIMGv1p1pd.html#_Toc309649685)\n\nOnce you find the `oauth_consumer_secret` based on the `oauth_consumer_key` in the POST request, you can initialize a `Provider` object with them and a few other optional parameters:\n\n```coffeescript\nlti = require 'ims-lti'\n\nprovider = new lti.Provider consumer_key, consumer_secret, [nonce_store=MemoryStore], [signature_method=HMAC_SHA1]\n```\n\nOnce the provider has been initialized, a reqest object can be validated against it. During validation, OAuth signatures are checked against the passed consumer_secret and signautre_method ( HMAC_SHA1 assumed ). isValid returns true if the request is an lti request and is properly signed.\n\n```coffeescript\nprovider.valid_request req, (err, isValid) ->\n  # isValid = Boolean | always false if err\n  # err = Error object with method descibing error if err, null if no error\n```\n\nAfter validating the reqest, the provider object both stores the requests parameters (excluding oauth parameters) and provides convinience accessors to common onces including `provider.student`, `provider.ta`, `provider.username`, and more. All request data can be accessed through `provider.body` in an effort to namespace the values.\n\nCurrently there is not an emplementation for posting back to the Tool Consumer, although there is a boolean accessor `provider.outcome_service` that will return true if the TC will accept a POSTback.\n\n### Nonce Stores\n\n`ims-lti` does not standardize the way in which the OAuth nonce/timestamp is to be stored. Since it is a crutial part of OAuth security, this library implements an Interface to allow the user to implement their own nonce-stores.\n\n#### Nonce Interface\nAll custom Nonce stores should extend the NonceStore class and implment `isNew` and `setUsed`\n```coffeescript\nclass NonceStore\n  isNew:   (nonce,timestamp,callback)=>\n    # Sets any new nonce to used\n  setUsed: (nonce,timestamp,callback)=>\n```\n\nTwo nonce stores have been implemented for convinience.\n\n#### MemoryNonceStore\nThe default nonce store (if none is specified) is the Memory Nonce Store. This store simply keeps an array of nocne/timestamp keys. Timestamps must be valid within a 5 minute grace period.\n\n#### RedisNonceStore\nA superior nonce store is the RedisNonceStore. This store requires a secondary input into the constructor, a redis-client. The redis client is used to store the nonce keys and set them to expire within a set amount of time (default 5 minutes). A RedisNonceStore is initialized like:\n\n```coffeescript\nRedisNonceStore = require '../lib/redis-nonce-store'\nclient          = require('redis').createClient()\nstore           = new RedisNonceStore('consumer_key', client)\n\nprovider = new lti.Provider consumer_key, consumer_secret, store\n```\n\n### Outcomes Extension\n\nThe outcomes feature is part of the LTI 1.1 specification and is new to ims-lti 1.0. All of the behind-the-scenes work necessary to get the ball rolling with it is already implemented for you, all you need to do is submit grades.\n\n```coffeescript\nprovider = new lti.Provider consumer_key, consumer_secret\n\nprovider.valid_request req, (err, is_valid) ->\n  # Check if the request is valid and if the outcomes service exists.\n  if (!is_valid || !provider.outcome_service) return false\n\n  # Check if the outcome service supports the result data extension using the\n  # text format. Available formats include text and url.\n  console.log provider.outcome_service.supports_result_data('text')\n\n  # Replace accepts a value between 0 and 1.\n  provider.outcome_service.send_replace_result .5, (err, result) ->\n    console.log result # True or false\n\n  provider.outcome_service.send_read_result (err, result) ->\n    console.log result # Value of the result already submitted from this embed\n\n  provider.outcome_service.send_delete_result (err, result) ->\n    console.log result # True or false\n\n  provider.outcome_service.send_replace_result_with_text .5, 'Hello, world!', (err, result) ->\n    console.log result # True or false\n\n  provider.outcome_service.send_replace_result_with_url .5, 'https://google.com', (err, result) ->\n    console.log result # True or false\n```\n\n### Content Extension\n\nThe content extension is an extension supported by most LMS platforms. It provides LTI providers a way to send content back to the LMS in the form of urls, images, files, oembeds, iframes, and even lti launch urls.\n\n```coffeescript\nprovider = new lti.Provider consumer_key, consumer_secret\n\nprovider.valid_request req, (err, is_valid) ->\n  #check if the request is valid and if the content extension is loaded.\n  if (!is_valid || !provider.ext_content) return false\n\n  provider.ext_content.has_return_type 'file' # Does the consumer support files\n  provider.ext_content.has_file_extension 'jpg' # Does the consumer support jpg\n\n  # All send requests take a response object as the first parameter. How the\n  # response object is manipulated can be overrided by replacing\n  # lti.Extensions.Content.redirector with your own function that accepts two\n  # parameters, the response object and the url to redirect to.\n  provider.ext_content.send_file res, file_url, text, content_mime_type\n\n  provider.ext_content.send_iframe res, iframe_url, title_attribute, width, height\n\n  provider.ext_content.send_image_url res, image_url, text, width, height\n\n  provider.ext_content.send_lti_launch_url res, launch_url, title_attribute, text\n\n  provider.ext_content.send_oembed res, oembed_url, endpoint\n\n  provider.ext_content.send_url res, hyperlink_url, text, title_attribute, target_attribute\n```\n\n## Running Tests\nTo run the test suite first installing the dependencies:\n```\nnpm install\nmake test\n```\n","maintainers":[{"name":"omsmith","email":"owen@omsmith.ca"},{"name":"davidkosub","email":"dave@davidkosub.com"}],"time":{"modified":"2022-06-19T00:56:38.442Z","created":"2014-04-15T16:48:29.930Z","0.1.1":"2014-04-15T16:48:29.930Z","0.1.2":"2014-04-17T00:17:33.549Z","0.1.3":"2014-04-17T04:42:05.612Z","0.1.4":"2014-04-22T00:52:12.144Z","0.1.5":"2014-08-24T02:21:24.896Z","0.2.0":"2014-08-24T02:40:29.608Z","0.2.1":"2014-10-04T17:01:36.005Z","1.0.0":"2014-10-22T20:47:30.615Z","2.0.0":"2014-12-08T03:57:42.962Z","2.0.1":"2015-01-07T02:43:00.230Z","2.1.0":"2015-01-10T04:44:37.794Z","2.1.1":"2015-01-28T16:18:27.492Z","2.1.2":"2015-02-28T17:13:31.349Z","2.1.3":"2015-03-13T17:26:21.632Z","2.1.4":"2015-03-30T14:24:11.718Z","2.1.5":"2015-04-01T01:01:46.073Z","2.1.6":"2015-06-20T22:09:35.324Z","3.0.0":"2015-06-20T22:16:18.196Z","3.0.1":"2015-07-15T22:59:47.586Z","3.0.2":"2015-10-27T21:28:16.223Z"},"homepage":"https://github.com/omsmith/ims-lti#readme","repository":{"type":"git","url":"git+https://github.com/omsmith/ims-lti.git"},"author":{"name":"James Rundquist","email":"james@courseshark.com"},"bugs":{"url":"http://github.com/omsmith/ims-lti/issues"},"readmeFilename":"README.md","license":"MIT","keywords":["ims","lti","provider"],"contributors":[{"name":"Owen Smith","email":"owen@omsmith.ca"},{"name":"David Kosub","email":"dave@davidkosub.com"}],"users":{"lsloan":true,"cycomachead":true,"jacobmischka":true,"willwm":true,"willwolffmyren":true}}