{"_id":"@csd-angola1/game-engine","_rev":"5-3d33cd5ad7e80a8d4df6ec901c3467b7","name":"@csd-angola1/game-engine","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.1":{"name":"@csd-angola1/game-engine","version":"1.0.1","description":"The game engine is a simple machine. It may start a game or compute a guess, and it will always return a `game_status`:","main":"index.js","scripts":{"start":"node index.js","test":"jest --watch --notify"},"author":"","license":"ISC","dependencies":{"@yuri.bobo/random-line1":"^1.0.2"},"devDependencies":{"jest":"^24.9.0"},"jest":{"coverageThreshold":{"global":{"branches":80,"functions":80,"lines":80,"statements":-10}},"collectCoverage":true},"gitHead":"f9eeca6992757fc6a56e808531d12b19931d7857","_id":"@csd-angola1/game-engine@1.0.1","_nodeVersion":"12.12.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-hurR1f/HiWv6LBDH1S9mAOQHD6oi6+PwnCa8wCe3Wo6dD868g5/Mw3RYvGXNgCMZJ5M6kWg/Nx6lsU5YMCGeIQ==","shasum":"57e4faad995a0c623472413401326d1ab6c20c17","tarball":"https://registry.npmjs.org/@csd-angola1/game-engine/-/game-engine-1.0.1.tgz","fileCount":6,"unpackedSize":5096,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgnnHkCRA9TVsSAnZWagAAFaQP/jOoIBbC3Mb8igZQKCEn\nptCv2DsktxuK0qtPMh5DHq21hN7DKoqI9RZ9weig5r86vxdP2aTjSxJgkaRB\nOZEZFbeYba8hQeFa4Jp+sg8loqhx542gDW++QzVKUMk2gF0X3k5UgVE5vG6S\nRuJKt02CyGw001JqBJOLmnMPFlhNRu+cV849OSqDl6BDAQ2O4zSbXdSZmi8X\nMFGY73t6JKxK/ndKnbxw6gl6gz96J8hWDIgKZpSktw698D0feMlSRkay3Gi4\n9flYV8HFAJF9rcoD9WdmInvan5UmhT9RnbNxWYMzDi4eBGXC19ImZjim67qe\nkcBAt70ynjTZUAKHZLExDCjmekV9l6lokKUNRb9W+nrZCgncJ0FsyHaSI4QO\nzlLg55M5Mz4gOudeKkwCrIB8v8YMLbLeTuXIIdHh/hsOcBDKyyedHoOb2wo7\n7lpHUtGqJbWxxVmvTAdWVnTgalMvcUkOH4F7bGzTL479V/xdD9cwFOhM/5eB\n+uCCAwqul3j/kK5FfllbUovoFq/zFJ1rQ1Jy+i/u5PJwys1hPE/bLVDzRuXp\nol1wBVNhMDSrgbQu1Xr83effbOw1+4iYRmztkMut1O0Tdy7niMN1HIrbFiUU\nXz1Rwj3TJRH1sXyaHNNInBA5HV5U+TgM9q0HYEN/2BWr+w2objL/Egm+NL1h\nFRkb\r\n=dikb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDMsHQwPbFzuyQJkWlfPbJrmdR91AxohPGB9Zmd1/fyUwIhAO0cQ+bIFbkJAFhnpQXsZ9/6T9p8IT3xCToei+8qWJIW"}]},"_npmUser":{"name":"csd-angola1","email":"saul@eicircuitm.com"},"directories":{},"maintainers":[{"name":"csd-angola1","email":"saul@eicircuitm.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/game-engine_1.0.1_1620996580076_0.045643938267899475"},"_hasShrinkwrap":false},"1.0.2":{"name":"@csd-angola1/game-engine","version":"1.0.2","description":"The game engine is a simple machine. It may start a game or compute a guess, and it will always return a `game_status`:","main":"index.js","scripts":{"start":"node index.js","test":"jest --watch --notify"},"author":"","license":"ISC","dependencies":{"@yuri.bobo/random-line1":"^1.0.2"},"devDependencies":{"jest":"^24.9.0"},"jest":{"coverageThreshold":{"global":{"branches":80,"functions":80,"lines":80,"statements":-10}},"collectCoverage":true},"gitHead":"f9eeca6992757fc6a56e808531d12b19931d7857","_id":"@csd-angola1/game-engine@1.0.2","_nodeVersion":"12.12.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-BwfwIvrL6DJxey9KrDrSD7ak/opjC35W3oUVPLMeDbIx0b2NdtOyU/yJWhCNOl65pvHJpdqHisPvkIp3/TltUA==","shasum":"f7aa6ba1398b76a781dbaba4e56380eb152921f9","tarball":"https://registry.npmjs.org/@csd-angola1/game-engine/-/game-engine-1.0.2.tgz","fileCount":6,"unpackedSize":5121,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgnnNFCRA9TVsSAnZWagAAJOsP+gJmjju5NZOVROsKYoVX\nIxpoKJANDynoDjWK5ay/pyazL0W3OKTZD0E3OyPfDqPQWQDJm1aWrf7CaNjh\n8ZVCyvN9XxvqHuo3EFiP5WFSzKvDpGUKctJ5fsz0grWEsO/qKnXQIToBhkfM\nhBJRpSeQABfhNcNTZgGN9ITluUZVCRP7Mlno/NOc3PT53fk1FXS110hXihNl\n5iIpjSdNo7CpY26xjLKfAoBVTvHqoLJ33wHV31vvK5hFsyUNGaBQf+ix5jc/\n13tI3ORLY0T1tWH0prfFd0RiYOawHMeoItEpvW3BEGOdADA2++vAtZHqyg8r\nL7ncAwzhLvQU9VW/kbzEqiHqmPQV6L3rBujkZPwRvjwnF0YYDeKrY7J8KZH9\nkaenV00xIN8b18LJwTaf0zp7CKw5Y80S1zs2kcYxqxN3agKNdGJOQ9GEnbIF\nxM7UonXm8q9llGEoQAuMVt67l1ZC6MOxdpbqDS3aLKXXeiHb3N5CItGRdR1Y\nzlw32xSKel4O9CPwlup+/XzXYEJyRmmzzbjVxmhDcaiLJ8EMmPALLtlfcwYZ\n6qJmYn5inkU4z/RfN5ynwWVycjRMVX0SeSRxfXjK9yxusI+iNbdg9MsJFM2v\n5yNPIpHO8juSnA+Um7SQs55UNPhzjZATua0nSQake4ujbIBthHEM1pEmHBP7\ntJnA\r\n=hgbh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBT7Okr5d3O0Zrx3Nyf1+e6iP9RUNNYOCquj3HPBEILiAiAYJYPGwsWnQTs7i6uFnSvMc5pBI25R8ePw6chDR1Dc6w=="}]},"_npmUser":{"name":"csd-angola1","email":"saul@eicircuitm.com"},"directories":{},"maintainers":[{"name":"csd-angola1","email":"saul@eicircuitm.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/game-engine_1.0.2_1620996933040_0.9847018756663448"},"_hasShrinkwrap":false},"1.0.3":{"name":"@csd-angola1/game-engine","version":"1.0.3","description":"The game engine is a simple machine. It may start a game or compute a guess, and it will always return a `game_status`:","main":"index.js","scripts":{"start":"node index.js","test":"jest --watch --notify"},"author":"","license":"ISC","dependencies":{"@yuri.bobo/random-line1":"^1.0.2"},"devDependencies":{"jest":"^24.9.0"},"jest":{"coverageThreshold":{"global":{"branches":80,"functions":80,"lines":80,"statements":-10}},"collectCoverage":true},"gitHead":"f9eeca6992757fc6a56e808531d12b19931d7857","_id":"@csd-angola1/game-engine@1.0.3","_nodeVersion":"12.12.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-Qhjv8FhSyDLlAy92tpsKxQ8fRLefhjIiu30ZQH2t8DqPMY/wr7m+Gk21zff58s82paUdtnHzG35mCRWSzwAFvw==","shasum":"5cac3bbc03fcb9a5275254927c4eaa1f9bf8f468","tarball":"https://registry.npmjs.org/@csd-angola1/game-engine/-/game-engine-1.0.3.tgz","fileCount":6,"unpackedSize":5128,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgnnRCCRA9TVsSAnZWagAAA6gQAISehOe5jG+L4uycq7Nh\nllvCxCi/pOOJAw/GWi6l8OLCHBFw4xtlFjniEmBTV9L7tbHuDb/mwzZcQiD2\nE6n6+wQsoORHZnkU2OKo8Jeh5J4kbVuHwHPFYylGAipNNqgkh5b45H+QL6tP\ne2AnB47XPiOVdrSjG7u0zqa9UjNc35y1TGK9LIBBm3XASn9fJ/wBlYwneIEg\nb7ZPvp5o5wBtefE4iz8FU1UT3CKD0yCHFZFXiwaCHVvsbXg3B0JQTcXx5MQE\nsG9gK/363MMth6e8f/KTL5kmN3vFnNcRLV0Tk+ug58sSPeAi0VM7O+Piulr5\nU96O4aHepCQXH2JRuQia5Re1S3JliQrN4N7aN18dBoo8vBRqWWvFMBuDkVoF\nTTf1BndAuu1Ppf79ehAggMps60dgMwlgJqvneBdwJvM1jBokBWrgtPrZ9eR3\nqPdk623bXbVoYLiQmMmCi3ZQ6a+QPQ0DJMyP/EfGn4pKk/u8RfbobsKY8Ht8\n+D9X2UUigOGOfkR/3Vkte81cxE/FWGLL9eUqrPWTzPsOF6B4IuEHe9nDcO9d\n0idWehE9ARflNlBR2h1us35p+dNTm2erWJYP5m+MoYqzXT8FRecSxMpnGfGp\ngbrWZQdFYpoEvNa7UkepkHtgw8OJo5FeX380BicOl+sdJ5oreoF7SJihq4Lz\nZUhG\r\n=+PfZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGW2+3JQaf9lwUMa2eZoJ+EhfUof/iCy5ANnV796om0YAiEA+lZcBP/P35sB8rLH1L11hoVgqLdTDSXfo94NnjcclOI="}]},"_npmUser":{"name":"csd-angola1","email":"saul@eicircuitm.com"},"directories":{},"maintainers":[{"name":"csd-angola1","email":"saul@eicircuitm.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/game-engine_1.0.3_1620997186504_0.9152381946726926"},"_hasShrinkwrap":false},"1.0.4":{"name":"@csd-angola1/game-engine","version":"1.0.4","description":"The game engine is a simple machine. It may start a game or compute a guess, and it will always return a `game_status`:","main":"index.js","scripts":{"start":"node index.js","test":"jest --watch --notify","ci":"jest"},"author":"","license":"ISC","dependencies":{"@yuri.bobo/random-line1":"^1.0.2"},"devDependencies":{"jest":"^24.9.0"},"jest":{"coverageThreshold":{"global":{"branches":80,"functions":80,"lines":80,"statements":-10}},"collectCoverage":true},"gitHead":"c07d7d8a27435f0a8c9b46c57f656475cb9abbc2","_id":"@csd-angola1/game-engine@1.0.4","_nodeVersion":"12.12.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-BEgoFywUHlpEMSUK79p8DsiUjrjtl2aRz5rMyInkBY8zs+u3jq8ZdtFn1Umhvv20ZlDeIWgyt/scymNkb9m/aQ==","shasum":"5c44017f8b405d55bedf501c91c719d0c077f678","tarball":"https://registry.npmjs.org/@csd-angola1/game-engine/-/game-engine-1.0.4.tgz","fileCount":7,"unpackedSize":7827,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgnoOjCRA9TVsSAnZWagAATSoP/0oveImeyS92y52oLozR\nbMJ9yJBbLJ6dza+K9pnv88iCS6j9zSWQpuc20Ka09Y0a+P/hRUVHWR6hAeuG\nFMTz3lY0I58Hz8cQErXguy+iv9qZL9tOZLJtHnXfub0ohHZO9M1NNZcJqm77\nabrtC2g4d6gx1R9aigTFmCLLUTqmRofhkudEmTEfbJRmCRdDgnVvLeJPuze8\nLEszjkU2oe59fdou52SYgVpWA7aiYfbGZ9i1/AyQXrASRbZgF/fZ9hhpMTzA\nisEmuc1s16MUGn1enRkqhpC4CKQk1nf5iZJ+Fxsy1yGpoqO05lhdXK2p41jH\nJtOPFVDIklSag1Nvhjqtp9jUUZoEVK9OXjzCbuUi8Zbr18HA0/1CoXfbzDQO\nr5EjLT5k60BZeBj5B7dk4zcb8XAnaX5BmsCO99Hquir9IkKEVsr1uRw5QlJT\nnf6gQQNsY3yLs7j6Lw7pX/EaknFppV18GbP+viCp7f1cop12zxYz4aJpPfxG\nKq9sp/56aJBnehWb38LCCeCmdoHPr5dj/UHsFZI7xCjQ5e4XAi7E1uqkMQ8E\nCLZPNlnql4ESeAqK/DrtVe67xGieswQ4j7+6Ds9gu8dbb8L4jDn5u5GZv9Tf\nze5tx2KrKOVM9cYa9P4iRCPO4M5dctRONVzIuWcUsxHIGf3kFcaYlOXnStZG\n6ooN\r\n=vywk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBZObBPgH3WlYnygagl7CEugozvfth1M8jtqNJxKj2eJAiAwE7Biz9tIueEoZT17BKxlXIPeyiy6jQwyptovhNo0Wg=="}]},"_npmUser":{"name":"csd-angola1","email":"saul@eicircuitm.com"},"directories":{},"maintainers":[{"name":"csd-angola1","email":"saul@eicircuitm.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/game-engine_1.0.4_1621001122989_0.5350289729822006"},"_hasShrinkwrap":false},"1.1.0":{"name":"@csd-angola1/game-engine","version":"1.1.0","description":"The game engine is a simple machine. It may start a game or compute a guess, and it will always return a `game_status`:","main":"index.js","scripts":{"start":"node index.js","test":"jest --watch --notify","ci":"jest"},"author":"","license":"ISC","dependencies":{"@yuri.bobo/random-line1":"^1.0.2"},"devDependencies":{"jest":"^24.9.0"},"jest":{"coverageThreshold":{"global":{"branches":80,"functions":80,"lines":80,"statements":-10}},"collectCoverage":true},"gitHead":"b024bba59ce9ab8b1a34df9ede0e512ca90d1232","_id":"@csd-angola1/game-engine@1.1.0","_nodeVersion":"12.12.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-J6ghasnol1G7dlFyw/EPOhvreGQLi5/sGO6Dn8Bx6BfNa8U/VSrMsC6ZV3W4MXwZkkDSAgK7Vm6FbQSVNV52fQ==","shasum":"1a21a206f6e807291fdcf19c212c40d834453a64","tarball":"https://registry.npmjs.org/@csd-angola1/game-engine/-/game-engine-1.1.0.tgz","fileCount":7,"unpackedSize":8779,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgnphRCRA9TVsSAnZWagAAJ0YP/RIj4cpE5tf7JEOf7zHs\n8b7hPRHK1shVUTdFLl2sf/Hl8fmIIZZbWIURCkjGY1uUCAJ+MwsS3lEpyrJW\n+q8D05tRdEuBGb4sy6hSmdlt4ZyOJGgO2+QHSV1zk9smVsp4pi6AvxqnA6PH\n1ioYCMh7pEhNvfOXvuMl60A7DybZTCh3Cmlu9K5VVEBja8zoIlVIPKBdfSNz\nQX0i0wpYtjxyY284yvfZLVoqvMeAKjwaKjtrDylZELXgliNDrf9oXBNnFbic\n37iv74sxJWD6AWhfNFf6YdmSG3sSbL7f6DUTwdVB1HyKs/V3yLnu0Lh3EITj\nwgtBLTxbqqBEkOhuTI82AeU6nosYkY5s4hQ/8wYzlJK3F/kEWqk+Cj46hJDz\nmBWsDkOzTeRbOOdNWJBmQc8KcXheuAPcp9iNKQkqO3Wpl/A6im/25Na0e5i0\nAbhfOPYhtRHqQFXS5iSPgNaEWGeVHqNvfAcg747BKGO17CKwHLnJijVDjeK+\nGdA4cVr1f9DmFyxIVfH6R9JaLN/0KuPfMk0N1ZUuA0CBJCSVeQRqc/mjS5uq\n2gaZ3IoSe5zA9DcHz8+wv3zrwpuQHmj8JB8Dgex7jvrp+skAceA3fc5o8X3a\najnW1s3iRy92t9tkJtBT5QYcd/1OMxSivtQXbVN/akVLsWQzQF4byvQHmBZs\n8Fcj\r\n=Tyls\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCKsL2LJ9aJGp7W7azVKyPpoE7hJCzYRQskd+27DFywDgIhAOTBtqJBrKHUpp5OEpJjFo+2Szk1y3zQmFukmclW9q18"}]},"_npmUser":{"name":"csd-angola1","email":"saul@eicircuitm.com"},"directories":{},"maintainers":[{"name":"csd-angola1","email":"saul@eicircuitm.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/game-engine_1.1.0_1621006416683_0.49458841639874773"},"_hasShrinkwrap":false}},"time":{"created":"2021-05-14T12:49:40.011Z","1.0.1":"2021-05-14T12:49:40.233Z","modified":"2022-04-05T02:01:43.251Z","1.0.2":"2021-05-14T12:55:33.156Z","1.0.3":"2021-05-14T12:59:46.638Z","1.0.4":"2021-05-14T14:05:23.153Z","1.1.0":"2021-05-14T15:33:36.825Z"},"maintainers":[{"name":"csd-angola1","email":"saul@eicircuitm.com"}],"description":"The game engine is a simple machine. It may start a game or compute a guess, and it will always return a `game_status`:","license":"ISC","readme":"# The Game Engine\n\nThe game engine is a simple machine. It may start a game or compute a guess, and\nit will always return a `game_status`:\n\n```\n{\n  status: RUNNING,\n  word: 'banana',\n  guesses: ['a', 'b', 'c', 'd'],\n  display_word: 'b a _ a _ a',\n  lives: 3 // Initial 5 - 2 wrong guesses\n}\n```\n\n# 💡 Exercise 1: Packages and Build Automation 💡\n\nAdd the package you just created to your `package.json` file and try it! Well,\nif you did everything right, a strange error will appear.\n\nFix this error (you might need to change the **random_line** package), and\nupdate your `package.json` if needed.\n\n# 💡 Exercise 2: TDD, Code Coverage and Real Time Development 💡\n\nNow it's time to finish the game engine. But now we're getting pretty picky with\ncode coverage, and your implementation must adhere to our policy.\n\nWhile you're at it, try to add a new script to your `package.json` file using\nthe options `watch` and `notify` from jest. You can check the\n[documentation here](https://jestjs.io/docs/en/cli#watch). This way you're going\nto try **REAL TIME DEVELOPMENT**!\n\nGo for it!\n\n# 💡 Exercise 3: Continuous Integation and Cndontinuous Delivery 💡\n\nThe whole CI magic happens in the file `.gitlab-ci.yml`. It's already testing,\nbut it could be publishing your new library at the end of the pipeline. Try\nadding a new step named `deploy` and running `npm publish --access public` on\nit.\n\nOh, and don't forget to increment your version before doing that, or you'll\nreceive an error.\n\nTIP: Instead of changing your `package.json` file, try the following command:\n`npm version patch`\n\n# 💡 Exercise 4: Code Smells and Code Quality 💡\n\nWhat is a code smell? Some signs that our code isn't that good. What are some\nexamples of code smells?\n\n* Giant functions\n* A function that takes 8 arguments\n* A single file with 4500 lines of code\n* Magic Numbers\n\nThis list can go on and on, and some code smells are specific to certaing\nparadigms and languages. Take some time to reflect with your team: what is a\ncode smell to you?\n\nNow, let's automate the code smell detection. Some of these smells can be\nautomated by using [JSHint](https://jshint.com/docs), and that's waht we're\ngoing to do!\n","readmeFilename":"README.md"}