{"_id":"halson","_rev":"47-38631240a514161f67a3713d2ac07c3f","name":"halson","dist-tags":{"latest":"3.2.0"},"versions":{"1.0.0":{"name":"halson","version":"1.0.0","keywords":["HAL","JSON","REST","Hypermedia","HATEOAS","API"],"author":{"name":"Seznam.cz, a.s."},"license":"MIT","_id":"halson@1.0.0","maintainers":[{"name":"hajovsky","email":"juraj@hajovsky.sk"}],"homepage":"https://github.com/seznam/halson","bugs":{"url":"https://github.com/seznam/halson/issues"},"dist":{"shasum":"f2a9398a4ea462cfc2767914c6667776e06a07a7","tarball":"https://registry.npmjs.org/halson/-/halson-1.0.0.tgz","integrity":"sha512-aq+3yplr5vsW5Siz0Z0GX107IvSPe0iubvcNIgI4Valkom+RLPIg1tUNuEW3V4B4Yl0i+mW5cNMYw+W8Zxji0Q==","signatures":[{"sig":"MEQCIGuO5Z0ENq4MHWYGRFUkeyFckAQf8E+tKYkp1Q7dVNUSAiBLoeYJi7H/Wux9e1jSgn04X71/T3fTpm9xNs/vHIEuhA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"mocha --reporter spec --bail test.js"},"_npmUser":{"name":"hajovsky","email":"juraj@hajovsky.sk"},"repository":{"url":"https://github.com/seznam/halson","type":"git"},"_npmVersion":"1.4.3","description":"Fault-tolerant HAL+JSON parser and writer","directories":{},"devDependencies":{"mocha":"~1.18.0"}},"1.0.1":{"name":"halson","version":"1.0.1","keywords":["HAL","JSON","REST","Hypermedia","HATEOAS","API"],"author":{"name":"Seznam.cz, a.s."},"license":"MIT","_id":"halson@1.0.1","maintainers":[{"name":"hajovsky","email":"juraj@hajovsky.sk"}],"homepage":"https://github.com/seznam/halson","bugs":{"url":"https://github.com/seznam/halson/issues"},"dist":{"shasum":"37d22dda4fb87d3bc513e3e5f49dab6acfac6dda","tarball":"https://registry.npmjs.org/halson/-/halson-1.0.1.tgz","integrity":"sha512-o44AM1nWOAOFG768EfXnS9vAr4Wyuxn7+vuC1QJKGo1QKMbu4r7BVi3FLz/2E5HogcQ8WTbrtwuBK3sLJy7+6A==","signatures":[{"sig":"MEYCIQC0KDjfI6MbX+MpwsMi5H8p4yOwPmlPMdVWVqg/xr02VAIhAKuBgHOQWv2U4CIQe0+8VCw/7eLjShScBwaqfV+gx9R1","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"mocha --reporter spec --bail test.js"},"_npmUser":{"name":"hajovsky","email":"juraj@hajovsky.sk"},"repository":{"url":"https://github.com/seznam/halson","type":"git"},"_npmVersion":"1.4.3","description":"Fault-tolerant HAL+JSON parser and writer","directories":{},"devDependencies":{"mocha":"~1.18.0"}},"1.0.2":{"name":"halson","version":"1.0.2","keywords":["HAL","JSON","REST","Hypermedia","HATEOAS","API"],"author":{"name":"Seznam.cz, a.s."},"license":"MIT","_id":"halson@1.0.2","maintainers":[{"name":"hajovsky","email":"juraj@hajovsky.sk"}],"homepage":"https://github.com/seznam/halson","bugs":{"url":"https://github.com/seznam/halson/issues"},"dist":{"shasum":"1c7ffc2b5a0abe8eaed4e738ec965cd720fd0b49","tarball":"https://registry.npmjs.org/halson/-/halson-1.0.2.tgz","integrity":"sha512-3XR3lZHZLXdwfRUvq3e2G42i4Lrl1Yu+OkHaGnKJ0GVMPxN6kEW8K/kc5/VEaV1bouVEsXd7auIFfQkoEs6fVQ==","signatures":[{"sig":"MEUCIENa2Spg18W1ZJf97SZrE9A1jqCnudfDB9MDiCgdLZgVAiEA+AxKBu+1umPW+jIdrmYiTd0UC6Z7z+uYVAgmvXAbAsA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"mocha --reporter spec --bail test.js"},"_npmUser":{"name":"hajovsky","email":"juraj@hajovsky.sk"},"repository":{"url":"https://github.com/seznam/halson","type":"git"},"_npmVersion":"1.4.3","description":"Fault-tolerant HAL+JSON parser and writer","directories":{},"devDependencies":{"mocha":"~1.18.0"}},"1.0.3":{"name":"halson","version":"1.0.3","keywords":["HAL","JSON","REST","Hypermedia","HATEOAS","API"],"author":{"name":"Seznam.cz, a.s."},"license":"MIT","_id":"halson@1.0.3","maintainers":[{"name":"hajovsky","email":"juraj@hajovsky.sk"}],"homepage":"https://github.com/seznam/halson","bugs":{"url":"https://github.com/seznam/halson/issues"},"dist":{"shasum":"d9c6b3eeaa9adde928e6d253238b723fd694ad87","tarball":"https://registry.npmjs.org/halson/-/halson-1.0.3.tgz","integrity":"sha512-T+OV+U6SehMurytfvvhVjnGx+cHcxf9L/Dr0ZXCza5yfbb8dBhPUWL5b1dmCg39t2sC8tJY2hty5ZWyqC8Imuw==","signatures":[{"sig":"MEUCIC7VYF+D+HtFwHEHkDV+BAqbOjbp86mk1Kz0s1yPGvmfAiEA8BBLvkOTgepvkU8I0lD0Hy0TSRuBMJbdhXRL/eotffQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"mocha --reporter spec --bail test.js"},"_npmUser":{"name":"hajovsky","email":"juraj@hajovsky.sk"},"repository":{"url":"https://github.com/seznam/halson","type":"git"},"_npmVersion":"1.4.3","description":"Fault-tolerant HAL+JSON parser and writer","directories":{},"devDependencies":{"mocha":"~1.18.0"}},"1.0.4":{"name":"halson","version":"1.0.4","keywords":["HAL","JSON","REST","Hypermedia","HATEOAS","API"],"author":{"name":"Seznam.cz, a.s."},"license":"MIT","_id":"halson@1.0.4","maintainers":[{"name":"hajovsky","email":"juraj@hajovsky.sk"}],"homepage":"https://github.com/seznam/halson","bugs":{"url":"https://github.com/seznam/halson/issues"},"dist":{"shasum":"364c0d831fb626c609519db507dd378b66d87611","tarball":"https://registry.npmjs.org/halson/-/halson-1.0.4.tgz","integrity":"sha512-SZhOtWmvWP/zTA3WF3fptcVMWiwLndysnoKjZSP4TfYnP1e6OTK6AlsKVryjaMu4h8OcYR09KSHNaT0kG+Or/Q==","signatures":[{"sig":"MEYCIQCzbmJPKPcqljDzucDOD97DkImOkg9U+0cr+NUzajpsDwIhAJCZgIbE34i30+D8rCDgvgajhlb/HGVUblLE29+aCw1Z","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"mocha --reporter spec --bail test.js"},"_npmUser":{"name":"hajovsky","email":"juraj@hajovsky.sk"},"repository":{"url":"https://github.com/seznam/halson","type":"git"},"_npmVersion":"1.4.3","description":"Fault-tolerant HAL+JSON parser and writer","directories":{},"devDependencies":{"mocha":"~1.18.0"}},"1.0.5":{"name":"halson","version":"1.0.5","keywords":["HAL","JSON","REST","Hypermedia","HATEOAS","API"],"author":{"name":"Seznam.cz, a.s."},"license":"MIT","_id":"halson@1.0.5","maintainers":[{"name":"hajovsky","email":"juraj@hajovsky.sk"}],"homepage":"https://github.com/seznam/halson","bugs":{"url":"https://github.com/seznam/halson/issues"},"dist":{"shasum":"9b54fe1292f9f166739b940e3169877cf48d2ec7","tarball":"https://registry.npmjs.org/halson/-/halson-1.0.5.tgz","integrity":"sha512-s2GjOPE7qJ/nnWZXZjyLACAm0XmtVTLww1YTjV/oILKRv3x7f5FxV8VxZa7bNYkx/nTA/OWEJ7MqTnpFv7cGBg==","signatures":[{"sig":"MEYCIQCGS8b6q80j1NK61tGgH6G2VS62X163A1pu2axvfK2ZLwIhAISftXLoVWni9oSRDfVc164mpYNZyFygfGROrUDC0544","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"mocha --reporter spec --bail test.js"},"_npmUser":{"name":"hajovsky","email":"juraj@hajovsky.sk"},"repository":{"url":"https://github.com/seznam/halson","type":"git"},"_npmVersion":"1.4.3","description":"Fault-tolerant HAL+JSON parser and writer","directories":{},"devDependencies":{"mocha":"~1.18.0"}},"1.0.6":{"name":"halson","version":"1.0.6","keywords":["HAL","JSON","REST","Hypermedia","HATEOAS","API"],"author":{"name":"Seznam.cz, a.s."},"license":"MIT","_id":"halson@1.0.6","maintainers":[{"name":"hajovsky","email":"juraj@hajovsky.sk"}],"homepage":"https://github.com/seznam/halson","bugs":{"url":"https://github.com/seznam/halson/issues"},"dist":{"shasum":"712078bfcd17d4c224d8b0d85d4f398b16725115","tarball":"https://registry.npmjs.org/halson/-/halson-1.0.6.tgz","integrity":"sha512-CKBQR6hTnRwv6EA8z4FzQEDxk3JijZqAIIpyUv2nVtf4uHBQcKtOiD6WuDtFuLQsMXHuA/9EtdJvX/ruNaemNw==","signatures":[{"sig":"MEYCIQCrH31gR3ZKWo/uhpU8C9LdQwAaQiXrfQ1VYJJy8j/w1AIhAL5pvTSHzgj26IS6Ok/sBJVAhu/vVTA59Mgip9PrvR/+","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"mocha --reporter spec --bail test.js"},"_npmUser":{"name":"hajovsky","email":"juraj@hajovsky.sk"},"repository":{"url":"https://github.com/seznam/halson","type":"git"},"_npmVersion":"1.4.3","description":"Fault-tolerant HAL+JSON parser and writer","directories":{},"devDependencies":{"mocha":"~1.18.0"}},"2.0.0":{"name":"halson","version":"2.0.0","keywords":["HAL","JSON","REST","Hypermedia","HATEOAS","API"],"author":{"name":"Seznam.cz, a.s."},"license":"MIT","_id":"halson@2.0.0","maintainers":[{"name":"hajovsky","email":"juraj@hajovsky.sk"}],"homepage":"https://github.com/seznam/halson","bugs":{"url":"https://github.com/seznam/halson/issues"},"dist":{"shasum":"21b60b3afd20346836e5f43a6090afde2ca8b645","tarball":"https://registry.npmjs.org/halson/-/halson-2.0.0.tgz","integrity":"sha512-L6BwOAGa9eaRbaBcuD0JmLpDMOUcOorbqoUU2aexU5+6BZzcfwPNms1TaMUblBXNFvO7O71EDi8kxYMAwgQMzw==","signatures":[{"sig":"MEYCIQCBJG/FPtwjIymFHGHjALoPdRZB8+vjN2eIVOQRtic1OQIhAJ6Yop7gzWwMxK0XItBpR6f/Z0xMrnnRaScNZo1utbqi","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"mocha --reporter spec test.js"},"_npmUser":{"name":"hajovsky","email":"juraj@hajovsky.sk"},"repository":{"url":"https://github.com/seznam/halson","type":"git"},"_npmVersion":"1.4.3","description":"The HAL+JSON Resource Object","directories":{},"devDependencies":{"chai":"^1.9.1","mocha":"~1.18.0"}},"2.0.1":{"name":"halson","version":"2.0.1","keywords":["HAL","JSON","REST","Hypermedia","HATEOAS","API"],"author":{"url":"http://hajovsky.sk","name":"Juraj Hájovský","email":"juraj@hajovsky.sk"},"license":"MIT","_id":"halson@2.0.1","maintainers":[{"name":"hajovsky","email":"juraj@hajovsky.sk"}],"homepage":"https://github.com/seznam/halson","bugs":{"url":"https://github.com/seznam/halson/issues"},"dist":{"shasum":"7314de029b006dca4f4d03eacef6f155f9948d99","tarball":"https://registry.npmjs.org/halson/-/halson-2.0.1.tgz","integrity":"sha512-kVlmfKvS1Q+fPxNq/CsSNAVd0/XCi/vdvVPEwCqO9b+334Ge3FiYSNzVcfsLcYC8mEoFvJOpXZkzyuFQbPJCxA==","signatures":[{"sig":"MEQCICxAXpyAp6kjhBdj1247UX+i/bTr3SIgKfpY5Akg+BJcAiAd/jpMEn62RsChAq1s9HS45H5VllTsy0MmfbTjJCMcTw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"mocha --reporter spec test.js"},"_npmUser":{"name":"hajovsky","email":"juraj@hajovsky.sk"},"repository":{"url":"https://github.com/seznam/halson","type":"git"},"_npmVersion":"1.4.3","description":"The HAL+JSON Resource Object","directories":{},"devDependencies":{"chai":"^1.9.1","mocha":"~1.18.0"}},"2.0.2":{"name":"halson","version":"2.0.2","keywords":["HAL","JSON","REST","Hypermedia","HATEOAS","API"],"author":{"url":"http://hajovsky.sk","name":"Juraj Hájovský","email":"juraj@hajovsky.sk"},"license":"MIT","_id":"halson@2.0.2","maintainers":[{"name":"hajovsky","email":"juraj@hajovsky.sk"}],"homepage":"https://github.com/seznam/halson","bugs":{"url":"https://github.com/seznam/halson/issues"},"dist":{"shasum":"77a0471519b2a096452b88ee82c06c88780c816a","tarball":"https://registry.npmjs.org/halson/-/halson-2.0.2.tgz","integrity":"sha512-ico1dgRGC390BxEi3eAEOuS0Lkmf87yjO39w3oECeJVBTtMiBgTLXcycg166NTdKfclVgMvMHfYbhsozu2jsxg==","signatures":[{"sig":"MEUCIQCEtyJFeLJw6FISCMA4RsXcmv83eV+29PSd9IYZ7RGPAQIgDTRK+9dt068ZcaLQg/3X6P3oXgZGLS/BtOUgRbVqtFI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"mocha --reporter spec test.js"},"_npmUser":{"name":"hajovsky","email":"juraj@hajovsky.sk"},"repository":{"url":"https://github.com/seznam/halson","type":"git"},"_npmVersion":"1.3.24","description":"The HAL+JSON Resource Object","directories":{},"devDependencies":{"chai":"^1.9.1","mocha":"~1.18.0"}},"2.0.3":{"name":"halson","version":"2.0.3","keywords":["HAL","JSON","REST","Hypermedia","HATEOAS","API"],"author":{"url":"http://hajovsky.sk","name":"Juraj Hájovský","email":"juraj@hajovsky.sk"},"license":"MIT","_id":"halson@2.0.3","maintainers":[{"name":"hajovsky","email":"juraj@hajovsky.sk"}],"homepage":"https://github.com/seznam/halson","bugs":{"url":"https://github.com/seznam/halson/issues"},"dist":{"shasum":"04f38cd9f57bc73531ebedb30c24b06f334664dd","tarball":"https://registry.npmjs.org/halson/-/halson-2.0.3.tgz","integrity":"sha512-HZ3mkscoYbItDQJA2vAuAt26iYOwf6sUBDab7SlyxZXcJj8aIwmnhjRqubxlcvXfRaU4rXQRjnm5fRLuNc+4zQ==","signatures":[{"sig":"MEUCIGnbUTpUhk2d3eHzWkcICukZ+a0F35UPX/0JuyK5h7nhAiEAoTJqCZMR/ERD1xbo0pmwGCVOGz9d95YTv/FuNST4r0Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"mocha --reporter spec test.js"},"_npmUser":{"name":"hajovsky","email":"juraj@hajovsky.sk"},"repository":{"url":"https://github.com/seznam/halson","type":"git"},"_npmVersion":"1.3.24","description":"The HAL+JSON Resource Object","directories":{},"devDependencies":{"chai":"^1.9.1","mocha":"~1.18.0"}},"2.1.0":{"name":"halson","version":"2.1.0","keywords":["HAL","JSON","REST","Hypermedia","HATEOAS","API"],"author":{"url":"http://hajovsky.sk","name":"Juraj Hájovský","email":"juraj@hajovsky.sk"},"license":"MIT","_id":"halson@2.1.0","maintainers":[{"name":"hajovsky","email":"juraj@hajovsky.sk"}],"homepage":"https://github.com/seznam/halson","bugs":{"url":"https://github.com/seznam/halson/issues"},"dist":{"shasum":"4e98ac8b9a945759f2e4b8a1a712401c26761b29","tarball":"https://registry.npmjs.org/halson/-/halson-2.1.0.tgz","integrity":"sha512-Q59J+3h5r+MQxUanP3jnfsCW/HbLvRXc6cqSH6ZepUA7Km6ECiv2PLx+1axJazGLNzu2PbgqVs5haxUEUMz58g==","signatures":[{"sig":"MEUCIDgrM9hPrYjJx4hgxLp41aYRR5w7wm5l7GLoaRKerCOLAiEA3eL3lukfgmPPpwfNzyb3R2MfrK6mqPmglmjWMgu10y0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"mocha --reporter spec test.js"},"_npmUser":{"name":"hajovsky","email":"juraj@hajovsky.sk"},"repository":{"url":"https://github.com/seznam/halson","type":"git"},"_npmVersion":"1.3.25","description":"The HAL+JSON Resource Object","directories":{},"devDependencies":{"chai":"^1.9.1","mocha":"~1.18.0"}},"2.1.1":{"name":"halson","version":"2.1.1","keywords":["HAL","JSON","REST","Hypermedia","HATEOAS","API"],"author":{"url":"http://hajovsky.sk","name":"Juraj Hájovský","email":"juraj@hajovsky.sk"},"license":"MIT","_id":"halson@2.1.1","maintainers":[{"name":"hajovsky","email":"juraj@hajovsky.sk"}],"homepage":"https://github.com/seznam/halson","bugs":{"url":"https://github.com/seznam/halson/issues"},"dist":{"shasum":"86041a27d9fc85b93ed81d7484bf16b4dbf716d1","tarball":"https://registry.npmjs.org/halson/-/halson-2.1.1.tgz","integrity":"sha512-cbGTAqCDV3nj1xiY/ahJDf4vD9esUnDwcaD+fpKnrGsxe1FJJRqJ3Q2QlHoIYJBKkIU1ZadH9jAdAayWwVbRxw==","signatures":[{"sig":"MEUCIEjzUvozD5Kd+bAQF4YlJhRtZwNNrAvz2LklVnsBVrPWAiEArMl19Bl2wKmMZgGWPhn+2onexzPC/ylqd1MuAcV8GcU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"mocha --reporter spec test.js"},"_npmUser":{"name":"hajovsky","email":"juraj@hajovsky.sk"},"repository":{"url":"https://github.com/seznam/halson","type":"git"},"_npmVersion":"1.3.25","description":"The HAL+JSON Resource Object","directories":{},"devDependencies":{"chai":"^1.9.1","mocha":"~1.18.0"}},"2.2.0":{"name":"halson","version":"2.2.0","keywords":["HAL","JSON","REST","Hypermedia","HATEOAS","API"],"author":{"url":"http://hajovsky.sk","name":"Juraj Hájovský","email":"juraj@hajovsky.sk"},"license":"MIT","_id":"halson@2.2.0","maintainers":[{"name":"hajovsky","email":"juraj@hajovsky.sk"}],"homepage":"https://github.com/seznam/halson","bugs":{"url":"https://github.com/seznam/halson/issues"},"dist":{"shasum":"3f442defa1fafddb5338a33fb9f4f18808985a0d","tarball":"https://registry.npmjs.org/halson/-/halson-2.2.0.tgz","integrity":"sha512-eAayyUEfSDUmM8zHSmNUeTsZGgTqJdJnz4275dqkybPfjOb/oFZnnSH33++q6HR6Wt8FGbpUMYK7Cpr+4jCKCg==","signatures":[{"sig":"MEYCIQCMz8ObrGf8C7oHd70d2ialdO+xkCM/LdyuY7O+tKI/nAIhAOoYFjQ/I3BYONpe7lFINihmckLi0QSnb+2GxSmGkV1d","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"3f442defa1fafddb5338a33fb9f4f18808985a0d","scripts":{"test":"mocha --reporter spec test.js"},"_npmUser":{"name":"hajovsky","email":"juraj@hajovsky.sk"},"repository":{"url":"https://github.com/seznam/halson","type":"git"},"_npmVersion":"1.4.9","description":"The HAL+JSON Resource Object","directories":{},"devDependencies":{"chai":"^1.9.1","mocha":"~1.18.0"}},"2.3.0":{"name":"halson","version":"2.3.0","keywords":["HAL","JSON","REST","Hypermedia","HATEOAS","API"],"author":{"url":"http://hajovsky.sk","name":"Juraj Hájovský","email":"juraj@hajovsky.sk"},"license":"MIT","_id":"halson@2.3.0","maintainers":[{"name":"hajovsky","email":"juraj@hajovsky.sk"}],"contributors":[{"name":"Juraj Hájovský","email":"juraj@hajovsky.sk"},{"name":"Marek Fojtl","email":"marek.fojtl@firma.seznam.cz"},{"name":"Tom Ruttle","email":"truttle@bmj.com"}],"homepage":"https://github.com/seznam/halson","bugs":{"url":"https://github.com/seznam/halson/issues"},"dist":{"shasum":"bdd47308131e56c19f55a1bb5de6663b9899db7e","tarball":"https://registry.npmjs.org/halson/-/halson-2.3.0.tgz","integrity":"sha512-HTOfsNA/mTUADjNa+fXN6uLUxN+dlrys/I7kHM8knVb8VH4/dpBUrV+A5zbGmfh7N5I51JiG16gHbHfqMaooCQ==","signatures":[{"sig":"MEQCIBKWqstbP46qezDQaFoZNwS285IzLtFJa3MgJE4ewJk2AiBX0bkFn5NwE+9hgwBvtQH05NJ+1c3OulFYj8/2a/ThbQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"bdd47308131e56c19f55a1bb5de6663b9899db7e","gitHead":"32cd0596507f51f5bbd0a51042fb9a3eb26fbf87","scripts":{"test":"mocha --reporter spec test.js"},"_npmUser":{"name":"hajovsky","email":"juraj@hajovsky.sk"},"repository":{"url":"https://github.com/seznam/halson","type":"git"},"_npmVersion":"2.0.0","description":"The HAL+JSON Resource Object","directories":{},"devDependencies":{"chai":"^1.9.1","mocha":"~1.18.0"}},"2.3.1":{"name":"halson","version":"2.3.1","keywords":["HAL","JSON","REST","Hypermedia","HATEOAS","API"],"author":{"url":"http://hajovsky.sk","name":"Juraj Hájovský","email":"juraj@hajovsky.sk"},"license":"MIT","_id":"halson@2.3.1","maintainers":[{"name":"hajovsky","email":"juraj@hajovsky.sk"}],"contributors":[{"name":"Juraj Hájovský","email":"juraj@hajovsky.sk"},{"name":"Marek Fojtl","email":"marek.fojtl@firma.seznam.cz"},{"name":"Tom Ruttle","email":"truttle@bmj.com"},{"name":"David Kalosi","email":"david.kalosi@gmail.com"}],"homepage":"https://github.com/seznam/halson","bugs":{"url":"https://github.com/seznam/halson/issues"},"dist":{"shasum":"28cfc990c9337f4a683f2aa0995dfbd3145fb3f8","tarball":"https://registry.npmjs.org/halson/-/halson-2.3.1.tgz","integrity":"sha512-1c2oH9EEdREAc1dXiedx9PKQtLzZpQ7FSJZsCaJ7LbhWvGWWw5qz4mPAPv3h+Ki8KNkAiBxkUta62VxqFzSxhw==","signatures":[{"sig":"MEUCIFaaiXH2Cz4Ia8+H53WUa6wLFCmACHbKQBSReta6D7EbAiEAt+gJKbwoyptT5TgkGJVPRDjKUnR0XgwnruMhbhzfm+M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"28cfc990c9337f4a683f2aa0995dfbd3145fb3f8","gitHead":"a8ff362f44198f795bd91c88b2cd19572b155995","scripts":{"test":"mocha --reporter spec test.js"},"_npmUser":{"name":"hajovsky","email":"juraj@hajovsky.sk"},"repository":{"url":"https://github.com/seznam/halson","type":"git"},"_npmVersion":"2.0.0","description":"The HAL+JSON Resource Object","directories":{},"devDependencies":{"chai":"^1.9.1","mocha":"~1.18.0"}},"3.0.0":{"name":"halson","version":"3.0.0","keywords":["HAL","JSON","REST","Hypermedia","HATEOAS","API"],"author":{"name":"Marek Fojtl","email":"jerrymf@gmail.com"},"license":"MIT","_id":"halson@3.0.0","maintainers":[{"name":"hajovsky","email":"qaliveb341@protonmail.com"},{"name":"jerrymf","email":"jerrymf@gmail.com"}],"contributors":[{"name":"Juraj Hájovský","email":"juraj@hajovsky.sk"},{"name":"Marek Fojtl","email":"marek.fojtl@firma.seznam.cz"},{"name":"Tom Ruttle","email":"truttle@bmj.com"},{"name":"David Kalosi","email":"david.kalosi@gmail.com"}],"homepage":"https://github.com/seznam/halson#readme","bugs":{"url":"https://github.com/seznam/halson/issues"},"dist":{"shasum":"fa03ade9c140179de61faf449ee3cdf6e7335ce8","tarball":"https://registry.npmjs.org/halson/-/halson-3.0.0.tgz","integrity":"sha512-x8hJWgiFyVClBDF+dPTa/Kr4ABMrdfNQiXL3q/cCIgosWqnIohB6qVKMYkqGq1AGS0ke5p0ar+yB7ONsSfs9pg==","signatures":[{"sig":"MEUCIFHdO7XBn2XY/qRzE2Zh/Y7Kw3yfdcbbfCO8MBtGojnPAiEA4kaoKFR2Bs97NSZDofwSMD1fL8IcuPCrrTER32I2Ne8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","gitHead":"3055d200f4df64dbaf3c613a88e299db2af081eb","scripts":{"test":"mocha --reporter spec test.js"},"_npmUser":{"name":"jerrymf","email":"jerrymf@gmail.com"},"repository":{"url":"git+https://github.com/seznam/halson.git","type":"git"},"_npmVersion":"5.0.2","description":"The HAL+JSON Resource Object","directories":{},"_nodeVersion":"8.0.0","devDependencies":{"chai":"^1.9.1","mocha":"~1.18.0"},"_npmOperationalInternal":{"tmp":"tmp/halson-3.0.0.tgz_1496694119832_0.2716594426892698","host":"s3://npm-registry-packages"}},"3.1.0":{"name":"halson","version":"3.1.0","keywords":["HAL","JSON","REST","Hypermedia","HATEOAS","API"],"author":{"name":"Marek Fojtl","email":"jerrymf@gmail.com"},"license":"MIT","_id":"halson@3.1.0","maintainers":[{"name":"jerrymf","email":"jerrymf@gmail.com"},{"name":"jurca","email":"mjurca@centrum.cz"}],"contributors":[{"name":"Martin Jurča","email":"martin.jurca@firma.seznam.cz"}],"homepage":"https://github.com/seznam/halson#readme","bugs":{"url":"https://github.com/seznam/halson/issues"},"dist":{"shasum":"2d251d44be8eeb719fc91414070076a3053f7d65","tarball":"https://registry.npmjs.org/halson/-/halson-3.1.0.tgz","fileCount":10,"integrity":"sha512-EFZ5voHI9EvNLggeSaz1mzeYM8aMwQb57pqKk06P2qIINPcY8SjKIJiTc5/UADw3jmqi34Qp2ac1PgeXX1S4kw==","signatures":[{"sig":"MEUCICvs2c74fOadqBhwJ2tZoR37miJ952LqVCbL9sEykvbzAiEA3GzprGip68VixiIbepR0qWhyL4iVG9d5PVDo4PRUPMc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":39521,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkP8P7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoeVA//avzbejh07RP3rpSS1mmzkOtyATRWPjM5TTq+bF4TRbflg6aa\r\n/RCrN0/MTbUd3mD9J8CTs5KD7bzLFXNR5njmzqNfdcVrWQ4WwWp84p5BNG3x\r\nfr/dPvlnXGAp0mY5KOCIDlu2r72slFERrsM97c6jbl9XSlvAp3KU3la2vc9+\r\nDfWw/zV3BKrPmMKbuFUkCmKYROGb3D9iRfSO27v1AEg0BJXeK7s5FpkrpDc6\r\nzTi2P+n9OqOhEhR1prvqb3z1psaG+AOTwGSpQNBcL4/3wRVaLXUH5XIEuDzN\r\n+q0bUKBom1nRSB5zx1n5kJb6jgG4nNGiqPfQYdyVcrzGC8i5EXFw4W7Oo9qe\r\naGrqkF4cLr5vvx3EynmLvQKtUig6bQlWqG+LpwHclsZ2KREIVv7ttsCYoifB\r\njHtCSdn/YQRgRZM/QVDcjm/yHOSQh2otxcTWbSvIp/Ib2W/8B2g85u/KFXCw\r\nXCYSn4y3jehUT3s20QaBPvwav+F2ATR7KsfsmsPabNysNsPFKvvDCn2izblX\r\nBWt73pyD0NPg43/ydcm2YIGnyNvjNBVCsIOJrCUSVv2FWKko0xsQ7Fza1q69\r\n9AvTg5ILoG3kUO14iJvNATGY3r9IPI8b8akFk1iMJEWRnwY55b1z92rcUvVg\r\ns0/fVzZQTib0vVxpQzaa0qENnviqPZJXZL4=\r\n=9lJu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"08d33d748f82550f663a349f7c5be9b62eec1562","scripts":{"test":"mocha --reporter spec test.js"},"_npmUser":{"name":"jurca","email":"mjurca@centrum.cz"},"repository":{"url":"git+https://github.com/seznam/halson.git","type":"git"},"_npmVersion":"9.5.0","description":"The HAL+JSON Resource Object","directories":{},"_nodeVersion":"18.15.0","_hasShrinkwrap":false,"devDependencies":{"chai":"^1.9.1","mocha":"~1.18.0"},"_npmOperationalInternal":{"tmp":"tmp/halson_3.1.0_1681900539288_0.13185168641309963","host":"s3://npm-registry-packages"}},"3.2.0":{"name":"halson","version":"3.2.0","description":"The HAL+JSON Resource Object","main":"index.js","types":"index.d.ts","scripts":{"test":"mocha --reporter spec test.js test-enhanced.js"},"keywords":["HAL","JSON","REST","Hypermedia","HATEOAS","API"],"author":{"name":"Marek Fojtl","email":"jerrymf@gmail.com"},"contributors":[{"name":"Martin Jurča","email":"martin.jurca@firma.seznam.cz"},{"name":"Jonelle Amio"}],"license":"MIT","devDependencies":{"chai":"^5.3.1","mocha":"~11.7.1","typescript":"^5.9.2"},"repository":{"type":"git","url":"git+https://github.com/seznam/halson.git"},"gitHead":"eb0cfa70fa6dc37ec00a21a9440b560c5cd25a00","bugs":{"url":"https://github.com/seznam/halson/issues"},"homepage":"https://github.com/seznam/halson#readme","_id":"halson@3.2.0","_nodeVersion":"20.19.4","_npmVersion":"9.2.0","dist":{"integrity":"sha512-cjkY90IOLEV5LtNrQ6iYJZJ2740+rkVaGtXD6pdpOn+R6zvAybMLzK8qC6qxPqhmDTAtRVSd20O7p/DhXG0+DA==","shasum":"3b8273c65b32a5a359d664996f472c746bdae395","tarball":"https://registry.npmjs.org/halson/-/halson-3.2.0.tgz","fileCount":11,"unpackedSize":90562,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC5YdLugjTqEX6YrqxVLsaZG/jbtbzK5QMJP3PmZol02QIhAPdM1wKTdM79sF58fqSrZxSqfM9cbvLAHwwFfsxDAHsj"}]},"_npmUser":{"name":"jurca","email":"bubxqk0b@duck.com"},"directories":{},"maintainers":[{"name":"jerrymf","email":"jerrymf@gmail.com"},{"name":"jurca","email":"bubxqk0b@duck.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/halson_3.2.0_1775669693460_0.8177647938108918"},"_hasShrinkwrap":false}},"time":{"created":"2014-03-17T15:24:29.912Z","modified":"2026-04-08T17:34:53.731Z","1.0.0":"2014-03-17T15:24:29.912Z","1.0.1":"2014-03-17T15:27:10.047Z","1.0.2":"2014-03-17T15:54:07.430Z","1.0.3":"2014-03-18T09:32:50.025Z","1.0.4":"2014-03-18T13:45:24.534Z","1.0.5":"2014-03-18T14:55:53.058Z","1.0.6":"2014-03-19T15:05:17.438Z","2.0.0":"2014-03-21T17:25:25.789Z","2.0.1":"2014-03-22T09:56:52.429Z","2.0.2":"2014-03-23T15:01:54.048Z","2.0.3":"2014-03-23T18:42:06.437Z","2.1.0":"2014-03-24T13:40:35.425Z","2.1.1":"2014-04-25T13:23:10.947Z","2.2.0":"2014-08-18T11:19:01.755Z","2.3.0":"2015-01-11T15:50:02.212Z","2.3.1":"2015-01-14T17:33:32.381Z","3.0.0":"2017-06-05T20:22:00.946Z","3.1.0":"2023-04-19T10:35:39.446Z","3.2.0":"2026-04-08T17:34:53.615Z"},"bugs":{"url":"https://github.com/seznam/halson/issues"},"author":{"name":"Marek Fojtl","email":"jerrymf@gmail.com"},"license":"MIT","homepage":"https://github.com/seznam/halson#readme","keywords":["HAL","JSON","REST","Hypermedia","HATEOAS","API"],"repository":{"type":"git","url":"git+https://github.com/seznam/halson.git"},"description":"The HAL+JSON Resource Object","contributors":[{"name":"Martin Jurča","email":"martin.jurca@firma.seznam.cz"},{"name":"Jonelle Amio"}],"maintainers":[{"name":"jerrymf","email":"jerrymf@gmail.com"},{"name":"jurca","email":"bubxqk0b@duck.com"}],"readme":"# HALSON\n[![Build Status](https://travis-ci.org/seznam/halson.svg?branch=master)](https://travis-ci.org/seznam/halson)\n\nThe [HAL+JSON](http://stateless.co/hal_specification.html) Resource Object with TypeScript support.\n\n## Version\n3.2.0\n\n## Installation\n\n### node.js\n\n```sh\nnpm install halson --save\n```\n\n### Bower\n\n```sh\nbower install halson --save\n```\n\n## Example\n```js\nvar halson = require('halson');\n\nvar embed = halson({\n        title: \"joyent / node\",\n        description: \"evented I/O for v8 javascript\"\n    })\n    .addLink('self', '/joyent/node')\n    .addLink('author', {\n        href: '/joyent',\n        title: 'Joyent'\n    });\n\nvar resource = halson({\n        title: \"john doe\",\n        username: \"doe\",\n        emails: [\n            \"john.doe@example.com\",\n            \"doe@example.com\"\n        ]\n    })\n    .addLink('self', '/doe')\n    .addEmbed('starred', embed);\n\nconsole.log(resource.title);\nconsole.log(resource.emails[0]);\nconsole.log(resource.getLink('self'));\nconsole.log(resource.getEmbed('starred'));\nconsole.log(JSON.stringify(resource));\n```\n\n## TypeScript Support\n\nHALSON supports TypeScript with generic typing for strongly-typed HAL+JSON resources. This allows you to work with your domain objects while preserving all HAL+JSON functionality.\n\n### Basic TypeScript Usage\n\n```typescript\nimport halson from \"halson\";\n\n// Define your domain interface\ninterface User {\n  id: number;\n  name: string;\n  email: string;\n  isActive: boolean;\n}\n\n// Create a typed resource\nconst userData: User = {\n  id: 1,\n  name: \"John Doe\",\n  email: \"john@example.com\",\n  isActive: true\n};\n\n// halson<T>() returns HALSONResource<T> which includes both\n// your domain properties AND all HAL+JSON methods\nconst userResource = halson<User>(userData)\n  .addLink('self', '/users/1')\n  .addLink('edit', '/users/1/edit');\n\n// ✅ Fully typed access to your domain properties\nconsole.log(userResource.name);     // string\nconsole.log(userResource.isActive); // boolean\n\n// ✅ Plus all HAL+JSON functionality\nconsole.log(userResource.getLink('self')); // HALSONLink | undefined\nconsole.log(userResource.listLinkRels());  // string[]\n```\n\n### Import Patterns\n\n**Option 1: Import with namespace access**\n```typescript\nimport halson from \"halson\";\n\nconst resource = halson<User>(userData);\ntype UserResource = halson.HALSONResource<User>;\n```\n\n**Option 2: Import with wildcard**\n```typescript\nimport * as halson from \"halson\";\n\nconst resource = halson<User>(userData);\ntype UserResource = halson.HALSONResource<User>;\n```\n\n**Option 3: Type-only imports (recommended)**\n```typescript\nimport halson from \"halson\";\nimport type { HALSONResource } from \"halson\";\n\nconst resource = halson<User>(userData);\ntype UserResource = HALSONResource<User>;\n```\n\n### Working with Embedded Resources\n\n```typescript\ninterface Repository {\n  id: number;\n  name: string;\n  language: string;\n  stars: number;\n}\n\ninterface UserWithRepos {\n  id: number;\n  name: string;\n  email: string;\n}\n\nconst userWithRepos = halson<UserWithRepos>({\n  id: 1,\n  name: \"John Doe\",\n  email: \"john@example.com\"\n})\n.addLink('self', '/users/1')\n.addEmbed('repositories', [\n  halson<Repository>({\n    id: 101,\n    name: \"awesome-project\",\n    language: \"TypeScript\",\n    stars: 42\n  }).addLink('self', '/repos/101'),\n  \n  halson<Repository>({\n    id: 102,\n    name: \"another-project\", \n    language: \"JavaScript\",\n    stars: 23\n  }).addLink('self', '/repos/102')\n]);\n\n// ✅ Type-safe access to embedded resources\nconst repos = userWithRepos.getEmbeds<Repository>('repositories');\nrepos.forEach(repo => {\n  console.log(`${repo.name} (${repo.language}) - ${repo.stars} stars`);\n});\n```\n\n### Function Signatures\n\n```typescript\n// Generic function overloads\nfunction halson(data?: string | object): HALSONResource;\nfunction halson<T extends object>(data: string | T): HALSONResource<T>;\n\n// Generic type alias\ntype HALSONResource<T extends object = object> = HALSONResource & T;\n```\n\n### Migration from JavaScript\n\nExisting JavaScript code works unchanged:\n\n```javascript\n// This JavaScript code continues to work exactly the same\nconst resource = halson({\n  title: \"Hello World\",\n  count: 42\n});\n\nconsole.log(resource.title); // \"Hello World\"\n```\n\nWhen migrating to TypeScript, you can gradually add type annotations:\n\n```typescript\n// Step 1: Add interface\ninterface Post {\n  title: string;\n  count: number;\n}\n\n// Step 2: Add generic type parameter\nconst resource = halson<Post>({\n  title: \"Hello World\",\n  count: 42\n});\n\n// Now you get full type safety!\nconsole.log(resource.title); // ✅ TypeScript knows this is a string\n```\n\n## Java HATEOAS-like Features\n\nHALSON now provides enterprise-grade HATEOAS features similar to Spring HATEOAS and other Java frameworks:\n\n### Import Styles for Advanced Features\n\nYou can use either namespace access or named imports for the advanced features:\n\n```typescript\n// Approach 1: Namespace access (all examples below use this)\nimport halson from \"halson\";\n\nconst resource = halson<User>(userData);\ntype UserResource = halson.HALSONResource<User>;\ntype PagedUsers = halson.PagedResource<UserList>;\nconst validation = resource.validate(options);\n```\n\n```typescript\n// Approach 2: Named imports (alternative style)\nimport halson, { \n  HALSONResource, \n  PagedResource, \n  IanaRels,\n  ValidationOptions \n} from \"halson\";\n\nconst resource = halson<User>(userData);\ntype UserResource = HALSONResource<User>;\ntype PagedUsers = PagedResource<UserList>;\nconst validation = resource.validate({\n  requireLinks: [IanaRels.SELF]\n});\n```\n\n### Enhanced Link Support with IANA Relations\n\n```typescript\nimport halson from \"halson\";\n\n// Rich link objects with metadata\nconst resource = halson<User>(userData)\n  .addLink(halson.IanaRels.SELF, {\n    href: \"/users/1\",\n    type: \"application/json\",\n    title: \"User Profile\",\n    method: \"GET\"\n  })\n  .addLink(halson.IanaRels.EDIT, {\n    href: \"/users/1\",\n    method: \"PUT\",\n    type: \"application/json\",\n    title: \"Edit User\"\n  });\n\n// Link existence checking\nif (resource.hasLink(halson.IanaRels.EDIT)) {\n  const editUrl = resource.getHref(halson.IanaRels.EDIT);\n}\n```\n\n### URI Template Support\n\n```typescript\n// Add templated links\nresource.addTemplate('search', '/users{?name,email,status}');\n\n// Expand templates with variables\nconst searchUrl = resource.expandTemplate('search', {\n  name: 'John',\n  status: 'active'\n});\n// Result: \"/users?name=John&status=active\"\n```\n\n### Navigation & Traversal\n\n```typescript\n// Async navigation following links\nconst userOrders = await userResource.follow<Order>('orders');\nconst allRelated = await userResource.followAll<Resource>('related');\n\n// URL resolution\nconst nextPageUrl = resource.resolve('next', { page: 2, size: 10 });\n```\n\n### Builder Pattern\n\n```typescript\n// Fluent resource construction\nconst resource = halson.HALResourceBuilder<User>(userData)\n  .link(halson.IanaRels.SELF, '/users/1')\n  .link(halson.IanaRels.EDIT, {\n    href: '/users/1',\n    method: 'PUT',\n    type: 'application/json'\n  })\n  .template('search', '/users{?q}')\n  .curie('acme', 'https://api.acme.com/rels/{rel}', true)\n  .embed('profile', profileResource)\n  .build();\n```\n\n### Pagination Support\n\n```typescript\ninterface UserList {\n  users: User[];\n}\n\ntype PagedUsers = halson.PagedResource<UserList>;\n\nconst pagedUsers: PagedUsers = {\n  users: [...],\n  page: {\n    number: 0,\n    size: 10,\n    totalElements: 100,\n    totalPages: 10\n  },\n  // HAL methods + pagination helpers\n  hasNext: () => true,\n  hasPrev: () => false,\n  next: () => '/users?page=1',\n  prev: () => null\n};\n```\n\n### Curie Support (Compact URIs)\n\n```typescript\n// Add namespace support\nresource\n  .addCurie('acme', 'https://api.acme.com/rels/{rel}', true)\n  .addLink('acme:orders', '/users/1/orders')\n  .addLink('acme:preferences', '/users/1/preferences');\n\n// Expand compact URIs\nconst expandedRel = resource.expandCurie('acme:orders');\n// Result: \"https://api.acme.com/rels/orders\"\n```\n\n### Validation Framework\n\n```typescript\n// Using namespace access\nconst validation = resource.validate({\n  strict: true,\n  requireLinks: [halson.IanaRels.SELF],\n  allowMissingLinks: [halson.IanaRels.NEXT]\n});\n\nif (!validation.valid) {\n  console.error('Validation errors:', validation.errors);\n  console.warn('Validation warnings:', validation.warnings);\n}\n```\n\n```typescript\n// Alternative: Using named imports\nimport halson, { IanaRels, ValidationOptions } from \"halson\";\n\nconst options: ValidationOptions = {\n  strict: true,\n  requireLinks: [IanaRels.SELF],\n  allowMissingLinks: [IanaRels.NEXT]\n};\n\nconst validation = resource.validate(options);\n```\n\n### Content Negotiation\n\n```typescript\n// Built-in content negotiation helpers\nif (resource.accepts('application/json')) {\n  const json = resource.asJson();\n}\n\nconst halJson = resource.asHal();\nconst contentType = resource.getContentType();\n```\n\n### Available IANA Link Relations\n\n```typescript\nhalson.IanaRels.SELF        // 'self'\nhalson.IanaRels.EDIT        // 'edit' \nhalson.IanaRels.DELETE      // 'delete'\nhalson.IanaRels.NEXT        // 'next'\nhalson.IanaRels.PREV        // 'prev'\nhalson.IanaRels.FIRST       // 'first'\nhalson.IanaRels.LAST        // 'last'\nhalson.IanaRels.RELATED     // 'related'\nhalson.IanaRels.ALTERNATE   // 'alternate'\nhalson.IanaRels.CANONICAL   // 'canonical'\nhalson.IanaRels.COLLECTION  // 'collection'\nhalson.IanaRels.ITEM        // 'item'\n// ... and more\n```\n\n## API\n\n### `halson([data])`\nCreate a new HAL+JSON Resource Object.\n * `data` (optional): Initial data as serialized string or Object.\n\n```js\n// empty HAL+JSON Resource Object\nvar resource = halson();\n\n// resource from a serialized data\nvar resource = halson('{title:\"Lorem Ipsum\",_links:{self:{href:\"/ipsum\"}}');\n\n// resource from an Object\nresource = halson({\n    _links: {\n        self: {\n            href: {\"/ipsum\"}\n        }\n    },\n    title: \"Lorem Ipsum\"\n});\n\n// resource from another resource (no-op)\nvar resourceX = halson(resource);\nconsole.log(resource === resourceX); // true\n```\n\n\n### `HALSONResource#listLinkRels()`\nList all link relations.\n\n```js\nvar data = {\n    _links: {\n        self: {href: '/doe'},\n        related: [\n            {href: 'http://doe.com'},\n            {href: 'https://twitter.com/doe'}\n        ]\n    }\n}\n\nvar resource = halson(data);\nconsole.log(resource.listLinkRels()); // ['self', 'related']\n```\n\n### `HALSONResource#listEmbedRels()`\nList all link relations.\n\n```js\nvar data = {\n    _embedded: {\n        starred: {\n            _links: {\n                self: {href: '/joyent/node'}\n            }\n            title: \"joyent / node\",\n            description: \"evented I/O for v8 javascript\"\n        }\n    }\n}\n\nvar resource = halson(data);\nconsole.log(resource.listEmbedRels()); // ['starred']\n```\n\n### `HALSONResource#getLinks(rel, [filterCallback, [begin, [end]]])`\nGet all links with relation `rel`.\n * `rel` (required): Relation name.\n * `filterCallback` (optional): Function used to filter array of links. [doc](http://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.20)\n * `begin`, `end` (optional): slice filtered links. [doc](http://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.10)\n\n```js\nvar twitterLinks = resource.getLinks('related', function(item) {\n    return item.name === \"twitter\";\n});\n```\n\n### `HALSONResource#getLink(rel, [filterCallback, [default]])`\nGet first link with relation `rel`.\n * `rel` (required): Relation name.\n * `filterCallback` (optional): Function used to filter array of links. [doc](http://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.20)\n * `default` (optional): Default value if the link does not exist.\n\n```js\nvar firstRelatedLink = resource.getLink('related');\n```\n\n### `HALSONResource#getEmbeds(rel, [filterCallback, [begin, [end]]])`\nGet all embedded resources with relation `rel`.\n * `rel` (required): Relation name.\n * `filterCallback` (optional): Function used to filter array of embeds. [doc](http://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.20)\n * `begin`, `end` (optional): slice filtered links. [doc](http://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.10)\n\n```js\nvar embeds = resource.getEmbeds('starred');\n```\n\n### `HALSONResource#getEmbed(rel, [filterCallback, [default]])`\nGet first embedded resource with relation `rel`.\n * `rel` (required): Relation name.\n * `filterCallback` (optional): Function used to filter array of embeds. [doc](http://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.20)\n * `default` (optional): Default value if the link does not exist.\n\n```js\nvar nodeProject = resource.getEmbed('starred', function(embed) {\n    return embed.getLink('self', {}).href === '/joyent/node';\n});\n```\n\n### `HALSONResource#addLink(rel, link)`\nAdd a link with relation `rel`.\n * `rel` (required): Relation name.\n * `link` (required): Link to be added (string or Object).\n\n```js\nresource\n    .addLink('related', 'http://doe.com')\n    .addLink('related', {\n        href: 'https://twitter.com/doe',\n        name: 'twitter'\n    });\n```\n\n### `HALSONResource#addEmbed(rel, embed)`\nAdd a nested resource with relation `rel`.\n * `rel` (required): Relation name.\n * `embed` (required): Resource to be embedded (Object or HALSONResource).\n\n```js\nvar embed = {\n    _links: {\n        self: {href: '/joyent/node'}\n    },\n    title: \"joyent / node\"\n}\nresource.addEmbed('starred', embed);\n```\n\n### `HALSONResource#insertEmbed(rel, index, embed)`\nAdd a nested resource with relation `rel`.\n * `rel` (required): Relation name.\n * `index` (required): Index number where embed will be inserted\n * `embed` (required): Resource to be embedded (Object or HALSONResource).\n\n```js\nvar embed = {\n    _links: {\n        self: {href: '/joyent/node'}\n    },\n    title: \"joyent / node\"\n};\nresource.addEmbed('starred', embed); // add embed\n\nvar embed2 = {\n    _links: {\n        self: {href: '/joyent/node'}\n    },\n    title: \"joyent / node\"\n};\nresource.insertEmbed('starred', 0, embed2); // insert new embed before first item\n```\n\n### `HALSONResource#removeLinks(rel, [filterCallback])`\nRemove links with relation `rel`. If `filterCallback` is not defined, all links with relation `rel` will be removed.\n * `rel` (required): Relation name.\n * `filterCallback` (optional): Function used to filter array of links. [doc](http://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.20)\n\n```js\n// remove links with relation 'related' and name 'twitter'\nresource.removeLinks('related', function(link) {\n    return link.name === \"twitter\";\n});\n```\n\n### `HALSONResource#removeEmbeds(rel, [filterCallback])`\nRemove embedded resources with relation `rel`. If `filterCallback` is not defined, all embeds with relation `rel` will be removed.\n * `rel` (required): Relation name.\n * `filterCallback` (optional): Function used to filter array of links. [doc](http://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.20)\n\n```js\n// remove embedded resources with relation 'starred' and self-link '/koajs/koa'\nresource.removeLinks('starred', function(embed) {\n    return embed.getLink('self', {}).href === '/koajs/koa';\n});\n```\n\n## Contributors\n\n- Marek Fojtl <jerrymf@gmail.com> (Author)\n- Martin Jurča <martin.jurca@firma.seznam.cz>\n- Juraj Hájovský <juraj@hajovsky.sk>\n- Tom Ruttle <truttle@bmj.com>\n- David Kalosi <david.kalosi@gmail.com>\n- José Santos Martins Pereira\n- [Jonelle Amio](https://github.com/jonelleamio)\n\nThank you to all contributors who have helped improve HALSON!\n","readmeFilename":"README.md","users":{"hoitmort":true,"shahzaib":true,"david.kalosi":true}}