{"_id":"ul-api","_rev":"109-e1d77a5f2e6531af9f7d57a4bda23ec4","name":"ul-api","description":"The Unified Listing API and tests.","dist-tags":{"latest":"1.0.0","dev":"1.0.0-dev.20220209T123355Z.8554d99.main"},"versions":{"1.0.0-dev.20170109T155555Z.2b75b3a":{"name":"ul-api","version":"1.0.0-dev.20170109T155555Z.2b75b3a","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.0-dev.20161219T173834Z.5ecfb7b","gpii-express":"1.0.1-dev.20170106T131203Z.a048e61","gpii-express-user":"1.0.0-dev.20170106T160645Z.999394e","gpii-handlebars":"1.0.0-dev.20170106T133859Z.ea8de03","gpii-json-schema":"1.0.0-dev.20161219T192320Z.03caf53","gpii-location-bar-relay":"1.0.0-dev.20170106T133727Z.180e737","gpii-pouchdb-lucene":"0.1.0-dev.20170106T133425Z.4d44038","gpii-sort":"git://github.com/the-t-in-rtf/gpii-sort.git#3508dc67e9d84311249192102c22829931315b20","handlebars":"4.0.5","infusion":"2.0.0-dev.20161219T170555Z.5778f7e","marked":"0.3.6","pagedown":"1.1.0"},"devDependencies":{"ajv":"4.6.0","eslint":"3.12.2","eslint-config-fluid":"1.0.0","fluid-grunt-eslint":"18.1.2","foundation-sites":"6.2.4-rc1","gpii-pouchdb":"1.0.1-dev.20161219T174439Z.2373866","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","jquery":"2.1.4","json-schema-ref-parser":"3.1.2","jsonlint":"1.6.2","jsonpointer.js":"0.4.0","kettle":"1.3.0","moment":"2.15.0","node-jqunit":"1.1.4"},"gitHead":"2b75b3aee50b091d15765bf52ae6894a607e6b25","_id":"ul-api@1.0.0-dev.20170109T155555Z.2b75b3a","_shasum":"d4548477eaa250626e4569b98ee6cb7c602cc5b7","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.1","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"d4548477eaa250626e4569b98ee6cb7c602cc5b7","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20170109T155555Z.2b75b3a.tgz","integrity":"sha512-6qoGKG9big95sChttX2hsBKPPEfcRG89X2XeGQahe9rQss1opFiw42V39Cq8LADIsfFx/uny/rkCrts2mObTOg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCwMwQHs1Cfo209SVRPaQsbaTQy+15PnmsNGiqiWaZ4jQIhAKzoSBDedS/qVaWeNSHnz5fHwvpZiXmjjaDUooSZvvD2"}]},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/ul-api-1.0.0-dev.20170109T155555Z.2b75b3a.tgz_1483977371986_0.21923500392585993"},"directories":{}},"1.0.0-dev.20170109T161536Z.ddb379d":{"name":"ul-api","version":"1.0.0-dev.20170109T161536Z.ddb379d","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.0-dev.20161219T173834Z.5ecfb7b","gpii-express":"1.0.1-dev.20170106T131203Z.a048e61","gpii-express-user":"1.0.0-dev.20170106T160645Z.999394e","gpii-handlebars":"1.0.0-dev.20170106T133859Z.ea8de03","gpii-json-schema":"1.0.0-dev.20161219T192320Z.03caf53","gpii-location-bar-relay":"1.0.0-dev.20170106T133727Z.180e737","gpii-pouchdb-lucene":"0.1.0-dev.20170106T133425Z.4d44038","gpii-sort":"1.0.0-dev.20160630T152357Z.3508dc6","handlebars":"4.0.5","infusion":"2.0.0-dev.20161219T170555Z.5778f7e","marked":"0.3.6","pagedown":"1.1.0"},"devDependencies":{"ajv":"4.6.0","eslint":"3.12.2","eslint-config-fluid":"1.0.0","fluid-grunt-eslint":"18.1.2","foundation-sites":"6.2.4-rc1","gpii-pouchdb":"1.0.1-dev.20161219T174439Z.2373866","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","jquery":"2.1.4","json-schema-ref-parser":"3.1.2","jsonlint":"1.6.2","jsonpointer.js":"0.4.0","kettle":"1.3.0","moment":"2.15.0","node-jqunit":"1.1.4"},"gitHead":"ddb379dbfe5a9ebe24432babe977cb52971a1cf8","_id":"ul-api@1.0.0-dev.20170109T161536Z.ddb379d","_shasum":"bb800b32eb5a2350869550142f0e16171ffb6f42","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.1","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"bb800b32eb5a2350869550142f0e16171ffb6f42","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20170109T161536Z.ddb379d.tgz","integrity":"sha512-ruiLxzof6NsVNGaw1lo5lE4S3peetodBxRfsNZStBCp9G+dvWLjJU03nU+VXAk61n3KYxL5C796/pPUOJjyCZw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCHy/nCc7Akn2N2IKi4ikq8OAQYnxpJu/Rk3CHGTjc+MQIhAILMtbjpY8/KwFZQByRuqqmWZl42b9le+3YGFN0Y0/Vb"}]},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/ul-api-1.0.0-dev.20170109T161536Z.ddb379d.tgz_1483978548249_0.8881264559458941"},"directories":{}},"1.0.0-dev.20170111T100624Z.737e17c":{"name":"ul-api","version":"1.0.0-dev.20170111T100624Z.737e17c","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.0-dev.20161219T173834Z.5ecfb7b","gpii-express":"1.0.1-dev.20170106T131203Z.a048e61","gpii-express-user":"1.0.0-dev.20170106T160645Z.999394e","gpii-handlebars":"1.0.0-dev.20170106T133859Z.ea8de03","gpii-json-schema":"1.0.0-dev.20161219T192320Z.03caf53","gpii-location-bar-relay":"1.0.0-dev.20170106T133727Z.180e737","gpii-pouchdb-lucene":"0.1.0-dev.20170106T133425Z.4d44038","gpii-sort":"1.0.0-dev.20160630T152357Z.3508dc6","handlebars":"4.0.5","infusion":"2.0.0-dev.20161219T170555Z.5778f7e","marked":"0.3.6","pagedown":"1.1.0"},"devDependencies":{"ajv":"4.6.0","eslint":"3.12.2","eslint-config-fluid":"1.0.0","fluid-grunt-eslint":"18.1.2","foundation-sites":"6.2.4-rc1","gpii-pouchdb":"1.0.1-dev.20161219T174439Z.2373866","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","jquery":"2.1.4","json-schema-ref-parser":"3.1.2","jsonlint":"1.6.2","jsonpointer.js":"0.4.0","kettle":"1.3.0","moment":"2.15.0","node-jqunit":"1.1.4"},"gitHead":"737e17c1d77126275b19b233b5e7e1d7ac01440b","_id":"ul-api@1.0.0-dev.20170111T100624Z.737e17c","_shasum":"5be9cadc93fa2dcca3225e94b96660959b062958","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.1","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"5be9cadc93fa2dcca3225e94b96660959b062958","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20170111T100624Z.737e17c.tgz","integrity":"sha512-NhEfi3i0hIdBVE6OzmgcqyTv3iVudUgHVfMSmvdUVc7mVN40NPMBQCmZgUmH606q8+RzEbUYOcLwdwLAl6L9Ug==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDtSUbF3CPtvx83TTzi5RLmWyCok8PrQxqYxsSD74uhCQIgUrxNi9XQNbwSBVI0Pz/BDBuz8culiPAzIeYt2gUKPF8="}]},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/ul-api-1.0.0-dev.20170111T100624Z.737e17c.tgz_1484132770909_0.9888105248101056"},"directories":{}},"1.0.0-dev.20170111T152413Z.ea6cbba":{"name":"ul-api","version":"1.0.0-dev.20170111T152413Z.ea6cbba","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.0-dev.20161219T173834Z.5ecfb7b","gpii-express":"1.0.1-dev.20170106T131203Z.a048e61","gpii-express-user":"1.0.0-dev.20170106T160645Z.999394e","gpii-handlebars":"1.0.0-dev.20170106T133859Z.ea8de03","gpii-json-schema":"1.0.0-dev.20161219T192320Z.03caf53","gpii-location-bar-relay":"1.0.0-dev.20170106T133727Z.180e737","gpii-pouchdb-lucene":"0.1.0-dev.20170106T133425Z.4d44038","gpii-sort":"1.0.0-dev.20160630T152357Z.3508dc6","handlebars":"4.0.5","infusion":"2.0.0-dev.20161219T170555Z.5778f7e","marked":"0.3.6","pagedown":"1.1.0"},"devDependencies":{"ajv":"4.6.0","eslint":"3.12.2","eslint-config-fluid":"1.0.0","fluid-grunt-eslint":"18.1.2","foundation-sites":"6.2.4-rc1","gpii-pouchdb":"1.0.1-dev.20161219T174439Z.2373866","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","jquery":"2.1.4","json-schema-ref-parser":"3.1.2","jsonlint":"1.6.2","jsonpointer.js":"0.4.0","kettle":"1.3.0","moment":"2.15.0","node-jqunit":"1.1.4"},"gitHead":"ea6cbba57c3f0c22596302d4ce9495de559def35","_id":"ul-api@1.0.0-dev.20170111T152413Z.ea6cbba","_shasum":"82914d4a23c0e010d9a20f3da028f107b86855b0","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.1","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"82914d4a23c0e010d9a20f3da028f107b86855b0","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20170111T152413Z.ea6cbba.tgz","integrity":"sha512-oG9+rHr/sUE0QNhfiHn2TVXpCJIqYFNciG1+CBNt7z1bo41X2lQ4OvzvPzamcySZb6o6YCi3BnQiNagrgVPJDg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCrdyrWzXKVWUFUwWyot4NJRpo0orr0QWiT9Sr+BuzL/gIhAJtzMFdyQfTIb+4b5wwTdCNuW6UljX9fSrUetF5Pbylc"}]},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/ul-api-1.0.0-dev.20170111T152413Z.ea6cbba.tgz_1484148315467_0.2939232268836349"},"directories":{}},"1.0.0-dev.20170119T101817Z.e738ed4":{"name":"ul-api","version":"1.0.0-dev.20170119T101817Z.e738ed4","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.0-dev.20161219T173834Z.5ecfb7b","gpii-express":"1.0.1-dev.20170106T131203Z.a048e61","gpii-express-user":"1.0.0-dev.20170106T160645Z.999394e","gpii-handlebars":"1.0.0-dev.20170106T133859Z.ea8de03","gpii-json-schema":"1.0.0-dev.20161219T192320Z.03caf53","gpii-location-bar-relay":"1.0.0-dev.20170106T133727Z.180e737","gpii-pouchdb-lucene":"0.1.0-dev.20170106T133425Z.4d44038","gpii-sort":"1.0.0-dev.20160630T152357Z.3508dc6","handlebars":"4.0.5","infusion":"2.0.0-dev.20161219T170555Z.5778f7e","marked":"0.3.6","mkdirp":"0.5.1","ncp":"2.0.0","pagedown":"1.1.0","sharp":"0.17.0"},"devDependencies":{"ajv":"4.6.0","eslint":"3.12.2","eslint-config-fluid":"1.0.0","fluid-grunt-eslint":"18.1.2","foundation-sites":"6.2.4-rc1","gpii-pouchdb":"1.0.1-dev.20161219T174439Z.2373866","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","jquery":"2.1.4","json-schema-ref-parser":"3.1.2","jsonlint":"1.6.2","jsonpointer.js":"0.4.0","kettle":"1.3.0","moment":"2.15.0","node-jqunit":"1.1.4","request":"2.79.0"},"gitHead":"e738ed49251aa637f8d6aeb0264b1a1db3592d53","_id":"ul-api@1.0.0-dev.20170119T101817Z.e738ed4","_shasum":"f4ea12c22fc3c3e53574e268e7b48ab31fea4d84","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.1","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"f4ea12c22fc3c3e53574e268e7b48ab31fea4d84","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20170119T101817Z.e738ed4.tgz","integrity":"sha512-ppCCrEwy4HyXliCC+3L6XydoDQo/pejBRT84y1ks+9AW/lvhzty6Nmumxil1KhQugn/j4GCJ3O7DEvGv2c0Pqw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDVuHc+RWnkRvM8KMuNVWnuiViz1kHH3bHyaesSasCshAIgARtXO77ZFS9/T9/mHHBcDrM6hgrFFKFuuKokNfO3els="}]},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/ul-api-1.0.0-dev.20170119T101817Z.e738ed4.tgz_1484821270061_0.45350642409175634"},"directories":{}},"1.0.0-dev.20170119T103418Z.ce9cbdd":{"name":"ul-api","version":"1.0.0-dev.20170119T103418Z.ce9cbdd","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.0-dev.20161219T173834Z.5ecfb7b","gpii-express":"1.0.1-dev.20170106T131203Z.a048e61","gpii-express-user":"1.0.0-dev.20170106T160645Z.999394e","gpii-handlebars":"1.0.0-dev.20170106T133859Z.ea8de03","gpii-json-schema":"1.0.0-dev.20161219T192320Z.03caf53","gpii-location-bar-relay":"1.0.0-dev.20170106T133727Z.180e737","gpii-pouchdb-lucene":"0.1.0-dev.20170106T133425Z.4d44038","gpii-sort":"1.0.0-dev.20160630T152357Z.3508dc6","handlebars":"4.0.5","infusion":"2.0.0-dev.20161219T170555Z.5778f7e","marked":"0.3.6","mkdirp":"0.5.1","ncp":"2.0.0","pagedown":"1.1.0","sharp":"0.17.0"},"devDependencies":{"ajv":"4.6.0","eslint":"3.12.2","eslint-config-fluid":"1.0.0","fluid-grunt-eslint":"18.1.2","foundation-sites":"6.2.4-rc1","gpii-pouchdb":"1.0.1-dev.20161219T174439Z.2373866","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","jquery":"2.1.4","json-schema-ref-parser":"3.1.2","jsonlint":"1.6.2","jsonpointer.js":"0.4.0","kettle":"1.3.0","moment":"2.15.0","node-jqunit":"1.1.4","request":"2.79.0"},"gitHead":"ce9cbddbcb74827c89ddb42229dcac4edc083898","_id":"ul-api@1.0.0-dev.20170119T103418Z.ce9cbdd","_shasum":"2affad8245efb80ec4f1b8a3f0e04cfe01080081","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.1","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"2affad8245efb80ec4f1b8a3f0e04cfe01080081","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20170119T103418Z.ce9cbdd.tgz","integrity":"sha512-2hsFXkQaqv7Ka5LO9WpF+mUWDKWT4Hmmmqpm2wG8xnHSWUse3bRhAppqJ/dgabuRvlNWbZx5xjGxTA23zypzWA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEzMDUbGcAk65037huG8SC/FR8GT1TYKNkx1RCZtr1dMAiEAkmkz2qL0Y7aBjGpeEWSy8Q0dP2GF3Y9h59wLmHna5JU="}]},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/ul-api-1.0.0-dev.20170119T103418Z.ce9cbdd.tgz_1484822081198_0.760701839113608"},"directories":{}},"1.0.0-dev.20170119T122420Z.0aa070b":{"name":"ul-api","version":"1.0.0-dev.20170119T122420Z.0aa070b","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.0-dev.20161219T173834Z.5ecfb7b","gpii-express":"1.0.1-dev.20170106T131203Z.a048e61","gpii-express-user":"1.0.0-dev.20170106T160645Z.999394e","gpii-handlebars":"1.0.0-dev.20170119T113843Z.6e17ea6","gpii-json-schema":"1.0.0-dev.20161219T192320Z.03caf53","gpii-location-bar-relay":"1.0.0-dev.20170106T133727Z.180e737","gpii-pouchdb-lucene":"0.1.0-dev.20170106T133425Z.4d44038","gpii-sort":"1.0.0-dev.20160630T152357Z.3508dc6","handlebars":"4.0.5","infusion":"2.0.0-dev.20161219T170555Z.5778f7e","marked":"0.3.6","mkdirp":"0.5.1","ncp":"2.0.0","pagedown":"1.1.0","sharp":"0.17.0"},"devDependencies":{"ajv":"4.6.0","eslint":"3.12.2","eslint-config-fluid":"1.0.0","fluid-grunt-eslint":"18.1.2","foundation-sites":"6.2.4-rc1","gpii-pouchdb":"1.0.1-dev.20161219T174439Z.2373866","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","jquery":"2.1.4","json-schema-ref-parser":"3.1.2","jsonlint":"1.6.2","jsonpointer.js":"0.4.0","kettle":"1.3.0","moment":"2.15.0","node-jqunit":"1.1.4","request":"2.79.0"},"gitHead":"0aa070b56db1a0b5a23478a1fadfaab1bc15ccff","_id":"ul-api@1.0.0-dev.20170119T122420Z.0aa070b","_shasum":"7789bec0bc80e345325544e8993594235b94ecef","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.1","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"7789bec0bc80e345325544e8993594235b94ecef","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20170119T122420Z.0aa070b.tgz","integrity":"sha512-HIbg98D88xG0LSCDuCQ3PXvYa7jakTo41j9sNOm6fyI9XRD1IEvd4aJ6OdsM3A5YcVmd+p/jwb7JtILo+AFR4A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCYtpcOXsyt5ZBZayoAwEjQBPz1vHO2Tp4YLt6NC6T6NgIgDBmmtR7tqnJ+beU/Tvr0blX2Zq3GSzfEis3jEK7Un04="}]},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/ul-api-1.0.0-dev.20170119T122420Z.0aa070b.tgz_1484828670858_0.8324556106235832"},"directories":{}},"1.0.0-dev.20170119T144457Z.46d11d7":{"name":"ul-api","version":"1.0.0-dev.20170119T144457Z.46d11d7","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.0-dev.20161219T173834Z.5ecfb7b","gpii-express":"1.0.1-dev.20170106T131203Z.a048e61","gpii-express-user":"1.0.0-dev.20170106T160645Z.999394e","gpii-handlebars":"1.0.0-dev.20170119T113843Z.6e17ea6","gpii-json-schema":"1.0.0-dev.20161219T192320Z.03caf53","gpii-location-bar-relay":"1.0.0-dev.20170106T133727Z.180e737","gpii-pouchdb-lucene":"0.1.0-dev.20170106T133425Z.4d44038","gpii-sort":"1.0.0-dev.20160630T152357Z.3508dc6","handlebars":"4.0.5","infusion":"2.0.0-dev.20161219T170555Z.5778f7e","marked":"0.3.6","mkdirp":"0.5.1","ncp":"2.0.0","pagedown":"1.1.0","sharp":"0.17.0"},"devDependencies":{"ajv":"4.6.0","eslint":"3.12.2","eslint-config-fluid":"1.0.0","fluid-grunt-eslint":"18.1.2","foundation-sites":"6.2.4-rc1","gpii-pouchdb":"1.0.1-dev.20161219T174439Z.2373866","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","jquery":"2.1.4","json-schema-ref-parser":"3.1.2","jsonlint":"1.6.2","jsonpointer.js":"0.4.0","kettle":"1.3.0","moment":"2.15.0","node-jqunit":"1.1.4","request":"2.79.0"},"gitHead":"46d11d78944e9fa76bb0c8564cca304c00ada0bb","_id":"ul-api@1.0.0-dev.20170119T144457Z.46d11d7","_shasum":"728e56900b3a781d8a476c809270eea215ef2671","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.1","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"728e56900b3a781d8a476c809270eea215ef2671","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20170119T144457Z.46d11d7.tgz","integrity":"sha512-VLO/xsRntGkW6o9yeBIL/VyqqgR6fSAkbbL8y8r0ZBqmcdOdAp6E1Jb2giQqKQPRbZEMPEtDkNX/YH8i4JZTYQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDqW+5v4gfmCOKcUxdPiFCmAjbWm+RrjX2O1/k+sV0ZlAiEAvkJaei+DK4OrPnxsOfoXJ8IBPA3vEsCccuu9mxfmAmY="}]},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/ul-api-1.0.0-dev.20170119T144457Z.46d11d7.tgz_1484837111147_0.6362434751354158"},"directories":{}},"1.0.0-dev.20170120T153831Z.db3964d":{"name":"ul-api","version":"1.0.0-dev.20170120T153831Z.db3964d","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.0-dev.20161219T173834Z.5ecfb7b","gpii-express":"1.0.1-dev.20170106T131203Z.a048e61","gpii-express-user":"1.0.0-dev.20170106T160645Z.999394e","gpii-handlebars":"1.0.0-dev.20170119T113843Z.6e17ea6","gpii-json-schema":"1.0.0-dev.20161219T192320Z.03caf53","gpii-location-bar-relay":"1.0.0-dev.20170106T133727Z.180e737","gpii-pouchdb-lucene":"0.1.0-dev.20170106T133425Z.4d44038","gpii-sort":"1.0.0-dev.20160630T152357Z.3508dc6","handlebars":"4.0.5","infusion":"2.0.0-dev.20161219T170555Z.5778f7e","marked":"0.3.6","mkdirp":"0.5.1","ncp":"2.0.0","pagedown":"1.1.0","sharp":"0.17.1"},"devDependencies":{"ajv":"4.6.0","eslint":"3.12.2","eslint-config-fluid":"1.0.0","fluid-grunt-eslint":"18.1.2","foundation-sites":"6.2.4-rc1","gpii-pouchdb":"1.0.1-dev.20161219T174439Z.2373866","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","jquery":"2.1.4","json-schema-ref-parser":"3.1.2","jsonlint":"1.6.2","jsonpointer.js":"0.4.0","kettle":"1.3.0","moment":"2.15.0","node-jqunit":"1.1.4","request":"2.79.0"},"gitHead":"db3964d7b4472150e0a58a2a2a8cf50850ed4f96","_id":"ul-api@1.0.0-dev.20170120T153831Z.db3964d","_shasum":"8fc71cf8ed087142cab805ed6c9424454446ea79","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.1","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"8fc71cf8ed087142cab805ed6c9424454446ea79","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20170120T153831Z.db3964d.tgz","integrity":"sha512-oWjAG/VLSD3ATGJWGl6yAoHz7fur/DdoUvPU/07VXeQbUVimqWK/8Gi80XQtddSmr/134p2xrElNLZD0f18AOw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBrTw7tLTr92uUZCH/mBZPo28Vq+IvNTXIBve24GW4iKAiEA+x/z1LB+jgGIMCRGU9sd10nGyzXtrdIwqts/I+cOTFc="}]},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/ul-api-1.0.0-dev.20170120T153831Z.db3964d.tgz_1484926726728_0.34228285937570035"},"directories":{}},"1.0.0-dev.20170123T105730Z.8029fac":{"name":"ul-api","version":"1.0.0-dev.20170123T105730Z.8029fac","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.0-dev.20161219T173834Z.5ecfb7b","gpii-express":"1.0.1-dev.20170106T131203Z.a048e61","gpii-express-user":"1.0.0-dev.20170106T160645Z.999394e","gpii-handlebars":"1.0.0-dev.20170119T113843Z.6e17ea6","gpii-json-schema":"1.0.0-dev.20161219T192320Z.03caf53","gpii-location-bar-relay":"1.0.0-dev.20170106T133727Z.180e737","gpii-pouchdb-lucene":"0.1.0-dev.20170106T133425Z.4d44038","gpii-sort":"1.0.0-dev.20160630T152357Z.3508dc6","infusion":"2.0.0-dev.20161219T170555Z.5778f7e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.17.1"},"devDependencies":{"eslint":"3.12.2","eslint-config-fluid":"1.0.0","fluid-grunt-eslint":"18.1.2","foundation-sites":"6.2.4-rc1","gpii-pouchdb":"1.0.1-dev.20161219T174439Z.2373866","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","jquery":"2.1.4","kettle":"1.3.0","node-jqunit":"1.1.4","request":"2.79.0"},"gitHead":"8029fac7ba3e1b67490b0a0925241e1fa3c8f453","_id":"ul-api@1.0.0-dev.20170123T105730Z.8029fac","_shasum":"c55d98a613a566bd2f63cb880c7c5ab567719968","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.1","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"c55d98a613a566bd2f63cb880c7c5ab567719968","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20170123T105730Z.8029fac.tgz","integrity":"sha512-7mBBRqkmjXd/Oknm+6Y1f0tUb26JUclAvcFK+rHfOyP3XUWDb8QBf3hImj4nHTJOvgdFDMcY+b14SUOsQTILaA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCRJV259Jd4kLtaNIXLYqYszyHCnOep+V3vdepg3+DdXwIgIDtyoQ5BdYvxcIgZmNQ5DOW2Q9xKzY4T1hEbwsUjYrQ="}]},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/ul-api-1.0.0-dev.20170123T105730Z.8029fac.tgz_1485169066551_0.6372764180414379"},"directories":{}},"1.0.0-dev.20170123T110030Z.df2fc3d":{"name":"ul-api","version":"1.0.0-dev.20170123T110030Z.df2fc3d","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.0-dev.20161219T173834Z.5ecfb7b","gpii-express":"1.0.1-dev.20170106T131203Z.a048e61","gpii-express-user":"1.0.0-dev.20170106T160645Z.999394e","gpii-handlebars":"1.0.0-dev.20170119T113843Z.6e17ea6","gpii-json-schema":"1.0.0-dev.20161219T192320Z.03caf53","gpii-location-bar-relay":"1.0.0-dev.20170106T133727Z.180e737","gpii-pouchdb-lucene":"0.1.0-dev.20170106T133425Z.4d44038","gpii-sort":"1.0.0-dev.20160630T152357Z.3508dc6","infusion":"2.0.0-dev.20161219T170555Z.5778f7e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.17.1"},"devDependencies":{"eslint":"3.12.2","eslint-config-fluid":"1.0.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.1-dev.20161219T174439Z.2373866","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.3.0","node-jqunit":"1.1.4","request":"2.79.0"},"gitHead":"df2fc3d2c777a303043e580dc2c9b1fa86b2ef5f","_id":"ul-api@1.0.0-dev.20170123T110030Z.df2fc3d","_shasum":"0d664a48a8302a8ac02d6510ac9a91ff7e5a983f","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.1","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"0d664a48a8302a8ac02d6510ac9a91ff7e5a983f","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20170123T110030Z.df2fc3d.tgz","integrity":"sha512-AOQDd14MMEX/r/ENlnOUeVdiVbQib5whHDgWSFf5cnxpoAjq2I1H12na1FvJ1hHLyckfyNYEd0/ckfE9fbuuPA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHsWwx9ZtsEWPyrRHz4Rz6vcQuzYjIplj+kxs6l2xUmFAiAH7MZkKvGAg+NrIcOiCHmqvHfrrOJ0Wye8Fgk6ug8bsw=="}]},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/ul-api-1.0.0-dev.20170123T110030Z.df2fc3d.tgz_1485169247351_0.9444957391824573"},"directories":{}},"1.0.0-dev.20170123T141254Z.2801782":{"name":"ul-api","version":"1.0.0-dev.20170123T141254Z.2801782","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.0-dev.20161219T173834Z.5ecfb7b","gpii-express":"1.0.1-dev.20170106T131203Z.a048e61","gpii-express-user":"1.0.0-dev.20170123T140829Z.93d6266","gpii-handlebars":"1.0.0-dev.20170119T113843Z.6e17ea6","gpii-json-schema":"1.0.0-dev.20170123T134724Z.95059c1","gpii-location-bar-relay":"1.0.0-dev.20170106T133727Z.180e737","gpii-pouchdb-lucene":"0.1.0-dev.20170106T133425Z.4d44038","gpii-sort":"1.0.0-dev.20160630T152357Z.3508dc6","infusion":"2.0.0-dev.20161219T170555Z.5778f7e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.17.1"},"devDependencies":{"eslint":"3.12.2","eslint-config-fluid":"1.0.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.1-dev.20161219T174439Z.2373866","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.3.0","node-jqunit":"1.1.4","request":"2.79.0"},"gitHead":"280178277108262d098cf8dc4d69a2c37249567e","_id":"ul-api@1.0.0-dev.20170123T141254Z.2801782","_shasum":"e42fa247f86daa4208b2286ad6c85b0b9fbb2627","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.1","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"e42fa247f86daa4208b2286ad6c85b0b9fbb2627","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20170123T141254Z.2801782.tgz","integrity":"sha512-3lnArkpZLJe8Wsio5PgpJkwH0rtlEcH8Oww6k1olkggzMva6WpCTFUYAr6kOWaomUeJjoKaBm9fVuXrNYHdDWg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFtDOLUJmD+3ljrGjSEZrM/ufbPxS677DJdGSCKbWnf4AiAuxXezn0tfBgt75gQfsD9kAqPWyEMn/qHhEfyF+MlvSQ=="}]},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/ul-api-1.0.0-dev.20170123T141254Z.2801782.tgz_1485180784804_0.8626617514528334"},"directories":{}},"1.0.0-dev.20170125T095600Z.f3b04a2":{"name":"ul-api","version":"1.0.0-dev.20170125T095600Z.f3b04a2","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.0-dev.20161219T173834Z.5ecfb7b","gpii-express":"1.0.1-dev.20170106T131203Z.a048e61","gpii-express-user":"1.0.0-dev.20170123T140829Z.93d6266","gpii-handlebars":"1.0.0-dev.20170119T113843Z.6e17ea6","gpii-json-schema":"1.0.0-dev.20170123T134724Z.95059c1","gpii-location-bar-relay":"1.0.0-dev.20170106T133727Z.180e737","gpii-pouchdb-lucene":"0.1.0-dev.20170106T133425Z.4d44038","gpii-sort":"1.0.0-dev.20160630T152357Z.3508dc6","infusion":"2.0.0-dev.20161219T170555Z.5778f7e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.17.1"},"devDependencies":{"eslint":"3.12.2","eslint-config-fluid":"1.0.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.1-dev.20161219T174439Z.2373866","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.3.0","node-jqunit":"1.1.4","request":"2.79.0"},"gitHead":"f3b04a2dc037006bf192ba5733e765cc1403c770","_id":"ul-api@1.0.0-dev.20170125T095600Z.f3b04a2","_shasum":"820d72da4312728731afb9fbc02e565a4da944a0","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.1","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"820d72da4312728731afb9fbc02e565a4da944a0","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20170125T095600Z.f3b04a2.tgz","integrity":"sha512-lPAQjcb8qfEB7LmWjOH5PpcZtpgcrAAVYK2IFgi3qy/6gg4JBqF6WuLBK7vT4R8iCSFRKd/gjY0eCf7r/Kn/5g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG1ELrA1Hepk19oV0778VkYo83IIhNu/qroT6Z/3GJKUAiBThAK2rvlieDyj6WCnLkZ8hYm+b/SBQ2ifxsrhLGX3Xw=="}]},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/ul-api-1.0.0-dev.20170125T095600Z.f3b04a2.tgz_1485338177611_0.666350974701345"},"directories":{}},"1.0.0-dev.20170125T105653Z.f7afe86":{"name":"ul-api","version":"1.0.0-dev.20170125T105653Z.f7afe86","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.0-dev.20161219T173834Z.5ecfb7b","gpii-express":"1.0.1-dev.20170106T131203Z.a048e61","gpii-express-user":"1.0.0-dev.20170123T140829Z.93d6266","gpii-handlebars":"1.0.0-dev.20170119T113843Z.6e17ea6","gpii-json-schema":"1.0.0-dev.20170123T134724Z.95059c1","gpii-location-bar-relay":"1.0.0-dev.20170106T133727Z.180e737","gpii-pouchdb-lucene":"0.1.0-dev.20170106T133425Z.4d44038","gpii-sort":"1.0.0-dev.20160630T152357Z.3508dc6","infusion":"2.0.0-dev.20161219T170555Z.5778f7e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.17.1"},"devDependencies":{"eslint":"3.12.2","eslint-config-fluid":"1.0.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.1-dev.20161219T174439Z.2373866","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.3.0","node-jqunit":"1.1.4","request":"2.79.0"},"gitHead":"f7afe86185f37e8da8583672e43faa4542a6485d","_id":"ul-api@1.0.0-dev.20170125T105653Z.f7afe86","_shasum":"3d0d2af6dbace3b4fb8e777cd1ff8171e9895346","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.1","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"3d0d2af6dbace3b4fb8e777cd1ff8171e9895346","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20170125T105653Z.f7afe86.tgz","integrity":"sha512-8n4FaZfPux70sPH2xVFHn9tTs3ammSQ5vpt/jYslw7Y22BqE68dFTogq9iHGLeMGaGU5j9qbBWsPsYjcjnY20w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDZehu1lnLNKiQeZKMb9thqToAIS01V9rMGc/QW3KgbEwIhAOS+3crz1bAttpdR5U4FrxhFas/ru2ROB9aGc1agDMl6"}]},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/ul-api-1.0.0-dev.20170125T105653Z.f7afe86.tgz_1485341914369_0.7656877869740129"},"directories":{}},"1.0.0-dev.20170125T151251Z.a3b0763":{"name":"ul-api","version":"1.0.0-dev.20170125T151251Z.a3b0763","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.0-dev.20161219T173834Z.5ecfb7b","gpii-express":"1.0.1-dev.20170106T131203Z.a048e61","gpii-express-user":"1.0.0-dev.20170123T140829Z.93d6266","gpii-handlebars":"1.0.0-dev.20170119T113843Z.6e17ea6","gpii-json-schema":"1.0.0-dev.20170123T134724Z.95059c1","gpii-location-bar-relay":"1.0.0-dev.20170106T133727Z.180e737","gpii-pouchdb-lucene":"0.1.0-dev.20170106T133425Z.4d44038","gpii-sort":"1.0.0-dev.20160630T152357Z.3508dc6","infusion":"2.0.0-dev.20161219T170555Z.5778f7e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.17.1"},"devDependencies":{"eslint":"3.12.2","eslint-config-fluid":"1.0.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.1-dev.20161219T174439Z.2373866","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.3.0","node-jqunit":"1.1.4","request":"2.79.0"},"gitHead":"a3b0763dff23023307c1f7dbab2edff0698891f1","_id":"ul-api@1.0.0-dev.20170125T151251Z.a3b0763","_shasum":"8b7fe2272f871a4a0ca0ec1e599beed8a48082fe","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.1","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"8b7fe2272f871a4a0ca0ec1e599beed8a48082fe","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20170125T151251Z.a3b0763.tgz","integrity":"sha512-Ko44/xUqAreTEWXlAuUdJzJimDWjF/SJgrNCykQC38u6uSHnxE0K/AVkVkrcLJJsla8BMfPv9hW3ZeIeZeerJw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD6vm8U/B+h/LW2Xk3yGE7gydBwrwJ7FJM72DT2Spo6gwIgabIWcgovkumO0cPSSWL9bMz/JgXW7u+H6bgASy++qYU="}]},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/ul-api-1.0.0-dev.20170125T151251Z.a3b0763.tgz_1485361034003_0.5398170894477516"},"directories":{}},"1.0.0-dev.20170127T153126Z.7c3221e":{"name":"ul-api","version":"1.0.0-dev.20170127T153126Z.7c3221e","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.0-dev.20170127T144054Z.54a5ef2","gpii-express":"1.0.1-dev.20170127T142027Z.d7dabd6","gpii-express-user":"1.0.0-dev.20170123T140829Z.93d6266","gpii-handlebars":"1.0.0-dev.20170127T145319Z.2c39da4","gpii-json-schema":"1.0.0-dev.20170127T145847Z.8dbab26","gpii-location-bar-relay":"1.0.0-dev.20170127T144935Z.0e36251","gpii-pouchdb-lucene":"0.1.0-dev.20170127T145759Z.612ff0f","gpii-sort":"1.0.0-dev.20170127T144010Z.d340240","infusion":"3.0.0-dev.20170127T130413Z.103de6e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.17.1"},"devDependencies":{"eslint":"3.14.1","eslint-config-fluid":"1.1.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.1-dev.20161219T174439Z.2373866","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.3.1","node-jqunit":"1.1.4","request":"2.79.0"},"gitHead":"7c3221efe42aa81e2972926beebc059a68e7f0da","_id":"ul-api@1.0.0-dev.20170127T153126Z.7c3221e","_shasum":"08b6ae9b0b8d2591a526f8ca87a5ca10637ba2cf","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.1","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"08b6ae9b0b8d2591a526f8ca87a5ca10637ba2cf","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20170127T153126Z.7c3221e.tgz","integrity":"sha512-NLuabFumHv1dVCP7iwXLUjNnmrkxWg0vkCB6MMS55hbXpmc7GPd10uZJNL3kpDa4EuDk4koJiNsrvonwF/gW9A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDZSY3bO9cZdzao7v6ns0ZjUMSWed478Ns/wYHptyH8kAiEA7llplOdnpNYA0jiYHxAKS7hhigRGzvXbv7LQjbn6wjw="}]},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/ul-api-1.0.0-dev.20170127T153126Z.7c3221e.tgz_1485531101620_0.45400532986968756"},"directories":{}},"1.0.0-dev.20170127T161614Z.aa5ea79":{"name":"ul-api","version":"1.0.0-dev.20170127T161614Z.aa5ea79","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.0-dev.20170127T144054Z.54a5ef2","gpii-express":"1.0.2","gpii-express-user":"1.0.0-dev.20170127T161422Z.9aa9bcb","gpii-handlebars":"1.0.0-dev.20170127T160953Z.4d15347","gpii-json-schema":"1.0.0-dev.20170127T161115Z.f5942e0","gpii-location-bar-relay":"1.0.0-dev.20170127T160848Z.774e8e7","gpii-pouchdb-lucene":"0.1.0-dev.20170127T145759Z.612ff0f","gpii-sort":"1.0.0-dev.20170127T144010Z.d340240","infusion":"3.0.0-dev.20170127T130413Z.103de6e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.17.1"},"devDependencies":{"eslint":"3.14.1","eslint-config-fluid":"1.1.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.1-dev.20170127T160305Z.627b5f7","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.3.1","node-jqunit":"1.1.4","request":"2.79.0"},"gitHead":"aa5ea79b22bdeb2582c9a066760a531e28967b1f","_id":"ul-api@1.0.0-dev.20170127T161614Z.aa5ea79","_shasum":"e0efc667b38ab10e95767b5465c83f17ec51942b","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.1","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"e0efc667b38ab10e95767b5465c83f17ec51942b","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20170127T161614Z.aa5ea79.tgz","integrity":"sha512-hYa6wIl0qcAkLAOYCqOgAVle2Vc3kCNBRBIKF39Jwe1P9EApEeYCLPNCl2Ka2kFa0HdW5tZ0whj3wwkSaSVprw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCMatL3B3RtjOoamgLz/iuxtaIqJ/+tiYWoTs2sXUgtsQIhAKfdjl01Fe5nJsRjaeo6aLgQQVsrbsm+ObK003ojazGZ"}]},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/ul-api-1.0.0-dev.20170127T161614Z.aa5ea79.tgz_1485533787644_0.39037810801528394"},"directories":{}},"1.0.0-dev.20170301T101845Z.1011c62":{"name":"ul-api","version":"1.0.0-dev.20170301T101845Z.1011c62","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.0-dev.20170127T144054Z.54a5ef2","gpii-express":"1.0.2","gpii-express-user":"1.0.0-dev.20170127T161422Z.9aa9bcb","gpii-handlebars":"1.0.0-dev.20170127T160953Z.4d15347","gpii-json-schema":"1.0.0-dev.20170127T161115Z.f5942e0","gpii-location-bar-relay":"1.0.0-dev.20170127T160848Z.774e8e7","gpii-pouchdb-lucene":"0.1.0-dev.20170127T145759Z.612ff0f","gpii-sort":"1.0.0-dev.20170127T144010Z.d340240","infusion":"3.0.0-dev.20170127T130413Z.103de6e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.17.1"},"devDependencies":{"eslint":"3.14.1","eslint-config-fluid":"1.1.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.1-dev.20170127T160305Z.627b5f7","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.3.1","node-jqunit":"1.1.4","request":"2.79.0"},"gitHead":"1011c62ef6992f8ec2de3e230c18fb5e6a7aac6e","_id":"ul-api@1.0.0-dev.20170301T101845Z.1011c62","_shasum":"22bc174a9b2d0460b3af6e3d7925877d28ee1020","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.1","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"22bc174a9b2d0460b3af6e3d7925877d28ee1020","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20170301T101845Z.1011c62.tgz","integrity":"sha512-wjahg1lccPduYppDMX7khCXL3ZkI7iaEG29Ml+rib7blSCG3Frc/CmDWP9wr7e8RQihvpy8hcXVMg89DdLNzSQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJUxfhbVkDdMMn0AnqPFRabAbwlXmfem4F+7ELGDNF4gIhAKsPvrcIxNpk6BpQxR+NR22V38DMHN7O5W3ANl5o2LY9"}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/ul-api-1.0.0-dev.20170301T101845Z.1011c62.tgz_1488363551832_0.44959654472768307"},"directories":{}},"1.0.0-dev.20170301T102557Z.605e11a":{"name":"ul-api","version":"1.0.0-dev.20170301T102557Z.605e11a","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.0-dev.20170127T144054Z.54a5ef2","gpii-express":"1.0.2","gpii-express-user":"1.0.0-dev.20170127T161422Z.9aa9bcb","gpii-handlebars":"1.0.0-dev.20170127T160953Z.4d15347","gpii-json-schema":"1.0.0-dev.20170127T161115Z.f5942e0","gpii-location-bar-relay":"1.0.0-dev.20170127T160848Z.774e8e7","gpii-pouchdb-lucene":"0.1.0-dev.20170127T145759Z.612ff0f","gpii-sort":"1.0.0-dev.20170127T144010Z.d340240","infusion":"3.0.0-dev.20170127T130413Z.103de6e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.17.1"},"devDependencies":{"eslint":"3.14.1","eslint-config-fluid":"1.1.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.1-dev.20170127T160305Z.627b5f7","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.3.1","node-jqunit":"1.1.4","request":"2.79.0"},"gitHead":"605e11afae92b240dce997760cd96baff4e306b0","_id":"ul-api@1.0.0-dev.20170301T102557Z.605e11a","_shasum":"ca71dd725e491edb311abf75df7dd06bf81a0e70","_from":".","_npmVersion":"4.1.2","_nodeVersion":"6.9.1","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"ca71dd725e491edb311abf75df7dd06bf81a0e70","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20170301T102557Z.605e11a.tgz","integrity":"sha512-CjifC7s8V+TkNpHhDbkijXzgJetLzK9vTtf86pREeH3st6t/I0n2V/BJL0hu/vnhrgCLkFr2kWUDwxD82VLs9w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGg/jOAjZpS+lmCc0NoKI89ET7shJbA0+qi09tLpShfGAiAjSZpV/QRBrMoV7BtSH4k+Q8pJZUrJfrBrFaR+WI2XpA=="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/ul-api-1.0.0-dev.20170301T102557Z.605e11a.tgz_1488363982313_0.1465153202880174"},"directories":{}},"1.0.0-dev.20170524T084332Z.7b224c5":{"name":"ul-api","version":"1.0.0-dev.20170524T084332Z.7b224c5","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.3-dev.20170505T070144Z.9dc2d8c","gpii-express":"1.0.7","gpii-express-user":"1.0.0-dev.20170420T094715Z.667e69a","gpii-handlebars":"1.0.1","gpii-json-schema":"1.0.1","gpii-location-bar-relay":"1.0.1","gpii-pouchdb-lucene":"0.1.0-dev.20170523T095210Z.7508cd5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20170127T130413Z.103de6e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.17.3"},"devDependencies":{"eslint":"3.19.0","eslint-config-fluid":"1.1.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.3-dev.20170504T114846Z.9f83c96","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.5.0","node-jqunit":"1.1.4","request":"2.81.0"},"gitHead":"7b224c5474e63de04719304567168d54adca9dd1","_id":"ul-api@1.0.0-dev.20170524T084332Z.7b224c5","_shasum":"b8bb5f4a661356e32d143fdb233709939c7a41e1","_from":".","_npmVersion":"4.2.0","_nodeVersion":"6.10.3","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"b8bb5f4a661356e32d143fdb233709939c7a41e1","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20170524T084332Z.7b224c5.tgz","integrity":"sha512-6fTLNcoVs7CP6i9cgfZBoy92uoZQiJEjQz4YnMBBMV8IKOUSqmTopein6b7AlBILFs0jql00Hj0FnN6nmSm6gg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCb0LSohVtt3O9LdQyX2wqHJyupm6pag2d9JqqAtxMJjQIgep4rU8OMAlCrYZZzVCj1UxpKvzBdY8p1crZgHqj53kI="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api-1.0.0-dev.20170524T084332Z.7b224c5.tgz_1495615441588_0.5907886316999793"},"directories":{}},"1.0.0-dev.20170607T074645Z.620ec36":{"name":"ul-api","version":"1.0.0-dev.20170607T074645Z.620ec36","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.3-dev.20170505T070144Z.9dc2d8c","gpii-express":"1.0.7","gpii-express-user":"1.0.0-dev.20170420T094715Z.667e69a","gpii-handlebars":"1.0.1","gpii-json-schema":"1.0.1","gpii-location-bar-relay":"1.0.1","gpii-pouchdb-lucene":"0.1.0-dev.20170523T095210Z.7508cd5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20170127T130413Z.103de6e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.17.3"},"devDependencies":{"eslint":"3.19.0","eslint-config-fluid":"1.1.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.3-dev.20170504T114846Z.9f83c96","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.5.0","node-jqunit":"1.1.4","request":"2.81.0"},"gitHead":"620ec36b4d67c7f5906957e9b21183c0a5f810e1","_id":"ul-api@1.0.0-dev.20170607T074645Z.620ec36","_npmVersion":"5.0.1","_nodeVersion":"6.10.3","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"integrity":"sha512-QNsqAX/UECLlbFdMzwzTTsZTf7K81507L6vV8qRNlWw8FeGC5XBcA/kvKwHUjwNWohczyBeuzkNxd0/qvbjWfg==","shasum":"c1b0687d150bb06024305021a6ad005eb93d7d15","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20170607T074645Z.620ec36.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBRNOPpyojAp1gM2wU4ljjEpfgzCV7TOKMBhNLqaUh1MAiEAkYUj78DuCawwE2Fm6xsprw2vqGCELHpUYx+XAFkPZpA="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api-1.0.0-dev.20170607T074645Z.620ec36.tgz_1496821621112_0.3744276084471494"},"directories":{}},"1.0.0-dev.20170608T121153Z.0f7693c":{"name":"ul-api","version":"1.0.0-dev.20170608T121153Z.0f7693c","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.3-dev.20170505T070144Z.9dc2d8c","gpii-express":"1.0.7","gpii-express-user":"1.0.0-dev.20170420T094715Z.667e69a","gpii-handlebars":"1.0.1","gpii-json-schema":"1.0.1","gpii-location-bar-relay":"1.0.1","gpii-pouchdb-lucene":"0.1.0-dev.20170523T095210Z.7508cd5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20170127T130413Z.103de6e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.18.1"},"devDependencies":{"eslint":"3.19.0","eslint-config-fluid":"1.1.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.3-dev.20170504T114846Z.9f83c96","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.5.0","node-jqunit":"1.1.4","request":"2.81.0"},"gitHead":"0f7693c1177db58501bc323aee51bb463bfccd76","_id":"ul-api@1.0.0-dev.20170608T121153Z.0f7693c","_shasum":"95f47f7c7435804181a3dbb20b690f4aa5fab08e","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"95f47f7c7435804181a3dbb20b690f4aa5fab08e","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20170608T121153Z.0f7693c.tgz","integrity":"sha512-32w7qGddXCRiEyMk7nSUdjVr2Q40qlfTOZ6uZuxnYPB4qttzmbTtT7qnRAKjH5L7nHwTmfrF5bBeam6x/rQa+w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID0wRtVaxvmMkS6l0aRBUMejKuwkv2xw7NWSgQQzw9OfAiA83WBNdbZ52gPYfDAhkLbkQ3lX01HJX5QqMu//i/IzdA=="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api-1.0.0-dev.20170608T121153Z.0f7693c.tgz_1496923929196_0.33959839469753206"},"directories":{}},"1.0.0-dev.20170620T095321Z.3fed193":{"name":"ul-api","version":"1.0.0-dev.20170620T095321Z.3fed193","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.3-dev.20170505T070144Z.9dc2d8c","gpii-express":"1.0.7","gpii-express-user":"1.0.0-dev.20170420T094715Z.667e69a","gpii-handlebars":"1.0.1","gpii-json-schema":"1.0.1","gpii-location-bar-relay":"1.0.1","gpii-pouchdb-lucene":"0.1.0-dev.20170523T095210Z.7508cd5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20170127T130413Z.103de6e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.18.1"},"devDependencies":{"eslint":"3.19.0","eslint-config-fluid":"1.1.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.3-dev.20170504T114846Z.9f83c96","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.5.0","node-jqunit":"1.1.4","request":"2.81.0"},"gitHead":"3fed1930598e775c1a766ab336fd8fb7703431db","_id":"ul-api@1.0.0-dev.20170620T095321Z.3fed193","_shasum":"85c825101d08b66fb3522693a0cedb414a899078","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"85c825101d08b66fb3522693a0cedb414a899078","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20170620T095321Z.3fed193.tgz","integrity":"sha512-HB9uq5siuG6JftsSVtUCtS+SFZlBnS04heSngfF+gtbdVVcm2YXxKovmfBCPV+7eqZV1GGOEYe+bTaRNi0LOLg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDS4IKKxdpqNOZWWZRiT/n/IxIGRzGL30zGf5zQqJw3+AIgFIuqRZKcVYzP8i4Ck/zs0AQFQbloAdW3yUYugG+BWIk="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api-1.0.0-dev.20170620T095321Z.3fed193.tgz_1497952416709_0.5137613995466381"},"directories":{}},"1.0.0-dev.20170629T123140Z.2d40cdb":{"name":"ul-api","version":"1.0.0-dev.20170629T123140Z.2d40cdb","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.3-dev.20170505T070144Z.9dc2d8c","gpii-express":"1.0.7","gpii-express-user":"1.0.0-dev.20170420T094715Z.667e69a","gpii-handlebars":"1.0.1","gpii-json-schema":"1.0.1","gpii-location-bar-relay":"1.0.1","gpii-pouchdb-lucene":"0.1.0-dev.20170523T095210Z.7508cd5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20170127T130413Z.103de6e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.18.1"},"devDependencies":{"eslint":"3.19.0","eslint-config-fluid":"1.1.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.3-dev.20170504T114846Z.9f83c96","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.5.0","node-jqunit":"1.1.4","request":"2.81.0"},"gitHead":"2d40cdbc72741646c2a6c12af2aacc9e17583d1d","_id":"ul-api@1.0.0-dev.20170629T123140Z.2d40cdb","_shasum":"1c8ff24d896f34dcf7148c8829162958a5bddb77","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"1c8ff24d896f34dcf7148c8829162958a5bddb77","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20170629T123140Z.2d40cdb.tgz","integrity":"sha512-1yD+4W4ve8Af/w99aIlwdAn4ar+el+0TpE8x1VtHb1alhpesm3us7uQs7HO4XMuq0idsjJIO0d1O6DVnPeZ8cA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDb12fWuELBIKfnwU9qTwtpje3NKVB7ZakWnC5GjN2DoAIgCqDJGTFmka5UNyDjNTyk2Mmg/EiS+uG/8U9O4Ow2QoU="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api-1.0.0-dev.20170629T123140Z.2d40cdb.tgz_1498739523426_0.5516069873701781"},"directories":{}},"1.0.0-dev.20170713T101703Z.e971e19":{"name":"ul-api","version":"1.0.0-dev.20170713T101703Z.e971e19","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.3-dev.20170505T070144Z.9dc2d8c","gpii-express":"1.0.7","gpii-express-user":"1.0.0-dev.20170420T094715Z.667e69a","gpii-handlebars":"1.0.1","gpii-json-schema":"1.0.1","gpii-location-bar-relay":"1.0.1","gpii-pouchdb-lucene":"0.1.0-dev.20170523T095210Z.7508cd5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20170127T130413Z.103de6e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.18.1"},"devDependencies":{"eslint":"3.19.0","eslint-config-fluid":"1.1.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.3-dev.20170504T114846Z.9f83c96","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.5.0","node-jqunit":"1.1.4","request":"2.81.0"},"gitHead":"e971e198b9e6d1a3e8369111b3bfd9c011fa3f13","_id":"ul-api@1.0.0-dev.20170713T101703Z.e971e19","_shasum":"8cb82fbfe50bafec85f230d00ee6918458fa8fed","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"8cb82fbfe50bafec85f230d00ee6918458fa8fed","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20170713T101703Z.e971e19.tgz","integrity":"sha512-jPRKwxdVDA+Z++zlXsorlWfq6RNtVf52Q0lJPxNqdXaspb6BluoBVJejjbQgYSxSew0luX8oNTmD2d5bunwKpA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFnCVS2yKL106UkX/x7YqY+TZFJdjnAqm9DY7VRqNZPSAiBDQ9t+u25C/CO9xyypkBkkSHYfHOStrx79fzMTH6KigA=="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api-1.0.0-dev.20170713T101703Z.e971e19.tgz_1499941037335_0.9741341148037463"},"directories":{}},"1.0.0-dev.20170714T115252Z.b15b397":{"name":"ul-api","version":"1.0.0-dev.20170714T115252Z.b15b397","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.3-dev.20170505T070144Z.9dc2d8c","gpii-express":"1.0.7","gpii-express-user":"1.0.0-dev.20170420T094715Z.667e69a","gpii-handlebars":"1.0.1","gpii-json-schema":"1.0.1","gpii-location-bar-relay":"1.0.1","gpii-pouchdb-lucene":"0.1.0-dev.20170523T095210Z.7508cd5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20170127T130413Z.103de6e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.18.1"},"devDependencies":{"eslint":"3.19.0","eslint-config-fluid":"1.1.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.3-dev.20170504T114846Z.9f83c96","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.5.0","node-jqunit":"1.1.4","request":"2.81.0"},"gitHead":"b15b3972970b0674ec0788e25c071f2bf647fc28","_id":"ul-api@1.0.0-dev.20170714T115252Z.b15b397","_shasum":"f273253f8db746346335145b37b1c88adb84624d","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"f273253f8db746346335145b37b1c88adb84624d","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20170714T115252Z.b15b397.tgz","integrity":"sha512-76RXKrS2A8V+xPPqVrO79lysSuVbzliNimur6lwENaRvWRlhQ4tDuYuVNV8vS/QNr5iEHwZ6vEwkKNVszkP9/Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAVvREwQsLxXrT+PeOI649cpIx0NrfamATNoZqWnnVr9AiEA+V80W2DDHLnghSyXq/xqkSAJUs38EOpC/0hAOfUJxjs="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api-1.0.0-dev.20170714T115252Z.b15b397.tgz_1500033224355_0.1633788552135229"},"directories":{}},"1.0.0-dev.20170904T114206Z.040362e":{"name":"ul-api","version":"1.0.0-dev.20170904T114206Z.040362e","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.3-dev.20170505T070144Z.9dc2d8c","gpii-express":"1.0.7","gpii-express-user":"1.0.0-dev.20170420T094715Z.667e69a","gpii-handlebars":"1.0.1","gpii-json-schema":"1.0.1","gpii-location-bar-relay":"1.0.1","gpii-pouchdb-lucene":"0.1.0-dev.20170523T095210Z.7508cd5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20170127T130413Z.103de6e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.18.1"},"devDependencies":{"eslint":"3.19.0","eslint-config-fluid":"1.1.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.3-dev.20170504T114846Z.9f83c96","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.5.0","node-jqunit":"1.1.4","request":"2.81.0"},"gitHead":"040362e5e3facfe3e6008931129d1a5463265085","_id":"ul-api@1.0.0-dev.20170904T114206Z.040362e","_npmVersion":"5.3.0","_nodeVersion":"6.10.3","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"integrity":"sha512-ZYA4q+BdjtUKuXanQfyknR5nLcjZacKIYPtUrQyGcTQMXZrHIVqGfJ9Ft70WAPlkrB+882ayf3c8+l17jGBqeg==","shasum":"dddb3b584056e6799e694603b032fe8b4163a88d","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20170904T114206Z.040362e.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAm8nG3iV6PUEf2vr9epxVYlucZKEOMkkiqwuXIGRA1/AiAq3IXosx4bCfV93wNJHKFm9Wdxddhu7YBDvFeFiTPOWQ=="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api-1.0.0-dev.20170904T114206Z.040362e.tgz_1504525720082_0.6744082949589938"},"directories":{}},"1.0.0-dev.20170904T124121Z.1062998":{"name":"ul-api","version":"1.0.0-dev.20170904T124121Z.1062998","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.3","gpii-express":"1.0.9","gpii-express-user":"1.0.0-dev.20170420T094715Z.667e69a","gpii-handlebars":"1.0.1","gpii-json-schema":"1.0.2","gpii-location-bar-relay":"1.0.2","gpii-pouchdb-lucene":"0.1.0-dev.20170523T095210Z.7508cd5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20170127T130413Z.103de6e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.18.1"},"devDependencies":{"eslint":"4.6.1","eslint-config-fluid":"1.1.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.7","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.7.0","node-jqunit":"1.1.7","request":"2.81.0"},"gitHead":"106299882e374df94a792b41f8a7e32ee922610b","_id":"ul-api@1.0.0-dev.20170904T124121Z.1062998","_shasum":"ad0c29d1fc7f5ae1c45acf821b8db80156f563ef","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"ad0c29d1fc7f5ae1c45acf821b8db80156f563ef","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20170904T124121Z.1062998.tgz","integrity":"sha512-x42XcdqumNZjlTLfJDAvJ5QL9fhsljYQ1ST1ZkVK9CeTuWPNiOANNKx5RT6y9CWKoSQBP1vZXmcZDry8KoGOEw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCD1/q2K5Qzw6IdmzB3G7HBraEW4CYSxJhi+velWs0fUwIhAMrBOn4+TLoxOnLupj07h6LgjL5xl5WmCxNW9Somm6Wk"}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api-1.0.0-dev.20170904T124121Z.1062998.tgz_1504528801916_0.4834660720080137"},"directories":{}},"1.0.0-dev.20170905T113458Z.dda173a":{"name":"ul-api","version":"1.0.0-dev.20170905T113458Z.dda173a","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.3","gpii-express":"1.0.9","gpii-express-user":"1.0.0-dev.20170420T094715Z.667e69a","gpii-handlebars":"1.0.1","gpii-json-schema":"1.0.2","gpii-location-bar-relay":"1.0.2","gpii-pouchdb-lucene":"0.1.0-dev.20170523T095210Z.7508cd5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20170127T130413Z.103de6e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.18.1"},"devDependencies":{"eslint":"4.6.1","eslint-config-fluid":"1.1.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.7","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.7.0","node-jqunit":"1.1.7","request":"2.81.0"},"gitHead":"dda173a3fa78f7cf5928902e3e587835f4f0513a","_id":"ul-api@1.0.0-dev.20170905T113458Z.dda173a","_shasum":"1c93982c5e994973199f0b2a1cd66faf5f36acc8","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"1c93982c5e994973199f0b2a1cd66faf5f36acc8","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20170905T113458Z.dda173a.tgz","integrity":"sha512-GzD9C4q2xfsLjWtbFBe4VTFfuZih8yu6axbKrmS/EnNVTOT2KcN0SvFe/XLkXgeThoKfjsrltCO8vJSHyrv6iw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBiw6luvREinzqLhRAH6aizX7j+UV3HrHoFaE8RuHRWiAiEAmCna0UcShS8Aumd6NtaGH12YXxoNmarVUAeQPJpqi4w="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api-1.0.0-dev.20170905T113458Z.dda173a.tgz_1504611240224_0.1305413325317204"},"directories":{}},"1.0.0-dev.20170921T081908Z.a50b859":{"name":"ul-api","version":"1.0.0-dev.20170921T081908Z.a50b859","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.3","gpii-express":"1.0.9","gpii-express-user":"1.0.0-dev.20170420T094715Z.667e69a","gpii-handlebars":"1.0.1","gpii-json-schema":"1.0.2","gpii-location-bar-relay":"1.0.2","gpii-pouchdb-lucene":"0.1.0-dev.20170523T095210Z.7508cd5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20170127T130413Z.103de6e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.18.1"},"devDependencies":{"eslint":"4.6.1","eslint-config-fluid":"1.1.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.7","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.7.0","node-jqunit":"1.1.7","request":"2.81.0"},"gitHead":"a50b8592666308100a86af4a0635bd9f36454190","_id":"ul-api@1.0.0-dev.20170921T081908Z.a50b859","_shasum":"cb7ed633e696655bfeb00b94b7c61e81273896c8","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"cb7ed633e696655bfeb00b94b7c61e81273896c8","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20170921T081908Z.a50b859.tgz","integrity":"sha512-YDP8D6YUEInYWyt3uLM1a4FOnUH86b26Psazb0FwPaMWgZbiveUMkds8A31s8ivoXG16rFRHINL3YvszReb2YQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDyWUDzl04QeSIlgyPxsLIxHe3TWnC0e1Pmg4oQH2Cr+wIhAM7Ys5Sh/Vl8fcDS5FxPcrQkMX1NQxyASqktAblSDEGh"}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api-1.0.0-dev.20170921T081908Z.a50b859.tgz_1505981965737_0.18899733945727348"},"directories":{}},"1.0.0-dev.20170921T121026Z.5a812b9":{"name":"ul-api","version":"1.0.0-dev.20170921T121026Z.5a812b9","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.3","gpii-express":"1.0.9","gpii-express-user":"1.0.0-dev.20170420T094715Z.667e69a","gpii-handlebars":"1.0.1","gpii-json-schema":"1.0.2","gpii-location-bar-relay":"1.0.2","gpii-pouchdb-lucene":"0.1.0-dev.20170523T095210Z.7508cd5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20170127T130413Z.103de6e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.18.1"},"devDependencies":{"eslint":"4.6.1","eslint-config-fluid":"1.1.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.7","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.7.0","node-jqunit":"1.1.7","request":"2.81.0"},"gitHead":"5a812b949b0927bac16930f041ec453385b7c685","_id":"ul-api@1.0.0-dev.20170921T121026Z.5a812b9","_shasum":"94192a031e27eadde4ad9fb6d587fdfa5c85c70e","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"94192a031e27eadde4ad9fb6d587fdfa5c85c70e","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20170921T121026Z.5a812b9.tgz","integrity":"sha512-zB2e6K22A5aJmwlJEmDbie8HZExJaPzBCViwtRKBuj9gA/dicBNZjXPvob0NEjNsfiDUV3q+HmDqr0IRFj3fsw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEJrbGe6E38cGVGlHS0pCB+MH/BiQmxatVuHv21Wgyv9AiEA8ExOUspkRNUeuiSxG1ZNXUBN4ykGJJJPGb2RWMi/Agk="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api-1.0.0-dev.20170921T121026Z.5a812b9.tgz_1505995836650_0.659115873510018"},"directories":{}},"1.0.0-dev.20171010T092421Z.92d9c1e":{"name":"ul-api","version":"1.0.0-dev.20171010T092421Z.92d9c1e","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.3","gpii-express":"1.0.9","gpii-express-user":"1.0.0-dev.20170420T094715Z.667e69a","gpii-handlebars":"1.0.1","gpii-json-schema":"1.0.3","gpii-location-bar-relay":"1.0.2","gpii-pouchdb-lucene":"0.1.0-dev.20170523T095210Z.7508cd5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20170127T130413Z.103de6e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.18.1"},"devDependencies":{"eslint":"4.6.1","eslint-config-fluid":"1.1.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.7","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.7.0","node-jqunit":"1.1.7","request":"2.81.0"},"gitHead":"92d9c1e79511010ac804e9135851ef1c394d8dad","_id":"ul-api@1.0.0-dev.20171010T092421Z.92d9c1e","_shasum":"80ca5366cbc3dc0aae928a2a161590a746ad86f8","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"80ca5366cbc3dc0aae928a2a161590a746ad86f8","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20171010T092421Z.92d9c1e.tgz","integrity":"sha512-KmfpAIwFOixfqRDtc3TAdK+vwFh6/zklJm+Jonvo6Mpwn3WC1HRj9E1VhXw35ZZ9iSKzgPkvdnLyyvuvJfk/Zg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEPJMf0dEMjq2x8DISt+aHte+kZm7RX9pQRlEGi3Z+OsAiASUOs2uBlCeO1Q/IUeQUdTh5cMG/9cALHQWnBI4JzKTQ=="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api-1.0.0-dev.20171010T092421Z.92d9c1e.tgz_1507710758048_0.5905996977817267"},"directories":{}},"1.0.0-dev.20171012T095842Z.a9da5b5":{"name":"ul-api","version":"1.0.0-dev.20171012T095842Z.a9da5b5","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.3","gpii-express":"1.0.9","gpii-express-user":"1.0.0-dev.20170420T094715Z.667e69a","gpii-handlebars":"1.0.1","gpii-json-schema":"1.0.3","gpii-location-bar-relay":"1.0.2","gpii-pouchdb-lucene":"0.1.0-dev.20170523T095210Z.7508cd5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20170127T130413Z.103de6e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.18.1"},"devDependencies":{"eslint":"4.6.1","eslint-config-fluid":"1.1.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.7","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.7.0","node-jqunit":"1.1.7","request":"2.81.0"},"gitHead":"a9da5b515a6a97515238d07881f13a782c7f754a","_id":"ul-api@1.0.0-dev.20171012T095842Z.a9da5b5","_shasum":"4218bc227974f5b0516ffd3240fd3b9ff0cc9101","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"4218bc227974f5b0516ffd3240fd3b9ff0cc9101","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20171012T095842Z.a9da5b5.tgz","integrity":"sha512-JN2D/evZz/wT5LZd+p5wkORglJWocxg9CQkKCv92+/RYojTogeSeDtt48GFCTcPC26awVJoGuCcFNYZaOnEVZQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICkbI/0ylUTybz17/AfC1//0mwgJVJhT5MN1Kb29bAHqAiBg83BsJwUu3Q/ZestIQh8cPDxnbPOwyUCSFrdXfq3t2A=="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api-1.0.0-dev.20171012T095842Z.a9da5b5.tgz_1507802368424_0.9815992929507047"},"directories":{}},"1.0.0-dev.20171107T110540Z.23c1dcd":{"name":"ul-api","version":"1.0.0-dev.20171107T110540Z.23c1dcd","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.3","gpii-express":"1.0.9","gpii-express-user":"1.0.0-dev.20170420T094715Z.667e69a","gpii-handlebars":"1.0.1","gpii-json-schema":"1.0.3","gpii-location-bar-relay":"1.0.2","gpii-pouchdb-lucene":"0.1.0-dev.20170523T095210Z.7508cd5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20170127T130413Z.103de6e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.18.1"},"devDependencies":{"eslint":"4.6.1","eslint-config-fluid":"1.1.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.7","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.7.0","node-jqunit":"1.1.7","request":"2.81.0"},"gitHead":"23c1dcd9819f080f81c3d49819f882ee11803bbb","_id":"ul-api@1.0.0-dev.20171107T110540Z.23c1dcd","_shasum":"d8d73b96d65c11318dbdc937d1858efe5bbc64af","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"d8d73b96d65c11318dbdc937d1858efe5bbc64af","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20171107T110540Z.23c1dcd.tgz","integrity":"sha512-zubxnuvDrzlR/4CBnCphJluygFCeb+GHt6lheGf9sb4rUKe5v4FSl/7TIiJ3DjgOtOr+XL7e79DS+k6p9SqG9g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD0NglkpMllOGVG0su+35byfcjq0Ti4UBCXcE3uTQs0PgIgM7CXr9XXy8dikyh06KWYXCwmOakiBf4HVr4QgT3Zq3c="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api-1.0.0-dev.20171107T110540Z.23c1dcd.tgz_1510052763328_0.7240827064961195"},"directories":{}},"1.0.0-dev.20171107T111131Z.128c772":{"name":"ul-api","version":"1.0.0-dev.20171107T111131Z.128c772","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.3","gpii-express":"1.0.9","gpii-express-user":"1.0.0-dev.20170420T094715Z.667e69a","gpii-handlebars":"1.0.1","gpii-json-schema":"1.0.3","gpii-location-bar-relay":"1.0.2","gpii-pouchdb-lucene":"0.1.0-dev.20170523T095210Z.7508cd5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20170127T130413Z.103de6e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.18.1"},"devDependencies":{"eslint":"4.6.1","eslint-config-fluid":"1.1.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.7","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.7.0","node-jqunit":"1.1.7","request":"2.81.0"},"gitHead":"128c77254a0851e9a87c71502ed333bd99a39ab5","_id":"ul-api@1.0.0-dev.20171107T111131Z.128c772","_shasum":"af6f79e3246e19afebfa29785dcd8c78ef6f811d","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"af6f79e3246e19afebfa29785dcd8c78ef6f811d","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20171107T111131Z.128c772.tgz","integrity":"sha512-FwXA+/1C1of9S4WW7POa1Ce4vmf+YN9WK5qmNGXGNOCOKUnHlsWdvTSK9ZeuoqPAXVcXx+MD9tlfQqkQMqsdhw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBjYRSL813zjd1xcIxDV+ytyeRTOg5ryP7DSbKWshw3ZAiEAxY2JDGgL7vHguzTGNlwubZzacLuTGn+AqwXmTenSOt4="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api-1.0.0-dev.20171107T111131Z.128c772.tgz_1510053107180_0.205453414702788"},"directories":{}},"1.0.0-dev.20171107T111901Z.fcddcee":{"name":"ul-api","version":"1.0.0-dev.20171107T111901Z.fcddcee","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.3","gpii-express":"1.0.9","gpii-express-user":"1.0.0-dev.20170420T094715Z.667e69a","gpii-handlebars":"1.0.1","gpii-json-schema":"1.0.3","gpii-location-bar-relay":"1.0.2","gpii-pouchdb-lucene":"0.1.0-dev.20170523T095210Z.7508cd5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20170127T130413Z.103de6e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.18.1"},"devDependencies":{"eslint":"4.6.1","eslint-config-fluid":"1.1.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.7","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.7.0","node-jqunit":"1.1.7","request":"2.81.0"},"gitHead":"fcddcee07f04bc280bf9c54437a7bcff7490eb90","_id":"ul-api@1.0.0-dev.20171107T111901Z.fcddcee","_shasum":"95db1a70e8f8e24b3058009cec29ce3a1fc3b14b","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"95db1a70e8f8e24b3058009cec29ce3a1fc3b14b","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20171107T111901Z.fcddcee.tgz","integrity":"sha512-FTNEUay9UFNsWonVh1dc1KBzXUC7gPNBc86aX/Y2sU7bNztoO1bj8Ts3Y0R0cvDi+oIwVszviTuLsXpUS9CLEg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDUNx3EX3gG+cUaGYPr1ZqProuEIfGkUNajG3VzUktirAIgMfE4cz6GCYqP2z3qqjFXaOF2mWbElHPHC0AiG5RtQ9Y="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api-1.0.0-dev.20171107T111901Z.fcddcee.tgz_1510053556272_0.07692686771042645"},"directories":{}},"1.0.0-dev.20171107T112149Z.600ff43":{"name":"ul-api","version":"1.0.0-dev.20171107T112149Z.600ff43","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.3","gpii-express":"1.0.9","gpii-express-user":"1.0.0-dev.20170420T094715Z.667e69a","gpii-handlebars":"1.0.1","gpii-json-schema":"1.0.3","gpii-location-bar-relay":"1.0.2","gpii-pouchdb-lucene":"0.1.0-dev.20170523T095210Z.7508cd5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20170127T130413Z.103de6e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.18.1"},"devDependencies":{"eslint":"4.6.1","eslint-config-fluid":"1.1.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.7","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.7.0","node-jqunit":"1.1.7","request":"2.81.0"},"gitHead":"600ff433c7fca73008835eb520fa4a97c2779d2b","_id":"ul-api@1.0.0-dev.20171107T112149Z.600ff43","_shasum":"81104b65cc144ba576e7430d2faa9bd9078c8369","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"81104b65cc144ba576e7430d2faa9bd9078c8369","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20171107T112149Z.600ff43.tgz","integrity":"sha512-okj8HnjoX8NtVnJW0jGg6KqfmZuEgEf3sadlpMhPNI74tdlqpPUqN1TOhjQ79+1o6ydGBqPXYnXTAX47vA6ZvA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJocvKmqLK7/vjqu00AMOJ0fA5/MyaI++QQ2sy4n2PBAIhAOOzviWkv9KEpmr1Ttu+0U/5b35zWSLHYEzvUZKJ9a3H"}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api-1.0.0-dev.20171107T112149Z.600ff43.tgz_1510053740183_0.3563110518734902"},"directories":{}},"1.0.0-dev.20171208T130030Z.1d65363":{"name":"ul-api","version":"1.0.0-dev.20171208T130030Z.1d65363","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.3","gpii-express":"1.0.9","gpii-express-user":"1.0.0-dev.20170420T094715Z.667e69a","gpii-handlebars":"1.0.1","gpii-json-schema":"1.0.3","gpii-location-bar-relay":"1.0.2","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20170127T130413Z.103de6e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.18.1"},"devDependencies":{"eslint":"4.6.1","eslint-config-fluid":"1.1.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.7","gpii-pouchdb-lucene":"0.1.0-dev.20170523T095210Z.7508cd5","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.7.0","node-jqunit":"1.1.7","request":"2.81.0"},"gitHead":"1d653637402b1be97593d66b8b5471e108e76f43","_id":"ul-api@1.0.0-dev.20171208T130030Z.1d65363","_shasum":"8504e69ec587bd0e643e7a5dfa77840e7dc0a93a","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"8504e69ec587bd0e643e7a5dfa77840e7dc0a93a","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20171208T130030Z.1d65363.tgz","integrity":"sha512-cVAuutecnmlXhU366Qr99uH4a3m572zAKeTXS6PqbKHYsLmZeTV7XB3n7YPScfCxQZi/KegK0q2fneIHsR47+A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDQ5sRmzmYfbQzcKcalFFMGydRY89JTWVwuh31KlOZHbAIgZGExgiTBL3AFVzkEHPGxvZCdAL9T/0FkASx8e+vWBiE="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api-1.0.0-dev.20171208T130030Z.1d65363.tgz_1512738202728_0.7120434464886785"},"directories":{}},"1.0.0-dev.20171208T132321Z.264fbd0":{"name":"ul-api","version":"1.0.0-dev.20171208T132321Z.264fbd0","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.3","gpii-express":"1.0.9","gpii-express-user":"1.0.0-dev.20170420T094715Z.667e69a","gpii-handlebars":"1.0.1","gpii-json-schema":"1.0.3","gpii-location-bar-relay":"1.0.2","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20170127T130413Z.103de6e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.18.1"},"devDependencies":{"eslint":"4.6.1","eslint-config-fluid":"1.1.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.7","gpii-pouchdb-lucene":"0.1.0-dev.20170523T095210Z.7508cd5","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.7.0","node-jqunit":"1.1.7","request":"2.81.0"},"gitHead":"264fbd0bc3ab7972caac0cf0eed54a0c67724f23","_id":"ul-api@1.0.0-dev.20171208T132321Z.264fbd0","_shasum":"25e51ecab674c8730aebc42e4ca455a482cedbbd","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"25e51ecab674c8730aebc42e4ca455a482cedbbd","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20171208T132321Z.264fbd0.tgz","integrity":"sha512-b3jevd6fTKrXHjbkjvhOLPWyutWjgwimH95q7sQANgUiDWKuFWDCtUvBsmf13nqRr6nbWMhNOgqaCIEgvnuXLw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDQqReXDYtyt0BzLCHDhnGJ2vRJNxhjsG4N6YP/9EOWPAiEAulnruRPT+C/ndhUCIcf2Zr1T3lK1kRaPZm5o6fCAbfI="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api-1.0.0-dev.20171208T132321Z.264fbd0.tgz_1512739513940_0.11666144174523652"},"directories":{}},"1.0.0-dev.20180117T095754Z.a6a5d5f":{"name":"ul-api","version":"1.0.0-dev.20180117T095754Z.a6a5d5f","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.3","gpii-express":"1.0.9","gpii-express-user":"1.0.0-dev.20170420T094715Z.667e69a","gpii-handlebars":"1.0.1","gpii-json-schema":"1.0.3","gpii-location-bar-relay":"1.0.2","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20170127T130413Z.103de6e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.18.1"},"devDependencies":{"eslint":"4.6.1","eslint-config-fluid":"1.1.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.7","gpii-pouchdb-lucene":"0.1.0-dev.20170523T095210Z.7508cd5","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.7.0","node-jqunit":"1.1.7","request":"2.81.0"},"gitHead":"a6a5d5f44bc6c4e97ab67d8df7d0123a0d1f744f","_id":"ul-api@1.0.0-dev.20180117T095754Z.a6a5d5f","_shasum":"c48ffb3ff600a0ce88d8458ca94b74707167f541","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"shasum":"c48ffb3ff600a0ce88d8458ca94b74707167f541","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20180117T095754Z.a6a5d5f.tgz","integrity":"sha512-4tb3+AMrq4w0eY6kkuVFRQKNBQNNuBnJoZUQSSaqP+euDsSgMwgus1LUvtfOkvfMnSKntuw/+lZibVTUweSF9w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICoWbpXurjVjfHXl/23RfGfDEQkTd1k6dtyxl/3ivdWvAiEAnLCWsLy3o7dzCrpOjY1fzh0BbsOMFJdzUlwx30p3kWs="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api-1.0.0-dev.20180117T095754Z.a6a5d5f.tgz_1516183197045_0.8249183848965913"},"directories":{}},"1.0.0-dev.20180228T095459Z.1141757":{"name":"ul-api","version":"1.0.0-dev.20180228T095459Z.1141757","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.3","gpii-express":"1.0.9","gpii-express-user":"1.0.0-dev.20170420T094715Z.667e69a","gpii-handlebars":"1.0.1","gpii-json-schema":"1.0.3","gpii-location-bar-relay":"1.0.2","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20170127T130413Z.103de6e","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.18.1"},"devDependencies":{"eslint":"4.6.1","eslint-config-fluid":"1.1.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.7","gpii-pouchdb-lucene":"0.1.0-dev.20170523T095210Z.7508cd5","grunt":"1.0.1","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.7.0","node-jqunit":"1.1.7","request":"2.81.0"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\nhttp://ul.gpii.net\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n# Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  http://localhost:6714/api/\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n# Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n## Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n## Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: http://localhost:6714/api/user/signup\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: http://localhost:6715/_utils/\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n## Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n# Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.","readmeFilename":"README.md","gitHead":"1141757ea3a79aa69e34354848bc476f5e367d9a","_id":"ul-api@1.0.0-dev.20180228T095459Z.1141757","_npmVersion":"5.6.0","_nodeVersion":"6.10.3","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"integrity":"sha512-1sN5n64Kf6EXzxVoeWjXEcSOns7EcudYT6ETuIQRD9jo+VW2DMQCbiBG+FrK7ncALyNoZUH/6ReddlpxJRemZg==","shasum":"3464a70ed97d8601889a2c3bb494b44d1fd900a5","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20180228T095459Z.1141757.tgz","fileCount":176,"unpackedSize":1559579,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIChPq5wgTF6Z5BxFjj3+c7+MvFVutYEeKD5qYVNptSsbAiAR9dAywd9E0a4oFm2quxHw3WxwR87fxejaODuirsnAxw=="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20180228T095459Z.1141757_1519811922654_0.23395603014103283"},"_hasShrinkwrap":false},"1.0.0-dev.20180313T115501Z.1eeee47":{"name":"ul-api","version":"1.0.0-dev.20180313T115501Z.1eeee47","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.3","gpii-express":"1.0.13","gpii-express-user":"1.0.0","gpii-handlebars":"1.1.0","gpii-json-schema":"1.0.5","gpii-location-bar-relay":"1.0.3","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20180227T185528Z.08741e844","markdown-it":"8.4.1","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.20.0"},"devDependencies":{"eslint":"4.18.2","eslint-config-fluid":"1.2.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.10","gpii-pouchdb-lucene":"0.2.0","grunt":"1.0.2","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.7.1","node-jqunit":"1.1.8","request":"2.85.0"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\nhttp://ul.gpii.net\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n# Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  http://localhost:6714/api/\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n# Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n## Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n## Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: http://localhost:6714/api/user/signup\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: http://localhost:6715/_utils/\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n## Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n# Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.","readmeFilename":"README.md","gitHead":"1eeee47f05c7e2e4c2eb2a5ceaef380772963a73","_id":"ul-api@1.0.0-dev.20180313T115501Z.1eeee47","_npmVersion":"5.6.0","_nodeVersion":"6.10.3","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"integrity":"sha512-HSNGjnOT6GALwDtR2XE9Js59RFB89pApLR3fP/vIdFu4Xv/jkJdNo8NIjtWGsYxy8xRGGRMQHky66wK4brYzdg==","shasum":"274353e13fb8172fcf8253f7cee5629ba21c5bc6","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20180313T115501Z.1eeee47.tgz","fileCount":176,"unpackedSize":1559891,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCaxziDa4RgQERX8rQfP+yV02aQt4o3TY+nlmgX5aVU0gIgOiVqx3maQtY/7ZtDcKp59b9W0h12S1mzxo+eu6nwg/s="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20180313T115501Z.1eeee47_1520942152119_0.3047399380406517"},"_hasShrinkwrap":false},"1.0.0-dev.20180315T140825Z.e135cbf":{"name":"ul-api","version":"1.0.0-dev.20180315T140825Z.e135cbf","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.3","gpii-express":"1.0.13","gpii-express-user":"1.0.1-dev.20180315T140513Z.173044a","gpii-handlebars":"1.1.0","gpii-json-schema":"1.0.5","gpii-location-bar-relay":"1.0.3","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20180227T185528Z.08741e844","markdown-it":"8.4.1","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.20.0"},"devDependencies":{"eslint":"4.18.2","eslint-config-fluid":"1.2.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.10","gpii-pouchdb-lucene":"0.2.0","grunt":"1.0.2","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.7.1","node-jqunit":"1.1.8","request":"2.85.0"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\nhttp://ul.gpii.net\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n# Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  http://localhost:6714/api/\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n# Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n## Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n## Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: http://localhost:6714/api/user/signup\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: http://localhost:6715/_utils/\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n## Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n# Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.","readmeFilename":"README.md","gitHead":"e135cbfa04269e20c6175c98ee88827bc0c559fc","_id":"ul-api@1.0.0-dev.20180315T140825Z.e135cbf","_npmVersion":"5.6.0","_nodeVersion":"6.10.3","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"integrity":"sha512-ViWIkvpuRTU2vwo4uQqjQlVI5LNEAPnztWknEEKbIlYXkLHLcCpn/AT503oyFlyNUZ1x+tEM8vHzv2HoLerE+w==","shasum":"e9528aafceccdeb82533a9bebd90e116cdea4b44","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20180315T140825Z.e135cbf.tgz","fileCount":176,"unpackedSize":1559928,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE8g+KkmfqPFNEHpiB6CO0l1/+gXCwj8HDKXYdTcPfssAiEA7wwx0BtUjGzrqkNn3uo7PZB/murIWxXNK4a+mueLC14="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20180315T140825Z.e135cbf_1521122932443_0.5723123476960621"},"_hasShrinkwrap":false},"1.0.0-dev.20181002T081553Z.1b45e91":{"name":"ul-api","version":"1.0.0-dev.20181002T081553Z.1b45e91","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.3","gpii-express":"1.0.13","gpii-express-user":"1.0.1-dev.20180315T140513Z.173044a","gpii-handlebars":"1.1.0","gpii-json-schema":"1.0.5","gpii-location-bar-relay":"1.0.3","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20180227T185528Z.08741e844","markdown-it":"8.4.1","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.20.0"},"devDependencies":{"eslint":"4.18.2","eslint-config-fluid":"1.2.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.10","gpii-pouchdb-lucene":"0.2.0","grunt":"1.0.2","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.7.1","node-jqunit":"1.1.8","request":"2.85.0"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\nhttp://ul.gpii.net\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n# Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  http://localhost:6714/api/\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n# Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n## Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n## Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: http://localhost:6714/api/user/signup\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: http://localhost:6715/_utils/\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n## Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n# Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.","readmeFilename":"README.md","gitHead":"1b45e91a71e3301f2bed1fc6362f93486b685e1d","_id":"ul-api@1.0.0-dev.20181002T081553Z.1b45e91","_npmVersion":"5.6.0","_nodeVersion":"6.10.3","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"integrity":"sha512-73Jox0xN7GWWYMWuL03NwOWHqD+QN9QpZ8Lgm3whK3CeuEUNiqTXRjK1EbT+IBnIunbiVizW1SYJ8DN8cW8AaQ==","shasum":"2509fcf478b8416daaa6a7855b7549829452ded6","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20181002T081553Z.1b45e91.tgz","fileCount":176,"unpackedSize":1559927,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbsyqPCRA9TVsSAnZWagAA/GkP/R08KMAq67iAAUfX2WsX\nPXBj9b+2XWQfTfjsvsso/pP+jtRGSVvk1TK+8IawUyddKeJ8hPB1sJ95qqsK\n7kVuHD8LWuZJuxZ8jSaAMxRctLvYZzspEBpa7qsSRF2T5fqO8lamVjQCyESO\nvePeoCFsW/wfKTgKQZYn4NwkTqdG5SiDsEYo/fyuAV8rlYCthZA6ks+pbsPp\noPfJwq9kgMIWh3hkptt19uDM9MTpLh05As85MxmkVYfZl1j2RABNAQOIhB3L\nGeq/9/5Z4eg9i4OIC/GrMkNILsiuCqQS5+H4ZFbMLfG7PQ0cN8ip/zYUR1v4\nr8KUA6VHcuX5Rc7HKAf07/I+QZpZjNe0ryx2qHPO+wem4K/WrHfaiokUdhDc\nBopI33mytFn+ZV+pGs1PaY2Tlchc4GjtLWColsupiFBxsg1KGWtBs/PH1nkW\naCVwnoYOuEzVYSAh1S0kM18QClXZM73X4pOm+4c8Uk5G0fY7+gcvzlN6kRf1\n8z84dz3SaYhVDGAMUtzX1VSl7w4qO5tRXHDgNUgbcb+nBEAlHj4nIPVCSwqi\nxoPetOcPU3TeGKdOTx1qWex5m29XzjhgIQb40CxSHE/gSBvkSRgzKrbhN57L\n5YiGJmibhAO4vEGZDkaiXTiksF+R7t1GBnBBTkusID39Nx5WX2NSMZsPMRJ/\nIFp/\r\n=xjtv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCJKuTJwAu0Eos6WZOKPTo5gpVAi07b0Pv3CyUsGuvn2QIhAL9XhBiYKD/wYNDmqXSTQ+kG0UAS+bGyoukhLxH98YWX"}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20181002T081553Z.1b45e91_1538468494802_0.6502297037428824"},"_hasShrinkwrap":false},"1.0.0-dev.20181005T092804Z.cde9d0e":{"name":"ul-api","version":"1.0.0-dev.20181005T092804Z.cde9d0e","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.3","gpii-express":"1.0.14","gpii-express-user":"1.0.1-dev.20180315T140513Z.173044a","gpii-handlebars":"1.1.1","gpii-json-schema":"1.0.5","gpii-location-bar-relay":"1.0.3","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20180227T185528Z.08741e844","markdown-it":"8.4.2","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.20.8"},"devDependencies":{"eslint":"5.6.1","eslint-config-fluid":"1.3.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.12","gpii-pouchdb-lucene":"0.2.0","grunt":"1.0.3","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.8.1","node-jqunit":"1.1.8","request":"2.88.0"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\nhttp://ul.gpii.net\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n# Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  http://localhost:6714/api/\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n# Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n## Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n## Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: http://localhost:6714/api/user/signup\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: http://localhost:6715/_utils/\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n## Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n# Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.","readmeFilename":"README.md","gitHead":"cde9d0e67c04cc8ab659e5d91cd451400d82db68","_id":"ul-api@1.0.0-dev.20181005T092804Z.cde9d0e","_npmVersion":"5.6.0","_nodeVersion":"6.10.3","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"integrity":"sha512-FJSOqAukjRrTWE3mUimFn5+R/G+XdMeF2uyjUFHRIVRGsaTfUPGYHKAS+XbADQqvDq/Ebdcz3Eoe+YpXRSwKHw==","shasum":"9ecdacc3221270b5db98fef966c2da7a11e2a60f","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20181005T092804Z.cde9d0e.tgz","fileCount":176,"unpackedSize":1560173,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbty6/CRA9TVsSAnZWagAAkCQP/i4MFK1FCRfKtmy7D81x\noRXVJM44bda5YN6kJLaws+4w3r8ew0mqpg4XTjYSEwhE+VJ7afZyE0oLYJId\nUZveBCCeoHRIio+0lwURoOuGk2etmbDCb9LzbzkkQTRy9CoXr+ph/1rQrExO\nEeokc0HFX5cqfgTrWRiR0DfG3yI+peaJL5cNWFcTpz3Xpf1OGoQ0CgmmWFUl\nC/cL0bctb8PeIP3kiN4mwJmD2P0X0J7gIvrUgD/gyNfS7+BHsiCspByyGkIB\nbCqW+vxRmVuiCdEvX0JO89kkjYU4/cUi3T/a3iPD2IRbVgVJk8SkkmaJRdor\nBlIQ3ZREQRSg1GCrAd2IMpWfSjLZJtfmPSZ3OfP5ZXoRqc7PNzo5r6CpViJv\nV6LR+59+XnnR7wovH/5O3pfNmFnKaCs9BNFwBBUIXsItw/+6U+pZJS8dOjlV\nolRZ7yiWzNf01UiP/JTTT+PotNbKqcOseD99Z4ExknU0qfGpnV1vvKbLMM6w\n86FsGYKBsE2cVHgy5mTBNmAbIp871U2ix5NYJ74MNSzI3zN9pNWhb9XA9Nob\nVh7ec0O/6TKts5ENzfbUSkL9WUoMTSykN2J3eV0Mf0xetOS4sukSXNEsvHFy\n0MBiGK9rN69UuhKXVstoCh9+e3TovT1/ItoWqCTxmMDEzcpFKcyFfHlmYPcZ\nxbhl\r\n=Cmgy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDg+X9+YzdnuF76TIscQ1I42lGJCgu/3mw+YYO6fnN6pAiEA5hRJfY33DsqTHoO6mUhqALgE2owe2rXuI6q7PQYHnlk="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20181005T092804Z.cde9d0e_1538731710699_0.38154035040699297"},"_hasShrinkwrap":false},"1.0.0-dev.20181012T142554Z.1eceb67":{"name":"ul-api","version":"1.0.0-dev.20181012T142554Z.1eceb67","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.3","gpii-express":"1.0.14","gpii-express-user":"1.0.1-dev.20180315T140513Z.173044a","gpii-handlebars":"1.1.1","gpii-json-schema":"1.0.5","gpii-location-bar-relay":"1.0.3","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20180227T185528Z.08741e844","markdown-it":"8.4.2","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.20.8"},"devDependencies":{"eslint":"5.6.1","eslint-config-fluid":"1.3.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.12","gpii-pouchdb-lucene":"0.2.0","grunt":"1.0.3","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.8.1","node-jqunit":"1.1.8","request":"2.88.0"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\nhttp://ul.gpii.net\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n# Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  http://localhost:6714/api/\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n# Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n## Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n## Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: http://localhost:6714/api/user/signup\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: http://localhost:6715/_utils/\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n## Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n# Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.","readmeFilename":"README.md","gitHead":"1eceb675022c0aa97ccc994ff1429fb6aebaedcc","_id":"ul-api@1.0.0-dev.20181012T142554Z.1eceb67","_npmVersion":"5.6.0","_nodeVersion":"6.10.3","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"integrity":"sha512-EfCuyRIOtud4HyHO02LppnwXAMfBs45Et0qC9QnlA6ZqSIWumfq99EueISDbFB5lVm+kYUpGA4zTgB0yBh9alw==","shasum":"294ca293ff03298dba6cde57070ad171792cc31a","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20181012T142554Z.1eceb67.tgz","fileCount":176,"unpackedSize":1560384,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbwK8NCRA9TVsSAnZWagAASe0P/Rqma3nAFtnXt5jgRFkA\nyLVbdXt1OAHdvrRx93p/EUK2R7MAkj5F4Nbci3tYy1QkMNDBYcEKubquTjG8\nwX0CZeqAExgiit7zIJXGd/XErKxOmCekwWoyf2AY4k+84pWL9cW0jIdhZQ8g\nPb39MRyR7mcLmNJoTs39Vpok96UDqeuTcMvnytmuiABgCzseYJrbWkwO6CJy\nKIuftO1viAey1/7Qd9VvIZ8zcr2hVckc9olAWbvsAagmTUKQ5M54NwlM2OxH\nBy25pmz3MEm+k0lVtYfrEO0PO9Cqnu9jSpHVIqjgWa40AN0eD+FsPklLBslq\nAk+33wTB+8T85oZ19Ys7ITh+nTr2ms61fYrj0DWsSfv25QolAFj9N1A3ZtOW\nyEYUlQ9OMbEAmH92d5VP59zdgOrsgxejq01DCSeZVQSgEr9E58FsVXZVf8x9\nbsVlNzgQG9skT8sXQRe+cOlPtsZ5y44fNmoH//w18U5UELuRNjndfjDcty8l\nlGzq9LVahAnTpXjHl7TR64b3uwa/E7MLP0oed5axssEE2pDfdSkDoxHGzbsu\nUMri6H/Mlf40erEyz2xcXgK4pSBkiXM7T7gZyoJAdZXgAF/EgQJOSdw4QH5V\nmvfTMsYsTdVxOFrMEzxWqzUbw71L4nctQtkxGlhKgQugk4WdYAGC9z9jti7Z\nnlnB\r\n=1M6j\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDJvGrLVKbFoSStRPqLNBV668rmENTAHq5rftpieYQTUQIgbrYMGTqnpMMuXFyNbPGsE4aLTKiJhbUS5FIv3ovjxc8="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20181012T142554Z.1eceb67_1539354380180_0.7346146996091052"},"_hasShrinkwrap":false},"1.0.0-dev.20181012T172915Z.3250d0d":{"name":"ul-api","version":"1.0.0-dev.20181012T172915Z.3250d0d","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.3","gpii-express":"1.0.14","gpii-express-user":"1.0.1-dev.20180315T140513Z.173044a","gpii-handlebars":"1.1.1","gpii-json-schema":"1.0.5","gpii-location-bar-relay":"1.0.3","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20180227T185528Z.08741e844","markdown-it":"8.4.2","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.20.8"},"devDependencies":{"eslint":"5.6.1","eslint-config-fluid":"1.3.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.12","gpii-pouchdb-lucene":"0.2.0","grunt":"1.0.3","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.8.1","node-jqunit":"1.1.8","request":"2.88.0"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\nhttp://ul.gpii.net\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n# Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  http://localhost:6714/api/\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n# Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n## Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n## Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: http://localhost:6714/api/user/signup\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: http://localhost:6715/_utils/\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n## Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n# Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.","readmeFilename":"README.md","gitHead":"3250d0d2820c4f7db7c27232704d85f1b05bee1f","_id":"ul-api@1.0.0-dev.20181012T172915Z.3250d0d","_npmVersion":"5.6.0","_nodeVersion":"6.10.3","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"integrity":"sha512-WMZwGzRyLqFCTxgAOTJZ2Av+pELED8gOdFZjhhMgd2aB3+DR4wXgbAzRaEYocgZdjn6I1VsJmOp9Uwzt3o/sdg==","shasum":"f4cc5339e719e9d543395b2b41173cefce2be439","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20181012T172915Z.3250d0d.tgz","fileCount":176,"unpackedSize":1560469,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbwNn6CRA9TVsSAnZWagAAgaQP/21WHTxupK5EJjaoAwuj\nKhHO/RQvFV4rGY7+Dg7BV/wioq6YLj2r6MxjHaFnhFI+VSGKbjTLzsfMqzf1\nyxWAt/k4JdHIDBsyV2ijwRSL1Lo1IOpWrwLBjrVyIyutfTTdd1tZuAL1Xele\nw6Trik7IHtFyIQxyM+O/rHLIGAawsI7zsnYUcOK5nfr569ntE4nAz+hcx2Rb\nGVwYFCaL1QV/JYW3LJrxBWNmS2ZiwqQttee+ydUmnGCemZj6igClbBIQcW8v\nsjWTLYLhgBVKFpfvPRks0MtktaNWKhf0QBbJ9MmksxRI5RNC1J7o0AqeZ4Ud\nsXFPnBD++S8rmPoYgZCIDwxcSstK8x8WGTbqEsYSNdAjwszswIJIi0sy+gzU\nFESKEnTU27HrLuxt3TtjG5RLhuDuCi3pNG1WW+rdv9bAso19NwkGJ9NgOtYf\nk67zpE6KaBNponZ2RVDoXvihRALo4NOIECo2boXvo/2WduxaHyfpxYyGSr2z\nDYNvS0r2N/z6dKcid4CE8Q05gTENGZLSs922wcXkbK5rR99hlYGL51keMP7c\nn9OTPPPa1bwe41k0Dwr7IGSR6QW75ghvg+l4p3RAEr+qIuNOH2F0v2RXqDCD\nL8sXJIImh1DeAVUMwQraB9GEyJtyYr0TKIRQz2muwBgEdbcmaIIEo8NXutBe\nL9mW\r\n=VXp8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC5zI3o5pHO/G2Luqeq5t51ELGYwlvd7wKAAlmcKaGHEAIgeMN1qiDRdI7qJxWObr6KywFilIxIk3QRYPDeMNZhyS4="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20181012T172915Z.3250d0d_1539365369597_0.12317099965419431"},"_hasShrinkwrap":false},"1.0.0-dev.20181015T093237Z.ef5d29d":{"name":"ul-api","version":"1.0.0-dev.20181015T093237Z.ef5d29d","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.3","gpii-express":"1.0.14","gpii-express-user":"1.0.1-dev.20180315T140513Z.173044a","gpii-handlebars":"1.1.1","gpii-json-schema":"1.0.5","gpii-location-bar-relay":"1.0.3","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20180227T185528Z.08741e844","markdown-it":"8.4.2","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.20.8"},"devDependencies":{"eslint":"5.6.1","eslint-config-fluid":"1.3.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.12","gpii-pouchdb-lucene":"0.2.0","grunt":"1.0.3","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.8.1","node-jqunit":"1.1.8","request":"2.88.0"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\nhttp://ul.gpii.net\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n# Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  http://localhost:6714/api/\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n# Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n## Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n## Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: http://localhost:6714/api/user/signup\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: http://localhost:6715/_utils/\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n## Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n# Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.","readmeFilename":"README.md","gitHead":"ef5d29d21f16738268124091bc270b0c8accee7f","_id":"ul-api@1.0.0-dev.20181015T093237Z.ef5d29d","_npmVersion":"5.6.0","_nodeVersion":"6.10.3","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"integrity":"sha512-grMY8k52HS0gK7xcundYFXxbgGNZB6CJG0EANvzVFa+c0sQwUczlq3D84x4LxAH3CqASi45N8fU+CLsd4kddTw==","shasum":"651463f21a0c69f0cb4af4b75bba9cf1307d518b","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20181015T093237Z.ef5d29d.tgz","fileCount":176,"unpackedSize":1560470,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbxF7OCRA9TVsSAnZWagAA7YEP/i1LiE0oIOS+sNjYTq2f\n+gmbYicyA1MxcuG7ywtzE94W9cZHMXLn1vZcDisgANiuqxmOeM1ZtZtoi8nK\nn1xWdVSJtqU3iTkFg4Kk7k4bn4Wemai4QVMODlTt5BYRjt/II6DsvfYGF3rp\n1duVPwXApNiR2ajdNgb64sA0Y1ZcuXq6tHqedAAXZ3D2jAXqBgx5/epMajna\ncxGxYL3F3kSefjyao4q7Zkt21/8v09t0+XtRdhN8pw9P6R9shK9FHa7aqtfJ\ngh/BUi24dCHllL3ahAxd7VhsFihxr6hvCB/HN4Vq/bocX2P9GXf+9kKhlEwP\ncOa9YsmZdI7F+4S4kpO2rG+yXy/r1epz/U4ESIyzL56g6mp+lLLBuXPhxrEn\npZbb4Ho2ngho0gFskQ0utEuV+UHamauhAjnrj+F28HqALop5Vi3gvKsJjpZH\n6Yz8ugzilSB5xWWMUa+a0XiWIHPkwpDzbyPW5f423S4yZoYHsl247ASGI/pw\nA8lX+wXDxG6daNXAoNDJ4o2c/CmryYsKIZU4gdenhnnlHhER+jR7/Xmczp/g\nhtKbuKsViidYhPmMPaVcK/Edx7VoAQBejy0SX2cFHyI6VRFg1KxaxTFi0fJk\nZgCbS8dZcMe6cpS0AWER8nBu4Rd6VFuWItV+OD62LMYfmdfX9d9gs67v6ON5\nV6VI\r\n=9CGY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFhn6eXLBK9KXG6qeY3vriTlEFQVMI3kIg17YJs6/kDAAiA08GWB/Y3oSQCOrPYQ6SMidW/Ffm2nyW+iDmE6aNSnwg=="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20181015T093237Z.ef5d29d_1539595981093_0.09895457144462028"},"_hasShrinkwrap":false},"1.0.0-dev.20181024T125123Z.afea43d":{"name":"ul-api","version":"1.0.0-dev.20181024T125123Z.afea43d","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.3","gpii-express":"1.0.15","gpii-express-user":"1.0.1-dev.20180315T140513Z.173044a","gpii-handlebars":"1.1.1","gpii-json-schema":"1.0.5","gpii-location-bar-relay":"1.0.3","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20180227T185528Z.08741e844","markdown-it":"8.4.2","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.21.0"},"devDependencies":{"eslint":"5.7.0","eslint-config-fluid":"1.3.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.12","gpii-pouchdb-lucene":"0.2.0","grunt":"1.0.3","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.8.1","node-jqunit":"1.1.8","request":"2.88.0"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\nhttp://ul.gpii.net\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n# Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  http://localhost:6714/api/\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n# Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n## Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n## Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: http://localhost:6714/api/user/signup\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: http://localhost:6715/_utils/\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n## Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n# Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.","readmeFilename":"README.md","gitHead":"afea43dd48b29e22d9fc6ae9dc2ebee8eaa8d833","_id":"ul-api@1.0.0-dev.20181024T125123Z.afea43d","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"integrity":"sha512-2dbmtkhL1vq2U23Q7qwGG8wCd6HEsLCrsEDiGljas4ILwiE0Eg9vLdoAMUtZEPpXh0JGAdYmAVvsb/fI1cEXlA==","shasum":"b6bb3dfa1fb26e7b70d680d380536984c2613830","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20181024T125123Z.afea43d.tgz","fileCount":176,"unpackedSize":1560470,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb0GrjCRA9TVsSAnZWagAAyyMP/0uklepAbvk8xxNnnOeF\n77PEqTKmwRjv7JxVMb6hJajtxTm4iTikZETVpC16of+xcpj4YTvMokc3iWn5\nGKcWfpwBjFDeT6ogBitA1o9zV7AiWEqOGQZ0eMMvaHxRCcS49maNWTG2+5d5\nuOOpJUqNst733IGXIwnBajooD6MAqAaFfJZIH7oEbdBE5e14dEVtSlE5kwRQ\nTjBTwTRq1mHv/aLRnVUXDnWT0sTUwGM8RwC44WiFlqu1NDxONzD4n1m0nzs7\n2epswfhX4etcXYScHfsVfOTHrgLHw+O0EBg7nzC6fm1lZnRr0VbiwbJ8wJmr\n+80BGsKLuOlFqpedJR8h7+MiXs4VbSgD53/Z1zR1kb5cch6Y4O0uMOMIjh/o\noRabQAbKC8uj72mSe0/ZqZGlpTBXB6iM9HKErYEge1MtMkeBgX1S0k5CwmLH\nxWSoSg9oTx3ITGiDZNu1uPMWdj0S2AhP30ZeHJ0CQ7C99ks+OvR/Q9geX/7j\nn61/kO8m8g3FbowAMpsZ4O/N5mV6EbXV6NDlxLefSibMfDnBntNEgk/slhZ8\nj6mAtdQXW7sDi/E4vMAfC/1VJ3ZsjYUZWbRd9S5Zgri1Vy7iEKdrc9X3HSws\nWyxJPJe9l9EdRjGI5mlEJTdql2kk2l6VPCAIXjFL7gLbaIHZ54RZupYkvAez\n36dl\r\n=z0XW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBstt6D8fnqqG2VGfM5itCZukdzK/4Kt4kkAk0+jy4NDAiEAkVs2bzsRzrciPENaWT4mNTm95sauQhfCpU6EWkIsp2g="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20181024T125123Z.afea43d_1540385506051_0.24639369289244728"},"_hasShrinkwrap":false},"1.0.0-dev.20181126T142401Z.124fbf0":{"name":"ul-api","version":"1.0.0-dev.20181126T142401Z.124fbf0","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.3","gpii-express":"1.0.15","gpii-express-user":"1.0.1-dev.20180315T140513Z.173044a","gpii-handlebars":"1.1.1","gpii-json-schema":"1.0.5","gpii-location-bar-relay":"1.0.3","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20180227T185528Z.08741e844","markdown-it":"8.4.2","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.21.0"},"devDependencies":{"eslint":"5.7.0","eslint-config-fluid":"1.3.0","fluid-grunt-eslint":"18.1.2","gpii-pouchdb":"1.0.12","gpii-pouchdb-lucene":"0.2.0","grunt":"1.0.3","grunt-jsonlint":"1.1.0","istanbul":"0.4.5","kettle":"1.8.1","node-jqunit":"1.1.8","request":"2.88.0"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\nhttp://ul.gpii.net\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n# Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  http://localhost:6714/api/\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n# Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n## Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n## Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: http://localhost:6714/api/user/signup\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: http://localhost:6715/_utils/\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n## Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n# Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.","readmeFilename":"README.md","gitHead":"124fbf0f164af37e3320131977388946d71a077e","_id":"ul-api@1.0.0-dev.20181126T142401Z.124fbf0","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"dist":{"integrity":"sha512-8zvCWu4UqEYYjwJqvMNwRwmqPWHUja6AD5KpIgJ4TYyqW9TrKQ6qFIhrIDQF3ahoInV2GEl4KjXAVf4yukNCOQ==","shasum":"19b5bcc5c544fa19a9c72e397b6461cb329ef908","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20181126T142401Z.124fbf0.tgz","fileCount":176,"unpackedSize":1560691,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb/AIWCRA9TVsSAnZWagAAA5gP/0onodz1+/l0V2Tj4VRZ\nMBoBn1eMpsq8xXkU1MdK5PiIrFV7WfCJQUipwhdfJc7oNtClZZB5qpALQyzw\no+3dcEO/qq4i+k9MHOFHfKUEZZtL1JTCwbAzFK357b3TgHd75eEllRmbA6Yp\nJQ2p1qr7YazntANgqEod3f/4vrjfPpl5OXttE+wbzBgZwSvcOwxW/jkkP7Yo\ny5G4VhrvbB2p+P1u7sJhboVbI1fDvkHHL05bvG5nNLg6XKbCqFnuVNOty6oZ\n30ixOzcUg3d776MP842rrX9OdcvJ6sCbLe8/9lCxuqU8DekK3EqP5/kJf9Ue\nwC4f6dGy+F4E2Zo67jgtPVfy/o+Oze+mYvXiAimHA1nnADWKJ+MG0JtmSbQ3\nsPjsL3qgl5oXy4yKwrC3Y3BuX0dyF1QCXCChsXqqwpnDMJc7Nfb2gUWpaxwy\nOMBveafod2c+15Bdt8YewWDbMVcwXTenFI78M35Zjxqvu4CH9CoCeN/Tssek\nLuT3dtNvx4Ab6w5jmE7Ro1wAL6Mv3ceXxhRXLH48JF9dEa3rfZpI9QRb91GL\nlLu9Bm22PfKWEpM5P+94sv7akLfWKnVwXT7yQqRMliACRnhBP8Z9Oz7UIjtf\ncoGESPrZoz6u2/7dYGwk4OYYNY+Dl3oU1iR5q2DU7somI6xfN+ufsGdyhiqS\nS6gN\r\n=OAVp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGpoOy3HM//Z2yohrKWqa78l4ugUnK6vApND65MMmA2EAiEAxna2sOgGPMeHzbQ1FNgG6wKdyl8iIZZLzxtd8tHfnWQ="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20181126T142401Z.124fbf0_1543242262031_0.2489541902156054"},"_hasShrinkwrap":false},"1.0.0-dev.20190829T121743Z.3698d7d.UL-65":{"name":"ul-api","version":"1.0.0-dev.20190829T121743Z.3698d7d.UL-65","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.5","gpii-express":"1.0.15","gpii-express-user":"1.0.2-dev.20190628T073950Z.6efdc50.GPII-3921","gpii-handlebars":"1.1.4","gpii-json-schema":"2.1.2-dev.20190829T092959Z.fc01d7b.GPII-4022","gpii-launcher":"1.0.0-dev.20190527T124956Z.9255cfa.GPII-2103","gpii-location-bar-relay":"1.0.4","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20190808T142952Z.f8576acb6","markdown-it":"9.1.0","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.23.0"},"devDependencies":{"eslint":"6.2.2","gpii-grunt-lint-all":"1.0.5","gpii-couchdb-test-harness":"1.0.0-dev.20190827T101451Z.024d2c3.GPII-3531","grunt":"1.0.4","grunt-jsonlint":"2.0.0","istanbul":"0.4.5","kettle":"1.11.0","node-jqunit":"1.1.8","request":"2.88.0"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\n[http://ul.gpii.net](http://ul.gpii.net)\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n## Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  [http://localhost:6714/api/](http://localhost:6714/api/)\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n## Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n### Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n### Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: [http://localhost:6714/api/user/signup](http://localhost:6714/api/user/signup)\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: [http://localhost:6715/_utils/](http://localhost:6715/_utils/)\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n### Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n## Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.\n","readmeFilename":"README.md","gitHead":"3698d7dfc36645ea3f679498717a96062fd884da","_id":"ul-api@1.0.0-dev.20190829T121743Z.3698d7d.UL-65","_nodeVersion":"10.15.2","_npmVersion":"6.10.1","dist":{"integrity":"sha512-IeSdNGtVZ6aerLAr/3Stqj93B3RnObdz7G3MTQTNxBaWfs/pM+OWgBuCjFjJEzXXBo24HT0KNG4zgkqTR+0ALQ==","shasum":"d39946ef2a8e0527c3c09c6297559ca020debf13","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20190829T121743Z.3698d7d.UL-65.tgz","fileCount":152,"unpackedSize":1531716,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdZ8LJCRA9TVsSAnZWagAAw0AP+wXH+mO3Ubc9elD914/F\nW8MAB9ooaezvWiH/KDjlk1p3QzW9fv+27U1uAc5xVyPFTpNE9wDHKY9UpZo7\nlqT+nGTwKz8PjBqZPbW/uLrEW59vg4lNz44IAMJEoD+96Ho8vxPTRaQqvwpr\nK6me+PWI1DCWXR7ijB9pu1RyFkPC9qHJ0DIhOAP03r519yjuV7vcYRGRsM/D\nBJ66KqyZtQkY6kbJY+9D+y1k59d2kGpnirlIq7inxbOstFui8kpUG0RjX2ax\ncG1svlb1Ck4hJyZONiu8/J31Kl+A5E0bjk0c3A+7qreZIG72oIIYklebOzk7\niEy7CzwE7H5WQQknJV5bEPVrUt0BVbt0+mOcoQcxXu6+eLXDsOILq7zsPrJp\nrDVTHcDOgJ7w+TnLHtnnx5hWpiMpUmuhErbQoEUkNxQSogHB1lveYv4ZBMHj\nlIDn5hZP2lDDH4SjpA/rix1Dj+t13Pa9Z1Q6YgdRu8/zKXFoVy6YVKkjvEhi\nqjt56Ezza62VOYYwWkOzpmSLf/SfdaqsUMDixj8T3gkxvMp37pcBqYhnRIsI\nez4mgFHfEYFPBZbF5fjkQIKUf333ZwlYvKpLk/ct4OQAVcQ1/jf4lrpF4aVh\nJcOIz5gQVaMNi0txb4f+V17yjB57H5TODdzu+JXW6Jj86jZ/a2kMHhZJj/qp\n9PTw\r\n=3OO0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEVhn9ruVtjUAkjykjU/L5xJoRvlQt6G5wwwGTpE+NtsAiEA9vyTjxzSC1q9mILMEFDgNIxyrq8j0BH8D3c0rjr7Yuc="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20190829T121743Z.3698d7d.UL-65_1567081160998_0.0274842606935517"},"_hasShrinkwrap":false},"1.0.0-dev.20191009T114656Z.bf585a7.UL-65":{"name":"ul-api","version":"1.0.0-dev.20191009T114656Z.bf585a7.UL-65","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.5","gpii-express":"1.0.15","gpii-express-user":"1.0.2-dev.20191007T095819Z.4c21f06.GPII-3921","gpii-handlebars":"1.1.4","gpii-json-schema":"2.1.2-dev.20190829T092959Z.fc01d7b.GPII-4022","gpii-launcher":"1.0.0-dev.20190527T124956Z.9255cfa.GPII-2103","gpii-location-bar-relay":"1.0.4","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20190926T213421Z.e84b3cf0e.FLUID-6148","markdown-it":"10.0.0","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.23.1"},"devDependencies":{"eslint":"6.5.1","gpii-grunt-lint-all":"1.0.5","gpii-couchdb-test-harness":"1.0.0-dev.20190827T101451Z.024d2c3.GPII-3531","grunt":"1.0.4","grunt-jsonlint":"2.0.0","istanbul":"0.4.5","kettle":"1.11.0","node-jqunit":"1.1.8","request":"2.88.0"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\n[http://ul.gpii.net](http://ul.gpii.net)\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n## Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  [http://localhost:6714/api/](http://localhost:6714/api/)\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n## Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n### Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n### Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: [http://localhost:6714/api/user/signup](http://localhost:6714/api/user/signup)\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: [http://localhost:6715/_utils/](http://localhost:6715/_utils/)\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n### Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n## Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.\n","readmeFilename":"README.md","gitHead":"bf585a7b1345cc90ecf483f1797f7a4a54e026ea","_id":"ul-api@1.0.0-dev.20191009T114656Z.bf585a7.UL-65","_nodeVersion":"10.15.2","_npmVersion":"6.10.1","dist":{"integrity":"sha512-OUBayzQPNUopIUvKtSvGt7fZgyP0U/uIGUIGfTb2bWeB2AsHaG4RN3XCErUSWl5CpxJx0ZO98f3NO/sQesoakA==","shasum":"22094b6cd88c1e877e3e6a76e5ad116be5db1cec","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20191009T114656Z.bf585a7.UL-65.tgz","fileCount":152,"unpackedSize":1531728,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnckFCRA9TVsSAnZWagAArP8P/3TJ4U8mziTtBqEBDC1m\nZvOhcXUbvHTXzRgY++dFwv937Ik5HtcoP5WNPuXtKPJ9GmJveRCplPB+JtnC\nSzJja2VN9X3lk0EauGMmfiYqcocOq7PIOcXOdosXG844YQkdH4TAa9B6u4EF\nLFgtzvLwZeuNHAaSH7twB6GLTcl5+bLsmhAbXT2s4XyUd0ThGgqKaOTNW6Vd\nOE+55NWmJTu4nPst0L+7P7Z+dLyeIjsXb7kol8YAaGeBSOh4LdPBpxrwyiFq\nJFxoUwb51y8VtvxJ3qrxlzukwgg5eTo8w2OrAih2GYhGiE7aKXFMJ2ec9x2T\nF9ruOszS/Bru9WAZn1VjLdl0qFUNBHCdWr5AFGOnRRB4XdB1WaiHumi+rlrl\nQJfULwn7yHd8jQd36owzJDdkzcZYLdVu8N/4FAcigKxoykh4wprCM4XeIzBX\nBJBsNneOqqBQdlszJzoxaEBOQAotUs064fo6sbKf4m6xsUhUhqyCj+4WDBnF\nBodPq618yHOl5Hk39LK6X2jMz0RC7MZ+Bh7W3N3Zo3VxwOhJox+/O/y3itym\nrxu+qh/uYSOs3bcUOs/+YoDyXURnNIYMHtgozwf04c6zV/wKt3Z2ILwNWo4Q\nGf57m7fWxqNO4g92pCTtEUjB3doQCYszx3a/d8/HDtmTW2kgP1mtSDkx988D\nuwFZ\r\n=zxOP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCFI+J73lbBHzmFOOHvqGUbilMqBioqy1NwejvFRqpVggIhALirPxFu8mNRZRr59/ECAnUEiXg17XTrtsWWqoZG5WC9"}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20191009T114656Z.bf585a7.UL-65_1570621700831_0.43035176327545854"},"_hasShrinkwrap":false},"1.0.0-dev.20191009T123332Z.551c5dc.UL-65":{"name":"ul-api","version":"1.0.0-dev.20191009T123332Z.551c5dc.UL-65","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/istanbul/lib/cli.js cover tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.5","gpii-express":"1.0.15","gpii-express-user":"1.0.2-dev.20191007T095819Z.4c21f06.GPII-3921","gpii-handlebars":"1.1.4","gpii-json-schema":"2.1.2-dev.20190829T092959Z.fc01d7b.GPII-4022","gpii-launcher":"1.0.0-dev.20190527T124956Z.9255cfa.GPII-2103","gpii-location-bar-relay":"1.0.4","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20190926T213421Z.e84b3cf0e.FLUID-6148","markdown-it":"10.0.0","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.23.1"},"devDependencies":{"eslint":"6.5.1","gpii-grunt-lint-all":"1.0.5","gpii-couchdb-test-harness":"1.0.0-dev.20190827T101451Z.024d2c3.GPII-3531","grunt":"1.0.4","grunt-jsonlint":"2.0.0","istanbul":"0.4.5","kettle":"1.11.0","node-jqunit":"1.1.8","request":"2.88.0"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\n[http://ul.gpii.net](http://ul.gpii.net)\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n## Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  [http://localhost:6714/api/](http://localhost:6714/api/)\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n## Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n### Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n### Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: [http://localhost:6714/api/user/signup](http://localhost:6714/api/user/signup)\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: [http://localhost:6715/_utils/](http://localhost:6715/_utils/)\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n### Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n## Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.\n","readmeFilename":"README.md","gitHead":"551c5dce6ff5b8042697a42d0f4dc607bf9a93f2","_id":"ul-api@1.0.0-dev.20191009T123332Z.551c5dc.UL-65","_nodeVersion":"10.15.2","_npmVersion":"6.10.1","dist":{"integrity":"sha512-zKuv2HyTa0Si/ax1Kb8/yX3xpAOxJiCl4wdum6b3ZtoNtDrHgtK9dDEOHAYN8PpdLasqQMSfO7wieyamniIcmA==","shasum":"49cbb4addb55aca963670ba705297f9c00c30acb","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20191009T123332Z.551c5dc.UL-65.tgz","fileCount":152,"unpackedSize":1531848,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdndOsCRA9TVsSAnZWagAA6jIP/jRVrJdfrwvT2wH5Yl0s\nUEmiEjcYSYJCmxwDmiH/GcAmodHsAOS+SllekGJXHxwm6vR7VRmjQqUGfyNa\nkVzyVd+mx2xM8ouE3BW8MiXPtuhtlAT9DQQ9stD7PYPBYNQPeScvNYZlLFhE\n5x1+hBa5lOruXC79NHJMOychEUDPJWWk7x2O0FG8ycObapnWAS/YDZZ41w47\nZGlHciml94grJOPa4Ev059xf+ZJs7dydE7PpJVJNsOSCRbzpjSWhFHB5d/LQ\njNVlMDWApK7qn9V8Ki3+pBRUSFuApQNJX6myyyimwQed4diZpR4I4erJJMjd\nxRd1t5yge8DGEDZvcYQD5d3bsZFD6YK+k3i8Y3vu4p5ElD+KQtyhQm5hpbyb\nEtxgPHhB3jXJe/hKDYxOm5dTR1Bk5km081opVHttF9qnVaX7gtGznJ0HgD7X\n+cM33fvU0tWhlpXaKmQXEpVcJc+86OihDxke3gcHXZoYVcJ0f9FcMh5kISxb\nrZF7ymlG2tfbYuXNhYN7ywPlUoiaTLIM0PzpQfneuMYxa6tM+WokoKzZEwkJ\nXYZaOSaZMt5l3Iv8eikzizzuy5lUUKk9fQ8Ky2Eqw2plUZzAPyXPUv17zSWE\ne/+4GvdHlz0xy1nM43++AAf3SmX+HYvwlQiF5n3wzZh32AvNDbwO9FH+CBRo\nU+2I\r\n=Pi1/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD1XzFwSS4Utz3SEbkjSFOZn4aaOdizHiXerwvw1Qm1NwIgKPFv7tSdGeh0mIENiqSvxAyR09WFEb6On4+QBAeidBA="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20191009T123332Z.551c5dc.UL-65_1570624427504_0.78684732464177"},"_hasShrinkwrap":false},"1.0.0-dev.20191011T085109Z.0ea5dd9.UL-65":{"name":"ul-api","version":"1.0.0-dev.20191011T085109Z.0ea5dd9.UL-65","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/nyc/bin/nyc.js node tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.6","gpii-express":"1.0.15","gpii-express-user":"1.0.2-dev.20191011T081350Z.de1da4c.GPII-3921","gpii-handlebars":"2.1.0-dev.20191011T075156Z.b698e3b.GPII-4100","gpii-json-schema":"2.1.2-dev.20191011T080355Z.2d0aae3.GPII-4022","gpii-launcher":"1.0.0-dev.20190527T124956Z.9255cfa.GPII-2103","gpii-location-bar-relay":"1.0.4","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20191009T141140Z.32c9263b4.FLUID-6148","markdown-it":"10.0.0","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.23.1"},"devDependencies":{"eslint":"6.5.1","gpii-grunt-lint-all":"1.0.5","gpii-couchdb-test-harness":"1.0.0-dev.20190827T101451Z.024d2c3.GPII-3531","grunt":"1.0.4","grunt-jsonlint":"2.0.0","kettle":"1.11.0","node-jqunit":"1.1.8","nyc":"14.1.1","request":"2.88.0"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\n[http://ul.gpii.net](http://ul.gpii.net)\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n## Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  [http://localhost:6714/api/](http://localhost:6714/api/)\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n## Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n### Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n### Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: [http://localhost:6714/api/user/signup](http://localhost:6714/api/user/signup)\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: [http://localhost:6715/_utils/](http://localhost:6715/_utils/)\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n### Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n## Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.\n","readmeFilename":"README.md","gitHead":"0ea5dd987d0841d4b8445c25992883082c87bea0","_id":"ul-api@1.0.0-dev.20191011T085109Z.0ea5dd9.UL-65","_nodeVersion":"10.15.2","_npmVersion":"6.10.1","dist":{"integrity":"sha512-y+h7oE7lqgWfqPlP9Z72HsCuTB/taFyOLBun1T2+gzAdG9be6ZA8aW/krMBjZ8xximgehphdg3bxohm128gj8g==","shasum":"491b845637092e7f0d09aad56b9105dc7eb63ea2","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20191011T085109Z.0ea5dd9.UL-65.tgz","fileCount":152,"unpackedSize":1531892,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdoEKXCRA9TVsSAnZWagAAZtAQAIk6Tz/dED0/5g5DZVnk\nAIO+g0Z+R49TsgySJswXJLt0FT7zZ5k/UN+iynsJWdFfP2Q/sVnsPYZbT0Wd\njVHy87+5aHQRBL7DOXDSCUqXTTur/pdWDMlPAbz0xq/sKlqfCDfjuQR7aTFa\nD/X+hpbxu+4rk+AFWuU3jiMrUxlwbBTLdBwmKXxN5c7gafWfCJKANMV9nUKM\n/h5r66hDry0LB1yWZKEBzUJec+zZfXSU4CJVYegtCSsDUYHazGED0OYAmFF/\nJufkeysaFD/epQ/cDimRh09o29RyI0pRCai/iZ/vN+GHbsGAY5Cix5LPQjnY\nmmhJt2wuVLG7pn6GGI9UaCSSZosE+3qj/LNL+iJTvY6E4IlFTUS2PRuYnZg9\nlSBQ+hsNFuTQ71AZly/7rzLmx1IwllZpTVgbP7vJAhExMuZGQ0bLH3CVP7ZQ\nwAoq1I+h612jrBqtN630yr2KmQNT4cGdD+AeWHnrRUZfbgQ0f+arxc2wfPyc\nu5GhCdCRx6GjaumxIcysO9sFXekann4DdOdxRA5UblsIQNSdcCw4rYWXNVB0\nkWyAZxgZcE7R6q93DkO84zHa/hWoYBOQ2WJ5Ep1svbqkiXCfUKUA5XdGzt2l\n6Z2IqKg1bAymIP5rPmfaWBARlYsC03bx31dv4vatKs7ae/WJ8BSlTHAMq+QB\n2ng/\r\n=Qr8a\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF+dPSMrWIC6K+eqIDBAl597d2Lztoiq0Q0pd2rnfRuCAiBwqT2wUD/S/jjFHnTBWu/p5FF3FsQz2otfdgqONRzKDg=="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20191011T085109Z.0ea5dd9.UL-65_1570783894167_0.9747187076033215"},"_hasShrinkwrap":false},"1.0.0-dev.20191011T163340Z.226532a.UL-65":{"name":"ul-api","version":"1.0.0-dev.20191011T163340Z.226532a.UL-65","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/nyc/bin/nyc.js node tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.6","gpii-express":"1.0.15","gpii-express-user":"1.0.2-dev.20191011T143132Z.729acf2.GPII-3921","gpii-handlebars":"2.1.0-dev.20191011T135302Z.1fce29e.GPII-4100","gpii-json-schema":"2.1.2-dev.20191011T142807Z.68a1b55.GPII-4022","gpii-launcher":"1.0.0-dev.20190527T124956Z.9255cfa.GPII-2103","gpii-location-bar-relay":"1.0.4","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20191009T141140Z.32c9263b4.FLUID-6148","markdown-it":"10.0.0","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.23.1"},"devDependencies":{"eslint":"6.5.1","gpii-grunt-lint-all":"1.0.5","gpii-couchdb-test-harness":"1.0.0-dev.20190827T101451Z.024d2c3.GPII-3531","grunt":"1.0.4","grunt-jsonlint":"2.0.0","kettle":"1.11.0","node-jqunit":"1.1.8","nyc":"14.1.1","request":"2.88.0"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\n[http://ul.gpii.net](http://ul.gpii.net)\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n## Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  [http://localhost:6714/api/](http://localhost:6714/api/)\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n## Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n### Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n### Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: [http://localhost:6714/api/user/signup](http://localhost:6714/api/user/signup)\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: [http://localhost:6715/_utils/](http://localhost:6715/_utils/)\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n### Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n## Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.\n","readmeFilename":"README.md","gitHead":"226532a322a16def45037c78d5accdae6171fb4e","_id":"ul-api@1.0.0-dev.20191011T163340Z.226532a.UL-65","_nodeVersion":"10.15.2","_npmVersion":"6.10.1","dist":{"integrity":"sha512-0AzU3jjQ7c8X3GBO3BfSUYLHxBBZXvhFODQdSswhxb6Ecxx8qOvwPXCKKcbnqq7J2jPGRD/eX5Z2ZrZllq4Xig==","shasum":"679e153b8f64966982654e57d89882ad8ef44b1b","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20191011T163340Z.226532a.UL-65.tgz","fileCount":152,"unpackedSize":1532398,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdoK8JCRA9TVsSAnZWagAA3QAP/2HFDc5w7KeIQFrSD3dg\n+vkBtl9Zz+Bm9IA/mVE1zLzOCvkcIxtv6vyZG/66tS/IwSUVHWOuvDkDHyuA\nbTqwCVhAcvlYf+JHhjQDQ75C4Q3AOI5CQkof2UpZLAgjEoREgcTu5HV6vKie\nsjcnPIBrrCAl5WzQiiMDdZiW6ePGbG9qCcii5hzUlTR3LgcbhSoeARQr2McN\nKPKapqCB+MoGHg2YtewtXJYB/7ZiGbKruiC2Rnt9u7Ynky3gXxw00dafK4R2\n6DxQwBkiBhwhkIAGxqUHOIUstnJHaL+z8v59/EZzm6DYXTFbFCgyHTpwkYGt\nriVUPTqp5dJjf7miEH6XD9K3I0/oqeaeT+8eN5F5n4M0e62ZVSvFw43J6wSo\n/NEU4fwEWtpxcI4gvrfnC4M1X5b1CZzDvvVfUYolYXCkvtB+1ZTTmT0OtiQs\nA8C2jJXO7iH2h8oXoiLyYYLvVGMfR6ZuMKYdr09Rkwy4d6YCQyPadmD+G1L3\nfOUYJWwc+C8KMl72+HAd8TjqCWNfQchRjzOvb0u8wpu8bDQdmsq+Yi0EJRb3\npAD9p14uSODTrzxUIzsOPWHo3DHpM+Qo9FMr6cCMDvRlhfdl5n42P+sKJR+K\njOljUcRKCOnCYyeHXufB8V+Uw2dGBZe0AlRnIjHlT5w9T9v0OOFwDYBrYORg\nplkd\r\n=mQO2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIACRlMlgzBBfEOBzPBY6MNqeBydCaGW7ecnTdUWQOTodAiA7nbL7PlHQSpBsTrpw3JilPYGjNHxcj0ztlHqM/N58fw=="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20191011T163340Z.226532a.UL-65_1570811657178_0.6300944302379403"},"_hasShrinkwrap":false},"1.0.0-dev.20191014T124828Z.4148821.UL-65":{"name":"ul-api","version":"1.0.0-dev.20191014T124828Z.4148821.UL-65","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/nyc/bin/nyc.js node tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.6","gpii-express":"1.0.15","gpii-express-user":"1.0.2-dev.20191011T143132Z.729acf2.GPII-3921","gpii-handlebars":"2.1.0-dev.20191011T135302Z.1fce29e.GPII-4100","gpii-json-schema":"2.1.2-dev.20191011T142807Z.68a1b55.GPII-4022","gpii-launcher":"1.0.0-dev.20190527T124956Z.9255cfa.GPII-2103","gpii-location-bar-relay":"1.0.4","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20191009T141140Z.32c9263b4.FLUID-6148","markdown-it":"10.0.0","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.23.1"},"devDependencies":{"eslint":"6.5.1","gpii-grunt-lint-all":"1.0.5","gpii-couchdb-test-harness":"1.0.0-dev.20190827T101451Z.024d2c3.GPII-3531","grunt":"1.0.4","grunt-jsonlint":"2.0.0","kettle":"1.11.0","node-jqunit":"1.1.8","nyc":"14.1.1","request":"2.88.0"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\n[http://ul.gpii.net](http://ul.gpii.net)\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n## Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  [http://localhost:6714/api/](http://localhost:6714/api/)\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n## Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n### Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n### Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: [http://localhost:6714/api/user/signup](http://localhost:6714/api/user/signup)\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: [http://localhost:6715/_utils/](http://localhost:6715/_utils/)\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n### Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n## Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.\n","readmeFilename":"README.md","gitHead":"41488217fab07de799093981165f59a4c29ccec7","_id":"ul-api@1.0.0-dev.20191014T124828Z.4148821.UL-65","_nodeVersion":"10.15.2","_npmVersion":"6.10.1","dist":{"integrity":"sha512-LEWsezVz7XzQ3oeLWJxkNoGMvndChRx5lgJOlQW5cVaLOXjaVWrd7Ljc81o2fZbl8BBLAJrb9CIaarNSuyaUuA==","shasum":"7dc39cd20fce713a5ee64eea47a8838fac94033f","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20191014T124828Z.4148821.UL-65.tgz","fileCount":152,"unpackedSize":1532305,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdpG6wCRA9TVsSAnZWagAA7JQP/A62imLWWLiKz+vyJm4d\n27VAkCBl27S0Dn7762DNwtiz7olyrnr7EZQlmFuPEVTI6ZQIKP3z2COuuCiI\npufoRP3TTPFyIDJPOvRv7o1WxSJUhCxy17H4AHZSGIxLUsXIlByoUhOpDpTg\naC41F6B/02PsUvaxxqOp6WbCTOJAX1Gvqb7yXQFQUz3cw9iXoNVF14FcNMog\n8rcXiN+uJzJqDi/H8PB93+mvVdP5uWVKe7v5EFbChx7/q3ZgwYbZDGhqThGI\nOjfcBJL7nQTfdxvVbpuQqQrg9xTgi8fF5vBBUy6Fc4UO22SbjV0eJ8NyoCDM\no7V8OZ3Q/WYLC5SyjB0/0izO6VS5a26KffybSEcbGsTaEIep8RUJmNq3KpoM\nGMHzoTxYDDIrztLUkXEPNKPZOLw2lWvaVuqZWX3Z6KK9htNWWIWHdi6jxvBn\n1vu1oC8HQ3MPLiDIrXsT3rgYamZ8aigeQ2qawg/I526d3bD8hUkeWuNA9cvC\njhgIVKMBJ1i3qOqdRQVXsaXFLJk3lWel09Dc76KAxuVxjjSozxvdnaCBtbwe\nQDRafuLQUyr4zVdnNLNGuK2T+UXMRyDU0vWMlk1KJlbiu1Bmudu5fiEtIhDX\nq5JkygnALR4Qs73Dnl4YLgnlPmWi10kwcULKSZesAf8yLNHoQ/fX/gbNfVtz\nnA4U\r\n=iCEB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCRI4gWdtUx7ykuIxdQlGUSLHxq/bnVbQ8HIeNEybKzIgIhAM7zdjpKgBEN7iLd4LU3OxXGyNNp7aQfZfxLL8EkVOF1"}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20191014T124828Z.4148821.UL-65_1571057327666_0.33590570597015734"},"_hasShrinkwrap":false},"1.0.0-dev.20191014T134607Z.a97da2a.UL-65":{"name":"ul-api","version":"1.0.0-dev.20191014T134607Z.a97da2a.UL-65","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/nyc/bin/nyc.js node tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.6","gpii-express":"1.0.15","gpii-express-user":"1.0.2-dev.20191014T133849Z.154a17f.GPII-3921","gpii-handlebars":"2.1.0-dev.20191014T131654Z.fd29700.GPII-4100","gpii-json-schema":"2.1.2-dev.20191014T132412Z.bd209d8.GPII-4022","gpii-launcher":"1.0.0-dev.20190527T124956Z.9255cfa.GPII-2103","gpii-location-bar-relay":"1.0.4","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20191009T141140Z.32c9263b4.FLUID-6148","markdown-it":"10.0.0","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.23.1"},"devDependencies":{"eslint":"6.5.1","gpii-grunt-lint-all":"1.0.5","gpii-couchdb-test-harness":"1.0.0-dev.20190827T101451Z.024d2c3.GPII-3531","grunt":"1.0.4","grunt-jsonlint":"2.0.0","kettle":"1.11.0","node-jqunit":"1.1.8","nyc":"14.1.1","request":"2.88.0"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\n[http://ul.gpii.net](http://ul.gpii.net)\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n## Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  [http://localhost:6714/api/](http://localhost:6714/api/)\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n## Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n### Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n### Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: [http://localhost:6714/api/user/signup](http://localhost:6714/api/user/signup)\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: [http://localhost:6715/_utils/](http://localhost:6715/_utils/)\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n### Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n## Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.\n","readmeFilename":"README.md","gitHead":"a97da2a02f987523850e792904c7c5d9de9f7d05","_id":"ul-api@1.0.0-dev.20191014T134607Z.a97da2a.UL-65","_nodeVersion":"10.15.2","_npmVersion":"6.10.1","dist":{"integrity":"sha512-HY3BeboJZfcg2xMOzL5wsPeG5ewuiau46tillRdcq1MRpmoCUZPHbfsw2BZdTF6Ku2pLktWtvqqBrgndy3IX+g==","shasum":"a09f8a028bfe302d6a92abf0ec1c5cb1e9ee9a45","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20191014T134607Z.a97da2a.UL-65.tgz","fileCount":152,"unpackedSize":1532305,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdpHwxCRA9TVsSAnZWagAAep0P/jl+JpEjbf9gywR7sL6X\n8ROvwLAO60CHDEW805CKRg6ysemkIvgzkVuKNI6JAHvtF9TjHBB5DKf0fkdV\nWp1C2d73Lm9lP7wg6T1u0JYHMppbSAcChl3MWXmsLfY4Sa/mncLzhTP1assB\nGyj+XA9seeBU+Ysn5Tdco5Wg9XNOdNfl99akLFAtpsjJmzairMRQYsDZ1rE8\nJkG4iWeMkwrl6orhoMpoPzus3QgX8JUqnQDvteW2Yd8V4qgIZh7LqmqsDvoc\nHkMcRyNIQJL85idSUB/BtFfft5fWsKYjTZvhX8/t1fNdyClrUPNnfnT8MKRX\nA8okaVLz/c2UeG29rjAlcFcYy22k1loVjLQtcsfdT8rY1rP1NEct3JZDkCBc\nD+k2DcDk8GgrkJ2F/sbl1VXGtUc5CCGUdLGvfqMDNNlrLGTjb8V2XWwq9CcK\nc+HML9avVk8pc/90B2UyYPLZuWmOdHOwxUqyLMkhSnTu9LEWA5f7I/xSXUVg\nCXUNgOwBs/8sthmg+Ru6tr1aQCiRBL5IW1tGAmzb9ugQzFHt+aaaGKoR3VZr\n7hEgynl9eierY12ypGJSIG/VE6k58bkgd8F0SayHhVqxXEo3gAsvPFaVvtGG\n9R4tIOOypdGcXrJLME6GkEADfLJA9J/Hls332NoA1aPzdGoo5/c0OkvpxDDQ\nwhza\r\n=hpmY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFboYbYGFhaLG3d/KmpI2zIkX/k2LrvXUR9zGmXxB+iCAiBFv3yloCyd7SkT9t66wiz7tLs13IeAkJU0pR0gljjurA=="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20191014T134607Z.a97da2a.UL-65_1571060784867_0.33908062282178286"},"_hasShrinkwrap":false},"1.0.0-dev.20191015T074901Z.8b1dd87.UL-65":{"name":"ul-api","version":"1.0.0-dev.20191015T074901Z.8b1dd87.UL-65","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/nyc/bin/nyc.js node tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.6","gpii-express":"1.0.15","gpii-express-user":"1.0.2-dev.20191014T143404Z.150969f.GPII-3921","gpii-handlebars":"2.1.0-dev.20191014T141924Z.45a74ef.GPII-4100","gpii-json-schema":"2.1.2-dev.20191014T143306Z.8a372f7.GPII-4022","gpii-launcher":"1.0.0-dev.20190527T124956Z.9255cfa.GPII-2103","gpii-location-bar-relay":"1.0.4","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20191009T141140Z.32c9263b4.FLUID-6148","markdown-it":"10.0.0","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.23.1"},"devDependencies":{"eslint":"6.5.1","gpii-grunt-lint-all":"1.0.5","gpii-couchdb-test-harness":"1.0.0-dev.20190827T101451Z.024d2c3.GPII-3531","grunt":"1.0.4","grunt-jsonlint":"2.0.0","kettle":"1.11.0","node-jqunit":"1.1.8","nyc":"14.1.1","request":"2.88.0"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\n[http://ul.gpii.net](http://ul.gpii.net)\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n## Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  [http://localhost:6714/api/](http://localhost:6714/api/)\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n## Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n### Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n### Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: [http://localhost:6714/api/user/signup](http://localhost:6714/api/user/signup)\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: [http://localhost:6715/_utils/](http://localhost:6715/_utils/)\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n### Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n## Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.\n","readmeFilename":"README.md","gitHead":"8b1dd87e8fdede3fd11a589f018fe6f17e31cd47","_id":"ul-api@1.0.0-dev.20191015T074901Z.8b1dd87.UL-65","_nodeVersion":"10.15.2","_npmVersion":"6.10.1","dist":{"integrity":"sha512-HzqQR9KXOIHQ/EFwhtmypTlF2r3An6Qy2dOdaUAQGnoZHr8Rr1CU7yv7zd+xpnXPGZMXkZ75z36ifOBpBozbog==","shasum":"8fae5f9d880a944944e485781837eb902b2c6349","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20191015T074901Z.8b1dd87.UL-65.tgz","fileCount":152,"unpackedSize":1532305,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdpXoACRA9TVsSAnZWagAA7Y4QAJpnB5LP8/2NrLrYCk5s\nGAn5IaibBDDoUQJTLc7EzKvR7vUij+GNLTUR/zZu4sI3aLBMgZTD93mm7cNm\n1y73HFgO22jrdlRO9wer9HwfeZfNztqddFWozNZJVqqBp3NpxLqwuaTbEGUl\n1SFs6THnQ/rO/Ux6jxSTdWDdJBj1pTUtqewwsiuuFh+6vY3OS7cK0C+656om\n0+D7ozOw+gA6xxCARPHGIJJVceh8C+IZdLoenM1MoAKRho3gzV5LfHYcYJxv\nPOfd3fNMakR94Bpv8QauUFaM1tsAcGwpaoEM+13rnRvsB3LrEAT0cULidTDN\np+iYq2enhUgaIohkNNM1HKkzmxvl+SbJiZ1JWoMAHTGfbGP7Tr8hRUG6mfz9\nWZ0Rf1wPAURa9aTr7zNhmqH3r9JTgLRROz+WVDSBKEyFlkV+DqFcrw+OOGvJ\ntfb48pKYY3eq8v+CCs5zxJn9CYTEe62aK8KG/f1/aNGi35PFNSHi3zVQhIfs\nyY5EDeFTEbjjA3U4tf2x6LUXRv8d2pDWa2qQeYhGmNo6M6vxjnQC1UlbkhCK\ntiogJ4l4nsrKaKzq9VQIU223X6tt9vJVxLfmOelv5RRwmrAdFn1W1rkhqGks\nn2NhfLItGJM7/1+H9X8KWs9htqjbtvRMmx7yE37X7YsTqclg56ugizR9W0N7\n2awt\r\n=Kd8C\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDnpUSdKI+VRrHSadpJEkZ8rCNhH3+2UjWZppUL7icgugIgcyZAG/+IH91G0C7pC2DqBaBR3kH1ImcKVld9eAqh8h0="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20191015T074901Z.8b1dd87.UL-65_1571125760242_0.9711927370682287"},"_hasShrinkwrap":false},"1.0.0-dev.20191111T142607Z.e57bedc.UL-65":{"name":"ul-api","version":"1.0.0-dev.20191111T142607Z.e57bedc.UL-65","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/nyc/bin/nyc.js node tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.6","gpii-express":"1.0.15","gpii-express-user":"1.0.2-dev.20191014T143404Z.150969f.GPII-3921","gpii-handlebars":"2.1.0-dev.20191014T141924Z.45a74ef.GPII-4100","gpii-json-schema":"2.1.2-dev.20191014T143306Z.8a372f7.GPII-4022","gpii-launcher":"1.0.0-dev.20190527T124956Z.9255cfa.GPII-2103","gpii-location-bar-relay":"1.0.4","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20191009T141140Z.32c9263b4.FLUID-6148","markdown-it":"10.0.0","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.23.1"},"devDependencies":{"eslint":"6.5.1","gpii-grunt-lint-all":"1.0.5","gpii-couchdb-test-harness":"1.0.0-dev.20190827T101451Z.024d2c3.GPII-3531","grunt":"1.0.4","grunt-jsonlint":"2.0.0","kettle":"1.11.0","node-jqunit":"1.1.8","nyc":"14.1.1","request":"2.88.0"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\n[http://ul.gpii.net](http://ul.gpii.net)\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n## Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  [http://localhost:6714/api/](http://localhost:6714/api/)\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n## Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n### Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n### Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: [http://localhost:6714/api/user/signup](http://localhost:6714/api/user/signup)\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: [http://localhost:6715/_utils/](http://localhost:6715/_utils/)\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n### Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n## Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.\n","readmeFilename":"README.md","gitHead":"e57bedcee3f730505ba6ce1be95c7d97a4312174","_id":"ul-api@1.0.0-dev.20191111T142607Z.e57bedc.UL-65","_nodeVersion":"10.15.2","_npmVersion":"6.10.1","dist":{"integrity":"sha512-MKbKIUYwU7r0PFUKqVmqJtKINwDB9nqCiGGvXdg6fVAh07hGzIvZV3xJAyDUmXseTHfGMyvjDF7YZkBpmmmBeA==","shasum":"a96ac83474f5a671e0af18205f221ef8c881f67f","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20191111T142607Z.e57bedc.UL-65.tgz","fileCount":152,"unpackedSize":1532777,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyW/MCRA9TVsSAnZWagAAKyMP/izz7R0zRfOndpME9nkn\nR4q0TnBS/2c9Lmhgh54XD12OSxHJf+VIlpZSgnA7HRsWDwGYgCRpXnZxcZTz\nqAv+ViDfsw31q7dLeAjaH+uRM3kmt8ZnnKhIpIZg3tVrrHBZ8IIu6JF4UO+m\nahjSREOn6NmhHKlUaFx5HA1tF7fWPj3hED7mDmFJhWs7aAEoUTtNXKyR6fgH\n1AteOo/7eOFI0uSSfEmdhCDz1x9gNrflPHT2NISfUW1eepcScxO3fOTA9nxS\n7k65JAGvDDGfxo1qH5vEc5Qad+JE9gyPNA/DDJHDSoXNize9pjleyXNR71N3\nc5dX5QfWriO25T36e1cuol3LGxToNJDe9k72M7GRZczRCvFdkSGRCn1D8gUL\nHiGgH1tVc5K4i4fXy4vtibPdpzuRY9OyIlZiwy2/FHVvlLlCErjhd67ESjYI\nsyGtdbX2z7gKZM3CKXbW6kHXf/ehws+Y6/5GAyKFZNqdpuxI856oULvoyP3I\nEsHUQSgUyYZoba+NealQRPpqShfdm4fhMhLwZlxcjlw77bHi03yRBkPVNLHL\nVXrQ0d+Fz9pY4JhaTd/CYO04ZgOKM5jQabTQgdQC9ZSuitAo2EoKZPbuSHtR\nnd0b4+tTgLVOqtEz8IsitFGwqIpH7XH0sqxxDKtXD8l1rUBz0eKQG7//bbJH\n/L16\r\n=7pHh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCu/BgNuOR26iegxZXbS5el80usukVt3hQYtdCmKZdLOgIhAIAFAWbhPrmZ+S6EXKi7aGQpjzZEgCfPJcjdk2CTV9X4"}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20191111T142607Z.e57bedc.UL-65_1573482443747_0.09438892017469014"},"_hasShrinkwrap":false},"1.0.0-dev.20191112T103019Z.1360556.UL-65":{"name":"ul-api","version":"1.0.0-dev.20191112T103019Z.1360556.UL-65","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/nyc/bin/nyc.js node tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.6","gpii-express":"1.0.15","gpii-express-user":"1.0.2-dev.20191014T143404Z.150969f.GPII-3921","gpii-handlebars":"2.1.0-dev.20191014T141924Z.45a74ef.GPII-4100","gpii-json-schema":"2.1.2-dev.20191014T143306Z.8a372f7.GPII-4022","gpii-launcher":"1.0.0-dev.20190527T124956Z.9255cfa.GPII-2103","gpii-location-bar-relay":"1.0.4","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20191009T141140Z.32c9263b4.FLUID-6148","markdown-it":"10.0.0","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.23.1"},"devDependencies":{"eslint":"6.5.1","gpii-grunt-lint-all":"1.0.5","gpii-couchdb-test-harness":"1.0.0-dev.20190827T101451Z.024d2c3.GPII-3531","grunt":"1.0.4","grunt-jsonlint":"2.0.0","kettle":"1.11.0","node-jqunit":"1.1.8","nyc":"14.1.1","request":"2.88.0"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\n[http://ul.gpii.net](http://ul.gpii.net)\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n## Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  [http://localhost:6714/api/](http://localhost:6714/api/)\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n## Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n### Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n### Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: [http://localhost:6714/api/user/signup](http://localhost:6714/api/user/signup)\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: [http://localhost:6715/_utils/](http://localhost:6715/_utils/)\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n### Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n## Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.\n","readmeFilename":"README.md","gitHead":"13605562d2637f3fe0ba8c4f17e3f0c8e62f41dd","_id":"ul-api@1.0.0-dev.20191112T103019Z.1360556.UL-65","_nodeVersion":"10.15.2","_npmVersion":"6.10.1","dist":{"integrity":"sha512-+J3KWaGlQcTNhdb5C3VXl3HOGTPDe7OlO5ThwZ9FWkbzMTX4siZ22Ah4HPAXpzMtyJUtkKHPHEXOkaPxKYEMiw==","shasum":"116a04f4506292ca67f3581d2ba2d3ca783c0e38","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20191112T103019Z.1360556.UL-65.tgz","fileCount":152,"unpackedSize":1533845,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyonPCRA9TVsSAnZWagAAcmMP/0uwLcob8voa47yQ6e9H\nS/2X5p+9+MIOVpCpUCfRyzQfRhNOETWtfHwZE3aAF+25Z/eI//ZwgtK0ok+m\n6J8Tk7G4SLrRSprLOk8cUrhFh9CtmXWzysdqmfojIOXjGwvX0pXv3qA2AQ0f\nOdfgZ9ZIIhYnjLR6iCiWnSDiMGu79a6GzMkEzo15Gd/g75c+UuLgbUj8Kd1q\nq4Uc43vC8JNWwh05h2BgYYVszQIJYReAOWG75Z8FDMLsnVcNUtjNkhFivSQB\n3ruW9oWrgPvA0fkwwnHDG5Yk6SNaXBtxl3unmH9FJmVANZLlPZNV5rbOBtwr\nyhY18/3fd5ltXIWwGL0HtwZnq3B9fqRuvSA+7b4fHG/+3bGau80j74mVIMji\nMlg9nm4BOVcY0LBtblN/IyobRj0BVKP3Ipcg6BRqcPuxgh45BWIXUVxXAV7B\nZxJwCUlr+0kNXYAArcmddo+i7xWlvtL+nI1w9MyuGD6krGXLQE2SBY6lL++H\n1snRrhGKt0xyu5xT45xEQNYpSQaDvnEDW6sTkDRVC/g05ltTD6bWTttpMNhc\nZ6Nc9bb1y2n6Vsc6JRDgUUYLcssK2i8HculWdfZB2Fs+Ib0WOURMHD2lwJua\ng4LDyB504nQD9O+SrDFdwwDWYKOiY/urd5p28ZgxWrmoSn/chYdyRnfhojl1\nngcH\r\n=1j95\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEBGvtNelT3Mz82UvJxCXB6Sarg0fARwVXr3PXLW04XlAiBisb0qUwtk3zbaflid3PIFqzURjcdB7FYAVMDqrRzxmw=="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20191112T103019Z.1360556.UL-65_1573554638768_0.6103961548901573"},"_hasShrinkwrap":false},"1.0.0-dev.20200109T111055Z.0aac7fa.UL-65":{"name":"ul-api","version":"1.0.0-dev.20200109T111055Z.0aac7fa.UL-65","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/nyc/bin/nyc.js node tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.0.6","gpii-express":"1.0.15","gpii-express-user":"1.0.2-dev.20191014T143404Z.150969f.GPII-3921","gpii-handlebars":"2.1.0-dev.20191014T141924Z.45a74ef.GPII-4100","gpii-json-schema":"2.1.2-dev.20191014T143306Z.8a372f7.GPII-4022","gpii-launcher":"1.0.0-dev.20190527T124956Z.9255cfa.GPII-2103","gpii-location-bar-relay":"1.0.4","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20191009T141140Z.32c9263b4.FLUID-6148","markdown-it":"10.0.0","mkdirp":"0.5.1","ncp":"2.0.0","sharp":"0.23.1"},"devDependencies":{"eslint":"6.5.1","gpii-grunt-lint-all":"1.0.5","gpii-couchdb-test-harness":"1.0.0-dev.20190827T101451Z.024d2c3.GPII-3531","grunt":"1.0.4","grunt-jsonlint":"2.0.0","kettle":"1.11.0","node-jqunit":"1.1.8","nyc":"14.1.1","request":"2.88.0"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\n[http://ul.gpii.net](http://ul.gpii.net)\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n## Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  [http://localhost:6714/api/](http://localhost:6714/api/)\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n## Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n### Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n### Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: [http://localhost:6714/api/user/signup](http://localhost:6714/api/user/signup)\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: [http://localhost:6715/_utils/](http://localhost:6715/_utils/)\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n### Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n## Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.\n","readmeFilename":"README.md","gitHead":"0aac7fae22004b062cd2520e3a97ef7caf3e2072","_id":"ul-api@1.0.0-dev.20200109T111055Z.0aac7fa.UL-65","_nodeVersion":"10.17.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-d4dphbYCWvKQ2k29fgLCpBqykVKtUn30+KfUutsOwXv38g4tMjVjfQC588QzXq0eUoU1QDXefF6SxubZW4bWQw==","shasum":"4989ee5293e06bc57474d8588680332070bc989a","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20200109T111055Z.0aac7fa.UL-65.tgz","fileCount":152,"unpackedSize":1535077,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeFwqNCRA9TVsSAnZWagAAq8wP/R654js0iZ+2aNs1P8tp\n1vTxUSOvSCR8UfVAg078irl0J/i4aTUi9aTpQy6JinqpxW3ZCKattHmnJWEV\n6xHC9maYH6XTXy1EQfClnDV0EwXzaqYV5wtJ8VZkYLEP8ckFHKmvWtk3v8n4\nRwHsA9UXSuVOTUKbeiWUK4njtWAtcFYEyvyWYhiI1EiU/ySlGYzzlE3qUXDQ\ns3s12gDbiJtKi4BUnwNklkm8zCtNu4PlwNZwXqWpTc2CFDgFrONjb2y++uHm\nPmK1gRCsv3rdXuwaZmMWYPiSXxnBL4uzf7cx7UEBpfXvKMBpYABZp3cyOU+C\nNscZW+a5HnMPtRbTmHitzd3ZtZVfC+BGOIu/Z3Yr01bcn0GHZggtPH109E2h\n3Erp+aRPAZgH0GDb3HGv+h0+kViDm14IUD/jlkNdCufaQ60KKnAZ3EBWtIze\nh+ikFa3+X+ZVSW/k7yfaKWUPNLBNtPKKPVtD/EoG3oG9crZP32r+Z3afn1K/\nHg9gj/B+Sto2KgiAYV7R0/Pz0Pnc48GJw0oRUJ9JRXp8lHUm8jX8foUou/0U\n1CCKvMjsKWiyyb7rDky8O/sBU8GjYYhWuB9AamyoJHgwBTjClh/7Wzw4GBsw\nJll1XwgqFVxPGHGa7HcJPUoH+nnVxOQZHIbF2xVqbU8AqkYugfUdQWNNXmGp\nFjBe\r\n=2kCM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAPuxtLuVRFlEX7FvzailJhMtwgRMxRrXyVeE77M+M9wAiEA3qO9U1SSAUjYUXF50WP4NmyZsr1/EAdKTw7D7sMHbEQ="}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20200109T111055Z.0aac7fa.UL-65_1578568332602_0.1876130609514488"},"_hasShrinkwrap":false},"1.0.0-dev.20200731T124130Z.aa35fff.UL-65":{"name":"ul-api","version":"1.0.0-dev.20200731T124130Z.aa35fff.UL-65","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/nyc/bin/nyc.js node tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"fluid-binder":"1.1.1","fluid-express":"1.0.16","fluid-express-user":"1.0.2-dev.20200731T100501Z.31a286a.FLUID-6524","fluid-handlebars":"2.1.3","fluid-json-schema":"2.1.4","fluid-launcher":"1.0.0","fluid-location-bar-relay":"1.0.6","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20191009T141140Z.32c9263b4.FLUID-6148","markdown-it":"11.0.0","mkdirp":"1.0.4","ncp":"2.0.0","sharp":"0.25.4"},"devDependencies":{"eslint":"7.5.0","eslint-plugin-markdown":"1.0.2","fluid-grunt-lint-all":"1.0.8","fluid-couchdb-test-harness":"1.1.0","grunt":"1.2.1","grunt-jsonlint":"2.1.3","kettle":"1.15.1","node-jqunit":"1.1.8","nyc":"15.1.0","request":"2.88.2"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\n[http://ul.gpii.net](http://ul.gpii.net)\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n## Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  [http://localhost:6714/api/](http://localhost:6714/api/)\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n## Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n### Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n### Creating a New User\n\nThe UL API includes a copy of the [fluid-express-user/](https://github.com/fluid-project/fluid-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: [http://localhost:6714/api/user/signup](http://localhost:6714/api/user/signup)\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: [http://localhost:6715/_utils/](http://localhost:6715/_utils/)\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n### Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n## Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.\n","readmeFilename":"README.md","gitHead":"aa35fff6e0c93c5bb6f9cacbce102b10a3664956","_id":"ul-api@1.0.0-dev.20200731T124130Z.aa35fff.UL-65","_nodeVersion":"12.18.2","_npmVersion":"6.14.5","dist":{"integrity":"sha512-6+2hbX8LFUrlOO9uzBzkn5XCttrkijcFzkWuZfZIn6MjYJaRZaQwY/rxdf4etk5cSXCeevxBgr250ILRh0pgSg==","shasum":"a5c2ea1248e401dcedec0a6cb830e61e737fc991","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20200731T124130Z.aa35fff.UL-65.tgz","fileCount":152,"unpackedSize":1535178,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfJBGLCRA9TVsSAnZWagAAlFoP/iUnuP+ZT+cChxzpghyh\nYPXd9WSHN0LoHVHBqBm4qXYqBaDoskh40DJLtC7uXiuAdWk8VJayvLMu2hu6\nfgSc6gnGn6xbOv2qeZ7AJdNtuBaTLNjeHvFdlxzLG0dA4C3jFCca+xFtsl69\n/7vjS4TW/jBAP0REfQr1zI6jjgJ14QMAOZ3z7a4rMgRzvomSz70a+CLUr40b\ngMgmclnAOs7vM7eC5C7aW56tfJNLJuHhfzqdrcJ9CA6u0IpXEysiibjxF8yx\n2Xbove78V8UqoG3sY1MO6j5zbOYgv0brxvHAtH6k1Qd7PDvPGvKLvhaRsuhF\ncd7EAEYKhWjG6EpL/G+3LmMLEz2wA7U88JHCFkmwuM0ILKhs22B8phxWfobO\nIbdvEjzzsfOOvXq2SHwOjZ9zkNs0R3933i7NKshRG214TX6gSSzg3DY7/P0g\n5NdMQqIk4OlSWonMvntSNFu/vRHiCZtI0IG8RYFuHGFkjhFjoi954/zSXIuY\n9Z2QD9hGHBkmVu9/L+FsinvHGyaFeIFUrER+uf4vb6lBiQEN85q9BqoalSHD\nfXahlSCgpheBtuwJ4caSI7cFzIW1yYcbRyNFAj5WZSRpNvS9XwSEARkpGJGW\nuRPCmUdu5E+QWDjfLI1FtEduaT6Muki1UQ2n1XxjHsKrtAu3uSe8+8vLSD9r\npmWg\r\n=l/Bf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCWbePiQ8wkaTysDTUFSDN+cmOzzKS1tV19IXsHp8NinwIhAMRZwdtYyqSJevChIvqN0Ko7jqQmnatU3JjmKTjOpFpe"}]},"maintainers":[{"name":"amb26","email":"amb26npm@ponder.org.uk"},{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"}],"_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20200731T124130Z.aa35fff.UL-65_1596199307344_0.901338695480439"},"_hasShrinkwrap":false},"1.0.0-dev.20210412T131821Z.28c2e25.UL-65":{"name":"ul-api","version":"1.0.0-dev.20210412T131821Z.28c2e25.UL-65","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/nyc/bin/nyc.js node tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"fluid-binder":"1.1.1","fluid-express":"1.0.16","fluid-express-user":"1.0.2-dev.20200731T100501Z.31a286a.FLUID-6524","fluid-handlebars":"2.1.3","fluid-json-schema":"2.1.4","fluid-launcher":"1.0.0","fluid-location-bar-relay":"1.0.6","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20191009T141140Z.32c9263b4.FLUID-6148","markdown-it":"11.0.0","mkdirp":"1.0.4","ncp":"2.0.0","sharp":"0.25.4"},"devDependencies":{"eslint":"7.5.0","eslint-plugin-markdown":"1.0.2","fluid-grunt-lint-all":"1.0.8","fluid-couchdb-test-harness":"1.1.0","grunt":"1.2.1","grunt-jsonlint":"2.1.3","kettle":"1.15.1","node-jqunit":"1.1.8","nyc":"15.1.0","request":"2.88.2"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\n[http://ul.gpii.net](http://ul.gpii.net)\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n## Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  [http://localhost:6714/api/](http://localhost:6714/api/)\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n## Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n### Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n### Creating a New User\n\nThe UL API includes a copy of the [fluid-express-user/](https://github.com/fluid-project/fluid-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: [http://localhost:6714/api/user/signup](http://localhost:6714/api/user/signup)\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: [http://localhost:6715/_utils/](http://localhost:6715/_utils/)\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n### Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n## Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.\n","readmeFilename":"README.md","gitHead":"28c2e255353d9b85906adec408e3eede9f4e413d","_id":"ul-api@1.0.0-dev.20210412T131821Z.28c2e25.UL-65","_nodeVersion":"15.14.0","_npmVersion":"7.7.6","dist":{"integrity":"sha512-MPfGrFoGrhIyHUm2vAncD7PWmjU/TPDxPgjSUvpDsFsUaxoIk2Umrf8c97DNmq/5O/qFWow81xeorpSmfMDAqg==","shasum":"e054890f3531cdd6a4cf2e354115b7e9c880bf73","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20210412T131821Z.28c2e25.UL-65.tgz","fileCount":152,"unpackedSize":1535146,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdEi5CRA9TVsSAnZWagAA7gwP/2FUYnsBovqnurQoNny2\n2L5J5QNT+v5pMaRlFdP51NUNxbDfcyUnQxKIdHv7Ou6mpY8QDcAE+OUpRFIZ\njCn/NKJDLCUP5aaPmkN8nis8S+slGKIMPVuwk2KYhzcSJk6q2bWjEY2OJb0u\nPgV8ZdNmlRgsLw7mMZ7GBtgROspDWumMHXMMd2jG+fG2fODOqCpFGUxCFk8E\n4mtP9qU6Xgo09r7K/jZzK/dDQjHPEssdwU9DUn2+mlxWZi5AdpiYuE4bJO1x\ntJ/BF2KgP2ZUZn3cwNoeQNeve8crIJAgPefjvwbDgyCQUcBfcZelHIaXR7Eb\nb926cCxN/Jf3v+B2p3wDtFJIsXglWaWm5nioD7sGoTnNpn06XsS6XRm5ue5T\nOdH4byvBJfhoBRRAStB3OHasKsXnawFhTUT98WzkB5st0RXfx11bpNnzNovJ\nmWCOYH/M/Y5+PE2wVea0P65kZqryKJMyOfLbzzylEuX7RewDOmM92yUkN2IK\neV500tmmDVGbeMrw2bxlDaUUuGfhRl0geMi4wOruwkKu1W2DXfMWTDTkqsoI\n9eKwBsaiyUCl0D7NVSJtcKgK5b3bgfYS3trt3s7297OsvXnRwC4O5yjz7jYp\nNg3in5nyXrCFu9HXwmOJfR9P9fimOU5lj6jtmEyBTa2PYntkIQx0SAipzAy4\ndr/H\r\n=bNAZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCfdD8Aks4p3bLflpoATaGokBD6bqll8PBIQsV+eFZqUAIgUA9HxLbQXXeYnJoaTLL/TPnyfbL8Pnmi2wZrVWQC9SE="}]},"_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"directories":{},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},{"name":"amb26","email":"amb26npm@ponder.org.uk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20210412T131821Z.28c2e25.UL-65_1618233528872_0.7730966529182683"},"_hasShrinkwrap":false},"1.0.0-dev.20210413T091744Z.bfa8131.legacy-infusion":{"name":"ul-api","version":"1.0.0-dev.20210413T091744Z.bfa8131.legacy-infusion","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/nyc/bin/nyc.js node tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.1.0","gpii-express":"1.0.15","gpii-express-user":"1.0.2-dev.20191014T143404Z.150969f.GPII-3921","gpii-handlebars":"2.1.0","gpii-json-schema":"2.1.2","gpii-launcher":"1.0.0-dev.20190527T124956Z.9255cfa.GPII-2103","gpii-location-bar-relay":"1.0.5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20191009T141140Z.32c9263b4.FLUID-6148","markdown-it":"11.0.0","mkdirp":"1.0.4","ncp":"2.0.0","sharp":"0.25.3"},"devDependencies":{"eslint":"7.1.0","eslint-plugin-markdown":"1.0.1","gpii-couchdb-test-harness":"1.0.1","gpii-grunt-lint-all":"1.0.7","grunt":"1.1.0","grunt-jsonlint":"2.1.2","kettle":"1.12.0","node-jqunit":"1.1.8","nyc":"15.0.1","request":"2.88.2"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\n[http://ul.gpii.net](http://ul.gpii.net)\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n## Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  [http://localhost:6714/api/](http://localhost:6714/api/)\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n## Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n### Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n### Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: [http://localhost:6714/api/user/signup](http://localhost:6714/api/user/signup)\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: [http://localhost:6715/_utils/](http://localhost:6715/_utils/)\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n### Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n## Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.\n","readmeFilename":"README.md","gitHead":"bfa8131bbce6b47910c0b7b0a49496768b1f8c9f","_id":"ul-api@1.0.0-dev.20210413T091744Z.bfa8131.legacy-infusion","_nodeVersion":"15.14.0","_npmVersion":"7.7.6","dist":{"integrity":"sha512-CeoPlZBjYJn428VYwn6P20s4CLZUtxK5yOZqAJKQQslnroJWheTmqhieF6YMUW+zly0ocQ0n3+T5FVQdLS7nDQ==","shasum":"3eca480cdee662bee7c8593a2597a789f680a136","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20210413T091744Z.bfa8131.legacy-infusion.tgz","fileCount":152,"unpackedSize":1535050,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdWHMCRA9TVsSAnZWagAA7HsP/2/M/YHucPRTT6WqRcWj\nJGzVd+TWAQBm/gR7wHDafupV8HAwQjrm/B5PrXxGcYtZDxWFeZAibArZOel8\n9hHs+s81I7MM0pwXBaC4Wtw1NlZni5MjQJeyD8Cpngi/qkJcUGRKw1gwiexO\nn/aDJnIhLPnWEshM97l2mKJ7kNKyK8TUXcR/qfXo7GF0OoomWpUuQrCb2oyO\nHlKsLxcdX7N8ck+NeAgQrpZ1yd9Qe0tVbLJ1dLtwIT/JpgUoFrXytpIquKOW\njmPAM0vgHdonj/HdI9AoDZ3cKiDFbx9gz7GkvkCcGaEi98n79d94Yll2uDdT\nFFLQ1owagH/4dNohKooNk9nHtgxpbOC/tkrZ4SmaIMrHzKqEjypL5ugFLsul\nHT7YdCtIHzGvQR7uqFd+5nKfmXYPJ8XWy1eQPCofItNjsFh9biojPj0dgK8d\noNq6p8pME8bIjI/ClQyfll6x/4rMj7xMMCVFsiNkTSs7bfLFDPs6r+Z1NGmA\nGvqqKVXR2B27grgTM+bR0EbWYtzX+O2NzOJb4TFtJ1+IsmpJ3hCPYXzE2Szi\nMkeGnsg3RkRn281t909u24iQO+rVBdZysvrWX8kHGGDZ61WfXWkDaRpIBJkw\np5MOs+JaplsAU6l0qbhwvV5mPh7nvTwP6mM8/eRwmedHEOmmeD0n/bifKy+Z\nyL5x\r\n=iRfb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHckwRHEIcIq+or6Nu+RBRCImwfaMj0fEn5S8aTRb3P3AiEA40VEcaq3IxbG1GNQYIDmBR6asE+NSrYtKscBC5ODyTE="}]},"_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"directories":{},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},{"name":"amb26","email":"amb26npm@ponder.org.uk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20210413T091744Z.bfa8131.legacy-infusion_1618305483869_0.38533558816540703"},"_hasShrinkwrap":false},"1.0.0-dev.20210420T120913Z.95bff0f.eastin-integration":{"name":"ul-api","version":"1.0.0-dev.20210420T120913Z.95bff0f.eastin-integration","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/nyc/bin/nyc.js node tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.1.0","gpii-express":"1.0.15","gpii-express-user":"1.0.2-dev.20191014T143404Z.150969f.GPII-3921","gpii-handlebars":"2.1.0","gpii-json-schema":"2.1.2","gpii-launcher":"1.0.0-dev.20190527T124956Z.9255cfa.GPII-2103","gpii-location-bar-relay":"1.0.5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20191009T141140Z.32c9263b4.FLUID-6148","markdown-it":"11.0.0","mkdirp":"1.0.4","ncp":"2.0.0","sharp":"0.25.3"},"devDependencies":{"eslint":"7.1.0","eslint-plugin-markdown":"1.0.1","gpii-couchdb-test-harness":"1.0.1","gpii-grunt-lint-all":"1.0.7","grunt":"1.1.0","grunt-jsonlint":"2.1.2","kettle":"1.12.0","node-jqunit":"1.1.8","nyc":"15.0.1","request":"2.88.2"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\n[http://ul.gpii.net](http://ul.gpii.net)\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n## Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  [http://localhost:6714/api/](http://localhost:6714/api/)\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n## Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n### Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n### Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: [http://localhost:6714/api/user/signup](http://localhost:6714/api/user/signup)\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: [http://localhost:6715/_utils/](http://localhost:6715/_utils/)\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n### Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n## Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.\n","readmeFilename":"README.md","gitHead":"95bff0f009e3923a3af249e32f4d95f818f6112f","_id":"ul-api@1.0.0-dev.20210420T120913Z.95bff0f.eastin-integration","_nodeVersion":"15.14.0","_npmVersion":"7.7.6","dist":{"integrity":"sha512-hKqUCMP7fNbQEAxwwnOh8wSLuFJuhkakrE66OYer+orkT6x13SxQzuLFy32f5JI/4hHG31LCknU90Pznf4U4gg==","shasum":"f17244e3b38647efbf59150fa037cdaa30807252","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20210420T120913Z.95bff0f.eastin-integration.tgz","fileCount":153,"unpackedSize":1535198,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgfsSDCRA9TVsSAnZWagAA3awP+gPfpjmMypoa9Hf80YN0\nbDOJDKeKAyFSX31+oOHqTnIhRZjm0sZsTChByHHsE+FF7CNnAMdHMesHavlo\nCDx6/aDD/LhY8zBGbg/c5QeU42PukUDP3qSsoUzXGsa99rvKcP4ri/1N/6eM\nZwnuPItUigRJPGLLBV3oTU96P0JmtiiIxcN7ZzX6FUsDPcM3dVxwuOp7BYMN\nDefuwdEYVrSzhcZm4J8+sjBD8wzX1toam11uRwArVA9FBlIifuuClIo/LbKh\nZrG7o03L6Yt9EbgAUKokxcx/ZRCAkuaUj//QxnkoesAbjlJVh6ZKfTrWwmau\nJTa2x7TWdPGg8tP3s8S/fLEG5XHbWrsHVDGWb34o/r33IXhm2Cdqmhiau7C7\nIInEXfdjr8GrKIbwQTrwejXumAU3ugQGfReuinjGTsHEc/CsC/8zyPgmnCPT\nZtP5hxmvBC4ZwdAqW2M9VcKreOjMlPXG5V2vWjAXCXz4AlIyjskUrgDiM4dD\nQbsMtG/R5ogXiwGm4kX4BrTOhtv4/eotZ3OYIj1/Otw44ys3q4gMjhCAa365\nc8a2/CNn7ON2nnbSm45KLTonAgroHATjFEeXR2c2gppiVFvrf3Nw1fBMYbTA\nok834SR2s7qQci1xthMLaCUWebZ9C3hLfJVAQ0VRnSTS/AQK15xXArgWW6eN\nGy9z\r\n=QtOu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCoqRhYgbbh8iuNpMVWI/cruNBkeHH58AQ8bumuG4YQpAIhAM9wZsHWwRErSWSV/+eCcJSYIBuMPkXliGLl8cj/ofwr"}]},"_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"directories":{},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},{"name":"amb26","email":"amb26npm@ponder.org.uk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20210420T120913Z.95bff0f.eastin-integration_1618920578752_0.5256846553497119"},"_hasShrinkwrap":false},"1.0.0-dev.20210426T141525Z.6754ccd.eastin-integration":{"name":"ul-api","version":"1.0.0-dev.20210426T141525Z.6754ccd.eastin-integration","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/nyc/bin/nyc.js node tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.1.0","gpii-express":"1.0.15","gpii-express-user":"1.0.2-dev.20191014T143404Z.150969f.GPII-3921","gpii-handlebars":"2.1.0","gpii-json-schema":"2.1.2","gpii-launcher":"1.0.0-dev.20190527T124956Z.9255cfa.GPII-2103","gpii-location-bar-relay":"1.0.5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20191009T141140Z.32c9263b4.FLUID-6148","markdown-it":"11.0.0","mkdirp":"1.0.4","ncp":"2.0.0","sharp":"0.25.3"},"devDependencies":{"eslint":"7.1.0","eslint-plugin-markdown":"1.0.1","gpii-couchdb-test-harness":"1.0.1","gpii-grunt-lint-all":"1.0.7","grunt":"1.1.0","grunt-jsonlint":"2.1.2","kettle":"1.12.0","node-jqunit":"1.1.8","nyc":"15.0.1","request":"2.88.2"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\n[http://ul.gpii.net](http://ul.gpii.net)\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n## Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  [http://localhost:6714/api/](http://localhost:6714/api/)\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n## Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n### Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n### Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: [http://localhost:6714/api/user/signup](http://localhost:6714/api/user/signup)\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: [http://localhost:6715/_utils/](http://localhost:6715/_utils/)\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n### Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n## Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.\n","readmeFilename":"README.md","gitHead":"6754ccd56b9c69e798decff43e696ce517de32cf","_id":"ul-api@1.0.0-dev.20210426T141525Z.6754ccd.eastin-integration","_nodeVersion":"15.14.0","_npmVersion":"7.7.6","dist":{"integrity":"sha512-xyI1IURUk76m+n4Vsm3hZC13w1nsDAEosHx4U9IMr5rQK1NeUy8+Ia4CQn4ysC6DrNGaa0udFSva2NcWh7luvg==","shasum":"7fd28c2a3d0a37ae7d8ee2cd9b5eae66e6e61640","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20210426T141525Z.6754ccd.eastin-integration.tgz","fileCount":153,"unpackedSize":1536162,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJghsudCRA9TVsSAnZWagAAMboQAJ1syyPuu/iupoPkjCR4\nxbpc6pg2+CZ40CS+zevBs6FRG+HHWizlY2kz9szKi9HFLICQaAoB/FKJuwqQ\n/UDC6hg3gqtXyUHwmOD/Yi/UOyKP4fgsezyfXU2NGCjj1TA0cXgfN6W2C8yC\njYuIBc/BrIWYbrhggeizzoCnXshuwh47kOrqqak/FLTchRVHQaJH/JelvisL\nQMB4QIJvGnCayKH6ZCc1bE2ntb97oSOS27jgMwJV3yLsq6cY3zKIrBJvgLhL\nzBTq8ltHVdi04KXJq2qi5TbFGPqTn0FwJ/jA0IDuaUb45cOSxSbGQLzvn9s5\nP9yh2HgugiMcciT8I4677ARFFh+xNkaZjFw8cpJhHZWxEK4DKuaf1Qjhm7wa\n+Xkf6fE4afMpmfFdLgbILDGd45Z8hZOtA9QAFGV3gBq0oP0nXclj9wRJ4SMm\nJ4ZlhimSiANEF9Rwu5vI3g09oizKZai/fjVfFZXOQ275pReThXhEludA4PRN\nK8FojKx4MBY2oGWE7R+5NDmr9c0zJqjmUBbOHVJds0Lh5etoLcn3R3r6beg+\nkcO2pVPwbIpvksBX+GIMwrgOOYr6IFfOzmVz1kCdKh9YCkygyumGho0V6Ca0\nlxdNlSNv0Kt8JRyGjZ/b0voJR7F6Lzf7KFZj+hVANQfrd24M+z9HbDYERiM0\nX8o4\r\n=+n91\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCc6Wr9poHNPJLpYP9GIxxLtEm4O0gt5Iq78NNR1+X2TwIgA+iPtOegplkBaXVdfuPc0T01kL4P4dQ9xC/o0dD6MNM="}]},"_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"directories":{},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},{"name":"amb26","email":"amb26npm@ponder.org.uk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20210426T141525Z.6754ccd.eastin-integration_1619446685294_0.49211901261706514"},"_hasShrinkwrap":false},"1.0.0-dev.20210428T121006Z.41f8975.eastin-integration":{"name":"ul-api","version":"1.0.0-dev.20210428T121006Z.41f8975.eastin-integration","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/nyc/bin/nyc.js node tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.1.0","gpii-express":"1.0.15","gpii-express-user":"1.0.2-dev.20191014T143404Z.150969f.GPII-3921","gpii-handlebars":"2.1.0","gpii-json-schema":"2.1.2","gpii-launcher":"1.0.0-dev.20190527T124956Z.9255cfa.GPII-2103","gpii-location-bar-relay":"1.0.5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20191009T141140Z.32c9263b4.FLUID-6148","markdown-it":"11.0.0","mkdirp":"1.0.4","ncp":"2.0.0","sharp":"0.25.3"},"devDependencies":{"eslint":"7.1.0","eslint-plugin-markdown":"1.0.1","gpii-couchdb-test-harness":"1.0.1","gpii-grunt-lint-all":"1.0.7","grunt":"1.1.0","grunt-jsonlint":"2.1.2","kettle":"1.12.0","node-jqunit":"1.1.8","nyc":"15.0.1","request":"2.88.2"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\n[http://ul.gpii.net](http://ul.gpii.net)\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n## Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  [http://localhost:6714/api/](http://localhost:6714/api/)\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n## Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n### Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n### Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: [http://localhost:6714/api/user/signup](http://localhost:6714/api/user/signup)\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: [http://localhost:6715/_utils/](http://localhost:6715/_utils/)\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n### Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n## Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.\n","readmeFilename":"README.md","gitHead":"41f8975628e2742c1be4008f34f00da96d771af9","_id":"ul-api@1.0.0-dev.20210428T121006Z.41f8975.eastin-integration","_nodeVersion":"15.14.0","_npmVersion":"7.7.6","dist":{"integrity":"sha512-tOgDNCK/idbNlF1dfsYukebfT2gWxZMDKf64veHKfH2anxVloAWVjXdVlpWIBiFfrdSq5ck3A1i1YXPsKxoE1w==","shasum":"5e613aa57f4a2d50e7c28cf2fe8767ee295ab08f","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20210428T121006Z.41f8975.eastin-integration.tgz","fileCount":153,"unpackedSize":1536176,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgiVCpCRA9TVsSAnZWagAA2YAP/i/DrfWL1L4cZrHMXht/\naTthrpGUz6BsqW6feCcN69gDZn2veYw7J8boOX80kua+sgF8/XIjXG7ASTUd\nvlUVc76+Huw1JqQtIwqcoNWWf4RMUOMeXeWOYp9RMu2c4Pk90dHQiZzCEFfG\nu1ojm740ZbDMcCF25ymu2UO8VuJOaU57ui0WJYVba7dO0/yVYfGX1AY2NPFL\n7ZSFrfOUW5b26pluPMkst1AIeOr11BXzR6g8GqifrUQwi0eyMHowzSc/YPKe\n+c60Effego0aSmHBuoMzAR2L3H0odjpqiJ1XrOfAxaiz2xEopwzu1odd8l+d\njRaazyJPVkHpz3+3cPR/rELNWuJK/OYh8K78Ct3C/c1CQfz2Vgce4y/82jbj\nTGWUK3fz5p6jXhQPjLNW/8cAW7yEJjWlVgbMALQpkm3aE2LLivi907p+3QDu\n4irvQxk2rCfwJibFBjmgWD3yfz0XMmljfxtNhAUVmYRzWa73haT8ROsDXmPq\nSMT5YA+S+sw2HAItbhxLJzo0VYyfkFfvX9OMeh/BV/Pc3Gn9Rjmy9DUMYz3+\nrRyKmxDb32q6D9NPI1d04Eym/jRV+GP40gzsK+xIy4rV/oANFWJEW5u5MAa+\nv+3CF1gmRshNRCyzBijBsqa3a3imAvLyLa2Ktrfinh3VbPXenWuzUrBudMnL\nmSjX\r\n=VTjs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCg2h8SeWU6uy8UpHYIMZrPgWEdeHr0KY8t+AlIuRp6fgIhAMdJmzdX09GanQfJETDP+tdtHlksOw7Vej5O3Bqu3yyJ"}]},"_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"directories":{},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},{"name":"amb26","email":"amb26npm@ponder.org.uk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20210428T121006Z.41f8975.eastin-integration_1619611816905_0.02630759028048102"},"_hasShrinkwrap":false},"1.0.0-dev.20210428T121513Z.6e6bbd8.eastin-integration":{"name":"ul-api","version":"1.0.0-dev.20210428T121513Z.6e6bbd8.eastin-integration","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/nyc/bin/nyc.js node tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.1.0","gpii-express":"1.0.15","gpii-express-user":"1.0.2-dev.20191014T143404Z.150969f.GPII-3921","gpii-handlebars":"2.1.0","gpii-json-schema":"2.1.2","gpii-launcher":"1.0.0-dev.20190527T124956Z.9255cfa.GPII-2103","gpii-location-bar-relay":"1.0.5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20191009T141140Z.32c9263b4.FLUID-6148","markdown-it":"11.0.0","mkdirp":"1.0.4","ncp":"2.0.0","sharp":"0.25.3"},"devDependencies":{"eslint":"7.1.0","eslint-plugin-markdown":"1.0.1","gpii-couchdb-test-harness":"1.0.1","gpii-grunt-lint-all":"1.0.7","grunt":"1.1.0","grunt-jsonlint":"2.1.2","kettle":"1.12.0","node-jqunit":"1.1.8","nyc":"15.0.1","request":"2.88.2"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\n[http://ul.gpii.net](http://ul.gpii.net)\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n## Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  [http://localhost:6714/api/](http://localhost:6714/api/)\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n## Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n### Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n### Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: [http://localhost:6714/api/user/signup](http://localhost:6714/api/user/signup)\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: [http://localhost:6715/_utils/](http://localhost:6715/_utils/)\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n### Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n## Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.\n","readmeFilename":"README.md","gitHead":"6e6bbd81128cf5de8b803a8d7a3b139432a3fd62","_id":"ul-api@1.0.0-dev.20210428T121513Z.6e6bbd8.eastin-integration","_nodeVersion":"15.14.0","_npmVersion":"7.7.6","dist":{"integrity":"sha512-nmZ7Ch9Rb8xU57CvuhpWoqiiiDi5F1eYKiEq5JqoFUprCHkUMJopBwgOP/Bs6bEezoUHfonfJg9unNLXrG5m+w==","shasum":"c75f43ba503ffff1a30d9cf3b9f0b72ac37a1d35","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20210428T121513Z.6e6bbd8.eastin-integration.tgz","fileCount":153,"unpackedSize":1536218,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgiVHcCRA9TVsSAnZWagAAqg8P/1t2yO79O8zyUbX5lzmY\nhqdS99chHlTnz8YswhxjRlstjFtFF4rtZ0HLH/PDbdTAKo+rN161ZIvejy/r\nU3TrMPvnCc6RgahCVr6jaYtXGeg/0Wyu9CzAJcsGh12JhmACsooqOaqUmI4O\nPDA2XRLAldn/UXFarkj1TWwA9hCf5fWQgx9jbGudHIPfuQkHxgHpCdVBVbfK\nZne6Xj+N+JcoG+qC37qhdxKKoyasv35fYPT2WSUYMuRup/Q52NphcbsBYo+F\nD5s4vTDoHuW/XERKeoMCXpphaZL96YL8TMeicoMvd11tT9wyRktovK+hgxzR\nGM6MCuExqvzdTup6uCSobsEDqiSXSsALz558iPPqHs96hCSoAM9nqhw5Yu3M\nMMEpzwCCkBP/4sRR3Yb53ZPHT2TZQPJTNNWBnn4SpyA8Wwy3hTvo8R5gzIka\nY7gDVxZwBcDU2OTbyZJZAxUgDpvfRK99AqO/oPx35PxAveqau7SjCav/XM44\nBilPqgmXsHqrQaAludRC4SJoHkBDvQC/bdJdXsecp8OMVIebkb4mzDeSzIm7\n8WHPPtT70AZHcrswGB0xRNFi39e2wlCsioMKeref9Xipt2EDFXgjnZm32pox\nNbRyligzwZOMRqNON+ZN4RZwEKaSZehaKr7K4JP2g/Q+e6RY6bTBybdyO6m5\nsTv1\r\n=x7I4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE+rRAT8+7d+cNyx9W8dZYZpGDatYWZ06BFaLr7nr0bhAiBqN9iyXlQ32CCZkHvCmMPCZ7ABP3fLwuI1HNFGb3FMWg=="}]},"_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"directories":{},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},{"name":"amb26","email":"amb26npm@ponder.org.uk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20210428T121513Z.6e6bbd8.eastin-integration_1619612124032_0.44406391594685823"},"_hasShrinkwrap":false},"1.0.0-dev.20210504T091552Z.d4eb279.eastin-integration":{"name":"ul-api","version":"1.0.0-dev.20210504T091552Z.d4eb279.eastin-integration","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/nyc/bin/nyc.js node tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.1.0","gpii-express":"1.0.15","gpii-express-user":"1.0.2-dev.20191014T143404Z.150969f.GPII-3921","gpii-handlebars":"2.1.0","gpii-json-schema":"2.1.2","gpii-launcher":"1.0.0-dev.20190527T124956Z.9255cfa.GPII-2103","gpii-location-bar-relay":"1.0.5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20191009T141140Z.32c9263b4.FLUID-6148","markdown-it":"11.0.0","mkdirp":"1.0.4","ncp":"2.0.0","sharp":"0.25.3"},"devDependencies":{"eslint":"7.1.0","eslint-plugin-markdown":"1.0.1","gpii-couchdb-test-harness":"1.0.1","gpii-grunt-lint-all":"1.0.7","grunt":"1.1.0","grunt-jsonlint":"2.1.2","kettle":"1.12.0","node-jqunit":"1.1.8","nyc":"15.0.1","request":"2.88.2"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\n[http://ul.gpii.net](http://ul.gpii.net)\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n## Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  [http://localhost:6714/api/](http://localhost:6714/api/)\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n## Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n### Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n### Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: [http://localhost:6714/api/user/signup](http://localhost:6714/api/user/signup)\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: [http://localhost:6715/_utils/](http://localhost:6715/_utils/)\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n### Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n## Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.\n","readmeFilename":"README.md","gitHead":"d4eb2794cb683a67be62cfebb4576ad8d649213a","_id":"ul-api@1.0.0-dev.20210504T091552Z.d4eb279.eastin-integration","_nodeVersion":"15.14.0","_npmVersion":"7.7.6","dist":{"integrity":"sha512-paVp6hgNiN7E/I0Uv1CDzRPuBrCMTj+gbEHXqrdnjvlCqdibRVmBy3Jxeuz/ZzS60CIcBaxGjcUIbyDw9OBTPA==","shasum":"bb76e07c63a248e538d4621ed035ab43be298b85","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20210504T091552Z.d4eb279.eastin-integration.tgz","fileCount":153,"unpackedSize":1536292,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgkRFNCRA9TVsSAnZWagAAFcsP/jt0eLeyMUd05PwiWMZw\nPW6g6I1U1Vb1OWSLjFnCAf3gPpHHMPRukyqwYuuIg0mTRm/uegaJxGq1UdfL\nA8CZzFUr+Gy5UutmGK2zzPSCANvZNqWIdjxduYjNbtYVso/4FVpVT5DA/ZWz\nouCIwLZWHcw7Nbj6lRBsE+uyK04qV2+WU2CgmK7RA7iKBZhd9ruBpjHfOuLN\n7fkxuaNOasRoBtBs/S03Ew1jBedfv9RDS2xwSwsL4aCgjsZJWdmH9jQRKqPw\noEtpLAUgDCOsFfcZokGchaj3DsNa/yeCnmsMu4nkfaSLRjnbThsPX6MgIteA\nM4UdMInJ+UEMtab8TndN40lXAsEqavKQdmKvnac1SryEJV7vd6YzzfDhHFb0\nAxDCAnhNpf7FDCElz5fBo+1ftoaGLIlx4HiGhrVEYO/T8CzgXWJQczrrjO6G\ng5Xfq8uycuH632XOvJ/7Iad2Kh4Mj9QaYg6nUrbYhA3swGQLcXzlgD6w6pnU\nKXBwcjWBpHm+rIRh2Q0X94PGb6oZ5ZN2WDSyLyaNj9J/UtyKSKEea0kN8An3\nfP8b5bMbS0bGkA7IQoCvJnTCjnhoAE0UYvkRcqiH+k6Kj3+FBTAlY7LmWhjn\nrf2/yQZ6C1RcIFIxPN8d3QPKt8XsHqlxF9Op3QNYFjOoLg5pR+zc1c8aDb7Y\nlB2Y\r\n=YfZj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCpdGe19tucNGkNu/HmJ+bPL69jzX2pPhU++A91dAyrLgIgOuVz/7+O8zuwZnetIBHHzgNTk7/yp6lOF60VI37aRW8="}]},"_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"directories":{},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},{"name":"amb26","email":"amb26npm@ponder.org.uk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20210504T091552Z.d4eb279.eastin-integration_1620119885221_0.2074930049306909"},"_hasShrinkwrap":false},"1.0.0-dev.20210505T121006Z.05b980d.eastin-integration":{"name":"ul-api","version":"1.0.0-dev.20210505T121006Z.05b980d.eastin-integration","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/nyc/bin/nyc.js node tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.1.0","gpii-express":"1.0.15","gpii-express-user":"1.0.2-dev.20191014T143404Z.150969f.GPII-3921","gpii-handlebars":"2.1.0","gpii-json-schema":"2.1.2","gpii-launcher":"1.0.0-dev.20190527T124956Z.9255cfa.GPII-2103","gpii-location-bar-relay":"1.0.5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20191009T141140Z.32c9263b4.FLUID-6148","markdown-it":"11.0.0","mkdirp":"1.0.4","ncp":"2.0.0","sharp":"0.25.3"},"devDependencies":{"eslint":"7.1.0","eslint-plugin-markdown":"1.0.1","gpii-couchdb-test-harness":"1.0.1","gpii-grunt-lint-all":"1.0.7","grunt":"1.1.0","grunt-jsonlint":"2.1.2","kettle":"1.12.0","node-jqunit":"1.1.8","nyc":"15.0.1","request":"2.88.2"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\n[http://ul.gpii.net](http://ul.gpii.net)\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n## Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  [http://localhost:6714/api/](http://localhost:6714/api/)\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n## Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n### Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n### Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: [http://localhost:6714/api/user/signup](http://localhost:6714/api/user/signup)\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: [http://localhost:6715/_utils/](http://localhost:6715/_utils/)\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n### Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n## Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.\n","readmeFilename":"README.md","gitHead":"05b980db900560b1fd264ff83d50f1508f065358","_id":"ul-api@1.0.0-dev.20210505T121006Z.05b980d.eastin-integration","_nodeVersion":"15.14.0","_npmVersion":"7.7.6","dist":{"integrity":"sha512-4QSJzNqzn8UL9ZbQiKN1kkV/4Cz7nXFLONine17YR/U9WS/Wf+fE5eUISPtw9ZHpJxRNb3D6EU/2o9ZRqwSRZw==","shasum":"ad1399df1ef35616c6caa091217ebafe07448c1e","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20210505T121006Z.05b980d.eastin-integration.tgz","fileCount":156,"unpackedSize":1539716,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgkosqCRA9TVsSAnZWagAAIq4P/3yppepCqfE9X3X1iJ88\nOGbfdA5JMB7p2iS+1uTGp4tgYyM9gFG54pwsLjmQ6fXu7A/Zn/RZlsL82L//\npH+zwGAO1G5EAE38rgObWLRWGM/yBBXnRpWHZ1hPsqcyIg8yPxn2okacS/90\nDs6wmG6hIunA/JdKq8S9BtqRNEE4X+R2K10n7iZYvcMMOKIK9Bog3n7c9nF0\nGjEzjd+RW9LagWMRmEmg0KSL6Q5sEKRR65wWd2r3RlzhiPKUjBLwvPTQcKQr\nXFM3WYwvV9JpqG5+wGVa5Al+vAZgeaYUz0p0aNSXxOubeq69If34cjBCDbQa\nCiYU/ZcA7vgEwJIT3lLZCxBVBK1vIcpm4UsttDdUSYjXPypWmK/zhyVIyZMy\nOJI0OLmpTc3LdvPc1xs6UINW7gfNtjCNSrXa9fDyktCl1anoC0PyuwPRhtni\nZF0T7TIIjbY1CjH1cD3rla/aYx8LpBsb/y6LRH8TLL3Xdt9TtH9k+MRZOXE7\nJWOM32aPHzQ10fQB23aDZAW/VU4DWCRQ/on14+ejj9Vc/TzsaSIem2qTrOni\nPYJ8f/kw7ofdPyv6MMxqwF+6bX2ggOOARMKvvFzIlDxqmNgKK/rTljWzdXZq\nvhhS3esZQy3gEt+lpR/gksRwfeE+opBc9us55xzbuxjtGAa5/QXFkQW1Q+cT\ne3QA\r\n=8Lgz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCUYsEXRssWD/9HiUZRxpYp89/9NlRR/8gt3jpCLAn7DgIhANZmnHaA6j0/hry8s4kCjP9kXGXJZCXV2Vz6yUUIXMWh"}]},"_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"directories":{},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},{"name":"amb26","email":"amb26npm@ponder.org.uk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20210505T121006Z.05b980d.eastin-integration_1620216617503_0.2633845579211902"},"_hasShrinkwrap":false},"1.0.0-dev.20210913T132226Z.a15ea1a.eastin-integration":{"name":"ul-api","version":"1.0.0-dev.20210913T132226Z.a15ea1a.eastin-integration","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/nyc/bin/nyc.js node tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.1.0","gpii-express":"1.0.15","gpii-express-user":"1.0.2-dev.20191014T143404Z.150969f.GPII-3921","gpii-handlebars":"2.1.0","gpii-json-schema":"2.1.2","gpii-launcher":"1.0.0-dev.20190527T124956Z.9255cfa.GPII-2103","gpii-location-bar-relay":"1.0.5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20191009T141140Z.32c9263b4.FLUID-6148","markdown-it":"11.0.0","mkdirp":"1.0.4","ncp":"2.0.0","sharp":"0.25.3"},"devDependencies":{"eslint":"7.1.0","eslint-plugin-markdown":"1.0.1","gpii-couchdb-test-harness":"1.0.1","gpii-grunt-lint-all":"1.0.7","grunt":"1.1.0","grunt-jsonlint":"2.1.2","kettle":"1.12.0","node-jqunit":"1.1.8","nyc":"15.0.1","request":"2.88.2"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\n[http://ul.gpii.net](http://ul.gpii.net)\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n## Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  [http://localhost:6714/api/](http://localhost:6714/api/)\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n## Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n### Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n### Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: [http://localhost:6714/api/user/signup](http://localhost:6714/api/user/signup)\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: [http://localhost:6715/_utils/](http://localhost:6715/_utils/)\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n### Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n## Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.\n","readmeFilename":"README.md","gitHead":"a15ea1ab577fc31e1a5fd6503d646602032914f5","_id":"ul-api@1.0.0-dev.20210913T132226Z.a15ea1a.eastin-integration","_nodeVersion":"14.17.1","_npmVersion":"6.14.13","dist":{"integrity":"sha512-IT+cXcEfL1L2XMy1XQ2c6NwJJyaBg2bxtoJM/XtR0CZ/KWLf8IXojjRGy/a2eRlFKKRukVO/KQx/Snb620gfTw==","shasum":"3194d20933812cd027d5d215a89a65543edbd773","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20210913T132226Z.a15ea1a.eastin-integration.tgz","fileCount":168,"unpackedSize":1636454,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhP1DOCRA9TVsSAnZWagAAp1kQAKTSOdIaqEZzIAwvXzau\nXQ3DbVoNKAsDuhuGDcU4GdxbObMd4KZjbSfLOhFjwDcJ3b+76+AWuR5sUdtr\nA0fIPOkNinvRSg6XtEyE4CUUIQjT5gpfn6rD814uLuF5LqQVqF1i1HnfIDQ7\nZ1JJvIU7Ag7kFelpIqQ36g1PWIwNOVqF47bakGBOrw/Ur3O2ulF2rLaegc2p\nXIkFNstamD1qUX22QiHnVHUkhknODnD/72eQ8/GB0crdha+aLW/eQYbgY3mQ\nkVJrb77M2SyQnoCAL48NfdqVO+SOr5lAV8GcMGceanRJN/cHcAfr7P6frLKt\numZDPRqyWN8bH72R5sXxcxO/B1AfNrryHQpXEvqiMLP8zwYUEvbPfVLpGWzA\nP9FyJAtNgxP/5fa7Ija+eeS76xg5R45xCGd8AxB8kXBbTUY8LephAdDBs9eT\nbv1l242Ny6ssVQDvloMOts5ihiYaisCoNXymq9V8cduUq71MSYkm2nmV5fSf\nIix2/AcdrXMpk1AQjJfox9z3+jevPb+FPgEfEwmLEIuPpoi2SZYbz3+OmgVE\nY/EGaA6j6FEQcgiMyA0MqGw9YjjLNgGSc/bE04HPXcH864KPHdwbZcLBLzNM\nvJUGgCmWPCAQfxESRoi8V81lqT2deD8FBWgivXHDrdTGACqTrAbTNIisNb8J\n98cb\r\n=8CEi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDXdz9nDtoKhufa03jn/MAtigCvdLrFCXXCdSty3ZVXbwIhAOgQj7Avoe4NDOTmEmaJvTtCPGOFytI8IN/ZStqvHpt8"}]},"_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"directories":{},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},{"name":"amb26","email":"amb26npm@ponder.org.uk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20210913T132226Z.a15ea1a.eastin-integration_1631539406656_0.009806111386404526"},"_hasShrinkwrap":false},"1.0.0-dev.20210915T110329Z.d5b055d.eastin-integration":{"name":"ul-api","version":"1.0.0-dev.20210915T110329Z.d5b055d.eastin-integration","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/nyc/bin/nyc.js node tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.1.0","gpii-express":"1.0.15","gpii-express-user":"1.0.2-dev.20191014T143404Z.150969f.GPII-3921","gpii-handlebars":"2.1.0","gpii-json-schema":"2.1.2","gpii-launcher":"1.0.0-dev.20190527T124956Z.9255cfa.GPII-2103","gpii-location-bar-relay":"1.0.5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20191009T141140Z.32c9263b4.FLUID-6148","markdown-it":"11.0.0","mkdirp":"1.0.4","ncp":"2.0.0","sharp":"0.25.3"},"devDependencies":{"eslint":"7.1.0","eslint-plugin-markdown":"1.0.1","gpii-couchdb-test-harness":"1.0.1","gpii-grunt-lint-all":"1.0.7","grunt":"1.1.0","grunt-jsonlint":"2.1.2","kettle":"1.12.0","node-jqunit":"1.1.8","nyc":"15.0.1","request":"2.88.2"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\n[http://ul.gpii.net](http://ul.gpii.net)\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n## Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  [http://localhost:6714/api/](http://localhost:6714/api/)\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n## Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n### Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n### Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: [http://localhost:6714/api/user/signup](http://localhost:6714/api/user/signup)\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: [http://localhost:6715/_utils/](http://localhost:6715/_utils/)\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n### Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n## Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.\n","readmeFilename":"README.md","gitHead":"d5b055db154aa0bbfc99e3260a3c16e789373d84","_id":"ul-api@1.0.0-dev.20210915T110329Z.d5b055d.eastin-integration","_nodeVersion":"14.17.1","_npmVersion":"6.14.13","dist":{"integrity":"sha512-ZiMbeFDahWNgx1NvAjqswze6TiBrsS0jsYoAgkbRqQrUuHeWqSZzgU6Nlu16B14Hze9JrTaXWPylgeLheHGcOA==","shasum":"a89f3d72185167bf298e93dcc59c7ea7a6aaf4c4","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20210915T110329Z.d5b055d.eastin-integration.tgz","fileCount":169,"unpackedSize":1636762,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQdMcCRA9TVsSAnZWagAAHYUP/iJX+RWbyHADJ9w3RoKT\nUuy6zzqjUF8BQB7RwaqK9v12jBu7onDrbQodeiMpwbFSGFBa+5mexpSCDFrI\nql4OS3poY/hsIPDaGGyCAZD46roIAsFaEvLLPrSyNLZn6UzRnj2q5R4afelc\nk1aXMORmDuI6NC8RJtY0QiTB12GQp/t6MF5GUPwD+FfWhEXQG+rYOkSBSbz8\nkSdtFOhcIeAFDDK3Yh++vNHVcrTsDj81S03xUKSIR89V9t7lL6eVPIZrUciY\nMg54GJQS3Ng9s0UfjE5CvyjDCWw5y+nA7+gHHxKxUX82y3pERRC+cf/sKnkq\n9QLi/FUNQYUYOhF6BkQS8ZlaZIrZMi4Yr+n36A7C1LqjBiXCi7qOInWG3a73\nkT5lxksvx10ij7YNtd30t3mBf/A4iAHxm1QVMGAFwRZkm6+dH0PciS2v4AR4\n1xvh92+i0H4o+HUI+z2nWuSWmAWjPzkoREK/ZURhyHjRTwveAjAOkLFkTkfQ\n+brXOB4JDW3cTCDdiFfgUfa861/TnDMB4vnRFs4fx2mABI7arjln/ZiX+CR4\n35JMGd9jAuWSDhOmS3Ka+SSTXr5+pMJCdJX8h3peSXQx+lxYLWGFqFLhWS+h\noUWvBS0tX2PXup6e9BdN/9IMbaCNYTxGdmHY3xQNdtsnpeGjSQw1luIU1qhW\n7DN1\r\n=ds75\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDr3sFj3RrRYrEgzTXW0rAZij9e4S6/XUq7hnFS/WrpZQIhAOuM2HZuclpQF2O8OzEGYZZONuC+5FHCm29DajbKuIn4"}]},"_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"directories":{},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},{"name":"amb26","email":"amb26npm@ponder.org.uk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20210915T110329Z.d5b055d.eastin-integration_1631703835868_0.1794219260336063"},"_hasShrinkwrap":false},"1.0.0-dev.20210928T070159Z.cf3182f.eastin-integration":{"name":"ul-api","version":"1.0.0-dev.20210928T070159Z.cf3182f.eastin-integration","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/nyc/bin/nyc.js node tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.1.0","gpii-express":"1.0.15","gpii-express-user":"1.0.2-dev.20191014T143404Z.150969f.GPII-3921","gpii-handlebars":"2.1.0","gpii-json-schema":"2.1.2","gpii-launcher":"1.0.0-dev.20190527T124956Z.9255cfa.GPII-2103","gpii-location-bar-relay":"1.0.5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20191009T141140Z.32c9263b4.FLUID-6148","markdown-it":"11.0.0","mkdirp":"1.0.4","ncp":"2.0.0","sharp":"0.25.3"},"devDependencies":{"eslint":"7.1.0","eslint-plugin-markdown":"1.0.1","gpii-couchdb-test-harness":"1.0.1","gpii-grunt-lint-all":"1.0.7","grunt":"1.1.0","grunt-jsonlint":"2.1.2","kettle":"1.12.0","node-jqunit":"1.1.8","nyc":"15.0.1","request":"2.88.2"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\n[http://ul.gpii.net](http://ul.gpii.net)\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n## Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  [http://localhost:6714/api/](http://localhost:6714/api/)\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n## Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n### Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n### Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: [http://localhost:6714/api/user/signup](http://localhost:6714/api/user/signup)\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: [http://localhost:6715/_utils/](http://localhost:6715/_utils/)\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n### Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n## Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.\n","readmeFilename":"README.md","gitHead":"cf3182f6dd8cc5e28b214265c4155cd25c3aaa69","_id":"ul-api@1.0.0-dev.20210928T070159Z.cf3182f.eastin-integration","_nodeVersion":"14.17.1","_npmVersion":"6.14.13","dist":{"integrity":"sha512-KOhRJ4CdDZok4gGXf8Qgknm0FQMTP05q2rL5YkbabCP2XAvg3uTm02ghpgZ/ZNR3TQuYr/OHimvMvgaZyGwPSg==","shasum":"b2d9e88b5badb7045a9c567d830d5c1f1a98bf47","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20210928T070159Z.cf3182f.eastin-integration.tgz","fileCount":173,"unpackedSize":1697943,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEQZSpujroIUlE1upMpFpZ93xvUrOLeuyoJNetp8OnG4AiEAmsFMzbNCm8anH0x3Lod4HlEAJtXdgPdGvEJolZY1GR0="}]},"_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"directories":{},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},{"name":"amb26","email":"amb26npm@ponder.org.uk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20210928T070159Z.cf3182f.eastin-integration_1632812560997_0.3113862639581171"},"_hasShrinkwrap":false},"1.0.0-dev.20211006T083622Z.8bcb06d.eastin-integration":{"name":"ul-api","version":"1.0.0-dev.20211006T083622Z.8bcb06d.eastin-integration","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/nyc/bin/nyc.js node tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.1.0","gpii-express":"1.0.15","gpii-express-user":"1.0.2-dev.20191014T143404Z.150969f.GPII-3921","gpii-handlebars":"2.1.0","gpii-json-schema":"2.1.2","gpii-launcher":"1.0.0-dev.20190527T124956Z.9255cfa.GPII-2103","gpii-location-bar-relay":"1.0.5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20191009T141140Z.32c9263b4.FLUID-6148","markdown-it":"11.0.0","mkdirp":"1.0.4","ncp":"2.0.0","sharp":"0.25.3"},"devDependencies":{"eslint":"7.1.0","eslint-plugin-markdown":"1.0.1","gpii-couchdb-test-harness":"1.0.1","gpii-grunt-lint-all":"1.0.7","grunt":"1.1.0","grunt-jsonlint":"2.1.2","kettle":"1.12.0","node-jqunit":"1.1.8","nyc":"15.0.1","request":"2.88.2"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\n[http://ul.gpii.net](http://ul.gpii.net)\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n## Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  [http://localhost:6714/api/](http://localhost:6714/api/)\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n## Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n### Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n### Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: [http://localhost:6714/api/user/signup](http://localhost:6714/api/user/signup)\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: [http://localhost:6715/_utils/](http://localhost:6715/_utils/)\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n### Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n## Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.\n","readmeFilename":"README.md","gitHead":"8bcb06da4234555baa039956c17204bf4e9d6cf0","_id":"ul-api@1.0.0-dev.20211006T083622Z.8bcb06d.eastin-integration","_nodeVersion":"14.18.0","_npmVersion":"6.14.15","dist":{"integrity":"sha512-j5LFikbdi/eWQzWBvHVlG9fUfTOd0ERkJx2KmuvmXixy40jYn83E/xT1PHs+chCpzUx7/Tp3GhxtDggG2prtYg==","shasum":"1e825515666d43096bb2657067d36bc7904f70e1","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20211006T083622Z.8bcb06d.eastin-integration.tgz","fileCount":178,"unpackedSize":1727036,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDLEAXX9dPI78k9mU0KQPNc2V72usC5yJMmzFcEXP6vwAIgJOKGzXlYI0g5f7xXy19DMg6zoFA4ryPHxQzs3Ehws5Y="}]},"_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"directories":{},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},{"name":"amb26","email":"amb26npm@ponder.org.uk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20211006T083622Z.8bcb06d.eastin-integration_1633511300997_0.6992647459586392"},"_hasShrinkwrap":false},"1.0.0-dev.20211011T091258Z.9276930.eastin-integration":{"name":"ul-api","version":"1.0.0-dev.20211011T091258Z.9276930.eastin-integration","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/nyc/bin/nyc.js node tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.1.0","gpii-express":"1.0.15","gpii-express-user":"1.0.2-dev.20191014T143404Z.150969f.GPII-3921","gpii-handlebars":"2.1.0","gpii-json-schema":"2.1.2","gpii-launcher":"1.0.0-dev.20190527T124956Z.9255cfa.GPII-2103","gpii-location-bar-relay":"1.0.5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20191009T141140Z.32c9263b4.FLUID-6148","markdown-it":"11.0.0","mkdirp":"1.0.4","ncp":"2.0.0","sharp":"0.25.3"},"devDependencies":{"eslint":"7.1.0","eslint-plugin-markdown":"1.0.1","gpii-couchdb-test-harness":"1.0.1","gpii-grunt-lint-all":"1.0.7","grunt":"1.1.0","grunt-jsonlint":"2.1.2","kettle":"1.12.0","node-jqunit":"1.1.8","nyc":"15.0.1","request":"2.88.2"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\n[http://ul.gpii.net](http://ul.gpii.net)\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n## Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  [http://localhost:6714/api/](http://localhost:6714/api/)\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n## Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n### Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n### Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: [http://localhost:6714/api/user/signup](http://localhost:6714/api/user/signup)\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: [http://localhost:6715/_utils/](http://localhost:6715/_utils/)\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n### Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n## Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.\n","readmeFilename":"README.md","gitHead":"9276930d3ca0fd9aa5a483755fa1044f3081f590","_id":"ul-api@1.0.0-dev.20211011T091258Z.9276930.eastin-integration","_nodeVersion":"14.18.0","_npmVersion":"6.14.15","dist":{"integrity":"sha512-DAjGxH/nmKgUef2t9XYJGhA4LkUdEq7ZUn0Dao2BLRo+jL5ehuMqILScYJK/V2/j2r3bgg08OCXhBF10cFc8IA==","shasum":"63c33f67761828577b5a6ddd5561efc2e70988ed","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20211011T091258Z.9276930.eastin-integration.tgz","fileCount":178,"unpackedSize":1728556,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC8ldDFlIVjF02MU26ikpBVCw2ssDTFT5fTrsyoPXxRsQIhAKi7XQPI2Zps0U9TNhKhOZioda6AlqWlvn9RGNisSsqB"}]},"_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"directories":{},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},{"name":"amb26","email":"amb26npm@ponder.org.uk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20211011T091258Z.9276930.eastin-integration_1633943628047_0.691714758725317"},"_hasShrinkwrap":false},"1.0.0":{"name":"ul-api","version":"1.0.0","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/nyc/bin/nyc.js node tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.1.0","gpii-express":"1.0.15","gpii-express-user":"1.0.2-dev.20191014T143404Z.150969f.GPII-3921","gpii-handlebars":"2.1.0","gpii-json-schema":"2.1.2","gpii-launcher":"1.0.0-dev.20190527T124956Z.9255cfa.GPII-2103","gpii-location-bar-relay":"1.0.5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20191009T141140Z.32c9263b4.FLUID-6148","markdown-it":"11.0.0","mkdirp":"1.0.4","ncp":"2.0.0","sharp":"0.25.3"},"devDependencies":{"eslint":"7.1.0","eslint-plugin-markdown":"1.0.1","gpii-couchdb-test-harness":"1.0.1","gpii-grunt-lint-all":"1.0.7","grunt":"1.1.0","grunt-jsonlint":"2.1.2","kettle":"1.12.0","node-jqunit":"1.1.8","nyc":"15.0.1","request":"2.88.2"},"gitHead":"9276930d3ca0fd9aa5a483755fa1044f3081f590","_id":"ul-api@1.0.0","_nodeVersion":"14.18.0","_npmVersion":"6.14.15","dist":{"integrity":"sha512-poEEVCc9pFr3vvHfrV+cBVbtvC57fhbJ1sTfgESWIm4EAPWvckkhhb29WkvkQe8VFaqRRrNQq39FF9f3RtjQBQ==","shasum":"f19b4d7b6191268f68a9cc183af01a682abde028","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0.tgz","fileCount":178,"unpackedSize":1728508,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDuxO8LG4hXAw1LntV9Xyl1WaoAhx/eYMTR5zo5EiNnKAIgGafBTgQaU8VNBprVwwK+qBpVCpp/jihxGDWLbho3rzI="}]},"_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"directories":{},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},{"name":"amb26","email":"amb26npm@ponder.org.uk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0_1633949625937_0.9349338379078722"},"_hasShrinkwrap":false},"1.0.0-dev.20211012T092316Z.ca714a2.eastin-integration":{"name":"ul-api","version":"1.0.0-dev.20211012T092316Z.ca714a2.eastin-integration","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/nyc/bin/nyc.js node tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.1.0","gpii-express":"1.0.15","gpii-express-user":"1.0.2-dev.20191014T143404Z.150969f.GPII-3921","gpii-handlebars":"2.1.0","gpii-json-schema":"2.1.2","gpii-launcher":"1.0.0-dev.20190527T124956Z.9255cfa.GPII-2103","gpii-location-bar-relay":"1.0.5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","infusion":"3.0.0-dev.20191009T141140Z.32c9263b4.FLUID-6148","markdown-it":"11.0.0","mkdirp":"1.0.4","ncp":"2.0.0","sharp":"0.25.3"},"devDependencies":{"eslint":"7.1.0","eslint-plugin-markdown":"1.0.1","gpii-couchdb-test-harness":"1.0.1","gpii-grunt-lint-all":"1.0.7","grunt":"1.1.0","grunt-jsonlint":"2.1.2","kettle":"1.12.0","node-jqunit":"1.1.8","nyc":"15.0.1","request":"2.88.2"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\n[http://ul.gpii.net](http://ul.gpii.net)\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n## Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  [http://localhost:6714/api/](http://localhost:6714/api/)\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n## Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n### Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n### Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: [http://localhost:6714/api/user/signup](http://localhost:6714/api/user/signup)\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: [http://localhost:6715/_utils/](http://localhost:6715/_utils/)\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n### Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n## Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.\n","readmeFilename":"README.md","gitHead":"ca714a254a6830dfed65a1434e5fa6e13a5d9186","_id":"ul-api@1.0.0-dev.20211012T092316Z.ca714a2.eastin-integration","_nodeVersion":"14.18.0","_npmVersion":"6.14.15","dist":{"integrity":"sha512-b0OLccNk8leHMjg66Kzir6vxfsXwPdkEv6Vczd0HaDNy39jjJSk6igMtNenVO1MDU5IwvIFFQtVZPipejm5BUw==","shasum":"ff3b74d02dd227c63f0976c11b75923fffbf108c","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20211012T092316Z.ca714a2.eastin-integration.tgz","fileCount":178,"unpackedSize":1728560,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCHu+WC4YQxxAJdRIMQ6f2n2yeQGIpDiHXaNr867p5DyAIhAIkigTQd67ZGJmGm9vmubl2Tayn1+YB0nvdA4STLDzYd"}]},"_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"directories":{},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},{"name":"amb26","email":"amb26npm@ponder.org.uk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20211012T092316Z.ca714a2.eastin-integration_1634030629679_0.12813838257502197"},"_hasShrinkwrap":false},"1.0.0-dev.20211108T093728Z.933b106.eastin-integration":{"name":"ul-api","version":"1.0.0-dev.20211108T093728Z.933b106.eastin-integration","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/nyc/bin/nyc.js node tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.1.0","gpii-express":"1.0.15","gpii-express-user":"1.0.2-dev.20191014T143404Z.150969f.GPII-3921","gpii-handlebars":"2.1.0","gpii-json-schema":"2.1.2","gpii-launcher":"1.0.0-dev.20190527T124956Z.9255cfa.GPII-2103","gpii-location-bar-relay":"1.0.5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","html-to-text":"^8.1.0","infusion":"3.0.0-dev.20191009T141140Z.32c9263b4.FLUID-6148","markdown-it":"11.0.0","mkdirp":"1.0.4","ncp":"2.0.0","sharp":"0.25.3"},"devDependencies":{"eslint":"7.1.0","eslint-plugin-markdown":"1.0.1","gpii-couchdb-test-harness":"1.0.1","gpii-grunt-lint-all":"1.0.7","grunt":"1.1.0","grunt-jsonlint":"2.1.2","kettle":"1.12.0","node-jqunit":"1.1.8","nyc":"15.0.1","request":"2.88.2"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\n[http://ul.gpii.net](http://ul.gpii.net)\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n## Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  [http://localhost:6714/api/](http://localhost:6714/api/)\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n## Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n### Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n### Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: [http://localhost:6714/api/user/signup](http://localhost:6714/api/user/signup)\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: [http://localhost:6715/_utils/](http://localhost:6715/_utils/)\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n### Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n## Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.\n","readmeFilename":"README.md","gitHead":"933b1068fd5adc8ff69f3b9bdfa91dc51fd89a97","_id":"ul-api@1.0.0-dev.20211108T093728Z.933b106.eastin-integration","_nodeVersion":"14.18.0","_npmVersion":"6.14.15","dist":{"integrity":"sha512-3lZU5dVQV6aaweL6aLSeJ75Z61ILC+DxhsXiI7h9DPXVG7ZjuzXqle8IfyuIVf2NRUIzWaxMZuHW4oVA/Z6BvA==","shasum":"66470f799f98f2b1f44a3ca8fec981791f378ee7","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20211108T093728Z.933b106.eastin-integration.tgz","fileCount":178,"unpackedSize":1729687,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHMOZVzOLAuQ8E91nymYXmfXzDeMMIrfZKJsTLKnyqsZAiEA4VrHCZ0dNOVcz1P1FTQeBXHAQAg01n31+6DipG7S9jk="}]},"_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"directories":{},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},{"name":"amb26","email":"amb26npm@ponder.org.uk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20211108T093728Z.933b106.eastin-integration_1636364295703_0.3174118127183818"},"_hasShrinkwrap":false},"1.0.0-dev.20211213T094822Z.9143211.main":{"name":"ul-api","version":"1.0.0-dev.20211213T094822Z.9143211.main","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/nyc/bin/nyc.js node tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.1.0","gpii-express":"1.0.15","gpii-express-user":"1.0.2-dev.20191014T143404Z.150969f.GPII-3921","gpii-handlebars":"2.1.0","gpii-json-schema":"2.1.2","gpii-launcher":"1.0.0-dev.20190527T124956Z.9255cfa.GPII-2103","gpii-location-bar-relay":"1.0.5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","html-to-text":"^8.1.0","infusion":"3.0.0-dev.20191009T141140Z.32c9263b4.FLUID-6148","markdown-it":"11.0.0","mkdirp":"1.0.4","ncp":"2.0.0","sharp":"0.25.3"},"devDependencies":{"eslint":"7.1.0","eslint-plugin-markdown":"1.0.1","gpii-couchdb-test-harness":"1.0.1","gpii-grunt-lint-all":"1.0.7","grunt":"1.1.0","grunt-jsonlint":"2.1.2","kettle":"1.12.0","node-jqunit":"1.1.8","nyc":"15.0.1","request":"2.88.2"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\n[http://ul.gpii.net](http://ul.gpii.net)\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n## Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  [http://localhost:6714/api/](http://localhost:6714/api/)\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n## Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n### Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n### Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: [http://localhost:6714/api/user/signup](http://localhost:6714/api/user/signup)\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: [http://localhost:6715/_utils/](http://localhost:6715/_utils/)\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n### Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n## Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.\n","readmeFilename":"README.md","gitHead":"914321111f9c3c0d49d512ae267fc1685c7130c6","_id":"ul-api@1.0.0-dev.20211213T094822Z.9143211.main","_nodeVersion":"14.18.0","_npmVersion":"6.14.15","dist":{"integrity":"sha512-m4Ed5Wx38ca4HlqB3/4wuZKFpRhVGIJfoMOMvy0DcNCQEvGBcxakpYsBNJYVSzw8rfIBXxYg5RxwVpmJspsAJQ==","shasum":"c25587bcaef16e4ef908a28df55d361c078f4be4","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20211213T094822Z.9143211.main.tgz","fileCount":181,"unpackedSize":1744661,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhtzuYCRA9TVsSAnZWagAAjFEP/iWMswdeMEJM9z+EaLVH\nwk1ju8LeC51htoWlQiwduTbz1JeBzwGEhXdcIJq0J7RBE6aH06zNXVKAEARU\nLYrqrb+PZ8xVrMF42APDA90pgXvWig3p3a6o7K7823s2DdcKzeknEngbj30Z\neR8sxFtDzxAuBftWmPWqsU/E843QeEWjesnMRrIxmvVgUh00NRroRNQjpTju\nDW4lQzk/S0Gu/HQDDi3YozQHE+7AaPjsVTbFop0YUvWwSdvsXy/BQ7Q8BxSF\n+06rWF2izawI/bRxv5QRkhmtuDG/fR5medFjtOLrC8p3bOXXs+ZxcMRrRqHg\noEc8C7qjAf30XNnOlQVi24YtVGpKMkERjMQj/rtNP7jNRpvH+RO9rrugaoep\n6859TBtN4dQ5cwTrZeSPLCfT6hFwzQ7StrCUDxkqucjEyJyKxTGdarZj8R+F\nj5tAQI/mmyqmkP1CJ3PzcHSVSpO+0P+zR8FWFfHffQIYYE3vppZv6LijXbAd\n7ZQ/HhAanKoeCWUQfOEDwwAhVlxdLp2SkU2c/jUI6+V+MdqH3ClGpieQN6Ge\ngoSt+xEgAHnoMcd7CJgUALnESZHF3KL3akke+IWj2wdkHzEdjs5O5HxGyirm\n5f6b+ZtJAL+vY1HRAsde3Y8ayMrpUIoeYiMIY+B8pv2ifY6RrlctQh7Xo1ee\nnZ3e\r\n=02bp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGgmTHh/zwKlzm85tVzfBBAluSi3POwzKBbHg5dyYElmAiBpDXhIx5J5ibZBOrZQoE8JsOH97POvImmWT2x9LXp9Xg=="}]},"_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"directories":{},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},{"name":"amb26","email":"amb26npm@ponder.org.uk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20211213T094822Z.9143211.main_1639398295955_0.9855527852702144"},"_hasShrinkwrap":false},"1.0.0-dev.20220209T123355Z.8554d99.main":{"name":"ul-api","version":"1.0.0-dev.20220209T123355Z.8554d99.main","description":"The Unified Listing API and tests.","main":"index.js","scripts":{"test":"node node_modules/nyc/bin/nyc.js node tests/all-tests.js"},"repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"license":"BSD-3-Clause","bugs":{"url":"https://issues.gpii.net/browse/GPII"},"homepage":"https://github.com/GPII/ul-api","dependencies":{"gpii-binder":"1.1.0","gpii-express":"1.0.15","gpii-express-user":"1.0.2-dev.20191014T143404Z.150969f.GPII-3921","gpii-handlebars":"2.1.0","gpii-json-schema":"2.1.2","gpii-launcher":"1.0.0-dev.20190527T124956Z.9255cfa.GPII-2103","gpii-location-bar-relay":"1.0.5","gpii-sort":"1.0.0-dev.20170420T114825Z.804ac19","html-to-text":"^8.1.0","infusion":"3.0.0-dev.20191009T141140Z.32c9263b4.FLUID-6148","markdown-it":"11.0.0","mkdirp":"1.0.4","ncp":"2.0.0","sharp":"0.25.3"},"devDependencies":{"eslint":"7.1.0","eslint-plugin-markdown":"1.0.1","gpii-couchdb-test-harness":"1.0.1","gpii-grunt-lint-all":"1.0.7","grunt":"1.1.0","grunt-jsonlint":"2.1.2","kettle":"1.12.0","node-jqunit":"1.1.8","nyc":"15.0.1","request":"2.88.2"},"readme":"# The Unified Listing API\n\nThe Unified Listing is a resource for people who want to find assistive technology solutions and mainstream products with\nassistive features.  The live instance can be found at:\n\n[http://ul.gpii.net](http://ul.gpii.net)\n\nThis package provides a working copy of the Unified Listing API, including the [API documentation](./src/js/api/docs/apidocs.md),\nand sample data that can be used to test integrations with the UL API.\n\nFor the reference front-end user interface that runs on top of the API, see the [ul-website](https://github.com/GPII/ul-website/)\npackage.\n\n## Running the API Locally.\n\nTo use this package, you must have a supported version of [`node.js`](https://nodejs.org/) installed.  Currently, the\npackage is developed with and tested against the 6.9.1 LTS version of node.  Once you have `node` installed:\n\n1. Install the required libraries by running `npm install`.\n2. Launch the API test harness using the command `node tests/js/launch-test-harness.js`.\n3. An instance of the API with test data will be available at:  [http://localhost:6714/api/](http://localhost:6714/api/)\n4. See [the API docs](./src/js/api/docs/apidocs.md) for details on the available API endpoints and options for each.\n\n## Creating a Test User\n\nThe search and other \"read\" endpoints in the UL API do not require a login.  However, to add data to the UL, you will\nneed to login using an account with the correct permissions.  To create an account, you can either clone and edit one of\nthe existing users, or create an account using the self-signup procedure.\n\n### Cloning an Existing User\n\nThe existing user data used by the test harness can be found at `./tests/data/users.json`.  The hashed passwords are all\nset to `password`.  As long as you are only editing the username and email address, your cloned users should have the\nsame password.\n\n### Creating a New User\n\nThe UL API includes a copy of the [gpii-express-user/](https://github.com/GPII/gpii-express-user/) user management\npackage.  See that package for full details about the supported login/logout endpoints.\n\nTo create a user using the self-signup procedure:\n\n1. Launch the test harness as outlined above.\n2. Open the signup endpoint in your browser: [http://localhost:6714/api/user/signup](http://localhost:6714/api/user/signup)\n3. Fill out and submit the form.\n\nYou will need to verify the new account before you can use it to log in.  The verification process normally depends on a\nmail server.  When using the test harness, you must manually verify the new account:\n\n1. Open the administrative interface for the test database: [http://localhost:6715/_utils/](http://localhost:6715/_utils/)\n2. Navigate to the `users` database (note, we do not use the similarly named `_users` database).\n3. Look for the record whose `id` corresponds to the new username, as in `org.couchdb.user:myuser`\n4. Edit the record and change `verified` to `true`.\n5. Save your changes.\n6. You should now be able to log in with the new account.\n\n### Permissions and Test Accounts\n\nBy default, each user has permission to read data from all unified records and public sources.  Users also have\npermission to write to their private datasource, which consists of a tilde and their username (as in `~myuser`).\n\nThere are also a handful of sources maintained by database contributors, write access to these is controlled by the\npermissions in `./src/js/sources/sources.json`.  For test purposes, an account with permission to write to each of these\nsources is provided as part of the test data in this package.  The sources associated with data coming from EASTIN are\nwritable using the `eastin` test user, password `password`.  The source associated with data coming from the\n[Semantic Alignment Tool](http://sat.gpii.net/) is writable using the `sat` test user, password `password`.\n\n## Running the Tests in this Package\n\nTo run the tests in this package, use the command `npm test`.\n","readmeFilename":"README.md","gitHead":"8554d99bd0a3b2151987d843ad3e77af82aa5acf","_id":"ul-api@1.0.0-dev.20220209T123355Z.8554d99.main","_nodeVersion":"14.18.0","_npmVersion":"6.14.15","dist":{"integrity":"sha512-T4IeAGdUVwIoMWUmX1XgbI1i3X1H2sNDFv+dRdq9Ihce5cUF+BK197HQmOz3V9krED8Nm5Eex68r9jdFvE3tBA==","shasum":"ca20cde2c03ec8e6231a63f61f250a0e5f4772f3","tarball":"https://registry.npmjs.org/ul-api/-/ul-api-1.0.0-dev.20220209T123355Z.8554d99.main.tgz","fileCount":181,"unpackedSize":1744333,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiA7TtCRA9TVsSAnZWagAAckUP/005lBiRRe//wM0Dcvh4\nb5wTHE4yHWIIMTLQ4HFauRTGm7yaM0D+fN5nYxi9m+0voUtb5eYlzpYDLTtu\n6HzeVEmHRjy34g52n9KaUwBoK65DphCuIG2oP0AWL50jdVubVBtgxxjsYW0X\nianMs0HnDR5aPRCCKCfuv84gnd2vr2/dwEF3n71/OM8oh0PUpCGqdV1XPxle\n12GoZTrZZDvLx3ExRkTm0KGvngO1P5YR8M2X7/ff7wE5/jiitmInGastN/AJ\ntnl3Iv6HkhJpYJBkm/cnSJy2lkLXv+ci7FGWE/z5wC51+8R2kTrvvvMxZ+mb\nv3y5breAZQjrjK34e5OI0zX/rBvag0Sgol6oDY+DsqEsCmVbvSsS8TN52cT+\nSw/NldTbavmwZM3dXkohn/6w34xjQpfgldGbqRv1N6uG9ECJ8qDlJKfaLbQ7\noUZKpg14sSiedbCOsAUa+bNEg10CAtslHJFxe1k3HF6LfABu43669TFi+D9F\nyLaxav/gT/y3bcKiUzxzocWQcEnhwKev1YOzEnK0IuRDDikTRoMTPfHKHw9g\ngU0LzFXaAZGqBjs+B8+SVEtMzfRnfd1/QTmmygCzt/zFcDbFJZXlLa6rtbO3\nhJyGnFoYHL0awvF7jVDo9rCebMa9GyK80VRRuJIJEmPkKhVJxUjfwHX4LVOJ\n0vqj\r\n=J3ad\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBRCaM+QO93RWmnaHLRIlTGkBPL1A8k34zi5p3oMHgekAiA3Qs2csIH8CXgRV1FQx9NNRdGUiY6/QL+XWj0+/XRW9A=="}]},"_npmUser":{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},"directories":{},"maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},{"name":"amb26","email":"amb26npm@ponder.org.uk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ul-api_1.0.0-dev.20220209T123355Z.8554d99.main_1644410093183_0.21412681398980804"},"_hasShrinkwrap":false}},"readme":"","maintainers":[{"name":"the-t-in-rtf","email":"tony@raisingthefloor.org"},{"name":"amb26","email":"amb26npm@ponder.org.uk"}],"time":{"modified":"2022-06-28T03:38:41.515Z","created":"2017-01-09T15:56:12.588Z","1.0.0-dev.20170109T155555Z.2b75b3a":"2017-01-09T15:56:12.588Z","1.0.0-dev.20170109T161536Z.ddb379d":"2017-01-09T16:15:50.462Z","1.0.0-dev.20170111T100624Z.737e17c":"2017-01-11T11:06:13.296Z","1.0.0-dev.20170111T152413Z.ea6cbba":"2017-01-11T15:25:16.157Z","1.0.0-dev.20170119T101817Z.e738ed4":"2017-01-19T10:21:12.310Z","1.0.0-dev.20170119T103418Z.ce9cbdd":"2017-01-19T10:34:43.709Z","1.0.0-dev.20170119T122420Z.0aa070b":"2017-01-19T12:24:33.125Z","1.0.0-dev.20170119T144457Z.46d11d7":"2017-01-19T14:45:11.750Z","1.0.0-dev.20170120T153831Z.db3964d":"2017-01-20T15:38:47.306Z","1.0.0-dev.20170123T105730Z.8029fac":"2017-01-23T10:57:48.768Z","1.0.0-dev.20170123T110030Z.df2fc3d":"2017-01-23T11:00:48.138Z","1.0.0-dev.20170123T141254Z.2801782":"2017-01-23T14:13:07.141Z","1.0.0-dev.20170125T095600Z.f3b04a2":"2017-01-25T09:56:18.203Z","1.0.0-dev.20170125T105653Z.f7afe86":"2017-01-25T10:58:36.661Z","1.0.0-dev.20170125T151251Z.a3b0763":"2017-01-25T16:17:14.674Z","1.0.0-dev.20170127T153126Z.7c3221e":"2017-01-27T15:31:42.300Z","1.0.0-dev.20170127T161614Z.aa5ea79":"2017-01-27T16:16:30.320Z","1.0.0-dev.20170301T101845Z.1011c62":"2017-03-01T10:19:14.010Z","1.0.0-dev.20170301T102557Z.605e11a":"2017-03-01T10:26:24.748Z","1.0.0-dev.20170524T084332Z.7b224c5":"2017-05-24T08:44:03.236Z","1.0.0-dev.20170607T074645Z.620ec36":"2017-06-07T07:47:03.292Z","1.0.0-dev.20170608T121153Z.0f7693c":"2017-06-08T12:12:11.047Z","1.0.0-dev.20170620T095321Z.3fed193":"2017-06-20T09:53:38.208Z","1.0.0-dev.20170629T123140Z.2d40cdb":"2017-06-29T12:32:05.097Z","1.0.0-dev.20170713T101703Z.e971e19":"2017-07-13T10:17:18.970Z","1.0.0-dev.20170714T115252Z.b15b397":"2017-07-14T11:53:45.879Z","1.0.0-dev.20170904T114206Z.040362e":"2017-09-04T11:48:41.740Z","1.0.0-dev.20170904T124121Z.1062998":"2017-09-04T12:40:03.620Z","1.0.0-dev.20170905T113458Z.dda173a":"2017-09-05T11:34:01.764Z","1.0.0-dev.20170921T081908Z.a50b859":"2017-09-21T08:19:27.433Z","1.0.0-dev.20170921T121026Z.5a812b9":"2017-09-21T12:10:38.623Z","1.0.0-dev.20171010T092421Z.92d9c1e":"2017-10-11T08:32:39.606Z","1.0.0-dev.20171012T095842Z.a9da5b5":"2017-10-12T09:59:30.004Z","1.0.0-dev.20171107T110540Z.23c1dcd":"2017-11-07T11:06:04.947Z","1.0.0-dev.20171107T111131Z.128c772":"2017-11-07T11:11:48.961Z","1.0.0-dev.20171107T111901Z.fcddcee":"2017-11-07T11:19:17.836Z","1.0.0-dev.20171107T112149Z.600ff43":"2017-11-07T11:22:21.761Z","1.0.0-dev.20171208T130030Z.1d65363":"2017-12-08T13:03:24.274Z","1.0.0-dev.20171208T132321Z.264fbd0":"2017-12-08T13:25:15.441Z","1.0.0-dev.20180117T095754Z.a6a5d5f":"2018-01-17T09:59:59.742Z","1.0.0-dev.20180228T095459Z.1141757":"2018-02-28T09:58:42.803Z","1.0.0-dev.20180313T115501Z.1eeee47":"2018-03-13T11:55:52.275Z","1.0.0-dev.20180315T140825Z.e135cbf":"2018-03-15T14:08:52.564Z","1.0.0-dev.20181002T081553Z.1b45e91":"2018-10-02T08:21:35.078Z","1.0.0-dev.20181005T092804Z.cde9d0e":"2018-10-05T09:28:30.990Z","1.0.0-dev.20181012T142554Z.1eceb67":"2018-10-12T14:26:20.442Z","1.0.0-dev.20181012T172915Z.3250d0d":"2018-10-12T17:29:29.797Z","1.0.0-dev.20181015T093237Z.ef5d29d":"2018-10-15T09:33:01.391Z","1.0.0-dev.20181024T125123Z.afea43d":"2018-10-24T12:51:46.291Z","1.0.0-dev.20181126T142401Z.124fbf0":"2018-11-26T14:24:22.243Z","1.0.0-dev.20190829T121743Z.3698d7d.UL-65":"2019-08-29T12:19:21.218Z","1.0.0-dev.20191009T114656Z.bf585a7.UL-65":"2019-10-09T11:48:21.019Z","1.0.0-dev.20191009T123332Z.551c5dc.UL-65":"2019-10-09T12:33:47.712Z","1.0.0-dev.20191011T085109Z.0ea5dd9.UL-65":"2019-10-11T08:51:34.381Z","1.0.0-dev.20191011T163340Z.226532a.UL-65":"2019-10-11T16:34:17.404Z","1.0.0-dev.20191014T124828Z.4148821.UL-65":"2019-10-14T12:48:47.869Z","1.0.0-dev.20191014T134607Z.a97da2a.UL-65":"2019-10-14T13:46:25.047Z","1.0.0-dev.20191015T074901Z.8b1dd87.UL-65":"2019-10-15T07:49:20.442Z","1.0.0-dev.20191111T142607Z.e57bedc.UL-65":"2019-11-11T14:27:24.028Z","1.0.0-dev.20191112T103019Z.1360556.UL-65":"2019-11-12T10:30:38.947Z","1.0.0-dev.20200109T111055Z.0aac7fa.UL-65":"2020-01-09T11:12:12.830Z","1.0.0-dev.20200731T124130Z.aa35fff.UL-65":"2020-07-31T12:41:47.537Z","1.0.0-dev.20210412T131821Z.28c2e25.UL-65":"2021-04-12T13:18:49.071Z","1.0.0-dev.20210413T091744Z.bfa8131.legacy-infusion":"2021-04-13T09:18:04.089Z","1.0.0-dev.20210420T120913Z.95bff0f.eastin-integration":"2021-04-20T12:09:38.958Z","1.0.0-dev.20210426T141525Z.6754ccd.eastin-integration":"2021-04-26T14:18:05.489Z","1.0.0-dev.20210428T121006Z.41f8975.eastin-integration":"2021-04-28T12:10:17.086Z","1.0.0-dev.20210428T121513Z.6e6bbd8.eastin-integration":"2021-04-28T12:15:24.263Z","1.0.0-dev.20210504T091552Z.d4eb279.eastin-integration":"2021-05-04T09:18:05.435Z","1.0.0-dev.20210505T121006Z.05b980d.eastin-integration":"2021-05-05T12:10:17.810Z","1.0.0-dev.20210913T132226Z.a15ea1a.eastin-integration":"2021-09-13T13:23:26.888Z","1.0.0-dev.20210915T110329Z.d5b055d.eastin-integration":"2021-09-15T11:03:56.002Z","1.0.0-dev.20210928T070159Z.cf3182f.eastin-integration":"2021-09-28T07:02:41.226Z","1.0.0-dev.20211006T083622Z.8bcb06d.eastin-integration":"2021-10-06T09:08:21.298Z","1.0.0-dev.20211011T091258Z.9276930.eastin-integration":"2021-10-11T09:13:48.286Z","1.0.0":"2021-10-11T10:53:46.147Z","1.0.0-dev.20211012T092316Z.ca714a2.eastin-integration":"2021-10-12T09:23:49.946Z","1.0.0-dev.20211108T093728Z.933b106.eastin-integration":"2021-11-08T09:38:15.936Z","1.0.0-dev.20211213T094822Z.9143211.main":"2021-12-13T12:24:56.217Z","1.0.0-dev.20220209T123355Z.8554d99.main":"2022-02-09T12:34:53.357Z"},"homepage":"https://github.com/GPII/ul-api","repository":{"type":"git","url":"git+https://github.com/GPII/ul-api.git"},"author":{"name":"Tony Atkins","email":"tony@raisingthefloor.org"},"bugs":{"url":"https://issues.gpii.net/browse/GPII"},"license":"BSD-3-Clause","readmeFilename":""}