{"_id":"@asymmetrik/akin","_rev":"22-e9bca9b4f5ccabb11c91a7a6939bf307","name":"@asymmetrik/akin","dist-tags":{"latest":"0.2.4"},"versions":{"0.2.0":{"name":"@asymmetrik/akin","version":"0.2.0","author":{"name":"Asymmetrik, Ltd."},"license":"UNLICENSED","_id":"@asymmetrik/akin@0.2.0","maintainers":[{"name":"amarcus","email":"amarcus@asymmetrik.com"},{"name":"brianghig","email":"brianghig@gmail.com"},{"name":"jyoung-asymmetrik","email":"jyoung@asymmetrik.com"},{"name":"mcurtis22","email":"mcurtis@asymmetrik.com"},{"name":"rblace","email":"ryan@asymmetrik.com"},{"name":"reblace","email":"rblace@asymmetrik.com"},{"name":"robert-w","email":"RWinter85@gmail.com"}],"homepage":"https://github.com/asymmetrik/akin#readme","bugs":{"url":"https://github.com/asymmetrik/akin/issues"},"dist":{"shasum":"d5e7d305a134974693f3f5933d8077d2032f669f","tarball":"https://registry.npmjs.org/@asymmetrik/akin/-/akin-0.2.0.tgz","fileCount":18,"integrity":"sha512-W7uiDkTSNX8bqTZW+sn5wmY6ZVkNDIwPH2CQFe5SyhYilXe7Ku85t9CCPIAUrGWj5SOyqgJu667KrIH0IDkA3g==","signatures":[{"sig":"MEUCICO5imGdoSWIqL+RGZTcYLo5IFqfQ99DO+rt7eYxXsMjAiEA2GW/RtBWbwQxPY8IRPUL0ea4TRUTZTbkkoS5TUWRquI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":43351,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa1LHECRA9TVsSAnZWagAA+OEP/225Vum9ZuVDlSBCJAyL\nH/TAjQIDhiHEyvqD3vlexsNK8mUuncyMVubsko+9tz+nXP+eUl5qSnvKsHKx\nC0LtsKyOL09xMG1HqJb+1On/qh7wusBaL5KK0UIMOmF0gyyteA1rLan2353d\nGdBVj60hKy/2W5pI9onGZ6qmhgWnSaqcH6jNtAZAvfJV4PRcJadRcVIN2TAC\nibKzytAZTiW3LhyGsfADj22Cvh2A7lqWemoorozhxc8PpepNZWS5Im3KOXap\nDm2HOxu1K8DC1ewO9Bemh05ic9AhDwz2vcZtOt7419DFug7IlsOlx6tCUPeh\nREg5CikJ49/MoqQ7ixabjjaHYkka+nY/MWMzjeW/KuYF2I6UsM0Q04x51n4q\neiYkq7P8yMprnBlvT1qRUo4s4kOYJwcK6TXmFAgaDANg0qxUBaUmxQs1mUI0\nHD463Yd8LwiF8UfpMSnYsusyZNemj9KkA1DNI6ZiZN7/XefBiKPsWHcoTwzd\nUZ2PNNvYBds7QwHcTj+jYTQz5vJlDVUw/hlCni8rwY6PF8SlDVyD6ptd4ZDP\nhhBgXTswz6tK3JWynOHjYn2lzMKYVRk6t0rsOurhufm7iDVHv+u/BJg9EezS\nIX012f2lMMVrMVh9amKNrPo5wX1kfeZdBtTrJRgja1dFZY4YnuSXomU9MZaC\nOh4B\r\n=63y8\r\n-----END PGP SIGNATURE-----\r\n"},"_from":".","_shasum":"d5e7d305a134974693f3f5933d8077d2032f669f","engines":{"npm":"3.3.10","node":"5.0.0"},"gitHead":"2b92524459cb3be591cef6a99dc5759e4419b0ee","scripts":{"test":"mocha","pretest":"istanbul cover node_modules/mocha/bin/_mocha","posttest":"eslint ./index.js ./lib"},"_npmUser":{"name":"brianghig","email":"brianghig@gmail.com"},"copyright":"Copyright Asymmetrik, Ltd. 2007-2017 - All Rights Reserved.","repository":{"url":"git+https://github.com/asymmetrik/akin.git","type":"git"},"_npmVersion":"3.10.8","description":"Recommendation Engine based on Collaborative Filtering","directories":{},"_nodeVersion":"6.9.1","dependencies":{"lodash":"4.17","moment":"2.22","weighted-random-object":"1.0.6"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"3.1","eslint":"3.13","should":"11.1","istanbul":"0.4.5","mongoose":"4.x","mochawesome":"1.5","mocha-lcov-reporter":"0.0.2"},"peerDependencies":{"mongoose":"4.x"},"_npmOperationalInternal":{"tmp":"tmp/akin_0.2.0_1523888579957_0.11208760672284068","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"@asymmetrik/akin","version":"0.2.1","author":{"name":"Asymmetrik Ltd."},"license":"MIT","_id":"@asymmetrik/akin@0.2.1","maintainers":[{"name":"amarcus","email":"amarcus@asymmetrik.com"},{"name":"brianghig","email":"brianghig@gmail.com"},{"name":"jyoung-asymmetrik","email":"jyoung@asymmetrik.com"},{"name":"mcurtis22","email":"mcurtis@asymmetrik.com"},{"name":"rblace","email":"ryan@asymmetrik.com"},{"name":"reblace","email":"rblace@asymmetrik.com"},{"name":"robert-w","email":"RWinter85@gmail.com"}],"contributors":[{"name":"Brian Ghigiarelli","email":"bghigiarelli@asymmetrik.com"}],"homepage":"https://github.com/asymmetrik/akin#readme","bugs":{"url":"https://github.com/asymmetrik/akin/issues"},"dist":{"shasum":"1a7a11199093c878c05b3e790bbff68846718c0b","tarball":"https://registry.npmjs.org/@asymmetrik/akin/-/akin-0.2.1.tgz","fileCount":18,"integrity":"sha512-dwu/fxekPdd358jt5oLBli+TBQ4N8Casp/NlP3T33HxaVLiTSZ4jVTuJYcvDGiAlsO2C2BDnjfjhLNK51doe8A==","signatures":[{"sig":"MEQCIEESqfrnQOFEyEBRzEdS806IqizDK/0/jb/K0s0E04zPAiAKmapD6r8aJBwnwKWjd+Kki/bbKWP9xcqyZanjXlaU7g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":43321,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa1LbuCRA9TVsSAnZWagAALesP/3Jz0tlZlm76TyciITNp\nbfaqEM9PcbKrPkqL5mJldUOBupfmSZyZsdsbfwSeZ4j2kMmNIIdMI8db8cJX\nPJlqbwX5GH+LeTNIzVT0er60dzqVH2jLwVPu3pPZ8wJO/p17yVEycMqa0pjh\ngRmlG96KvI33evdmcrZaHFX4FI08ur+s4KI52O+8GRqVNkcu0SwJlX2OOgE0\ngWOLAn5fogz0+mvkm1JIm/17L7gFyKtZiUHt4c2D0aQQKlg+wM0R61HfPVxa\n4Oriiyf3RIJwxJPMmwsALtS95yTgoDrKD/EEBt2RTOHtWjTrknzBN/kocLCF\nTx7OvoHbCGUBWH9UfxyZSmnp5yqDMoJVtjbXXsJD6Ou5aFuoeDByx9DQTLZP\nUslsBGOb/ysNMahuABt/k8RMd/TO0xGNcd/19+YIEARsFEqnmGmlPOofpQ7x\nuBLiVwBLAQgFWkW8MhKIPk6uHsXIm0v1Sn+XAAddDjhlv30nrrbyX6zgZEm9\nyXAO+BmO0gcMLLh9/iNtZb6v4VlQwSx/nJtHGnqrE8BYf+St8KVodCDHhgFY\nRU9DwpjADJgd0qs2Kj/5V67EQCzc1770dZA25gYNov903oeqE68pS2QXb2gm\nLOvPVCRnc5r/4JW8/GGyO7nprYrvuOfLhf4SBaJd3P3OyxB64oy90PB29tc/\nhm1e\r\n=aoZl\r\n-----END PGP SIGNATURE-----\r\n"},"_from":".","_shasum":"1a7a11199093c878c05b3e790bbff68846718c0b","engines":{"node":">=6"},"gitHead":"ed02f7e5849ccfdd7ed64a230863af7249ccc37d","scripts":{"test":"mocha","pretest":"istanbul cover node_modules/mocha/bin/_mocha","posttest":"eslint ./index.js ./lib"},"_npmUser":{"name":"brianghig","email":"brianghig@gmail.com"},"repository":{"url":"git+https://github.com/asymmetrik/akin.git","type":"git"},"_npmVersion":"3.10.8","description":"Recommendation Engine based on Collaborative Filtering","directories":{},"_nodeVersion":"6.9.1","dependencies":{"lodash":"4.17","moment":"2.22","weighted-random-object":"1.0.6"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"3.1","eslint":"3.13","should":"11.1","istanbul":"0.4.5","mongoose":"4.x","mochawesome":"1.5","mocha-lcov-reporter":"0.0.2"},"peerDependencies":{"mongoose":"4.x"},"_npmOperationalInternal":{"tmp":"tmp/akin_0.2.1_1523889901069_0.9261083737034539","host":"s3://npm-registry-packages"}},"0.2.2":{"name":"@asymmetrik/akin","version":"0.2.2","author":{"name":"Asymmetrik Ltd."},"license":"MIT","_id":"@asymmetrik/akin@0.2.2","maintainers":[{"name":"amarcus","email":"amarcus@asymmetrik.com"},{"name":"brianghig","email":"brianghig@gmail.com"},{"name":"jyoung-asymmetrik","email":"jyoung@asymmetrik.com"},{"name":"mcurtis22","email":"mcurtis@asymmetrik.com"},{"name":"rblace","email":"ryan@asymmetrik.com"},{"name":"reblace","email":"rblace@asymmetrik.com"},{"name":"robert-w","email":"RWinter85@gmail.com"}],"contributors":[{"name":"Brian Ghigiarelli","email":"bghigiarelli@asymmetrik.com"}],"homepage":"https://github.com/asymmetrik/akin#readme","bugs":{"url":"https://github.com/asymmetrik/akin/issues"},"dist":{"shasum":"c19a790d081d1b054725b27c6ab53f46e686cc3c","tarball":"https://registry.npmjs.org/@asymmetrik/akin/-/akin-0.2.2.tgz","fileCount":18,"integrity":"sha512-AJtWvAxmylpfaETUTGzHe6QxDLGazMjM5U4nhR5kYiSlKSWNxRVeV3vF/guBqFsJJC2eCejI1O5ESz16EZgSvg==","signatures":[{"sig":"MEUCIAdLzp0KWeYbeNpwwN1EwiR01S40d3YRuyry7sqkvQdTAiEA7SDZwPJd5BLPeIDy/pug6oGy/NEFIr+27HFX8O+yXOQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":43330,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa1NJnCRA9TVsSAnZWagAAS9wQAJTqLrgTefcwr6mLzIco\nj79+XuKzoQMDCCZvsu9rip5Yb0QB7+IxYwnxOzqlXlBmTiDXJJhCy83t6ut7\n97O00kYSAZiwmcNSLjoOKp2szVtJc/Hja77ue8BGFONrAKo2XrhQVY70Vw9J\n3UPU099Rxg7MshirLJy6ZvvrnRP/nIlda0/9lnXODXzI3r8uEb1p0ef8kjPH\nyJq6b/lhhKWAn+EiTB16gzWFfch95wISXJU6aGRnW/bcSbtunTs+ZN1GvcXz\nsI4oQvV5LW54lWd0KG7mlpzwbyRJQovtEKyRDauT94Z7mJkdvZxG9lRXef+H\nkattUr1GD0iot38yo/rKUek8MB54qkfT3bDFw9/pM9tR9+MmXPbgh30hU/tt\naKXEEOWDmQXRPhMWpwZR7tC9cLC0Swjmi5JzEkC0D12vGyoUB2dex6qBFS9z\ng1p9hGassiVvNPJkifLCS6en5uLbBCl3pLxV0FvKXGxgPjpcx70PrO3fF7eT\ncjEHszqcJw8BW8Uwh0FHrKtTTAQ7wjmkc+tgNMMv1Ro0eMRf1wHd1ss6Uhgj\nSu3s3lT5rd+naDgSykPIFiU4KolGhsTPkhnv00fvQxDUq4/9br8RzJkSeGW8\nd7H2oqUjdf4WP5RtMgQRvIsumXbBl5r8FWImLkE0mQ6A2odXTfJqVpUU+mVL\nbwaR\r\n=aeP5\r\n-----END PGP SIGNATURE-----\r\n"},"_from":".","_shasum":"c19a790d081d1b054725b27c6ab53f46e686cc3c","engines":{"node":">=6"},"gitHead":"cce2d06a42c68015f5db533c0759277c7d144832","scripts":{"test":"mocha","pretest":"istanbul cover node_modules/mocha/bin/_mocha","posttest":"eslint ./index.js ./lib"},"_npmUser":{"name":"brianghig","email":"brianghig@gmail.com"},"repository":{"url":"git+https://github.com/asymmetrik/akin.git","type":"git"},"_npmVersion":"3.10.8","description":"Recommendation Engine based on Collaborative Filtering","directories":{},"_nodeVersion":"6.9.1","dependencies":{"lodash":"4.17","moment":"2.22","weighted-random-object":"1.0.6"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"3.1","eslint":"3.13","should":"11.1","istanbul":"0.4.5","mongoose":"4.x","mochawesome":"1.5","mocha-lcov-reporter":"0.0.2"},"peerDependencies":{"mongoose":"4.x"},"_npmOperationalInternal":{"tmp":"tmp/akin_0.2.2_1523896927519_0.5964968464856879","host":"s3://npm-registry-packages"}},"0.2.3":{"name":"@asymmetrik/akin","version":"0.2.3","author":{"name":"Asymmetrik Ltd."},"license":"MIT","_id":"@asymmetrik/akin@0.2.3","maintainers":[{"name":"amarcus","email":"amarcus@asymmetrik.com"},{"name":"brianghig","email":"brianghig@gmail.com"},{"name":"jyoung-asymmetrik","email":"jyoung@asymmetrik.com"},{"name":"mcurtis22","email":"mcurtis@asymmetrik.com"},{"name":"rblace","email":"ryan@asymmetrik.com"},{"name":"reblace","email":"rblace@asymmetrik.com"},{"name":"robert-w","email":"RWinter85@gmail.com"}],"contributors":[{"name":"Brian Ghigiarelli","email":"bghigiarelli@asymmetrik.com"}],"homepage":"https://github.com/asymmetrik/akin#readme","bugs":{"url":"https://github.com/asymmetrik/akin/issues"},"dist":{"shasum":"e0152dd2a5e4bffda277acef0e2ad78ee4ccde82","tarball":"https://registry.npmjs.org/@asymmetrik/akin/-/akin-0.2.3.tgz","fileCount":18,"integrity":"sha512-ICiC7R2fjVbsFN2Cpt3gtEcw7vTCTNxOExfDnpA+cnm6NtJ7XlRRzplg+B/LiJ1sronBeyOa2qnkVt5kCXJNGg==","signatures":[{"sig":"MEYCIQCaEpimo7q0K/iX8ATRvbSJFtftztu9uWT5fOJACw8HwQIhAPVH7l1NO1pFcU2Tr0y8ZoIQS3rTf28yK7hvWVOhC+8u","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":43765,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa16k+CRA9TVsSAnZWagAA3IgP/jrfH7q6yDuLydm/ImRO\njaH9LnlMd1cD/wymYahnIpeP8fDh6UuURam6fBFXl+e+oWDX2377pa9NM8Jm\n2N9L3v+09//N945U7bKpw5uYr7fa0K+RDvZT13vbxqp1g3mp37sNyVBwIkIA\n5czwjsypsxVGR8B+34bM2m7SNIc5siGLYUxift6NxpFGuxEPZHA8XP4GE/n9\nC7WENM6D2gGinIirQ12HUYNiVEHmTeYdxdRjYTAmBwn9DuUYUwmvOhUdFSJA\neqqJIhUNRzTWsnIuxUvxTOWseMU4LjxXTowsd+Mu3G9yBr7LQiuStqIx8GeM\nvcN9HnDyIxdlvR3EibmitS02GgHuK1SQ44jj/AfKWG32RWVFQBSOFU1RXkv/\nb/OSRb4jr4vdlImoOq8lhD/AEwOAv+cXZUwxlixfjd01us52Hjk400kzxjgS\nNLanWDKbcP29bcga9n/JoPjJuPbuUoxe99oGI37vnIDnqzvvU1+veT2a7TVh\nCyGLcaYa4m8duhVer+yxE3KfS5+MxoC5Y5sFbhMNJFi9xx5yKu03mktfKVF6\npElc3WQu1kYTenXlO5aCa8ZdeUKaDump6MIrb/u7PazyWIHHxRk1UsvgrbVm\nVE1wa4IsMclIKnqdmo1J5myeQuG1XPPzjLjoU5G0yc6A+/RfhsxT0uBj3Kg9\nHD8X\r\n=twXW\r\n-----END PGP SIGNATURE-----\r\n"},"_from":".","_shasum":"e0152dd2a5e4bffda277acef0e2ad78ee4ccde82","engines":{"node":">=6"},"gitHead":"347527da32fcb1c06b03ffb68e8ced607c6ce9ba","scripts":{"test":"mocha","pretest":"istanbul cover node_modules/mocha/bin/_mocha","posttest":"eslint ./index.js ./lib"},"_npmUser":{"name":"brianghig","email":"brianghig@gmail.com"},"repository":{"url":"git+https://github.com/asymmetrik/akin.git","type":"git"},"_npmVersion":"3.10.8","description":"Recommendation Engine based on Collaborative Filtering","directories":{},"_nodeVersion":"6.9.1","dependencies":{"lodash":"4.17","moment":"2.22","bluebird":"3.5","weighted-random-object":"1.0.6"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"3.1","eslint":"3.13","should":"11.1","istanbul":"0.4.5","mongoose":"4.x","mochawesome":"1.5","mocha-lcov-reporter":"0.0.2"},"peerDependencies":{"mongoose":"4.x"},"_npmOperationalInternal":{"tmp":"tmp/akin_0.2.3_1524083005780_0.6838530126216031","host":"s3://npm-registry-packages"}},"0.2.4":{"name":"@asymmetrik/akin","version":"0.2.4","author":{"name":"Asymmetrik Ltd."},"license":"MIT","_id":"@asymmetrik/akin@0.2.4","maintainers":[{"name":"amarcus","email":"amarcus@asymmetrik.com"},{"name":"brianghig","email":"brianghig@gmail.com"},{"name":"jyoung-asymmetrik","email":"jyoung@asymmetrik.com"},{"name":"mcurtis22","email":"mcurtis@asymmetrik.com"},{"name":"rblace","email":"ryan@asymmetrik.com"},{"name":"reblace","email":"rblace@asymmetrik.com"},{"name":"robert-w","email":"RWinter85@gmail.com"}],"contributors":[{"name":"Brian Ghigiarelli","email":"bghigiarelli@asymmetrik.com"}],"homepage":"https://github.com/asymmetrik/akin#readme","bugs":{"url":"https://github.com/asymmetrik/akin/issues"},"dist":{"shasum":"7c0df2a550c8993e937e3aa10cf1f909d383bc19","tarball":"https://registry.npmjs.org/@asymmetrik/akin/-/akin-0.2.4.tgz","fileCount":18,"integrity":"sha512-SGWX/genGOoQo+N94F9SyzXXNQDAzyea1FPEjlhCp1bGL4VgxVWuGQHTErnJihZtafZBKTKZ4ZKWMT5WzsZWqQ==","signatures":[{"sig":"MEYCIQD7phSMCJCQI1SFSR77gTxJqAm3cdOVX990v3SArYLOyAIhAJlt0xqa8pntH1dKSeyc6MFXxgfI3KPBz5hj6K1kmjVQ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":45885,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa5yLzCRA9TVsSAnZWagAAD1EP/ibC3HEclU0SKH0nerd3\np6Mzpqsm7HiQyIql1bPNJ+L9gD+Db3q3E762aXQJ7QCfxH29ZXktOYee2LhY\nT+pTgV84dkYjzC+3mndC3MbxAc4WXZhQnnDVTfsVnW3IZvesWeTaL4vTBwJH\nMfCM4piLmjEIyxJd73i8XVxb2raCr/YUhwDj2/vfJvrEioKGKM4NEMuhK+Ww\nLnzNrmvKGWRzUMly2j10ehPuns4CAvLDY1Bcc6S+Na/er8idctzUSRbCqYcb\nSHwSC06eSFnMU4jI1eNYJ9Qq55dM6FONRtL9KnU0M+ntlBEcQwsc3ubH/OP5\n7FqZjfBxJztLX06cG2oo0SZ2F4i4iR6osHqCrHXAS+UDONIQ8ctBLxILeo53\nuQDed9k/j0i/g7p2VoN8m5Cs5SqGHlxNDbaHY71Osnbe9egNuqoqfqfK11LA\njinpG+K/hHodIVYS9xel8OGkxdlRau6QbZEbisTIOBROiO5CYc/dcgkfm9nu\nQs/e2PoJ1HKRwr9iGhpk9px1OqeCxPBdTRYR7zkecNec2AaUvKz3fT3yJ8QJ\nNdtcXQMiNaCAqwuJPE9jieqHJwMohHgTH8L/y3NnR0XkreRs5aYWnSc68FzC\nS2Cx8XfatU6WFalTZ3d+nK68Bthqn/k0B18K72Z7fgEeZ4Gq/SYXW7Q2Av4Y\n+Ubr\r\n=LAkL\r\n-----END PGP SIGNATURE-----\r\n"},"_from":".","_shasum":"7c0df2a550c8993e937e3aa10cf1f909d383bc19","engines":{"node":">=6"},"gitHead":"851be989491b9fdf1568f27910059388431f7217","scripts":{"test":"mocha","pretest":"istanbul cover node_modules/mocha/bin/_mocha","posttest":"eslint ./index.js ./lib"},"_npmUser":{"name":"brianghig","email":"brianghig@gmail.com"},"repository":{"url":"git+https://github.com/asymmetrik/akin.git","type":"git"},"_npmVersion":"3.10.8","description":"Recommendation Engine based on Collaborative Filtering","directories":{},"_nodeVersion":"6.9.1","dependencies":{"lodash":"4.17","moment":"2.22","bluebird":"3.5","weighted-random-object":"1.0.6"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"3.1","eslint":"3.13","should":"11.1","istanbul":"0.4.5","mongoose":"4.x","mochawesome":"1.5","mocha-lcov-reporter":"0.0.2"},"peerDependencies":{"mongoose":"4.x"},"_npmOperationalInternal":{"tmp":"tmp/akin_0.2.4_1525097202314_0.9001511328795007","host":"s3://npm-registry-packages"}}},"time":{"created":"2018-04-16T14:22:59.899Z","modified":"2026-03-13T16:28:31.767Z","0.2.0":"2018-04-16T14:23:00.150Z","0.2.1":"2018-04-16T14:45:01.179Z","0.2.2":"2018-04-16T16:42:07.667Z","0.2.3":"2018-04-18T20:23:25.880Z","0.2.4":"2018-04-30T14:06:42.411Z"},"bugs":{"url":"https://github.com/asymmetrik/akin/issues"},"author":{"name":"Asymmetrik Ltd."},"license":"MIT","homepage":"https://github.com/asymmetrik/akin#readme","repository":{"url":"git+https://github.com/asymmetrik/akin.git","type":"git"},"description":"Recommendation Engine based on Collaborative Filtering","contributors":[{"name":"Brian Ghigiarelli","email":"bghigiarelli@asymmetrik.com"}],"maintainers":[{"email":"ryan.blace@bluehalo.com","name":"rblace"},{"email":"reblace@gmail.com","name":"reblace"},{"email":"ekoon@asymmetrik.com","name":"ekoon121"},{"email":"amarcus@asymmetrik.com","name":"amarcus"},{"email":"soneill@asymmetrik.com","name":"soneill"}],"readme":"# @asymmetrik/akin\n\n[![Build Status](https://travis-ci.org/Asymmetrik/akin.svg?branch=master)](https://travis-ci.org/Asymmetrik/akin)\n[![Code Climate](https://codeclimate.com/github/Asymmetrik/akin/badges/gpa.svg)](https://codeclimate.com/github/Asymmetrik/akin)\n[![Test Coverage](https://codeclimate.com/github/Asymmetrik/akin/badges/coverage.svg)](https://codeclimate.com/github/Asymmetrik/akin/coverage)\n[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)\n\n> Recommendation Engine Library based on Collaborative Filtering. Node.js implementation using MongoDB via Mongoose.\n\n> Provides hooks for logging user activity on items referenced by an ObjectID and an optional item type. Additional methods provide execution of a scalable, collaborative filtering algorithm that outputs recommendation results for each user into a namespaced Mongo collections. These results can then be retrieved and integrated into the application as desired.\n\n## Table of Contents\n\n- [Install](#install)\n- [Usage](#usage)\n- [API](#api)\n- [Contribute](#contribute)\n- [License](#license)\n\n## Install\n\nInclude this module as a dependency of your application in the `package.json` file. It also requires that MongooseJS is available as a peer dependency. For example:\n```\n{\n  ...\n  dependencies: {\n    \"mongoose\": \"~4.6\",\n    \"@asymmetrik/akin\": \"latest\"\n  }\n  ...\n}\n```\n\n## Usage\n\nInclude the module via `require` wherever applicable:\n```\nvar akin = require('@asymmetrik/akin');\n```\n\nThe most fundamental use case of logging user activity, running the engine, and retrieving recommendations for a user is achieved via:\n```\nakin.activity.log(userId, itemId, { type: 'itemType' }, 'action');\n...\nakin.run();\n...\nakin.recommendation.getAllRecommendationsForUser(userId);\n```\n\nThere are four classes that allow for managing activity logs and recalculating recommendations at a more granular level:\n### akin.model\nManages query execution for schemas\n\n### akin.activity\n1. Manage (add or remove) a user's activity for any item.\n1. Calculates the first phase of the recommendation engine: user's weighted scores on items\n\n### akin.similarity\n1. Calculates the second phase of the recommendation engine: user's similarity to other users\n\n### akin.recommendation\n1. Calculates the third and final phase of the recommendation engine: collaborative filtering to generate recommendations\n1. Allows for retrieval of all or a weighted random sample of recommendations\n1. Marking items as `do not recommend` for a user to stop them from returning in the sampling query\n\n## API\n\n### recalculate all recommendations\nExecute the recommendation engine based on the data supplied to the activity.log() API\n> akin.run();\n\n### activity\nAdd a user's activity on an item\n> akin.activity.log(userId, itemId, { type: 'itemType' }, 'actionType');\n\nRemove a user's activity on an item\n> akin.activity.removeLog(userId, itemId, 'actionType');\n\n### retrieve recommendations\nGet all recommendations created for a user\n> akin.recommendation.getAllRecommendationsForUser(userId);\n\nGet a sampling of recommendations created for a user based on a weighted cumulative distribution function\n> akin.recommendation.sampleRecommendationsForUser(userId, numberOfSamples);\n\n## Contribute\n\nPRs accepted.\n\nSmall note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification.\n\n## License\n\n`@asymmetrik/akin` is [MIT licensed](./LICENSE).\n","readmeFilename":"README.md"}