{"_id":"@alu0101127163/espree-logging-solution","_rev":"5-afbed5358c8c4b47d774b3010a4b2021","name":"@alu0101127163/espree-logging-solution","dist-tags":{"latest":"1.4.1"},"versions":{"0.3.0":{"name":"@alu0101127163/espree-logging-solution","author":{"name":"ÓScar Hernández Díaz","email":"alu0101127163@ull.edu.es","url":"https://crguezl.github.io/"},"description":"Adds logs to javascript code","version":"0.3.0","type":"module","bin":{"funlog":"bin/log.js"},"scripts":{"test":"mocha","cov":"npx nyc --reporter=html --reporter=text --report-dir docs mocha"},"dependencies":{"acorn":"^8.8.2","commander":"^10.0.0","escodegen":"^2.0.0","espree":"^9.4.1","estraverse":"^5.2.0","underscore":"^1.12.0"},"devDependencies":{"jsdoc":"^4.0.2","jsdoc-to-markdown":"^8.0.0","mocha":"^10.2.0"},"gitHead":"b2898dfaade9d8128cf6597b863df3817aff12a8","_id":"@alu0101127163/espree-logging-solution@0.3.0","_nodeVersion":"18.14.0","_npmVersion":"9.3.1","dist":{"integrity":"sha512-KeMpkK7ANO6xBdVr/d1XvWpf12eNlNWIMact8dJTK2DnlwzoMhkLzJeigQWbmgNNdYzaJ2+Hyw4wUNL+pUL0kw==","shasum":"38b8d8fe5df919e9b3b7def0e2436b79b7d2f0d4","tarball":"https://registry.npmjs.org/@alu0101127163/espree-logging-solution/-/espree-logging-solution-0.3.0.tgz","fileCount":30,"unpackedSize":52122,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCRAW1isglnCRPzpqbcFweJQRWq8nslGEEfG/s6kSIskgIhAMUicg+6SZYIkoN6Gbsmpa980MZhMSSLRJaaRLTqkkai"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkAJVjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqhdxAAiIJPlNqGUztiwIMtxGk0x9mhLCYdh4HnP0UFAPTZkHC3p4s4\r\nGO+VzATeQQHVala/t4GUJ3Ud7F4pH/SXlbW8ktx3qJYCuuclg4OFFvGu8g2E\r\nHe8DH7PA0dz+maPn4vD8KG/GilKaPHodEnGqd8x/YbjB7qAsmqbIBdT0w01R\r\nc4RfdPc45LSL34toHnoqDRSuDO0Y7AG91REmATrLRIR7zhfzTBzQFToVlLTd\r\niZS3tg3EKKB86fqXwSIxp2rMeW1sefX0c4lKR7sXe2mVghJzCu2aXZ8MfscP\r\n9txDGpfL6ATU2mNZLC5WYBU3KfhMZEkwX1wEOu4f+VPPwBUGahWrORWvdg0+\r\nHtOOtPHH6x0S1OcJzcmQuVM/6msvoVPuh2L5ZOfWfYi4AO0sqf0PD0HYRXOQ\r\nTNqrHIlUISJflQtYQBOwuwLkRrqF66dnpWi2JukNZtdW0JSBDjLgHNGzDAN0\r\nRFSpni3evxPr+v0fv5GUvYyTDf5EdF5MauP89DegkrCtuhrGZbyRrAdXfHIy\r\n2blqKdWV7rUbJlzOfC5p3sIlGxyTz0zQN8aY7WV7qfiavIDbOECESV4fX3O5\r\nUWhBhaIF4jGlDs2Hc7/rz5zwg7OZWeenrZjWrzXEPC8Qd0En+lqTo1bIMaln\r\nClAT+KF/8ooy/S2Wgj7nDfXQLCejCegpCMk=\r\n=TWfL\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"alu0101127163","email":"alu0101127163@ull.edu.es"},"directories":{},"maintainers":[{"name":"alu0101127163","email":"alu0101127163@ull.edu.es"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/espree-logging-solution_0.3.0_1677759843155_0.34385099970990907"},"_hasShrinkwrap":false},"1.1.0":{"name":"@alu0101127163/espree-logging-solution","author":{"name":"ÓScar Hernández Díaz","email":"alu0101127163@ull.edu.es","url":"https://crguezl.github.io/"},"description":"Adds logs to javascript code","type":"module","bin":{"funlog":"bin/log.js"},"scripts":{"test":"mocha","cov":"npx nyc --reporter=html --reporter=text --report-dir docs mocha"},"dependencies":{"acorn":"^8.8.2","commander":"^10.0.0","escodegen":"^2.0.0","espree":"^9.4.1","estraverse":"^5.2.0","underscore":"^1.12.0"},"version":"1.1.0","devDependencies":{"jsdoc":"^4.0.2","jsdoc-to-markdown":"^8.0.0","mocha":"^10.2.0"},"gitHead":"b2898dfaade9d8128cf6597b863df3817aff12a8","_id":"@alu0101127163/espree-logging-solution@1.1.0","_nodeVersion":"18.14.0","_npmVersion":"9.3.1","dist":{"integrity":"sha512-7njjkt9M/5Xb/DxTEzXQeh20PdnUUy4E2iPyJoU3jjFhgt2Ymvazfv+TbSbFKe4tsiKCqgZ3fry8rN84vCvwbA==","shasum":"2d26189a7340409f227e149ca3a243da5f5aec08","tarball":"https://registry.npmjs.org/@alu0101127163/espree-logging-solution/-/espree-logging-solution-1.1.0.tgz","fileCount":30,"unpackedSize":52097,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICtcglysyndXTAafwJoNloxGYWkZaku1NeD+sjDKwoFzAiEAh3q/uk+UWJ9MLgbaNnSM3lQqsetxz+/UCGJPct1Rxxw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkAJWIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp2axAAnD6McrskEWopcpHjo0CfJG2GDwlHRL2dIdDsHujCaeDAESuT\r\n7ILsxk5Hk33jc2meX2q7ZMvgfwLDsmuYC05vR0ENhKeI6yi3N/odkPolvCNz\r\nVY9v1GBJpr4TBlb6gdlDTY4omAWpSs8tUmM4fXINDn4eoTMydVX6iRuboUwL\r\nKVWxQhpLA/hbPvyLLdh4uObm4bCefCWpB76gmN0nU8N2A5tv57cmZ1bMiWfm\r\nOe5fIifwgake7iF49NiXf7KjYxtSXjUOVtEYmeVLk1E03vX3HbOVwIfoV4/v\r\nijg0QFzDvvxcdE+NrXx/D/CkHFeZkeMyM8ot1MKz6kfrwcLr9/0c8T7qWn6i\r\nFUOYkp3iopwejhmAudFEdbPxRz2cztkqUtKQJYZ6lJ0kbLMoztH6PB6ftwLz\r\nhPFFDV2+HNK/hP6vwPg9ZyM+dpz2W4pQuIU7ZjbgFxEsk6VTrpJdlBojtoCi\r\nFzywFNZXnlRal5tpOEIGYtdX5xrzP92xyrhSXA5SVTC1sDBHBpggL+7ADrzI\r\nFCWscTjjb9HviI5nunHA7h+Y5YmZ1ovub587Wzhe7T8cUtsDD+k4/ILwqgVW\r\nX8g0rWM4LxfWbiBC/MdevUetVeR/oNl8svWn6/YvlAC25BZqRMb9XMG50DPc\r\ndEUG2sFeeWdCCssgd5dlPNqTUCyfodl1t14=\r\n=t36p\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"alu0101127163","email":"alu0101127163@ull.edu.es"},"directories":{},"maintainers":[{"name":"alu0101127163","email":"alu0101127163@ull.edu.es"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/espree-logging-solution_1.1.0_1677759880114_0.946127019295933"},"_hasShrinkwrap":false},"1.1.1":{"name":"@alu0101127163/espree-logging-solution","author":{"name":"ÓScar Hernández Díaz","email":"alu0101127163@ull.edu.es","url":"https://crguezl.github.io/"},"description":"Adds logs to javascript code","type":"module","bin":{"funlog":"bin/log.js"},"scripts":{"test":"mocha","cov":"npx nyc --reporter=html --reporter=text --report-dir docs mocha"},"dependencies":{"acorn":"^8.8.2","commander":"^10.0.0","escodegen":"^2.0.0","espree":"^9.4.1","estraverse":"^5.2.0","underscore":"^1.12.0"},"version":"1.1.1","devDependencies":{"jsdoc":"^4.0.2","jsdoc-to-markdown":"^8.0.0","mocha":"^10.2.0"},"gitHead":"8927405931bfba1731289147407226e256412e02","_id":"@alu0101127163/espree-logging-solution@1.1.1","_nodeVersion":"18.14.0","_npmVersion":"9.3.1","dist":{"integrity":"sha512-XhGlY7y8Tj99/LyTXivRJsQCXi2Ent0iiUpnu8nzmcNV85TuQXJiA1IGvtRKXzf2ZBpkTOV54EbmsoX4cp4Q7A==","shasum":"2fd86fade9de64e83324a0fb5f2dd2041e13157e","tarball":"https://registry.npmjs.org/@alu0101127163/espree-logging-solution/-/espree-logging-solution-1.1.1.tgz","fileCount":30,"unpackedSize":51963,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB+Oe9FcbVWIIlvarcdt+/yd/x75mJpf7v3myOOPP9xBAiAnX2YpDw03rvyrsPPCEu11tR98yePP/4cdhtPWpgGAAQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkAJY5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrglw/8CcPP4b3YLIPSqtgYiynMJuX80i+dQa6SOxSoMOUD2UIGcN1o\r\ncZEIcWlRxcfHmF0DyzyD9E2x1VGrjhg0aNhFbFLwWnTqtmV0hXaLoICRv+FG\r\nLkOt+V7FaRajEuVnrAUMdKiaupv03fLmsKZjjF3l0sInO8EXV8BHUWuyTuaD\r\nBV/0EgOfMuIlO253tZVTF9ag1tKu4ZRb17jqJl0lMXxNzMLdmevEI2SQkAnV\r\nw0fVlTwonytzf5lEqaIiBhn9s8apIb7PR/VcL9WTDaHDpmkS03xHaLRpdhOj\r\nWnM5wM3OUhq2T4qmp/sKxChgEJFFrXgjoU6VDDj3hqCa1BUssTmyghKZ/rIs\r\niJXrljPKoxRzQwUKBabUBY11TQ5pgU8XPr24jRnuFdL5th2pjXoPH0MGILGO\r\nRuUB9HLqX9/QMj04MQr21/YF29VY1eeBK2Bi0tVolCujYbuAelJteHbEXA/u\r\n6weJ1/GqEpRz0F1Mb6CahS9mwiYvX9kMqgpD/YA/VaICPeDgK791YGcZvu3X\r\nOWQAjjrnPIOMuzg0igXbKoZqnFQ2ixl9nLl/5hDlInUdszOQ5NdIj90oTb7t\r\nu+3z9b/aPLiM9tNW1+BWzQ1QEq547Kwhf3mTqBUb4eUMyruATHAY4ZIViTkF\r\nunyj5jINlqO2bPFIeaXXoHSmmXd2/j9x6sc=\r\n=fKVM\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"alu0101127163","email":"alu0101127163@ull.edu.es"},"directories":{},"maintainers":[{"name":"alu0101127163","email":"alu0101127163@ull.edu.es"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/espree-logging-solution_1.1.1_1677760056994_0.10460837331068551"},"_hasShrinkwrap":false},"1.3.6":{"name":"@alu0101127163/espree-logging-solution","author":{"name":"ÓScar Hernández Díaz","email":"alu0101127163@ull.edu.es","url":"https://crguezl.github.io/"},"description":"Adds logs to javascript code","type":"module","bin":{"funlog":"bin/log.js"},"scripts":{"test":"mocha","cov":"npx nyc --reporter=html --reporter=text --report-dir docs mocha"},"dependencies":{"acorn":"^8.8.2","commander":"^10.0.0","escodegen":"^2.0.0","espree":"^9.4.1","estraverse":"^5.2.0","underscore":"^1.12.0"},"version":"1.3.6","devDependencies":{"@alu0101127163/espree-logging-solution":"^1.3.5","jsdoc":"^4.0.2","jsdoc-to-markdown":"^8.0.0","mocha":"^10.2.0"},"gitHead":"9838330164edb662833510450702056c984a7210","_id":"@alu0101127163/espree-logging-solution@1.3.6","_nodeVersion":"18.14.0","_npmVersion":"9.3.1","dist":{"integrity":"sha512-HJxPHog6dVvF6dn6BcXX10h98wQ9+v35grQQpWlmmG0crAE4GzQCiZ+nMdnyeBPcgl/dkPhDsXFEJK5ZHyxy1g==","shasum":"22982bdff2d9ac3dc056a3f73e5bb1ec6412593d","tarball":"https://registry.npmjs.org/@alu0101127163/espree-logging-solution/-/espree-logging-solution-1.3.6.tgz","fileCount":30,"unpackedSize":52023,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAQM8uQ7NsBSC6sUWwdNislVwU3LSxCCNVAVg9rHxGIbAiB1snSFonsZt3mSFjYiYSHjQ6Egxz8xwGhAvJnwykJImg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkAKgtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmplUA/+L2MAJH0u4qokdamSuwr/aLzRfrUr7VkEAIdWzVKCggKydhdp\r\n41S23HnC8WTNiDXhTUNr3LX/HcG7N74oL6BGaQ1mbDYLftfCHETwXGvIRQVA\r\nc94WHNO3uykjb9rjlqONS86/hi1MRYMKOdX+Zr5JZujAeDqA6MJZwL3JQiAp\r\n1MrMwxfIBpQ0O5USuQsHhkTYY/N/uMs298f5f4o8m6S1DbGFejIExmPfWqxc\r\n7WhTRo1mtODLVKFDaA4xOQM4Js2WZtd1BbmHhxOd9LLokOluFTyxJk8GzUla\r\n74R7MhRWW2dNCjtEwTGGIuWhvhrsjHE4w0Z7G3bXQuJIiGJs3DGlM5kIGKuz\r\nzKDMMvkLf6iyx2q60wsRhrPJfZYRLuOVPfxU6SwsvqVnjq8mQbLrF2VOPYv1\r\nKt9tTmGUdHbi3s0chyiReLtdfXVBMa8U39WwXY+Xkg2zQSrqB7u90VPWEyjM\r\nInNYYxEa27HMDWBYE2zHu32ML+28xuD5yDQsAInBU5MIIHXINmoGX9mu38zm\r\necWW3HMsn95wz3GzDWA9Estm5rvrRqcwKBTE/ADTFXD5PYONTGUsIsjlfjFv\r\nKBXutAEyIHf6uljl+qmIGVfv2aE4cYLbq2m0NCxA1zIx6v0VmkkmxzRS6Rug\r\n5+HVcJVFWskgoPqPAg8mWqGZ2cyRbkWcSCY=\r\n=Ns4H\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"alu0101127163","email":"alu0101127163@ull.edu.es"},"directories":{},"maintainers":[{"name":"alu0101127163","email":"alu0101127163@ull.edu.es"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/espree-logging-solution_1.3.6_1677764653180_0.1549773042906526"},"_hasShrinkwrap":false},"1.4.0":{"name":"@alu0101127163/espree-logging-solution","author":{"name":"ÓScar Hernández Díaz","email":"alu0101127163@ull.edu.es","url":"https://crguezl.github.io/"},"description":"Adds logs to javascript code","type":"module","bin":{"funlog":"bin/log.js"},"scripts":{"test":"mocha","cov":"npx nyc --reporter=html --reporter=text --report-dir docs mocha"},"dependencies":{"acorn":"^8.8.2","commander":"^10.0.0","escodegen":"^2.0.0","espree":"^9.4.1","estraverse":"^5.2.0","underscore":"^1.12.0"},"version":"1.4.0","devDependencies":{"@alu0101127163/espree-logging-solution":"^1.3.5","jsdoc":"^4.0.2","jsdoc-to-markdown":"^8.0.0","mocha":"^10.2.0"},"gitHead":"69a1fce61634cd5103ade3946d3e5d12d1ed135f","_id":"@alu0101127163/espree-logging-solution@1.4.0","_nodeVersion":"18.14.0","_npmVersion":"9.3.1","dist":{"integrity":"sha512-NFOrcEY3FrAmIQYTQuioKlq3q9YKFAaAQNiabOg6qS7Cddv8vJORe5O/a70/K5VcZugKzvdk6Y9aGMRF3uRFsQ==","shasum":"576bcd3cf8c90647c849d65cd42988e0f0a6c234","tarball":"https://registry.npmjs.org/@alu0101127163/espree-logging-solution/-/espree-logging-solution-1.4.0.tgz","fileCount":30,"unpackedSize":51698,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDhCqz6qalJf2ZShMCOqJ/dKdQQIKCjqo2MX85YqnJ/NAIhAN7WjNZ5dREAoL9ptCRXgMQxP1tgYFOpwkfsvfnkavxV"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkAKklACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmogAQ/+L78MDfFQrvwA0056csT4oRhliPpHyGBLxdczaFcRFG5pVOwj\r\nuIm/J8XQjyDRAGE3tX6H3y39VGW9xFy9HVs3c/+Z8LBvxjul1Wiz3yJfqYjT\r\nL/P29ckOkzBP5FbQncYSuSwq7N6zU3bQxyNB3IjDYzFaCd9GP5iLfK/sQ1mK\r\nKFVTHvGF7erDqhI05EHpGcRz3B0rLZhOHz06DqyuzITJ8pC9uR9GTTjYE7kA\r\n8ONUlUs/aVpu59lRxN2lk6Hi620p0IAJiV8AKMVsENbIHbhloYVKQ4ptsaGj\r\nwHvP9nbZLUjMTy4QG4V3dbgUUEbcmxjPPKjrrlAaDEzis28rRPhH+kewarQb\r\niokPxgGzN7ImmrWlSaJ6WmxMXGZRsxGUoeawL1lCiptMLaGWkO6FFixJKSjK\r\nhmNUuK0zf0rK9Q1oEKmAmk1qXW8JNN5iKvv4DmtCdIh8IaItdYx9Riy5lBq6\r\ncUoWqnsJZaUa/SWAs8XiDvFkOjCxScjWzfp64kx7Z1kPPovUYH52n1zzBs9j\r\nRJ4lzM8MX/Pk+v204v2iyYEo6CUsjq+V5HqfSox4cDE3zSxKlBeYqf5ntCKQ\r\nuDRfRh9aRUeFYD6J0KRAp8nayWo0jZBZG2zwEgqBL8wOXxW+aNHEUjPZx/1s\r\nqgToBLh9RhwYQbYrkLCXotnnQvxXB32GIYA=\r\n=ILZ5\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"alu0101127163","email":"alu0101127163@ull.edu.es"},"directories":{},"maintainers":[{"name":"alu0101127163","email":"alu0101127163@ull.edu.es"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/espree-logging-solution_1.4.0_1677764901520_0.7847417679264634"},"_hasShrinkwrap":false},"1.4.1":{"name":"@alu0101127163/espree-logging-solution","author":{"name":"ÓScar Hernández Díaz","email":"alu0101127163@ull.edu.es","url":"https://crguezl.github.io/"},"description":"Adds logs to javascript code","type":"module","bin":{"funlog":"bin/log.js"},"scripts":{"test":"mocha","cov":"c8 --reporter=html --reporter=text --report-dir docs mocha"},"dependencies":{"acorn":"^8.8.2","commander":"^10.0.0","escodegen":"^2.0.0","espree":"^9.4.1","estraverse":"^5.2.0","underscore":"^1.12.0"},"version":"1.4.1","devDependencies":{"@alu0101127163/espree-logging-solution":"^1.3.5","jsdoc":"^4.0.2","jsdoc-to-markdown":"^8.0.0","mocha":"^10.2.0"},"gitHead":"d55ff233b279a1fad56e0996664b761e5e5547df","_id":"@alu0101127163/espree-logging-solution@1.4.1","_nodeVersion":"18.14.0","_npmVersion":"9.3.1","dist":{"integrity":"sha512-CC7aWR0+rvGrTuLkpbbKFDtF/YRU46guwwEUe3tfP/51qAaXq4DTg0Z6Zh4RWvnMgGLUXzDqscwFXY1Bciuuig==","shasum":"e2ab7d04f9cdc24a54b1e34f9d4a360b285e2938","tarball":"https://registry.npmjs.org/@alu0101127163/espree-logging-solution/-/espree-logging-solution-1.4.1.tgz","fileCount":29,"unpackedSize":813413,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH3xncqVoNVOp4EaxcN77cPMV7ljU+csNhPcaKsj/8VgAiEAzZRiIlQvHXhYwiSgDhaV0IwGelLOd97Ipf/YOQkhcqM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkAesEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr+Kw//V4eQFa/pqEr9Y8YbKWN+QeXDo+u5N1Nk0yL88AmPPDzLuxBL\r\nAI6iVEizCjz+tEeJwPUJvLVld2MkvSBJjwHlbyVHinIHYdfWxKm58srSrYO+\r\njAoZBAQD/ppzvRFBfllqaGIijTDJb/3AgG7LBu78JBQBr/3EXOTBUXCK8/HW\r\ncy/b/VgbL82HoS/8uEl1RZ5EpoeD/VrqpljCgI3nA+kR326r0AP+Udv9k6YK\r\nnrR1sGzwmLUnyJvfnzCWKWCCOJhFg43ynrOR/n1PMRCQC1UE3kxJ0/Kwl9h8\r\n8gDvLXpnrCrf9a+pdHN6W2R4PD5zfaEfmOja5b5iyO2p7JPEB/76wGRzJytL\r\nUxxg14SQpa5+QdODG2IDTFMstjCuHBPOmvpzXm3WQewRh+BhT04hTZJ/VvRz\r\ne20cGo3O7UDRZxtmE1FoXOhB7eWiOy/Hjm9UBzm9ruFac9xc/EXgQPRR6qB/\r\nhtBdoy3MbiC+SXoPyQSXx7wiBLL+DkGP+Oe4SV9qW9N2O32ZNew5cYnHU8US\r\nByeDLDkjsUeA8DMvAgZXPHr4PftB3rM3/ug0e4gHD5fjtAbtYu5lrLtWnwHw\r\n6YU+r+TYzn+C/raLIvPqs8TKaLLe3xVHexBsHgKCjzwoOo0iRpumUsp9VAuT\r\nTVQThkCDnJ+0iN9pMTiaGNUw1PaU9DDOGhA=\r\n=Jp75\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"alu0101127163","email":"alu0101127163@ull.edu.es"},"directories":{},"maintainers":[{"name":"alu0101127163","email":"alu0101127163@ull.edu.es"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/espree-logging-solution_1.4.1_1677847299935_0.7535737893156396"},"_hasShrinkwrap":false}},"time":{"created":"2023-03-02T12:24:03.098Z","0.3.0":"2023-03-02T12:24:03.347Z","modified":"2023-03-03T12:41:40.225Z","1.1.0":"2023-03-02T12:24:40.271Z","1.1.1":"2023-03-02T12:27:37.158Z","1.3.6":"2023-03-02T13:44:13.347Z","1.4.0":"2023-03-02T13:48:21.663Z","1.4.1":"2023-03-03T12:41:40.140Z"},"maintainers":[{"name":"alu0101127163","email":"alu0101127163@ull.edu.es"}],"description":"Adds logs to javascript code","author":{"name":"ÓScar Hernández Díaz","email":"alu0101127163@ull.edu.es","url":"https://crguezl.github.io/"},"readme":"# [Práctica Espree Logging](https://ull-esit-gradoii-pl.github.io/practicas/esprima-logging)\n\n### Procesadores de lenguajes 2021-2022\n\n#### Óscar Hernández Díaz alu0101127163\n\n## Resumen de lo aprendido\n\nEn esta práctica hemos aprendido diferentes herramientas para el  de como funciona un compilador, entre ellos la construcción un árbol AST mediante la herramienta [Esprima](https://esprima.org/). También hemos aprendido ha usar la herramienta [Estraverse](https://github.com/estools/estraverse), donde nos facilita la búsqueda dentro del árlbol AST para hallar aquellos nodos que nos interesasn ej. `FunctionDeclaration`. Por último, hemos podido usar la herramienta [Escodegen](https://github.com/estools/escodegen), la cúal usamos para poder generar de nuevo el código de js a través del árbol AST.\n\n## Indicar los valores de los argumentos\n\nSe ha modificado el código de `logging-espree.js` para que el log también indique los valores de los argumentos que se pasaron a la función. \nEjemplo:\n\n```javascript\nfunction foo(a, b) {\n  var x = 'blah';\n  var y = (function (z) {\n    return z+3;\n  })(2);\n}\nfoo(1, 'wut', 3);\n```\n\n```javascript\nfunction foo(a, b) {\n    console.log(`Entering foo(${ a }, ${ b })`);\n    var x = 'blah';\n    var y = function (z) {\n        console.log(`Entering <anonymous function>(${ z })`);\n        return z + 3;\n    }(2);\n}\nfoo(1, 'wut', 3);\n```\n\n## CLI con [Commander.js](https://www.npmjs.com/package/commander)\n\nPara usar `commander` debemos deponer el siguiente código en nuestro programa: \n\n```js\nprogram\n  .version(version)\n  .description(description)\n  .usage('[options] <filename> [...]')\n  .option('-o, --output <filename>', 'establecer el fichero de salida del resultado del programa');\n\nprogram.parse(process.argv);\n```\n\nEsto lo que hará, por ejemplo, si le pasamos la opción `-V`, nos mostrará la versión de nuestro programa, la cual está guardada en nuestro `package.json`. También podemos pasarle la opción `-h` y nos mostrará la guía de uso.\n\n## Reto 1: Soportar funciones flecha\n\n\nPara poder considerar las funciones flecha en nuestro programa, simplemente tenemos que añadirle el nombre del nodo al que le corresponde, en este caso sería `ArrowFunctionExpression`, con esto ya podemos evaluar las funciones flecha y trabajar con este nodo.\n\n```javascript\nfunction addLogging(code) {\n  const ast = esprima.parse(code, { ecmaVersion: esprima.latestEcmaVersion, loc: true });\n  estraverse.traverse(ast, {\n    enter: function (node, parent) {\n      if (node.type === 'FunctionDeclaration' ||\n        node.type === 'FunctionExpression' ||\n        node.type === 'ArrowFunctionExpression') {\n        addBeforeCode(node);\n      }\n    }\n  });\n  return escodegen.generate(ast);\n}\n```\n\n## Reto 2: Añadir el número de línea\n\nEn este caso, para añadir el número de líneas y tabajar con estas, debemos primerp decirle a la herramienta `esprima` que queremos que nos incluya el número de línea donde se encuentra cada nodo, esto se hace añadiendo `loc: true` en el `parse` de `esprima`. \n\n```javascript\nfunction addLogging(code) {\n  const ast = esprima.parse(code, { ecmaVersion: esprima.latestEcmaVersion, loc: true });\n  estraverse.traverse(ast, {\n    enter: function (node, parent) {\n      if (node.type === 'FunctionDeclaration' ||\n        node.type === 'FunctionExpression' ||\n        node.type === 'ArrowFunctionExpression') {\n        addBeforeCode(node);\n      }\n    }\n  });\n  return escodegen.generate(ast);\n}\n```\n\nPor último, para incluilo en el `output` sencillamente añadimos en el `console.log` -> `${node.loc.start.line}`, y así nos añadirá en que linea se situa el nodo.\n\n```javascript\nfunction addBeforeCode(node) {\n  const name = node.id ? node.id.name : '<anonymous function>';\n  const parameters = node.params.map(param => `\\$\\{${param.name}\\}`);\n  const beforeCode = `console.log(\\`Entering ${name}(${parameters}) at line ${node.loc.start.line}\\`);`;\n  const newbeforeCode = spacesAfterComas(beforeCode);\n  const beforeNodes = espree.parse(newbeforeCode, { ecmaVersion: 6 }).body;\n  node.body.body = beforeNodes.concat(node.body.body);\n}\n```\n\n## Tests and Covering\n\nPara realizar los test se hace uso de la herramienta [mocha](https://mochajs.org/). Ahora que ya tenemos los test de mocha podemos implementar covering/cubrimiento para poder testear si nuestro código y saber la calidad de este usando la herramienta [nyc](https://www.npmjs.com/package/nyc).\n```\n> espree-logging-solution@0.3.0 cov\n> npx nyc --reporter=html --reporter=text --report-dir docs mocha\n\n\n\n  Testing espree logging\n    ✔ transpile(test1.js, logged1.js) (42ms)\n\n  Testing espree logging\n    ✔ transpile(test2.js, logged2.js)\n\n  Testing espree logging\n    ✔ transpile(test3.js, logged3.js)\n\n  Testing espree logging\n    ✔ transpile(test4.js, logged4.js)\n\n\n  4 passing (87ms)\n\n----------|---------|----------|---------|---------|-------------------\nFile      | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s \n----------|---------|----------|---------|---------|-------------------\nAll files |       0 |        0 |       0 |       0 |                   \n----------|---------|----------|---------|---------|-------------------\n```\nPara mejor visuzalización podemos usar GitHub, activarlo en nuestro repositorio, crear una carpeta llamada `docs` y volcar el resultado en ella.\n\n```sh\nnpx nyc --reporter=html --reporter=text --report-dir docs mocha\n``` \n\n## References\n\n* [espree-logging-template](https://github.com/ULL-ESIT-PL/espree-logging-template)\n* [Tipos de nodo Ast](https://ull-esit-gradoii-pl.github.io/assets/temas/tema0-introduccion-a-pl/espree-visitorkeys)\n* [Espree](https://github.com/eslint/espree)\n* [Escodegen](https://github.com/estools/escodegen)\n* [Estraverse](https://github.com/estools/estraverse/wiki/Usage)","readmeFilename":"README.md"}