{"_id":"@laboratoria/rubric","_rev":"37-8503ea97a02f073f4e7b852bde5dbe3a","name":"@laboratoria/rubric","dist-tags":{"latest":"3.0.5"},"versions":{"3.0.0":{"name":"@laboratoria/rubric","version":"3.0.0","license":"MIT","_id":"@laboratoria/rubric@3.0.0","maintainers":[{"name":"lupomontero","email":"lupomontero@gmail.com"}],"dist":{"shasum":"17522460688bc7759e18b3287c710561a53c06ac","tarball":"https://registry.npmjs.org/@laboratoria/rubric/-/rubric-3.0.0.tgz","fileCount":13,"integrity":"sha512-dfkUBG30mcJoex/qS85lN3Dzw8D6cY07AH+A948P32+FfYuCLX7RZu2VYSyiMVT874AFqkDkF7mQVyTEuKiR8A==","signatures":[{"sig":"MEUCIQDMfyfW3NBNP4rTt85NeM5cRgAI+jAZajky5zvfbRLu4wIgVN8ixu63ymmphjPZ2hGXaekRfz4rlV/Ywed8f1KBts0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":375566,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdd9vpCRA9TVsSAnZWagAAvF4P/Apsl9BD0r7/HaC7+1KF\n6Nk37vkvKjqV1kDuRbFsLo7NePvYXRWLo+jlkerz1MdPwnd8N8ZjCG7RKFoq\nh2qFZQnKWCNRRlw3bfumqR0bAG+wDgp6JpcyN9Q2yqjaLTmitgN/a8iBuqbO\n09goTyrYUisiYAF1c4uTNNV0N9+L+BI9TlC+snsOp3J74IxxaOJDdR8Uvean\nAnMJzRnYbTAeGd3VtKsr+icfgkRldAZWf5B1iUR7EYrC+f1eCqagzEgpZS66\nrhWU1I8ATwOCv5yJkg04kJT5dziKZyj3LpXC/QYYgVAgFFoHYoj/wqO1sAOj\nUd3ptSS2qs01LQsR9B/s00jI9/QH1mCMiwLZ/Fin46Zjcx5YpBp+6aSpE3C4\nQE1Rk4kpMlK7UgxjgKo+Q4Y+mx5Wm+8Rf5YnMxBite0rIZ8dxpjdq9Ry4xn9\nLXCCuW8GFVeKAoOHwkdDqctobsvcu7V5kmyrJePWnZF568/na/NU/eotTECG\neUcGs8MeWY3U5q1QNbQtCIfsvuNZMQoV1Kn5ZaPTDoRJ2t3/nIIjC2eg181N\nVyP5qtKhsAULtlGuLEj898M9yYq6b0HhVc2QBu/h8LGnAqu8MARVGwBa39YL\nW7vwpwbLpON7h4JYrRne/Q8ZioTXt8O8nU4T5d1V+PzxNqic4IS6puFbjkUq\nW6yP\r\n=4HHL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"05ea18da8a394da4a8ebe3bddca7941978f7ffd6","scripts":{"test":"jest --verbose --coverage","pretest":"eslint .","coveralls":"cat ./coverage/lcov.info | coveralls","fetch-data":"./scripts/fetch-data.sh > data/gsheets.json","process-data":"./scripts/process-data.js > ./data/processed.json","fetch-and-process":"npm run fetch-data && npm run process-data"},"_npmUser":{"name":"lupomontero","email":"lupomontero@gmail.com"},"deprecated":"Package deprecated in favour of learning objectives comming soon in Laboratoria/bootcamp 3.x","_npmVersion":"6.11.3","description":"[![Build Status](https://travis-ci.com/Laboratoria/rubric.svg?token=4uyuoxi9qhvAfjzUTB6y&branch=master)](https://travis-ci.com/Laboratoria/rubric) [![Coverage Status](https://coveralls.io/repos/github/Laboratoria/rubric/badge.svg?branch=master)](https://c","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"devDependencies":{"jest":"^24.9.0","eslint":"^6.3.0","coveralls":"^3.0.6","eslint-plugin-import":"^2.18.2","eslint-config-airbnb-base":"^14.0.0","@laboratoria/fetch-gsheets":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/rubric_3.0.0_1568136169124_0.4277227124666241","host":"s3://npm-registry-packages"}},"3.0.1":{"name":"@laboratoria/rubric","version":"3.0.1","license":"MIT","_id":"@laboratoria/rubric@3.0.1","maintainers":[{"name":"lupomontero","email":"lupomontero@gmail.com"}],"dist":{"shasum":"0c1b82309c890f6f02c482f9f37c6c7fd1408f86","tarball":"https://registry.npmjs.org/@laboratoria/rubric/-/rubric-3.0.1.tgz","fileCount":21,"integrity":"sha512-np/um9vP9MinTwxmpWVmxl8aR6qOpbcY8j6EFuZbkRmjawcpiYPi3sNZqQOvHbatLa/DH9ujiM4aTspvvxHByQ==","signatures":[{"sig":"MEYCIQCGorU2IwBGF1BPHOkUvzlDYXVAqLZpUpPmFwv6dRv1nQIhAJkXHN+G+9sx1bODKaNLQ9Xaahyd4a9BMsdWbq+fQjIk","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":509275,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdd9z+CRA9TVsSAnZWagAAOugP/i5MejpZsSCb711DSz+o\nfyTb0E5fgaa1uV+YAfmlWi3L04BD8DU6/rtOYb7n3gzapx14CY6He+od63aD\nwZoyvjGw3UfrPgIyCGN6qAKVK9bQ22KiBUQDljNd2tk9vQkw4YP6DJ5rXLTE\nTzKYt9i9OKMRAueGU8Z8OYPQ60K75ZUY8mEZngEGpLUqJzKOTPQyDutvONNa\nY5EpAbwd3hRg18p0otQQffxtjaR+SUXTDdv9FSJ+9yApIN9kOHbifU7VSvlX\n/LTppIut9zRbnnj1jiwdZ1om8EBP0LPpTkfItLanmWSKejDTiFv66Mt/FFa1\njshDff+yoUsA7L0GhIcfEHZsQktVq7szfVq5QpWVmu5C5RC3UPlCTOKnKyUJ\nJAT3Hyyr54BG/F9KaTKNr94vS6J0p/cky8uUPJR3kpVWx8TxU0cqZAGV06EQ\n0fS8Gy26ijVdDqzmc9GWIkF8bHyf0W/voVcKkB1F0oMXgLrO5VQzp7HegeEA\nXk/rfTeNJP0iLpDMQsfkfiYw2WBWwfSh0k+A6axWHiWQhC5qAgmSWsuUwLbg\njw0REBR3APLAOfsnjZRp1BWKK3LxRvmaqXBmOQUVlCJtYi8Oex1UwugJm4VN\n2QVxsS2WLy5ci5fD1pZTSXewck5osuUySm1StrEBb8EzzE/I9JRTeKQmes/7\nzdVU\r\n=XMRh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"6ba825ef8b1840f3c2393c2b9a5d587d2e0a066f","scripts":{"test":"jest --verbose --coverage","pretest":"eslint .","coveralls":"cat ./coverage/lcov.info | coveralls","fetch-data":"./scripts/fetch-data.sh > data/gsheets.json","process-data":"./scripts/process-data.js > ./data/processed.json","fetch-and-process":"npm run fetch-data && npm run process-data"},"_npmUser":{"name":"lupomontero","email":"lupomontero@gmail.com"},"deprecated":"Package deprecated in favour of learning objectives comming soon in Laboratoria/bootcamp 3.x","_npmVersion":"6.11.3","description":"[![Build Status](https://travis-ci.com/Laboratoria/rubric.svg?token=4uyuoxi9qhvAfjzUTB6y&branch=master)](https://travis-ci.com/Laboratoria/rubric) [![Coverage Status](https://coveralls.io/repos/github/Laboratoria/rubric/badge.svg?branch=master)](https://c","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"devDependencies":{"jest":"^24.9.0","eslint":"^6.3.0","coveralls":"^3.0.6","eslint-plugin-import":"^2.18.2","eslint-config-airbnb-base":"^14.0.0","@laboratoria/fetch-gsheets":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/rubric_3.0.1_1568136445398_0.21848093916991407","host":"s3://npm-registry-packages"}},"3.0.2":{"name":"@laboratoria/rubric","version":"3.0.2","license":"MIT","_id":"@laboratoria/rubric@3.0.2","maintainers":[{"name":"lupomontero","email":"lupomontero@gmail.com"}],"dist":{"shasum":"489863c634c2a2c8be769ef60cdcb2da2cd5368e","tarball":"https://registry.npmjs.org/@laboratoria/rubric/-/rubric-3.0.2.tgz","fileCount":4,"integrity":"sha512-JIs0nyAHpIk+2MuJ11eBREAxsVeu/wRssbBASixMz6fZcAe5xYCEr3arh50WyeS4AN2tiKTPDEpklV06cWrmgQ==","signatures":[{"sig":"MEUCIQCAdxBkwSEf/QMNBJeFcnnskufr1F+tA3wbrC4Xcqn69wIgFU9BamH1dOeXpKOYpjRHX21dX0J8enD48JPmFplenc8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":111500,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdd90uCRA9TVsSAnZWagAALq4P/1r62v5m46kRskDsi0zL\neEeN+evonrjcjCQ8++lGfKgqPUrg/hSIbsFPjpVsU64+gmhGsOwPsPi6yV5i\nFqFQtHvTZ6sYFkXjZErwtFaScZvvqxugc/D6yZ8LO6Sn26zbdql3Py07EFcj\nPllln4qXHpMLlSUENLrDUbgjyjWcDmXFw2zGcRu2A+UQSG+onk/0Or7fFokH\noAPfZr52IhMGooxlcujTfL66N1FmPh0UP41Nur4JvAxC573+Ge6Vbo4bVEeS\nO3bqhBVPrjHhgKRnzl9Ab1ZKttYgyYVM55Q2x+EHdu9FfIOPxFrKfYCYUya0\npqR0xnhl99rbGmBJI2txWZiUBRq0zx4a9fA2rsoKdw+Y9l4k04o7jnSwFV3L\nKEMqzPhMk5Vjy7I8x1eIqz5OxiiGVwx5gNmaHsXRhUUxPpV1ialCSo+pu5Ew\nfvD8Lzv9W7TKBFtv2/NW/9JadM2TMxpuuOqUTrT1l+RWrjUwXUYwKbsTC+l1\nxFGI5EBqCIpmCuCLXZU4i03OQVootOWt0LlNS6A1T0iGQNGqh1oqO6P1a7YE\negKbxQRjEdDBahGEVd8X4mCfAWmUr9PV2YmvOlBBa4mGUgkpX1rn/b2GuyEu\nRhyKDm4dJWNMCWxVU4Z+bYFWf0jDbxhgAHKw7bj9Iwtqmi6NA2tOWznT+r+G\nH3Gf\r\n=JOCT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"93c1aa3b8c4395dd983530bd623ef1c0720cb642","scripts":{"test":"jest --verbose --coverage","pretest":"eslint .","coveralls":"cat ./coverage/lcov.info | coveralls","fetch-data":"./scripts/fetch-data.sh > data/gsheets.json","process-data":"./scripts/process-data.js > ./data/processed.json","fetch-and-process":"npm run fetch-data && npm run process-data"},"_npmUser":{"name":"lupomontero","email":"lupomontero@gmail.com"},"deprecated":"Package deprecated in favour of learning objectives comming soon in Laboratoria/bootcamp 3.x","_npmVersion":"6.11.3","description":"[![Build Status](https://travis-ci.com/Laboratoria/rubric.svg?token=4uyuoxi9qhvAfjzUTB6y&branch=master)](https://travis-ci.com/Laboratoria/rubric) [![Coverage Status](https://coveralls.io/repos/github/Laboratoria/rubric/badge.svg?branch=master)](https://c","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"devDependencies":{"jest":"^24.9.0","eslint":"^6.3.0","coveralls":"^3.0.6","eslint-plugin-import":"^2.18.2","eslint-config-airbnb-base":"^14.0.0","@laboratoria/fetch-gsheets":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/rubric_3.0.2_1568136493607_0.2767933000883587","host":"s3://npm-registry-packages"}},"3.0.3":{"name":"@laboratoria/rubric","version":"3.0.3","license":"MIT","_id":"@laboratoria/rubric@3.0.3","maintainers":[{"name":"lupomontero","email":"lupomontero@gmail.com"},{"name":"xpktro","email":"xpktro@gmail.com"}],"dist":{"shasum":"01f749682282343a289ece7dc71a112ab6ec6c7e","tarball":"https://registry.npmjs.org/@laboratoria/rubric/-/rubric-3.0.3.tgz","fileCount":4,"integrity":"sha512-JTFSwh9WyujvUN/3wQGhLmyFUR43A1XChkj/qDkRDWE3w7jf8BUhZCwhdnefboHZjW2D90Ayr0dhZYU8bPyDDQ==","signatures":[{"sig":"MEYCIQC6OFi7u3RbFgPsPdWv5xkbGS2Lq7Ye/s+HhfOaeQ3fJAIhANOetBUhHCQEjF62RBlAqNxy6/dW/X8FRgg6wtrKosCh","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":111595,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdihdvCRA9TVsSAnZWagAAWxUP+wfDo/ZijdVAM729lPQV\n4ucZ006dLJgGaBmfRNc/XPoqqYQYH1Hktzjp/LS1rHyvkj30eqQqoTBU1hXG\n81kRtpa5vVI4x7jBbrifvJzeciZcRS4uJmQdigv6BmOqGl9OO9tWz8fh7b4P\nWosuHjwofyz514MThJIcRCb9x+qI1QgYTRSc8jA/46MRPuJWRWt7bK0lVziF\n3rQo0wAH9RSN7q8O5by8GXvP62beFpqNZ8ce7uMPNzsvjzXzybmLoYjkkYf4\nVvqeXWcySps9a1MTq5dIym7T+iDEYlKiEZay791Re4ohJq7rI/DIaHw8+aQb\n6OPiHcm+t1pJpGdQZvoiY/DBimGB5Vpm510OFqZ3cflCKx40P5jOGpeLhPn2\nNI5u63jUM3cylfzvAqF3LyHjrE8OiffOC/MmIgZrQnNCF1lkbunuhnVa+DUw\nTQE5ahyAwDHN9eo0J5fTmu4qk8z/CqnTXuhybBNJNfTlEVib2xtvp8RHBT4a\nQqRYkYSupOpNGmqnRYpaTdI29QbOyP73DbvsExwP3oUWSCVUhVdhTu++4LxQ\nsc0pfwd6Er12wPf2bqelVdao2vf46rVNP70x7cwpRgIBSXDourTeScejbgBG\nfhQ4ZsLGH7ioc0QaSEoEl06Jz56qHads1O4P9oBmwHQHXuZ8G8DhouuvXYL7\nZlWe\r\n=Yb2x\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"404fe95e32669ec1115aae421d2f4faa6207dffe","scripts":{"test":"jest --verbose --coverage","pretest":"eslint .","coveralls":"cat ./coverage/lcov.info | coveralls","fetch-data":"./scripts/fetch-data.sh > data/gsheets.json","process-data":"./scripts/process-data.js > ./data/processed.json","fetch-and-process":"npm run fetch-data && npm run process-data"},"_npmUser":{"name":"lupomontero","email":"lupomontero@gmail.com"},"deprecated":"Package deprecated in favour of learning objectives comming soon in Laboratoria/bootcamp 3.x","_npmVersion":"6.11.3","description":"[![Build Status](https://travis-ci.com/Laboratoria/rubric.svg?token=4uyuoxi9qhvAfjzUTB6y&branch=master)](https://travis-ci.com/Laboratoria/rubric) [![Coverage Status](https://coveralls.io/repos/github/Laboratoria/rubric/badge.svg?branch=master)](https://c","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"devDependencies":{"jest":"^24.9.0","eslint":"^6.4.0","coveralls":"^3.0.6","eslint-plugin-import":"^2.18.2","eslint-config-airbnb-base":"^14.0.0","@laboratoria/fetch-gsheets":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/rubric_3.0.3_1569331054580_0.4715691456384703","host":"s3://npm-registry-packages"}},"3.0.4":{"name":"@laboratoria/rubric","version":"3.0.4","license":"MIT","_id":"@laboratoria/rubric@3.0.4","maintainers":[{"name":"lupomontero","email":"lupomontero@gmail.com"},{"name":"xpktro","email":"xpktro@gmail.com"}],"dist":{"shasum":"22202097dec064e15372c452185d603df3ed156f","tarball":"https://registry.npmjs.org/@laboratoria/rubric/-/rubric-3.0.4.tgz","fileCount":4,"integrity":"sha512-Z847Q9cTcQ4ot3LwFQV9Fo1gNSGJELxEeDgxM0SZkvlD7r+6rIRSv+GDRDQyrTR6jku/mxLIDZCBqxzhr0hecg==","signatures":[{"sig":"MEQCICh6i3zNOmwCza4p91Mv7WuwDcBq5UxlObDO0/glDcovAiAyN4UAcOlBmcxh/ps9Qanl4TVEK5VXG5uGz0UTmEDTBg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":111595,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeB1Y0CRA9TVsSAnZWagAAfl4P/j2i+6CQXj2QDJFU1jiU\n89LyjKsshYr8Dwvd+mnsX4mKgCPPbcf7UGQ5YN1S9mU4V0QpJE3TD3XaM0zd\n7C2pAx54xR0bXlqm7q4YgwfaRnjMUzz77zJlcBGgJRqzIW7WxdbwvyCMLqUf\nP2KNYsqJF751xUSMkSw97MSzC6bdfifNnll8nl0HvOcEoyiawJmWUoHrM8pR\n/dwzqzlsDBG3Qv9HFrccqiigAW7MkS+y68+P1lWMmhLFRt6WEPjLvSQr8bmW\ng4PcRYdy5lgyDXe1IAV4e/7x3iQkCsgR6522XjBWXEJUY7gNHUaDKRvvL0Jh\nH4un/YOJPzdR8T6MiCJjbvZ4SABJZlmeAzFH1VoHrkgsCbZytNzhtiB6WlIT\nXl7G2DS1lEkKUwc6duJZ1RpOVqUMp7/65VyAQCo6L2KGw8FTrsBiVZkuQYTZ\nMEAyrJrX8Wp1ug8Aflz0520ZXrqiDL2fv1ihJzlp//lRsSOKTFCGbdlWzN+A\n55kA0H+r6zX8QuMZdubJu/K52/TjhDSIZ87SL9SrEGvUHl5LpZoVA2aCWISm\ny1aeJbQdiyZHlJmydTncrbgRcCWwbM6XAv9zllgka6//tGQGKHnu5mfJaBeh\nlPqBEVq7p60ozz33Y0Y8KrIt59/PcMco0meA2j2/z1x4XEfB5L8Phtdsc5m/\nGIDw\r\n=MHU/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"59ee1737f8b73d84b45784cb72dae5ac2c4e356f","scripts":{"test":"jest --verbose --coverage","pretest":"eslint .","coveralls":"cat ./coverage/lcov.info | coveralls","fetch-data":"./scripts/fetch-data.sh > data/gsheets.json","process-data":"./scripts/process-data.js > ./data/processed.json","fetch-and-process":"npm run fetch-data && npm run process-data"},"_npmUser":{"name":"lupomontero","email":"lupomontero@gmail.com"},"deprecated":"Package deprecated in favour of learning objectives comming soon in Laboratoria/bootcamp 3.x","_npmVersion":"6.13.4","description":"[![Build Status](https://travis-ci.com/Laboratoria/rubric.svg?token=4uyuoxi9qhvAfjzUTB6y&branch=master)](https://travis-ci.com/Laboratoria/rubric) [![Coverage Status](https://coveralls.io/repos/github/Laboratoria/rubric/badge.svg?branch=master)](https://c","directories":{},"_nodeVersion":"12.14.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^24.9.0","eslint":"^6.8.0","coveralls":"^3.0.9","eslint-plugin-import":"^2.19.1","eslint-config-airbnb-base":"^14.0.0","@laboratoria/fetch-gsheets":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/rubric_3.0.4_1577539124010_0.49764663763331196","host":"s3://npm-registry-packages"}},"3.0.5":{"name":"@laboratoria/rubric","version":"3.0.5","license":"MIT","_id":"@laboratoria/rubric@3.0.5","maintainers":[{"name":"maiarojas","email":"maia.rt.46@gmail.com"},{"name":"bouli","email":"contato@bouli.com.br"},{"name":"lizzie136","email":"darknessover136@gmail.com"},{"name":"raulingg","email":"relaxedchild@gmail.com"},{"name":"lupomontero","email":"lupomontero@gmail.com"}],"dist":{"shasum":"00cc8a5c3d60d89160064f4125f3679367aa8a58","tarball":"https://registry.npmjs.org/@laboratoria/rubric/-/rubric-3.0.5.tgz","fileCount":4,"integrity":"sha512-WmnIxUHQIfi2DMijSvZPEYw6xxvjoJofeAI4rtoxETps/FzMm9V2ywPBcqpsHmEQ04z4S8o5xwHIGzuGBgfzIg==","signatures":[{"sig":"MEQCIFQZjeUlbQktgWISu2p69BFgPYfAqeBpgCLJ0CezxzvZAiAPJDHyEUxduhn0zVzmPJ23p/ew+1bIj9XAKKwYPlvZmg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":111675,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfz88kCRA9TVsSAnZWagAAtukP/0zSlVyCPm/NtwOHrESC\nU3rUsd8NIqqehjHIYqwbYXk72rqRLO27CfEscNEHtViT4Yq+pJjXVAb50YNw\nr/tAC67iC9Xoq6g2zqBunYHkU3l3K3EBX+WmNK9XvnRyrlUBPowBIqyhdajv\n2N/CbCnTuCyjqqkQ4F5F24DnqxC6IJcOD5BoNiMAv011NBMHpmMQzKbcQcyr\nXrsxwJ9816yDe2UGcKvkB5oXkcsd1EFGUGNhKa7kIN/bmyubuAxgf7gOWNA+\njsGdmnbujtjLR5ohwbCW1otYFzABLXqcQKQQ6RT867nff7JyMDkEAgz/zFCt\nF4S43r2C0mxTlgckbHKCPr69VvPw4K8SWWGRU9HQXTwSh7UydkXsH1lypAg0\nPmI5oXiyTkOdSKpOdQqFWiPc90OvPvzlTXoE/wcSzuUodF/8P3ARBOdxoYLI\nr0p9o66KgXrOLOlz12VB8EHcsP9+Wego4SksojoAAdGP/99xDxMNtfalZQrc\nHKgylI6+qVUfCdAa/jQkdKIo2xizsfXaQWurnoMoVoDg1+zhunRLy+uh/L6N\nk5sl43Nbh9Husa7he+qELr4oq9KgyknTKFni/zh9vcEKdzE7Yc9wliapflG3\nTrGkOF2OVfmHJ63i7GO6OjNBjK+OLVRIUENAYWJpHk+3k/6Qmz3ILcsefXCr\nluE/\r\n=zgAf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"1e125a51ba3dcc4830c613f8074f8b5ddbc60996","scripts":{"test":"jest --verbose --coverage","pretest":"eslint .","coveralls":"cat ./coverage/lcov.info | coveralls","fetch-data":"./scripts/fetch-data.sh > data/gsheets.json","process-data":"./scripts/process-data.js > ./data/processed.json","fetch-and-process":"npm run fetch-data && npm run process-data"},"_npmUser":{"name":"lupomontero","email":"lupomontero@gmail.com"},"deprecated":"this package has been deprecated","_npmVersion":"6.14.9","description":":warning: WARNING: This module has been DEPRECATED and is no longer supported.","directories":{},"_nodeVersion":"14.15.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^24.9.0","eslint":"^6.8.0","coveralls":"^3.0.9","eslint-plugin-import":"^2.19.1","eslint-config-airbnb-base":"^14.0.0","@laboratoria/fetch-gsheets":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/rubric_3.0.5_1607454500336_0.9136770639964911","host":"s3://npm-registry-packages"}}},"time":{"created":"2019-09-10T17:22:48.998Z","modified":"2025-11-26T17:52:20.589Z","3.0.0":"2019-09-10T17:22:49.354Z","3.0.1":"2019-09-10T17:27:25.511Z","3.0.2":"2019-09-10T17:28:13.786Z","3.0.3":"2019-09-24T13:17:34.711Z","3.0.4":"2019-12-28T13:18:44.129Z","3.0.5":"2020-12-08T19:08:20.470Z"},"license":"MIT","description":":warning: WARNING: This module has been DEPRECATED and is no longer supported.","maintainers":[{"email":"mariano.crowe@laboratoria.la","name":"mariano-laboratoria"}],"readme":"# @laboratoria/rubric\n\n:warning: WARNING: This module has been DEPRECATED and is no longer supported.\n\n[![Build Status](https://travis-ci.com/Laboratoria/rubric.svg?token=4uyuoxi9qhvAfjzUTB6y&branch=master)](https://travis-ci.com/Laboratoria/rubric)\n[![Coverage Status](https://coveralls.io/repos/github/Laboratoria/rubric/badge.svg?branch=master)](https://coveralls.io/github/Laboratoria/rubric?branch=master)\n\nEste repositorio contienen una _librería_ (_biblioteca_) de JavaScript que\nrepresenta la _rúbrica_ que usamos en el Bootcamp de Laboratoria. La _rúbrica_\nse mantiene como un par de hojas de cálculo en Google Sheets\n([español](https://docs.google.com/spreadsheets/d/e/2PACX-1vSu7rAHSsRGwzoIAswVmBv1UDdQlYhX3GBOsrjhV4MJWMUzfdjL2u-llcWq8jssDIZxrWQq-eCgBeUL/pubhtml),\n[portugués](https://docs.google.com/spreadsheets/d/e/2PACX-1vSVyvMZlxMhExcFXhfzX6lD922hFFs0bPFgQhBTFEIPiqRqwNXNsLSqtd4uf0rd-4R6UYklMMMFPx5M/pubhtml)).\n\nLos _mantenedores_ de los documentos de la _rúbrica_ en Google Sheets son:\n\n* [@lupomontero](https://github.com/lupomontero/) (Front-end)\n* [@lalogf](https://github.com/lalogf/) (UX)\n* [@rocioalberdi](https://github.com/rocioalberdi/) (Habilidades blandas)\n* [@rafaelbcerri](https://github.com/rafaelbcerri/) (Front-end / portugués)\n* [@samcunha](https://github.com/samcunha/) (Habilidades blandas / portugués)\n* [@diegovelezg](https://github.com/diegovelezg/) (General)\n* [@CaroLaboratoria](https://github.com/CaroLaboratoria/) (General)\n\n## Instalación\n\nSi solo necesitas la versión más reciente de la _rúbrica_, puedes instalar el\nmódulo `@laboratoria/rubric` desde el repo de GitHub con los siguientes comandos:\n\n```sh\n# con npm\nnpm install --save @laboratoria/rubric\n```\n\n<!--\n### Instalación de varias versiones en paralelo\n\nPor otro lado, en muchos casos necesitarás poder usar varias versiones de la\n_rúbrica_ en la misma aplicación. Si este es el caso, puedes especificar\ndiferentes versiones como dependencias separadas cada una apuntando a una _rama_\no _tag_ del repo de `Laboratoria/rubric` en GitHub.\n\nPor ejemplo, en tu `package.json`:\n\n```json\n{\n  \"name\": \"my-app\",\n  \"version\": \"1.0.0\",\n  \"dependencies\": {\n    \"rubric-v1\": \"@laboratoria/rubric#v1.0.0\",\n    \"rubric-v2\": \"@laboratoria/rubric#v2.3.1\"\n  }\n}\n```\n\nY después en tu código:\n\n```js\nconst rubric = {\n  v1: require('rubric-v1'),\n  v2: require('rubric-v2'),\n};\n\n\nconsole.log(rubric.v1.buildTreeWithLocale('es'));\n```\n-->\n\n## API\n\n### Propiedades\n\n#### `name`\n\nEl nombre de la librería: `rubric`.\n\n#### `version`\n\nLa versión de la librería: `3.0.0`.\n\n#### `categories`\n\nObjeto (diccionario) con las diferentes categorías en las que se organizan las\n_habilidades_ o _skills_.\n\n#### `skills`\n\nObjeto (diccionario) con las diferentes _habilidades_/_skills_.\n\n#### `intl`\n\nObjeto (diccionario) con las traducciones de los nombres de las categorías,\ny nombres, descripciones y niveles de cada _habilidad_\n\n### Métodos\n\n#### `buildTree(nodes = categories, parent = undefined)`\n\nRetorna un `Array` con las _categorías raíz_. Por defecto, si omitimos el\nargumento `nodes`, las categorías raíz serían las _hojas_ del spreadsheet, y si\nomitimos el argumento `parent` estaríamos diciendo que queremos construir el\nárbol desde la raíz. El arreglo retornado contiene las categorías raíz, cada una\ncon sus subcategorías y habilidades correspondientes.\n\n```js\nconst rubric = require('@laboratoria/rubric');\n\n// Build entire tree from the root\nconsole.log(rubric.buildTree());\n\n// Build partial tree (sub-tree) for a given branch\nconsole.log(rubric.buildTree(undefined, 'frontEnd'));\n```\n\nCada categoría/subcategoría (`Category`) tiene las siguientes propiedades:\n\n* `id`: `String`: El _identificador_ de la categoría.\n* `order`: `Number`: El orden de la categoría dentro de su categoría _madre_.\n* `children`: `Array` `[Category]`: Un arreglo con subcategorías que sean\n  _hijas_ de la categoría.\n* `skills` `Array` `[Skill]`: Un arreglo de objetos de tipo `Skill` detallados\n  más abajo.\n\nCada habilidad (`Skill`) tiene las siguientes propiedades:\n\n* `id`: `String`: El _identificador_ de la habilidad.\n* `core`: `Boolean`: Un booleano (`true` o `false`) que indica si la habilidad\n  en cuestión es considerada _central_ al programa de formación.\n* `order`: `Number`: El orden de la habilidad dentro de su categoría _madre_.\n* `category`: `String`: La categoría a la que pertenece la habilidad.\n\nEjemplo de un objeto `Category` conteniendo un objeto `Skill`:\n\n```js\n// Objeto `Category`\n{\n  id: 'cs',\n  parent: 'frontEnd',\n  order: 0,\n  children: [],\n  skills: [\n    // Objeto `Skill`\n    {\n      id: 'logic',\n      core: true,\n      order: 0,\n      category: 'cs'\n    }\n  ]\n}\n```\n\n#### `buildTreeWithLocale(locale, nodes, parent)`\n\nIgual que `buildTree`, pero agrega todos los textos (títulos, descripcciones,\nniveles, ...) en el idioma (`locale`) seleccionado.\n\nCada categoría (`Category`) tiene las mismas propiedades que las categorías que\nretorna `buildTree()`, pero además incluye la propiedad `title` en el idioma\nseleccionado:\n\n* `id`: `String`: El _identificador_ de la categoría.\n* `order`: `Number`: El orden de la categoría dentro de su categoría _madre_.\n* `children`: `Array` `[Category]`: Un arreglo con subcategorías que sean\n  _hijas_ de la categoría.\n* `skills` `Array` `[Skill]`: Un arreglo de objetos de tipo `Skill` detallados\n  más abajo.\n* `title`: `String`: El _título_ de la categoría en el idioma seleccionado.\n\nCada habilidad (`Skill`) tiene las mismas propiedades que las habilidades que\nretorna `buildTree()`, pero además incluye las propiedades`title`,\n`description` y `levels`:\n\n* `id`: `String`: El _identificador_ de la habilidad.\n* `core`: `Boolean`: Un booleano (`true` o `false`) que indica si la habilidad\n  en cuestión es considerada _central_ al programa de formación.\n* `order`: `Number`: El orden de la habilidad dentro de su categoría _madre_.\n* `category`: `String`: La categoría a la que pertenece la habilidad.\n* `title`: `String`: El _título_ de la habilidad en el idioma seleccionado.\n* `description`: `String`: Descripcción de la habilidad en el idioma\n  seleccionado.\n* `levels`: `Array` `[String]`: Un arreglo de _strings_ con las descripcciones\n  de cada _nivel_ en el idioma seleccionado.\n\nEjemplo de un objeto `Category` (con traducción) conteniendo un objeto `Skill`\n(con traducción):\n\n```js\n// Objeto `Category` con traducción\n{\n  id: 'cs',\n  parent: 'frontEnd',\n  order: 0,\n  title: 'Computer Science (CS)',\n  children: [],\n  skills:[\n    // Objeto `Skill` con traducción\n    {\n      id: 'logic',\n      core: true,\n      order: 0,\n      category: 'cs',\n      title: 'Lógica / Algoritmia',\n      description: 'Capacidad de expresión lógica, ...',\n      levels: [\n        'Código no sigue ninguna convención o patrón común...',\n        'Demuestra uso de convenciones de JavaScript idiomático...',\n        'Es consciente de la diferencia entre estilos...',\n        'Demuestra soltura pasando de un estilo/paradigma a otro...',\n        'Demuestra soltura y profundidad con diferentes convenciones...',\n     ],\n    },\n  ],\n};\n```\n\n#### `applyLocale(tree, locale)`\n\nDado un árbol creado con `buildTree`, aplica los textos (títulos,\ndescripcciones, niveles, ...) en el idioma (`locale`) seleccionado.\n\n***\n\n## Tareas de desarrollo\n\n### Ejecuta pruebas unitarias (incluyendo pretest/linter)\n\n```sh\nnpm test\n```\n\n### Ejecuta pruebas unitarias cada vez que hayan cambios en código fuente\n\n```sh\nnpx jest --watch\n```\n\n### Descarga datos de Google Sheets\n\n```sh\nnpm run fetch-data\n```\n\n### Procesa data descargada de Google Sheets\n\n```sh\nnpm run process-data\n```\n\n### Descarga datos y proces en un solo comando\n\n```sh\nnpm run fetch-and-process\n```\n","readmeFilename":"README.md"}