{"_id":"@buildup_ag/eslint-plugin","_rev":"6-51d72dde8e5cadb332acb8f8affbca4c","name":"@buildup_ag/eslint-plugin","dist-tags":{"latest":"0.1.0"},"versions":{"0.0.5":{"name":"@buildup_ag/eslint-plugin","version":"0.0.5","description":"Custom Angular eslint rules for Buildup AG.","main":"dist/index.js","scripts":{"test":"jest","build":"tsc & cp src/index.ts dist/ && cp package.json dist/"},"dependencies":{"@types/jest":"^27.0.2","@typescript-eslint/eslint-plugin":"^5.1.0","@typescript-eslint/utils":"^5.1.0","@typescript-eslint/parser":"^5.1.0","babel-jest":"^27.4.5","eslint":"^8.7.0","jest":"^27.4.5","requireindex":"^1.2.0","ts-jest":"^27.1.2","typescript":"^4.4.4"},"author":{"name":"Christian Eder"},"license":"MIT","_id":"@buildup_ag/eslint-plugin@0.0.5","_nodeVersion":"14.15.4","_npmVersion":"6.14.14","dist":{"integrity":"sha512-bF9QmFwGLrhA61GJIVK/2LzHKE7NbUNFKwv7fa1CCI5ElNsOXvJuK3Z7Nf5Y+dVY9QPBQkFJleKFm2m9GxTCTA==","shasum":"25f9526b0cfe203e0d93818b1f16b2724145a87f","tarball":"https://registry.npmjs.org/@buildup_ag/eslint-plugin/-/eslint-plugin-0.0.5.tgz","fileCount":20,"unpackedSize":50071,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh5o/nCRA9TVsSAnZWagAAYrIP/RM2PGyxJ6eGdGkAcd1t\nDjbVKMQJLBC0YVJC6lxfvTutEN96qPO8HOheeIsxai8tFBwV0WWuRq0nhjUk\n0udheFJZCxU9n+mdXQQrW4cixbgobLWPa3Fj/crygKhYvkqaXh9WEY0PYIST\nEu/1GT1Q/beqnfxuA2OJr8J1qXoVEtvYg2yW75jiLPf5ha42gJgd3RXPOy74\nheTSqKq+SO9XBQrVTKgln04/SMb+2TgFQWtMEpq7l+RmcJ34oT/hdGmB5gnU\nAvN65Dce/avG67F4qVYvNKaD2i7mWoiE9jQDREdpawRz0vBnvrdoVQjwQ0SC\nLSolfXR4XsymsUdCEmax9hu/nbdMabTUCJcnBZ7TinrHCigCONAdggj2SZOI\nHBzFABWSWGExIKMA8qgqzGET9TDJqB/u7+P9KNzVuiWz3o7ChwvvVkg+2Bl3\nf8vBY5bcAb29Dq1Ke2GmJofXMwRsB7cDL2KTV9K5bOjzU3pI0VCd3YkCUsuv\nVzfIEodqcwDAsmg4Zm5qV5HfMU8xsMtiZdk3oybB9RMw5sjRvuUJCwgN5yc0\nOJ4HGPtl81AECrkXxpYacegJF3xsFkfk5AJr8XGWjn+IsHPRWtAVqFiclgp3\n1x8n4JBVi5FSaayyWHvw/6p4+0/ZOvV2coXkC/au2lnI1RX0u1wew/Yo9D7C\nxL3i\r\n=oo4I\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIETEbERptaYsZnV2CKSBfeyYJOOxVwQF4on1e4Nk5Hc6AiBEqt+oGzX+E80aztWgQJdW9aj162CDAqvMyGDewEtx5w=="}]},"_npmUser":{"name":"buildup_ag","email":"christian.eder@buildup.ch"},"directories":{},"maintainers":[{"name":"buildup_ag","email":"christian.eder@buildup.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin_0.0.5_1642500071198_0.1486150311083081"},"_hasShrinkwrap":false},"0.0.6":{"name":"@buildup_ag/eslint-plugin","version":"0.0.6","description":"Custom Angular eslint rules for Buildup AG.","main":"dist/index.js","scripts":{"test":"jest","build":"tsc & cp src/index.ts dist/ && cp package.json dist/"},"dependencies":{"@types/jest":"^27.0.2","@typescript-eslint/eslint-plugin":"^5.1.0","@typescript-eslint/utils":"^5.1.0","@typescript-eslint/parser":"^5.1.0","babel-jest":"^27.4.5","eslint":"^8.7.0","jest":"^27.4.5","requireindex":"^1.2.0","ts-jest":"^27.1.2","typescript":"^4.4.4"},"author":{"name":"Christian Eder"},"license":"MIT","_id":"@buildup_ag/eslint-plugin@0.0.6","_nodeVersion":"14.15.4","_npmVersion":"6.14.14","dist":{"integrity":"sha512-LJhuZolxear2uEpkrQOI3x1h8wu1n4EBayp3KOP2S0BIkJFTC9+0H3MN2ICKVtkbi8XC9aDIkKcvAm0YbxfiKA==","shasum":"0c23f723662876bbc40c87c5d6179a5413236675","tarball":"https://registry.npmjs.org/@buildup_ag/eslint-plugin/-/eslint-plugin-0.0.6.tgz","fileCount":20,"unpackedSize":50329,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh5pGrCRA9TVsSAnZWagAAv8wP/jyii+HOOF08IWBTvPwY\nygnX4WhZfRymYqylpMOO5WvrBwmEhyYwKUR5c3F2esQ4cgeLFhamigdwPa6t\n7K//WN3yrf8i4BnQVelZNHJnYn3As9d8KA1qe2dZnccJZ5A1bkZ7mdrHqf/L\nen/BlTj34vlt71OkiPun2yQNhqibyzmAm2RLeOw7/1JxJrK1smvLh8mFMKGM\ntO13r71ZpIMC1u0os9l/50GZjIbw7VcTS2ACsDjQDIk9D90d8TOhLCKW59MG\nl547WdrplB9ROKKEka76ayuUB3spbLAEO3xfHbQzAYVhI1DI/iq34a85bfLg\nU3bQFgA4KKmZg0rOTcnbtXp797ZcRp8u3o8+kVMzhvM87YMpxWvTLMqT+E3N\nbz11FNDQysWh6EpJG3EWHCfsRd0+6egBbRzwzP1UC9YasnZ9m1UdSWT00lKF\nwrs71d0zbsQGVrJC1ygRhxBbzx9HFl8h0U0q9yS89kR3jnmBfcS1emYfI+Hm\ndKcZEpeJQScjefRWMhcwBKlKDAnFFliLe23Flx+XaZ00rAWo2k+Vk1AGTtan\ngOjnmZuUl1M7M/SKtIboiqOrF8CA4CMVwEAs28+CHXkdVFBfNfP+58emRW6B\nfNgzDf8/Zplx3l+SkB8HMsa05cjT7iKeFF89g9hwmSXd9wn+HvdWjlBvLFoy\nf55z\r\n=LTSZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCVA8Fw8NF3KsPq9mQshMYXUv6QKws0T9QXxkZ+dhbVJQIgOOhXF/LVq990uFZdUtB/14y99JHTx9MJoqKL8TZ6wlE="}]},"_npmUser":{"name":"buildup_ag","email":"christian.eder@buildup.ch"},"directories":{},"maintainers":[{"name":"buildup_ag","email":"christian.eder@buildup.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin_0.0.6_1642500523779_0.24948646747541448"},"_hasShrinkwrap":false},"0.0.7":{"name":"@buildup_ag/eslint-plugin","version":"0.0.7","description":"Custom Angular eslint rules for Buildup AG.","main":"dist/index.js","scripts":{"test":"jest","build":"tsc & cp src/index.ts dist/ && cp package.json dist/"},"dependencies":{"@types/jest":"^27.0.2","@typescript-eslint/eslint-plugin":"^5.1.0","@typescript-eslint/utils":"^5.1.0","@typescript-eslint/parser":"^5.1.0","babel-jest":"^27.4.5","eslint":"^8.7.0","jest":"^27.4.5","requireindex":"^1.2.0","ts-jest":"^27.1.2","typescript":"^4.4.4"},"author":{"name":"Christian Eder"},"license":"MIT","_id":"@buildup_ag/eslint-plugin@0.0.7","_nodeVersion":"14.15.4","_npmVersion":"6.14.14","dist":{"integrity":"sha512-6LoqtNn/5fKPyfXfHiXgvKzhokHw0oHFKJleeZBmaR/oawHm3I5HDvSj9Q8rgxjviJHMbFAUDpjKU6uMB6nzqw==","shasum":"30b45397f673040813c3c21c35c6528b9d9249ca","tarball":"https://registry.npmjs.org/@buildup_ag/eslint-plugin/-/eslint-plugin-0.0.7.tgz","fileCount":20,"unpackedSize":50091,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh5pwyCRA9TVsSAnZWagAAEXkP/RMC9mI4AlAkOnUJVsSz\nQPFitGyPssvsw0+aYeIaW0UKpV3gAQGVUfpUCCQNf7roaoeS6ieudi5LujQe\nQwF4ALJ7/XVOTsfGZYIoH4WseLiM+E2fIBeRB1A9yuRduHUrXIbseeQItgs2\nuJb600SogMAWpsyMm0e14vdtyJFdzUHo5kqYXsj1IazNt1jJNhHIo45GyQgc\n3ybXQVkp0zIIfhYapVWqZ3VKeoX1xLE27zUPT/6jEvgAYv86ZnIPJXKjbouh\nIzyY6tO+6Osbk7Dp/GaY4seW/w29/NPXz51V7VWrh4vDADtGRXJLtkmX8wXR\n8BT4mVzhh2gUPjWcXKfJMth3BZ4X2gMz+8dG0wKUD3hugW4oc57IXKpJDoYr\nVN7Rz2HfaDplCBYfBtM2kwAW3tlMa7CcR3RYYAPLJI4Z6O18IF+nanv/nmyB\nF49QcI14o3yeErI8haOjdXSdV1DfDnONsGwmWGS0fJom/DlgmghF39zmRbSr\nfqVJuzAwI7PGpuBArBPqqKFtFFxTnIo/Y1WnnqnLmhgyhv7YqlzcEm9Zoir7\ngN2SspFY8Tjzc+9Q3qE8mY6aqlYOfr6elGlNPyFaEJuGq3z/+SXn3M1LTuJ4\nKEb7hEb4ZhYd3N9m8tU0l11DkYhKjBOAVIh8k4UHq0Hl1TbVlOeCKUdEJLwA\nfHTN\r\n=f+Mf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDZWRhLZleJOScOsRBXX94s85uG9GtyPpUSqRw3SDupNAiEApa9GmqVhrxSp3SKJvtY6Dsez0pF7Qk7vKMH8WkHoj7o="}]},"_npmUser":{"name":"buildup_ag","email":"christian.eder@buildup.ch"},"directories":{},"maintainers":[{"name":"buildup_ag","email":"christian.eder@buildup.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin_0.0.7_1642503218109_0.9116336764230386"},"_hasShrinkwrap":false},"0.0.8":{"name":"@buildup_ag/eslint-plugin","version":"0.0.8","description":"Custom Angular eslint rules for Buildup AG.","main":"dist/index.js","scripts":{"test":"jest","build":"tsc & cp src/index.ts dist/ && cp package.json dist/"},"dependencies":{"@types/jest":"^27.0.2","@typescript-eslint/eslint-plugin":"^5.1.0","@typescript-eslint/utils":"^5.1.0","@typescript-eslint/parser":"^5.1.0","babel-jest":"^27.4.5","eslint":"^8.7.0","jest":"^27.4.5","requireindex":"^1.2.0","ts-jest":"^27.1.2","typescript":"^4.4.4"},"author":{"name":"Christian Eder"},"license":"MIT","_id":"@buildup_ag/eslint-plugin@0.0.8","_nodeVersion":"14.15.4","_npmVersion":"6.14.14","dist":{"integrity":"sha512-4i5wmNY0EIjPpn21JLLKWe51GOXNn1H3o2/g+yuBnsut/InYNnCQ99NamcMI3SJHurM1M5JnptUH5CvXFyXkYg==","shasum":"dc7b959f0e9d87f9ff433a78034c32c09c7412a5","tarball":"https://registry.npmjs.org/@buildup_ag/eslint-plugin/-/eslint-plugin-0.0.8.tgz","fileCount":20,"unpackedSize":57817,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh5qQQCRA9TVsSAnZWagAACxsP/0qAzi+jsPi8Gl4iX2ox\njsfPrWhM1tgqbspUDS04UBggYF2JBZCFFs57LaR4pvoy+DoaGYHbsNgtzJOe\nGpKPWzdxXzWaHuXx5PMwfgLqUPbfqhvKl03LSKsED9b87tAo67imWWCzNXSi\ne5rOtlCsJyzvO6WuIJk5PE0+/0E7KNSjnC/xdGGBo9ZDEd4Xk1KB5RLS1fAh\ndctSnE94NRJ+js+JeiK2PxB9tDCKY/omJG4C6maWq4OHgiP6IA1pt949NUSy\n20JM/DcJsR8Gmyp3rnCVoZVG8FrZzYCvbckB8i3M8umSD94h16YZb5ZummwY\nZoAg2//JWxaAHeyp7chLbPs4yt3HxFfMLyLO9tH/qwvK5Aa9seNI0z8MzhNk\ncmOcM8q7uvxqESMoVI0or3ZC3gNHtnELhbrzGaFHszOUXgTls5VRcaFBOMm5\nUoP0yW477M+IJgln6+pytfEobjp8zPeZx8JJ7gi289klAF2bAMBLq5o/aKX+\n53YIbF4HcmW9qpJhrXvEdASggM1dWK/9HdFzxH1zMb7YT8sXTc4UOreBbRsU\nDPh2sK6Sjmfe0OkxYQ+1gd2RJpWW5kkSfUU5xBm3tOOlObv5DXrJfBLkf/dh\ndh2S0rs4phmD7f0gSebbgnrzAhir3nQadhqOJu4Ap+KaLeNzCV+slzhHjCkN\nESUv\r\n=/2Ho\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBz4bCd7I82GwRRzINd0G9ZYV66Q7NfIgaX0J3LkfTSEAiEAm45OjD/wC4teX3phPmLbXlax/2xrLFJ2LLj/3x6mW0Q="}]},"_npmUser":{"name":"buildup_ag","email":"christian.eder@buildup.ch"},"directories":{},"maintainers":[{"name":"buildup_ag","email":"christian.eder@buildup.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin_0.0.8_1642505232498_0.10306557059555055"},"_hasShrinkwrap":false},"0.0.9":{"name":"@buildup_ag/eslint-plugin","version":"0.0.9","description":"Custom Angular eslint rules for Buildup AG.","main":"dist/index.js","scripts":{"test":"jest","build":"tsc & cp src/index.ts dist/ && cp package.json dist/"},"dependencies":{"@types/jest":"^27.0.2","@typescript-eslint/eslint-plugin":"^5.1.0","@typescript-eslint/utils":"^5.1.0","@typescript-eslint/parser":"^5.1.0","babel-jest":"^27.4.5","eslint":"^8.7.0","jest":"^27.4.5","requireindex":"^1.2.0","ts-jest":"^27.1.2","typescript":"^4.4.4"},"author":{"name":"Christian Eder"},"license":"MIT","_id":"@buildup_ag/eslint-plugin@0.0.9","_nodeVersion":"14.15.4","_npmVersion":"6.14.14","dist":{"integrity":"sha512-rzQR0UxtS/qU/I5h0yEcmcNXyAUzCNNwQqcrFYhdorYIpDMu+KFx9FERkooSyzzsCOpgCxyI5Jr+RcHG0o5z0w==","shasum":"88d60a7f49ce1fafbac62f74d206f62daa0f9af3","tarball":"https://registry.npmjs.org/@buildup_ag/eslint-plugin/-/eslint-plugin-0.0.9.tgz","fileCount":20,"unpackedSize":50091,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh5qWUCRA9TVsSAnZWagAACpkP/ju4nc2hoH+NactA8Gwg\nQFHX1Sg99BAUP1CpIiXqdhKuUXX8xRb2rr3VtU09aUyiRkq8TwzyXYMxPObe\nUClRTkP/+i8RrJxreAF6Q0SPKbYhOoBCV9PEOigScQ160woJ042MbvKHqB8D\n1SXI/iDO5YglV/vrzt+ABsg6509/M8+cX6qteYTZFVPxxmUPXYmyJODr9iFc\nGsIHPMyOX1VyQUagJufjYeTWBhr4owndo2zcgPt6L9MCr2Zkvk4rIdeUn3sm\n+UIg7oxY/Fc245uT9QJawiZjEJenAtZoV0Jxp8r8M+++0hMngjmjgpV9Kgv1\nUS7X9oNXj1skV9NPa7PWVLYGR2/vJtfIoQKqRXWUrs37w5FqNNrGe7uu6uQm\nzDikviuBBWI9uKY3ld6if1fqaGqFSuNr/2DKS93UY9w5RuREaQGDD3F7fRGU\ncRTGHa9yb4fVPqLpmZuYpUWgITE/VvViarh2dvPHGo0wVB7PvzAsYKQm43ru\nCz5vwOMEAEm7yfTjzvCVHdenxz52jCm2eiwp2tIjQf9pOMHTFIg5fFq2o7eT\n5x+ZP61tpbIwl+FGrkj3YsXj+G/PmyM0BKQ6BCZS8cWlrem8p+ZSKMQJyLOJ\ntrzoH4LQgP6CX+HxLBiF50d6tw6RB1nZrSlXu+XnhONg9Zv7SL340y7iO9uU\nHkjD\r\n=H8kH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCLHSncZFEWe7HSVFbz/a2oHDDyf0wGjXJdwXZrshJydgIgf4r6Kp6pRQDVInbL0xbw5SIxcfSH7NxdRSevx3e1+ls="}]},"_npmUser":{"name":"buildup_ag","email":"christian.eder@buildup.ch"},"directories":{},"maintainers":[{"name":"buildup_ag","email":"christian.eder@buildup.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin_0.0.9_1642505620594_0.9207446950174067"},"_hasShrinkwrap":false},"0.1.0":{"name":"@buildup_ag/eslint-plugin","version":"0.1.0","description":"Custom Angular eslint rules for Buildup AG.","main":"dist/index.js","scripts":{"test":"jest","build":"tsc & cp src/index.ts dist/ && cp package.json dist/"},"dependencies":{"@types/jest":"^27.0.2","@typescript-eslint/eslint-plugin":"^5.1.0","@typescript-eslint/utils":"^5.1.0","@typescript-eslint/parser":"^5.1.0","babel-jest":"^27.4.5","eslint":"^8.7.0","jest":"^27.4.5","requireindex":"^1.2.0","ts-jest":"^27.1.2","typescript":"^4.4.4"},"author":{"name":"Christian Eder"},"license":"MIT","_id":"@buildup_ag/eslint-plugin@0.1.0","_nodeVersion":"14.15.4","_npmVersion":"6.14.14","dist":{"integrity":"sha512-ON2tk3anMwTPIRGvTnwc2jlQhh7dqvPVIh2RS4JY0Dz4UZ+Kea8nn78IIsyFglqE4XFZl2nChBpRNtBeRmcjlQ==","shasum":"b2b1b68644cb0e2eb4db6ee7a3f7b47afd558ae3","tarball":"https://registry.npmjs.org/@buildup_ag/eslint-plugin/-/eslint-plugin-0.1.0.tgz","fileCount":21,"unpackedSize":55381,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh5/5SCRA9TVsSAnZWagAAc6MQAJV3B0Q7fZId3wDZiJT8\nEjxc6Rr7HZxuo8rZsjFzKxT4Z7SjyeTY70qPJBZ89hpgl8+BW7MtmtUlnrX3\nEwXi4oEeEkhCgiDfFwl//2BJwES5xHzm4veyqqmG+1FHHKBvrcPfC6xZKuhL\ng6GQIIAuPBvVzBlJpb0rmwG/j4t4gAd8+Iw8QhYHH9uWkGv72YsEQ0DyhIPZ\nh/tyqJZ3JkHEqBm7heUqUHq1M8hWi4xL7Jl+LL3G7Ho7NnCBBHtaFCmjAowE\nj8+1AFpzwMJdykCCsa8EBEjZ9FfG/fziKwEH81uWie817ur34oiUvbK97Hm1\nOkyTS8T+HNWCVZebw/kBhaAjuJGkIpVsi0LDAe1lrbpSyfPSjlSRC1S2qXw7\nDW5h7TAVU4g0KuX56PZ+UexLhwAM9PGbvCFUlJxOITCFyk/fi6gW0bp3ulnf\nKRPhOGP0W66qi3oq3Vrjl/A554jJXG8RepnduUZVcmKQf+cE4uD4/byV/NSV\nDaxjOprpuLYVyFo6XxIdAp5EUEotwxlpTGESkYAx6PIYpx9SuAI2PWhzfJbk\nycb6TakMTpj/Lr9fanoJ0MRWFMAylOkd6nnJUztUzgKW1CRh0wnp/UKmIkBi\nOFxPySzk2/E3CEBRkeiSC63uhDhsm9kxwYBmpH/ofZe5oRqUN7979c4+PbTc\nqi5+\r\n=1kqN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBhdA4O0hi7fHps654+thhJfBi+jFHyLdSu/N5o6aTBRAiEApvGY1bcwjFhpeaB0e5u6EtScBfJbPV0VbCr23KmRJUc="}]},"_npmUser":{"name":"buildup_ag","email":"christian.eder@buildup.ch"},"directories":{},"maintainers":[{"name":"buildup_ag","email":"christian.eder@buildup.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin_0.1.0_1642593874528_0.023643454354014715"},"_hasShrinkwrap":false}},"time":{"created":"2022-01-18T10:01:11.128Z","0.0.5":"2022-01-18T10:01:11.354Z","modified":"2022-04-04T21:02:20.179Z","0.0.6":"2022-01-18T10:08:43.954Z","0.0.7":"2022-01-18T10:53:38.240Z","0.0.8":"2022-01-18T11:27:12.615Z","0.0.9":"2022-01-18T11:33:40.705Z","0.1.0":"2022-01-19T12:04:34.719Z"},"maintainers":[{"name":"buildup_ag","email":"christian.eder@buildup.ch"}],"description":"Custom Angular eslint rules for Buildup AG.","author":{"name":"Christian Eder"},"license":"MIT","readme":"## Description\n\nThese rules are custom eslint rules for the Buildup AG.\n\n## Installation\n\nA) Add `\"@buildup_ag/eslint-plugin\": \"^0.0.9\"` to the `dependencies` inside the `package.json` of the angular app. Use a suitable version number.\nB) In the `.eslintrc.json` of the angular app, add\n\n```\n{\n    \"files\": [\"*.ts\"],\n    \"plugins\": [\"@buildup_ag\"],\n    \"rules\": {\n        \"@buildup_ag/no-operator-in-switch-cases\": \"error\",\n        \"@buildup_ag/readonly-injectables\": \"error\",\n        \"@buildup_ag/take-until-before-subscription\": \"error\"\n    }\n},\n```\n\nto the `overrides` property.\n\n## Rules\n\n### no-operator-in-switch-cases\n\nEnforces the application to not have operators like `\"OR\"` or `\"AND\"` in cases of a `switch` statement. Operators in switch statements are prohibited, for multi-criteria-cases [fall-throughs](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch#methods_for_multi-criteria_case) should be used instead.\n\n**Examples of incorrect code for this rule:**\n\n```\nswitch (expr) {\n  case 'Oranges' || 'Apples':\n                 ~~ Operational operator in switch case\n    break;\n  default:\n    return foo;\n}\n\nswitch (expr) {\n  case 'Oranges' && 'Apples':\n                 ~~ Operational operator in switch case\n    break;\n  default:\n    return foo;\n}\n\n```\n\n**Examples of correct code for this rule:**\n\n```\nswitch (expr) {\n  case 'Oranges':\n    break;\n  case 'Apples':\n    break;\n  default:\n    return foo;\n}\n\nswitch (expr) {\n  case 'Oranges':\n  case 'Apples':\n    break;\n  default:\n    return foo;\n}\n\n```\n\n### readonly-injectables\n\nAn injected dependency is usually created as a singleton and overwriting it breaks the whole concept of dependency injection pattern. This rule enforces the application to prepend an injected dependence with a `readonly` statement.\n\nThis rule is inspired by [https://github.com/shpaq23/custom-eslint-rules](https://github.com/shpaq23/custom-eslint-rules).\n\n**Examples of incorrect code for this rule:**\n\n```\nconstructor(private restService: RestService)\n                  ~~ not preceded by readonly\n```\n\n**Examples of correct code for this rule:**\n\n```\nconstructor(private readonly restService: RestService)\n```\n\n### take-until-before-subscription\n\nEnforces the application to properly unsubscribe from subscriptions. This rule makes sure that:\n\n- All subscriptions are preceded by a `pipe` statement\n- The last argument of the `pipe` preceding a subscription is a `takeUntil` statement\n- The `takeUntil` statement has a single argument\n- The single argument of the `takeUntil` statement is a property of the class\n- The single argument of the `takeUntil` statement is initialized as a `subject`\n- The component containing the subscription implements an `ngOnDestroy` method\n- The `subject` used as argument for the `takeUntil` statement is called with `next` and `complete` in the `ngOnDestroy` method of the component\n\n**Examples of incorrect code for this rule:**\n\n```\nthis.rest.method(this.id).subscribe();\n                        ~~ no preceded by pipe\n\nthis.rest.method(this.id).pipe(undefined).subscribe();\n                               ~~~~~~~~~~ no takeUntil argument\n\nthis.rest.method(this.id).pipe(takeUntil(this.ngUnsubscribe), undefined).subscribe();\n                                                              ~~~~~~~~~~ takeUntil is not last argument of pipe\n\nthis.rest.method(this.id).pipe(takeUntil(this.ngUnsubscribe, undefined)).subscribe();\n                                                             ~~~~~~~~~ takeUntil does not take a single argument\n\n@Component({\n    selector: 'app-component',\n    styleUrls: ['./app-component.component.scss'],\n    templateUrl: './app-component.component.html',\n})\nexport class AppComponentComponent implements OnDestroy, OnInit {\n    ngUnsubscribe = new NotASubject();\n                    ~~~~~~~~~~~~~~~~~~ takeUntil argument not initialized as subject\n\n    foo() {\n      this.rest.method(this.id).pipe(takeUntil(this.ngUnsubscribe)).subscribe();\n    }\n\n    ngOnDestroy() {\n      this.ngUnsubscribe.next();\n      this.ngUnsubscribe.complete();\n    }\n}\n\n@Component({\n    selector: 'app-component',\n    styleUrls: ['./app-component.component.scss'],\n    templateUrl: './app-component.component.html',\n})\nexport class AppComponentComponent implements OnDestroy, OnInit {\n    ngUnsubscribe = new Subject();\n\n    foo() {\n      this.rest.method(this.id).pipe(takeUntil(this.ngUnsubscribe)).subscribe();\n    }\n\n    ~~~~~~~~~~~~~~~~~~ no ngOnDestroy method\n}\n\n@Component({\n    selector: 'app-component',\n    styleUrls: ['./app-component.component.scss'],\n    templateUrl: './app-component.component.html',\n})\nexport class AppComponentComponent implements OnDestroy, OnInit {\n    ngUnsubscribe = new Subject();\n\n    foo() {\n      this.rest.method(this.id).pipe(takeUntil(this.ngUnsubscribe)).subscribe();\n    }\n\n    ngOnDestroy() {\n      this.ngUnsubscribe.NeitherNextNorComplete();\n                        ~~~~~~~~~~~~~~~~~~~~~~~~~ takeUntil argument not called with .next() and .complete()\n    }\n}\n```\n\n**Examples of correct code for this rule:**\n\n```\n@Component({\n    selector: 'app-component',\n    styleUrls: ['./app-component.component.scss'],\n    templateUrl: './app-component.component.html',\n})\nexport class AppComponentComponent implements OnDestroy, OnInit {\n    ngUnsubscribe = new Subject();\n\n    foo() {\n      this.rest.method(this.id).pipe(takeUntil(this.ngUnsubscribe)).subscribe();\n    }\n\n    ngOnDestroy() {\n      this.ngUnsubscribe.next();\n      this.ngUnsubscribe.complete();\n    }\n}\n```\n\n## Publish\n\n- Install all dependencies with `npm install`\n- Increase version number in `package.json`\n- Build plugin with `npm run-script build`\n- Upload to NPM with `npm publish --access public`\n","readmeFilename":"README.md"}