{"_id":"@competitionlabs/leaderboard","_rev":"54-286b98f4a96c291c9742584312b2b5d0","name":"@competitionlabs/leaderboard","dist-tags":{"latest":"3.0.5"},"versions":{"3.0.1":{"name":"@competitionlabs/leaderboard","version":"3.0.1","author":{"name":"COMPETITION LABS LTD"},"license":"ISC","_id":"@competitionlabs/leaderboard@3.0.1","maintainers":[{"name":"kholodar","email":"kholodar.stas@gmail.com"},{"name":"alexbernotas","email":"bernotasalex@gmail.com"}],"dist":{"shasum":"909c0be70de4063837ea784b3c2aef503a9f7c37","tarball":"https://registry.npmjs.org/@competitionlabs/leaderboard/-/leaderboard-3.0.1.tgz","fileCount":105,"integrity":"sha512-eOE8h2sNo5q1dmsER8W5CrT4jtgAsDUurGtBM1M1y2t7T0HndCupZMKuZrB2HXue2WBvVCFWQjKgh2GYTpA2BQ==","signatures":[{"sig":"MEYCIQDI7CpdKaNA6jSQ1LyaSE2XW+Dg0K200UVHyIbWH5U4ZwIhAJQJiL9Ryo6lLXG0IWORWA0dpH2EOTG4+NFCFG8HnO13","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1131483,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfK87QCRA9TVsSAnZWagAA46UP/Rrp1ul9Rle37/o4NNXA\nL5RiGHxcLivqs0sw6YQI073JmhvKaNS9XOPvXvKb50bqStaaCwDRQTk+QYtq\n0SW1ZSeQqxnQ173PYomyjznL84X6svTjnzuOBi0RlKmV8bGUILX0oKxWUQFe\nNONsu2P2L73ol+/zoy3slKxhhFSgYzU6WWG30EILP2ZXp84C6kZtENN+tvTT\no5Fe9M/eEJqAbdKSKMskN4BbO1BfuaJn9Y0ZfXOuMhPqOZsqwQw0HHQWayLo\nIvM4f4BSsKD+JGsnnIayUvYVtOqMR5lPiLTLrQoRb2qqkqkMwT9OzdCoNzCK\n5xo5eYgx+5En42X0LyMRPbUTbWiwcv3UW0rQRFEIfq7ZhNojU7EWJnmHcC/i\nZYuCpuTc6TreVBAALFor3ZD+FyyxaK7sqlQ2TOA4DHQoJLTHhYoTFnRiis8/\nkYwG9fujNwVe8aL8TGqJmlZfbnkzD61jvzM8BV8mL5SLVG9IuX1++a7oIuE3\nATVqJ9yNv3DALgHjj7mHw4o4SgaiGyXtBzDFCKiWGWzIX60nlWKcxdfuJNuE\nfVtbKN7FhRGfuFeCRazGQL5mXi0qfocfoZFH/Ucv9mObDFW+57OuimvRy1HV\nhdTKP0BcswuFGsb/Nni3xoHcEOrK5t6f5iswE8SIekVePXZObUDTihUvQ9ML\ndj4m\r\n=rWKW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/javascript/leaderboard.v3.js","style":"build/css/style.css","scripts":{"dev":"cross-env --env.LANG=en webpack-dev-server --config ./webpack/webpack.config.js --progress","lint":"eslint ./src","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env --env.LANG=en webpack --config ./webpack/webpack.config.js --env.production --progress","example":"webpack-dev-server --open --port 9000 --contentBase ../ --open-page /examples/leaderboard_v3.html"},"_npmUser":{"name":"kholodar","email":"kholodar.stas@gmail.com"},"repository":{"url":"https://github.com/competitionlabs/widgets/tree/master/leaderboard_v3","type":"git"},"_npmVersion":"6.14.4","description":"Leaderboard Widgets","directories":{},"_nodeVersion":"12.16.3","dependencies":{"jssha":"^3.1.0","moment":"2.24.0","identicon.js":"^2.3.3"},"_hasShrinkwrap":false,"devDependencies":{"nan":"^2.14.1","sass":"^1.26.10","eslint":"^7.2.0","webpack":"^4.43.0","cross-env":"^7.0.2","@babel/core":"^7.10.5","file-loader":"^6.0.0","sass-loader":"^9.0.2","webpack-cli":"^3.3.12","babel-loader":"^8.1.0","eslint-loader":"^4.0.2","@babel/preset-env":"^7.10.4","eslint-plugin-node":"^11.1.0","webpack-dev-server":"^3.11.0","copy-webpack-plugin":"^6.0.3","eslint-plugin-import":"^2.22.0","eslint-plugin-promise":"^4.2.1","eslint-config-standard":"^14.1.1","eslint-plugin-standard":"^4.0.1","webpack-bundle-analyzer":"^3.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leaderboard_3.0.1_1596706512177_0.050881508801485564","host":"s3://npm-registry-packages"}},"3.0.2":{"name":"@competitionlabs/leaderboard","version":"3.0.2","author":{"name":"COMPETITION LABS LTD"},"license":"ISC","_id":"@competitionlabs/leaderboard@3.0.2","maintainers":[{"name":"alexbernotas","email":"bernotasalex@gmail.com"},{"name":"kholodar","email":"kholodar.stas@gmail.com"}],"dist":{"shasum":"7a87afe6366310201686f04a7f79bfa111f2fa21","tarball":"https://registry.npmjs.org/@competitionlabs/leaderboard/-/leaderboard-3.0.2.tgz","fileCount":111,"integrity":"sha512-pEWbHv5+H2EJFwoPkZuwcFJ3CLWO7PgKvqcDndxZ8LZuWl8Fy4k27XBTeH9VrNIWi8Ya8R9lhOKkUf7rKkkzDg==","signatures":[{"sig":"MEUCIQDPq/nUzTJU5zkBQuvkksY5xPZp/f9r5iWGORwEnloupAIgEqRVJDTJGBggwd7W+iDv7M5aoNib2T6/aG/0/Wz1o88=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1203578,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfMcPNCRA9TVsSAnZWagAA7sgP/0/6NSqHxe+Ys4UdOpKH\nWPAs8u9xqwW+XV4G43BRcmDtjGVBYV0eRFFUqnrtOzeASpEV/VVjaya5ifB6\nzCHg+xT78kls4LIdWc6xKA3SNlUzM17R2u5s9tg5TamW7vpEb5f3vcK0cvcf\nwLh5sk8YCnvmksuOOSi6qXikRRF7g0e+scEDdq/lMKnWVNQWvH0SigcZKKMw\nKANgVNPUnx4tAY2JDX3I8amsPYVYbqcoqKiKGqQLIfFu1PnQ3PTk9wFbgwL+\nqyfK7Gpy+JgVjEJ+yoI7yRFHEt4/D7j7NKfZmTSUSwARtsxJdwpIN6a4cao8\nLefvaZ3frOM/PTkg+faoKHG7ymR1NOgYQ1/LElRhqd66QwPPz4Q5WPf0eC1h\nvcq+BcF1e4/VdcUSXtfCdGWyZaC4lxz+1hQQi8oDTuKfiXjvTYQRKvioOp+u\nnCDt43ttta1DwEa1/Gc3+B/JeQH5dQmolxHfFmsqvUnCidcEYafw0mvbpAWK\nT9tDpxa0VW4vXxhBjTepcl6DXyMTOdgfJ1Hl1pd7Nv1tjt/is3ZQNamJ0sIn\nr7N49Sjow9m+XCoPoc41L0LZ06dqQ+b+TYysdG0oSrCrt57miD0MX0NnlNf3\nMgHD+rRFW35ewl92reGRKzzoyeDY6JWIrDcHpy/6a1unKEv9XeLzUJxoxWpb\n+kZN\r\n=3SnU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/javascript/leaderboard.v3.js","style":"build/css/style.css","scripts":{"dev":"cross-env --env.LANG=en webpack-dev-server --config ./webpack/webpack.config.js --progress","lint":"eslint ./src","test":"jest --coverage","build":"cross-env --env.LANG=en webpack --config ./webpack/webpack.config.js --env.production --progress","example":"webpack-dev-server --open --port 9001 --contentBase ../ --open-page /examples/leaderboard_v3.html","test:watch":"jest --coverage --watch","example:loader":"webpack-dev-server --open --port 9001 --contentBase ../ --open-page /examples/leaderboard_v3_loader.html"},"_npmUser":{"name":"kholodar","email":"kholodar.stas@gmail.com"},"repository":{"url":"https://github.com/competitionlabs/widgets/tree/master/leaderboard_v3","type":"git"},"_npmVersion":"6.14.4","description":"Leaderboard Widgets","directories":{},"_nodeVersion":"12.16.3","dependencies":{"jssha":"^3.1.0","moment":"2.24.0","identicon.js":"^2.3.3","css-vars-ponyfill":"^2.3.2"},"_hasShrinkwrap":false,"devDependencies":{"nan":"^2.14.1","jest":"^26.3.0","sass":"^1.26.10","eslint":"^7.2.0","webpack":"^4.43.0","cross-env":"^7.0.2","babel-jest":"^26.3.0","@babel/core":"^7.10.5","file-loader":"^6.0.0","sass-loader":"^9.0.2","webpack-cli":"^3.3.12","babel-loader":"^8.1.0","eslint-loader":"^4.0.2","@babel/preset-env":"^7.10.4","eslint-plugin-node":"^11.1.0","webpack-dev-server":"^3.11.0","copy-webpack-plugin":"^6.0.3","eslint-plugin-import":"^2.22.0","eslint-plugin-promise":"^4.2.1","eslint-config-standard":"^14.1.1","eslint-plugin-standard":"^4.0.1","webpack-bundle-analyzer":"^3.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leaderboard_3.0.2_1597096908573_0.01722631591242374","host":"s3://npm-registry-packages"}},"3.0.4":{"name":"@competitionlabs/leaderboard","version":"3.0.4","author":{"name":"COMPETITION LABS LTD"},"license":"ISC","_id":"@competitionlabs/leaderboard@3.0.4","maintainers":[{"name":"alexbernotas","email":"bernotasalex@gmail.com"},{"name":"kholodar","email":"kholodar.stas@gmail.com"}],"dist":{"shasum":"a97621b46e3d116af2f844f9cc74ebc42f7a8426","tarball":"https://registry.npmjs.org/@competitionlabs/leaderboard/-/leaderboard-3.0.4.tgz","fileCount":175,"integrity":"sha512-PxCAzMURC+PEMncARK3LuVfn9gWDEdl1n3YtBuaa8HZK0HGza0h19XMnE18yh9QnZ2wys87SJzW+ElQVKYHX7Q==","signatures":[{"sig":"MEUCIGWXwIv3NXq5Vcy8TNMjXKBAmU66MpolghKKLqc6sNunAiEA4813B2NXYHpuH7qlOwTZEwRYBBw0YyLVO1u0nvbZAos=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2784270,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfNpfICRA9TVsSAnZWagAAKyUP/15fTc1G128OdR8zOGXm\nZww4keK/IQwwnlca7cCL8IHUfrYZie+aqYjh33gQwlcP7hYegDLv+kdxt7GS\nAQfx3KaCZ70Gyhiq2KcqKK7INbnLLOdM4cK/WkFcEbSjlit1Hq7R4i+9qZCl\nY/vjkSX/3jQhJUNcV5MnuPanUiw4I1GCxHEXBXCFjeqzg4Z0L8a39CK/puns\n7DMs/TrCF07ksVSefSn9dYaWHIsAMKvrFR8kPaO2CpkBtjRmoU2muPEBf1b3\n6slcgtm4kSgatG9Wxc52ZouO6SSdwjNYzYmLFxIlnn829+JZIRbpery28SFg\nXHTO9exaJXNjVvBZWFu0x2pD0NYoSbeou5d29pRO0GqXTVqqvd13s2820o0j\nRl4FkBovmHWsIju43TsWR0amYdLY/VU7JJLwzO0EvwMgoKldE457hOiemhiM\nmhC4LXUYDB0B5cZIJd16lhNoIUKllkrZ1SzxcHtweyI7OeF2VOtHaZHCMErI\ndj21Ccz7X/ql1liuE8WlQLJlvJk7tydZjqHuq3hHa6OAHQOvLoqFwaVj7Guc\nE6ZyzwsBCyDx1HWA6gfzy8Bg3yH69ABJ5N0WGzDoaqZpG8ieIMryHnvq2zJa\n8MUUilMHZFOTYzXubAeYXpqmca9OK8casf+xTKmXfFC6WmoSni0wH0qXdOQg\n40DP\r\n=/5wG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/javascript/leaderboard.v3.js","style":"build/css/style.css","scripts":{"dev":"cross-env env.LANG=en webpack-dev-server --config ./webpack/webpack.config.js --progress","lint":"eslint ./src","test":"jest --coverage","build":"rimraf build && cross-env --env.LANG=en webpack --config ./webpack/webpack.config.js --env.production --progress","jsdoc":"rimraf docs && jsdoc -c jsdoc.json","example":"webpack-dev-server --open --port 9001 --contentBase ../ --open-page /examples/leaderboard_v3.html","jsdoc:open":"webpack-dev-server --open --port 9003 --contentBase ./docs","test:watch":"jest --coverage --watch","example:npm":"webpack-dev-server --open --port 9001 --contentBase ../ --open-page /examples/leaderboard_v3_npm/dist/","test:coverage":"webpack-dev-server --open --port 9002 --contentBase ./coverage/lcov-report","example:loader":"webpack-dev-server --open --port 9001 --contentBase ../ --open-page /examples/leaderboard_v3_loader.html","build:inline-css":"rimraf build && cross-env --env.LANG=en env.INLINE_CSS=true webpack --config ./webpack/webpack.config.js --env.production --progress","example:customized":"webpack-dev-server --open --port 9001 --contentBase ../ --open-page /examples/leaderboard_v3_customized.html","example:inline-css":"webpack-dev-server --open --port 9001 --contentBase ../ --open-page /examples/leaderboard_v3_inline_css.html"},"_npmUser":{"name":"kholodar","email":"kholodar.stas@gmail.com"},"repository":{"url":"https://github.com/competitionlabs/widgets/tree/master/leaderboard_v3","type":"git"},"_npmVersion":"6.14.4","description":"Leaderboard Widgets","directories":{},"_nodeVersion":"12.16.3","dependencies":{"jssha":"^3.1.0","moment":"2.24.0","identicon.js":"^2.3.3","css-vars-ponyfill":"^2.3.2"},"_hasShrinkwrap":false,"devDependencies":{"nan":"^2.14.1","jest":"^26.3.0","sass":"^1.26.10","jsdoc":"^3.6.5","eslint":"^7.2.0","docdash":"^1.2.0","webpack":"^4.43.0","cross-env":"^7.0.2","babel-jest":"^26.3.0","css-loader":"^4.2.1","url-loader":"^4.1.0","@babel/core":"^7.10.5","file-loader":"^6.0.0","sass-loader":"^9.0.2","webpack-cli":"^3.3.12","babel-loader":"^8.1.0","style-loader":"^1.2.1","eslint-loader":"^4.0.2","svg-url-loader":"^6.0.0","@babel/preset-env":"^7.10.4","eslint-plugin-node":"^11.1.0","webpack-dev-server":"^3.11.0","copy-webpack-plugin":"^6.0.3","eslint-plugin-import":"^2.22.0","eslint-plugin-promise":"^4.2.1","eslint-config-standard":"^14.1.1","eslint-plugin-standard":"^4.0.1","webpack-bundle-analyzer":"^3.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leaderboard_3.0.4_1597413320109_0.4417594764570252","host":"s3://npm-registry-packages"}},"3.0.5":{"name":"@competitionlabs/leaderboard","version":"3.0.5","author":{"name":"COMPETITION LABS LTD"},"license":"ISC","_id":"@competitionlabs/leaderboard@3.0.5","maintainers":[{"name":"jsteinwender","email":"julian.steinwender@gmail.com"},{"name":"s-koval","email":"s.sergeykoval@gmail.com"},{"name":"competitionlabs-builder","email":"npmjs.jenkins@competitionlabs.com"},{"name":"margaritabernotaite","email":"margarita@competitionlabs.com"},{"name":"nikhat","email":"nikhat@competitionlabs.com"},{"name":"rahul-patadia","email":"ronly2008@gmail.com"},{"name":"vossie.org","email":"carel.vosloo@bronzegate.com"},{"name":"kholodar","email":"kholodar.stas@gmail.com"},{"name":"alexbernotas","email":"bernotasalex@gmail.com"}],"dist":{"shasum":"9bfb7ae1b465e553a79e39e5d6c62a8ebaf2ff37","tarball":"https://registry.npmjs.org/@competitionlabs/leaderboard/-/leaderboard-3.0.5.tgz","fileCount":238,"integrity":"sha512-53ikoxBG74ezTIugSLKeEmTHHi5ZhhuMeeMeQqVeveKQK4ff6aAwLvIu9GMbETMaUl2oX1dc/79f2YDMcoTzOg==","signatures":[{"sig":"MEQCIEgznfeS+FjjP9j6rHZLRZMKUkW3hL7wBCAJbyNpfJJSAiB1Uf7QVC64zz7f0seQUJZpe+3w83KYLyLp6OwLbwm36w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10650525,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJflq5NCRA9TVsSAnZWagAAahcQAIVX0ADYM12ZrxUG36nm\nWyYs59CtpbGPtbKLfpWddGubr2Ws+1XBckGUkO3/aOBYgXlYhiOfGZHwYFiK\nyxEVDobEewaEWqb0E9Dp3nStVloK86e4kBXRqc8+JyvZ11///eXaFbjD3Gc5\npSOBzZGC+YWVRmF/cP25YAKP+HdyjY+/HP05zIoc2fx+w15RCjS6EaqYOhBz\nKav+KmEoEf+ilu2dHkQVfJDQj7ZeJtt66g8TyM/DBZs+UvJ4eu3c6REQ74XU\nmJW8rUHRv1Tl1/k7HRX4wFgjeIl0svjdevVFd3s52jW7HoRCGbU4zf26dsOY\n1rMJrryQj0cbNr77dc1lSPJ+To86aGN22LcT78Ax7AH8WCPQmM7ClrlMJ01U\nNRCbLxdI/34shGahUFF030OJHkdlFf0r4PYxX/o2n0YvyaRzM5CUIs7OW1hb\nisJFGlSTtIzEc50pIZuqaSYvIRfgEhoYxhTtMiknC5jxgVTvAMF2Ymc5dRBB\noR9CQ968C3K6LfXiZ5v9ab7PTRscFgKNB+2w/aPkOwieqkH8eBDYIPofD6x7\nYYFaaVVHHtMIo4sWuvbLLj4JeiFKP2qmfcsEY2dKPeuSB74GU80fXffpHGJJ\n9E2z1+0ApT2KmstEc5bYSYIAPgZ/Floidt1nvanKOSazpTSjZhePMmfNTcEH\nh7YJ\r\n=hR7t\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/javascript/leaderboard.v3.js","style":"build/css/style.css","scripts":{"dev":"cross-env --env.LANG=en --env.production=dev --env.THEME=default-theme webpack-dev-server --config ./webpack/webpack.config.js --progress","lint":"eslint ./src","test":"jest --coverage","build":"rimraf build && cross-env --env.LANG=en --env.production=prod --env.THEME=default-theme webpack --config ./webpack/webpack.config.js --progress","jsdoc":"rimraf docs && jsdoc -c jsdoc.json","example":"webpack-dev-server --open --port 9001 --contentBase ../ --open-page /examples/leaderboard_v3.html","jsdoc:open":"webpack-dev-server --open --port 9003 --contentBase ./docs","test:watch":"jest --coverage --watch","example:npm":"webpack-dev-server --open --port 9001 --contentBase ../ --open-page /examples/leaderboard_v3_npm/dist/","dev:red-theme":"cross-env --env.LANG=en --env.production=dev --env.THEME=red-theme webpack-dev-server --config ./webpack/webpack.config.js --progress","test:coverage":"webpack-dev-server --open --port 9002 --contentBase ./coverage/lcov-report","dev:blue-theme":"cross-env --env.LANG=en --env.production=dev --env.THEME=blue-theme webpack-dev-server --config ./webpack/webpack.config.js --progress","dev:dark-theme":"cross-env --env.LANG=en --env.production=dev --env.THEME=dark-theme webpack-dev-server --config ./webpack/webpack.config.js --progress","dev:grey-theme":"cross-env --env.LANG=en --env.production=dev --env.THEME=grey-theme webpack-dev-server --config ./webpack/webpack.config.js --progress","example:loader":"webpack-dev-server --open --port 9001 --contentBase ../ --open-page /examples/leaderboard_v3_loader.html","build:red-theme":"rimraf build && cross-env --env.LANG=en --env.production=prod --env.THEME=red-theme webpack --config ./webpack/webpack.config.js --progress","dev:black-theme":"cross-env --env.LANG=en --env.production=dev --env.THEME=black-theme webpack-dev-server --config ./webpack/webpack.config.js --progress","dev:green-theme":"cross-env --env.LANG=en --env.production=dev --env.THEME=green-theme webpack-dev-server --config ./webpack/webpack.config.js --progress","build:blue-theme":"rimraf build && cross-env --env.LANG=en --env.production=prod --env.THEME=blue-theme webpack --config ./webpack/webpack.config.js --progress","build:dark-theme":"rimraf build && cross-env --env.LANG=en --env.production=prod --env.THEME=dark-theme webpack --config ./webpack/webpack.config.js --progress","build:grey-theme":"rimraf build && cross-env --env.LANG=en --env.production=prod --env.THEME=grey-theme webpack --config ./webpack/webpack.config.js --progress","build:inline-css":"rimraf build && cross-env --env.LANG=en env.INLINE_CSS=true --env.THEME=default-theme --env.production=prod webpack --config ./webpack/webpack.config.js --progress","dev:orange-theme":"cross-env --env.LANG=en --env.production=dev --env.THEME=orange-theme webpack-dev-server --config ./webpack/webpack.config.js --progress","build:black-theme":"rimraf build && cross-env --env.LANG=en --env.production=prod --env.THEME=black-theme webpack --config ./webpack/webpack.config.js --progress","build:green-theme":"rimraf build && cross-env --env.LANG=en --env.production=prod --env.THEME=green-theme webpack --config ./webpack/webpack.config.js --progress","build:orange-theme":"rimraf build && cross-env --env.LANG=en --env.production=prod --env.THEME=orange-theme webpack --config ./webpack/webpack.config.js --progress","example:customized":"webpack-dev-server --open --port 9001 --contentBase ../ --open-page /examples/leaderboard_v3_customized.html","example:inline-css":"webpack-dev-server --open --port 9001 --contentBase ../ --open-page /examples/leaderboard_v3_inline_css.html"},"_npmUser":{"name":"alexbernotas","email":"bernotasalex@gmail.com"},"repository":{"url":"https://github.com/competitionlabs/widgets/tree/master/leaderboard_v3","type":"git"},"_npmVersion":"6.14.2","description":"Leaderboard Widgets","directories":{},"_nodeVersion":"13.8.0","dependencies":{"jssha":"^3.1.0","moment":"2.24.0","node-forge":"^0.10.0","identicon.js":"^2.3.3","css-vars-ponyfill":"^2.3.2"},"_hasShrinkwrap":false,"devDependencies":{"nan":"^2.14.1","jest":"^26.3.0","sass":"^1.26.10","jsdoc":"^3.6.5","eslint":"^7.2.0","docdash":"^1.2.0","webpack":"^4.43.0","cross-env":"^7.0.2","babel-jest":"^26.3.0","css-loader":"^4.2.1","url-loader":"^4.1.0","@babel/core":"^7.10.5","file-loader":"^6.0.0","sass-loader":"^9.0.2","webpack-cli":"^3.3.12","babel-loader":"^8.1.0","style-loader":"^1.2.1","eslint-loader":"^4.0.2","svg-url-loader":"^6.0.0","@babel/preset-env":"^7.10.4","eslint-plugin-node":"^11.1.0","webpack-dev-server":"^3.11.0","copy-webpack-plugin":"^6.0.3","eslint-plugin-import":"^2.22.0","eslint-plugin-promise":"^4.2.1","eslint-config-standard":"^14.1.1","eslint-plugin-standard":"^4.0.1","webpack-bundle-analyzer":"^3.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leaderboard_3.0.5_1603710540574_0.33114747080699125","host":"s3://npm-registry-packages"}}},"time":{"created":"2020-08-06T09:35:11.919Z","modified":"2026-09-15T09:10:48.858Z","3.0.1":"2020-08-06T09:35:12.314Z","3.0.2":"2020-08-10T22:01:48.751Z","3.0.4":"2020-08-14T13:55:20.369Z","3.0.5":"2020-10-26T11:09:00.867Z"},"author":{"name":"COMPETITION LABS LTD"},"license":"ISC","repository":{"url":"https://github.com/competitionlabs/widgets/tree/master/leaderboard_v3","type":"git"},"description":"Leaderboard Widgets","maintainers":[{"email":"bernotasalex@gmail.com","name":"alexbernotas"},{"email":"nathan.g@gamify.mt","name":"kenshn"},{"email":"margarita@competitionlabs.com","name":"margaritabernotaite"},{"email":"ihor.l@gamify.mt","name":"gamifyihor.l"},{"email":"victor.m@gamify.mt","name":"victor.mazeli"},{"email":"ivan.c@gamify.mt","name":"ivancl"},{"email":"razvan.b@gamify.mt","name":"razvanelul95"}],"readme":"<p align=\"center\">\n    <img width=\"600\" src=\"https://www.competitionlabs.com/wp-content/uploads/2020/01/Logo-v4.svg\"><br/>\n</p>\n\n# Leaderboard Widgets V3\n\nHTML/CSS and Vanilla JavaScript Competition Labs Leaderboard / Achievements / Inbox-Messaging widget\n\n<p align=\"center\">\n    <img width=\"300\" src=\"https://s3-eu-west-1.amazonaws.com/demo.competitionlabs.com/_widgets/mini-scoreboard-animation.gif\"><br/>\n</p>\n\nOur widget \"out of the box\" is a product that you can use immediately by placing it on your existing game, on your website or include it into your Node project directly or anything that you need it to be used for. The widget is fully editable, re-adjustable, multilingual (all languages are supported), units of measure are also auto-generated by the system (all the currencies are pre defined in your private space) and it is a complementary product that gives the player a full in-depth gaming experience. All you have to do is:\n\n[Read more here](https://complabs.atlassian.net/wiki/spaces/CLRAV/pages/842301445/The+Widget)\n\n## Installation\n\nThe Leaderboard Widget package lives in [npm](https://www.npmjs.com/get-npm). To install the latest stable version, run the following command:\n\n```sh\nnpm install @competitionlabs/leaderboard\n```\n\nOr if you're using [yarn](https://classic.yarnpkg.com/en/docs/install/):\n\n```sh\nyarn add @competitionlabs/leaderboard\n```\n\n## Contributing\n\n#### Prerequisites\n\n- NodeJS >= 10.10\n- NPM >= 6.x\n\n#### Build\n\nGo to the `leaderboard_v3` directory and install the dependencies.\n\n```sh\nnpm install\n```\n\nRun `npm run build` in the `leaderboard_v3` directory to generate production files inside `build`.\n\n```sh\nnpm run build\n```\n\nYou can include css file into the bundle by running `npm run build:inline-css`\n\n```sh\nnpm run build:inline-css\n```\n\nOr run `npm run dev` to build widget in development mode.\n\n```sh\nnpm run dev\n```\n\n#### Coding standards\n\nCode formatting rules are defined in `.eslintrc`. You can check your code against these standards by running:\n\n```sh\nnpm run lint\n```\n\nTo automatically fix any style violations in your code, you can run:\n\n```sh\nnpm run lint -- --fix\n```\n\n#### Running tests\n\nYou can run the test suite using the following command:\n\n```sh\nnpm run test\n```\n\nRun `npm run test:coverage` to open coverage report\n\n```sh\nnpm run test:coverage\n```\n\nPlease ensure that the tests are passing when submitting a pull request.\n\n#### Example\n\nRun `npm run example` to open the example page.\n\n```sh\nnpm run example\n```\n\n#### Documentation\n\nYou can generate documentation by running:\n\n```sh\nnpm run jsdoc\n```\n\n\n## Different themes\n\nThere are a few themes to choose from (or create your own):\n\nBuild default theme:\n```shell script\nnpm run dev\n```\nBuild dark theme:\n```shell script\nnpm run dev:dark-theme\n```\nBuild blue theme:\n```shell script\nnpm run dev:blue-theme\n```\nBuild green theme:\n```shell script\nnpm run dev:green-theme\n```\nBuild grey theme:\n```shell script\nnpm run dev:grey-theme\n```\nBuild red theme:\n```shell script\nnpm run dev:red-theme\n```\nBuild orange theme:\n```shell script\nnpm run dev:orange-theme\n```\nBuild black theme:\n```shell script\nnpm run dev:black-theme\n```\n\n## Examples\n* [Live Default Theme laoding examples](https://s3-eu-west-1.amazonaws.com/demo.competitionlabs.com/_widgets/examples/leaderboard_v3-default-theme.html)\n* [Live Dark Theme laoding examples](https://s3-eu-west-1.amazonaws.com/demo.competitionlabs.com/_widgets/examples/leaderboard_v3-dark-theme.html)\n* [Live loader script examples](https://s3-eu-west-1.amazonaws.com/demo.competitionlabs.com/_widgets/examples/leaderboard_v3_loader.html)\n\n\n<table style=\"border:none;\">\n    <tr>\n        <td>\n            <img width=\"250\" src=\"https://s3-eu-west-1.amazonaws.com/demo.competitionlabs.com/_widgets/3.png\" />\n        </td>\n        <td>\n            <img width=\"214\" src=\"https://s3-eu-west-1.amazonaws.com/demo.competitionlabs.com/_widgets/2.png\" />\n        </td>\n        <td>\n            <img width=\"250\" src=\"https://s3-eu-west-1.amazonaws.com/demo.competitionlabs.com/_widgets/1.png\" />\n        </td>\n    </tr>\n</table>\n\n## Adding widget to your website\n```html\n<script type=\"text/javascript\">\n\t(function(w,d,s,u,o){\n    \t\tw[o] = {\n    \t\t\tapiKey: '<api_key>',\n    \t\t\tspaceName: '<space_name>',\n    \t\t\tgameId: \"<game_name>\",\n    \t\t\tmemberId: '<member_reference_id>',\n    \t\t\tlanguage: \"en\",\n    \t\t\turi: {\n    \t\t\t\tgatewayDomain: \"https://gateway-staging.competitionlabs.com\",\n    \t\t\t\ttranslationPath: \"https://s3-eu-west-1.amazonaws.com/demo.competitionlabs.com/_widgets/leaderboard_v3/build/i18n/translation_:language.json\"\n    \t\t\t},\n    \t\t\tresources: [\n    \t\t\t\t\"https://s3-eu-west-1.amazonaws.com/demo.competitionlabs.com/_widgets/leaderboard_v3/build/css/theme/default-theme.css\"\n    \t\t\t]\n    \t\t};\n    \t\tvar a=d.createElement(s), m=d.getElementsByTagName(s)[0];\n    \t\ta.async=1;a.src=u;m.parentNode.insertBefore(a,m);\n    \t})(window,document,'script','https://s3-eu-west-1.amazonaws.com/demo.competitionlabs.com/_widgets/leaderboard_v3/build/javascript/leaderboard.v3.js',\"_CLLBV3Opt\");\n</script>\n```\n\n## Using the loader script\nYou can use this loader script to centralise all your widget loading needs (custom scripts, styles and environmental parameters) into a single place.\nThe \"Loader\" script requires the bear minimum of 2 things to be set to the global `window._CLLBV3Opt` parameter before the scripts loads:\n1) `gameId`\n2) `memberId`\n```html\n<script type=\"text/javascript\">\n    window._CLLBV3Opt = {\n        gameId: \"my_game_id\",\n        memberId: \"my_member_id\"\n    };\n</script>\n```\n#### Steps required to configure the loader script:\n1) update your default API key, space name (optional: `language` and `currency`), unless you are loading the API key and space name from your game/product\n2) define what products will load in the widget:\n```javascript\nproducts: {\n    \"my_product_id\": {\n        script: \"https://my.custom.script.location\",\n        resources: [\n            \"https://my.custom.stylesheet.location\"\n        ],\n        onBeforeLoad: function( instance, options, callback ){ // your custom logic before the widget gets initialised/rendered\n            if( typeof callback === \"function\" ) callback();\n        }\n    },\n    \"my_product_id_2\": {}\n}\n```\n3) add loader script to your website\n\n\n## FAQ\n### How do I set the currency:\nThe setting \"currency\" needs to be set to the appropriate ISO key used in [units of measure section](https://complabs.atlassian.net/wiki/spaces/CLRAV/pages/594935946/Units+of+Measure)\n```text\n{\n  currency: \"usd\"\n}\n```\n\n### How do I specify a custom stylesheet:\nAll styles are loaded as part of the initialisation, so overwriting the resources array variable with your stylesheet asset will allow you to load in the external stylesheets dynamically.\nThere is no limit to how many stylesheets you can add as the widget will load all of them from the specified array.\n\n### How to show game/product specific competitions only:\n```text\nThe setting \"enforceGameLookup\" should be set to \"true\" and game/product ID should be assigned to the setting entry \"gameId\" part of the widget startup/initialisation\n{\n  enforceGameLookup: true,\n  gameId: \"my_id\"\n}\n```\n\n### How to disable Inbox/Messaging section:\n```text\nTo disable the inbox/messaging area on the full widget preview the following setting \"messages.enabled\" has to be set to \"false\":\n{\n  messages: {\n      enable: false\n  }\n}\n```\n\n### How to show the widget only if there are any available competitions:\n```text\nThe primary method “this.startup“ inside the \"LbWidget\" class is the one you should adjust to implement your scenario to achieve a pre-launch check, you can wrap what's inside of that method with the function:\nthis.checkForAvailableCompetitions()\nThis method collects all the necessary information about active, ready and finished competitions (example: _this.settings.tournaments.readyCompetitions will contain a list of upcoming competitions) so you can use the callback and the collected information to decide to show or hide the mini-scoreboard on startup based on your requirements.\n```\n\n### How do I only show the competition tab if there is an active competition only and/or change the default tab to the achievements tab\n\nThe current flow is:\n1) once the mini scoreboard is clicked, the main layout gets initialized (unless it’s already not existing in the DOM)\n2) the navigation then gets reset to the initial competition tab\n\nTo achieve this scenario you would need to do an available competition check prior to the navigation reset and then hide/show tabs accordingly based on your business requirement.\nThe code of interest would be on line inside the method called: \"this.initLayout\" in the \"MainWidget\" widget class, the method that resets the navigation is \"_this.resetNavigation( callback )\" this handles what navigation item to set as default for the user.\nYou can either change this code directly or override that method after initialization inside the \"this.startup\" method for the class \"LbWidget\" by doing the following \"_this.settings.mainWidget.resetNavigation = function(callback){}\". \nThere you can write some logic that would check what tabs to show/hide. \nOr you can overwrite this on a more global scope level where you initialize the widget \"new LbWidget(window._CLLBV3Opt)\" as you get full access to the settings and all other methods.\n\n\n### Localization - How do I translate the widget UI:\nTo enable translation the following steps need to be made:\n1) Translate your UI elements to the appropriate language and save it in a \".json\" format using the following naming pattern `translation_en.json` [JSON example](https://s3-eu-west-1.amazonaws.com/demo.competitionlabs.com/_widgets/leaderboard_v3/i18n/translation_en.json)\n2) The translations you define inside the file will be merged with the core translations on run time\n\n```text\n* The default widget language is set to english \"en\", the widget will try to load look for an external translation \nresource based on the language setting and the \"translationPath\"\n\n* If the resource path is used as \"translation_:language.json\" the widget script will try to replace \":language\" with the \ncurrent language  setting and load the translation dynamically from an external source, example:\nhttps://s3-eu-west-1.amazonaws.com/demo.competitionlabs.com/_widgets/leaderboard_v3/i18n/translation_:language.json\n\n* If translations are not required it is possible to disable them by changing \"loadTranslations\" setting to \"false\"\n```\n\n### Why we use SASS:\nHere are some of the basic benefits of why we are using SASS:\n* provides the ability to use variables, allows you to store a value, or a set of values, and to reuse these variables throughout your SASS files as many times you want and wherever you want. Easy, powerful, and useful.\n* the improved syntax allows you to use a nested syntax, which is code contained within another piece of code that performs a wider function\n* provides mixin functionality: Mixins are like functions in other programming languages. They return a value or set of values and can take parameters including default values.\n* allows you to break apart your big complex CSS files into smaller chunks, this improves the ability to work on the same stylesheets for multiple teams\n* still supports the basic CSS syntax as SCSS syntax is CSS compatible\n","readmeFilename":"README.md"}