{"_id":"yayson","_rev":"42-ca54a8e67e36204febcfed4dbabbb8d9","name":"yayson","dist-tags":{"1.0.2":"1.0.2","1.0.3":"1.0.3","1.0.4":"1.0.4","1.0.5":"1.0.5","2.0.0-beta.1":"2.0.0-beta.1","latest":"4.4.0"},"versions":{"1.0.0":{"name":"yayson","version":"1.0.0","keywords":["json-api","json","api","response","format","serialization","deserialization","yay","wow","omg"],"author":{"name":"Johannes Edelstam","email":"johannes@edelst.am"},"license":"MIT","_id":"yayson@1.0.0","maintainers":[{"name":"jede","email":"johannes-npm@edelst.am"}],"homepage":"https://github.com/confetti/yayson","bugs":{"url":"https://github.com/confetti/yayson/issues"},"dist":{"shasum":"a118cfc0440e3246351fcb091b426ca13bd26a81","tarball":"https://registry.npmjs.org/yayson/-/yayson-1.0.0.tgz","integrity":"sha512-aGWmqJg9Hvdp9zJ2otPPF7AGKq9ufnb+pC2QcDtGGzB2VFJTdBatCDH1UUCHfHs8RyhKjFIaeVFPgIbV0xO0wQ==","signatures":[{"sig":"MEYCIQCspmsiqaGZzRgYOFhUcJNzk3trIEAVzsgC+9lAdQGtaAIhAMyP+t4Tx/txyqx4nya0/c7el8fI4CclUBoBF2Pt1NPd","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/yayson.js","_from":"./","_shasum":"a118cfc0440e3246351fcb091b426ca13bd26a81","scripts":{"test":"mocha"},"_npmUser":{"name":"jede","email":"johannes-npm@edelst.am"},"repository":{"url":"git://github.com/confetti/yayson.git","type":"git"},"_npmVersion":"1.4.7","description":"A library for serializing and reading JSON API standardized data in JavaScript.","directories":{},"dependencies":{"q":"^1.0.1","lodash":"^2.4.1"},"devDependencies":{"chai":"^1.9.2","gulp":"^3.8.8","mocha":"*","ecstatic":"^0.5.5","coffeeify":"^0.7.0","gulp-util":"^3.0.1","browserify":"^5.12.1","gulp-coffee":"^2.2.0","coffee-script":">= 1.3","vinyl-source-stream":"^1.0.0"},"optionalDependencies":{"q":"^1.0.1","lodash":"^2.4.1"}},"1.0.1":{"name":"yayson","version":"1.0.1","keywords":["json-api","json","api","response","format","serialization","deserialization","yay","wow","omg"],"author":{"name":"Johannes Edelstam","email":"johannes@edelst.am"},"license":"MIT","_id":"yayson@1.0.1","maintainers":[{"name":"jede","email":"johannes-npm@edelst.am"},{"name":"javve","email":"jonny.stromberg@gmail.com"}],"homepage":"https://github.com/confetti/yayson","bugs":{"url":"https://github.com/confetti/yayson/issues"},"dist":{"shasum":"23eebc3e654d9508c53969bdd471aec630859aae","tarball":"https://registry.npmjs.org/yayson/-/yayson-1.0.1.tgz","integrity":"sha512-gvSis84rJNWrR+BwxZvPESHg0VTUkVRGJp2DkWOoUi2+etaBAr/pbeNbrSdGf7Pqs9miXQv9QyA6S0yN1ORUQA==","signatures":[{"sig":"MEUCIQDfw632vJl4xvhAW8ZlMFv4lrfm67/ZpugXs88y7wO/jQIgZ7hN0ancoHx/PLU2AjNRtaaNB51s5CKkrJVbgxP/b0s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/yayson.js","_from":"./","_shasum":"23eebc3e654d9508c53969bdd471aec630859aae","scripts":{"test":"mocha"},"_npmUser":{"name":"jede","email":"johannes-npm@edelst.am"},"repository":{"url":"git://github.com/confetti/yayson.git","type":"git"},"_npmVersion":"1.4.7","description":"A library for serializing and reading JSON API standardized data in JavaScript.","directories":{},"dependencies":{"q":"^1.0.1","lodash":"^2.4.1"},"devDependencies":{"chai":"^1.9.2","gulp":"^3.8.8","mocha":"*","ecstatic":"^0.5.5","coffeeify":"^0.7.0","gulp-util":"^3.0.1","browserify":"^5.12.1","gulp-coffee":"^2.2.0","coffee-script":">= 1.3","vinyl-source-stream":"^1.0.0"},"optionalDependencies":{"q":"^1.0.1","lodash":"^2.4.1"}},"1.0.2":{"name":"yayson","version":"1.0.2","keywords":["json-api","json","api","response","format","serialization","deserialization","yay","wow","omg"],"author":{"name":"Johannes Edelstam","email":"johannes@edelst.am"},"license":"MIT","_id":"yayson@1.0.2","maintainers":[{"name":"jede","email":"johannes-npm@edelst.am"},{"name":"javve","email":"jonny.stromberg@gmail.com"}],"homepage":"https://github.com/confetti/yayson","bugs":{"url":"https://github.com/confetti/yayson/issues"},"dist":{"shasum":"fc5c8d146e0eb15bab30df4d73b3b474b19491ec","tarball":"https://registry.npmjs.org/yayson/-/yayson-1.0.2.tgz","integrity":"sha512-sYxakYvtkHQtO0p8qjZyc0zbKc5z4SUZHzPHm3ul5YmeqkI7bRPA5sypndoIhbe4urSjmbYxHu36/E91Vimf4A==","signatures":[{"sig":"MEUCIQDnfiCJFe9YKdVU2t9Q1dlXWrISeIQ3En1aHFofMhvWwQIgE8kEsOqst9Y6MLZ7h8cn01Sjcwwty40KwJ4oRXwJrP0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/yayson.js","_from":"./","_shasum":"fc5c8d146e0eb15bab30df4d73b3b474b19491ec","scripts":{"test":"mocha"},"_npmUser":{"name":"jede","email":"johannes-npm@edelst.am"},"repository":{"url":"git://github.com/confetti/yayson.git","type":"git"},"_npmVersion":"1.4.7","description":"A library for serializing and reading JSON API standardized data in JavaScript.","directories":{},"dependencies":{"q":"^1.0.1","lodash":"^2.4.1"},"devDependencies":{"chai":"^1.9.2","gulp":"^3.8.8","mocha":"*","ecstatic":"^0.5.5","coffeeify":"^0.7.0","gulp-util":"^3.0.1","browserify":"^5.12.1","gulp-coffee":"^2.2.0","coffee-script":">= 1.3","vinyl-source-stream":"^1.0.0"},"optionalDependencies":{"q":"^1.0.1","lodash":"^2.4.1"}},"1.0.3":{"name":"yayson","version":"1.0.3","keywords":["json-api","json","api","response","format","serialization","deserialization","yay","wow","omg"],"author":{"name":"Johannes Edelstam","email":"johannes@edelst.am"},"license":"MIT","_id":"yayson@1.0.3","maintainers":[{"name":"jede","email":"johannes-npm@edelst.am"},{"name":"javve","email":"jonny.stromberg@gmail.com"}],"homepage":"https://github.com/confetti/yayson","bugs":{"url":"https://github.com/confetti/yayson/issues"},"dist":{"shasum":"e62edc94409820b2eb6d48304dbbe4790f71bfcc","tarball":"https://registry.npmjs.org/yayson/-/yayson-1.0.3.tgz","integrity":"sha512-A+ms/rwrssCfSfD1SxHKVdL+/g6wwMddM9bLozzlVp7C5/ZJM/fAwnYwqUgOP/bNjlpS7ZyJT8vxUMwVQKNw4w==","signatures":[{"sig":"MEUCIQD/7SeDjsrN4rVrjTBf7cmRHY64kUp3dn2KUyFlmq4WMwIgewpetPQOM144GccmgpOO5htGpBUKChSnzn+drDGF31c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/yayson.js","_from":"./","_shasum":"e62edc94409820b2eb6d48304dbbe4790f71bfcc","scripts":{"test":"mocha"},"_npmUser":{"name":"jede","email":"johannes-npm@edelst.am"},"repository":{"url":"git://github.com/confetti/yayson.git","type":"git"},"_npmVersion":"1.4.7","description":"A library for serializing and reading JSON API standardized data in JavaScript.","directories":{},"dependencies":{"q":"^1.0.1","lodash":"^2.4.1"},"devDependencies":{"chai":"^1.9.2","gulp":"^3.8.8","mocha":"*","ecstatic":"^0.5.5","coffeeify":"^0.7.0","gulp-util":"^3.0.1","browserify":"^5.12.1","gulp-coffee":"^2.2.0","coffee-script":">= 1.3","vinyl-source-stream":"^1.0.0"},"optionalDependencies":{"q":"^1.0.1","lodash":"^2.4.1"}},"1.0.4":{"name":"yayson","version":"1.0.4","keywords":["json-api","json","api","response","format","serialization","deserialization","yay","wow","omg"],"author":{"name":"Johannes Edelstam","email":"johannes@edelst.am"},"license":"MIT","_id":"yayson@1.0.4","maintainers":[{"name":"jede","email":"johannes-npm@edelst.am"},{"name":"javve","email":"jonny.stromberg@gmail.com"}],"homepage":"https://github.com/confetti/yayson","bugs":{"url":"https://github.com/confetti/yayson/issues"},"dist":{"shasum":"1957b10ec0ef87526153b74c98efa872949a8745","tarball":"https://registry.npmjs.org/yayson/-/yayson-1.0.4.tgz","integrity":"sha512-flVvDZSaSBr5oNp+gn2ft2hEffYt1RlR6DvSmqfrJHuonYNUsbYjiODH/ya4R5Vd1nbev5LTAfWuKL00uNV6vw==","signatures":[{"sig":"MEYCIQD6mJS0riw4vpu74uOHX5nYXxqG87OS8pNZdq/ovHWjNQIhAKiUV6xsC3QeITcG/l1DUTVAFz9TXSRugwlO7UIQT9RD","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/yayson.js","_from":"./","_shasum":"1957b10ec0ef87526153b74c98efa872949a8745","scripts":{"test":"mocha"},"_npmUser":{"name":"jede","email":"johannes-npm@edelst.am"},"repository":{"url":"git://github.com/confetti/yayson.git","type":"git"},"_npmVersion":"1.4.7","description":"A library for serializing and reading JSON API standardized data in JavaScript.","directories":{},"dependencies":{"q":"^1.0.1","lodash":"^2.4.1"},"devDependencies":{"chai":"^1.9.2","gulp":"^3.8.8","mocha":"*","ecstatic":"^0.5.5","coffeeify":"^0.7.0","gulp-util":"^3.0.1","browserify":"^5.12.1","gulp-coffee":"^2.2.0","coffee-script":">= 1.3","vinyl-source-stream":"^1.0.0"},"optionalDependencies":{"q":"^1.0.1","lodash":"^2.4.1"}},"1.0.5":{"name":"yayson","version":"1.0.5","keywords":["json-api","json","api","response","format","serialization","deserialization","yay","wow","omg"],"author":{"name":"Johannes Edelstam","email":"johannes@edelst.am"},"license":"MIT","_id":"yayson@1.0.5","maintainers":[{"name":"jede","email":"johannes-npm@edelst.am"},{"name":"javve","email":"jonny.stromberg@gmail.com"}],"homepage":"https://github.com/confetti/yayson","bugs":{"url":"https://github.com/confetti/yayson/issues"},"dist":{"shasum":"9b1ff447415e418d4f12d906118d59dec72519a3","tarball":"https://registry.npmjs.org/yayson/-/yayson-1.0.5.tgz","integrity":"sha512-Hyc1lNaX+WLZbUlTkJcDF9IbS2O09y75jpCHHjlqCfhgUT5uPUX4E8RSbA1ewe6We9yBwybNYcGjitYGfKyH3g==","signatures":[{"sig":"MEYCIQC4wJJJMezBIwu4s1PxtU3WV+16a9O1bhd0I/e9CpatbQIhANdrjUsHHl076b/Rvya0jFuY38lXRTFtFzXX9MIsPjYU","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/yayson.js","_from":"./","_shasum":"9b1ff447415e418d4f12d906118d59dec72519a3","scripts":{"test":"mocha"},"_npmUser":{"name":"jede","email":"johannes-npm@edelst.am"},"repository":{"url":"git://github.com/confetti/yayson.git","type":"git"},"_npmVersion":"1.4.7","description":"A library for serializing and reading JSON API standardized data in JavaScript.","directories":{},"dependencies":{"q":"^1.0.1","lodash":"^2.4.1"},"devDependencies":{"chai":"^1.9.2","gulp":"^3.8.8","mocha":"*","ecstatic":"^0.5.5","coffeeify":"^0.7.0","gulp-util":"^3.0.1","browserify":"^5.12.1","gulp-coffee":"^2.2.0","coffee-script":">= 1.3","vinyl-source-stream":"^1.0.0"},"optionalDependencies":{"q":"^1.0.1","lodash":"^2.4.1"}},"2.0.0-beta.1":{"name":"yayson","version":"2.0.0-beta.1","keywords":["json-api","json","api","response","format","serialization","deserialization","yay","wow","omg"],"author":{"name":"Johannes Edelstam","email":"johannes@edelst.am"},"license":"MIT","_id":"yayson@2.0.0-beta.1","maintainers":[{"name":"jede","email":"johannes-npm@edelst.am"},{"name":"javve","email":"jonny.stromberg@gmail.com"}],"homepage":"https://github.com/confetti/yayson","bugs":{"url":"https://github.com/confetti/yayson/issues"},"dist":{"shasum":"0faaf6cdf82e3a33a13b8f262e479e18f42aa693","tarball":"https://registry.npmjs.org/yayson/-/yayson-2.0.0-beta.1.tgz","integrity":"sha512-HOpjMkKietXuLD43KgIvJD+pS1AOXiLta652l5L6k3bL+7nHsAf2ApLaQvUl0eTifvzDgTq1BoUwF8g+vraXsA==","signatures":[{"sig":"MEUCIQDYENavc7ly7ew+3SeGJQZaf7iHHTTqvSe3Wu+uFBZXfAIgV9wN+ODBb3LysYVq77oHnbq5JDveWkvj2HCHgrI9Rbk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/yayson.js","_from":"./","_shasum":"0faaf6cdf82e3a33a13b8f262e479e18f42aa693","scripts":{"test":"mocha"},"_npmUser":{"name":"jede","email":"johannes-npm@edelst.am"},"repository":{"url":"git://github.com/confetti/yayson.git","type":"git"},"_npmVersion":"1.4.7","description":"A library for serializing and reading JSON API standardized data in JavaScript.","directories":{},"dependencies":{"q":"^1.0.1","lodash":"^2.4.1"},"devDependencies":{"chai":"^1.9.2","gulp":"^3.8.8","mocha":"*","ecstatic":"^0.5.5","coffeeify":"^0.7.0","gulp-util":"^3.0.1","browserify":"^5.12.1","gulp-coffee":"^2.2.0","coffee-script":">= 1.3","vinyl-source-stream":"^1.0.0"},"optionalDependencies":{"q":"^1.0.1","lodash":"^2.4.1"}},"2.0.0-beta.2":{"name":"yayson","version":"2.0.0-beta.2","keywords":["json-api","json","api","response","format","serialization","deserialization","yay","wow","omg"],"author":{"name":"Johannes Edelstam","email":"johannes@edelst.am"},"license":"MIT","_id":"yayson@2.0.0-beta.2","maintainers":[{"name":"jede","email":"johannes-npm@edelst.am"},{"name":"javve","email":"jonny.stromberg@gmail.com"}],"homepage":"https://github.com/confetti/yayson","bugs":{"url":"https://github.com/confetti/yayson/issues"},"dist":{"shasum":"504527e1ed75c33f6bc82d93fd0d3e807f8e5992","tarball":"https://registry.npmjs.org/yayson/-/yayson-2.0.0-beta.2.tgz","integrity":"sha512-mc4kFHLfKzHTNw07DFfUtAg2GllqwqrXVUelO7rWy1b5ShXHID6Ov/EJuOyAt6RmeMlHm2CLKU2naR8mMwH7jQ==","signatures":[{"sig":"MEQCID7p+CCKFA5PtMrOJZIRRiE6PpvNKQG+8Wq2ILxJp0NKAiBRZWJ4/pJ+D7JVnXk39EdKIZmBgVeJy/LM35YBR3OykQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/yayson.js","_from":".","_shasum":"504527e1ed75c33f6bc82d93fd0d3e807f8e5992","scripts":{"test":"mocha"},"_npmUser":{"name":"jede","email":"johannes-npm@edelst.am"},"repository":{"url":"git://github.com/confetti/yayson.git","type":"git"},"_npmVersion":"1.4.7","description":"A library for serializing and reading JSON API standardized data in JavaScript.","directories":{},"dependencies":{"q":"^1.0.1","lodash":"^2.4.1"},"devDependencies":{"chai":"^1.9.2","gulp":"^3.8.8","mocha":"*","ecstatic":"^0.5.5","coffeeify":"^0.7.0","gulp-util":"^3.0.1","browserify":"^5.12.1","gulp-coffee":"^2.2.0","coffee-script":">= 1.3","vinyl-source-stream":"^1.0.0"},"optionalDependencies":{"q":"^1.0.1","lodash":"^2.4.1"}},"2.0.0-beta.3":{"name":"yayson","version":"2.0.0-beta.3","keywords":["json-api","json","api","response","format","serialization","deserialization","yay","wow","omg"],"author":{"name":"Johannes Edelstam","email":"johannes@edelst.am"},"license":"MIT","_id":"yayson@2.0.0-beta.3","maintainers":[{"name":"jede","email":"johannes-npm@edelst.am"},{"name":"javve","email":"jonny.stromberg@gmail.com"}],"homepage":"https://github.com/confetti/yayson","bugs":{"url":"https://github.com/confetti/yayson/issues"},"dist":{"shasum":"8b6464b31993edc48ba60f0faa09154d728cb73c","tarball":"https://registry.npmjs.org/yayson/-/yayson-2.0.0-beta.3.tgz","integrity":"sha512-xVIgdGxPdofVhGNJnWX6x8eVgeKS9mvOYV8BzngID3HF5OyM6OGtpxMTcnHt9an9CKbQQ0UJdynK9kxWk0kWUQ==","signatures":[{"sig":"MEUCIGa6I0w2FHt1nhVwHtiT/+PWFeCIlZiTUWGLECP0trn0AiEAqbWmUk/A4y4K7qk/sEatPBdsL9951RGhkHCr9dndWDM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/yayson.js","_from":".","_shasum":"8b6464b31993edc48ba60f0faa09154d728cb73c","scripts":{"test":"mocha"},"_npmUser":{"name":"jede","email":"johannes-npm@edelst.am"},"repository":{"url":"git://github.com/confetti/yayson.git","type":"git"},"_npmVersion":"1.4.7","description":"A library for serializing and reading JSON API standardized data in JavaScript.","directories":{},"dependencies":{"q":"^1.0.1","lodash":"^2.4.1"},"devDependencies":{"chai":"^1.9.2","gulp":"^3.8.8","mocha":"*","ecstatic":"^0.5.5","coffeeify":"^0.7.0","gulp-util":"^3.0.1","browserify":"^5.12.1","gulp-coffee":"^2.2.0","coffee-script":">= 1.3","vinyl-source-stream":"^1.0.0"},"optionalDependencies":{"q":"^1.0.1","lodash":"^2.4.1"}},"2.0.0-beta.4":{"name":"yayson","version":"2.0.0-beta.4","keywords":["json-api","json","api","response","format","serialization","deserialization","yay","wow","omg"],"author":{"name":"Johannes Edelstam","email":"johannes@edelst.am"},"license":"MIT","_id":"yayson@2.0.0-beta.4","maintainers":[{"name":"jede","email":"johannes-npm@edelst.am"},{"name":"javve","email":"jonny.stromberg@gmail.com"}],"homepage":"https://github.com/confetti/yayson","bugs":{"url":"https://github.com/confetti/yayson/issues"},"dist":{"shasum":"b44686b3eda2eb9297f0201711d6b4943845de8e","tarball":"https://registry.npmjs.org/yayson/-/yayson-2.0.0-beta.4.tgz","integrity":"sha512-fNuzzt8MblXJ9DYOwbPcsD9MSe1vBz2xJvRLTU/Sg+vrn+kx5Zs+audksqgpp38uN9CddwHdXiIFAPlMq9QiMQ==","signatures":[{"sig":"MEQCIC6GBADPhnngDG/XDi6Z8m7S+I2Gt16bY9OOULlMdXSqAiBTMDKhr1WBHB6iyWPKOnvsyssDo67zzGyxVSsZI9mcWw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/yayson.js","_from":".","_shasum":"b44686b3eda2eb9297f0201711d6b4943845de8e","scripts":{"test":"mocha"},"_npmUser":{"name":"jede","email":"johannes-npm@edelst.am"},"repository":{"url":"git://github.com/confetti/yayson.git","type":"git"},"_npmVersion":"1.4.7","description":"A library for serializing and reading JSON API standardized data in JavaScript.","directories":{},"dependencies":{"q":"^1.0.1","lodash":"^2.4.1"},"devDependencies":{"chai":"^1.9.2","gulp":"^3.8.8","mocha":"*","ecstatic":"^0.5.5","coffeeify":"^0.7.0","gulp-util":"^3.0.1","browserify":"^5.12.1","gulp-coffee":"^2.2.0","coffee-script":">= 1.3","vinyl-source-stream":"^1.0.0"},"optionalDependencies":{"q":"^1.0.1","lodash":"^2.4.1"}},"2.0.0-beta.5":{"name":"yayson","version":"2.0.0-beta.5","keywords":["json-api","json","api","response","format","serialization","deserialization","yay","wow","omg"],"author":{"name":"Johannes Edelstam","email":"johannes@edelst.am"},"license":"MIT","_id":"yayson@2.0.0-beta.5","maintainers":[{"name":"jede","email":"johannes-npm@edelst.am"},{"name":"javve","email":"jonny.stromberg@gmail.com"}],"homepage":"https://github.com/confetti/yayson","bugs":{"url":"https://github.com/confetti/yayson/issues"},"dist":{"shasum":"b09646f088ed9b0789256d3958d0589291d0b6f6","tarball":"https://registry.npmjs.org/yayson/-/yayson-2.0.0-beta.5.tgz","integrity":"sha512-JM8q34pCl/tEFxh3lqMYmrKj8XH0ilZk4kzj9abRnzDJiACmEYKwpkO9VaZvtxF7yyuC74mF9W27i2F4HAYKqA==","signatures":[{"sig":"MEYCIQCXoFsC+X0mHe8IEZJiB39ggvTSoTmEF+sZaAMYAy3WpgIhAIVO92WXcUDXgNVEyBQGtHYyCNKTtKXUnUI1b/q4/21+","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/yayson.js","_from":".","_shasum":"b09646f088ed9b0789256d3958d0589291d0b6f6","scripts":{"test":"mocha"},"_npmUser":{"name":"jede","email":"johannes-npm@edelst.am"},"repository":{"url":"git://github.com/confetti/yayson.git","type":"git"},"_npmVersion":"1.4.7","description":"A library for serializing and reading JSON API standardized data in JavaScript.","directories":{},"dependencies":{"q":"^1.0.1","lodash":"^2.4.1"},"devDependencies":{"chai":"^1.9.2","gulp":"^3.8.8","mocha":"*","ecstatic":"^0.5.5","coffeeify":"^0.7.0","gulp-util":"^3.0.1","browserify":"^5.12.1","gulp-coffee":"^2.2.0","coffee-script":">= 1.3","vinyl-source-stream":"^1.0.0"},"optionalDependencies":{"q":"^1.0.1","lodash":"^2.4.1"}},"2.0.0":{"name":"yayson","version":"2.0.0","keywords":["json-api","json","api","response","format","serialization","deserialization","yay","wow","omg"],"author":{"name":"Johannes Edelstam","email":"johannes@edelst.am"},"license":"MIT","_id":"yayson@2.0.0","maintainers":[{"name":"jede","email":"johannes-npm@edelst.am"},{"name":"javve","email":"jonny.stromberg@gmail.com"}],"homepage":"https://github.com/confetti/yayson","bugs":{"url":"https://github.com/confetti/yayson/issues"},"dist":{"shasum":"c11df522af5be65298ee38b5124499292704bc87","tarball":"https://registry.npmjs.org/yayson/-/yayson-2.0.0.tgz","integrity":"sha512-ihlFP2fQQlC5+T9Leo9Cu37ZKI/wiaW1cp/GFZNOcetyqNkzkzgZ02m6xMpareFdorzldFpT6chaMAF5jyD0uA==","signatures":[{"sig":"MEYCIQDC8YyjCcGybpa30fGsynGAvJ0EOm5S8zjSGsSILU/HLAIhAL1IoUaTCpQGy0gaTnm0ZpFRBxadw5IBkHVPnLUBvfjH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/yayson.js","_from":".","_shasum":"c11df522af5be65298ee38b5124499292704bc87","browser":{"q":false,"lodash":false,"underscore":false},"scripts":{"test":"mocha"},"_npmUser":{"name":"jede","email":"johannes-npm@edelst.am"},"repository":{"url":"git://github.com/confetti/yayson.git","type":"git"},"_npmVersion":"1.4.7","description":"A library for serializing and reading JSON API standardized data in JavaScript.","directories":{},"dependencies":{"q":"^1.0.1","lodash":"^2.4.1","underscore":"^1.8.3"},"devDependencies":{"chai":"^1.9.2","gulp":"^3.8.8","mocha":"*","ecstatic":"^0.5.5","coffeeify":"^0.7.0","gulp-util":"^3.0.1","browserify":"^5.12.1","gulp-coffee":"^2.2.0","coffee-script":">= 1.3","vinyl-source-stream":"^1.0.0"},"optionalDependencies":{"q":"^1.0.1","lodash":"^2.4.1","underscore":"^1.8.3"}},"2.0.1":{"name":"yayson","version":"2.0.1","keywords":["json-api","json","api","response","format","serialization","deserialization","yay","wow","omg"],"author":{"name":"Johannes Edelstam","email":"johannes@edelst.am"},"license":"MIT","_id":"yayson@2.0.1","maintainers":[{"name":"jede","email":"johannes-npm@edelst.am"},{"name":"javve","email":"jonny.stromberg@gmail.com"}],"homepage":"https://github.com/confetti/yayson","bugs":{"url":"https://github.com/confetti/yayson/issues"},"dist":{"shasum":"44b33c6ffeb201d24d008eef0f4b5cb9a143fc3a","tarball":"https://registry.npmjs.org/yayson/-/yayson-2.0.1.tgz","integrity":"sha512-XygU9nHCYp7CBw+nSzy+N82M2rompD5aEvWg9PEVvHwlVc7dyzBlg8VO6xyyY3p5vcYD6b5hS2ncwEH73zrXhA==","signatures":[{"sig":"MEQCIBXn8VA87HgedBAa5sjInyFm5b0ad0a5uqIui7oT8XdkAiAsZDlNVLp5z7kvL447q9Gjxrj+zH6lxiPvnrDQa8iJqw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/yayson.js","_from":".","_shasum":"44b33c6ffeb201d24d008eef0f4b5cb9a143fc3a","browser":{"q":false,"lodash":false,"underscore":false},"scripts":{"test":"mocha"},"_npmUser":{"name":"jede","email":"johannes-npm@edelst.am"},"repository":{"url":"git://github.com/confetti/yayson.git","type":"git"},"_npmVersion":"1.4.7","description":"A library for serializing and reading JSON API standardized data in JavaScript.","directories":{},"dependencies":{"q":"^1.0.1","lodash":"^2.4.1","underscore":"^1.8.3"},"devDependencies":{"chai":"^1.9.2","gulp":"^3.8.8","mocha":"*","ecstatic":"^0.5.5","coffeeify":"^0.7.0","gulp-util":"^3.0.1","browserify":"^5.12.1","gulp-coffee":"^2.2.0","coffee-script":">= 1.3","vinyl-source-stream":"^1.0.0"},"optionalDependencies":{"q":"^1.0.1","lodash":"^2.4.1","underscore":"^1.8.3"},"_npmOperationalInternal":{"tmp":"tmp/yayson-2.0.1.tgz_1454921802506_0.9272860225755721","host":"packages-6-west.internal.npmjs.com"}},"2.0.2":{"name":"yayson","version":"2.0.2","keywords":["json-api","json","api","response","format","serialization","deserialization","yay","wow","omg"],"author":{"name":"Johannes Edelstam","email":"johannes@edelst.am"},"license":"MIT","_id":"yayson@2.0.2","maintainers":[{"name":"jede","email":"johannes-npm@edelst.am"},{"name":"javve","email":"jonny.stromberg@gmail.com"}],"homepage":"https://github.com/confetti/yayson","bugs":{"url":"https://github.com/confetti/yayson/issues"},"dist":{"shasum":"a10a9adaba38a0379be6f55289098b0b0acb2262","tarball":"https://registry.npmjs.org/yayson/-/yayson-2.0.2.tgz","integrity":"sha512-wWGuzTfNfonCX+xdrOCRRhtMuo+A9GG6xZ+WrOPRhmo/UKCIP6lDkTNFUgn9roRYKepJ4qdYXBE3jpMP2SwGFw==","signatures":[{"sig":"MEUCIQCBav8NskcCXm+UlMInCjodvquT568kDCJje+uQip8OYwIgHN1Y1bCovcg12fwntz44pW5csZs/dQdt94MiVgqn8U0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/yayson.js","_from":".","_shasum":"a10a9adaba38a0379be6f55289098b0b0acb2262","browser":{"q":false,"lodash":false,"underscore":false},"gitHead":"4579b6a7eb02f66e92ebfacc0c3cad8e56de2a92","scripts":{"test":"mocha"},"_npmUser":{"name":"jede","email":"johannes-npm@edelst.am"},"repository":{"url":"git://github.com/confetti/yayson.git","type":"git"},"_npmVersion":"3.10.7","description":"A library for serializing and reading JSON API standardized data in JavaScript.","directories":{},"_nodeVersion":"4.4.3","dependencies":{"q":"^1.0.1","lodash":"^2.4.1","underscore":"^1.8.3"},"devDependencies":{"chai":"^1.9.2","gulp":"^3.8.8","bower":"^1.7.7","mocha":"*","ecstatic":"^0.5.5","coffeeify":"^0.7.0","gulp-util":"^3.0.1","browserify":"^5.12.1","gulp-coffee":"^2.2.0","coffee-script":">= 1.3","vinyl-source-stream":"^1.0.0"},"optionalDependencies":{"q":"^1.0.1","lodash":"^2.4.1","underscore":"^1.8.3"},"_npmOperationalInternal":{"tmp":"tmp/yayson-2.0.2.tgz_1481795717709_0.17462553922086954","host":"packages-18-east.internal.npmjs.com"}},"2.0.3":{"name":"yayson","version":"2.0.3","keywords":["json-api","json","api","response","format","serialization","deserialization","yay","wow","omg"],"author":{"name":"Johannes Edelstam","email":"johannes@edelst.am"},"license":"MIT","_id":"yayson@2.0.3","maintainers":[{"name":"jede","email":"johannes-npm@edelst.am"},{"name":"javve","email":"jonny.stromberg@gmail.com"}],"homepage":"https://github.com/confetti/yayson","bugs":{"url":"https://github.com/confetti/yayson/issues"},"dist":{"shasum":"fa93365a04ace5a48abd902b489e0703a552de48","tarball":"https://registry.npmjs.org/yayson/-/yayson-2.0.3.tgz","integrity":"sha512-zI6TlOIIgoajw4M0RBMgyWCgQfYPorUeJVGpEO6dy/5/aBDUUgf4PHYNNae8OhTaCxRhZQ1q6nBp7Su+xWuzew==","signatures":[{"sig":"MEQCIAc2EajFrfUVYcFNl5zAsMfokiBu4leTEa3BYn2kxs1KAiBsoyTE+jrQ38J17Vbe/084jgK3VM+j5zkGEFuZzFsPog==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/yayson.js","_from":".","_shasum":"fa93365a04ace5a48abd902b489e0703a552de48","browser":{"q":false,"lodash":false,"underscore":false},"gitHead":"a068fc150b675fbb6edbcf6ac97d16215cb1e376","scripts":{"test":"mocha"},"_npmUser":{"name":"jede","email":"johannes-npm@edelst.am"},"repository":{"url":"git://github.com/confetti/yayson.git","type":"git"},"_npmVersion":"3.10.7","description":"A library for serializing and reading JSON API standardized data in JavaScript.","directories":{},"_nodeVersion":"4.4.3","dependencies":{"q":"^1.0.1","lodash":"^2.4.1","underscore":"^1.8.3"},"devDependencies":{"chai":"^1.9.2","gulp":"^3.8.8","bower":"^1.7.7","mocha":"*","ecstatic":"^0.5.5","coffeeify":"^0.7.0","gulp-util":"^3.0.1","browserify":"^5.12.1","gulp-coffee":"^2.2.0","coffee-script":">= 1.3","vinyl-source-stream":"^1.0.0"},"optionalDependencies":{"q":"^1.0.1","lodash":"^2.4.1","underscore":"^1.8.3"},"_npmOperationalInternal":{"tmp":"tmp/yayson-2.0.3.tgz_1481796045157_0.26599001744762063","host":"packages-12-west.internal.npmjs.com"}},"2.0.4":{"name":"yayson","version":"2.0.4","keywords":["json-api","json","api","response","format","serialization","deserialization","yay","wow","omg"],"author":{"name":"Johannes Edelstam","email":"johannes@edelst.am"},"license":"MIT","_id":"yayson@2.0.4","maintainers":[{"name":"jede","email":"johannes-npm@edelst.am"},{"name":"javve","email":"jonny.stromberg@gmail.com"}],"homepage":"https://github.com/confetti/yayson","bugs":{"url":"https://github.com/confetti/yayson/issues"},"dist":{"shasum":"c1ac9353ca8beae989529a163e78f0bcdcb8de9e","tarball":"https://registry.npmjs.org/yayson/-/yayson-2.0.4.tgz","integrity":"sha512-b0gjbmy6TsBVvp+QW81C797dJUFcmksn+S7DBnvmhHSwrwwEAZh17csEE1FOQcZsnT4i/Mgou7/RjSFd6UtGDw==","signatures":[{"sig":"MEUCIQCcqHe8nsKeuyDRp9kujLK19UPVpxcl7KAWR72qnphMJwIgO1DDduVWMUO6xTGCUjEMTzeWPXIxvRs+m85at8d5Gwo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/yayson.js","_from":".","_shasum":"c1ac9353ca8beae989529a163e78f0bcdcb8de9e","browser":{"q":false,"lodash":false,"underscore":false},"gitHead":"954fe5b03a345912b61500103e51c26f34848030","scripts":{"test":"mocha"},"_npmUser":{"name":"jede","email":"johannes-npm@edelst.am"},"repository":{"url":"git://github.com/confetti/yayson.git","type":"git"},"_npmVersion":"3.10.7","description":"A library for serializing and reading JSON API standardized data in JavaScript.","directories":{},"_nodeVersion":"4.4.3","dependencies":{"q":"^1.0.1","lodash":"^2.4.1","underscore":"^1.8.3"},"devDependencies":{"chai":"^1.9.2","gulp":"^3.8.8","bower":"^1.7.7","mocha":"*","sinon":"^2.3.5","ecstatic":"^0.5.5","coffeeify":"^0.7.0","gulp-util":"^3.0.1","browserify":"^5.12.1","sinon-chai":"^2.11.0","gulp-coffee":"^2.2.0","coffee-script":">= 1.3","vinyl-source-stream":"^1.0.0"},"optionalDependencies":{"q":"^1.0.1","lodash":"^2.4.1","underscore":"^1.8.3"},"_npmOperationalInternal":{"tmp":"tmp/yayson-2.0.4.tgz_1498515211194_0.9415129306726158","host":"s3://npm-registry-packages"}},"2.0.5":{"name":"yayson","version":"2.0.5","keywords":["json-api","json","api","response","format","serialization","deserialization","yay","wow","omg"],"author":{"name":"Johannes Edelstam","email":"johannes@edelst.am"},"license":"MIT","_id":"yayson@2.0.5","maintainers":[{"name":"jede","email":"johannes-npm@edelst.am"},{"name":"javve","email":"jonny.stromberg@gmail.com"}],"homepage":"https://github.com/confetti/yayson","bugs":{"url":"https://github.com/confetti/yayson/issues"},"dist":{"shasum":"ecaa3edc75385647e5e98070f714633954b3f09a","tarball":"https://registry.npmjs.org/yayson/-/yayson-2.0.5.tgz","integrity":"sha512-4BBx/ZMc5ZOGbwYCuKKrmVEaplX6fjrxED28muSTEPb+K4pntKhBO7Y5cPqZdWqCdg9JxHTL7/ni4FqiZ7y/mA==","signatures":[{"sig":"MEUCIEm/RI8qRC5tnHJLfPDDKonjn5f+aMmJhSg3KsZfzfU3AiEAp6awEErvG6y8HtKEvQkWKMSBMNy5WAg1/g333HKF7Q0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/yayson.js","_from":".","_shasum":"ecaa3edc75385647e5e98070f714633954b3f09a","browser":{"q":false,"lodash":false,"underscore":false},"gitHead":"6262a40c7e392372c2111170797c694cb026c919","scripts":{"test":"mocha"},"_npmUser":{"name":"jede","email":"johannes-npm@edelst.am"},"repository":{"url":"git://github.com/confetti/yayson.git","type":"git"},"_npmVersion":"3.10.7","description":"A library for serializing and reading JSON API standardized data in JavaScript.","directories":{},"_nodeVersion":"4.4.3","dependencies":{"q":"^1.0.1","lodash":"^2.4.1","underscore":"^1.8.3"},"devDependencies":{"chai":"^1.9.2","gulp":"^3.8.8","bower":"^1.7.7","mocha":"*","sinon":"^2.3.5","ecstatic":"^0.5.5","coffeeify":"^0.7.0","gulp-util":"^3.0.1","browserify":"^5.12.1","sinon-chai":"^2.11.0","gulp-coffee":"^2.2.0","coffee-script":">= 1.3","vinyl-source-stream":"^1.0.0"},"optionalDependencies":{"q":"^1.0.1","lodash":"^2.4.1","underscore":"^1.8.3"},"_npmOperationalInternal":{"tmp":"tmp/yayson-2.0.5.tgz_1498515677203_0.13953525689430535","host":"s3://npm-registry-packages"}},"2.0.6":{"name":"yayson","version":"2.0.6","keywords":["json-api","json","api","response","format","serialization","deserialization","yay","wow","omg"],"author":{"name":"Johannes Edelstam","email":"johannes@edelst.am"},"license":"MIT","_id":"yayson@2.0.6","maintainers":[{"name":"jede","email":"johannes-npm@edelst.am"},{"name":"javve","email":"jonny.stromberg@gmail.com"}],"homepage":"https://github.com/confetti/yayson","bugs":{"url":"https://github.com/confetti/yayson/issues"},"dist":{"shasum":"a6fe7c6ca4f7b359a792efd89560526059b5f3ca","tarball":"https://registry.npmjs.org/yayson/-/yayson-2.0.6.tgz","integrity":"sha512-OEPqR1z9QWbe1j5+EG1b6fV9UdHM0aIHONyhyDq35oJnz55NVrpygtNUeTKgifBccr/K4OnwHrrbltEevNJK7A==","signatures":[{"sig":"MEYCIQCsWxt+8bqvf3bu2cgWRG0ayZi4Zy6T1dASO1HG4hFylQIhANFP8LgtnUt5V42eSxX+LBtFrVnnb+WeKxn/JJXWysus","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/yayson.js","_from":".","_shasum":"a6fe7c6ca4f7b359a792efd89560526059b5f3ca","browser":{"q":false,"lodash":false,"underscore":false},"gitHead":"2b8a2679a9e55bc100e1face55236d94514abf39","scripts":{"test":"mocha"},"_npmUser":{"name":"jede","email":"johannes-npm@edelst.am"},"repository":{"url":"git://github.com/confetti/yayson.git","type":"git"},"_npmVersion":"3.10.8","description":"A library for serializing and reading JSON API standardized data in JavaScript.","directories":{},"_nodeVersion":"6.9.1","dependencies":{"q":"^1.0.1","lodash":"^2.4.1","underscore":"^1.8.3"},"devDependencies":{"chai":"^1.9.2","gulp":"^3.8.8","bower":"^1.7.7","mocha":"*","sinon":"^2.3.5","ecstatic":"^0.5.5","coffeeify":"^0.7.0","gulp-util":"^3.0.1","browserify":"^5.12.1","sinon-chai":"^2.11.0","gulp-coffee":"^2.2.0","coffee-script":">= 1.3","vinyl-source-stream":"^1.0.0"},"optionalDependencies":{"q":"^1.0.1","lodash":"^2.4.1","underscore":"^1.8.3"},"_npmOperationalInternal":{"tmp":"tmp/yayson-2.0.6.tgz_1506627561488_0.6984052744228393","host":"s3://npm-registry-packages"}},"2.0.7":{"name":"yayson","version":"2.0.7","keywords":["json-api","json","api","response","format","serialization","deserialization","yay","wow","omg"],"author":{"name":"Johannes Edelstam","email":"johannes@edelst.am"},"license":"MIT","_id":"yayson@2.0.7","maintainers":[{"name":"jede","email":"johannes-npm@edelst.am"},{"name":"javve","email":"jonny.stromberg@gmail.com"}],"homepage":"https://github.com/confetti/yayson","bugs":{"url":"https://github.com/confetti/yayson/issues"},"dist":{"shasum":"e368f7214a4e60dc48bb7c5e91eeb78412b39846","tarball":"https://registry.npmjs.org/yayson/-/yayson-2.0.7.tgz","integrity":"sha512-6j03iF4hpjDRKnDJm60CUlVxkEgkS7BjhOPw1WRLjKJxVlwETzJSd2gVsr1me06JITnY/D9m2klm7ZmnTysyDA==","signatures":[{"sig":"MEYCIQDoBjw1XQzeEkwQ63xFeEbQ36rHlZTfaxKejaUByMMEuQIhALfBwnBhzNpeVWUvtNa1IjSt1kn8Qk80wzGRlU+BBEXE","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/yayson.js","_from":".","_shasum":"e368f7214a4e60dc48bb7c5e91eeb78412b39846","browser":{"q":false,"lodash":false,"underscore":false},"gitHead":"f5ea71e6b441fc69f428d529521e17530c09f2be","scripts":{"test":"mocha"},"_npmUser":{"name":"jede","email":"johannes-npm@edelst.am"},"repository":{"url":"git://github.com/confetti/yayson.git","type":"git"},"_npmVersion":"3.10.8","description":"A library for serializing and reading JSON API standardized data in JavaScript.","directories":{},"_nodeVersion":"6.9.1","dependencies":{"q":"^1.0.1","lodash":"^4.17.4","underscore":"^1.8.3"},"devDependencies":{"chai":"^1.9.2","gulp":"^3.8.8","bower":"^1.7.7","mocha":"*","sinon":"^2.3.5","ecstatic":"^0.5.5","coffeeify":"^0.7.0","gulp-util":"^3.0.1","browserify":"^5.12.1","sinon-chai":"^2.11.0","gulp-coffee":"^2.2.0","coffee-script":">= 1.3","vinyl-source-stream":"^1.0.0"},"optionalDependencies":{"q":"^1.0.1","lodash":"^4.17.4","underscore":"^1.8.3"},"_npmOperationalInternal":{"tmp":"tmp/yayson-2.0.7.tgz_1506628801816_0.7675198593642563","host":"s3://npm-registry-packages"}},"2.0.8":{"name":"yayson","version":"2.0.8","keywords":["json-api","json","api","response","format","serialization","deserialization","yay","wow","omg"],"author":{"name":"Johannes Edelstam","email":"johannes@edelst.am"},"license":"MIT","_id":"yayson@2.0.8","maintainers":[{"name":"jede","email":"johannes-npm@edelst.am"},{"name":"javve","email":"jonny.stromberg@gmail.com"}],"homepage":"https://github.com/confetti/yayson","bugs":{"url":"https://github.com/confetti/yayson/issues"},"dist":{"shasum":"58da53753a423ca9501f20a80c3807b500609530","tarball":"https://registry.npmjs.org/yayson/-/yayson-2.0.8.tgz","integrity":"sha512-/cC9tsQjy+2epiLgJUKxeMYqrhizJuTSZU/C3Zmf6PrTqccKj6JKXQO5jSZvKBpqBNiL0tXOvi36lsM3jwdWnA==","signatures":[{"sig":"MEYCIQDAoKFQlS2qD0/drYFYBRcZ+1rM0SGHoB31XsKTJoKJcwIhAKlbuB8EJGHep7fMhsg+yec+9eFJgYpgkFdEmP+FQQnq","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/yayson.js","_from":".","_shasum":"58da53753a423ca9501f20a80c3807b500609530","browser":{"q":false,"lodash":false,"underscore":false},"gitHead":"3e556d89fa2b4176e3789858f91cad27f3da9891","scripts":{"test":"mocha"},"_npmUser":{"name":"jede","email":"johannes-npm@edelst.am"},"repository":{"url":"git://github.com/confetti/yayson.git","type":"git"},"_npmVersion":"3.10.8","description":"A library for serializing and reading JSON API standardized data in JavaScript.","directories":{},"_nodeVersion":"6.9.1","dependencies":{"q":"^1.0.1","lodash":"^4.17.4","underscore":"^1.8.3"},"devDependencies":{"chai":"^1.9.2","gulp":"^3.8.8","bower":"^1.7.7","mocha":"*","sinon":"^2.3.5","ecstatic":"^0.5.5","coffeeify":"^0.7.0","gulp-util":"^3.0.1","browserify":"^5.12.1","sinon-chai":"^2.11.0","gulp-coffee":"^2.2.0","coffee-script":">= 1.3","vinyl-source-stream":"^1.0.0"},"optionalDependencies":{"q":"^1.0.1","lodash":"^4.17.4","underscore":"^1.8.3"},"_npmOperationalInternal":{"tmp":"tmp/yayson-2.0.8.tgz_1506675225878_0.6541691576130688","host":"s3://npm-registry-packages"}},"2.0.9":{"name":"yayson","version":"2.0.9","keywords":["json-api","json","api","response","format","serialization","deserialization","yay","wow","omg"],"author":{"name":"Johannes Edelstam","email":"johannes@edelst.am"},"license":"MIT","_id":"yayson@2.0.9","maintainers":[{"name":"javve","email":"jonny.stromberg@gmail.com"},{"name":"jede","email":"johannes-npm@edelst.am"}],"homepage":"https://github.com/confetti/yayson","bugs":{"url":"https://github.com/confetti/yayson/issues"},"dist":{"shasum":"7d28774965a887087df02476a2bccf9c8e671820","tarball":"https://registry.npmjs.org/yayson/-/yayson-2.0.9.tgz","fileCount":15,"integrity":"sha512-lrgWFOQ0Wgk+9xWM2d4i6v+SjsNXL7JrVmLAmZQ8nQeLP2gBMvF7g4iKCPqB7sAhkxMv/zkcLzc3qQaaVdZlDg==","signatures":[{"sig":"MEUCIQDsSJkllMx/f50w8oAqz8+EpaQKBLOf6phbNqaylEpiwAIgdWFjPX4wf9rtsrGD0d94Wy9AiWb49Jlq7d9FRwmrxDs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25112,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeIH1pCRA9TVsSAnZWagAADqAQAInwYVbtSoYhiSLcWZ66\nODyxq9M+4SjAmgy0vBYVcNtG/kSyNsRTwoemNUFVHIxLK0VCXxrFO6eiuHxE\nAGpx0Yyr145YwwEvq5NQW9Ist7ADzJw1Zky6PDTYSuEg8Hqd6OITT8xiA2oH\ny+vYUh/CdQQR70B7GcnE4GF45mpUGZ/n6QIF5vSMbZZw6cTdm1Bwt0ZkoXb2\n5qkrd6TPnpQVguQYCg10EqAo84I4hXw0WA0rox5gVQtKvunQvZsIUZuucxc9\ngoqG7LAAmvU9DhynBCg7OBphB6Zq5mCClHIpX14gkLlziVqYjsu+Nwi6wm//\nFRUNUEX0hhdvwJ+422cr7EpMr4uzKqDaM3yd0cCaHzXhoSEGuHeskrVtp6i6\nFYzRxSTu0TgrGCqhumUijBC95F/7dYGpx5d6KHUUKLI5xk0S7qjsHwbvifbO\neHTUrQBN8zfYnJRGH209jNjSYfAZxE79BiiPLJwDDxX6yTPOVwwEpylyXHFC\ndK7bOM9kXvhOdksqeTYExCrNib2cW6V0oTS6d5QEzRetLQwQQOsqyBlaz5zX\nkXgPW8FkwP7rUYRII+HmIpCIYxDQtEi0RewOgClsVfaYjP77enwqImk8tybf\n1qQY432H04l23XPeiZ6MwBjDl6WSgPswdQKJEOiBVwed6mlFn0TVDQNWKFjs\nkvf2\r\n=hs5V\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/yayson.js","browser":{"q":false,"lodash":false,"underscore":false},"gitHead":"a75355856b99b81c0863bc857121a8e23d65d506","scripts":{"test":"mocha"},"_npmUser":{"name":"javve","email":"jonny.stromberg@gmail.com"},"repository":{"url":"git://github.com/confetti/yayson.git","type":"git"},"_npmVersion":"6.6.0","description":"A library for serializing and reading JSON API standardized data in JavaScript.","directories":{},"_nodeVersion":"10.15.0","dependencies":{"q":"^1.0.1","lodash":"^4.17.4","underscore":"^1.8.3"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","gulp":"^4.0.0","bower":"^1.7.7","mocha":"*","sinon":"^7.3.1","ecstatic":"^4.0.0","coffeeify":"^2.1.0","gulp-util":"^3.0.1","browserify":"^16.2.3","sinon-chai":"^3.3.0","gulp-coffee":"^3.0.3","coffee-script":"^1.12.7","vinyl-source-stream":"^2.0.0"},"optionalDependencies":{"q":"^1.0.1","lodash":"^4.17.4","underscore":"^1.8.3"},"_npmOperationalInternal":{"tmp":"tmp/yayson_2.0.9_1579187560653_0.4067841842803619","host":"s3://npm-registry-packages"}},"2.0.10-quickfix":{"name":"yayson","version":"2.0.10-quickfix","keywords":["json-api","json","api","response","format","serialization","deserialization","yay","wow","omg"],"author":{"name":"Johannes Edelstam","email":"johannes@edelst.am"},"license":"MIT","_id":"yayson@2.0.10-quickfix","maintainers":[{"name":"javve","email":"jonny.stromberg@gmail.com"},{"name":"jede","email":"johannes-npm@edelst.am"}],"homepage":"https://github.com/confetti/yayson","bugs":{"url":"https://github.com/confetti/yayson/issues"},"dist":{"shasum":"05e2c4041556ca40adab6ba8ec7e02dcc500a081","tarball":"https://registry.npmjs.org/yayson/-/yayson-2.0.10-quickfix.tgz","fileCount":15,"integrity":"sha512-DahvHsIvqUvSfRs3WW3bkh8k8Mbvwa4bVYfRiQ/MpJFTwG/oEpQc6PnXoDAOYc1W8eQwUKOuwMvTfv7EoyGsJA==","signatures":[{"sig":"MEUCIQCFzL4FJ0N/gbqfpNc+y2ZNhx4+zdfhOABFQPZPpsCWwwIgZeVZOL+Xs14UJpL+wZvM3INdfGjc3M/846bP9lQokyo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25276,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeIWvZCRA9TVsSAnZWagAA3SsQAJwoS/nAfHaNM0iEt2Of\nh9GwNSuSSTxWw0hR/p3FmGRr/ijjdprl91+jkyDTd5fAG1Cfl1VMtM0eZD5i\nxKSv2oBZlD1pHUCh7PVoD0E2c94In3ASShbMTZOtCYIty6aT8MnXdmDehKTA\nTw92N7VNtLnpF6JNMpo++F+elkWsJbwsPgcTs2HKUcl0+BDJNjNFjgSJ27mV\nV9U5q8RHvfOm1f82lMGSPj13z/1Mlfu+wJAAXczu09fimJtJ7/hZFd7qvwdB\nc009fNYFhH2eN+DV85u1cRW3nbFloT9/dX+kSNebgj3/hSjELS9mdCt0DGoi\nxa0s2pTmIsdqASepK+1n5YMI9Od8vqsvD/ZDfoRXjn3bCMoWMChjF8gqi5d2\nZmRlPtU/98MwbvovidJmr2nExnblgj+h7ZB1Jx8oFlQDT0aK5iomp/stY9hO\nBhIiwmCoxVuPH4uoBoGef7szwaP733X37CjzWmIWJP78Djg9tTwoxWcuonv8\n+63LWoepbZxMXTQyy/OONiQIT7oAWChH5pN5ICARCk2ePg7CdABIWWYGsntV\nfJbmO31C2cGBtFG0eEoW9Pb6G2erNQlgSFrd/j02XTC8hHk8cBUorDlrj3Tv\nP0YIqvnNC4uWiRjTHKcrmAfpPBwtVr+/Ixtl4ZbyL0LoyoQxKCeE8Q2FmH3l\nlWZU\r\n=54ZW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/yayson.js","browser":{"q":false,"lodash":false,"underscore":false},"gitHead":"f2b10051f84dadd5d142ec11bab1f5301fb95c34","scripts":{"test":"mocha"},"_npmUser":{"name":"javve","email":"jonny.stromberg@gmail.com"},"repository":{"url":"git://github.com/confetti/yayson.git","type":"git"},"_npmVersion":"6.6.0","description":"A library for serializing and reading JSON API standardized data in JavaScript.","directories":{},"_nodeVersion":"10.15.0","dependencies":{"q":"^1.0.1","lodash":"^4.17.4","underscore":"^1.8.3"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","gulp":"^4.0.0","bower":"^1.7.7","mocha":"*","sinon":"^7.3.1","ecstatic":"^4.0.0","coffeeify":"^2.1.0","gulp-util":"^3.0.1","browserify":"^16.2.3","sinon-chai":"^3.3.0","gulp-coffee":"^3.0.3","coffee-script":"^1.12.7","vinyl-source-stream":"^2.0.0"},"optionalDependencies":{"q":"^1.0.1","lodash":"^4.17.4","underscore":"^1.8.3"},"_npmOperationalInternal":{"tmp":"tmp/yayson_2.0.10-quickfix_1579248600553_0.19648087560740302","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"yayson","version":"2.1.0","keywords":["json-api","json","api","response","format","serialization","deserialization","yay","wow","omg"],"author":{"name":"Johannes Edelstam","email":"johannes@edelst.am"},"license":"MIT","_id":"yayson@2.1.0","maintainers":[{"name":"javve","email":"jonny.stromberg@gmail.com"},{"name":"jede","email":"johannes-npm@edelst.am"}],"homepage":"https://github.com/confetti/yayson","bugs":{"url":"https://github.com/confetti/yayson/issues"},"dist":{"shasum":"f261cb4269a16d80001938d96a2050d5e5f70e3b","tarball":"https://registry.npmjs.org/yayson/-/yayson-2.1.0.tgz","fileCount":18,"integrity":"sha512-VhLT75PkrPnvB3wjP1/VsTUfOHhlcIshTDYBiTvnNODVN4y7o5jq4YkrNo2oJkbN5VEFQcZheLCwkS64V0ut7g==","signatures":[{"sig":"MEUCIQCVQeLXT7Ad/yW4quMOhf8PEyq7vk38AzIbi1kNl1CD7AIgQMQZdODq891+1aeDPyhgVKp8IZWbmPj90BjHw9aySQA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33124,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgeXjfCRA9TVsSAnZWagAAgfkP/jEoJai7U0ns36Wot5UV\nUR325svoLIOanccQrB2lNAJQMjN0GOBGHJsGHGwqLySmryyOO3HfV5S7eezZ\nIZX+pdiT75A6KqJGijIB96nqwXSHigJpxmTvm5gDi7aFXrP9gleWWXI9hDla\nJ9NPGU25tAur3BHtevEFjx8AzkMZHIPBbwDKHOmKEtf7M+KTA260Div7cGkv\nCVeOaRP8pc6bbQ5q6QKVXuhrJtt8CAfnWnX2SCdvM8MhFROkHUVfOiaozW5z\nwu4VaMwoiSgPyNHcDhOONeFGugSzfQCf7KCLoXZOVxnDgnkod0jkQGKt9bhU\n3WdcDDIL4Fytupavq8EGAoOtXJ5GKAdmC7vfJF8P9LNE/2HRMXl20YcIgl40\n1t0+mFYirXP3cflLvpatttGs4xmmH5LXmY0jiAHDfr2DPofKB4ZvGLFqojTh\nP0mAXIAfFDhFrjwYB28OpgaSfdfHx2kbB3UMXx6DHgGziNfIuw7j9lnDRq3U\n/aPU1hiOmJfIrr4QLIi+RJqLxnTGt7paF5VR0UtZt8L5HG8OG1EI2lJXOx4K\ndeSi2y4c7bBebSJtoHF0tGBRbZudZGEyKDnuSJsFjBL6ICVPDbFHZQb93RfW\nkiEy2fmUgNMe9YNLArvPzVQD4WAb9/9wqQ7SfWBP6kxtCcQRyxHn3RKSG6nl\nYM0m\r\n=V+5a\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/yayson.js","browser":{"q":false,"lodash":false,"underscore":false},"engines":{"npm":">=6","node":">=10"},"gitHead":"f1b5c039a90c88cabb2223befc180cb1fc887cdf","scripts":{"test":"mocha","build":"gulp","release":"npm version minor","preversion":"npm test && npm run build && git add dist/yayson.js","postversion":"git push --follow-tags origin master"},"_npmUser":{"name":"jede","email":"johannes-npm@edelst.am"},"repository":{"url":"git://github.com/confetti/yayson.git","type":"git"},"_npmVersion":"6.6.0","description":"A library for serializing and reading JSON API standardized data in JavaScript.","directories":{},"_nodeVersion":"10.15.0","dependencies":{"q":"^1.5.1","lodash":"^4.17.21","underscore":"^1.13.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.4","gulp":"^4.0.2","bower":"^1.8.12","mocha":"^8.3.2","sinon":"^10.0.0","ecstatic":"^4.1.4","coffeeify":"^3.0.1","gulp-util":"^3.0.1","browserify":"^17.0.0","sinon-chai":"^3.6.0","gulp-coffee":"^3.0.3","coffeescript":"^1.12.7","vinyl-source-stream":"^2.0.0"},"optionalDependencies":{"q":"^1.5.1","lodash":"^4.17.21","underscore":"^1.13.1"},"_npmOperationalInternal":{"tmp":"tmp/yayson_2.1.0_1618573535268_0.3338066452107702","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"yayson","version":"3.0.0","keywords":["json-api","json","api","response","format","serialization","deserialization","yay","wow","omg"],"author":{"name":"Johannes Edelstam","email":"johannes@edelst.am"},"license":"MIT","_id":"yayson@3.0.0","maintainers":[{"name":"javve","email":"jonny.stromberg@gmail.com"},{"name":"jede","email":"johannes-npm@edelst.am"}],"homepage":"https://github.com/confetti/yayson","bugs":{"url":"https://github.com/confetti/yayson/issues"},"dist":{"shasum":"ec559b0ad2a0bb3c7299ffd8e76227eb0fed66d9","tarball":"https://registry.npmjs.org/yayson/-/yayson-3.0.0.tgz","fileCount":24,"integrity":"sha512-r3og9+qCtj7afqAQWOFzos369EaZqjJMxtkAXfn3kgjEwWcB1Z9Wm+6dcKU7fGA+MMdYUg/T7OZDA01Jp/cBcg==","signatures":[{"sig":"MEQCIEiM3htRR46QFo98j61S84yV5tIin22br42ED/A9wpM4AiB5tlEF79Ec/T4sNfnmDWt7+plGRJtAC4xrSVEGEmNUMw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35386,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj24xFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmprPQ/9GBoXtmlraxRE9o/LWN0uAS8qmOo+dWLeIOb7C/bzzo224P1+\r\nARdM2YIoob1/xX9idOvNnkUupmSXqZiaPtuhgCz3zHgHZ8YcPteUMCx7UV08\r\nEFQ/4KrOvuC71LZi2PSi+3ujcm28eZ4Qq0/oPt61o/IazeJLjGXek90sCbqM\r\nCCl/qiA7jp5ef/SJ2EmsSM9hCfEpDB7XcFz+siLGvWYcBNs3EslGISN4UwkD\r\nN8KT+dEW6i/0vWDVH6XP+gXt9MBlcNBj7lR4ZvTuYr+/W7gq9aL3v58nJpQq\r\n9sHeBzd8B/GXJOg1Fbam0eFxOun2SBevj3Exen7AUH4aFL8lLpjNxTZ/HF0J\r\nLaKadPqJ9Xso4MmHA79xeUebBptYB8Ln1rBdPI+5tzTLJMzD0GtWrYjaUP9b\r\nF6CxtUL60tm4SvMq7AGyijSONoG9lq/1H4XTeCXGhMF5C+KlrHaquTqOxZYO\r\n8P4I3v5L+Ebu1XwmQNtoxbrJfH8KX80yPq5jPW4eWtd+tW1HsRYTQS8V9xAe\r\nY9UzZDgvux8o8qGICtyFwrzN93umzIlVr8eoana22J2c/3rqDm/vFx+6PIf0\r\nbKtFiKm1Cz01l8thOM8GN36xxJsta8agzdZxYpKu71OEJGjidd6wQxl3z85z\r\nBw2sfJtVVRcuIcLJzinkCfc2jC69hDp5R0w=\r\n=ggJO\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/yayson.js","engines":{"npm":">=6","node":">=14"},"gitHead":"5164e2f6a8c5f460bc4b27dffe9b2b34ab22e82a","scripts":{"test":"mocha","build":"webpack --config webpack.dist.js","release":"npm version minor","preversion":"npm test && npm run build && git add dist/yayson.js","postversion":"git push --follow-tags origin master","test-browser":"webpack-dev-server --config webpack.browser.js"},"_npmUser":{"name":"jede","email":"johannes-npm@edelst.am"},"repository":{"url":"git://github.com/confetti/yayson.git","type":"git"},"_npmVersion":"9.4.0","description":"A library for serializing and reading JSON API standardized data in JavaScript.","directories":{},"_nodeVersion":"18.13.0","browserslist":["defaults","not IE 11"],"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.7","mocha":"^10.2.0","sinon":"^15.0.1","eslint":"^8.33.0","core-js":"^3.27.2","webpack":"^5.75.0","prettier":"^2.8.3","sinon-chai":"^3.7.0","@babel/core":"^7.20.12","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","webpack-merge":"^5.8.0","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","eslint-plugin-mocha":"^10.1.0","@babel/eslint-parser":"^7.19.1"},"_npmOperationalInternal":{"tmp":"tmp/yayson_3.0.0_1675332677401_0.4881195249468917","host":"s3://npm-registry-packages"}},"4.0.0":{"name":"yayson","version":"4.0.0","keywords":["json-api","json","api","response","format","serialization","deserialization","yay","wow","omg"],"author":{"name":"Johannes Edelstam","email":"johannes@edelst.am"},"license":"MIT","_id":"yayson@4.0.0","maintainers":[{"name":"javve","email":"jonny.stromberg@gmail.com"},{"name":"jede","email":"johannes-npm@edelst.am"}],"homepage":"https://github.com/confetti/yayson","bugs":{"url":"https://github.com/confetti/yayson/issues"},"dist":{"shasum":"61f26bcb161ebb8522a1dbb505264512b895c1b8","tarball":"https://registry.npmjs.org/yayson/-/yayson-4.0.0.tgz","fileCount":37,"integrity":"sha512-Yy2Ju7ogMZLrcOdP1Ka5DKc3mBr1fAYdd+XSqDnTHzVLOjIVhLKVIkh0tJQPkK074od/JLB9At1yOmrGw8fnbg==","signatures":[{"sig":"MEUCIQDrwyJpjuiXZKHfEqNrrFDCkqU+3BDB36VodeU5EtNbxQIgbtWb9QtmWX5LqiytPZmQFSSPbqyOxTMw/zNEC0kcDyw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":179644},"main":"./build/yayson.cjs","type":"module","types":"./build/yayson.d.mts","module":"./build/yayson.mjs","engines":{"npm":">=10","node":">=20"},"exports":{".":{"import":{"types":"./build/yayson.d.mts","default":"./build/yayson.mjs"},"require":{"types":"./build/yayson.d.cts","default":"./build/yayson.cjs"}},"./utils":{"import":{"types":"./build/utils.d.mts","default":"./build/utils.mjs"},"require":{"types":"./build/utils.d.cts","default":"./build/utils.cjs"}},"./legacy":{"import":{"types":"./build/legacy.d.mts","default":"./build/legacy.mjs"},"require":{"types":"./build/legacy.d.cts","default":"./build/legacy.cjs"}}},"gitHead":"fbcd438577a3090363f6477a132181921ebcddf3","scripts":{"lint":"concurrently --prefix '[{name}]' --prefix-colors '#f73fae,#00c2db,#00db8b' --names 'tsc,eslint,prettier' 'tsc --noEmit' 'eslint .' 'prettier --check .'","test":"tsx node_modules/.bin/mocha","build":"tsdown","format":"prettier --write src test","release":"npm version minor","preversion":"npm test && npm run build && npm run test:build","test:build":"node test/build.test.cjs","postversion":"git push --follow-tags origin master","prepublishOnly":"npm run build && npm run test:build"},"_npmUser":{"name":"jede","email":"johannes-npm@edelst.am"},"repository":{"url":"git://github.com/confetti/yayson.git","type":"git"},"_npmVersion":"10.9.2","description":"A library for serializing and reading JSON API standardized data in JavaScript.","directories":{},"_nodeVersion":"22.13.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"4.3.5","chai":"^4.5.0","mocha":"^11.7.2","sinon":"^21.0.0","eslint":"9.39.1","tsdown":"0.20.0-beta.4","globals":"^16.4.0","prettier":"3.7.2","@eslint/js":"^9.35.0","sinon-chai":"^3.7.0","typescript":"^5.9.2","@types/node":"^24.5.1","@types/mocha":"^10.0.10","@types/sinon":"^17.0.4","concurrently":"^9.2.1","@types/sinon-chai":"^4.0.0","typescript-eslint":"^8.44.0","eslint-plugin-mocha":"^11.1.0","@eslint-community/eslint-plugin-eslint-comments":"4.6.0"},"_npmOperationalInternal":{"tmp":"tmp/yayson_4.0.0_1771514954166_0.826480039390221","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"yayson","version":"4.1.0","keywords":["json-api","json","api","response","format","serialization","deserialization","yay","wow","omg"],"author":{"name":"Johannes Edelstam","email":"johannes@edelst.am"},"license":"MIT","_id":"yayson@4.1.0","maintainers":[{"name":"javve","email":"jonny.stromberg@gmail.com"},{"name":"jede","email":"johannes-npm@edelst.am"}],"homepage":"https://github.com/confetti/yayson","bugs":{"url":"https://github.com/confetti/yayson/issues"},"dist":{"shasum":"b810480fbc9617ace8e33bbe3dcd9bb4c7fe99d2","tarball":"https://registry.npmjs.org/yayson/-/yayson-4.1.0.tgz","fileCount":37,"integrity":"sha512-fnqXKIaHYA5cO5VqbkMGwpsLZZa6016HrEVAA6iZl7JWX40REe/wx7Ql2Nf7wOB4Wwc8PQiJ5ldWWVLVUn1iww==","signatures":[{"sig":"MEUCIGaD+vmwO/WAVpMREoNYun3qz22awy3VpMM8cM3F3K5iAiEAwWITqsrj4fpdkdamxxI0XJ29Mc0tRObLCK+JUDYeHjk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":203819},"main":"./build/yayson.cjs","type":"module","types":"./build/yayson.d.mts","module":"./build/yayson.mjs","engines":{"npm":">=10","node":">=20"},"exports":{".":{"import":{"types":"./build/yayson.d.mts","default":"./build/yayson.mjs"},"require":{"types":"./build/yayson.d.cts","default":"./build/yayson.cjs"}},"./utils":{"import":{"types":"./build/utils.d.mts","default":"./build/utils.mjs"},"require":{"types":"./build/utils.d.cts","default":"./build/utils.cjs"}},"./legacy":{"import":{"types":"./build/legacy.d.mts","default":"./build/legacy.mjs"},"require":{"types":"./build/legacy.d.cts","default":"./build/legacy.cjs"}}},"gitHead":"81059c7263334c3884c28d6df8e335acc3dfebbe","scripts":{"lint":"concurrently --prefix '[{name}]' --prefix-colors '#f73fae,#00c2db,#00db8b' --names 'tsc,eslint,prettier' 'tsc --noEmit' 'eslint .' 'prettier --check .'","test":"tsx node_modules/.bin/mocha","build":"tsdown","format":"prettier --write src test","release":"npm version minor","preversion":"npm test && npm run build && npm run test:build","test:build":"node test/build.test.cjs","postversion":"git push --follow-tags origin master","prepublishOnly":"npm run build && npm run test:build"},"_npmUser":{"name":"jede","email":"johannes-npm@edelst.am"},"repository":{"url":"git://github.com/confetti/yayson.git","type":"git"},"_npmVersion":"11.12.1","description":"A library for serializing and reading JSON API standardized data in JavaScript.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"4.3.5","chai":"^4.5.0","mocha":"^11.7.2","sinon":"^21.0.0","eslint":"9.39.1","tsdown":"0.20.0-beta.4","globals":"^16.4.0","prettier":"3.7.2","@eslint/js":"^9.35.0","sinon-chai":"^3.7.0","typescript":"^5.9.2","@types/node":"^24.5.1","@types/mocha":"^10.0.10","@types/sinon":"^17.0.4","concurrently":"^9.2.1","@types/sinon-chai":"^4.0.0","typescript-eslint":"^8.44.0","eslint-plugin-mocha":"^11.1.0","@eslint-community/eslint-plugin-eslint-comments":"4.6.0"},"_npmOperationalInternal":{"tmp":"tmp/yayson_4.1.0_1779885692471_0.6729869220629296","host":"s3://npm-registry-packages-npm-production"}},"4.2.0":{"name":"yayson","version":"4.2.0","keywords":["json-api","json","api","response","format","serialization","deserialization","yay","wow","omg"],"author":{"name":"Johannes Edelstam","email":"johannes@edelst.am"},"license":"MIT","_id":"yayson@4.2.0","maintainers":[{"name":"javve","email":"jonny.stromberg@gmail.com"},{"name":"jede","email":"johannes-npm@edelst.am"}],"homepage":"https://github.com/confetti/yayson","bugs":{"url":"https://github.com/confetti/yayson/issues"},"dist":{"shasum":"74a1d875ed967725839cd7c61a39e252b3ec9592","tarball":"https://registry.npmjs.org/yayson/-/yayson-4.2.0.tgz","fileCount":37,"integrity":"sha512-0bxq30zmlJQi50A1pkim5/3Ugq3WHHgE2rsqZj1pwu8/GWSHZ4v4e0D3mJw+Bn4UjqReA0KlEkrpZMRYpzFyuQ==","signatures":[{"sig":"MEYCIQCS0PWZLWYUzdH72TIqKN4+OLGGX58rUBDKnsLQCvK/YQIhANn5skbo9Zc4TUdkWO4B+mfQsQ0WmS24QbBs4tLNBoCR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":217091},"main":"./build/yayson.cjs","type":"module","types":"./build/yayson.d.mts","module":"./build/yayson.mjs","engines":{"npm":">=10","node":">=20"},"exports":{".":{"import":{"types":"./build/yayson.d.mts","default":"./build/yayson.mjs"},"require":{"types":"./build/yayson.d.cts","default":"./build/yayson.cjs"}},"./utils":{"import":{"types":"./build/utils.d.mts","default":"./build/utils.mjs"},"require":{"types":"./build/utils.d.cts","default":"./build/utils.cjs"}},"./legacy":{"import":{"types":"./build/legacy.d.mts","default":"./build/legacy.mjs"},"require":{"types":"./build/legacy.d.cts","default":"./build/legacy.cjs"}}},"gitHead":"510913106d8e5a5747341d508eff40df7cf1480a","scripts":{"lint":"concurrently --prefix '[{name}]' --prefix-colors '#f73fae,#00c2db,#00db8b' --names 'tsc,eslint,prettier' 'tsc --noEmit' 'eslint .' 'prettier --check .'","test":"tsx node_modules/.bin/mocha","build":"tsdown","format":"prettier --write src test","release":"npm version minor","preversion":"npm test && npm run build && npm run test:build","test:build":"node test/build.test.cjs","postversion":"git push --follow-tags origin master","prepublishOnly":"npm run build && npm run test:build"},"_npmUser":{"name":"jede","email":"johannes-npm@edelst.am"},"repository":{"url":"git://github.com/confetti/yayson.git","type":"git"},"_npmVersion":"11.12.1","description":"A library for serializing and reading JSON API standardized data in JavaScript.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"4.3.5","chai":"^4.5.0","mocha":"^11.7.2","sinon":"^21.0.0","eslint":"9.39.1","tsdown":"0.20.0-beta.4","globals":"^16.4.0","prettier":"3.7.2","@eslint/js":"^9.35.0","sinon-chai":"^3.7.0","typescript":"^5.9.2","@types/node":"^24.5.1","@types/mocha":"^10.0.10","@types/sinon":"^17.0.4","concurrently":"^9.2.1","@types/sinon-chai":"^4.0.0","typescript-eslint":"^8.44.0","eslint-plugin-mocha":"^11.1.0","@eslint-community/eslint-plugin-eslint-comments":"4.6.0"},"_npmOperationalInternal":{"tmp":"tmp/yayson_4.2.0_1780909920894_0.5858407532484269","host":"s3://npm-registry-packages-npm-production"}},"4.3.0":{"name":"yayson","version":"4.3.0","keywords":["json-api","json","api","response","format","serialization","deserialization","yay","wow","omg"],"author":{"name":"Johannes Edelstam","email":"johannes@edelst.am"},"license":"MIT","_id":"yayson@4.3.0","maintainers":[{"name":"javve","email":"jonny.stromberg@gmail.com"},{"name":"jede","email":"johannes-npm@edelst.am"}],"homepage":"https://github.com/confetti/yayson","bugs":{"url":"https://github.com/confetti/yayson/issues"},"dist":{"shasum":"70c0b6165bffda67782ac5040068d2027a5595b2","tarball":"https://registry.npmjs.org/yayson/-/yayson-4.3.0.tgz","fileCount":37,"integrity":"sha512-z3SNv9xqvxkPrKhJbNLM9ZUJz7lO5M1AjnwFftleLYpZc6/1h7zl13LECCIzVwEASlSaAYIN3yXajqpVKIsXKA==","signatures":[{"sig":"MEUCICDAhFuYck+QR5zaifctiQiN2ty+Xr75DXN+L4SlEUq1AiEA9CqkI+j3BXrJ61M7nJL3O6fYkhRlSdJAZAafFf3eCMw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":224375},"main":"./build/yayson.cjs","type":"module","types":"./build/yayson.d.mts","module":"./build/yayson.mjs","engines":{"npm":">=10","node":">=20"},"exports":{".":{"import":{"types":"./build/yayson.d.mts","default":"./build/yayson.mjs"},"require":{"types":"./build/yayson.d.cts","default":"./build/yayson.cjs"}},"./utils":{"import":{"types":"./build/utils.d.mts","default":"./build/utils.mjs"},"require":{"types":"./build/utils.d.cts","default":"./build/utils.cjs"}},"./legacy":{"import":{"types":"./build/legacy.d.mts","default":"./build/legacy.mjs"},"require":{"types":"./build/legacy.d.cts","default":"./build/legacy.cjs"}}},"gitHead":"3b84b9cc6d17bcd4576051ca56815d8c9b5c352f","scripts":{"lint":"concurrently --prefix '[{name}]' --prefix-colors '#f73fae,#00c2db,#00db8b' --names 'tsc,eslint,prettier' 'tsc --noEmit' 'eslint .' 'prettier --check .'","test":"tsx node_modules/.bin/mocha","build":"tsdown","format":"prettier --write src test","release":"npm version minor","preversion":"npm test && npm run build && npm run test:build","test:build":"node test/build.test.cjs","postversion":"git push --follow-tags origin master","prepublishOnly":"npm run build && npm run test:build"},"_npmUser":{"name":"jede","email":"johannes-npm@edelst.am"},"repository":{"url":"git://github.com/confetti/yayson.git","type":"git"},"_npmVersion":"11.12.1","description":"A library for serializing and reading JSON API standardized data in JavaScript.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"4.3.5","chai":"^4.5.0","mocha":"^11.7.2","sinon":"^21.0.0","eslint":"9.39.1","tsdown":"0.20.0-beta.4","globals":"^16.4.0","prettier":"3.7.2","@eslint/js":"^9.35.0","sinon-chai":"^3.7.0","typescript":"^5.9.2","@types/node":"^24.5.1","@types/mocha":"^10.0.10","@types/sinon":"^17.0.4","concurrently":"^9.2.1","@types/sinon-chai":"^4.0.0","typescript-eslint":"^8.44.0","eslint-plugin-mocha":"^11.1.0","@eslint-community/eslint-plugin-eslint-comments":"4.6.0"},"_npmOperationalInternal":{"tmp":"tmp/yayson_4.3.0_1782116984450_0.4174392076457982","host":"s3://npm-registry-packages-npm-production"}},"4.4.0":{"name":"yayson","version":"4.4.0","description":"A library for serializing and reading JSON API standardized data in JavaScript.","type":"module","main":"./build/yayson.cjs","module":"./build/yayson.mjs","types":"./build/yayson.d.mts","exports":{".":{"import":{"types":"./build/yayson.d.mts","default":"./build/yayson.mjs"},"require":{"types":"./build/yayson.d.cts","default":"./build/yayson.cjs"}},"./legacy":{"import":{"types":"./build/legacy.d.mts","default":"./build/legacy.mjs"},"require":{"types":"./build/legacy.d.cts","default":"./build/legacy.cjs"}},"./utils":{"import":{"types":"./build/utils.d.mts","default":"./build/utils.mjs"},"require":{"types":"./build/utils.d.cts","default":"./build/utils.cjs"}}},"engines":{"node":">=20","npm":">=10"},"scripts":{"test":"tsx node_modules/.bin/mocha","test:build":"node test/build.test.cjs","build":"tsdown","prepublishOnly":"npm run build && npm run test:build","preversion":"npm test && npm run build && npm run test:build","postversion":"git push --follow-tags origin master","release":"npm version minor","format":"prettier --write src test","lint":"concurrently --prefix '[{name}]' --prefix-colors '#f73fae,#00c2db,#00db8b' --names 'tsc,eslint,prettier' 'tsc --noEmit' 'eslint .' 'prettier --check .'"},"repository":{"type":"git","url":"git://github.com/confetti/yayson.git"},"keywords":["json-api","json","api","response","format","serialization","deserialization","yay","wow","omg"],"author":{"name":"Johannes Edelstam","email":"johannes@edelst.am"},"license":"MIT","bugs":{"url":"https://github.com/confetti/yayson/issues"},"homepage":"https://github.com/confetti/yayson","devDependencies":{"@eslint-community/eslint-plugin-eslint-comments":"4.6.0","@eslint/js":"^9.35.0","@types/mocha":"^10.0.10","@types/node":"^24.5.1","@types/sinon":"^17.0.4","@types/sinon-chai":"^4.0.0","chai":"^4.5.0","concurrently":"^9.2.1","eslint":"9.39.1","eslint-plugin-mocha":"^11.1.0","globals":"^16.4.0","mocha":"^11.7.2","prettier":"3.7.2","sinon":"^21.0.0","sinon-chai":"^3.7.0","tsdown":"0.20.0-beta.4","tsx":"^4.20.5","typescript":"^5.9.2","typescript-eslint":"^8.44.0","zod":"4.3.5"},"gitHead":"3901b34c72ff19d6c30f1928ccda8324eda73a2e","_id":"yayson@4.4.0","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-QNpHmCb5+2/9LN+2Vbh9KmsVszRfBfKDpYuDKwD0+UK9uSwipTby0dnUdPoLF8OfnOn9pk4AiafMKAzetRifhw==","shasum":"e17e69eee66d6f9c82de27a190fb13f90741fd34","tarball":"https://registry.npmjs.org/yayson/-/yayson-4.4.0.tgz","fileCount":37,"unpackedSize":242184,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAPAn8oLXwpZPVfP8kK/uAuxoWMoPLZpSOqECmBZJswXAiAKQjgs301o94KoqmomtsX2ftQlM+XoyW6m789aLSRPEQ=="}]},"_npmUser":{"name":"jede","email":"johannes-npm@edelst.am"},"directories":{},"maintainers":[{"name":"javve","email":"jonny.stromberg@gmail.com"},{"name":"jede","email":"johannes-npm@edelst.am"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/yayson_4.4.0_1789456997997_0.7215574123318471"},"_hasShrinkwrap":false}},"time":{"created":"2014-10-07T10:05:04.046Z","modified":"2026-09-15T07:23:18.282Z","1.0.0":"2014-10-07T10:05:04.046Z","1.0.1":"2014-10-07T10:39:30.215Z","1.0.2":"2014-10-22T15:09:41.888Z","1.0.3":"2014-12-09T16:19:04.320Z","1.0.4":"2015-01-01T17:57:20.236Z","1.0.5":"2015-05-20T08:15:40.769Z","2.0.0-beta.1":"2015-05-22T08:37:54.136Z","2.0.0-beta.2":"2015-05-24T16:55:34.676Z","2.0.0-beta.3":"2015-05-29T05:13:56.087Z","2.0.0-beta.4":"2015-05-29T05:22:11.186Z","2.0.0-beta.5":"2015-07-14T07:56:02.960Z","2.0.0":"2015-09-22T08:14:41.639Z","2.0.1":"2016-02-08T08:56:45.302Z","2.0.2":"2016-12-15T09:55:18.347Z","2.0.3":"2016-12-15T10:00:47.068Z","2.0.4":"2017-06-26T22:13:32.142Z","2.0.5":"2017-06-26T22:21:18.268Z","2.0.6":"2017-09-28T19:39:23.184Z","2.0.7":"2017-09-28T20:00:02.807Z","2.0.8":"2017-09-29T08:53:46.903Z","2.0.9":"2020-01-16T15:12:40.815Z","2.0.10-quickfix":"2020-01-17T08:10:00.792Z","2.1.0":"2021-04-16T11:45:35.394Z","3.0.0":"2023-02-02T10:11:17.527Z","4.0.0":"2026-02-19T15:29:14.317Z","4.1.0":"2026-05-27T12:41:32.645Z","4.2.0":"2026-06-08T09:12:01.071Z","4.3.0":"2026-06-22T08:29:44.579Z","4.4.0":"2026-09-15T07:23:18.132Z"},"bugs":{"url":"https://github.com/confetti/yayson/issues"},"author":{"name":"Johannes Edelstam","email":"johannes@edelst.am"},"license":"MIT","homepage":"https://github.com/confetti/yayson","keywords":["json-api","json","api","response","format","serialization","deserialization","yay","wow","omg"],"repository":{"type":"git","url":"git://github.com/confetti/yayson.git"},"description":"A library for serializing and reading JSON API standardized data in JavaScript.","maintainers":[{"name":"javve","email":"jonny.stromberg@gmail.com"},{"name":"jede","email":"johannes-npm@edelst.am"}],"readme":"# YAYSON\n\nA library for serializing and reading [JSON API](http://jsonapi.org) data in JavaScript.\n\n- Zero dependencies\n- Full TypeScript support with type inference from schema registries\n- Optional runtime validation with [Zod](https://github.com/colinhacks/zod) or any compatible library\n- Dual ESM/CJS package — works in browsers and Node.js 20+\n\n[![NPM](https://nodei.co/npm/yayson.png?downloads=true)](https://nodei.co/npm/yayson/)\n\n## Installing\n\n```\nnpm install yayson\n```\n\n## Presenting data\n\nA basic `Presenter` can look like this:\n\n```javascript\n// ESM\nimport yayson from 'yayson'\nconst { Presenter } = yayson()\n\n// CommonJS\nconst yayson = require('yayson')\nconst { Presenter } = yayson()\n\nclass BikePresenter extends Presenter {\n  static type = 'bikes'\n}\n\nconst bike = {\n  id: 5,\n  name: 'Monark',\n}\n\nBikePresenter.render(bike)\n```\n\nThis would produce:\n\n```javascript\n\n{\n  data: {\n    id: '5',\n    type: 'bikes',\n    attributes: {\n      name: 'Monark'\n    }\n  }\n}\n\n```\n\nIt also works with arrays, so if you send an array to render, \"data\" will\nbe an array.\n\nA bit more advanced example:\n\n```javascript\nimport yayson from 'yayson'\nconst { Presenter } = yayson()\n\nclass WheelPresenter extends Presenter {\n  static type = 'wheels'\n\n  relationships() {\n    return { bike: BikePresenter }\n  }\n}\n\nclass BikePresenter extends Presenter {\n  static type = 'bikes'\n  relationships() {\n    return { wheels: WheelPresenter }\n  }\n}\n```\n\n### Declaring cardinality and optional relationships\n\nBy default a missing relationship renders as `data: null`. This isn't valid JSON:API for to-many relationships (the spec requires `[]`) and can mislead clients when a relationship simply wasn't loaded. Use the config form to declare cardinality and optional semantics:\n\n```javascript\nclass BikePresenter extends Presenter {\n  static type = 'bikes'\n\n  relationships() {\n    return {\n      wheels: { presenter: WheelPresenter, hasMany: true },\n      manufacturer: { presenter: ManufacturerPresenter, optional: true },\n      accessories: { presenter: AccessoryPresenter, hasMany: true, optional: true },\n    }\n  }\n}\n\nBikePresenter.render({ id: 1 })\n```\n\nThis produces:\n\n```javascript\n{\n  data: {\n    id: '1',\n    type: 'bikes',\n    attributes: {},\n    relationships: {\n      wheels: { data: [] } // hasMany + no data → empty array, not null\n      // manufacturer and accessories omitted entirely — they weren't loaded\n    }\n  }\n}\n```\n\n- **`hasMany: true`** — declares a to-many relationship. Empty or missing data renders as `data: []` instead of `data: null`.\n- **`optional: true`** — when the relationship key is absent from the instance, the relationship is omitted from the output (or rendered with just `links` if `links()` configures one for that key). An explicit `null` on the instance still renders as `data: null` — `optional` distinguishes \"not loaded\" from \"explicitly empty\".\n\nIn `payload()` output, `optional` omission is disabled (a write request asserts state, so dropping a relationship would be misleading), but `hasMany` still applies so a client can correctly clear a to-many with `data: []`.\n\nThe bare-class form (`relationships() { return { wheels: WheelPresenter } }`) is unchanged.\n\n### Filtering attributes with fields\n\nUse the static `fields` property to limit which attributes are included in the output:\n\n```javascript\nclass UserPresenter extends Presenter {\n  static type = 'users'\n  static fields = ['name', 'email', 'createdAt']\n}\n\nconst user = {\n  id: 1,\n  name: 'John',\n  email: 'john@example.com',\n  password: 'secret',\n  createdAt: '2024-01-01',\n}\n\nUserPresenter.render(user)\n```\n\nThis would produce:\n\n```javascript\n{\n  data: {\n    id: '1',\n    type: 'users',\n    attributes: {\n      name: 'John',\n      email: 'john@example.com',\n      createdAt: '2024-01-01'\n    }\n  }\n}\n```\n\nThe `password` field is excluded because it's not in the `fields` array. This is useful for hiding sensitive data or reducing payload size without overriding the `attributes()` method.\n\n### Sequelize support\n\nBy default it is set up to handle standard JS objects. You can also make\nit handle Sequelize.js models like this:\n\n```javascript\nimport yayson from 'yayson'\nconst { Presenter } = yayson({ adapter: 'sequelize' })\n```\n\nYou can also define your own adapter globally:\n\n```javascript\nimport yayson from 'yayson'\nconst { Presenter } = yayson({\n  adapter: {\n    id: function (model) {\n      return 'omg' + model.id\n    },\n    get: function (model, key) {\n      return model[key]\n    },\n  },\n})\n```\n\nTake a look at the SequelizeAdapter if you want to extend YAYSON to your ORM. Pull requests are welcome. :)\n\n### render() options\n\nThe second argument to `render()` accepts an options object with `meta` and `links`:\n\n```javascript\nItemsPresenter.render(items, {\n  meta: { total: 100, page: 1 },\n  links: {\n    self: 'http://example.com/items?page=1',\n    next: 'http://example.com/items?page=2',\n  },\n})\n```\n\nThis would produce:\n\n```javascript\n{\n  meta: {\n    total: 100,\n    page: 1\n  },\n  links: {\n    self: 'http://example.com/items?page=1',\n    next: 'http://example.com/items?page=2'\n  },\n  data: [...]\n}\n```\n\nBoth `meta` and `links` are optional and add top-level properties to the JSON API document.\n\n### Creating payloads with payload()\n\nUse `payload()` to serialize a single resource for create or update API requests. Unlike `render()`, it omits `included` resources — only the primary resource with relationship linkage is produced:\n\n```javascript\nclass WheelPresenter extends Presenter {\n  static type = 'wheels'\n}\n\nclass BikePresenter extends Presenter {\n  static type = 'bikes'\n  relationships() {\n    return { wheels: WheelPresenter }\n  }\n}\n\n// Create (no id)\nBikePresenter.payload({ name: 'Monark', wheels: [{ id: 1 }, { id: 2 }] })\n```\n\nThis would produce:\n\n```javascript\n{\n  data: {\n    type: 'bikes',\n    attributes: {\n      name: 'Monark'\n    },\n    relationships: {\n      wheels: {\n        data: [\n          { type: 'wheels', id: '1' },\n          { type: 'wheels', id: '2' }\n        ]\n      }\n    }\n  }\n}\n```\n\nFor updates, include an `id` and it will appear in the output. `payload()` also accepts `meta` and `links` options like `render()`. It throws on arrays and null — use `render()` for collections.\n\n## Parsing data\n\nYou can use a `Store` like this:\n\n```javascript\nimport yayson from 'yayson'\nconst { Store } = yayson()\nconst store = new Store()\n\nconst data = await adapter.get({ path: '/events/' + id })\nconst event = store.sync(data) // single resource -> model directly\n```\n\nThe `sync()` method returns a single model for single resources and an array for collections. Use `syncAll()` if you always want an array.\n\n```javascript\nconst allSynced = store.syncAll(data) // always returns array\n```\n\n### Filtering by type with retrieveAll\n\nUse `retrieveAll()` to sync data and return only models of a specific type:\n\n```javascript\nconst data = await adapter.get({ path: '/events/' })\n\n// Sync and return only events (filters out included resources)\nconst events = store.retrieveAll('events', data)\n```\n\nThis is useful when the response contains multiple types but you only need the primary resources:\n\n```javascript\n// Response contains events and their related images\nconst response = {\n  data: [\n    { type: 'events', id: '1', attributes: { name: 'Conference' } },\n    { type: 'events', id: '2', attributes: { name: 'Meetup' } },\n  ],\n  included: [{ type: 'images', id: '10', attributes: { url: 'http://example.com/img.jpg' } }],\n}\n\n// Get only the events, not the included images\nconst events = store.retrieveAll('events', response)\n// events.length === 2\n```\n\n### Building models from create payloads\n\nUse `build()` to create a model from a JSON:API document without storing it. This is useful for create payloads where the `id` may not yet exist:\n\n```javascript\nconst model = store.build({\n  data: {\n    type: 'events',\n    attributes: { name: 'New Event' },\n  },\n})\n\nmodel.name // 'New Event'\nmodel.id // undefined\n```\n\nIf the store already has synced data, `build()` resolves relationships against it. Unresolved references become stubs with just `id` and type:\n\n```javascript\nstore.syncAll({\n  data: [{ type: 'images', id: '5', attributes: { url: 'http://example.com/img.jpg' } }],\n})\n\nconst model = store.build({\n  data: {\n    type: 'events',\n    attributes: { name: 'New Event' },\n    relationships: {\n      image: { data: { type: 'images', id: '5' } },\n      sponsor: { data: { type: 'sponsors', id: '99' } },\n    },\n  },\n})\n\nmodel.image.url // 'http://example.com/img.jpg' (resolved from store)\nmodel.sponsor.id // '99' (stub — not in store)\n```\n\nA static version is also available when you don't need a store instance:\n\n```javascript\nconst model = Store.build({\n  data: {\n    type: 'events',\n    attributes: { name: 'New Event' },\n  },\n})\n```\n\n### Finding synced data\n\nYou can also find in previously synced data:\n\n```javascript\nconst event = store.find('events', id)\n\nconst images = store.findAll('images')\n```\n\n### Schema Validation and Type Inference\n\nYAYSON supports optional schema validation using [Zod](https://github.com/colinhacks/zod) or any compatible schema library. This enables:\n\n- **Runtime validation**: Ensure your data matches expected schemas\n- **TypeScript type inference**: Get full type safety without manual type definitions\n- **Strict or safe modes**: Throw errors or collect validation issues\n\n#### Basic Usage with Zod\n\n```typescript\nimport { z } from 'zod'\nimport yayson from 'yayson'\n\nconst { Store } = yayson()\n\nconst eventSchema = z\n  .object({\n    id: z.string(),\n    name: z.string(),\n    date: z.string(),\n  })\n  .passthrough()\n\nconst schemas = {\n  events: eventSchema,\n} as const\n\nconst store = new Store({ schemas, strict: true })\n\nstore.sync({\n  data: {\n    type: 'events',\n    id: '1',\n    attributes: { name: 'TypeScript Meetup', date: '2025-01-15' },\n  },\n})\n\n// TypeScript infers the correct type automatically\nconst event = store.find('events', '1')\n// event.name, event.date are fully typed!\n```\n\n#### Validation Modes\n\n**Strict mode** (throws errors on validation failure):\n\n```typescript\nconst store = new Store({ schemas, strict: true })\n```\n\n**Safe mode** (collects errors without throwing):\n\n```typescript\nconst store = new Store({ schemas, strict: false })\n\nstore.sync(invalidData)\n\nif (store.validationErrors.length > 0) {\n  console.warn('Validation issues:', store.validationErrors)\n}\n```\n\nSchemas must be Zod-like objects with `parse()` and `safeParse()` methods. Any library that provides this interface will work.\n\n### Utilities\n\nYAYSON stores metadata on models using Symbol keys. The `yayson/utils` entry point provides helpers for reading them:\n\n```javascript\nimport { getType, getLinks, getMeta, getRelationshipLinks, getRelationshipMeta } from 'yayson/utils'\n\nconst events = store.syncAll(data)\nconst event = events[0]\n\ngetType(event) // 'events'\ngetLinks(event) // { self: 'http://...' }\ngetMeta(event) // { createdBy: 'admin' }\ngetRelationshipLinks(event.image) // { self: 'http://.../relationships/image' }\ngetRelationshipMeta(event.image) // { permission: 'read' }\n```\n\nThe raw symbols (`TYPE`, `LINKS`, `META`, `REL_LINKS`, `REL_META`) are also exported from `yayson/utils` if you prefer direct access.\n\nNote that `syncAll()` and `retrieveAll()` return arrays with a `META` symbol property for document-level metadata. Array methods like `.filter()` and `.map()` return plain arrays without this property, so extract it before transforming:\n\n```javascript\nimport { META } from 'yayson/utils'\n\nconst result = store.syncAll(data)\nconst meta = result[META] // { total: 100, page: 1 }\nconst filtered = result.filter((e) => e.name === 'Demo')\n// filtered[META] is undefined — use the extracted `meta` instead\n```\n\n## Claude Code skill\n\nYAYSON includes a [Claude Code skill](https://docs.anthropic.com/en/docs/claude-code/skills) that helps you write Presenters and set up Stores. To install it, copy the `skill/yayson` directory to your project's `.claude/skills/` or your personal `~/.claude/skills/`:\n\n```bash\n# Project-level (available to everyone working on that project)\ncp -r node_modules/yayson/skill/yayson .claude/skills/\n\n# Personal (available across all your projects)\ncp -r node_modules/yayson/skill/yayson ~/.claude/skills/\n```\n\n## Use in the browser\n\nRecommended way is to use it via [webpack](https://github.com/webpack/webpack) or similar build system wich lets you just require the package as usual.\n\n## Legacy support\n\nEarlier versions of JSON API worked a bit different from 1.0. Therefore YAYSON provides legacy presenters and stores in order to have interoperability between the versions.\n\n### Basic Usage\n\n```javascript\n// ESM\nimport yayson from 'yayson/legacy'\nconst { Presenter, Store } = yayson()\n\n// CommonJS\nconst yayson = require('yayson/legacy')\nconst { Presenter, Store } = yayson()\n```\n\n```javascript\nconst store = new Store({\n  types: {\n    events: 'event',\n    images: 'image',\n  },\n})\n\nconst event = store.sync({\n  event: { id: '1', name: 'Demo Event' },\n})\n// single resource -> returns model directly\n\nconst allSynced = store.syncAll({\n  event: { id: '1', name: 'Demo Event' },\n  images: [{ id: '2', url: 'http://example.com/image.jpg' }],\n})\n// syncAll always returns array\n```\n\n```javascript\nconst event = store.find('event', '1')\n```\n\n#### Creating payloads with payload()\n\nThe legacy presenter also supports `payload()` for create/update requests. It produces the legacy envelope format without `links` or sideloaded collections:\n\n```javascript\nclass TirePresenter extends Presenter {\n  static type = 'tire'\n}\n\nclass CarPresenter extends Presenter {\n  static type = 'car'\n  relationships() {\n    return { tires: TirePresenter }\n  }\n}\n\nCarPresenter.payload({ name: 'Volvo', tires: [{ id: 1 }, { id: 2 }] })\n// { car: { name: 'Volvo', tires: [1, 2] } }\n```\n\n#### Filtering by type with retrieveAll\n\nUse `retrieveAll()` to sync data and return only models of a specific type:\n\n```javascript\nconst events = store.retrieveAll('event', {\n  event: [\n    { id: '1', name: 'Event 1' },\n    { id: '2', name: 'Event 2' },\n  ],\n  image: [{ id: '3', url: 'http://example.com/image.jpg' }],\n})\n// events.length === 2 (only events, not images)\n```\n\nOptions can be passed when creating the store:\n\n```javascript\nconst store = new Store({\n  types: { events: 'event' },\n})\n```\n\n#### Building models from create payloads\n\nThe legacy store also supports `build()` for creating models without storing them:\n\n```javascript\nconst model = store.build({\n  event: { name: 'New Event' },\n})\n\nmodel.name // 'New Event'\nmodel.id // undefined\n```\n\nRelationships are resolved against existing store data when available:\n\n```javascript\nstore.syncAll({\n  links: { 'event.images': { type: 'images' } },\n  images: [{ id: '2', name: 'Header' }],\n})\n\nconst model = store.build({\n  event: { name: 'New Event', images: [2] },\n})\n\nmodel.images[0].name // 'Header' (resolved from store)\n```\n\nA static version is also available:\n\n```javascript\nconst model = Store.build({ event: { name: 'New Event' } })\n```\n\n### Schema Validation for Legacy Store\n\nThe legacy store also supports schema validation and type inference, maintaining full backward compatibility:\n\n```typescript\nimport yayson from 'yayson/legacy'\nimport { z } from 'zod'\n\nconst { Store } = yayson()\n\nconst eventSchema = z.object({\n  id: z.string(),\n  name: z.string(),\n  date: z.string(),\n})\n\nconst store = new Store({\n  schemas: { event: eventSchema },\n  strict: true,\n})\n\nstore.sync({ event: { id: '1', name: 'Event', date: '2025-01-15' } })\n\n// TypeScript infers the correct type\nconst event = store.find('event', '1')\n// event.name, event.date are fully typed!\n```\n\n#### Validation with Type Mapping\n\nYou can combine type mapping with schemas:\n\n```typescript\nconst store = new Store({\n  types: {\n    events: 'event', // Map plural to singular\n  },\n  schemas: {\n    event: eventSchema, // Schema uses normalized type\n  },\n  strict: false, // Safe mode\n})\n\nstore.sync({ events: [{ id: '1', name: 'Event' }] })\n\nif (store.validationErrors.length > 0) {\n  console.warn('Validation issues:', store.validationErrors)\n}\n```\n\n#### Validation with Relations\n\nSchemas validate the complete model after relations are resolved:\n\n```typescript\nconst eventSchema = z.object({\n  id: z.string(),\n  name: z.string(),\n  images: z.array(\n    z.object({\n      id: z.string(),\n      url: z.string(),\n    }),\n  ),\n})\n\nconst imageSchema = z.object({\n  id: z.string(),\n  url: z.string(),\n})\n\nconst store = new Store({\n  schemas: { event: eventSchema, image: imageSchema },\n  strict: true,\n})\n\nstore.sync({\n  links: {\n    'event.images': { type: 'image' },\n  },\n  event: { id: '1', name: 'Event', images: ['2'] },\n  image: [{ id: '2', url: 'http://example.com/image.jpg' }],\n})\n\nconst event = store.find('event', '1')\n// Relations are resolved before validation\n// event.images is an array of validated image objects\n```\n\n**Note**: Validation happens eagerly during `sync()` when schemas are configured. This allows you to check `store.validationErrors` immediately after syncing.\n\n## Upgrading from 4.0\n\n### Unresolved relationships resolve to stubs\n\nReferences missing from `included` now resolve to a stub `{ id, [TYPE]: type }` instead of `null`. References with `id: null` are dropped (arrays filter them out; to-one becomes `null`).\n\nTighten schemas that typed relationships as nullable, and detect \"not sideloaded\" by absence of attributes rather than `=== null`.\n\n## Upgrading from 3.x\n\nVersion 4.x is a full TypeScript rewrite with several breaking changes.\n\n### Node.js version\n\nNode.js 20+ is now required (was 14+).\n\n### Metadata uses Symbols instead of plain properties\n\nIn 3.x, resource type, links, and meta were stored as plain properties on models (`model.type`, `model.links`, `model.meta`). Relationship metadata used `model._links` and `model._meta`.\n\nIn 4.x, these use Symbol keys to avoid collisions with your data. Use the helpers from `yayson/utils`:\n\n```javascript\n// 3.x\nmodel.type\nmodel.links\nmodel.meta\nrelatedModel._links\nrelatedModel._meta\n\n// 4.x\nimport { getType, getLinks, getMeta, getRelationshipLinks, getRelationshipMeta } from 'yayson/utils'\ngetType(model)\ngetLinks(model)\ngetMeta(model)\ngetRelationshipLinks(relatedModel)\ngetRelationshipMeta(relatedModel)\n```\n\n### `sync()` restores 3.x behavior\n\n`sync()` now matches 3.x behavior: single resources return a model directly, collections return an array. If you always want an array, use `syncAll()`.\n\n```javascript\n// Single resource — returns model directly\nconst event = store.sync({ data: { type: 'events', id: '1', attributes: { name: 'Demo' } } })\nevent.name // 'Demo'\n\n// Collection — returns array\nconst events = store.sync({ data: [{ type: 'events', id: '1', attributes: { name: 'Demo' } }] })\nevents.length // 1\n\n// Always returns array\nconst events = store.syncAll(data)\n\n// retrieve/retrieveAll also available\nconst event = store.retrieve('events', data)\nconst events = store.retrieveAll('events', data)\n```\n\n### Document-level meta uses Symbols\n\nIn 3.x, document-level metadata was stored as `result.meta`. In 4.x, it uses a Symbol key:\n\n```javascript\n// 3.x\nconst result = store.sync(data)\nresult.meta // { total: 100 }\n\n// 4.x\nimport { META } from 'yayson/utils'\nconst result = store.sync(data)\nresult[META] // { total: 100 }\n```\n","readmeFilename":"README.md","users":{"bojand":true,"voxpelli":true}}