{"_id":"eslint-plugin-no-explicit-type-exports","_rev":"59-d53dc1852a63841ed1ebd934e8154061","name":"eslint-plugin-no-explicit-type-exports","dist-tags":{"canary":"0.12.2-canary.42.548.0","latest":"0.12.1"},"versions":{"0.10.10-canary.3.46":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.10.10-canary.3.46","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -w","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.4.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.5.0","eslint":">= 6.x"},"devDependencies":{"@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.5.0","@typescript-eslint/parser":"^2.5.0","@typescript-eslint/typescript-estree":"^2.4.0","auto":"^7.12.5","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"^3.6.4"},"gitHead":"8f420c091d171ba0380b9e1bbc511e80cfe00266","description":"This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.10.10-canary.3.46","_nodeVersion":"13.0.1","_npmVersion":"6.12.0","dist":{"integrity":"sha512-R2PyBE/3iyfmHfk7lLwonD+POhz0Cej1c7ARbC0yJkWZkyViFsDIaco/fcc9MuYEaVpKbfuuu8k2tdKs1+B0bQ==","shasum":"d43c315efe138d5e642393c9eda4790d3e32fbc3","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.10.10-canary.3.46.tgz","fileCount":35,"unpackedSize":36571,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxdC8CRA9TVsSAnZWagAApAcP/1lqDpGYIuBBATiJdEX5\nIxuFi2PhGfM0gI6h2v1vcBJQa4gPnsTFjRKHjX1SSNuqE0wiTm1vr9QA2CjV\n0orU/eFpcwc2XkcATZJ7DMcMc05MEdbkapvUzYXT//uwhsLXnE5b/P/vYzqw\nzpA6z8nz5GPgIH5FYfCILJvMcVJMBKjxPmNZXVRlzy5tdAqECk7eVZiJZDt0\n+AcxkBoh5Ovs1r2zCJ1DMARq88KporOGNmBYikQo/Z8cGLrQQ1CjM3FX1Q/6\nwDpgiePSCO5LDw8wo4BmVgmGfe/67C22bYHBWE0xN5A40s79cFt3oerv3p84\nqWuv7sAGriJHaf4MfSvNmXW2jHLOnr+/HItDBzQuoSOiAlYt8Avgek9Bwn0I\nzo8KoCqUbbdA43ujkGRfa39D0bqOlggjVfY9McDR+BYDv4XUAj7dFCQk72HK\ncw87QkTRjO8FIoAV73jmf+pzMeH5JaDthPWvPHWoTMungNJVMjnwFoTgcCHZ\nad7T2M21mWEzcGplIc+WMaOhWMEFAUozwrgS1kE0H5Kn6YyLic+c0XMFoNki\nKJTUNSEHa+GX58ZIWT/7qQx1vA5OnOGtrnqjFsW2lUFju13ujRRJKljCcwH/\nQ73eHpD1GIvPSj2Nxy57VpQFtr6bRCT70ZObHK74Iq5yNKVMaw23G4q2aBGp\nzT/m\r\n=+Jaj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAqnqBur7t6d6pNJAIQ/OnZLGepl09jB21JwPaYV2+RyAiAlmMwDyEVa1A6JQMejlivQsZ3EjQrBupXobLWOrBGMHA=="}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.10.10-canary.3.46_1573245116031_0.11828370810678135"},"_hasShrinkwrap":false},"0.10.10":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.10.10","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -w","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.4.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.5.0","eslint":">= 6.x"},"devDependencies":{"@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.5.0","@typescript-eslint/parser":"^2.5.0","@typescript-eslint/typescript-estree":"^2.4.0","auto":"^7.12.5","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"^3.6.4"},"gitHead":"aeb9e95f90d4f927296af060d51e5f3ed27c43f5","description":"This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.10.10","_nodeVersion":"13.0.1","_npmVersion":"6.12.0","dist":{"integrity":"sha512-zzGB3pCVYaAqtBSG13QEScSYtmecoUol948pXQ0mI0wgRZVKaC56RncEocj3Kx5NTp7yDcbUPuLjRF0YFrxdiw==","shasum":"f1df0e2fd8de9dc15dd790974580db2e9b1fb4b7","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.10.10.tgz","fileCount":36,"unpackedSize":37206,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxdGnCRA9TVsSAnZWagAA3UYQAKRSHydyFMgxTmkW7nCm\n4bNxqt7DeQ3YU72xZ1500iTr64zBl1Bo+0auTsJp7gJqXah+f0Rem1BmHCeI\nuuD1dLHqCYapEJxlwhNg236kTWi0fCMXmBpA9XBpybB+ZyJ9Wx/ywTpkiW6B\nIDkCYKPqCN9TAWNbX8DfPCrQKlAgCV5ZdXL48e2/Blh+D0ZApM3jTu7UQPH1\nQiXwAdN28n4RuW18cs1nW6RiALPUYUElJR8EN+Is28gUFlkDzLDjoIMtc8h7\nd+/4kXmJklVXtq/ZREOh3x8Zehsds3sUGNkbOcphytjUjalnsVoarRWd6rFe\n7pYzA+/tJcf87eS5uzPSGR6yzDy+ckpAF1WirOvXMGq+dZkupeDNKVKWiuWX\nrJOZplPJ6L3nGzvOSWF5/WRAi8n1fETa1Een8Nzp9yXp2jjXIZ8HdAiGy6Mm\nXWxjawgSIOcXDSVimc+h9BAwqO4YE3UuGv5uzLZtgR2VTjR7to0XYc0WRDC9\nTaPB3ySplPcYowzDtAvgj/MxByUmCrSnC4/2WGxCzZSkNbZxxi2qVGJWqj3q\n+78wP3/KkshDnwImnHfTz1NEBXdHJqEJk7qwIqmHtM0D1ikbG2iKIIW62HcV\nMgucuDkKl6bGfyIMJeuVBk6rtSBcHOdGFRqx4otnPxxY3tr25iPybxcdly5s\nIVEQ\r\n=oqCj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHDhAmVNW0RttULYEwuZQzMDwgF4IGOPIhaZitlZTOgyAiBArXgwiHdw74WaosJWF2+HSOBWNGn5qbQGKC54k/0Qbw=="}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.10.10_1573245351327_0.5593177893354955"},"_hasShrinkwrap":false},"0.10.11":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.10.11","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -w","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.4.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.5.0","eslint":">= 6.x"},"devDependencies":{"@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.5.0","@typescript-eslint/parser":"^2.5.0","@typescript-eslint/typescript-estree":"^2.4.0","auto":"^7.12.5","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"^3.6.4"},"gitHead":"30a97760d3f3b74b16806889184b8d82177ab464","description":"This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.10.11","_nodeVersion":"13.1.0","_npmVersion":"6.12.1","dist":{"integrity":"sha512-9HpReMY/VgzojxS1bi5SzidGPXpX+/xdiQWsVJoRiZ5/UQ7DsUARNRREDtJkOG1d/wlGaJk+WYkCAsRYyVec3A==","shasum":"b91bcb5334727cae99e73adbe2bf37b7d400fb4e","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.10.11.tgz","fileCount":36,"unpackedSize":37518,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzD+QCRA9TVsSAnZWagAAAMEP/AyXhbjINCCMguyySlSV\noKFyIcXvRNX7ov5I4XwA20jAKTUVHrZ6gwNPTD9tlVIQdDqKM88QlYf4GH/m\nmO+D/uiU2d9dI3PbqwP8KZBra9UHJ4p85fD5seq+vsktQH18kwSPARl85eBJ\n7QhlcASMuftOGWh1cjlXob0nuHFBcS27ynwA+XeyqZHaZnpQZOoVyb9vh5z4\nz+LXv9AI5OVlnPZvBr1iEqYFoN+XulF56fcwUYWAI1IwxA7mlAWW2SXm+c6K\n9bWu9EsIkL5E/U8ipR81j7xCivRRvrsIWTVC+nyx7epgKudns2jGtHsCU7F+\nE2CTbOsbmliyykVxj6mBXdOaRhfr61kSApzlxNVKQRHyseoy+G0xVKhK50xg\nxdFd8P16jWexit8UelgKrNefi0v4Xx7go5AzBBjCTt6tq6GvwmGx1P2APtu4\nCtnEtBOyWixdE+gs4lURJal1aPKPFiN69GEtFjQ403iwHI3+g8RGlrlhuCWV\ndL8f4eMZO8TI/Wd5NU44F350WTZ87AqDYjmYvslgsIte/Jr8jqpFpc48yw77\nkLPuM8omcJ3qIVk7iQyQ1UlN9WAkEqPpCZyJuekMe6px6XjIsyAiWvjiNvuc\n2CwUCgejTtePbrwMlzTiPNT+ITF2BS/wYF2MlO0ysenD/jt6zbntGcUQsatf\nDvxN\r\n=6qAG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBLJpbzt2hNy4WAmRWhqRIbDK1DjCbD8A/38h73VoDvAAiEApUOku4MFVb4VvI5bR/6G9kWqJl9wnjhZf7FpsNZFNtE="}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.10.11_1573666703574_0.18851927275335534"},"_hasShrinkwrap":false},"0.10.12-canary.5.66":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.10.12-canary.5.66","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -w","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.4.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.5.0","eslint":">= 6.x"},"devDependencies":{"@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.5.0","@typescript-eslint/parser":"^2.5.0","@typescript-eslint/typescript-estree":"^2.4.0","auto":"^7.12.5","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"^3.6.4"},"readme":"# eslint-plugin-no-explicit-type-exports \n\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\n    export type barType = string;\n    \n// index.ts\n    export {barType} from './foo.ts' \n\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash    \n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n```yarn add --dev eslint-plugin-no-explicit-type-exports ```\n\n## Usage\nIn your `.eslintrc` add  `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n   \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2,\n  }\n}\n\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README. \n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\ngiven:\n```js\n// foo.ts\n    export type aType = string;\n\n    export randomNumber = 5;\n\n    export interface anInterface {\n        bar: string;\n    }\n    \n// bar.ts\n    interface anInterface {\n        a: string;\n        b: number;\n    }\n    \n    type aType = string;\n    \n    const randomNumber = 5;\n\n    export {aType, anInterface};\n    export default randomNumber;\n    \n// baz.ts\n    type aType = string;\n\n    export default aType;\n\n// oneLine.ts\n    export type x = keyof typeof String;\n```\nValid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport * from './foo'; ;\n```\nInvalid:\n\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n \n\n```js\nexport {aType} from './baz';\n```\n\n```js\nexport { x } from './oneLine'\n```\n\n\n## Further Reading\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface. \nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types. \n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n","readmeFilename":"README.md","gitHead":"f740349d031ff823a0b3993112630d68a7d9437a","description":"This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.10.12-canary.5.66","_nodeVersion":"13.10.1","_npmVersion":"6.13.7","dist":{"integrity":"sha512-5hX4iafLb8VJ8GkN1raNO8sb2aGVr3v/C6/mnILRhtXjzH5RPgQnHr1VwpEdyJGNYH+GnLwlwuw1HSS181CAGA==","shasum":"700f533cac7008a55e713180d4d3be4d4f369910","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.10.12-canary.5.66.tgz","fileCount":36,"unpackedSize":37530,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJebMMICRA9TVsSAnZWagAAgDwQAIZ7r8XaxK+GQSzlMI8I\nf5iSEMAd1/E6DqrC9LQ+XtBfAag+H6UL0JdhETNp0DkIjNX4AI/2SR7+2b4O\n4EMO5RyjIAIgtAEz+G1AVeupyp1CRjWm6PH4+k4/Gzn92ZsXzuHNs7s197Dh\nC9BHpHA62PA+IJrn+7KiV3dtte546nVcwJEH8RsrGVNhX45buCNTbkG9yAYW\nRv39ZTHG0StV1e85pClFGcfHz8ngDuKoULWaPe/KzYqZvfYAWuSxwBh+Zbry\n3O6BYQqrF+xWlVGIf1souPXgJlZg5w8B62LbvKMvmIg/H32jf6OeI0smqi2C\neeHoFLUeOQSPT821o+HpnlFqDe3mODrEkxCV3CJ27fCjxSpsEZXzd44HWpYS\n5pci3wsAa/DUKyCBFxSv0+V109PQ2brrGjAEbNiIcDHy8WgOWK7bXQ+3Nkcw\n33NYe3Ukydm25vVEFiy5FIgJbRloSBiwkwU+Hr0DgT7oQZRFAvO44mGdoZhZ\n18FJ9W1WuptAWaeOHeN45L4GESG5yKQb42GpF0GML2jxZB+p1kyvb7zjKvHs\nqKmU/rNRXxtHyax+8PRCaE9FWjbgDBOPhUMnCJy0ULNzEIfMQx+KfBXGWc1O\nDR2LZVD1KGqxc7YbSHAS7xaSbvoBWqh8j1V/Rk3+hNX86GdMWczrvJMt2dtM\nG6i0\r\n=095y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGpBJ++j8i61efRRy4GLWphadwV6Dn/55rPWRP4EJSHFAiALUEgaDTu/b2FNoj41NY5ojsuoqQmI8ZX/Tnz6KhaaAg=="}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.10.12-canary.5.66_1584186119669_0.7922323746487099"},"_hasShrinkwrap":false},"0.11.0-canary.6.82":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.0-canary.6.82","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -w","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^7.12.5","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"# eslint-plugin-no-explicit-type-exports \n\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\n    export type barType = string;\n    \n// index.ts\n    export {barType} from './foo.ts' \n\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash    \n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n```yarn add --dev eslint-plugin-no-explicit-type-exports ```\n\n## Usage\nIn your `.eslintrc` add  `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n   \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2,\n  }\n}\n\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README. \n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\ngiven:\n```js\n// foo.ts\n    export type aType = string;\n\n    export randomNumber = 5;\n\n    export interface anInterface {\n        bar: string;\n    }\n    \n// bar.ts\n    interface anInterface {\n        a: string;\n        b: number;\n    }\n    \n    type aType = string;\n    \n    const randomNumber = 5;\n\n    export {aType, anInterface};\n    export default randomNumber;\n    \n// baz.ts\n    type aType = string;\n\n    export default aType;\n\n// oneLine.ts\n    export type x = keyof typeof String;\n```\nValid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport * from './foo'; ;\n```\nInvalid:\n\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n \n\n```js\nexport {aType} from './baz';\n```\n\n```js\nexport { x } from './oneLine'\n```\n\n\n## Further Reading\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface. \nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types. \n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n","readmeFilename":"README.md","gitHead":"885a829e894252be14abe48300ba376970d91892","description":"This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.0-canary.6.82","_nodeVersion":"13.12.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-NRRS4HUsjJXuiD3YsJiKqtk6KkFsefN0pId0Yoy/bmN4kw6hbtCnjx8Tabxl5HBcAtKBAxhBtRxwrEFStOc8lw==","shasum":"c627b7ec201702b93a7f48285ec7724dccdbcc94","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.0-canary.6.82.tgz","fileCount":39,"unpackedSize":51227,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejLZOCRA9TVsSAnZWagAAwToP/3Lku4mAqPZ4PasqiePZ\nfz+l4le9A+OLgbh+bF4ttcJ8qNCXdD20cU5GNeWTca+3ivwXNDkJTj0Zn8fw\nZJ/mY985yocP8nChw+F6DdBJdJrz7N/FpXg88M/gNbjN0o0TuhST0nelCezT\nSOverZrR1f06unU1I1RBTcCnLKnh972yeT38FIFCkRWknONr8tECFrpBCEjE\n8W3YI94nopOeOxPkUX22FUON42Tu5wrPUPrvaFQsc4nxAWHCY0ZPuXkUrPfv\nV66JzHUsXskSJRJxaQPFDQEOdHex+JjhyV4zHCMbDII6eTa9HAZKD3qVxrlm\nOcjx4dsVCDudfJr/Xw9zxYowAHbmgrDRLDudWc636UEajQ0B/mUWhUBeSpg5\n/0cf+YTM/fJOL8Sjv1pOKdscoRfJB9aMoyEFkogAT33BoLWkQBOulvgA9raj\neAGnCjaV8WFZ+6TMKlhOMaQOUP4qVulx5+nPI1y0OLeTre8/1CYwspD9YYB2\nnyx38v9Lt6lTqWQNiEZO06ZvZUGJERdT+XmJkl2JiCzqSroJNvPEfWMXJVK1\ncK9a9KclrLsMkgZjLw0cmON1tf4hnZAMom2Y01AIOZLayPUlKkUDUIqFcxTT\np0O80dfVHHpkj6uj/6CVXnwbsMuUUUhvJTChtDE5LIiv7KGwQsayEel3Th6i\nASP+\r\n=UiQu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGONz2q70EzGHrOvJnBhFUq1IhOSFDC6cZ61IlNRXNBaAiEA7+3p7cMooLhSvImocQ9P4TnRoiYocGUX3o1smufdwbM="}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.0-canary.6.82_1586280014279_0.509524246823567"},"_hasShrinkwrap":false},"0.11.0-canary.6.88":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.0-canary.6.88","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -w","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^7.12.5","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"# eslint-plugin-no-explicit-type-exports \n\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\n    export type barType = string;\n    \n// index.ts\n    export {barType} from './foo.ts' \n\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash    \n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n```yarn add --dev eslint-plugin-no-explicit-type-exports ```\n\n## Usage\nIn your `.eslintrc` add  `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n   \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2,\n  }\n}\n\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README. \n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\ngiven:\n```js\n// foo.ts\n    export type aType = string;\n\n    export randomNumber = 5;\n\n    export interface anInterface {\n        bar: string;\n    }\n    \n// bar.ts\n    interface anInterface {\n        a: string;\n        b: number;\n    }\n    \n    type aType = string;\n    \n    const randomNumber = 5;\n\n    export {aType, anInterface};\n    export default randomNumber;\n    \n// baz.ts\n    type aType = string;\n\n    export default aType;\n\n// oneLine.ts\n    export type x = keyof typeof String;\n```\nValid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport * from './foo'; ;\n```\nInvalid:\n\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n \n\n```js\nexport {aType} from './baz';\n```\n\n```js\nexport { x } from './oneLine'\n```\n\n\n## Further Reading\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface. \nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types. \n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n","readmeFilename":"README.md","gitHead":"c8839591964f80f1c6b87fb0f5a746479045b653","description":"This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.0-canary.6.88","_nodeVersion":"13.12.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-PRzVyfazprjrk/T3iFjlxYRKdTTiBHAE2oIR9t10JKWJ5WSW/Zc/cRfDbHKm4hRiZ4eiG1dxra650spFQM6Dsw==","shasum":"f52bf427a8fd1060b5a7440ecde7f53a485cd6f2","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.0-canary.6.88.tgz","fileCount":39,"unpackedSize":51640,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejL0zCRA9TVsSAnZWagAAmXMP/jaVxHhoWMTwcCMZgTqv\nQcFPDjH754S9OXOjGOXp8h7sWJYFtDvVGdeAGsoyVpW1Wu5CRdepLNB0ISmG\nlW+7xSk834M90KMVPV8/CCdE59Tqn2RfaDeb6CrzHZ217Iie1x1sNQMSLFpc\nDMf67HkJTHnkCN4GxPKze9bq0CUo8wnB5lYl7KuvRqxjkvqvxGbQSlwIa8z4\nY1nCKP3ofhMW4FB52oqASQtI7r19qYtO+JkRrBIywZhSaxaMC1JBi72rsddR\n76S+KpWbCFGqdnRPCyh28jAKF2RKZ5FAKam1thCcY73xOETDt6K34XHYrkkP\nzD9kr5jAxvMli85DFmfypD0B/rfXqddjYtffIgFndpB14oH3Xy8dRxf41xTR\nNUyO2psqtClWY1Qw2CNFUrW0X6tl9F+p4+/wTy442LNC3UarklzknxxVTavS\nMTWJN0dXIgDmBPM/rik6btJSlVdpyEpJ6mkXgYAcoBy70OCss09Fx1jHvY2O\ngkGmomUui6o1Qu9IVrFUww+4A7BWGhntC/tEPcn/ED/6COEPl8erawOg/fBo\ntAPkpRD4DRrmQ1MTz9R7iX0mVdtfARk21RNl0ZBotGOCUjUREa8jkpFD3sVd\nxuX+O6EnwPTmZC17EC5k5AaMycbT8tE2ol+iL9B6EjkRgeGQWLv7DjCp0hEE\n7dwC\r\n=UoL/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCaX+1ggVBqIl2hTOm33ej2L5s3XD43S5Ht5oFxay9InAIhAIrAef3YkCZEWvIfXA3kRYCC9J/TLf+4SlzVxfVvQyPZ"}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.0-canary.6.88_1586281778415_0.8929104507499133"},"_hasShrinkwrap":false},"0.11.0-canary.6.94":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.0-canary.6.94","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -w","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^7.12.5","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"# eslint-plugin-no-explicit-type-exports \n\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\n    export type barType = string;\n    \n// index.ts\n    export {barType} from './foo.ts' \n\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash    \n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n```yarn add --dev eslint-plugin-no-explicit-type-exports ```\n\n## Usage\nIn your `.eslintrc` add  `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n   \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2,\n  }\n}\n\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README. \n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\ngiven:\n```js\n// foo.ts\n    export type aType = string;\n\n    export randomNumber = 5;\n\n    export interface anInterface {\n        bar: string;\n    }\n    \n// bar.ts\n    interface anInterface {\n        a: string;\n        b: number;\n    }\n    \n    type aType = string;\n    \n    const randomNumber = 5;\n\n    export {aType, anInterface};\n    export default randomNumber;\n    \n// baz.ts\n    type aType = string;\n\n    export default aType;\n\n// oneLine.ts\n    export type x = keyof typeof String;\n```\nValid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport * from './foo'; ;\n```\nInvalid:\n\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n \n\n```js\nexport {aType} from './baz';\n```\n\n```js\nexport { x } from './oneLine'\n```\n\n\n## Further Reading\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface. \nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types. \n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n","readmeFilename":"README.md","gitHead":"d05b0cb79dc6863630fb167d070de2126489004a","description":"This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.0-canary.6.94","_nodeVersion":"13.12.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-cOtaQf06ZfR6c29RajbqzdOI2epi7h0AxEsVyxDAG8ja5ck6Srl8MJ/a9hAv4bZ3pMJtQqZZwN3y/sIuO4tHPw==","shasum":"29f8a46e4f8d64e0a4ac221e9725fd0ca286557e","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.0-canary.6.94.tgz","fileCount":39,"unpackedSize":52651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejNAyCRA9TVsSAnZWagAA/qAQAJdNGVS8QHxYFxmlMAr5\n3bynoTTFQQltMRUYhY6btCJOpIxF9M2EneGKdt6Y0LvIN/hv3p8jT+PYV+J6\nO1fbPmbXoZwzthS1v5AWZmHTlp5zcsSs9dAR8+2oRJMivUkn0rWRJ4sHASy4\n3+kp9yV5EuPqedyqzRzcGt2bclPFzUV22lmq2hYDGYCCaOFoKioyz4PSuHjJ\nYhwdraGtkSeYn620CyreDg/JVIZ0cSkMXo/N06Z4+nitfz4q7Ty1Ak3n5k18\nCU9Tm/47BFmWe+GEaTRHb/0P7IelOAb5/lUYkSlvDyvVGMulN+DMExfSy7Jd\nyhObq37PCYW0mNJETtmhBGLdEYV+sKKTpdCzwTtgNZ3O0fqs5bW7p28FpysW\n/NtUK2P5yU/Bl/yi+zyy2LiGRvf/CAjosa2DQxGfH0BbbI9YkJ+NaK/iKArs\nLm2buOB+Vjfmd1mouaaK+XjB7rcX1j22Lw5i8nGJ1Rbh6gtf1kO/6H5ugSE8\nJPknJuCoIivdhag98hzcKF9+wq5L35V/BCI3urTWmIxzkPguum0pYbPx99eN\nI2verErdoZ6Y0x4ogvuKQAIlv9RQLIUkoVtjW39aLOT5Iwn7TTkEBw2fgBAe\nSNW0Gyxs824qqoz6GjhltY6e02HkSWD7ysdghZj98FOqHXIG1DbNSJRFSysu\nD4OP\r\n=2hMQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCcfcQICsxNZ7agCOAdOnWD5dNnkmOMFNtfmlIKitB3xQIgfb3x0PRpsIqs+CzUvl8gbOip4i1a5r10btkC795L9wo="}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.0-canary.6.94_1586286641618_0.1584676285442883"},"_hasShrinkwrap":false},"0.11.0-canary.6.100":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.0-canary.6.100","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -w","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^7.12.5","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"# eslint-plugin-no-explicit-type-exports \n\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\n    export type barType = string;\n    \n// index.ts\n    export {barType} from './foo.ts' \n\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash    \n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n```yarn add --dev eslint-plugin-no-explicit-type-exports ```\n\n## Usage\nIn your `.eslintrc` add  `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n   \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2,\n  }\n}\n\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README. \n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\ngiven:\n```js\n// foo.ts\n    export type aType = string;\n\n    export randomNumber = 5;\n\n    export interface anInterface {\n        bar: string;\n    }\n    \n// bar.ts\n    interface anInterface {\n        a: string;\n        b: number;\n    }\n    \n    type aType = string;\n    \n    const randomNumber = 5;\n\n    export {aType, anInterface};\n    export default randomNumber;\n    \n// baz.ts\n    type aType = string;\n\n    export default aType;\n\n// oneLine.ts\n    export type x = keyof typeof String;\n```\nValid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport * from './foo'; ;\n```\nInvalid:\n\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n \n\n```js\nexport {aType} from './baz';\n```\n\n```js\nexport { x } from './oneLine'\n```\n\n\n## Further Reading\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface. \nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types. \n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n","readmeFilename":"README.md","gitHead":"b8dfdbe9c25453d689cf26cf9bab241d8d12b5b9","description":"This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.0-canary.6.100","_nodeVersion":"13.12.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-786i1mOIKyoVJJ3lqs/WB6fD7afsvPwIJaZV6DWdJLsgszbKjk/JuZnnV4j3YbKGA75gllq4z6X4kO0iSCHxIg==","shasum":"35027f0410eeea51c717542bb6ddbadc877bf3c0","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.0-canary.6.100.tgz","fileCount":39,"unpackedSize":52161,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejNJ9CRA9TVsSAnZWagAAYkwQAIPJmoAMq0l5FIJb3Mq7\nJukPn1RHJysIzgZ4yZ5bQdhmrQD/s4pztkdHNyFzcMh6oYCCNeNtt1AgqEpV\n9Mn/Op02VMpSLd3eA9VwK08hxOBt1U7oichMp9ZjybsxSH6ivRjQZZMf+V9q\nV5QvdbGmw16+Yr5oAbrsSLCjtcaaWDmq9MMgoqKRcJciFsFe6hW1tyEU98qi\netlJi3H85sDwdOQJyfiAx+h358OKPxI6513YSNRxwG2PXkCVcUnQmAdqgU0v\n7/OFBMSjJ6bDk6J5s+opw4iZ816EuyDGsLdekBdbxK4eLNZWS3aoFh2RDHBC\nMWYNor257uGwctYu9yQg63G7e4asHFCzqJjkKYZS6GwkYiF56fyj3u7W83Gu\nSa0WvOshkXDMdggEGHZY58IF/jwWPIFjVbaM9wafLH6QLrciaIir5wQSa6kJ\nHl8FGvzPqCf5EpI11qvgNlpqSjt3Vuqx5yzIYisqUG5hHPfDDOlyCkth0OeV\nDeDBblyv5vBcKsr9WpwodtvVn4iZUvC0vNbi2jgcKnoGPRdE0TqLonqLQbXP\nJPDNLr0QeAmnD4G3KeYimToezfnwUEj+gzm0jM8MHFzyEMMWnL8ogj4kIvve\n/RX6Ei2zWNm1S7zd8hbGuvxZrLgHwnYPdu+o/6DHrS4nl6g4+aTbggtKljP4\nlF4u\r\n=/M6m\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCo4OF1k9tiUvou4cjxkAp5Bf1NogG+AjhUAo4oLy6s5AIgd9UF285XYbw+Zm//Blm/XjdCdvwx4l1PTRvgVoY9MJ8="}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.0-canary.6.100_1586287229140_0.901810031539068"},"_hasShrinkwrap":false},"0.11.0-canary.6.106":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.0-canary.6.106","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -w","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^7.12.5","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"# eslint-plugin-no-explicit-type-exports \n\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\n    export type barType = string;\n    \n// index.ts\n    export {barType} from './foo.ts' \n\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash    \n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n```yarn add --dev eslint-plugin-no-explicit-type-exports ```\n\n## Usage\nIn your `.eslintrc` add  `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n   \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2,\n  }\n}\n\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README. \n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\ngiven:\n```js\n// foo.ts\n    export type aType = string;\n\n    export randomNumber = 5;\n\n    export interface anInterface {\n        bar: string;\n    }\n    \n// bar.ts\n    interface anInterface {\n        a: string;\n        b: number;\n    }\n    \n    type aType = string;\n    \n    const randomNumber = 5;\n\n    export {aType, anInterface};\n    export default randomNumber;\n    \n// baz.ts\n    type aType = string;\n\n    export default aType;\n\n// oneLine.ts\n    export type x = keyof typeof String;\n```\nValid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport * from './foo'; ;\n```\nInvalid:\n\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n \n\n```js\nexport {aType} from './baz';\n```\n\n```js\nexport { x } from './oneLine'\n```\n\n\n## Further Reading\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface. \nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types. \n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n","readmeFilename":"README.md","gitHead":"7e1c6069e944019316ff3bae7a8adde40da3aeb1","description":"This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.0-canary.6.106","_nodeVersion":"13.12.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-bjYFf8CyMkhomWC0Sv5rHHEfOHY+I9456k2NLQnQOobfb8/Fi0Wjxws2S+H+oD5GJM9Vr6JPfAvLXa6529HCQw==","shasum":"16210bd1e928fb9c3d5e7530387a7e93b55f79cf","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.0-canary.6.106.tgz","fileCount":39,"unpackedSize":52229,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejN6dCRA9TVsSAnZWagAAnS0P/AqfneRuMo5rCaa0sxbW\nDZ07fP0qUVC3MSutEedmQFCtUIM1yoczCp4nwovDh1W83lspVjE5pspWyk3N\n2W9gdahr0KAehHqoEExqR+Ma4m8H3x3MD8mft+pV/kyCWLoF6Sa+oKstVNvK\neS++M0bUDt/lq0xGQ57yZ7P1zctTCSvwjhjxD6E5uh6yJRnpfoMIC4Gm7l80\nD+fIlEir1qUNMG8sbOpBa3++n90KhE4Sjl/WGRRHMVFYO49ZpHiJZxORg/Do\nbO7B8NpTNNeWMAVdzT902owqxTNHnCNMbXBpML9CYYIQ1WFcFufpA6+FUWro\n8CIljyk1xShia5SeQsxXEpwznBTy9wQ8eNJTwEe0VvOAW32aWtuznLDP65xy\npd94EBDdgz4BTVrNKwQbFZYcAnhE31AflDHiF0zUZ0J6OI8QCPHtdf6yGyXY\nNdpUOU2Y6KIKz5rwlUJYeZTo1bZKnt5UUjeYo0I4DsiLUtIJX8+2KXDVHV+6\neFUzXT2NSJg+JVL6ymkcVNr0vAWqI8UxUi2iv+wG7j1vG110zFw00EVz930d\nY8eyy5Vvl8D/+GRB+Y6mTRFkmFCR4J/reY1Ywd0afKQchdOC4nSlOQ4r4hL0\nQoGiX1kNPe9Qv1Ch6X3LrWQp2Jgno3UB8d98i3Q419ehKdWy1USoj3eqUx6D\nlyuo\r\n=LqqW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHLjgbE6vw7x/Lalg0wf6vXiDwGbKhdzO7JxtC897ditAiAV1sclGRjR1jAm/JHS/fi/GzRU0uC/TTAUJTx//pfy/A=="}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.0-canary.6.106_1586290332480_0.9174664451370382"},"_hasShrinkwrap":false},"0.11.0":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.0","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -w","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^7.12.5","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"gitHead":"e2e5cd5b1fe79aa507c85422a3a0f681920308f6","description":"This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.0","_nodeVersion":"13.12.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-mJgMmf4+7bVhGTxIJEtiOW6JBhvkCgdMAhzEGBvMZHBS0bqZIHuetB6dNzLddRrUFqzZ3D8ewK3FQ7Mpgx58hA==","shasum":"230633253c28edbaeca9f6696271fd0cacb4ef45","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.0.tgz","fileCount":39,"unpackedSize":52618,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejO6oCRA9TVsSAnZWagAAKd4P/16EJhYWBrSPKYjZwQmk\njXPONa2jI6ExNdClracA4jwaaOsoYKCV+FjlVv3MJFIP4bTA0YLuf2fC54Gn\nY+SjEnc0/x1ZKB2KtaR0yOEiABM7LWouWRop/jAUz09RzXBjliDTWT6HrnAI\nky8/s09CKeOJ1IKbOhfEnaTtJLQ57J7MM3d3bMMZDJWQLrDqZJfmxGROqoOx\nOooVrj0AjmYs5r9VatCCEoTefY6ZqHuDyXNxXNhbrqWPRzwLYQYVds5xzNmp\nRU2hN6FNeHng/qQYanX8LB1+6Pny6pzL6FgBeF0VGcqBwz0CLAt1o6WSCBBT\nkkLYsqtxNnvE5KLqiSv/T4jvr4OWt+Gt9lf3l9cK4EO4eDecCiGcfCQT7Aah\nFZL5nyQoiErsBwlEPbnsBi+6ZOKwjHBvkV1TuOokxo5mO/krRwRoVJkreTC8\n2Uj1lKS9BNDkB2lPztnwbNw/2ddj/NtU5WooIUY/gfnr+ge1jncNxr2p/4XF\nZ3dwX/5O3y69Gr6V3bR53TdX5qmc6/Rv4dSrV4tb2Q/t9DkRHIbxi4THVmaD\nDJi0zHLC/YixYYoSChgbpZGGBgJTK/I1W1i6LybA3Gr+81FozHVRtzykFGbu\nA0yeqg1Pg4AMMe+C3/swtoMVayYiKDUZKQtgfHcFqVDdGkIf/rRawzyBee5I\n/0mw\r\n=WiTU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHy4g1wRhhS3wpc3d1Xl1haHGeDhu/QDlggdE/T4YQ8zAiEAmIOsQ/gRL5nXxdmtwpbC9NfMrhFpbmrx+UTSSL5G2xo="}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.0_1586294439459_0.04388162056531697"},"_hasShrinkwrap":false},"0.11.1-canary.7.119":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.1-canary.7.119","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -w","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^7.12.5","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\n    export type aType = string;\n\n    export randomNumber = 5;\n\n    export interface anInterface {\n        bar: string;\n    }\n\n// bar.ts\n    interface anInterface {\n        a: string;\n        b: number;\n    }\n\n    type aType = string;\n\n    const randomNumber = 5;\n\n    export {aType, anInterface};\n    export default randomNumber;\n\n// baz.ts\n    type aType = string;\n\n    export default aType;\n\n// oneLine.ts\n    export type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n","readmeFilename":"README.md","gitHead":"061e206ae2c829717fd10f69bc16aad4de33b453","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.1-canary.7.119","_nodeVersion":"13.12.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-ymExCBK7fw/EPwUZQ6dY4bAGRjXoCCGyplbsA4Zuey/XuUXV+WrMTKZ2fZA1dFiaoOXFuoTo1xKtX9MUbmw9XA==","shasum":"a7973c9d0940c989d228cb2a71db85538b0cae87","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.1-canary.7.119.tgz","fileCount":40,"unpackedSize":59347,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJej0zBCRA9TVsSAnZWagAA2koP/3zbo8Zkk9TT7DD0gyOB\nW6j3ft9DzQwlcfhycJYdlJrLgO3KHYzUEUhSkaAJ/EVb8P6icLClABploiy5\nPZDaQYCqFDgxfTaPdiMseQMBO1eHoURA4ALxUTa2kYY5mxmwBeXWlhdtlUD+\nh3kT0vIRUrW2Wldo509Dowyl+8HiX+6/HibkCVCVzFBPOoWfTKotjy2KffnJ\n7fcMpQ90IK5auBBsPFn1UNdqgpOFHNYg8ZgkB297rYD1Ltgi6kkwJrLFxkjn\n10cWSZNT02XHtTENn60BzmbaObPqJsO3roOf4FedgUuKnWEZzl1prTJRq0QH\noU7gol33xB+lj2+P1geerGzyd7M+153XLXOR+YT3CC/D8WZw97UQqORrvJvi\ne8pRjz3Xy1tM916S9k/pH2Y3LOhcV1PsUlQ1IMerebp438mXTYEJy/2gQmVL\nJZ79tkZPTajOrLysFpwgXCovNyoDS62M6/3kNArqi+EE9WpNE3hZBYwDwZiy\nbETcsWCxrqgIsgTfT/InP1FvIvkLbaglgonKhfn9hJqCoV+gqxWYlawJsMVU\nrg3geewJJZ0S+nPgdmR14fYhCRVJ0jrz0dxj9lvrCbsYhYKund1C4S2x4LHR\nW7DMuicxBRzKBrpX0mLm++bagyMMJwc15qgxzO1fICSrQegwzZUsdMQKVC3l\n7Ehq\r\n=9gJd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC9HhTCK0jonGk3pCf0LjoaSf0I/g9JkyRdNbtLby3ikAiEAiDHTL5WQ6efNgfpj4ZkeyuDR/CdwkL4pyQQUPnkEFqU="}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.1-canary.7.119_1586449601019_0.3158853917781026"},"_hasShrinkwrap":false},"0.11.1":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.1","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -w","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^7.12.5","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"gitHead":"479d0ec218bbebb343c91714e8b7c406601f8a88","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.1","_nodeVersion":"13.12.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-qyVEiIcAz50VG9Q1EffHb9iUH8ieEcSasPtMPPjJUPNgpGiCs5EoLQ53oD7indWEVF5NhxA3SCWC0hLuUesvPg==","shasum":"0a5fbab5aa5adf3cc9a9ae761a6f6b7ca0cef3d3","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.1.tgz","fileCount":40,"unpackedSize":59741,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJej1CuCRA9TVsSAnZWagAA1QYP/it9V0mveuDQ9dqlQlUS\ndk8Kzzu8f8D7NXwkki39H1QI8kcM2oMWfA32Hec3snFjyyJQYddmKsj//2ym\nXp+alCyuu9Pm2h/vhC2u2UquTdJq7fKGZJIXe3iXwU0AoMbpJBc45kHUEMRX\nd0IdlrL6G/D+Rj3rwuS2CNeF0TAhJ3ZeqTyrPw5MBTFiwe9drK3ZMlvkhyCo\nbKZPwkzDVEsos/UWyVJdmubiQMAFmI/yqhKSYCFX5Bz7tjGqfeYpPOkErmbA\n8YtFwRihgymH92Z0AToo0X6bSWH6m1If3+z7/dGlYMlhpaF3evVyuz8/YNOG\nOXQDnPeTECjZm3pxDlTUI5lweB/RSG6mrG/jfRhZMriXapc2plhfXCRjdR8N\nOIrUgTSzVsl8B+HzLkpcndv7b1TcGg+d2YdvM5T4ZpLzZj8R38zpKuLR1/My\n54vHFqNloJ7KfB4yK5imGq7s45XrE/Qs2mXDwA1WF6RvqYhW2owgNdlv4z/8\n0LST/w8FkMvmttPUHiR8OQmG63gPtBnv/lisCx34QQnvGRLHZV+jtZDTDMAz\nzL1vfrHRik8WILWqKR5/OxIgcD1CRO115IeZiU+cRPPN9JpVA/zfAazsy0gv\nvRRU6mwvk4+NrdiNSSCeu87ZOfffcJJRqgN5R0Lfn0swT3xyvPiHasyKZRvF\nHbq7\r\n=XgY/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB9oXP7qOdPzLmMYgnCp6QotFrlDi+ED5WC/hN7ZQMFIAiA6YAkwuvd8nCgcKDgw6HPRorUmyLFZxGGIR8c2MTWzbw=="}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.1_1586450605837_0.7663522768983206"},"_hasShrinkwrap":false},"0.11.2-canary.8.133":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.2-canary.8.133","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -w","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^7.12.5","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n","readmeFilename":"README.md","gitHead":"75b5528f160c0cd4b92a5a46ea6d092256fa4f6e","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.2-canary.8.133","_nodeVersion":"13.12.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-fAxSz+6+HwRnp9U+83RBeHuA0RfrXfixDPsgOSlB2YEpqxvUPTu7Qw7P0XdkdFFa16W5c/T0uO+nKztRuPK/ZQ==","shasum":"6e4e51360059203a73a6a8fdf352b858c41f7c10","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.2-canary.8.133.tgz","fileCount":40,"unpackedSize":59690,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJej1OZCRA9TVsSAnZWagAAKcwQAJ/p0BWAPtPrN6WoywAp\nBJDvOW1FEX/qyq9YhiTGBRwwXxZ+RwjnGA1cHek3XUPIWPWQLK1sVXIBPKSk\n7ZzJDwDEXU0CFFYomwTc6AY/caCKiVGxWBn7/jGkw6a5ogCK+y8tgDXufxuV\netuRN3ieC3ZYBJzhYqZkL12vbwwpRu0rWT/QJ4tVa7cI+BS0m5eFO2kkVKgT\n4AMszf7pzY8p0vLTZFCYcVEH1UHQJ3Ejo8hLD+EpQsOsM7CKgic5LcFVSHZQ\ns31cnsbRSdOIOKDqMZKPNc6fMNb0BUPColjLEtI+27YR0Ql5hR7FJmIGC7sc\nX7DkGp8x3/CQZxjo53Z7DxZ/WNajHaOU5RWi2u7Wl4f9pkfxDlMK9xN0QBZ4\na2gB+9dHhRhIQ9h0ORCDB+tgSNTn6H+iHs9Au6daERwT35PS8IcgvOF/RysN\nAD5dX7qP8WxL3Sal83Ax82TRk+09PTMo06NJK/HAUjHKlEObCScnuUaEXBb3\nMesdLrWcQJHowEmkB3EeGrOG/Ea+pIX8Ei6WQUwBQ11lQlQ3YxfvWP2l5cPf\nv1YJu9SuRu9z1FK8yN/HrMGnbJILMJCLXavOKjt+ZvGOB+LpNbW89qghUcvx\nwkxoK8REsaMsQLIQRi+kSyI6KFwyroV1bSuw7zGCGsXYp34Kctv9P+aEqqm7\n85qY\r\n=ZjyA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEGNZixj73pFNnmg0FwZgUiVr3mMOZhzkC+o/5sZfKbAAiEAnBxa4+N65Uq7MEbfIEXst/EbAB0bw5DPcli7RO1u2bg="}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.2-canary.8.133_1586451353064_0.6010502222240668"},"_hasShrinkwrap":false},"0.11.2":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.2","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -w","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^7.12.5","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"gitHead":"7486f6563d7d62fee09b1ede3703925f9084862d","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.2","_nodeVersion":"13.12.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-31ENjg0spSvrZdUSFZour0HbcBEHi2e1Q6+Ffwi9c+j05C3X9rlSl08OHscI+4vDrw/NifW0yHYov/4Pg+P5xw==","shasum":"0a5614e524ab6c998edcf43469fa2be1e40d6961","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.2.tgz","fileCount":40,"unpackedSize":59979,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJej1PJCRA9TVsSAnZWagAAcfwP/ArLCuDGCgbUoZSpQhDg\nk0fOR06H2+wcNQlDvKMAIw+7y3P0ygZkCqc5Ma2fZuYP7Sh+vvFPBY7P1M9c\nWxAJYVynFi8JcFuEeTw922S5vQ1pKMRtYAvQD8kJ/C9w6NvPvceBXDcIacK5\n/pdlyCBTBnE35Lf50SnQpe0O0+d6r25asckUtePda2/H9NTyDJ7s3a+KpmEa\nHdpPuiXhI0wU6nXbdQXwjH5/bfohdPqJvCc5ZhebrhWPCMoZoXk+jPSFT21V\n5ryqJqEr4uHHgoJmqmyqvTKFWHIt7W5ZRVK3lYuDnqnGN+346h4rO0MjdItw\nUsA8JXmyERbpLqsSYcnDRhzn1nIRMJFBGNuttd3X42s107ht3GzHL3zGKqZu\nBun/XB/aZCvQrRZdx15oHV6Wx7yOm9vf3k7VwXwzwZCneC6MgLJh0ERKEsfL\n0UnDz/rJbAASqEl70IMcpxNIpu+00tVosHHoCrNRM+Rq57KTow97oC9cLl2r\nksVtxop+zO5xkib5dnlNHiclCRIqcBhAtKX+qZRU/X6HXYZh5pJpespvXHBY\nvpZvPufXU6z+8/lwJfRW7ilUUajZOAq90hw++9iuWPK0m9joMctLVJ3ukU8P\nHgNCkcr4Z8U+8jTvzXRs3GaWTBDmD0DlZRVzdJTrumJM+SDI2O56J+XeOJ+L\nOGbG\r\n=ttEg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAmPpe97BtVPRIfwnn9u7hCoK4BUJ4vIo9mGdNMM6V2FAiB0RI//8RPDOOaHPvi/oTUVA9vpMS1fwaOiT7Y/LnLXYQ=="}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.2_1586451400641_0.7393061825865639"},"_hasShrinkwrap":false},"0.11.3-canary.9.146":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.3-canary.9.146","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -w","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^7.12.5","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n","readmeFilename":"README.md","gitHead":"53d62fb1e070cab39b98d94646dbd9d1eb67dbc5","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.3-canary.9.146","_nodeVersion":"14.5.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-fU9s5M6uuQV//FvKuQiCGNv2kocVV/5Td2PBiYLUx7J11yEDkrrUMHDTtJZEezs/ct6TLoy0VYXhQowRE8MhKA==","shasum":"b9b6093244021f6fb85220aad35973f22ad35b60","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.3-canary.9.146.tgz","fileCount":40,"unpackedSize":59992,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfEz2aCRA9TVsSAnZWagAAUkcP/0VjR0UwMcG7TIaXUXxV\n7Fw+0ov5Aal81VDOEBZVTtKKtuRUy9LjUu8fo4/kRscS+fcNTj3bYx722eAZ\nebkCc3xyni/6/nqiyan6QTIww9LSp6UHUjJN4lE8KiKC3hoGvPbhwQ7dbCHg\n+I5XF+bIzUFECVNfJ+46+6ylKHc6vZaSupk8EwxD0KdwLhgG3sg6VJZWpI76\nbfaZP8nSmSaPyBRNh9oZj0bQ0GsWnh930doseqnckn1FYrYfpLSbaviWcXSg\nz2FrTeXwKql26o3ddY6YLYyDE30DxRK+AfZkewaD/kb5UjWLXkB20LIGOLw9\nCzXl2OwZuyn/Ds7veK7yyeqNS3d+XON/42qvjXNgIqs7CKxaW9jZxnN8NEOh\nfOnhraE5R3an1ie0kpN5adU4RbyyKd9iSl50/5w5Qw+tp+8PTTCjTcLKw7DI\no/huPnny+DQh80oL2XO3yvwoudBjVLcPrM5NvzzlkFtixovMHTYSg3SGMyN2\nkyKQ7CVx+af3ca7DfVdIZP5MTeC2rtH8c2EPn16NWmqzgrtZA/6rMML1T76L\nqblc5qnmdnuvBKccI6Wv6GzoijRc9CcA2V0xN9/+A2Ut6yYqb4wrwBo96vH/\nkYoZJv7iBGbFdd1JuGL6W8waLckBfNlqMtw7Q4Oq4Vket+J4KMyPa5qlu1+0\n5IEX\r\n=vTy4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGJJpUEawwrQSyX1N5oT9/s6Vp6ej3Tvk8+2k6umm9WHAiAdBcTrVxO4mOWOSC3a0AbU2LNE57ubBR9NU1JqYdSUQw=="}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.3-canary.9.146_1595096473857_0.6817481600023705"},"_hasShrinkwrap":false},"0.11.3":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.3","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -w","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^7.12.5","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"gitHead":"7105544150372113ba5eaad925b3261d89c1b084","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.3","_nodeVersion":"14.6.0","_npmVersion":"6.14.6","dist":{"integrity":"sha512-PvjgwUl7EeJWnCf2PniRXx3Y+p8n6qkWD6Hlua6kIz27MYdVXU7r9Vus2j4kpjoBzwfG7S3QhG+LMjnOSpgzrQ==","shasum":"fb78c94511266691cab4cd042ba56264ecc2e801","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.3.tgz","fileCount":40,"unpackedSize":60277,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfNbP3CRA9TVsSAnZWagAA3T4P/3+zlebt5qhIldHaZu/s\nX+oDsAgab1R/ZouyvybZH2/AFKQMVPcTQc5Alv1j1km/M7Nykpb1mXQlVshI\nVYR2Bp5+XrF/8Vr7PcvFKZlvfCW2ojISDAqsNDKNJ94Qfb0rAlO4il2cbUb7\nNUfbVGq9H80MdIb375pylnXsU5dUa9Kff9R+fwLGqGcN388b/lnCdHECTQ+J\nUcTOa1AZLg29/Sm5H/QI6HSjedfiKb75vjHiQWKhchNw2BHL2r96c7m15xzn\nn33mcoj+VwXEY0+aS7K1ibTWShDtjQCMRraix4EAw/+XsDfR4k+YK57j97pL\nCeK4JBe47A82iRbhnlr1z4OgyqqAhapVt2VKD8t43+2QE72+3OQROcBBSwkG\n0qnce9C/c3PPNvYpHaW5iEYD/q+4Lbp+YkNbaLCrrEM+oSUbaVJd+6Z27056\n6Xg2LZl+8mZB4/x+f36cMeNoldIyQ7+5K3+DDPtItyqprAhYH443909cU2x3\nVzC9Ireh245gYHtWBuKIuSdmpTm0YlKE15IfnPDWgzA1kQq5+lqXAO+Oq5Gk\na0kmshjgPk0J1wwZVkokoYAPzL2WYeRMJSbtFSprQnmLXFIVskRy7asVHM/6\nqbRJ4NsRQKwrYGCV4JhA6FgUfFh9FtLq7enhxfuBSWY+QjbX7DFrkimz+qUT\n2CnZ\r\n=LRe1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG0yRyNWSHSf62QhScZo3CMbj41MflBcIjN+oW3pBAQPAiEAqxrG0Nqj1elAaZ3TLr86S09geQTvhOmEKMNeE1Ad678="}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.3_1597354998505_0.767006667075288"},"_hasShrinkwrap":false},"0.11.4":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.4","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -w","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^7.12.5","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"gitHead":"034d56959340b3f71a1c257e43290e40fc24695c","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.4","_nodeVersion":"14.6.0","_npmVersion":"6.14.6","dist":{"integrity":"sha512-lmtbW7OyBgBnLeU38BFHSzW2aPT304XQejm5//W+GZulzmb8yX1l0P+4rP1nOUl7shWN/3ptlYtKwFVuQkxGww==","shasum":"cc20c92b14bff8553039b2d8b8861956e75be491","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.4.tgz","fileCount":40,"unpackedSize":60450,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfNbQbCRA9TVsSAnZWagAAlNAP/innPjADLfqCFJWMO450\nr9jpR5EhF7tc6TRXuMgfHgo1kroB7mfJWHjhJq48qc25kzpZe+OW2aLsm+Py\nvZC8ZKAlxW7Er6qD1QDoUavr5A/iR97Mh/It2y/G9vH5vWFXAVxwsbc362fN\nSfsHe2oWGhISrZMja88zVlusQvIdzD0dfQG8lwbUzdb4NnEuOnDErnY4NWCb\nMCIGqOHwd/kcXHnUW4105YiIIqVq+KED8nno8P8VuJ+OnPXybeEyGCqVaYIt\nvjYlSH4bmCPdi7bnirGsRqHTYbjcJKX8xL5mnkddeN355AMhZU4U4cOkx1jJ\ncgd++wSm71iUgjELryXcaWSIL99FUqUBVcJN8pbGAvPZob2106oVmMLw2ngX\nX1iuGXMmmcrjsIni/GmZkIBJ5yyGLljbn9ofk6IrvmNPXGwlSW1v8fcXxUF+\nkjVjuVzAR6DA3aeJWLryuh9FgFPlTm1ALLasjf/X5e69E3nDffUtaHduK7L0\n6UdNoPB15bOeYxTItt+q+6UwWqaTnRu43HpzGrbd2jIeVyvXTvwQdqtU1Oz4\npukeLdACIsj0Yw9BvxTXHZ0xz23Q6iXNCrHdLKiqdHPl65DNbaI48f3+yMVo\nis+lZ/BwRwiZ7ppnNRQfKsIvTKkgyAE+ElWqu8NwOy3OlniWdiriQJwNhrkV\nCUad\r\n=KndU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDd/PtYNmNbh3G7hF7LP1c30QA0hAaeLMGHHWLkjWfYMAiBY+VPanlRgYDcQ1/4RyjkkDnL7eE1q8OFaaoameS8LyA=="}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.4_1597355035062_0.031761567764593934"},"_hasShrinkwrap":false},"0.11.5-canary.14.165":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.5-canary.14.165","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -w","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^7.12.5","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n","readmeFilename":"README.md","gitHead":"83838ca4bdde3190f6cf1889b248aae7d54ece78","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.5-canary.14.165","_nodeVersion":"14.10.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-6NHUpOQxoEEqzQ+At+f62qPBR7DxuCl5S2DneVD7KLvBFQna+WXyCyFgpT/vG3MFv9KbHzNdXNO/6qhTv49z1w==","shasum":"d8258dc1943f95054b26664c2e85b03ac837aee0","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.5-canary.14.165.tgz","fileCount":40,"unpackedSize":60464,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWXrmCRA9TVsSAnZWagAA6QQP/Rg9VXnDvGXHIwAWtEj/\nYzUwULCBmFZ5Ssrq8t2OhoNM1mIwJyXdENc2dW45BOkFL+wggeNADWL7D/FG\nt67q+c+q3retz2W4Cw/Oi26G6HnTBlLluiAT1tkkR3bew1Orl3ODJBHD1isH\nVEMVwbrgzeeZjjBmTwEgNK7Pj1cDdIkrgn3Ql/qOHNWj36hKvldHwBRAZ/ed\nNHcz1IZ3AsJrysaLQrZ5ptIsQireGMCO/5yfAS7turMbZJOv2qOKdMe0x7bb\nCceDgJDD8OJTS5WJuUxrYFwQYYP9ETqZYQhffhVlyXEtsidvlduYz1XN+4uc\n+Jhoq2LJ9Sahsn+x9/qThknx0M7KKAiTLbzI2J9j8CeAz5AXb0eFWtIZcxWS\nbcoFihRHPN5DHEq6ZFgfKan2UMuvIY4Ynuf/OmPdvJxW6+Mc5MPms/ZlWET1\nFRI/bu3kt4518NgVGBcW239rCgm6EFYSLGOxDKxVO4oM+jf5QYn7O3KyyVRN\nxtJTMpAR7JHJesWoLY+3MN02xByo4gWqJjCjgcOC7PR9kJ509HMUhlVgo2NP\nlbl+ivn87622k+ugEzyl12QzHJ8usHgzmDpSUQzBEQP/hWl78CqpscRMlYXw\nk4iaVpCrP7EV8nPUfdn0wObBLNiE9NrsptPENqDyKr3kzjJrISjqMpspwKHS\nnjUP\r\n=T6vJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDm1ml8U5ElqFNc2vtDlHPXcpqBntuUJkji8Ps0R2aN9AiA94EHj2GZtSF0+efHlpOQsdMbBwoQ4OV2fcDA0tNCS7w=="}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.5-canary.14.165_1599699686436_0.5681833229353006"},"_hasShrinkwrap":false},"0.11.5":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.5","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -w","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^7.12.5","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"gitHead":"5f9c4870b655a8bfe10ba7eb94b3b58dd4b5432c","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.5","_nodeVersion":"14.10.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-coX3v5eTq7BaSNIBVW07zqg1R7R7nYtB1R8ILYiY3gDIOubYOQnL8VSaiZq54nIqi5cmVjC/cIhOC+t8rAA2wg==","shasum":"3a025709cb85510b864734ad5a3d1180b3bf33ea","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.5.tgz","fileCount":40,"unpackedSize":60755,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfYOqsCRA9TVsSAnZWagAAjCMP/RZPW/7rjyXQcllgfvGZ\nPIFzZDt1zKTetrHTCWdL1GmjOTDHYyJuNipJabasu+9PS2RraGTtej8m7Ey2\nlHjb8VqfNVjMCYe6yB0pj5++H4nr/r/6h2wJkRqkx95x6W66ssQwfMnlvBGV\ny/KWjhZV6Tpnv7EQdRD29CD74or25bvotEYBhHOhgW2b8xywAJ4RLeo3d4IT\nZGWUIjEky9uScq+fykgPYIh66xOHp8qU+oLInNkO2Cgmmk8j4bXkY6oKZF69\nXz7F8Q1Mv2URTMzgL5HTuYIcEWDL75IxrZbOLGRvg+bRPc2wy328bprMgVdt\npcoPdLIoZ39NQavKaSvUlrvqyhlcVprkc9LzthMGVTdkRc0dkhuaTdS8UmlW\ne3TQkjyYnoQBlhTSAolWvd2c6/bfEomX5XKh7Pbryocd5P6JFLLRKzuGRfGQ\n/7x/o2AToXrvSWLZMjXYWuL4UDwHikH8lavfYcwTE2kv/7Zq0H14xSYtzKhF\nwmWeh6WARvKmsPL6F5o9AcPvDaYKO6YtM/sAIWse6jPyERNdLccYlAdsAJpb\nVGIM6qhcMYILUlx/XgeszmxmC+gVDCpfn82d8mZJK805GS1P6tdB/Vj+P4LF\naZI7Gha5p+3XW0LeyM6bfRXDe6S7nTudhqalqIABsf2yrDxvFTRt6x8S3Sor\neeP9\r\n=F8Uh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDeZ/s6420LLNU8xztLFn5SjtOsZ7IEm8iNdc+ABCE7kgIhAPkOmp5jgGp5f6rQ8ZV9SCB26KcIWFGUOYxwBXn77iEg"}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.5_1600187051655_0.9855203545432178"},"_hasShrinkwrap":false},"0.11.6-canary.15.178":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.6-canary.15.178","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -w","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^7.12.5","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n","readmeFilename":"README.md","gitHead":"8204623b1fa46d8f612b317ca250536ad87ed5e8","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.6-canary.15.178","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-eEPbxP3u+QFg2fTcWLxBHwD8+Nw4+Uwp1Ddwimr7T6xO2iSuc18gE6WmL9N3NaZtkjRrqE9TiDOwuKK81g2Uhw==","shasum":"1fbc9d7ee1c049142c02366854df5b99fc58e24a","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.6-canary.15.178.tgz","fileCount":40,"unpackedSize":60973,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfbWytCRA9TVsSAnZWagAAlgYP/i10bHXlcDczqRwD2jPo\nzzQCa13qBXx+1PvkRn3Fj7CWrGaGFm05LrtPxUirim0BIaIDcgWIjJr4p+bz\nAZiKHb341hGHcg+PEdiEQGriI9Qiqyy5NehkmQlF0toRk9ne3Y014YPz/jlf\nyfScxMS54/QwrHU6ReUQpG3ulz4d0Eg4F38XSmirnDMAHZc33le+pQOfuRuc\nWc+iQ8yM7/3wEoDJEYeym4gumVothtliLY4GcMz+i9/uJyxnM1y4nGsBDiod\nrinbp96bGgMAO0Jffy9IvlvQVE3Ia5fQcpEbbgOdx8KgqlqaNDcPCT7SKv6o\nac4kzSL/XQ+LOPEW4tIiWHVfOS3DfgKqDW0cpeUD7pVCD9RPrZVp+g5ZlRUc\nnq/9cNy2q/o3rYjz3QwRFHRp23VtCZOgK+in1mBNYZhhQyQs+F5DnzV222I+\nIOszUYO6st6UgLtSA5z3Bxqal+SL8cIpa7f5hr44m7PvXUwGEKLb50F9qHa0\nQH/ceqIx8TMV6/xrnZ4hlZlaq5Tm/zKm6RBrKRuQZ56qEFqgtyciOJyivHRj\niBTW78nib9bMHtgO24REvkaH6mSf9tqTarFwwgmvsvcQPMUGWaB/GOPg025M\ndn+li7/baxmQyM2TTencIPQDdm0oQ0NAxBgXHYk+jiKfizWgBIouX1JoMEEH\nCyKj\r\n=EL3v\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDjEekbsEzdGSObf31e5a37Jtsz94LDNiMZHJRqTjkRuQIgSnyFFrg55hxpalyn+mC1+ZlTSS8H8iNLTWLQulPWNVw="}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.6-canary.15.178_1601006764756_0.6431862296877657"},"_hasShrinkwrap":false},"0.11.6":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.6","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -w","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^7.12.5","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"gitHead":"688bd315efabe50b69080a2cbb97c54d281c0ee6","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.6","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-ncIn0lIiCz1JAh5wIJRiqdXeclUIGCBGblgALHkp6IvE2RbAYOWXLtY5TjPk6Bm4cd/q7XsxzW6H5wz4WwzxRw==","shasum":"b8aec4144f08c68287044ff1e23dd24468eee1a1","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.6.tgz","fileCount":40,"unpackedSize":61361,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfbXUvCRA9TVsSAnZWagAA4DkP/1nHavn7tq+V96GGDmfG\nYnXS/Xj3FzbQdxD37uHQpXVVlSbQsWD5CU9Vzf9F0VbrpneXc41IEUxrxc9C\n6gkjlylFJ7/ShlGwyLsS0Hu8AXAXHcE9fyJ6qTIJI7NuL9FN+wMjko5RuJ8R\nLlma4LNMJkWvIlSwWyEvpxRI+y9y2HhYppMPh4GIDgodKkAvvA97XvyoBfH9\nk/NTUf8v/6jXMTPAxi8Y9I83wswHI0kFT4kLj115eI3L2eVR2pwSWDBf1Z0w\nS03bGYSHlyudPjBFVMWMRf3d/2uU/5IJI/axsBrcS+1gqUmLGzI6FblSDHx3\n+5MsLzzGfdoDT107qvvmurQZveiQvKb9a9Mz8SPKZgBg7Cu1IzYZOf0eyTbR\nzDZHOQWgQIKf/r21Er6uF+byNg/p9b6wHhCFYiZTN8zdBytwdPlDyOkB+h3j\nsYgUItcqvTO6ohplEfXmvHS35s/Y3+/ntOeuHhDBI8D/9vAYmAPk+HGmr6Oj\nKzo7X9z6uTRmWyHl6opNKYYgTjJdtGgEhExgYEYI0fq95sJETLxkaUzVyCcB\nWfQ+KB24v8PO2875OFdQLvJ0wwqnP573dYECh2/dZONe6Mo5ksi4KPMDU7uY\neUrHhuf35sTZnwJdusqsHD/VNWqZtNXflV2ofiwq0be1nDILkZuYHZ+mKnig\nWp28\r\n=o9fc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBXqUlvJ3sdGJl3Puf3Is8mrmgor53gQlWuF0Sy2zbjAAiAvaljbQONgI5unqwU3IlK2Sc1c1t9JysNq64iVqjF8VA=="}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.6_1601008943016_0.9368094824190216"},"_hasShrinkwrap":false},"0.11.7-canary.17.191":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.7-canary.17.191","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -w","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^7.12.5","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n","readmeFilename":"README.md","gitHead":"e69d126a035209f1d6a713e975b985701b37d348","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.7-canary.17.191","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-W/NCiTF3sHZx2yYWKcZejogEXzMtEu7CF/CAAaHHyqLagFjDNCvf5Eq+5LHb1zBlmzr5FkDVr7EZulu07+NNeg==","shasum":"bf33e1a80ddbff2c58d00335b46c9d879f4f1208","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.7-canary.17.191.tgz","fileCount":40,"unpackedSize":61579,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfdM8/CRA9TVsSAnZWagAAv2sP/RPSsr10DyR1bD31/IyI\n2PZuu1vsR6d7CKU53pS3JWcQMngEARa0+v9aT6Jks2R0XXfCSeZB9yT+ehRh\nLQxaie4/fOzWrukz4QsWAzo/twqWhOu8/xtGzkyaylX/0dXs2El2AowQCmdj\njlbZ4Z5qEc7cT9GiI0o6dC7/GdqzipAx3AFIzAFHyY+3CTVHStK5pLdie8VT\njdhFa1tTVK/wCEyKmRf4oK/zi1i+1xd4t1qRcpkEjCiZnR+eIPsQoT/4AbgH\nkMdL8WWBiN3J3lRa5s75j2iIxpjXtOg8EZif6Ik8H5wWC8xUr+tq+yaLFTU2\niz6IifgAagv6E8SOWOoVS5nMfKT7MXLmQL38qXbT9+d8FJEWmVryZWLvmfKq\n/JLr1x+rO6KI1sm5dpLZOKOmIBsM8uThwXr4qGDGuKztOHJvmjSb/w35FGSu\niO2i/iSWsRajePxQ0X82NoYjEADVn2Cef8wJ9OlgYoXZw0Njj+WxR3CZp+/H\nFHeU8HGfEfQMMkEiFQBSo3guhJP9N42+WPFlon0P5TacstEVQ9w+LOppvopS\ncAQUU7Son8iRlOuSlloRnSQ/gaLZ1U1XHdYECOkJnmjC/9yx/08elx1W+exQ\nlPPrzmLIjqs+N4NJ5nLRy9PkgP0tCXwuJ3pVyUO+9IcD/cOq/O6VJ/iTQaFo\nvoYQ\r\n=hrX5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA4zwNMRKDRnqFB5mGTWIOUpaa+8pFB6a1PbyH3GLZkpAiB1kU9l/PYQxsUi2Lq3GRO3nzoWMLVcGjjIt2z9HwVlRw=="}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.7-canary.17.191_1601490750670_0.8968690046598153"},"_hasShrinkwrap":false},"0.11.7":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.7","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -w","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^7.12.5","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"gitHead":"bf16a6df6f32cf926fcde7f7b00b786c43869b32","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.7","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-AoAHrCZrKimuc95ChSrAPi8gTCBMtK2nnrhn+oQD1jH2dJCxaqEek9kP6Fvd1LHJuBWqvNgIfhlqd7uPPJ/CLg==","shasum":"9f2985d485bbb489e39b22d666c66796289ac102","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.7.tgz","fileCount":40,"unpackedSize":61963,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfdNORCRA9TVsSAnZWagAAXkkP/j9EwXqb2wzqu4JW6aiM\nIUgz3Avb+RBq+nK+bvxlQUdsNfg3xjyZDMTZP9+RAjiM6a4mKawEy5BGaVFX\nT4+oVVBE+gFT3oIGuKqPJ9AH9wnsf53hRH36o3sB3N8dcVi6KESL/egZHQWq\nxqTAk25jqUZuVJnno3VFIIK9TS/TrCILYTIphNavWJb/S9HDYjW3Om0x3uP4\n67rAgcxF4NK63MRVtx64tG0PmwsZwg9mMMEPIaaPWYBsZYUw6woSYHdRr/kP\nEDNcVNZGHnT0kf0RjYiqd6p2TJew8kTy42WLjOaUjrnKx2js6qmBxmmMepi+\nGKeDUUOdlEudVPUB+NJ1Y/0R/5v5yi5PpQn3CsfbYI2WoYDLuJc9eSEzLFo/\nd48Fcs5YiOwFWEN9nbertd4nTfJcyRseh8Kq0wEHyVRlUL3/2TrJ4olxl695\nj4e/Z0iXSMUOcSZZyYV4pI6XBkYs6x+nYZcoaVJQZktSj8AaHCXyXvl1C5Pi\n0p1sI/8XRGg1Nstk5RaZuBtkL8pQkHRwloaIkBcDCTVagSyPhHmaqCRGCcdt\nxd1OE78KkUaVWgiUsD9bTAnpWoCbEezkDF0nxv1MAR3nC6h2uszEBWjbOmt0\nmiLaMAnrGpQ8asaMK/dtG5rS5VZu81hek/PMacfbJ3bAaOozG1Yce0A02TiW\np42r\r\n=tyYu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDjiNa9XZl56+F8G3OtEME1rPV3/6FE+vPe7cYXhTrgpQIhALf19MpWG4uIFXXOrpGsh6ZQUsGizPeyzwzvmPcxmp7m"}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.7_1601491857236_0.09704549237236426"},"_hasShrinkwrap":false},"0.11.8-canary.18.204":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.8-canary.18.204","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -w","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.53.1","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^7.12.5","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<div align=\"center\"><a href=\"#contributors\"><img src=\"https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square\" alt=\"All Contributors\" /></a></div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!","readmeFilename":"README.md","gitHead":"e804a72cf587e374890bbe03e4fe9e3b6aa9788f","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.8-canary.18.204","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-pZINh91xzfBZOpDFzfAe1nZfUXN4rYs8TSkCPkDDlbJSasDEAaSvOPTN+N6kppwPdMLIu4EZccSZBs2hNnxrMQ==","shasum":"c20862af93c6e0f305f3af26474f1fcf6f8364f3","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.8-canary.18.204.tgz","fileCount":41,"unpackedSize":62994,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfdOfiCRA9TVsSAnZWagAAPEMP/19ry+BV+rxk0fKS8xMB\nwFCyLu02KuXf6BQZvzGMsYLNuo693Rg6TNlSx2Z7tcx2aqkRGMjuXjj31PTW\nLd3rZk1D85TBiV6UgGHVp8M0DN4KSan61yp2Dkgf2joVWQF7YgadJnvVF0TF\nKHZw0h/kaBW1pzGs1JqBijrH4l/B55aU3u1IIuiLLYQQeXN0lStSsz0WlMkm\nPLGbkxmSSbGn8N1HJcFkO+1TvSWF54pcJbIwaUDEVj2K7D+Q3SBDzZENPmo+\n5SF0xNteq+ru1p4yy3rbvIgMSuXukLdGloyxzoOi2mZg0ZltzFNBJjsj91mv\nbw3Yg2unNluG+Z1xcqqit4piug11dQPbDNSbT8NQEImGS2qh4LUWxbjp62q6\nbtmdkCu/+z4ICr/HA5Uj47G4GMl3woYZQhPPoFQf3fD2ZGJfgGSh3+b0Bjo6\nsuDD5gnMLAOttflj3HvuP+/BNA0Jltidc6s7oam/MlL3abvPI+vb1RsU3a/P\n3qeZLy6431KLplP1nsOZ/CCQOCXuH4pjG2fZfVSVgFhOZBEf1YNo0Ung6iTL\nRj2ys0wBvg2YjfTaL93cPwGfEgAUFFJHbEheHSXoXW82/tGNOgjnNIe6zL7Z\nWJOCfDy936//Tfx6OjY2YmxntiHPZqLjh7Pzq0xkLHwu2ejcwc0eFZtAwXAv\nyKfY\r\n=bzI3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAs2ksvQkZmAbViz9OyhHMqnPekrg85F7Rv18TQcpLTRAiEAuuvfD0A/XSAKwOZc0XGR8gRIW4Hoj6T9WQR1HYyN9Ds="}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.8-canary.18.204_1601497057823_0.8456446652103766"},"_hasShrinkwrap":false},"0.11.8-canary.18.210":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.8-canary.18.210","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -w","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.53.1","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^7.12.5","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<div align=\"center\"><a href=\"#contributors\"><img src=\"https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square\" alt=\"All Contributors\" /></a></div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!","readmeFilename":"README.md","gitHead":"029c184a7a281e577408aa8cc8a53a10f7109fad","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.8-canary.18.210","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-hn0EQjcq2D9yBkKsDMWRaoJ7SclnPHPROzPixHn/LrGBSMZF4FHIMJ5R2dRgSXess7NUCSVrVJnw7fZk4U9pgQ==","shasum":"3afe41105646822c1d9f5479869a1e9c5120c883","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.8-canary.18.210.tgz","fileCount":41,"unpackedSize":63804,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfdYVSCRA9TVsSAnZWagAAoewQAJb281vnPQU6IkDTcxmU\nEoTP3SP6HX9Wa3tQseeWLrO/XGPjnRb4/BhXrK7S4rOJARIkKT0SVvwoV+G/\nVOVtife2QvcqzqbQfDhd4J4t83e1V3Lb07+6Fs+QEq9lmRx7puRMGpEMVE4w\nap7BA5o6uA1WprJ6zBlbwHXmY/YUE2kew1RjcKBr7Ksa/o9b8nb5fbxmmh4w\n21XH0FY6QZwuk3tV08PbpQNtZEXQDJ7fSTYzjIJ464VxfLd8YrpEavYzIVy1\nGl12L0z35G2sndO05vKpDDvj2BMLJH/1BukmXH3EvS2qIVPye5F1e3ObKvyR\nNHz184jcS+jVeoCEt+atSpfopRJ9lsLiNriih2E0uOmPlb0qiLKixML2b2BQ\n06/p2XBfqxxj5lDQ/o8OocJIQ7ExA2dnA10K43q+ZLGt9JqpDaHcsCbpfrT3\ncmIhMA6JY2hgQiOGL7sG3FnYVlA5bJpsOdA6OdlV7EK0xzev1neVFctD8DbE\n5K8Rq/qwCc5sY5/x83PhiXA6OF8VurnkaiG/1TLRZClUXnEw6KAmXesMEQHE\n6YT2YZwv++HP94RzmARlC3a+0U3aBUX2NU7iWQauQxtTQxmqqTgohxsFczhP\nHjLfPVveRXimqOr6OSYOgDjCS+AbGj5nvHs9cS8DPQr++eCFq4o+Z+spFQtB\nbTgS\r\n=MzY2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCK34tDzJ1HUfjxcx/RJ39kkftc2eiCROQo/j0srTiziwIhALS0XKgwrzeY2J/koSANuJJOQqGl6COtva4/dseqy1TQ"}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.8-canary.18.210_1601537362138_0.07618495069131082"},"_hasShrinkwrap":false},"0.11.8-canary.18.230.0":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.8-canary.18.230.0","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -vv","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.53.1","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.53.1","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<div align=\"center\"><a href=\"#contributors\"><img src=\"https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square\" alt=\"All Contributors\" /></a></div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!","readmeFilename":"README.md","gitHead":"fe53942273d14797eda92b8da51200e53b50ff7d","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.8-canary.18.230.0","_nodeVersion":"14.13.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-sW/8VmYxeByUkZ9DOqkN5q+Y0lIoWp64AgV1C4ncDqungRKlUQvOWOkspBTaAsq5+oTKjxEK98uHhvVzrHRe3g==","shasum":"975ddea80f7c065d11b3b4f116a18bb3f30e98f4","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.8-canary.18.230.0.tgz","fileCount":41,"unpackedSize":63852,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffa3KCRA9TVsSAnZWagAAvx0QAJM4X2CJ+Bf7pIuy/3BE\nis+rYEMGeriLDllmZYP4BoCqArHceYSTws9xqUDrbq+y2Iw6ELQ4YHYJTjbX\nJHlyzOm/wl/hZvynAcM4QWcayPdi0nvdOlQJy0/qMQAF6hCyF9vlpjHvFAkj\nfnZJqnGcZkRHv/4hYm6rJNvP45gzBxqL9ybjo6D2Y6TuC2NJ76i7TdW4OqJ7\nBChCFupdUICWhJWFy9hFzMrQNW6K4f7r55WLRLf83AMKrGCZxWNN5dZkQZnO\n3Jt1qo1E+Qxyv+fJ0sEJbiKod+q6q6vSTPsqwA7FjaRxcJ8L0B6ZM6ffkY/U\n8w22m1Ehs9ogxE2TXauG0s0hnwc94vKh8wH5UQT1a2oGf1CyupCFowadl1Y6\nF7hsomw+EWjG8qAlq3wh8onTb2h9el1Loupl60owGe8VYYwUnnBxCEOixzrL\nvEJLWf3KT+/2oThSkh32A5+QqoNCKybWoi0t7XTmdqwxXMmDta1Wqg4St2jv\nVlEOVcDx+1MoEgZxC7EvePPy+aQOSG7hNrqLO87ZLQCq7VzelwVnx52e2EfR\nbSY/kwz+UE8a4k03OfEhr+h1gAlpeySC/x2H6QktS4jG7R9ifvdlM9Vpmba4\nsbidjEWnkALA7zvILt4AwRc3AK/w88p3CTHqYyEbW6gbmSEwUeQfJy5uMpyc\nArI7\r\n=6zHI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDPc7Y7RkGTVxILKNfCvSBj3Qgvm7Ol5A4EWjUGn5qaLAIhANliGVeedoT09WCxdgunU7iT2hgzrJzDfCgbBrDkOemU"}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.8-canary.18.230.0_1602072009621_0.8164143182179038"},"_hasShrinkwrap":false},"0.11.8":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.8","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -vv","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.53.1","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.53.1","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"gitHead":"c697b16d52591c35a24beca09c20202884520bf9","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.8","_nodeVersion":"14.13.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-RoMd94p7oUu0x3qMN2bvnzdTT33/3UVKwy8Ddlx6lq5VJkgwIA9MhGX9Qqhi9Vl/VdH8h3RHv1WNr4E8YfUXvg==","shasum":"0d53bbbee7665cfde250ea0bc866fe0cfaac17f1","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.8.tgz","fileCount":41,"unpackedSize":64158,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffdAFCRA9TVsSAnZWagAAPw0QAJItsUjOGo89OlZBN5j6\nViOd/qI48XgmzOxKMKCSEK+jjTa8Qdmh2n9GwvkGYl664bBwo+Cn9aucpXop\n3SEmu/Y7s0Cbb/vFtm6QFTaddwcIthyGKLT0Sap41FmRJ+954SP14BvGqLLV\nSvkHqv+2CVbNhTmZQACkJ2g9CKNNi1ok8wmsmBJ9igf1IT7BPp0YM9iTwN7A\nkBJk4lSJzLIUNsp4MMU+zA/+u5afLMrY2j3Iybc+xHY4OFxgq5l4naB1mY1l\nLoPTgjnqklKP/2Q/4E2dzrWkToNODibJj3NUSqoOvrbaGBYYFcz1Aoj9oYPD\nsta7udD7cti+0AAV8lw1hYEqpOUkCJX/aTaMOkWuFDJUxoqaOiwFXb9U1Bfa\n7nYME4fj8+qYw3xSPQaq/f6LiubZueBSkkdecMPCvDYcXCo8JH9zXwgWGv5H\nD3Ul3Wh9MbN4OS9nb8RFr8W95TOLleDgYQxyadqQCp1LQBRV6dYXVfzlFerk\nJTOCj4StlEfMw725Inu5NrsCzsyHXvVq1/lXw/3rlXe6JQdwO5UutHp10Hn9\nYphhZoVGyYMGTkMwIsrUX/AZ2KAxszCrb/3aeQePJbPLaKW0cPGZ8GHHDCi+\nV+Qvy7h+QAqiAEGQjNNUsCZ8Cikulmu7b4ZPf2im14CS7X1wQksUEryQ6XaR\nSEGa\r\n=sob5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDqRdXdfRn4IP/BhTnXUgV760y0AIKsAVyIc21ay26gZAiABA3G2gq02uPctT3Y8cHDRZj78/Cb/jprkosi1+UKh6g=="}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.8_1602080772529_0.1962242991330183"},"_hasShrinkwrap":false},"0.11.9-canary.19.244.0":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.9-canary.19.244.0","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.53.1","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.53.1","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<div align=\"center\"><a href=\"#contributors\"><img src=\"https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square\" alt=\"All Contributors\" /></a></div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!","readmeFilename":"README.md","gitHead":"6102354b640a513bbf4a2f24d2cd86bd0d3b2f5c","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.9-canary.19.244.0","_nodeVersion":"14.13.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-ENLo2+rXzyZM0YdMzgOCohHO3iIcE5yKsbe9YytKZrcqn+8x0dhiI/mNTZBofL4fAJHXzFJKnZNJVt+j2M/dFw==","shasum":"1bce7465dedb4d1cf0a93b89b3ea249926952d8b","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.9-canary.19.244.0.tgz","fileCount":41,"unpackedSize":64421,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffdfACRA9TVsSAnZWagAApA0P/12CmojAiYkOp2DQ6Vti\nCUcjpauURmiC/7z+A97wpHCDhj4yRt0Pk79Q1lvFtMd/pSciQU20sNDtMA2V\nOWzckKopBD9spGyfuI0HG+my2/VpYq34q/5KOQ8roKbLRt1nRHWuetlqlSah\nFFHTIyPl4YDpGMvGNsNzb7cOIZJQiie7eVUskG0+pk+BcwnKlGVcG+Ea7Y03\nW/fF1qJ7elgf034ULF9XNA36A5lOvvYuhoCXbm0kLm4zXzQ/z1KoDYRMiIvA\npSuUrJsvzm6quN5pleH5EcTzeI/+gUcU/dO1xcKVrb9awqm5OvZK7KtjZ+D6\nFwOmrZe9I7/SNTeG2f6z6ApfHVVI43JzL5a9e4x3AqCddaHpEv4jqM5bpk08\nsUCehkBhsgcUVPBFgKYT2KrYo4pU8M61bHkM9g8dOjrrOiIFsRUaGrMCg0w+\nRFNjcSYyYXzINMVEhusZ6+tIS1ZRCmEzNu9mG/Hyv+8BZp0Z10kNfde6Bioc\nqZLnaO99iDaDn08T9jX32Dj89nTmtJVgjbPCx25I/SxFmtI9yLu+HRJwi0kg\nNpfxR3bYrVb7qdxWw0OMXgsXQYbPxfu+RDemE2z8m7kB4w2n/WUAsQ6AWfk/\n/06kK3tyQWoVrH3yEu/J/yDNMjWE5nml9AWjAYqIOFlXIexHL51hqNphFWNc\nI6GW\r\n=sS2b\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD4FGlrvxHKsLEbNNUK4obGXDDpuE6/5EGzm/X4jZ2oRgIhAINNL0HaX4/pbgoOcZdShLtm+97z2OMtiyE3e9IarpsU"}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.9-canary.19.244.0_1602082751629_0.2397749275635992"},"_hasShrinkwrap":false},"0.11.9-canary.19.256.0":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.9-canary.19.256.0","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -vv","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.53.1","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.53.1","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<div align=\"center\"><a href=\"#contributors\"><img src=\"https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square\" alt=\"All Contributors\" /></a></div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!","readmeFilename":"README.md","gitHead":"ce2a282384014c05a9a3a22c7bb81391ab9ca7d8","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.9-canary.19.256.0","_nodeVersion":"14.13.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-IuDf0aPnCjYvqNEj9R2ZEG78IOatJm/40tParEO3lrBP8b95n/p/9FVrwGNZdKOx5ObQjHvBva+vZwF7a+gHtA==","shasum":"08328ed9904e9fb5034ff16173d81196fb921109","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.9-canary.19.256.0.tgz","fileCount":41,"unpackedSize":64419,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffexaCRA9TVsSAnZWagAAeA0QAJii8YZrAm1NEYusawUE\nmcQEOcjdPoJmYW57eVq59eVvNC+FaV9C2foPo4GCFqOkLYM/QikWRIF4dtMs\nhsUY+BZnLvMx6lTHA5ZLdQwJkx6jlTufnWMdZu75b51cCNZqoVJmxLRotmM5\nIBa/8vUW/5FhAQEYwOLrLnZWpFU+gdiD2p0NNjNh0QlpcTU/chX5oS/GjU29\n4fg5gsRAckvPpAh9Xo8npklOCFPFbCv4RJQkIOnxno7mYHmFlVBgSRmimHO8\n+zVjzEv1zZ8YX1WRlqj8Z4mxsW/c4ZRAi8rTaFIj8BzxGcIA4YziucPb5R1S\nOEruSJGUSfHMJ4+wIDbRrStsBX3Dsevh9jP8NWI+xdEb7qsuEX136Co/13IQ\nW2gDX4Oc01PmGc9b5G4rgjcAKICKIj3TMywrm04p3aqU8DqO0Z1UvQDynaje\nM8glpvxLzQFddk8NT3Jxe5JDkZWUYCUTOjvZQW8Tjszsy0TuolpM3nrIcLuV\ns1Xa9HNRb/NueNWAenEGFQjFkMOvebMbbY7L358sloNQ5ik9eMYuWDjHCfoX\n7QQ7WRUt33EsTG0PxdIDdl5HBl3OUVrZCGbdUwFCUkigxSnuplbmQV8YJJUU\nAU1TRoMEOBcvSgkPV00bEwqjV2SwasCkwgHaO73CoZ9K5zzDDJ7y0uasZgQF\nrLe+\r\n=EUAC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCrjfwPWzrOYlZfTJj7iSzEuc3qhAbQ6DpvaDaWURMJ7AIgPe0/KK4M91QyDl6f+sIdQ+KwGBdOfETn7PCmN67pIaA="}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.9-canary.19.256.0_1602088025623_0.8528314841067008"},"_hasShrinkwrap":false},"0.11.9-canary.19.255.0":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.9-canary.19.255.0","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.53.1","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.53.1","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<div align=\"center\"><a href=\"#contributors\"><img src=\"https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square\" alt=\"All Contributors\" /></a></div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!","readmeFilename":"README.md","gitHead":"fc371370110bdd1c992579201612664d051dbd36","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.9-canary.19.255.0","_nodeVersion":"14.13.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-svOtBTYprIqRp/H7JpUQA+DXVeY/JtOCVN3J9HKIelzdT8eC5MeljLGv2DvLYyIEM+1QCUo358suYXhIZE9+wg==","shasum":"5dea819389057b996f2f0907b6f05c42aac8887a","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.9-canary.19.255.0.tgz","fileCount":41,"unpackedSize":64415,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffexzCRA9TVsSAnZWagAArY0QAJR246huyBYSO12X9DNW\nnI3zhWi7+UyNe8OzCxfNX0aZkKyrgQI5Ft/4/PfV9btWYgeWhTgUtiw3z7Mo\nmy8KWkc1eRMP6CcjOdqdYlVDcMwbWvwHQB5y5rdZUJsovQAtyx0hMDE3G2ta\nZmeaUfWiMwjvdpDzhXZqFSO3Gt1KIlMLu5fHelP/rBsyFX6r5I+YW4qoOEtB\nkh0TkI6MQ/M1qI3RgrCHP2vbEvs4TUopfxRUwyC7aMq2ZL0E+b2yyVt1N4zl\ntbKzRkmqsaRPsRpYZni+C8dWtZaoiD4eDloiyuRPRKQcxEPZX1KOAxELochk\nHSufALuOTalC9ddSW3JtsjNlwJPjswkjWrruH7lcyiX3msAMKLO9QahlEU8O\nGrCL2rXXOOaTMUJNp2WLo0YuTIWNF+HxfhV6OYSRwWI9XrLW09BIcvgcZMP1\nT1/R/ODv+BYwEngDbzk5jB7P4Kqjt4gwx33423h1iKfRCVfy6KxZZ4IlyiXM\ncIIGv1P3AuNh04m9WgZT3xzZBDmaoov/LAwagPkXOLvl47XsPJi6UlOHcmI9\n/CZxrNFwskzptm2aPdWKo5WCN6swicsP/a5YhpMAiE8chdWLnQQQWareKLth\nkN2mLpu7Naaj20JpvrO1z0a1ULgXp4nFbatCJvmj1ZCHqeNxFrMoWY2LwxOb\nFd4x\r\n=GjuI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHV3NwvLaxcfm7qF8P9JT8OIZAoW/P5zT1QBkYSjNtFwAiEAz9YsZVlyqiqvkJlysruwS8OEi0WidkttgL9jgx0HcVU="}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.9-canary.19.255.0_1602088050830_0.3495760503546219"},"_hasShrinkwrap":false},"0.11.9":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.9","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -vv","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.53.1","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.53.1","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"gitHead":"40ba4545aa6eebac1377082930d36e3191944eba","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.9","_nodeVersion":"14.13.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-wJ3Nig7ShqqSiDEtja49Lu7ej0266TS84migmkBDM3LpgKRd6LsNhepcBCZZjZa/YGQIChEBIGMTnUFW/ISBqw==","shasum":"5a1a108e72e2b271bffbeed1ad9f5f9791a062da","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.9.tgz","fileCount":41,"unpackedSize":66141,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffe4DCRA9TVsSAnZWagAA8AsP/jDASLtB/4UDZbgQfAyr\nk9eXgiVWhBWmHn7JuGvSfd0aT3c87gpBP5iTAHqNITBCOIBm/9OdPDhMEqjK\nSaQMsbIMEQuwPFfaEAKJiD0wVuGumZueU/H9/ZJcCAUHyXubXT5JJeq1roYA\nHEI3TdiHv7BSUZO9X1xb8RLgsrTVlgvYuP0CxiLsmnQm1wD81Ekf6MoSI2wy\nooMPdm+SM0N07ntVaksy6nehDryhoUIvO4nVXKPPIjz19bqq9Wo65AsBDMJ1\ns9+bs0gww50ijmFj2ojbgLQQi9kau0kSTWFIsWb8ri8qpBlWUEANpBQkNs41\ne+Z+TDbbAGFS9oIDLPVrT9D0asV18T29/5+fYjt1DMI4vUfVSjJz6eiXMfUr\n0ye7sVK7FgTnxyBQ4R9kwANnaUWsnkVf4Hugq+HJBRYwfyKdlsu97s3BbgXs\nWUMCcmAGv7rlW66bGMyjIemUcwb+jDMvkXIBfe0Ix37sK7X+mXMi5odyhvgo\nWZ7GCrKHYmxHEMpY7QHYM2AQEwWSrNRuo0PlrriC68OedVqk8u/bUS2MGK6N\nhOVKnNzAkgmxO4K8v65GfQVvyqA0NsjBQCJWtJgiDH3inv+ErEpETdUt89gc\nSQ5Wf5I5emJzaV2Q2s2liFwMqtPKCjW2CIONV0nWQvB5eNGHqJSU/E8BNzSA\n9iPT\r\n=wv+W\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG0uK0MiLwlU4k5QIDGnwGLncxap0S7i0/PQEKAvaX/SAiAZrOo3mn56JSqAuy16KfnvRyM/SRiX4i97nZDV72NchQ=="}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.9_1602088451564_0.21878574887345992"},"_hasShrinkwrap":false},"0.11.10-canary.20.270.0":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.10-canary.20.270.0","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -vv","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.54.6","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.54.6","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<div align=\"center\"><a href=\"#contributors\"><img src=\"https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square\" alt=\"All Contributors\" /></a></div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!","readmeFilename":"README.md","gitHead":"b85152a5700fe30ba5de9f7b771f7857f37ee20e","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.10-canary.20.270.0","_nodeVersion":"14.13.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-cUQgGmOkm6O0swCyXkN/sutzkhNV48rlPAmNmqUELN8OIOAx60paaxpUAsQOxuvRgLsRxMpe99bo3EKWceeLJg==","shasum":"ddeec695f1e6bff716ab73f5e077e024e5d84849","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.10-canary.20.270.0.tgz","fileCount":41,"unpackedSize":66158,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfffSrCRA9TVsSAnZWagAAi60P/00RigOqI7V2QnKHEuPW\n1vAAn+DXyBfC18WjFSdQTU/uflqaKDLEKpxKUX0+KuNFjhSZOPwjBiZy2Igo\ngW/SMykwI0WjRvWvCBz6NBor5ZSOTYlt2evqyIpVJjcPv4lpC7MUXKpKsgCE\nP2D2a/pjqRmGIOLragLRhwxJdKN+ILrOeUrc7IuVNptsyrVc67spp9oplOVT\nMrxdJfUOnfQqJnEAPv9aO8HcV6/5P+5TvY3/vzlYkdLX4pPnQk+xKQ7giVVP\nZhnPfPv15hwu5TOKDqB8kOzlY70kxyhneO+vrZ1vvvXm6IqrS+EgR4WZsRI6\ntjvLcH2cYU81/ByV3pZNTNRE2q3zuBlV0JoSKIzxp00JRjtG+HAJuRyiT3Pb\nf72btfWk9MnHD5g9gwR4osgodTuWxHx0GMx+xkUOHSTYIcAwuXqSt2/BggoK\ndoeFGU/dHf7iwtFsuWB+VJ+FG+a9ftQT1LP6TvODHMJPfpXVCwDaN/57f/ph\nkgOlgGLsFcwBiEJD8pceOwpV31zKqRMhhP6DpOM63OuUw6xUD57Lu07+yaos\nE+taBF5ZIdldoTVt7uUGy5Y7MAMT6GnHdi7p3YaGHV3oMh2Z60USt8XcyHRx\n168RWD7qzZDpXYurb9SC8eVEIRRTe0WitPRuVWXvFexnz54gKrX++nm6xFtK\nPEkx\r\n=mdBE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGU/UgeJrc64xwSeSLfynXrVVRgBHbcNtQLfi9iPmhhpAiAupbNCMVuS7RCUJ+mrPAcuzOcvyCdE1yeBePhtaTnZmA=="}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.10-canary.20.270.0_1602090154874_0.43027313975543824"},"_hasShrinkwrap":false},"0.11.10-canary.20.277.0":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.10-canary.20.277.0","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -vv","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.54.6","all-contributors-cli":"^6.16.1","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.54.6","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<div align=\"center\"><a href=\"#contributors\"><img src=\"https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square\" alt=\"All Contributors\" /></a></div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!","readmeFilename":"README.md","gitHead":"4faad59b1af86ada52625af41d45c3a5e60117e8","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.10-canary.20.277.0","_nodeVersion":"14.13.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-kG6ZmujD+JtybMJTgce4KkbIjKeOriyWRIN3Kcjid9Wdi6GO4jF3D9UlTtPPl86a7YEY37p5R04bXeBZ+a5o+A==","shasum":"b465065500714d669e39f3145cc15a957821c49d","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.10-canary.20.277.0.tgz","fileCount":41,"unpackedSize":66197,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfffhzCRA9TVsSAnZWagAAMo4P/0wbsLfsUlBBa+i/0fQP\njWR1sE3K/gWyh5U88fF0iKVvCntIPWuhVvLZzaJ7UBDFs8p8HVit1FccYUAj\nNQZl8fSLqBt5VUFm5naJ+YhcI2M/azNQ6dB7r/CFhkHqFn2kLKwL8kMZUB+y\nWT04BFkBiU4sRXDMYXg+W2PjuOPbg17YMXXylZCPkI4j7rGmjDcUl22JTuKU\nfgecb3ARvZ3xLilxHombSbOvRHvmXRGR8sdcxWFPOX3uZV2tTf3C9mJaFL+x\nvLgPCIHmb9aE0I+UHEIpm5Nwv4rRPRezdIc/5lh4dZMPRUKQKS7YiESfrEJf\njEUgHuWVs/YgbUfytqFfHywE0p8x88qw1W3ufLmEbnXcJx6K4tAMzHd70Qd8\n7C5qIbP0AfN/lYhdF06xOEYA8gDzRys/o59ZU/CXJP9DLH0Zsu0PXXCO33ED\n67MXzmrGf5CUgM1oxMUMUY7H9X0JpUVPfMFC86sz6mDhLF95o/RY+wwXK8Sx\ndQxyaYqaC83UcaCNCTHrUnM5oisAsZruTia6UQx6v8o1ZkjabiTVE/sFTlhL\n37JlrDCe5SgM58D1jAmgO/UeWrYOqGJ5C+ilmsudh7OpWoFA7fuWWggr9HhU\nA335Mea9gfEQyi8o/rzwEmeGykJZKBPTOhvgNZmEY0TRDEzYQLibgff9Y8vf\nzOIj\r\n=Tj7W\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDGiZe/+njOIaOGMl7HlkUdahC7vDd8Ew5HI66YKaYqZAIhAMTGUmBL7x5yNTrze2QytQC7nWZ8z9tkQcxL4MzEof+v"}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.10-canary.20.277.0_1602091123358_0.11718461644867184"},"_hasShrinkwrap":false},"0.11.10-canary.20.283.0":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.10-canary.20.283.0","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -vv","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.54.6","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.54.6","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<div align=\"center\"><a href=\"#contributors\"><img src=\"https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square\" alt=\"All Contributors\" /></a></div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!","readmeFilename":"README.md","gitHead":"ca25f0c2891d34a8822f91bc4e62ed79b844b7f6","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.10-canary.20.283.0","_nodeVersion":"14.13.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-dpMM7decrYvWFkmIWV+A/ctgDttB/lzV/CNXhHNo9Xh0POFM5KVaBJDWXE5Xu7FpzxnXEON1u6Kd6E/G84EetA==","shasum":"0853111dfdc99f0593cb5abd21e8b6dd58784e49","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.10-canary.20.283.0.tgz","fileCount":41,"unpackedSize":66158,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfffyACRA9TVsSAnZWagAAU0kP/RwAxYmm1V/z03O/urRs\n/Xzo/fDFPsgH0v469J9GIjAjar5rHRKNETx4L2agyXKgJBUTRjaunJsvlHaZ\nPUfSRmFYgpvk3UGeC1WFYusjvdW1G9a7TMgoZq6xubwx1L3Cgxvmi4ATB6n1\nwwT3PEVBzg2zzPwOaH38u06eDcnTyxprkWZ/ghMya2IjLeasexB9qa1WAR2y\n4tTj1SAJCo2yl54pWDD9TlUwcpElfgnCaPBXVKrragMAnp/unKjLUzC22AUW\n1cqWD7CBsjylYa3TohqtvjC0uYKoX9st7T4wYpEIdeS2Awbs1Fq1qHoMMOoS\nrHJeJv3O9DWeL/ZwsfzHn6VoQzCKiquw3xwI1feU7fXb+o0rfaF6IOcwgA5y\nHjHr1KXq5hIvrWMChIiZf8rROwn2gr40fdsbG8vwgMzKeyILJwmKkLvDq1lC\nk0SZHkEc1onN324+tXvU8okmK0pTtJLqgT3CgAQrCT2u2yzWHTG4dbRIvkSy\nzdkJppEOPP4DACvYHETwdg0FC7kd3M4BKc2Er92CST5PBDEYx3jbsvGmVGFm\nhserYgTUm6KbNz6CqY0Io2i1L1UXBrF3CP1eDx78k5Wb115I/3PubqSdRIDd\n9/JZLpds+RIi/Uv2v8LmQpYbu+kXJETVDWT92a/eIATsbzRVt2YRw/2SpP40\nn93h\r\n=jzZ+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCAZZYPytG9mTDOz6oFNx0C7TE5hn3lzqQTr8Js5slKbgIgRgPn6ah2PAq9M2MDIIPdMp2ItZlMP+u2uNStI7f2tjM="}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.10-canary.20.283.0_1602092159822_0.40227210894887366"},"_hasShrinkwrap":false},"0.11.10":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.10","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -vv","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.54.6","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.54.6","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"gitHead":"354193782881b1705512ae0025a09c657588519f","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.10","_nodeVersion":"14.13.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-Z8MX8s5x8VUVxb4acECv9oQ7KS7MNMYR1dxFp1IVr9+4KxH+mQBVtsHNDyR3MEhHBOP0ARwoX2n0dWtbQP6Olg==","shasum":"5875f7705a39ca8a1dc00cb1bc39c32ef6fee809","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.10.tgz","fileCount":41,"unpackedSize":66474,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffgWICRA9TVsSAnZWagAAtsQP/3ig9pJvzSBiyv9mj19U\nyk/pLtNlszHrsdAQo/3yLLxVz6BV4MgeJNLA77NLWBXV1xUKbT55D+BPWohc\nGt4wCYuJtCKnhJ5D41xLTFDkBqyT0yyq8UR8pJnreRf8IlTD+Sk3Edbnx5SP\nVmVOnXIxkYRxIKcOJcaGyP+ebPXrwhacp/ws/yInzpAKp0C92vCK8HZu8uv0\nlmpVeygEA3IfrxMgFQ8pAGH8NtBIoaUgU3zFASuKR0eGhIGaehtm1BRzzkS+\npN+2dMgsP4RffhchJeVzGDfosqsBRDZynegEQzWKpdMb0bCDJKUIH61BxJr3\nHaS4Jkx+izAmyF2ZFkjvqsuUz9GlG2M4Dx2kV+thNbCU8WBQHrrwkCVlq8D1\n4abfTE5iRyYOqpa/BNwvCHv5rxaiG6Up9sqI3y4/IffgZoBh2JmpY/2M4CTD\nOfzqHlaCzfwMqAcD/nBdJxv8EBZO21gDcI9qleEbbH5nf8J7cgOdbjQ8ssvX\nTM/4tNsq1Q0MgacLxeDCqSMgtf9irMGuAN4pgDXQRfGjWB+YBp97BSYdtLuz\na7WVf1iNwAu4YBYEBrEalBe9gIwXYmnzlL4LIcpe+bruD/bTC5GHSsqB6VLW\nbDehkB2mpwvUpN/IBAB51zSek3ZkK3XqYPyfKZqlzD7Nx7w49OhWuApOA95b\nD6CY\r\n=UXMG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFIdGP0NVR7jy0968spMfnfVr8Cl0I3dt5HuXPMkoR6FAiAjijElvtHcWKYhPP9i05RAtjwHa+dErE0K/Ze2jWABig=="}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.10_1602094471710_0.3229429778144308"},"_hasShrinkwrap":false},"0.11.11-canary.21.295.0":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.11-canary.21.295.0","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -vv","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.54.6","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.54.6","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<div align=\"center\"><a href=\"#contributors\"><img src=\"https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square\" alt=\"All Contributors\" /></a></div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!","readmeFilename":"README.md","gitHead":"5e8138ba72b3577269403321cee4a55dedec5897","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.11-canary.21.295.0","_nodeVersion":"14.13.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-2XjGHNhpKfn3F7pycpWWT7vTHZpjTN2YT9Jjy2OOTA/vb8JAuoJgOJ0iddulCJyrmflIJIq7vcMpDKsKmWgTBw==","shasum":"2740510c775dba44c1507bbfd128a67dfbb6345d","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.11-canary.21.295.0.tgz","fileCount":41,"unpackedSize":66158,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffgW9CRA9TVsSAnZWagAAPx8P/3djv0nJw4vRLxvJmYIC\nhR6TlFDNn9ikuQDQIy5qNAGMEPlzJLgRDx3zkIUl3WWl6bHplT7Hfm51UHRw\n0OLLamXn+eKGIYBJ3XACfp5iOPp90jmpaJgjgiISzkdaTciRbA4tfkkY+TWw\nKpWVCsoFcGM3En2y3t3UxjDugSos8U9JGbXiMHWwQkLcGh8XWiRTA82S2zSg\nNEMQlaKHOaHrUbpYJglj8YD3T65WjkpZeGTKO1ZUH0VuH9fVacgKP43aq6oo\nDEvX9doIJmHImdaeBcIX/zxeq6SjYwVLXtkciT6tj0o5Y+Z6U6k7OgIa/cFv\nLZvKqjXUjM9UjJhha/0sAHRei8ZIxbL4kYYLrfq77tI2nDjXqYkCJCPeLWTh\nhbptzWCJ13mXlmfGOD7tDTQFpKESsQA0UvJn/QIvx1MwmOc9IuD2s8L3riDD\nX2jiVhmQednr4Vc3l8IgXXgS0gNhM4POLTISk//Qmf4TadxLs0udg2A1NMq7\nWZdXxM4lb6uow3b6isboEtKgX+qERs29rF0VSAkcHJBtI4SRaQJOqCsUWwdl\ngz12Rvs5MFarRSsPJV3FOhWNmiuXA8d+nxCPETYE/0KzcTdMPSzHO3DDkP80\nO+qnv60gE/wa10rj9+aER0VZRdMBzsxX5+yI3fO5rTJBdBZ7qSuC1TkYmW28\nF1d/\r\n=BC0b\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEaDxgvOs/RGXWz1xfT+sYC9xd87tFrh6XmfT2hI3TbLAiBfm+ho5iVY8YEsHj6MBlC6RS5xkQcm/Xo1RuxWG93Zwg=="}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.11-canary.21.295.0_1602094525320_0.8747873960067829"},"_hasShrinkwrap":false},"0.11.11-canary.22.302.0":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.11-canary.22.302.0","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -vv","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.54.6","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.54.6","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<div align=\"center\"><a href=\"#contributors\"><img src=\"https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square\" alt=\"All Contributors\" /></a></div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table> \n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/kendallgassner\"><img src=\"https://avatars3.githubusercontent.com/u/15275462?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Kendall Gassner</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Code\">💻</a> <a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Documentation\">📖</a> <a href=\"#ideas-kendallgassner\" title=\"Ideas, Planning, & Feedback\">🤔</a></td>\n    <td align=\"center\"><a href=\"https://github.com/hipstersmoothie\"><img src=\"https://avatars3.githubusercontent.com/u/1192452?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Lisowski</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=hipstersmoothie\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Rashmi-K-A\"><img src=\"https://avatars2.githubusercontent.com/u/39820442?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rashmi K A</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=Rashmi-K-A\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/rajatdiptabiswas\"><img src=\"https://avatars.githubusercontent.com/rajatdiptabiswas?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rajat Biswas</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=rajatdiptabiswas\" title=\"Code\">💻</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!","readmeFilename":"README.md","gitHead":"6accf8da4925dd572c9b39cb4b30bb9dd7829616","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.11-canary.22.302.0","_nodeVersion":"14.13.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-xMQU2/F5c2LwV13B+nXvzSuDzrf/wVV0OSUAp4ODwTts7XV/HHZeWeDBMuoi4ZVQcKNRxJ05XzkgLP+PKV564w==","shasum":"abe812d809d9a30f749f037f58cf34f47309cf30","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.11-canary.22.302.0.tgz","fileCount":41,"unpackedSize":67773,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffgokCRA9TVsSAnZWagAA+XMP/0d4EMnCtMsXA6HnTyZB\ne1D5//r3WOPAfzny50XpLDqWtyPNGAjr0GFT/8JqEUxZS8Bme4a7PY3gBQHm\nwr2kxNkma0/sNc7ZI5H498ZeXziRcfdT2wLlT8Hawcex7OHWerr0hNRzPdBr\nRng9D2hifWU8j6VjIpqKiQYCYkdDnnP69X411z30RNgqRsLl3iUWicKxUW4g\nybIGQNd7CxzLB+TwX4QfYKjVKMDQVM8P0g+kK/+LD2pacosuJVGV5sP5Ut8k\nC3ECyc7zp9LYLHcZ+5VYgxPG7UFtlcoRDAxoO94+3h+cD2OOc6MeLw/nfAtS\nVor6D2Zu0vl+THgou2WIWXQl8ZFpjoyBgIdTBintp0DKJ2PvNlGdGSgQhPuN\nAcvtQJ8ZHlDGNwCSseLCzZukedTxrM1FVdyzNxThEHGgg6LRRCQ/Wx9Kb8GN\nRmC/VhnX6QxexQjLBMNby5Ra5mUq4ObA9yhyP83tCA2Y1mphacSLWi3sHiXg\nrUlZd+eXLDhWeJ09YkZDxB1cUcj6SrCz6FtpWrjK/Fa53fjZWKL41po/aBlX\n61UjfbQLgSKCYv8rTbF176v74ZvE5so9KErUDuFKD+pT1oZ6LXMepjTURVWj\nuc/FDwgwudxJ0Nrvei6LeMINpGtG9njPWaS+f6DgzrzO2Z/ZL1sGCCPOX2j4\nS9Le\r\n=oN4T\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDnged5N4kcyEigd7t1+8ML95aUYUG/REgyqzUn067TkQIhAKvayd/vQTf+ew8kJDCynu5zDC6XZVJzkOAXUGFs38VQ"}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.11-canary.22.302.0_1602095652381_0.44447123024643975"},"_hasShrinkwrap":false},"0.11.11-canary.23.325.0":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.11-canary.23.325.0","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -vv","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.54.6","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.54.6","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<div align=\"center\"><a href=\"#contributors\"><img src=\"https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square\" alt=\"All Contributors\" /></a></div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/kendallgassner\"><img src=\"https://avatars3.githubusercontent.com/u/15275462?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Kendall Gassner</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Code\">💻</a> <a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Documentation\">📖</a> <a href=\"#ideas-kendallgassner\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#infra-kendallgassner\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇</a></td>\n    <td align=\"center\"><a href=\"https://github.com/hipstersmoothie\"><img src=\"https://avatars3.githubusercontent.com/u/1192452?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Lisowski</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=hipstersmoothie\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Rashmi-K-A\"><img src=\"https://avatars2.githubusercontent.com/u/39820442?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rashmi K A</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=Rashmi-K-A\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"https://github.com/rajatdiptabiswas\"><img src=\"https://avatars.githubusercontent.com/rajatdiptabiswas?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rajat Biswas</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=rajatdiptabiswas\" title=\"Code\">💻</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!","readmeFilename":"README.md","gitHead":"2ba05ad9b7f5aa2feb036309c3e2aa8dc370fb66","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.11-canary.23.325.0","_nodeVersion":"14.13.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-a7Hm416u0JY/vP7lPnsjBxeD2YmUZi4xB8ssbWmkUBsgiYogDJR+yZhyMPpjfeOn1q4v6v2KG1nVNvuCy12vAA==","shasum":"e602a11f819df770180a3c2f6d24bfd5931b4eef","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.11-canary.23.325.0.tgz","fileCount":41,"unpackedSize":68216,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffipuCRA9TVsSAnZWagAAc7IP/3Hzee1QRSTMHPYk9Uo8\nvKJrl8skJlwS4XI3TgCk8sL5G4ld26DMEnjfKc56SqkZ8xifh2t+A6uJ1OpF\nBvpwYzCY51hjMq4PjAzqw9LLWVmkt400vBle4pio8ZnFysZ2fHvUxYe5qJAP\nWtejtironwfzACutt5/cogKkO/yp5gSlTMczfIS4ibO7MY1Die5zpBSqaDuH\nx62VssvuLBnurc0N2eWjVy22DQu1uBBD/J04AtA3Rp5K1ZagLTHWlItBuNVi\nL0od44VEAzSX+vUmbgdMbIuz7oGGSE4qp9J5qR5DtZDqHdBoojo36s+B9oEm\ngH8y9SINFZA/NqRfJlJ49u0JXK5VVl0lTteX/NZ/FBiuZZ0sWtYbsuWVkEQm\nLv2SHW+PMu30CEBpNUlgfG8xjQDig6SuO0sFQGKen//JcexIyfM0wIY8ARv/\nH3rdihTSEhY0PaUBj+cTbqv5vhQ3RxSBb7mLJABDYV4HfZqroQjw+GN5Q6Rh\nOhAeAI70cTkyGQ2bQefmo8HvM/fw/vQyPOKl+0zMAh7YwqJhyiMJKCckvRmj\nQyhx2q2boCz2Ye3NWgWuc5FBtB2M3JBe3LIK9WHPOmcrXaI4AlV5qr826maQ\nGVJyk6K7eSQu7g+VGuhTRs4RZY59DYN+PQ8BaJ1/LQWj9HPAwWoq0uHRNQZ0\nNr4y\r\n=rX+3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDkGbufEJg4QBcFprjGp7a35Mn5UOuUugYym2SZFrtlGAiEA3DSzXLl6A/pedyj+OM+pM7N6lx60s78ncL1i0xsVvTA="}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.11-canary.23.325.0_1602103917541_0.9096746037290933"},"_hasShrinkwrap":false},"0.11.11-canary.23.326.0":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.11-canary.23.326.0","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -vv","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.54.6","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.54.6","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<div align=\"center\"><a href=\"#contributors\"><img src=\"https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square\" alt=\"All Contributors\" /></a></div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/kendallgassner\"><img src=\"https://avatars3.githubusercontent.com/u/15275462?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Kendall Gassner</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Code\">💻</a> <a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Documentation\">📖</a> <a href=\"#ideas-kendallgassner\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#infra-kendallgassner\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇</a></td>\n    <td align=\"center\"><a href=\"https://github.com/hipstersmoothie\"><img src=\"https://avatars3.githubusercontent.com/u/1192452?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Lisowski</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=hipstersmoothie\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Rashmi-K-A\"><img src=\"https://avatars2.githubusercontent.com/u/39820442?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rashmi K A</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=Rashmi-K-A\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"https://github.com/rajatdiptabiswas\"><img src=\"https://avatars.githubusercontent.com/rajatdiptabiswas?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rajat Biswas</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=rajatdiptabiswas\" title=\"Code\">💻</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!","readmeFilename":"README.md","gitHead":"391bd83c080b2cc7e0cafb9a129a0c892a260c26","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.11-canary.23.326.0","_nodeVersion":"14.13.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-Fe1bxskfEGrDEX76/lhgBPPqq96YDuARxB42HNG76Gjug3vuY517Zs1FCfOXEQz2A9jmCO56xq11TVc/UoSFsw==","shasum":"23843aab149ef289d80268d5c3b845e0086ec29f","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.11-canary.23.326.0.tgz","fileCount":41,"unpackedSize":67884,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffip6CRA9TVsSAnZWagAA5gIP/i7KCoKltXdX6tVD3J/A\nwqL6NxEELyarmO0pUTVA3GeTomCp1/0W3hq5hEm2ptvQ/jvn2Dsp50mT0sUQ\n2WK9Z3TAWULIdL8dx+3u0MuQ4+j1I8MxA3/iaZM+Df2guNVyqyNHu+AqpzOD\nLiK/TcPaGc0xL0PlxsIZPMkE/ODwrACnS1QYxbHpPnOIXnLzqBRkK9zG4xL2\ndwj1vZfIfpa8cmyN8NgxKKd2fCM2hYd6YVaqUwLIZpmHWJnaM1BsE+PBcm6/\nVqMd4GalxtRjRSByA2Njks/u0Tr9eFB7QqQvtrNmjIy0DhzTJOc7v/KB7JfF\ncHVQ2b2GpkWTjIS0iFhnT0T1eHZ2K8dhK/vE8VCxuB7VmAMD9KzX5kEKHx9P\nUEBKzetdCIDzvRIEoRnfAGIIcfFnaHIiI6LATjuaRqijHSIIA1kWnrRPDVJk\nPWSS48sRfVVux4wmScMEibEh55Z37/eMLNfTTtNS7dq/bwJB1ERG7amCc8+h\nR0RcWYmfM5VQpOpqiftYtODxa14dh7RMBMZspJSn2M0qa2VtTSNO4Pt9Oti7\nQU7ubsiy+Tm39wES5a0ECbu0z3ltAQbQ9I/A/z+pY7PTE+5JvoiRsDN8BppX\nxQY9iYm5+DjjaNkSYnaZ8WG6ih/KbA15zqmuy0YBCviRdHQK1xpMq5A7TTOS\nWOVs\r\n=nvSh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICzySlqOLan6KzEp5bbe9ldwvHQRx1bSfTqmLkvjayfnAiApnORLbWFrNYDAKECgwzKDQer9nRf1oAgNN1istuvE6A=="}]},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.11-canary.23.326.0_1602103930254_0.4394699911461195"},"_hasShrinkwrap":false},"0.11.11-canary.24.338.0":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.11-canary.24.338.0","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -vv","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.54.6","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.54.6","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<div align=\"center\"><a href=\"#contributors\"><img src=\"https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square\" alt=\"All Contributors\" /></a></div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/kendallgassner\"><img src=\"https://avatars3.githubusercontent.com/u/15275462?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Kendall Gassner</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Code\">💻</a> <a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Documentation\">📖</a> <a href=\"#ideas-kendallgassner\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#infra-kendallgassner\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇</a></td>\n    <td align=\"center\"><a href=\"https://github.com/hipstersmoothie\"><img src=\"https://avatars3.githubusercontent.com/u/1192452?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Lisowski</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=hipstersmoothie\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Rashmi-K-A\"><img src=\"https://avatars2.githubusercontent.com/u/39820442?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rashmi K A</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=Rashmi-K-A\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"https://github.com/rajatdiptabiswas\"><img src=\"https://avatars.githubusercontent.com/rajatdiptabiswas?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rajat Biswas</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=rajatdiptabiswas\" title=\"Code\">💻</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!","readmeFilename":"README.md","gitHead":"cd505e9585f67d20e96ee745ac3bbc882e015aaf","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.11-canary.24.338.0","_nodeVersion":"15.4.0","_npmVersion":"7.0.15","dist":{"integrity":"sha512-j3fPSuPShNi/zdlb1891QxWFoU9X9EI9dkOzXYVCdjNzmC7C3zE/6PasxlQuBhAH37hVAGTiUVTwVwfP/TsAsg==","shasum":"86102308fb78b22ffd0c33b3f02a145abf8377bd","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.11-canary.24.338.0.tgz","fileCount":41,"unpackedSize":68216,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf1BPzCRA9TVsSAnZWagAAK0UP/1tLsLUcqQJF2PY3TxHP\n/RLlQMdIek3zj1+y/Z+rlequ1tZegfM2h0CusS2AcX86BcKTKJPuFvJiOQby\n60zwpVG69ToKZBGp4Itj2vNIMHV63Nnci5EmJINZChI4+UsAMlLEpqmxr/Ns\nnTTKh/xmxV6BZ23Yzdjw7YUkvzZF79FilKyot/GnXCfkiNA0hvy3wasOlUt5\n8STMnnhAl1VYvxKq1VaLss+X3ml6HYSNLWvhCgf610HHXGXBax9hoAOwv9i8\n+EyvuIVEfNNggb+grv7w7SKqhHyRCXYtYO9HVXfPpmO5Df5rhS0cjCsMuN2f\n8rpdPtCQOXZjgYcJ5yswbFnA7DQiTVm3UCTJBCJTpb2rDYq6ryS0H/+tpO+W\nCpTRkqHq98O+7l0XOU6a4cqC5flSLxZmpzKGZrXsMTa5g5PJwor9zm1KW99b\npg+eMDc6wsTmelSiXL6apE3bW47XAGuOaYQciZukbKNhU105+pTt/FRL5sB/\nABmMfaN8GKrtd9+6es6Gn8nXDEq2+YwEompO9ptb+WeRRI5z7gdJ+ty9hdZ+\nz4edag7H49Trg1XuTTiXFicYQM96GWdVlm6ycZLORfrkbOvqTI3m81wduZ3k\nKJPeTuwbp3V6HwW3AuJa28S+Vwwy983uQu+8+aG02XboBBPjgKH6bETDgKDD\nHO03\r\n=6PK1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDjaoZkPBukEm+XSB2SMN8FAMJnEqSkBvr+MO0UzRgX4wIgFCJ29yCi+7IPBImv3DkR9WZGlTRJGWUEc2qEoonY2s0="}]},"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.11-canary.24.338.0_1607734258446_0.4093941393254994"},"_hasShrinkwrap":false},"0.11.11-canary.25.350.0":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.11-canary.25.350.0","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -vv","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.54.6","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.54.6","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<div align=\"center\"><a href=\"#contributors\"><img src=\"https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square\" alt=\"All Contributors\" /></a></div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/kendallgassner\"><img src=\"https://avatars3.githubusercontent.com/u/15275462?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Kendall Gassner</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Code\">💻</a> <a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Documentation\">📖</a> <a href=\"#ideas-kendallgassner\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#infra-kendallgassner\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇</a></td>\n    <td align=\"center\"><a href=\"https://github.com/hipstersmoothie\"><img src=\"https://avatars3.githubusercontent.com/u/1192452?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Lisowski</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=hipstersmoothie\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Rashmi-K-A\"><img src=\"https://avatars2.githubusercontent.com/u/39820442?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rashmi K A</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=Rashmi-K-A\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"https://github.com/rajatdiptabiswas\"><img src=\"https://avatars.githubusercontent.com/rajatdiptabiswas?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rajat Biswas</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=rajatdiptabiswas\" title=\"Code\">💻</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!","readmeFilename":"README.md","gitHead":"f5eb98c5ce2abcd9f76749dc3b8126938af1278f","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.11-canary.25.350.0","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-r2Q52FjLpDF8JxpPamHbq4d/ahWDJUbo+nZIB2o4PgvnPgQv2O8OaoowxPsde5dadS8bQIx22pESQhnqiJXDbg==","shasum":"372d29ccc60429d0aff8104c87996cb288bb1e4c","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.11-canary.25.350.0.tgz","fileCount":41,"unpackedSize":68216,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZB7RCRA9TVsSAnZWagAAa28P/0kCgQQhHUF6v/e/mgNu\nuJFK7IW0QsqNvzYkMJaK1e8lIDEcFzwKfDh7XbKLMZako9+iD8qbsekSiCWr\nW6/7u2sQAubOZoAq4tUfB7NB0KlFuPlRdUvKGz0G00kfTwxddtks2OdlgMtR\nLYlEgLeR1ANhtvrRN9DVDJu5ER9Qwss20KJ9y3JYJTNPuJrTZZJxyunA/O+i\n1A/5MtyLVDdWhNRU+us9PDL6JyyGJ0tBWYka5cIOHAySmCHWS65uu/w65AJ2\nl8kzxs9Nw2qrL8ZtJS4m77g4cxav/cN2NiB+kSgeTaLf7rwXmLdkDKg2MkIm\neM/iBO/GiP/PO5ULJDmgSRE8CUj48nzleTGZ1HEtaIMhMdV/Gg/xuMAMpexh\nuUzQ587vK/1WC4arNKr0F6IOmPijsGsVjpXNN4LfWGS8c7VIuYB8gcaZq/sR\nkNQ+JuMx9iHFJiE45cl8m7AIu2gLWhbcB7V6+pVR3VYUFo23DQDMNd+9IPE6\nbKYSbsG6Y4gsJdMmjJ+QSuPQceSrF0Eab3r9nzM8yx0Tk88IznwjX/20Sf1q\nta/Mg/YfHMgLo98K+d27jf4ayb9s0vdDmJC+0aqjcwwxwQ+DZZLRf8hQpaoi\nTGg+pWG/l66mSdV4NxllZJhi/PF7WcQ/m76U1/VJRmHzj/DCEtsgeUBnGuWm\n591i\r\n=CVAA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDA+hFr3KxWXSJ+38agXjBlH8ZqxAMEoFPe34sT4ut94AIhAPX5LsMNxYW/KzGcrHE/6CkUJz32IcAqKbPfkb4dSiOi"}]},"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.11-canary.25.350.0_1617174225023_0.9260940472151631"},"_hasShrinkwrap":false},"0.11.11-canary.26.362.0":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.11-canary.26.362.0","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -vv","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.54.6","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.54.6","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<div align=\"center\"><a href=\"#contributors\"><img src=\"https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square\" alt=\"All Contributors\" /></a></div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/kendallgassner\"><img src=\"https://avatars3.githubusercontent.com/u/15275462?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Kendall Gassner</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Code\">💻</a> <a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Documentation\">📖</a> <a href=\"#ideas-kendallgassner\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#infra-kendallgassner\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇</a></td>\n    <td align=\"center\"><a href=\"https://github.com/hipstersmoothie\"><img src=\"https://avatars3.githubusercontent.com/u/1192452?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Lisowski</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=hipstersmoothie\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Rashmi-K-A\"><img src=\"https://avatars2.githubusercontent.com/u/39820442?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rashmi K A</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=Rashmi-K-A\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"https://github.com/rajatdiptabiswas\"><img src=\"https://avatars.githubusercontent.com/rajatdiptabiswas?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rajat Biswas</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=rajatdiptabiswas\" title=\"Code\">💻</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!","readmeFilename":"README.md","gitHead":"0938dee1b5ec823c8d2ca291e6b03efd1be5bc1b","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.11-canary.26.362.0","_nodeVersion":"15.14.0","_npmVersion":"7.7.6","dist":{"integrity":"sha512-TcJxXzch17O6GMmz2uJW5bBoHYshR4lB68GWGxSDBtv6JpuT9jjpRpweJHhGdYgdkIlFoXG8/Gp0SllswGdiAw==","shasum":"ee14a7a6109d9561352558d9eb5e975e83b7be49","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.11-canary.26.362.0.tgz","fileCount":41,"unpackedSize":68216,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdbZPCRA9TVsSAnZWagAAJqwP/1lteb0tnTgt7OGupUlx\nnv4aj4qOMUWSTT71gx/yvZNaHMfhYtIa/KniOxL7gQs2wcH5TCeDpWXrtY1i\ndI/TFMyXUHNul2+SUFnyVgqDVRYk2ll3UCbTmagqgJlcODjrG+Ef9F9zv57X\nffdh3T5SmBIQAUXoGWgncaGTHUqMQI9RYrmVc0mkM+yNfKGT6xGaEWqSf+fC\n+UELqiK7wXHn4Ma3mKyhA9xh7jyFXM8+BCTwKd26m3NGkvS3mr3Na33+i346\nxNfx1Cb9YqViI1oZm34LEm0nu6thIJ54a/4Nl9gSgKdqFeFZNFVvPGSIcvPN\nMDm5Az+eu9B0zNwxPQb/VS8ZFX0j64dFiNludnX6S4idN5dw9henhaNN3Yos\n1ixeUgCoshInBO9sUuMpa+Hr3L+aY3I71/1zdfeFZb0EUT+l2Fy6qBoWlZ2n\nc5dGAr1qaZo1D1C8qGkTYIBLDLmp8VkbtTK68SpR3xu8bbh0NWajHUld3TXf\nlui58VBQXeTz0zMvQv+eiyjbWdLb9TbZljptNndCRCHYb0hlZpTYg/BjU7sR\n6xOydFYaju4YbZSce3sornyxpl9Yi1PgmYtZvgX2AW/mJhiS0teAAGQBmXqa\n2DXUMtDw7itlNZHIxUbN7+fBOCs6PEY7hSZQOw4KDXjNYecSkhpOsC2TAhdB\n4he9\r\n=k/D/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDavKsuN9sQEPGxQG0XuoDTBi9UuevKdr4kQ5rOZx2a3wIgH13jteEqK9G++ndms5akjeI4Z3xPaCnQnDJpEgc6kTg="}]},"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.11-canary.26.362.0_1618327119309_0.7569644453198352"},"_hasShrinkwrap":false},"0.11.11-canary.27.374.0":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.11-canary.27.374.0","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -vv","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.54.6","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.54.6","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<div align=\"center\"><a href=\"#contributors\"><img src=\"https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square\" alt=\"All Contributors\" /></a></div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/kendallgassner\"><img src=\"https://avatars3.githubusercontent.com/u/15275462?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Kendall Gassner</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Code\">💻</a> <a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Documentation\">📖</a> <a href=\"#ideas-kendallgassner\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#infra-kendallgassner\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇</a></td>\n    <td align=\"center\"><a href=\"https://github.com/hipstersmoothie\"><img src=\"https://avatars3.githubusercontent.com/u/1192452?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Lisowski</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=hipstersmoothie\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Rashmi-K-A\"><img src=\"https://avatars2.githubusercontent.com/u/39820442?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rashmi K A</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=Rashmi-K-A\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"https://github.com/rajatdiptabiswas\"><img src=\"https://avatars.githubusercontent.com/rajatdiptabiswas?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rajat Biswas</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=rajatdiptabiswas\" title=\"Code\">💻</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!","readmeFilename":"README.md","gitHead":"446a528e1f2a9c63ab85c5f7870e8296d76be395","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.11-canary.27.374.0","_nodeVersion":"15.14.0","_npmVersion":"7.7.6","dist":{"integrity":"sha512-mrk3VTYx/7BD+IPqu5EUoAk88fX7/4bFaxQC2P0u9jRPIGuME4Qxr8BPuvGE6r7ut79ZgTMDzZFDYLTSLNPvUg==","shasum":"db67e860c95932dcadb88d8574d2243b48340bd0","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.11-canary.27.374.0.tgz","fileCount":41,"unpackedSize":68216,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJglm8iCRA9TVsSAnZWagAAFH4QAJz6cjNBHi7UINF7ainX\nIJ1FYP5+DhdTSja5EzZXTu7y/y2oJh2bSDKlqT/eC0Q6Ba+yEpDOmVR5CNKy\n8l59NvChIfGn7WnO1zoiqGcZvLw2i5SGDdAR/+nCyxEW8utSieVDdPGRrsLB\ntVYYRqJzjT7ZCnANuK3GBzlhgo5gzjAyE+GiVLJ7L7th90UJ+/VzdVEtZcNF\n35uvCgm2KQWdwyoI6gf4KSTf65rZHqnO4C+saGvM1iSJxcStcKPmgJ2uTus1\nqjUK5SxhYJVKbz3HilgHDhjHPJyX3d2pKOIMXgG1PAd5HPTtsPH3gVyAk3sV\nKWSYjbo43sncLfdcGcHtdbqe58AN8nC4rnvp/v+gZn2SNuMQ3y7sIxAq5isY\nza5bGgean6Fbh4WTyxJOgOLLZbKikI4RWJy4YZ3FZ90FRlgdY6/z3yK3rK/k\nrFPUJVELfMSr+av2k4nWHFrfU1hA/QZkdcC6rjM9lkqosobGriIDeYMY7eAU\nMmJe3UTZHQwPPFTFRouD1RPrDDCCSItVPJqchlXnMLvVy4awszNDNMy5PsRM\nV/mGbiZHQ7o4JEnLxV4mc8EJr0nzqWhj3JWMKeL0AghBewBwpKvrSEEdgLOI\nB+308yT9VUG1uaVN0S4e/I1wexiWOhqyfXjhqp3PLppGoxCfwKlgiNGuLuCY\nnFJ8\r\n=jZv3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDbA2Bw4JiDRQAoKFcD7QyeAcUIThStag8b0GngNsElnwIhAOTBW7+J+ZoxjwS5pdbghD5VH9skNr26b7NpSJYFvN8X"}]},"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.11-canary.27.374.0_1620471585552_0.618327490936303"},"_hasShrinkwrap":false},"0.11.11-canary.28.380.0":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.11-canary.28.380.0","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -vv","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.54.6","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.54.6","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<div align=\"center\"><a href=\"#contributors\"><img src=\"https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square\" alt=\"All Contributors\" /></a></div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/kendallgassner\"><img src=\"https://avatars3.githubusercontent.com/u/15275462?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Kendall Gassner</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Code\">💻</a> <a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Documentation\">📖</a> <a href=\"#ideas-kendallgassner\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#infra-kendallgassner\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇</a></td>\n    <td align=\"center\"><a href=\"https://github.com/hipstersmoothie\"><img src=\"https://avatars3.githubusercontent.com/u/1192452?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Lisowski</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=hipstersmoothie\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Rashmi-K-A\"><img src=\"https://avatars2.githubusercontent.com/u/39820442?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rashmi K A</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=Rashmi-K-A\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"https://github.com/rajatdiptabiswas\"><img src=\"https://avatars.githubusercontent.com/rajatdiptabiswas?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rajat Biswas</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=rajatdiptabiswas\" title=\"Code\">💻</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!","readmeFilename":"README.md","gitHead":"3680d78fe95e33d83f3e7a8c377e2a48daef22c6","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.11-canary.28.380.0","_nodeVersion":"15.14.0","_npmVersion":"7.7.6","dist":{"integrity":"sha512-9a6oB2xE23RbNmLEHnVHD5t2+N78Sm07LZnC3E/jgC7fDuYQvSKz/lLwGXyICQBJoEqB+dfTilS1agXGuIh9FA==","shasum":"4f410a8239685c35885e9169d964fa41473ed9e7","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.11-canary.28.380.0.tgz","fileCount":41,"unpackedSize":68216,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmYTOCRA9TVsSAnZWagAAX8cP/jSLsQ5Rr3cCaD6jhaa2\na2lM0NV4IcWFBppQl7A98l0lgtkhou0reH8FtZNbazFhB3er6rQYh00Ww/WT\nGEvMsc0tyTRtTAxWQVZYoW4pHcuolmYjY7E55eW2bYj9xkOYyDx7sjb4It7A\nidz0Upt+1VloxssNc4dBJbxoprZwsQryh/Q9to+ala14fwu2Rabt8GAWevm3\n7VrYy7qo1H5pK0DasEMTqei7EiMiVqC99vUMKT6O1SwCDExGX/1NAX+9WLHt\nCiVjinBhpnVahn5/MRLTXu94kkgbNAlDJqW/csejoIJrf+EZyFYPAmtwgPdD\nSTzs8RKF8KTryP40qheDShIxK3oravKNadTatxuxBcxeVQcxSELsGtSSERYb\nzK/5qgCn1Nh0Op19C3S3efApQjcVTQjDtl2gss4xEoYt9iig3XkVEZdoSQtM\nKM0Lz7rEKlfMzUJmZS3oE2gna/p4zkXJ6fTqqCH/hIfvUgkG9FxSvM0O6Hd8\nYC37/Jpywg2RZJziRsq7Px4FBQgzk9D1IQdNPcY74xHfCTtGFNb+Vv1otdTH\n77gtOh+rx+0FDI2cok2wX8e57EOQA7iYPf/SxuF+yfn08JlrqxD58IabNIg1\nnU5xFHHmnFhyFHCfyjA6+2+KLtE2rQpOGNQHEWLBEDMI4nBCemTlXVnM09sT\numxw\r\n=WxnQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC4sM/p5HZa4HKRbJZttnstaHxCPBJtmFrEjXz6BWqRHAIhAKQkP1d5uQR785e+YV9wE6ced8WuSgKd3gSMtviwksPf"}]},"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.11-canary.28.380.0_1620673742077_0.677542230574941"},"_hasShrinkwrap":false},"0.11.11-canary.29.398.0":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.11-canary.29.398.0","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -vv","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.54.6","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.54.6","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<div align=\"center\"><a href=\"#contributors\"><img src=\"https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square\" alt=\"All Contributors\" /></a></div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/kendallgassner\"><img src=\"https://avatars3.githubusercontent.com/u/15275462?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Kendall Gassner</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Code\">💻</a> <a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Documentation\">📖</a> <a href=\"#ideas-kendallgassner\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#infra-kendallgassner\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇</a></td>\n    <td align=\"center\"><a href=\"https://github.com/hipstersmoothie\"><img src=\"https://avatars3.githubusercontent.com/u/1192452?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Lisowski</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=hipstersmoothie\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Rashmi-K-A\"><img src=\"https://avatars2.githubusercontent.com/u/39820442?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rashmi K A</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=Rashmi-K-A\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"https://github.com/rajatdiptabiswas\"><img src=\"https://avatars.githubusercontent.com/rajatdiptabiswas?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rajat Biswas</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=rajatdiptabiswas\" title=\"Code\">💻</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!","readmeFilename":"README.md","gitHead":"2216a2147886277e6116dfcfe4cffad612cd141b","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.11-canary.29.398.0","_nodeVersion":"15.14.0","_npmVersion":"7.7.6","dist":{"integrity":"sha512-HXtkPH90ndF5OTtC5AcxuT7FMrLwgdrwES6rbdahWYBbepXtFolJBeCM/97s8PI1YTHFNb7BB2W8nykn6qnKMw==","shasum":"21214eb32a814b2e0f9d218c707b86c8cd82d83b","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.11-canary.29.398.0.tgz","fileCount":41,"unpackedSize":68216,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmZh8CRA9TVsSAnZWagAAunwP/R5+KI+WNpWzLeeDJvpt\n6DXnfuDniMyHpg980/S9TBt8U+ULKEiiOerSlTIvniudpwzv/BAxe44yDYnJ\npP96UHGxAY+5WccC3RP1b9KT/zYZHD5uC7bE8fztFrrTbxeCJsZAN780p7MJ\nKUMQkeMCdwvWlmY4gnVwQbLolWJETQF1JtHgXT/cdzXIABwZWX5Wy6sW0uZB\nGwuH8aSs8txSBzx2+AyORisIo1duKZHqG/yriRZXVcplUiCv4710ULkPpeBY\nmLkJR2ktwjF24BOZwFK/KHV2x4qgiWp8tuVN+65MPM8ojOgkxlRBBm5K6Khi\nwPLVYAlmP8FuBkAqTVPpN0uVEabPlrnWYAzVxrjkBQrBtJTBbakPresfJ2tZ\n+/zT69mimD0aHyaLg1Rt8gQctDJmevrDcqQ6jAWrDMq+CvOuYCxY2EkrBab3\nyXwelBOPHGn6iF5naOrMw0q9tNEguLJryDSgiC/lVJ1/Lt0ddDiRygm+I3sQ\neG6dbLjg0NAiRyY4Bbi8qSAdm1SUL9EeC50kiit3oVAZVcb8OXKjQDDOeZo5\nuNNX752rUqpO/L2EYdFAYcl1B7m0KiuImWwTyvpMjG/owODU8yyZifQJm6eC\nTaYBSQnYexHSAXD0HmiIXkCnAh1gWZU9ns+V7+9at6w5ItKxNwyLd8QIxKCc\nZrHa\r\n=kovM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC0rqNPUipzo+RhVCL7xmO/MN80OqM1dMJlX4iD08gGyAiEA1uSJAHU7NpRpZvzWJ/v4VUo4RAOAIGpABnQnwt/j8SE="}]},"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.11-canary.29.398.0_1620678780079_0.23399179619847765"},"_hasShrinkwrap":false},"0.11.11-canary.31.422.0":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.11-canary.31.422.0","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -vv","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.54.6","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.54.6","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<div align=\"center\"><a href=\"#contributors\"><img src=\"https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square\" alt=\"All Contributors\" /></a></div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/kendallgassner\"><img src=\"https://avatars3.githubusercontent.com/u/15275462?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Kendall Gassner</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Code\">💻</a> <a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Documentation\">📖</a> <a href=\"#ideas-kendallgassner\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#infra-kendallgassner\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇</a></td>\n    <td align=\"center\"><a href=\"https://github.com/hipstersmoothie\"><img src=\"https://avatars3.githubusercontent.com/u/1192452?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Lisowski</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=hipstersmoothie\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Rashmi-K-A\"><img src=\"https://avatars2.githubusercontent.com/u/39820442?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rashmi K A</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=Rashmi-K-A\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"https://github.com/rajatdiptabiswas\"><img src=\"https://avatars.githubusercontent.com/rajatdiptabiswas?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rajat Biswas</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=rajatdiptabiswas\" title=\"Code\">💻</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!","readmeFilename":"README.md","gitHead":"4205fb5e7c4e87755ba2196ed9f7bce4236fc3b4","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.11-canary.31.422.0","_nodeVersion":"16.5.0","_npmVersion":"7.19.1","dist":{"integrity":"sha512-n6epB/vIzAHfxGwnNjrHTEVxiBUmPNLrct79dubUEEywrD1Du63mDc+f7yDOLej865+XPlI7exkkpRJGxEFMLw==","shasum":"4c5e83bcd4dfd52f23d66691defc9c41a81cba55","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.11-canary.31.422.0.tgz","fileCount":41,"unpackedSize":68216,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg/x9yCRA9TVsSAnZWagAAAwcP/0ZJjPFlptNVzJF+P92b\nmLWnTFdUpirA+KaYgt3Rq87MatXLF38MmNbIIiCQba2kfwRcO4Mn3JlB3wJn\nYZyLZkl0R4Zxiyn5s6ebm0gUATEfZnkE1zwAMZ4HzAH5O8HOqEQP+dLWHCPf\nVtqvlhfLg26Yv3VFW72ZO24zMKi6uh+rRJHheihvmgktDMmCWahUCI6VmwsW\nhklVbInQ/l9STngLdqsDTOh90eSctjn9OsdOhoArb0kHY13IHZSARlV8BC1V\nnBvBZvqpqkQWqZwJQ6pJiNZulFLbK5RMB6hcptU6PG864fUsl0QOlTwfeaCR\n5wG+trXYX4lR7KaOTi7u72mEpAKO5qVrIFHLqYoEm0XNMr5T3GjB3TaNuIgR\nIgFaHESar/T7vmJAbGW+9RG+ZU0TVPGFh0IyqKtniR1FVDMwFtGJhwX8GWQk\nZaEG0AOm1aTcvbfdOauCmsGw1KgGLqTuRaDEQrr1FFIvMYdrE0+EC5IPGubI\nM4RT6Ypmgy+j07rbH4Tbpee4gFxKLDxyXwc/OZnSfGeOylTpF7d9dlDcCWid\nK6xX01w9HhyQNQPeErBs0nqdMagvnDy55F0QFGP9+anf0v3hPJTDIGcEVqsr\nUzIRyGJDyHd47y/Bwbq4zrdcM14W+wx5qXI/npiM81Q2STEzYO1Z7yATTWCU\nWBjD\r\n=2TZ4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCwA+wpUTHc+Y+1/u6+796TPJOk+DqWRWLWhzXjyBK6eAIhAITg88Xx+aTdL9eCW6aba71VbabT3zFuowo1YSwdZXvd"}]},"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.11-canary.31.422.0_1627332466165_0.028340988129677447"},"_hasShrinkwrap":false},"0.11.11-canary.30.434.0":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.11-canary.30.434.0","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -vv","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.54.6","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.54.6","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<div align=\"center\"><a href=\"#contributors\"><img src=\"https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square\" alt=\"All Contributors\" /></a></div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/kendallgassner\"><img src=\"https://avatars3.githubusercontent.com/u/15275462?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Kendall Gassner</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Code\">💻</a> <a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Documentation\">📖</a> <a href=\"#ideas-kendallgassner\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#infra-kendallgassner\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇</a></td>\n    <td align=\"center\"><a href=\"https://github.com/hipstersmoothie\"><img src=\"https://avatars3.githubusercontent.com/u/1192452?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Lisowski</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=hipstersmoothie\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Rashmi-K-A\"><img src=\"https://avatars2.githubusercontent.com/u/39820442?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rashmi K A</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=Rashmi-K-A\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"https://github.com/rajatdiptabiswas\"><img src=\"https://avatars.githubusercontent.com/rajatdiptabiswas?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rajat Biswas</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=rajatdiptabiswas\" title=\"Code\">💻</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!","readmeFilename":"README.md","gitHead":"f560e0a1905c773c9f06424383947ad8d30e8ec1","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.11-canary.30.434.0","_nodeVersion":"16.5.0","_npmVersion":"7.19.1","dist":{"integrity":"sha512-zhfc0xEsdvIZMG0sQZ4vUTVEPZyW16Sg0DBtfmCeXTecflcK3XDORolaTzW+oaQ2mawyW/SDB7MhwQdt3HTiMg==","shasum":"70987ff83f2f5c997cf1f1bb2111a7a37bb63f11","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.11-canary.30.434.0.tgz","fileCount":41,"unpackedSize":68216,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg/yAICRA9TVsSAnZWagAA+doP/0d98X4aPWnpwG/dotTq\ne7uy4QTyhP/vdb25B4G+ZAzvozKu89UTn/w0O20iir10klODrReQ6li/0YLg\n12NCGWEnV94907lEwcY56wuJH/TPnHG4Xh152PlRPKzo2fsrvZooGT67Dbpx\ndrC4QxDphl0V8TquTGIq5Oy/l5JuFOi7rbCw4GwRvTUIM5jw6sXsy66EqS7O\nVUy/ubVs1Fi4PYn1kfN0n1whDigpmCu5x2QFjQWpWGjJh969oIdNdTJFejrs\n+4N24TR/3nmJ6Oc0xjdMNMwV605j3mqqZSfIimMBawO7L/euQPGZ62ZnLUNm\njk6sp/GU5n0nQBgKFcfXr0JsbCTDD6Mw/giEOWIh2EdERVwTid54meIhuzql\njnacBeYHrfym6x/V03+bSAHCyGAX/zLc9oKmf6/LqWtZNblSNYU9tGAhrhui\nco96oxj2s+mvzF4e+Q8VPe+cMv7g/4PNdSFhMBFfata9lX7ARxiFumoRtsXF\nKlXIC++1vDk75Cs4QBLGNnOugxmpaMz+Fj6/BFg6snXq19eXfJnIvHHAeK1N\n7u8j+NtEnxUIgv5D2z4VRFZnMbm+aWpVLlDRcrJJEL+emk5trl2Cj/6eE3M7\nyedFujNrhSGItP20uDBTWOHxqGkB0RIwNTfJHrCRs3U0mJclvyY8YeGKCwHT\nxTL9\r\n=s+wb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGK4WTn3wVsLPKphg8ESWA9CDY/XQk54iu1uhp5ppUAaAiEAmvdAkQ6Tl8GbFWeXdsFimOyE5lkYL/C38S7LiIdJ3EQ="}]},"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.11-canary.30.434.0_1627332616553_0.0616025276020955"},"_hasShrinkwrap":false},"0.11.11-canary.33.446.0":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.11-canary.33.446.0","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -vv","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.54.6","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.54.6","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<div align=\"center\"><a href=\"#contributors\"><img src=\"https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square\" alt=\"All Contributors\" /></a></div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/kendallgassner\"><img src=\"https://avatars3.githubusercontent.com/u/15275462?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Kendall Gassner</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Code\">💻</a> <a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Documentation\">📖</a> <a href=\"#ideas-kendallgassner\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#infra-kendallgassner\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇</a></td>\n    <td align=\"center\"><a href=\"https://github.com/hipstersmoothie\"><img src=\"https://avatars3.githubusercontent.com/u/1192452?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Lisowski</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=hipstersmoothie\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Rashmi-K-A\"><img src=\"https://avatars2.githubusercontent.com/u/39820442?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rashmi K A</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=Rashmi-K-A\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"https://github.com/rajatdiptabiswas\"><img src=\"https://avatars.githubusercontent.com/rajatdiptabiswas?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rajat Biswas</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=rajatdiptabiswas\" title=\"Code\">💻</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!","readmeFilename":"README.md","gitHead":"5866742803db4f9436193f559133d207fc921188","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.11-canary.33.446.0","_nodeVersion":"16.6.1","_npmVersion":"7.20.3","dist":{"integrity":"sha512-Gx72d96YsBuh048J4jv8osGu4IdTIUenhrfGdh2rMhHmqe5XLGH/zYQjN0Tkvt553hHp2tojiVsZJGyYIVah4Q==","shasum":"6765a2520add45bad11fb75eeab6decf47cf8fda","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.11-canary.33.446.0.tgz","fileCount":41,"unpackedSize":68216,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhCqx8CRA9TVsSAnZWagAAdvMQAJRhTXdSY7/0N1jtl0rw\nNmBWNeoThLJzT6nNXe61vvbCAIuJgdr0WOHlbVss4BlSJLfoQx4vMbIAmbr2\nELVi2uVf5noAfQW8gxVk4rF3wkeEYaRBdXQbtKweSwkaAn6OUHCkb8Kbtnjm\n1ji2Urw+WCYvEr52TbTdaK3gUhFCf290Wh0MwuhHsxnqkKY7H9FGNXrcxotE\nUSgR0bJyW28Yqyfic+P/DGlfZo74BNkYz/5Y9FH8ocQzp7M8o62LrXv+klNH\nG8fgfynHI1O8iznOSK23mb95uU5QuNXQvv3YormIKu2XQf1XUmbGNVBA1MVP\nkrjnXt8HExK4Y+H9s7Gu2+88mGiJUaqLhJUlPyZe0uzBoHBAq3+G/5r3XTCA\nTrNm284gNt06+ZhaWc7PnFFKwMudiTPwX3Z+E3lovSrQ6nvofN3oVl5ArEKx\nuu1uGgGgghvJvnnD0uKN4gMfpgdWrl9eewqzc33EPmi6LVMG61/ELgLZDzAa\nwZz0QXGmL1dtApgLr3T0qOz7mgdoWyIICFblXDmVmFLN5lkCr1KdtZwJgkXx\nfkJ1Pc8YPn38fjCmXh9hS+cA6wlfH8PP9nt+eRNIB/3+iPOS2ANJRlKNkb8O\nzx/pLspzBbtPX1zmMP4b5dKNuZxeAdGlgK4eFumRuOlNLLS9RMWGMpzvmbcc\n+6Dk\r\n=gxSn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCVkRrKEar9uutTVJvXYmED/1r5Hklf0pnGoHEM/mcxxAIgBhYJOC2SIbbVoWiza+ZNo+tYFO+juwsax1wEvBARhvc="}]},"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.11-canary.33.446.0_1628089467848_0.1631836029532292"},"_hasShrinkwrap":false},"0.11.11-canary.35.468.0":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.11.11-canary.35.468.0","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -vv","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.54.6","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.54.6","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<div align=\"center\"><a href=\"#contributors\"><img src=\"https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square\" alt=\"All Contributors\" /></a></div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/kendallgassner\"><img src=\"https://avatars3.githubusercontent.com/u/15275462?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Kendall Gassner</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Code\">💻</a> <a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Documentation\">📖</a> <a href=\"#ideas-kendallgassner\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#infra-kendallgassner\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇</a></td>\n    <td align=\"center\"><a href=\"https://github.com/hipstersmoothie\"><img src=\"https://avatars3.githubusercontent.com/u/1192452?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Lisowski</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=hipstersmoothie\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Rashmi-K-A\"><img src=\"https://avatars2.githubusercontent.com/u/39820442?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rashmi K A</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=Rashmi-K-A\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"https://github.com/rajatdiptabiswas\"><img src=\"https://avatars.githubusercontent.com/rajatdiptabiswas?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rajat Biswas</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=rajatdiptabiswas\" title=\"Code\">💻</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!","readmeFilename":"README.md","gitHead":"a9cf204b8beb6e01eb3b0e397cce97e164f4a80e","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.11.11-canary.35.468.0","_nodeVersion":"16.6.1","_npmVersion":"7.20.3","dist":{"integrity":"sha512-G2SCR9vwAYwsNRqV4E8A+/U+zmH4rkPBShhdkeFZpdqlmIKBZjDS3haumZdsia3BqCfpORyIQX/PKE8Fbvenxw==","shasum":"abed76212433337baa1cef8e5f0f833fc3548974","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.11.11-canary.35.468.0.tgz","fileCount":41,"unpackedSize":71317,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhErNbCRA9TVsSAnZWagAAigoQAJwT14d4nOPX6LkjsY13\nLuNly4TJw/4MoyUTqN+bpFjPIfICEbp6We9Sr1ZTrNNxJDu/3YXbNYDDJ0Dv\n5jHHB63y2CxLxJhvBX1CJ+3AH7w3AlPayV8J6uC7+wTi9Y3t7NtoOSGkK1vC\nhOJDr7c8wpmMqYfbysiTfu9Tjaq4Mh/Jt77G6qhKQw9uczOOFg/szmlVspKa\neUJNzSER9YoRR5zFmPAoa4chBBbOKT17UJMbUp7iF3A0N6OMeqmfmaWd4zlR\nCbWEHH/uSsHRIBb+rJoF9KEjG+uY9XxzlCDtKhqM4jJLfzp5yUtbth2KEf85\nfJRR5ypa5rnfqFXs5xwWTWlh/D+rPpDgquovBfHEIfSM66DXIqa/0Tx/C8U1\nnuombWAGR04EXfHdSZ+lR68hM3YdwwIZv43higQXeTuYHoPPzACzki2DRSpJ\nWKEpZwlpm6xJo2zbFXswlkKRQXrOdN1YKmo8xb4hnt8Y9FPbra1k4GXdHIwZ\n9xwkV5adWTus2lq6ZQdZ5xSUQwwIK+lUwKUHbkCrkCSWvBbDpqO42mx8C6vt\n4nfUoEfq1Mo9Z+KennQTYpN+5EC/PaxEFK7luf0u77mBoe50Imjv2aBDIrER\nxD5jP1WJbdWIUgaq2lEiiVswlQwgWL3rA9R1LX8+DPQmsWecZ51GKomSEtxV\nGwLp\r\n=j6MA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDmpN+kALu8614bIqyba4FQ4ftRwC+lye6+0GIsgsQGxwIhAN38EGtb+yIZxjtk7CoAz/YthlOWuv7Sd8qrNMZiO5EV"}]},"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.11.11-canary.35.468.0_1628615515398_0.025624658313047943"},"_hasShrinkwrap":false},"0.12.0":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.12.0","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -vv","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.54.6","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.54.6","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"gitHead":"ab3c55c9bf2ff772f2ce95efaba589a2cb8e1f76","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.12.0","_nodeVersion":"16.6.1","_npmVersion":"7.20.3","dist":{"integrity":"sha512-Or30Hs5DAjd+cpmNKNeIs2TznEZEs332yNTKlvVKFM1emut44rAA36j6K7OhLylLOvdnNa8GD5xNJIhZ61IC5g==","shasum":"ca80f848802de9c2aabb36871bd77065e2a9d434","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.12.0.tgz","fileCount":41,"unpackedSize":74819,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhEsSnCRA9TVsSAnZWagAA0QsP/3LKTD0UuahjsxLZGfRW\nhAn2hkizkBzXZKKqAoDt8TVu19OjSbi9xnqkqRkSYXQwbJMzVFoKG9/dz9/y\nCPMtUyUx8JqdIP+QNEsil9cnY5fOh1N/2SW77Ff9Ba6MglbvhzdtclbcSpKY\nJqT1h4EdY+JfiB0H/BXWyEMJk6P5KBhzMbgaz9PkwCSl8M0jCq6p2TiIMKU/\nUzKjrO7Tb9k+kFqJHLj6cMGjndzLZnLQkOatyXnuftvqp5X0iP1JxpaBAmNn\nB5DU0JOMlxrV+w8lAMJzAVB9RMJhDvTphVOPzXUBznby6GrwWRwBJgT65fY5\nmzWpfFONBibeOMREkJuxC/8JUMQX/Ir+5eF75sU8qKUkRtCKtBEGjH55zMFi\nwqiSQqkJv68uvo2TfCPuLI/LoDRwanSZv/xeo32c6f1mJ/KkQ7qv+vJS7lIN\npVkDaRKjyURfR2MOr1aCc313YrKFSjwwk6J/AG9SUlOUuWWfFLUBEYDu2xBU\nj/0L+t5B1cdzUuZSKVY+qK6EQypFCzRsk+O5GZGXDqfM5jSx+jTcpVaX8H8i\n4apUQkomVOtnQP8uX0pznrk9rB/pa18f9m1rw1ZGk7226RxVIjU3C/js3e7N\n0UiVTh07nF0hsLQjhMZuj54UL762Y+I9QfbD9RRwW7Dd3v0amCFMh2EzU+Zi\nE+Cx\r\n=AaZQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICvGgB1aQeh+lxBlh7QvGMXqfLB+9bYYbJrI6Spiicz8AiBe1iV7vGA8kx3cNJAQn+bp0Wstfgx3ktdCyn4mkdPUlQ=="}]},"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.12.0_1628619943552_0.880053762186922"},"_hasShrinkwrap":false},"0.12.1-canary.36.481.0":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.12.1-canary.36.481.0","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -vv","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.54.6","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.54.6","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<div align=\"center\"><a href=\"#contributors\"><img src=\"https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square\" alt=\"All Contributors\" /></a></div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/kendallgassner\"><img src=\"https://avatars3.githubusercontent.com/u/15275462?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Kendall Gassner</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Code\">💻</a> <a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Documentation\">📖</a> <a href=\"#ideas-kendallgassner\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#infra-kendallgassner\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇</a></td>\n    <td align=\"center\"><a href=\"https://github.com/hipstersmoothie\"><img src=\"https://avatars3.githubusercontent.com/u/1192452?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Lisowski</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=hipstersmoothie\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Rashmi-K-A\"><img src=\"https://avatars2.githubusercontent.com/u/39820442?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rashmi K A</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=Rashmi-K-A\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"https://github.com/rajatdiptabiswas\"><img src=\"https://avatars.githubusercontent.com/rajatdiptabiswas?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rajat Biswas</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=rajatdiptabiswas\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/alexogeny\"><img src=\"https://avatars.githubusercontent.com/u/6896115?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>alexogeny</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=alexogeny\" title=\"Tests\">⚠️</a> <a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=alexogeny\" title=\"Code\">💻</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!","readmeFilename":"README.md","gitHead":"a86f1f674679d62a99876f569e89ea801ff65dde","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.12.1-canary.36.481.0","_nodeVersion":"16.6.1","_npmVersion":"7.20.3","dist":{"integrity":"sha512-GMPZmpfp2XSi8mBhCLhFiQc3QgYDc6Zy/PhZ6zA+iRXJ3heAsi1C7JsyRgl3foRvpg8daMvHM90bsi1c2scjlw==","shasum":"1d8292a75cc9348c5ef8eada8ecfb6876305c56c","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.12.1-canary.36.481.0.tgz","fileCount":41,"unpackedSize":74835,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhEsWBCRA9TVsSAnZWagAA7JAP/R5zO8TRDjeU7vEmC3lB\n9lbIpQj60DuzqQp0eKcUxjCNQ9UisL5hx4hpjYdOxbV74vDhrqZJcVCns0mO\nssuhKlhfTU5fL4aajoVIDCLnndvHMi3aSvEWc2vEwjer9epIy3pK6IyNw1r+\nIQSjBk3kqag0T99SmB9gnQwTAVii1+/ysASXE5NOAthbyIljVFGI6yRo1iqc\nTaLPqVfMvM669pztwtIlV2kaIESzUb1c2RQPT+pdULM5V2Q0542STAw6iN1n\ns81YUn7eEdRurOhpKxI+7FPUAIEpSuFgMIKtIVMhXqmJLhzLi/pYzyTqiVvQ\n/quSNTpv3dZmfFiQJmXY/02Ihp4Upbras839yx262z/Zwm5uL/hqY03MhKqt\nCnf847F7TTBGBbHAE9J/mfpEXy6V+I99Mr+zfO94IkWI3h4WKNJnrvZN2Tdb\noTjiKn/b+TuWJPhbiB7ZSBjoC8BFb7bEOp0k2XoVrRgTqQkneVLYEKp+DEST\nK4wm2PnpH5GZOxeRtlidcPfKHtZQkehtdZV2GssLw+3D/udSlF2DFjkB6y6I\nvqIVYYePT3LkKbRp29B3bfrhbzC441NonwG+T8yZRYmroJBMpAfsQIgdEqII\nPw7F5NCNymxvB8T0PzxoSQuMeK++1pb1cBP/HiXq/JxPOgBR4XS782/pMl/+\neO6d\r\n=W/NJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD4OQdJ9bBsY0vaYTyruQ4KXyfYl2KtDi3YTF6hvODtzQIhAJ3XEEutC27WFAYeDI6wlRoWE40uYo+Qk6CoyXj28uIW"}]},"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.12.1-canary.36.481.0_1628620161484_0.007750618914863505"},"_hasShrinkwrap":false},"0.12.1-canary.37.493.0":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.12.1-canary.37.493.0","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -vv","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.54.6","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.54.6","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<div align=\"center\"><a href=\"#contributors\"><img src=\"https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square\" alt=\"All Contributors\" /></a></div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/kendallgassner\"><img src=\"https://avatars3.githubusercontent.com/u/15275462?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Kendall Gassner</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Code\">💻</a> <a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Documentation\">📖</a> <a href=\"#ideas-kendallgassner\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#infra-kendallgassner\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇</a></td>\n    <td align=\"center\"><a href=\"https://github.com/hipstersmoothie\"><img src=\"https://avatars3.githubusercontent.com/u/1192452?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Lisowski</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=hipstersmoothie\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Rashmi-K-A\"><img src=\"https://avatars2.githubusercontent.com/u/39820442?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rashmi K A</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=Rashmi-K-A\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"https://github.com/rajatdiptabiswas\"><img src=\"https://avatars.githubusercontent.com/rajatdiptabiswas?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rajat Biswas</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=rajatdiptabiswas\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/alexogeny\"><img src=\"https://avatars.githubusercontent.com/u/6896115?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>alexogeny</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=alexogeny\" title=\"Tests\">⚠️</a> <a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=alexogeny\" title=\"Code\">💻</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!","readmeFilename":"README.md","gitHead":"a628d0aabc2b7f80ce718b1c7882cbc0bfc84af7","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.12.1-canary.37.493.0","_nodeVersion":"16.8.0","_npmVersion":"7.21.0","dist":{"integrity":"sha512-n0AMqMO/jcArUVk8isniCr+dfvpxhCCAmkIuSveGieKc4+SPVD2o2dyf0NcwX/bMT1nZ7d+74V+BotE3j4u9JQ==","shasum":"d1144354b715349d4a2843a38e56e22ab8f21cef","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.12.1-canary.37.493.0.tgz","fileCount":41,"unpackedSize":74835,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhMC4oCRA9TVsSAnZWagAAMQQP/0ilvqnzMTJGC2TN6flq\n1S2j2Sd+SYZ3YWZNVvvXMxfJKS+lmV2SZ6qy8ocnGI68r2Pgc0sszkpJZO5G\njbyXTC+OQxGjFS0WBwKdQBD9twfCJ7hUdFjRnQrZNxlt0G8/zbLIokLmsSbZ\n9+tatiSvZrhvi10bjkUHV5vI8xlViYz+05grWPCejXUqR+n4EUVY3MoElnS0\n5x0fJUBlZ5D/deBs59LvwY59X5YhmgAJOj9iEYiLiLwsO/24iAInwS+V44hz\nalpJgcIffabjwprhfSU/Nw6460/TN4a0kGNMynR4g+BdFAEVxpIsjQ90XpY0\nH/dF5BZB4DIEFPqa0vP+QmFa1dGq3/DJ8veBIL76S1s7mIomXeJZEmlsXOwn\nJL6v0WGlZhmBWp8ThWnzXIFPf2vk1ouAfebSryEqYj8yQIM5vNQmlyl+OCMI\nkLHVZnlMt6IkxqtSo6FpB8NAs19zGcXQ8tBxoR1l7sjLmN1ZezMps1Cs81C/\nq0DTz2GbT8PzossoSFYfpHspU2wlsRxlTImr/7pn9Ke5EIpYmKbt2ETz7w0h\nrkiB/ZDzjFN6+iaIglpmD/MrImgOVdKJ2wfxGbflCzOvasO/aJPV2voyzSx3\nOjzkmSSJvdQjnORoW3n/b3djyO0LGhMK3OrwCQdkPBv5OI+9NlPnTLSLj9XX\njM8I\r\n=DNIC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDThgTIFfg/xA1EJHLLoRX75tOHW3j6LdmUk6IwmHdyDQIgRhMK0Rj8+Fej+n6zK/HP2eWPZpf3IR0a/GoStVRaOts="}]},"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.12.1-canary.37.493.0_1630547496192_0.7012432878327053"},"_hasShrinkwrap":false},"0.12.1-canary.38.505.0":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.12.1-canary.38.505.0","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -vv","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.54.6","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.54.6","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<div align=\"center\"><a href=\"#contributors\"><img src=\"https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square\" alt=\"All Contributors\" /></a></div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/kendallgassner\"><img src=\"https://avatars3.githubusercontent.com/u/15275462?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Kendall Gassner</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Code\">💻</a> <a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Documentation\">📖</a> <a href=\"#ideas-kendallgassner\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#infra-kendallgassner\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇</a></td>\n    <td align=\"center\"><a href=\"https://github.com/hipstersmoothie\"><img src=\"https://avatars3.githubusercontent.com/u/1192452?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Lisowski</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=hipstersmoothie\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Rashmi-K-A\"><img src=\"https://avatars2.githubusercontent.com/u/39820442?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rashmi K A</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=Rashmi-K-A\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"https://github.com/rajatdiptabiswas\"><img src=\"https://avatars.githubusercontent.com/rajatdiptabiswas?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rajat Biswas</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=rajatdiptabiswas\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/alexogeny\"><img src=\"https://avatars.githubusercontent.com/u/6896115?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>alexogeny</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=alexogeny\" title=\"Tests\">⚠️</a> <a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=alexogeny\" title=\"Code\">💻</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!","readmeFilename":"README.md","gitHead":"824fe98625ca9d2721867b9e978da0609cbfc929","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.12.1-canary.38.505.0","_nodeVersion":"16.8.0","_npmVersion":"7.21.0","dist":{"integrity":"sha512-m0a8uSML98luK/ZRw43k/AX2m8cd+ZhzrUb68ZDhIFxkVmg3zH/9CRLs0s7ITHSpWdEbrpTsmoxvTCP+b6kwdg==","shasum":"f4e63f74f43896637ab847f37dc1da90a1e75242","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.12.1-canary.38.505.0.tgz","fileCount":44,"unpackedSize":78815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhPX5KCRA9TVsSAnZWagAAsv0QAJUjAs+cqaCtPdLTH3ql\nbHv00m+YDTLuYuLK3EQLoQsEZroXQoN4ykJONFJSsLIuAmqmYkrCI0+qBzzQ\n8ySJY7tnOFp+JXLgK/tUCAugk1wPsZ8/1IsJ6N/MPo7iqpmdX0N+zyksZ2q0\nX9qCCneyUdsHFC8csYHPtp9Jf2dTkdpNsLwZpbAin97a7esNX9PSvTMzRMZa\nZ1g3IysIgwQBeWjBjNuuyrCRY/Poo10g0agV9aRIw8wO+urIUJ3V6KXfsoWz\nhZvIr5qEJ6EiaZ5VZlIvTzK5hO7mhKTYKMt+PodxqIiw0EN0K50xnmlb50JO\nDHz77mYsQRAU1NCpyAHWzGN6VL9NTAyWaQJaoopStb97tsbD1PRsevu3TZB8\nvAp8Ks7hxWcc11cCjEdwZbeY2pbOsa2HLawvw69yCy2GQWw3bCKagjiubnTz\naleFgxL1DnbDtg5Q67gIz3cST9vu66QCsbXbfHH+MbhhfsgflmJW4mGxcML4\nqFphvrJ38Di1KH9Ici3IOm7M0+JquhapenCCRwXX2cOlqbiBTx4fT3n8wvV8\ng/FUVmFoiBnXK55o7cgy6gT13DbAnP5XXcPNOyBJCOM7H7IlRjNnzX0vwXxa\nAJ7X9AQvR6VovvskeXiTqBPW+x0s00JJZVvUcdBhn8WD0XJAkTa/C9UiTFyv\ncK0v\r\n=g2XM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH0LNU/HABfBjdrf28/Yck31BXTuS85e9dgWSTDaR5LuAiAk3J0q+W30tm/U9YRbJcWmMPwAKGUOYvU+qJzN+ffbOw=="}]},"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.12.1-canary.38.505.0_1631419978250_0.7249738181016492"},"_hasShrinkwrap":false},"0.12.1-canary.39.511.0":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.12.1-canary.39.511.0","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -vv","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.54.6","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.54.6","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<div align=\"center\"><a href=\"#contributors\"><img src=\"https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square\" alt=\"All Contributors\" /></a></div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/kendallgassner\"><img src=\"https://avatars3.githubusercontent.com/u/15275462?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Kendall Gassner</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Code\">💻</a> <a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Documentation\">📖</a> <a href=\"#ideas-kendallgassner\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#infra-kendallgassner\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇</a></td>\n    <td align=\"center\"><a href=\"https://github.com/hipstersmoothie\"><img src=\"https://avatars3.githubusercontent.com/u/1192452?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Lisowski</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=hipstersmoothie\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Rashmi-K-A\"><img src=\"https://avatars2.githubusercontent.com/u/39820442?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rashmi K A</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=Rashmi-K-A\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"https://github.com/rajatdiptabiswas\"><img src=\"https://avatars.githubusercontent.com/rajatdiptabiswas?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rajat Biswas</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=rajatdiptabiswas\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/alexogeny\"><img src=\"https://avatars.githubusercontent.com/u/6896115?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>alexogeny</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=alexogeny\" title=\"Tests\">⚠️</a> <a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=alexogeny\" title=\"Code\">💻</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!","readmeFilename":"README.md","gitHead":"aefee81053b60e7b77ffe870fbffa4064cc045d4","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.12.1-canary.39.511.0","_nodeVersion":"16.9.1","_npmVersion":"7.21.1","dist":{"integrity":"sha512-9nOkaJxYlYcGmJo/hfHWTGvyXL61DzckWWIAP8XmDde5kMitTW0ZSxYVzcoLoAwz4FahD3GFwHm5P1mpa0nFpA==","shasum":"890605feada4b3ce40b2142960c953e119cc5f5a","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.12.1-canary.39.511.0.tgz","fileCount":41,"unpackedSize":74835,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGvf5g/6maWdfP+hRrXnzmBVcNevR3y1Y5rFaejaAovlAiBjj/qU0TVExzlkde/3w2Vlgc4elkJyuwYvTV8VUY6s8Q=="}]},"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.12.1-canary.39.511.0_1632235419838_0.8500090046734923"},"_hasShrinkwrap":false},"0.12.1-canary.40.523.0":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.12.1-canary.40.523.0","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -vv","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.54.6","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.54.6","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<div align=\"center\"><a href=\"#contributors\"><img src=\"https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square\" alt=\"All Contributors\" /></a></div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\n```js\nimport {aType} from './foo';\n\nexport type {aType};\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/kendallgassner\"><img src=\"https://avatars3.githubusercontent.com/u/15275462?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Kendall Gassner</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Code\">💻</a> <a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Documentation\">📖</a> <a href=\"#ideas-kendallgassner\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#infra-kendallgassner\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇</a></td>\n    <td align=\"center\"><a href=\"https://github.com/hipstersmoothie\"><img src=\"https://avatars3.githubusercontent.com/u/1192452?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Lisowski</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=hipstersmoothie\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Rashmi-K-A\"><img src=\"https://avatars2.githubusercontent.com/u/39820442?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rashmi K A</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=Rashmi-K-A\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"https://github.com/rajatdiptabiswas\"><img src=\"https://avatars.githubusercontent.com/rajatdiptabiswas?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rajat Biswas</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=rajatdiptabiswas\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/alexogeny\"><img src=\"https://avatars.githubusercontent.com/u/6896115?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>alexogeny</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=alexogeny\" title=\"Tests\">⚠️</a> <a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=alexogeny\" title=\"Code\">💻</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n","readmeFilename":"README.md","gitHead":"5b5e21b6e9183d1c12b1331283e7ec9dda933fe1","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.12.1-canary.40.523.0","_nodeVersion":"16.10.0","_npmVersion":"7.24.0","dist":{"integrity":"sha512-FoXZKnss7kTdfbQ9LDaOWfumihFJZB4y3BQQnVAp5C3Rw+i02XRb0ddvfelXXPfMkwD8nB8huLqx7F+zc8rmwg==","shasum":"652555e2fe98263caa2142191a118e33dc3457b0","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.12.1-canary.40.523.0.tgz","fileCount":41,"unpackedSize":75673,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB1hdpAaQeulV8C2ITnH4MG+IXZbXvLFUtolSdbPYn5BAiEAk5Dv89R2BaJmF2pI4BDq7WJjpZUXA4zJBNF677YlKbg="}]},"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.12.1-canary.40.523.0_1633298111600_0.29094874687927597"},"_hasShrinkwrap":false},"0.12.1":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.12.1","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -vv","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.54.6","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.54.6","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"gitHead":"1dd7c08ee06335e342221afcd28ab5b564b57b93","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.12.1","_nodeVersion":"16.10.0","_npmVersion":"7.24.0","dist":{"integrity":"sha512-m1v/f+LYVygCY735KfCovkoXYPbZH5zxEj/tuLOnMwX/qbJEJoRb9evul88Ois5HidvKbiMdMg/tXU55Ki++jg==","shasum":"67c2ab8f005a7bfe451f9ce1430d8cbbe30d9a01","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.12.1.tgz","fileCount":41,"unpackedSize":77409,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2qNGCRA9TVsSAnZWagAArlMQAKRpG2MPvu7lqzc4nKgB\ncCD7Jsqvkrwo74xWylLV7iy4cDv091GZSRoC6lAMBduEdiiSu1FPD3ls1yTa\nv4nV+aY5GSIz9O/n8v4LnEuaFfWIU1Y4CF/yUrS7OMt8q4utPxkjg0V4F+95\na3bgPBh6xpe97t4nSMJs1Adp+X1mkAOA+csXEPwfDvcvFd1s5e6XR56go67a\nqFcWIeYNYYqHKfJutKRjwbRHP803V/atqW7ve3O8MxukNaKZQUAu/RyezJGh\nrkNXjEz3qS8cnlXsxflNtStVs41MKDKdd2QnCpJyCbLk08lLyUP6AIAbCX/X\n/bo2nwGj6tGqQpqjazVp3d6JPzuMaKW6ZH4zQ1Lj/+l726U1UUuHkQS9iubL\n5adqHJ7GIcGoYPaVR99YCaOI6W8JZsU3Rg+0/s7ktvfPdLRRmrKA3cnogWn9\ntAPUmKqw8fahLk23EcFmFLKxA3UnNfGUKw6mzbaH8uDjVGa3qJdHgxmORke8\nK6VmlynzntuaOO/5Mgt8MgP9TIx754/nNXfXgr+640WVNkwlTLa++cV/f0vY\nx+WrzqKLTaxcyqKUpw8xuJhFVV1Yj8qOA4WI8WK3MiTyr+UEGVBfS9nqTtZ0\nzuR2WoCKGHkJj3jZrPxtGQis+hejnsvGVyPCMSfkLo+7OIUQw+1pEy4fjrA5\nerIY\r\n=PL0c\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFvbiC0+v/dirhEL7VLPLMAGWe5BlmV/YT2mwN9sW05sAiB8AveuS2MC8tFlMLKJqnkVSSPpLapnI4zRc7ikARXB4A=="}]},"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.12.1_1633377147169_0.5248091187853354"},"_hasShrinkwrap":false},"0.12.2-canary.41.536.0":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.12.2-canary.41.536.0","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -vv","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.54.6","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.54.6","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<div align=\"center\"><a href=\"#contributors\"><img src=\"https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square\" alt=\"All Contributors\" /></a></div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\n```js\nimport {aType} from './foo';\n\nexport type {aType};\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/kendallgassner\"><img src=\"https://avatars3.githubusercontent.com/u/15275462?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Kendall Gassner</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Code\">💻</a> <a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Documentation\">📖</a> <a href=\"#ideas-kendallgassner\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#infra-kendallgassner\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇</a></td>\n    <td align=\"center\"><a href=\"https://github.com/hipstersmoothie\"><img src=\"https://avatars3.githubusercontent.com/u/1192452?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Lisowski</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=hipstersmoothie\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Rashmi-K-A\"><img src=\"https://avatars2.githubusercontent.com/u/39820442?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rashmi K A</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=Rashmi-K-A\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"https://github.com/rajatdiptabiswas\"><img src=\"https://avatars.githubusercontent.com/rajatdiptabiswas?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rajat Biswas</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=rajatdiptabiswas\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/alexogeny\"><img src=\"https://avatars.githubusercontent.com/u/6896115?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>alexogeny</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=alexogeny\" title=\"Tests\">⚠️</a> <a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=alexogeny\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/DianaTdr\"><img src=\"https://avatars.githubusercontent.com/u/35532678?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Diana Toader</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=DianaTdr\" title=\"Documentation\">📖</a> <a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=DianaTdr\" title=\"Tests\">⚠️</a> <a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=DianaTdr\" title=\"Code\">💻</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n","readmeFilename":"README.md","gitHead":"836598e266ef2024283025d8a243a793df18227f","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.12.2-canary.41.536.0","_nodeVersion":"17.2.0","_npmVersion":"8.1.4","dist":{"integrity":"sha512-mrk48TVbNZAr/JhMJkksQA+3OYUuiYDO7Wrv7lurM+ToWWSpq8ME4JVVLuMTVUI5vmm5pearcYzvoh/g1NsyeQ==","shasum":"64cd02be5b84a3d56d81b8b1323813a01dec00b7","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.12.2-canary.41.536.0.tgz","fileCount":41,"unpackedSize":77425,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiB/DjCRA9TVsSAnZWagAAfQEP/0PJIrcpJ3o5vUjhPb4K\nX1LJ5pZpgD8uQVq6utHQN2AcCA9kkBqv3Ajba2RO0JNBQl/9VVic0gD2nS5+\n/zlJjg2hLZJ+JxfXNGpfktO6M7owBEV+7OPBwjmM9g9f4Q7uJ8VGt9K/l5Tr\nFeimU4n6f5V3rEUnFOzF5IEGOJ//RMoR2p7lq09Mirh/cscGn2V1vIAe+1KN\nPMd/9XhnyB6Go/AsQTaVTdaAubQI6urSaGnPd9TBni1knGWQNLJ55R94u3+A\n8tym8udWhpzNnqz7fRjk94d+v6DxAWqNdQDsBPK4GIUnkB6okajOsyDZifRC\nmZAeoS8k99bPwt+DhFj+tkuGvkYQ9BhluqWTFCE7hi42DUl/uxHwhGr5Xb8S\n/ix7zoTRbbTsYi236+Xlpx9F3aDc/nuUaD1YWc6uFxrn0BUFvUbVTAsTWNU9\nkgcqi4sEvqXQr490W99sit0Ru3dan3qyFXqE4454hVE3SCbj2N8SZCS1uUZc\nqKrq1PgkyWRx5tPXSMGHK5bPmRWhON/G4k3/uLWxix0nvIVxEPEwL1aWA8kr\n+xdVbY7/+p61IRFoprHd9YKMmaDgxrMuBGdpB2z0nEU7k6lET6UoVmF6WNDF\nRPn5EnKZmfhGtNK9s43/tUgNm+oRYfycAJGRYTCeyUtefHJ+HmH6FBnT1w/k\nnW5V\r\n=Br2y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCXEt5rdbNX52VrJK11ppGM58VBatsbsN7A1CQgRPhIMgIgT+78ZtSAieza1iIUhQZHTzVlIsL/rxc9xI7WdCxVTYg="}]},"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.12.2-canary.41.536.0_1644687587743_0.10991577355532911"},"_hasShrinkwrap":false},"0.12.2-canary.42.548.0":{"name":"eslint-plugin-no-explicit-type-exports","version":"0.12.2-canary.42.548.0","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"main":"dist/index.js","scripts":{"build":"rimraf ./dist && tsc -b tsconfig.build.json","start":"npm run build -- --watch","clean":"rimraf ./dist && rimraf node_modules","lint":"eslint ./src --ext .js,.ts","test":"jest --coverage","release":"auto shipit -vv","labelCheck":"auto pr-check"},"engines":{"node":"^8.10.0 || ^10.13.0 || >=11.10.1"},"prettier":{"singleQuote":true,"trailingComma":"all"},"dependencies":{"@typescript-eslint/experimental-utils":"^2.27.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.1"},"peerDependencies":{"@typescript-eslint/parser":">= 2.27.0","eslint":">= 6.x"},"devDependencies":{"@auto-it/all-contributors":"^9.54.6","@types/eslint":"^6.1.2","@types/jest":"^24.0.18","@types/node":"^12.11.5","@typescript-eslint/eslint-plugin":"^2.27.0","@typescript-eslint/parser":"^2.27.0","@typescript-eslint/typescript-estree":"^2.27.0","auto":"^9.54.6","eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","jest":"^24.9.0","prettier":"1.18.2","rimraf":"3.0.0","ts-jest":"^24.1.0","typescript":"3.8.3"},"readme":"<div align=\"center\">\n  <img width=\"200\" height=\"200\"\n    src=\"./Esl.svg\">\n  <h1>eslint-plugin-no-explicit-type-exports</h1>\n  <p>\nThis plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you have a file that exports an imported type.</p>\n</div>\n\n<div align=\"center\"><a href=\"#contributors\"><img src=\"https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square\" alt=\"All Contributors\" /></a></div>\n\n<br />\n\n## Example Usage\n\nImagine a you have a typescript package that includes `foo.ts` and `index.ts`:\n\n```js\n// foo.ts\nexport type barType = string;\n\n// index.ts\nexport { barType } from './foo.ts';\n```\n\nWhen `foo.ts` is built into JavaScript, the types are removed and added to a type declaration file. However, the export statement in `index.ts` will not be removed. When another developer tries to use this package in a JavaScript project they can encounter errors that the export doesn't actually exist.\n\n```bash\n ./node_modules/some_repo/index.js\n attempted import error: 'barType' is not exported from './foo'.\n```\n\n## Installation\n\n`yarn add --dev eslint-plugin-no-explicit-type-exports`\n\n## Usage\n\nIn your `.eslintrc` add `eslint-plugin-no-explicit-type-exports` to the plugin section.\n\n```json\n{\n  \"plugins\": [\"eslint-plugin-no-explicit-type-exports\"],\n  \"rules\": {\n    \"no-explicit-type-exports/no-explicit-type-exports\": 2\n  }\n}\n```\n\nNote: you will need to use the `@typescript-eslint/parser` and add an import/resolver to your eslint settings.\nMore information about import/resolver can be found in the `eslints-plugin-import` documentation.\nLinks to both `@typescript-eslint` and `eslints-plugin-import` can be found at the bottom of this README.\n\n```json\n{\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\",\n    \"sourceType\": \"module\"\n  },\n  \"plugins\": [\"@typescript-eslint\"],\n    \"settings\": {\n    \"import/resolver\": {\n      \"node\": {\n        \"extensions\": [\".js\", \".jsx\", \".ts\", \".tsx\"]\n      }\n    }\n```\n\n## Rule Details\n\ngiven:\n\n```js\n// foo.ts\nexport type aType = string;\n\nexport randomNumber = 5;\n\nexport interface anInterface {\n    bar: string;\n}\n\n// bar.ts\ninterface anInterface {\n    a: string;\n    b: number;\n}\n\ntype aType = string;\n\nconst randomNumber = 5;\n\nexport {aType, anInterface};\nexport default randomNumber;\n\n// baz.ts\ntype aType = string;\n\nexport default aType;\n\n// oneLine.ts\nexport type x = keyof typeof String;\n```\n\nValid:\n\n```js\nimport { aType, randomNumber, anInterface } from './foo';\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport randomNumber;\n```\n\n```js\n// exporting * is valid. Since types and interfaces are already stript out\nimport { aType, randomNumber, anInterface } from './foo';\n\nexport * from './foo';\n```\n\n```js\nimport {aType} from './foo';\n\nexport type {aType};\n```\n\nInvalid:\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport anInterface;\n```\n\n```js\nimport {aType, randomNumber, anInterface} from './foo';\n\nexport aType;\n```\n\n```js\nexport { aType } from './baz';\n```\n\n```js\nexport { x } from './oneLine';\n```\n\n### Fixable\n\nThe `--fix` option will add the 'type' operator to all types and interfaces that are imported then exported from a file.\n\nThis:\n\n```js\nimport { SomeThing } from './some-module.js';\nexport { SomeThing };\n```\n\nWill be fixed to:\n\n```js\nimport type { SomeThing } from './some-module.js';\nexport type { SomeThing };\n```\n\n## Further Reading\n\nThis plugin uses the `eslints-plugin-import` resolver to resolve the files that I would be accessing to check if the specifier was a type or an interface.\nhttps://github.com/benmosher/eslint-plugin-import\n\nIt also uses the @typescript-eslint/parse to parse files to check for types.\n\nhttps://github.com/typescript-eslint/typescript-eslint\n\n## Contributing\n\nContributions are welcome! If you encounter problems or have a feature suggestion we'd love to hear about it. Open an issue in the GitHub issue tracker and we will do our best to provide support. Thank you!\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/kendallgassner\"><img src=\"https://avatars3.githubusercontent.com/u/15275462?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Kendall Gassner</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Code\">💻</a> <a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=kendallgassner\" title=\"Documentation\">📖</a> <a href=\"#ideas-kendallgassner\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#infra-kendallgassner\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇</a></td>\n    <td align=\"center\"><a href=\"https://github.com/hipstersmoothie\"><img src=\"https://avatars3.githubusercontent.com/u/1192452?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Lisowski</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=hipstersmoothie\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Rashmi-K-A\"><img src=\"https://avatars2.githubusercontent.com/u/39820442?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rashmi K A</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=Rashmi-K-A\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"https://github.com/rajatdiptabiswas\"><img src=\"https://avatars.githubusercontent.com/rajatdiptabiswas?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rajat Biswas</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=rajatdiptabiswas\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/alexogeny\"><img src=\"https://avatars.githubusercontent.com/u/6896115?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>alexogeny</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=alexogeny\" title=\"Tests\">⚠️</a> <a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=alexogeny\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/DianaTdr\"><img src=\"https://avatars.githubusercontent.com/u/35532678?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Diana Toader</b></sub></a><br /><a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=DianaTdr\" title=\"Documentation\">📖</a> <a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=DianaTdr\" title=\"Tests\">⚠️</a> <a href=\"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/commits?author=DianaTdr\" title=\"Code\">💻</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n","readmeFilename":"README.md","gitHead":"7ae7031e773dfee01170702e96491c5f7a3aa130","description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","_id":"eslint-plugin-no-explicit-type-exports@0.12.2-canary.42.548.0","_nodeVersion":"17.2.0","_npmVersion":"8.1.4","dist":{"integrity":"sha512-H0qPn20l4pzWCrmXtUHn6eoVzGMNPTF/7LA51i/PEk0r2MpX3TL3etHMaLSoJAyGVkETbO3cPHZ1xqJooo5U1g==","shasum":"e71704def162ead77e2f3cbbe337e4811104963d","tarball":"https://registry.npmjs.org/eslint-plugin-no-explicit-type-exports/-/eslint-plugin-no-explicit-type-exports-0.12.2-canary.42.548.0.tgz","fileCount":41,"unpackedSize":77425,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiPgr2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqpWA/+L7JgBYKSrl0l2ZZ4L/4Xm5O5b1LYf0mMRhMZ1cAtv7fe+EQp\r\nm+OrzBgOPZCkyd6PvYmKXpVdsStXy9f8SA7CfJUsmPkzu/BgrP1pGm5NocUp\r\nt2MDdAIpMa9BhNqDcvO4LQffX++Ej8cW3wXpe6aXvz8v8vOgr/5+qmOC7Z/i\r\nk4nucj/kVKnfpdpeOokKe2cNQ3yndCs5RqlA7UyD6JcDth2YKkYgjxdw4rW0\r\nM1e05QvlZMrEpWYT1LN//U7BHEHL+B7c1i3vdiqMSuvdOkxY52IIM7BJzq0k\r\n6owfXWPqBCxsPH0xWc8DNN+WBotiU25E+vpbFTDCNohHak36MgvCdDY0II4B\r\nqG8kvCXM4eTNF4BqG6I4RLDFUcgExv4LAWEuliOvGdG/pqSlankKLWbR2/sv\r\nYnftp526/KoZfsuLUzl/+nTf2qyk2krWCtmSsoeyczQ4T8qyUvu1lr2oaccl\r\n+LBqB1My4fEIn4oESwdRwWHTChsFZAe7674RRn4wDQUK/TXRJrFRJJgSSNuD\r\nC2H8ztoAJdx+JrHFE/nhSzIJ+2wMNqXVk2msH/ULamueBpJc0Pd89fBm8V5i\r\nN/450LA7xFxpq8hJe+5YqSPjHklDuUAgyznBIeQ8QvDH8CThY0GMajqyHysr\r\nGDe5ni0xmscsbWbpchKKsp6UNGlVXxlg9aY=\r\n=EzSi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDQ414+VZ732Iq+fsnJvvnuos8ycFIexr/5PYuVdlRjtQIhALJm4D3dSHy2PrBf5U/8LFfn/xC5M36bo7H0Y/lMUiuw"}]},"_npmUser":{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"},"directories":{},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-plugin-no-explicit-type-exports_0.12.2-canary.42.548.0_1648233206640_0.9870353410375505"},"_hasShrinkwrap":false}},"time":{"created":"2019-11-08T20:31:56.031Z","0.10.10-canary.3.46":"2019-11-08T20:31:56.179Z","modified":"2022-05-01T16:36:49.459Z","0.10.10":"2019-11-08T20:35:51.465Z","0.10.11":"2019-11-13T17:38:23.694Z","0.10.12-canary.5.66":"2020-03-14T11:41:59.842Z","0.11.0-canary.6.82":"2020-04-07T17:20:14.490Z","0.11.0-canary.6.88":"2020-04-07T17:49:38.608Z","0.11.0-canary.6.94":"2020-04-07T19:10:41.798Z","0.11.0-canary.6.100":"2020-04-07T19:20:29.254Z","0.11.0-canary.6.106":"2020-04-07T20:12:12.647Z","0.11.0":"2020-04-07T21:20:39.620Z","0.11.1-canary.7.119":"2020-04-09T16:26:41.143Z","0.11.1":"2020-04-09T16:43:25.952Z","0.11.2-canary.8.133":"2020-04-09T16:55:53.210Z","0.11.2":"2020-04-09T16:56:40.785Z","0.11.3-canary.9.146":"2020-07-18T18:21:13.995Z","0.11.3":"2020-08-13T21:43:18.780Z","0.11.4":"2020-08-13T21:43:55.224Z","0.11.5-canary.14.165":"2020-09-10T01:01:26.590Z","0.11.5":"2020-09-15T16:24:11.781Z","0.11.6-canary.15.178":"2020-09-25T04:06:04.906Z","0.11.6":"2020-09-25T04:42:23.226Z","0.11.7-canary.17.191":"2020-09-30T18:32:30.819Z","0.11.7":"2020-09-30T18:50:57.496Z","0.11.8-canary.18.204":"2020-09-30T20:17:38.040Z","0.11.8-canary.18.210":"2020-10-01T07:29:22.262Z","0.11.8-canary.18.230.0":"2020-10-07T12:00:09.735Z","0.11.8":"2020-10-07T14:26:12.660Z","0.11.9-canary.19.244.0":"2020-10-07T14:59:11.732Z","0.11.9-canary.19.256.0":"2020-10-07T16:27:05.815Z","0.11.9-canary.19.255.0":"2020-10-07T16:27:31.001Z","0.11.9":"2020-10-07T16:34:11.684Z","0.11.10-canary.20.270.0":"2020-10-07T17:02:34.995Z","0.11.10-canary.20.277.0":"2020-10-07T17:18:43.588Z","0.11.10-canary.20.283.0":"2020-10-07T17:35:59.952Z","0.11.10":"2020-10-07T18:14:31.874Z","0.11.11-canary.21.295.0":"2020-10-07T18:15:25.467Z","0.11.11-canary.22.302.0":"2020-10-07T18:34:12.506Z","0.11.11-canary.23.325.0":"2020-10-07T20:51:57.700Z","0.11.11-canary.23.326.0":"2020-10-07T20:52:10.430Z","0.11.11-canary.24.338.0":"2020-12-12T00:50:58.792Z","0.11.11-canary.25.350.0":"2021-03-31T07:03:45.234Z","0.11.11-canary.26.362.0":"2021-04-13T15:18:39.454Z","0.11.11-canary.27.374.0":"2021-05-08T10:59:45.701Z","0.11.11-canary.28.380.0":"2021-05-10T19:09:02.248Z","0.11.11-canary.29.398.0":"2021-05-10T20:33:00.264Z","0.11.11-canary.31.422.0":"2021-07-26T20:47:46.348Z","0.11.11-canary.30.434.0":"2021-07-26T20:50:16.686Z","0.11.11-canary.33.446.0":"2021-08-04T15:04:28.027Z","0.11.11-canary.35.468.0":"2021-08-10T17:11:55.537Z","0.12.0":"2021-08-10T18:25:43.798Z","0.12.1-canary.36.481.0":"2021-08-10T18:29:21.651Z","0.12.1-canary.37.493.0":"2021-09-02T01:51:36.358Z","0.12.1-canary.38.505.0":"2021-09-12T04:12:58.427Z","0.12.1-canary.39.511.0":"2021-09-21T14:43:40.073Z","0.12.1-canary.40.523.0":"2021-10-03T21:55:11.745Z","0.12.1":"2021-10-04T19:52:27.310Z","0.12.2-canary.41.536.0":"2022-02-12T17:39:47.940Z","0.12.2-canary.42.548.0":"2022-03-25T18:33:26.762Z"},"maintainers":[{"name":"kendallgassner","email":"kendall.gassner@yahoo.com"}],"description":"<div align=\"center\">   <img width=\"200\" height=\"200\"     src=\"./Esl.svg\">   <h1>eslint-plugin-no-explicit-type-exports</h1>   <p> This plugin guards against attempting to export types that may not exist after type extraction. This usually occurs when you ","homepage":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports#readme","repository":{"type":"git","url":"git+https://github.com/intuit/eslint-plugin-no-explicit-type-exports.git"},"contributors":[{"name":"Kendall Gassner kendall.gassner@yahoo.com"}],"author":{"name":"Kendall Gassner kendall.gassner@yahoo.com"},"bugs":{"url":"https://github.com/intuit/eslint-plugin-no-explicit-type-exports/issues"},"readme":"","readmeFilename":""}