Repository: atfzl/eslint-plugin-css-modules Branch: master Commit: e8ad74448054 Files: 64 Total size: 206.1 KB Directory structure: gitextract_5yr9mmz_/ ├── .babelrc ├── .eslintrc ├── .flowconfig ├── .gitignore ├── .travis.yml ├── README.md ├── example/ │ ├── .eslintrc │ ├── foo.scss │ ├── index.js │ └── tester.js ├── flow-typed/ │ └── npm/ │ ├── babel-cli_vx.x.x.js │ ├── babel-eslint_vx.x.x.js │ ├── babel-plugin-syntax-flow_vx.x.x.js │ ├── babel-plugin-transform-flow-strip-types_vx.x.x.js │ ├── babel-preset-es2015_vx.x.x.js │ ├── babel-preset-stage-1_vx.x.x.js │ ├── babel-watch_vx.x.x.js │ ├── eslint-config-standard_vx.x.x.js │ ├── eslint-plugin-flowtype_vx.x.x.js │ ├── eslint-plugin-import_vx.x.x.js │ ├── eslint-plugin-promise_vx.x.x.js │ ├── eslint-plugin-standard_vx.x.x.js │ ├── eslint_vx.x.x.js │ ├── flow-bin_v0.x.x.js │ ├── gonzales-pe_vx.x.x.js │ ├── lodash_v4.x.x.js │ ├── mocha_v3.1.x.js │ └── nodemon_vx.x.x.js ├── lib/ │ ├── core/ │ │ ├── index.js │ │ └── traversalUtils.js │ ├── index.js │ ├── rules/ │ │ ├── index.js │ │ ├── no-undef-class.js │ │ └── no-unused-class.js │ └── types/ │ └── index.js ├── package.json └── test/ ├── files/ │ ├── composes1.scss │ ├── composesMultiple1.scss │ ├── export1.scss │ ├── export2.scss │ ├── extend1.scss │ ├── foo.js │ ├── global1.scss │ ├── noUndefClass1.less │ ├── noUndefClass1.scss │ ├── noUndefClass3.scss │ ├── noUnusedClass1.less │ ├── noUnusedClass1.scss │ ├── noUnusedClass2.scss │ ├── noUnusedClass3.scss │ ├── parentSelector1.scss │ ├── parentSelector2.scss │ ├── parentSelector3.scss │ ├── parentSelector4.scss │ ├── parentSelector5.scss │ ├── parentSelector6.scss │ ├── parentSelector7.scss │ ├── parentSelector8.scss │ ├── root1.scss │ └── unparsable.scss ├── lib/ │ ├── core/ │ │ └── traversalUtils.test.js │ └── rules/ │ ├── no-undef-class.test.js │ └── no-unused-class.test.js └── utils.js ================================================ FILE CONTENTS ================================================ ================================================ FILE: .babelrc ================================================ { "presets": ["@babel/preset-env"], "plugins": [ "@babel/plugin-syntax-flow", "@babel/transform-flow-strip-types", "@babel/plugin-proposal-export-default-from" ], "sourceMaps": "inline" } ================================================ FILE: .eslintrc ================================================ { "parser": "@babel/eslint-parser", "extends": [ "standard", "plugin:import/errors", "plugin:import/warnings", "plugin:mocha/recommended" ], "env": { "es6": true, "node": true }, "rules": { "semi": [1, "always"], "camelcase": 0, "comma-dangle": 0 } } ================================================ FILE: .flowconfig ================================================ [ignore] build/ [include] lib/ [version] ^0.36.0 ================================================ FILE: .gitignore ================================================ node_modules .DS_Store build npm-debug.log ================================================ FILE: .travis.yml ================================================ language: node_js node_js: - 4 - 6 ================================================ FILE: README.md ================================================ # eslint-plugin-css-modules [![Build Status](https://travis-ci.org/atfzl/eslint-plugin-css-modules.svg?branch=master)](https://travis-ci.org/atfzl/eslint-plugin-css-modules) This plugin intends to help you in tracking down problems when you are using css-modules. It tells if you are using a non-existent css/scss/less class in js or if you forgot to use some classes which you declared in css/scss/less. ## Rules * `css-modules/no-unused-class`: You must use all the classes defined in css/scss/less file. >If you still want to mark a class as used, then use this comment on top of your file ```js /* eslint css-modules/no-unused-class: [2, { markAsUsed: ['container'] }] */ ``` where container is the css class that you want to mark as used. Add all such classes in the array. >If you use the `camelCase` option of `css-loader`, you must also enabled it for this plugin ```js /* eslint css-modules/no-unused-class: [2, { camelCase: true }] */ ``` * `css-modules/no-undef-class`: You must not use a non existing class, or a property that hasn't been exported using the [:export keyword](https://github.com/css-modules/icss#export). >If you use the `camelCase` option of `css-loader`, you must also enabled it for this plugin ```js /* eslint css-modules/no-undef-class: [2, { camelCase: true }] */ ``` ## Installation ``` npm i --save-dev eslint-plugin-css-modules ``` ## Usage: .eslintrc ```json { "plugins": [ "css-modules" ], "extends": [ "plugin:css-modules/recommended" ] } ``` You may also tweak the rules individually. For instance, if you use the [camelCase](https://github.com/webpack-contrib/css-loader#camelcase) option of webpack's css-loader: ```json { "plugins": [ "css-modules" ], "extends": [ "plugin:css-modules/recommended" ], "rules": { "css-modules/no-unused-class": [2, { "camelCase": true }], "css-modules/no-undef-class": [2, { "camelCase": true }] } } ``` The camelCase option has 4 possible values, see [css-loader#camelCase](https://github.com/webpack-contrib/css-loader#camelcase) for description: ```js true | "dashes" | "only" | "dashes-only" ``` ## Specifying base path You can specify path for the base directory via plugin settings in .eslintrc. This is used by the plugin to resolve absolute (S)CSS paths: ```json { "settings": { "css-modules": { "basePath": "app/scripts/..." } } } ``` ## Screen Shot ![ScreenShot](https://raw.githubusercontent.com/atfzl/eslint-plugin-css-modules/master/screenshots/screenshot3.png) ``` 1:8 error Unused classes found: container css-modules/no-unused-class 5:17 error Class 'containr' not found css-modules/no-undef-class 10:26 error Class 'foo' not found css-modules/no-undef-class ``` scss: ```scss /* .head is global, will not be used in js */ :global(.head) { color: green; } .container { width: 116px; i { font-size: 2.2rem; } .button { padding: 7px 0 0 5px; } } .footer { color: cyan; } ``` ================================================ FILE: example/.eslintrc ================================================ { "plugins": [ "css-modules" ], "extends": [ "plugin:css-modules/recommended" ] } ================================================ FILE: example/foo.scss ================================================ /* .head is global, will not be used in js */ :global(.head) { color: green; } .container { width: 116px; i { font-size: 2.2rem; } .button { padding: 7px 0 0 5px; } } .footer { color: cyan; } ================================================ FILE: example/index.js ================================================ /* eslint css-modules/no-unused-class: [2, { markAsUsed: ['container'] }] */ import s from './foo.scss'; const component = () => { const cls = s['containr']; s[cls]; s._getCss(); return (
text
Footer
); }; export default component; ================================================ FILE: example/tester.js ================================================ /* ignore this file. This just for checking logs */ import { RuleTester } from 'eslint'; import rule from '../lib/rules/no-undef-class'; import { test } from '../test/utils'; const ruleTester = new RuleTester(); ruleTester.run('no-undef-class', rule, { valid: [ { code: '' }, ], invalid: [ test({ code: ` import s from './gonzalesFail1.css'; export default Foo = () => (
); `, errors: ['foo'], }), ] }); ================================================ FILE: flow-typed/npm/babel-cli_vx.x.x.js ================================================ // flow-typed signature: 670228b673fbf5d953585356d4345691 // flow-typed version: <>/babel-cli_v^6.18.0/flow_v0.36.0 /** * This is an autogenerated libdef stub for: * * 'babel-cli' * * Fill this stub out by replacing all the `any` types. * * Once filled out, we encourage you to share your work with the * community by sending a pull request to: * https://github.com/flowtype/flow-typed */ declare module 'babel-cli' { declare module.exports: any; } /** * We include stubs for each file inside this npm package in case you need to * require those files directly. Feel free to delete any files that aren't * needed. */ declare module 'babel-cli/bin/babel-doctor' { declare module.exports: any; } declare module 'babel-cli/bin/babel-external-helpers' { declare module.exports: any; } declare module 'babel-cli/bin/babel-node' { declare module.exports: any; } declare module 'babel-cli/bin/babel' { declare module.exports: any; } declare module 'babel-cli/lib/_babel-node' { declare module.exports: any; } declare module 'babel-cli/lib/babel-external-helpers' { declare module.exports: any; } declare module 'babel-cli/lib/babel-node' { declare module.exports: any; } declare module 'babel-cli/lib/babel/dir' { declare module.exports: any; } declare module 'babel-cli/lib/babel/file' { declare module.exports: any; } declare module 'babel-cli/lib/babel/index' { declare module.exports: any; } declare module 'babel-cli/lib/babel/util' { declare module.exports: any; } // Filename aliases declare module 'babel-cli/bin/babel-doctor.js' { declare module.exports: $Exports<'babel-cli/bin/babel-doctor'>; } declare module 'babel-cli/bin/babel-external-helpers.js' { declare module.exports: $Exports<'babel-cli/bin/babel-external-helpers'>; } declare module 'babel-cli/bin/babel-node.js' { declare module.exports: $Exports<'babel-cli/bin/babel-node'>; } declare module 'babel-cli/bin/babel.js' { declare module.exports: $Exports<'babel-cli/bin/babel'>; } declare module 'babel-cli/index' { declare module.exports: $Exports<'babel-cli'>; } declare module 'babel-cli/index.js' { declare module.exports: $Exports<'babel-cli'>; } declare module 'babel-cli/lib/_babel-node.js' { declare module.exports: $Exports<'babel-cli/lib/_babel-node'>; } declare module 'babel-cli/lib/babel-external-helpers.js' { declare module.exports: $Exports<'babel-cli/lib/babel-external-helpers'>; } declare module 'babel-cli/lib/babel-node.js' { declare module.exports: $Exports<'babel-cli/lib/babel-node'>; } declare module 'babel-cli/lib/babel/dir.js' { declare module.exports: $Exports<'babel-cli/lib/babel/dir'>; } declare module 'babel-cli/lib/babel/file.js' { declare module.exports: $Exports<'babel-cli/lib/babel/file'>; } declare module 'babel-cli/lib/babel/index.js' { declare module.exports: $Exports<'babel-cli/lib/babel/index'>; } declare module 'babel-cli/lib/babel/util.js' { declare module.exports: $Exports<'babel-cli/lib/babel/util'>; } ================================================ FILE: flow-typed/npm/babel-eslint_vx.x.x.js ================================================ // flow-typed signature: c629444c86e11ef6fd2f3f7bc4c49632 // flow-typed version: <>/babel-eslint_v^7.1.0/flow_v0.36.0 /** * This is an autogenerated libdef stub for: * * 'babel-eslint' * * Fill this stub out by replacing all the `any` types. * * Once filled out, we encourage you to share your work with the * community by sending a pull request to: * https://github.com/flowtype/flow-typed */ declare module 'babel-eslint' { declare module.exports: any; } /** * We include stubs for each file inside this npm package in case you need to * require those files directly. Feel free to delete any files that aren't * needed. */ declare module 'babel-eslint/babylon-to-espree/attachComments' { declare module.exports: any; } declare module 'babel-eslint/babylon-to-espree/convertTemplateType' { declare module.exports: any; } declare module 'babel-eslint/babylon-to-espree/index' { declare module.exports: any; } declare module 'babel-eslint/babylon-to-espree/toAST' { declare module.exports: any; } declare module 'babel-eslint/babylon-to-espree/toToken' { declare module.exports: any; } declare module 'babel-eslint/babylon-to-espree/toTokens' { declare module.exports: any; } // Filename aliases declare module 'babel-eslint/babylon-to-espree/attachComments.js' { declare module.exports: $Exports<'babel-eslint/babylon-to-espree/attachComments'>; } declare module 'babel-eslint/babylon-to-espree/convertTemplateType.js' { declare module.exports: $Exports<'babel-eslint/babylon-to-espree/convertTemplateType'>; } declare module 'babel-eslint/babylon-to-espree/index.js' { declare module.exports: $Exports<'babel-eslint/babylon-to-espree/index'>; } declare module 'babel-eslint/babylon-to-espree/toAST.js' { declare module.exports: $Exports<'babel-eslint/babylon-to-espree/toAST'>; } declare module 'babel-eslint/babylon-to-espree/toToken.js' { declare module.exports: $Exports<'babel-eslint/babylon-to-espree/toToken'>; } declare module 'babel-eslint/babylon-to-espree/toTokens.js' { declare module.exports: $Exports<'babel-eslint/babylon-to-espree/toTokens'>; } declare module 'babel-eslint/index' { declare module.exports: $Exports<'babel-eslint'>; } declare module 'babel-eslint/index.js' { declare module.exports: $Exports<'babel-eslint'>; } ================================================ FILE: flow-typed/npm/babel-plugin-syntax-flow_vx.x.x.js ================================================ // flow-typed signature: 5d7c2096f6bc30ca468313001f450834 // flow-typed version: <>/babel-plugin-syntax-flow_v^6.18.0/flow_v0.36.0 /** * This is an autogenerated libdef stub for: * * 'babel-plugin-syntax-flow' * * Fill this stub out by replacing all the `any` types. * * Once filled out, we encourage you to share your work with the * community by sending a pull request to: * https://github.com/flowtype/flow-typed */ declare module 'babel-plugin-syntax-flow' { declare module.exports: any; } /** * We include stubs for each file inside this npm package in case you need to * require those files directly. Feel free to delete any files that aren't * needed. */ declare module 'babel-plugin-syntax-flow/lib/index' { declare module.exports: any; } // Filename aliases declare module 'babel-plugin-syntax-flow/lib/index.js' { declare module.exports: $Exports<'babel-plugin-syntax-flow/lib/index'>; } ================================================ FILE: flow-typed/npm/babel-plugin-transform-flow-strip-types_vx.x.x.js ================================================ // flow-typed signature: 855ea31ab2c7db08a247b6cee0c102cd // flow-typed version: <>/babel-plugin-transform-flow-strip-types_v^6.18.0/flow_v0.36.0 /** * This is an autogenerated libdef stub for: * * 'babel-plugin-transform-flow-strip-types' * * Fill this stub out by replacing all the `any` types. * * Once filled out, we encourage you to share your work with the * community by sending a pull request to: * https://github.com/flowtype/flow-typed */ declare module 'babel-plugin-transform-flow-strip-types' { declare module.exports: any; } /** * We include stubs for each file inside this npm package in case you need to * require those files directly. Feel free to delete any files that aren't * needed. */ declare module 'babel-plugin-transform-flow-strip-types/lib/index' { declare module.exports: any; } // Filename aliases declare module 'babel-plugin-transform-flow-strip-types/lib/index.js' { declare module.exports: $Exports<'babel-plugin-transform-flow-strip-types/lib/index'>; } ================================================ FILE: flow-typed/npm/babel-preset-es2015_vx.x.x.js ================================================ // flow-typed signature: bf7573d40f6e30c6231567a9e265e245 // flow-typed version: <>/babel-preset-es2015_v^6.18.0/flow_v0.36.0 /** * This is an autogenerated libdef stub for: * * 'babel-preset-es2015' * * Fill this stub out by replacing all the `any` types. * * Once filled out, we encourage you to share your work with the * community by sending a pull request to: * https://github.com/flowtype/flow-typed */ declare module 'babel-preset-es2015' { declare module.exports: any; } /** * We include stubs for each file inside this npm package in case you need to * require those files directly. Feel free to delete any files that aren't * needed. */ declare module 'babel-preset-es2015/lib/index' { declare module.exports: any; } // Filename aliases declare module 'babel-preset-es2015/lib/index.js' { declare module.exports: $Exports<'babel-preset-es2015/lib/index'>; } ================================================ FILE: flow-typed/npm/babel-preset-stage-1_vx.x.x.js ================================================ // flow-typed signature: 1e58255aa40e674d103a1075688c9846 // flow-typed version: <>/babel-preset-stage-1_v^6.16.0/flow_v0.36.0 /** * This is an autogenerated libdef stub for: * * 'babel-preset-stage-1' * * Fill this stub out by replacing all the `any` types. * * Once filled out, we encourage you to share your work with the * community by sending a pull request to: * https://github.com/flowtype/flow-typed */ declare module 'babel-preset-stage-1' { declare module.exports: any; } /** * We include stubs for each file inside this npm package in case you need to * require those files directly. Feel free to delete any files that aren't * needed. */ declare module 'babel-preset-stage-1/lib/index' { declare module.exports: any; } // Filename aliases declare module 'babel-preset-stage-1/lib/index.js' { declare module.exports: $Exports<'babel-preset-stage-1/lib/index'>; } ================================================ FILE: flow-typed/npm/babel-watch_vx.x.x.js ================================================ // flow-typed signature: 1a65215b23bad8b23f7a002ddcac8dd9 // flow-typed version: <>/babel-watch_v^2.0.6/flow_v0.36.0 /** * This is an autogenerated libdef stub for: * * 'babel-watch' * * Fill this stub out by replacing all the `any` types. * * Once filled out, we encourage you to share your work with the * community by sending a pull request to: * https://github.com/flowtype/flow-typed */ declare module 'babel-watch' { declare module.exports: any; } /** * We include stubs for each file inside this npm package in case you need to * require those files directly. Feel free to delete any files that aren't * needed. */ declare module 'babel-watch/babel-watch' { declare module.exports: any; } declare module 'babel-watch/runner' { declare module.exports: any; } // Filename aliases declare module 'babel-watch/babel-watch.js' { declare module.exports: $Exports<'babel-watch/babel-watch'>; } declare module 'babel-watch/runner.js' { declare module.exports: $Exports<'babel-watch/runner'>; } ================================================ FILE: flow-typed/npm/eslint-config-standard_vx.x.x.js ================================================ // flow-typed signature: ca8fe33f0bf67720fe5e0b904410b0ae // flow-typed version: <>/eslint-config-standard_v^6.2.1/flow_v0.36.0 /** * This is an autogenerated libdef stub for: * * 'eslint-config-standard' * * Fill this stub out by replacing all the `any` types. * * Once filled out, we encourage you to share your work with the * community by sending a pull request to: * https://github.com/flowtype/flow-typed */ declare module 'eslint-config-standard' { declare module.exports: any; } /** * We include stubs for each file inside this npm package in case you need to * require those files directly. Feel free to delete any files that aren't * needed. */ declare module 'eslint-config-standard/test/basic' { declare module.exports: any; } declare module 'eslint-config-standard/test/validate-config' { declare module.exports: any; } // Filename aliases declare module 'eslint-config-standard/index' { declare module.exports: $Exports<'eslint-config-standard'>; } declare module 'eslint-config-standard/index.js' { declare module.exports: $Exports<'eslint-config-standard'>; } declare module 'eslint-config-standard/test/basic.js' { declare module.exports: $Exports<'eslint-config-standard/test/basic'>; } declare module 'eslint-config-standard/test/validate-config.js' { declare module.exports: $Exports<'eslint-config-standard/test/validate-config'>; } ================================================ FILE: flow-typed/npm/eslint-plugin-flowtype_vx.x.x.js ================================================ // flow-typed signature: 4cafa5d0a40ca126758232e98e85e341 // flow-typed version: <>/eslint-plugin-flowtype_v^2.25.0/flow_v0.36.0 /** * This is an autogenerated libdef stub for: * * 'eslint-plugin-flowtype' * * Fill this stub out by replacing all the `any` types. * * Once filled out, we encourage you to share your work with the * community by sending a pull request to: * https://github.com/flowtype/flow-typed */ declare module 'eslint-plugin-flowtype' { declare module.exports: any; } /** * We include stubs for each file inside this npm package in case you need to * require those files directly. Feel free to delete any files that aren't * needed. */ declare module 'eslint-plugin-flowtype/bin/readmeAssertions' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/index' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/rules/booleanStyle' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/rules/defineFlowType' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/rules/delimiterDangle' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/rules/genericSpacing' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/rules/noDupeKeys' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/rules/noPrimitiveConstructorTypes' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/rules/noWeakTypes' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/rules/objectTypeDelimiter' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/rules/requireParameterType' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/rules/requireReturnType' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/rules/requireValidFileAnnotation' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/rules/requireVariableType' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/rules/semi' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/rules/sortKeys' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/rules/spaceAfterTypeColon' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/rules/spaceBeforeGenericBracket' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/rules/spaceBeforeTypeColon' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateFunctions' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateObjectTypeIndexer' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateObjectTypeProperty' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateReturnType' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateTypeCastExpression' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateTypical' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/index' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/reporter' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/rules/typeIdMatch' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/rules/unionIntersectionSpacing' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/rules/useFlowType' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/rules/validSyntax' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/utilities/checkFlowFileAnnotation' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/utilities/fuzzyStringMatch' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/utilities/getParameterName' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/utilities/getTokenAfterParens' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/utilities/getTokenBeforeParens' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/utilities/index' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/utilities/isFlowFile' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/utilities/isFlowFileAnnotation' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/utilities/iterateFunctionNodes' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/utilities/quoteName' { declare module.exports: any; } declare module 'eslint-plugin-flowtype/dist/utilities/spacingFixers' { declare module.exports: any; } // Filename aliases declare module 'eslint-plugin-flowtype/bin/readmeAssertions.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/bin/readmeAssertions'>; } declare module 'eslint-plugin-flowtype/dist/index.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/index'>; } declare module 'eslint-plugin-flowtype/dist/rules/booleanStyle.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/booleanStyle'>; } declare module 'eslint-plugin-flowtype/dist/rules/defineFlowType.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/defineFlowType'>; } declare module 'eslint-plugin-flowtype/dist/rules/delimiterDangle.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/delimiterDangle'>; } declare module 'eslint-plugin-flowtype/dist/rules/genericSpacing.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/genericSpacing'>; } declare module 'eslint-plugin-flowtype/dist/rules/noDupeKeys.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/noDupeKeys'>; } declare module 'eslint-plugin-flowtype/dist/rules/noPrimitiveConstructorTypes.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/noPrimitiveConstructorTypes'>; } declare module 'eslint-plugin-flowtype/dist/rules/noWeakTypes.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/noWeakTypes'>; } declare module 'eslint-plugin-flowtype/dist/rules/objectTypeDelimiter.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/objectTypeDelimiter'>; } declare module 'eslint-plugin-flowtype/dist/rules/requireParameterType.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/requireParameterType'>; } declare module 'eslint-plugin-flowtype/dist/rules/requireReturnType.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/requireReturnType'>; } declare module 'eslint-plugin-flowtype/dist/rules/requireValidFileAnnotation.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/requireValidFileAnnotation'>; } declare module 'eslint-plugin-flowtype/dist/rules/requireVariableType.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/requireVariableType'>; } declare module 'eslint-plugin-flowtype/dist/rules/semi.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/semi'>; } declare module 'eslint-plugin-flowtype/dist/rules/sortKeys.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/sortKeys'>; } declare module 'eslint-plugin-flowtype/dist/rules/spaceAfterTypeColon.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/spaceAfterTypeColon'>; } declare module 'eslint-plugin-flowtype/dist/rules/spaceBeforeGenericBracket.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/spaceBeforeGenericBracket'>; } declare module 'eslint-plugin-flowtype/dist/rules/spaceBeforeTypeColon.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/spaceBeforeTypeColon'>; } declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateFunctions.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateFunctions'>; } declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateObjectTypeIndexer.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateObjectTypeIndexer'>; } declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateObjectTypeProperty.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateObjectTypeProperty'>; } declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateReturnType.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateReturnType'>; } declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateTypeCastExpression.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateTypeCastExpression'>; } declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateTypical.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateTypical'>; } declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/index.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/index'>; } declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/reporter.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/reporter'>; } declare module 'eslint-plugin-flowtype/dist/rules/typeIdMatch.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeIdMatch'>; } declare module 'eslint-plugin-flowtype/dist/rules/unionIntersectionSpacing.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/unionIntersectionSpacing'>; } declare module 'eslint-plugin-flowtype/dist/rules/useFlowType.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/useFlowType'>; } declare module 'eslint-plugin-flowtype/dist/rules/validSyntax.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/validSyntax'>; } declare module 'eslint-plugin-flowtype/dist/utilities/checkFlowFileAnnotation.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/checkFlowFileAnnotation'>; } declare module 'eslint-plugin-flowtype/dist/utilities/fuzzyStringMatch.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/fuzzyStringMatch'>; } declare module 'eslint-plugin-flowtype/dist/utilities/getParameterName.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/getParameterName'>; } declare module 'eslint-plugin-flowtype/dist/utilities/getTokenAfterParens.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/getTokenAfterParens'>; } declare module 'eslint-plugin-flowtype/dist/utilities/getTokenBeforeParens.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/getTokenBeforeParens'>; } declare module 'eslint-plugin-flowtype/dist/utilities/index.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/index'>; } declare module 'eslint-plugin-flowtype/dist/utilities/isFlowFile.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/isFlowFile'>; } declare module 'eslint-plugin-flowtype/dist/utilities/isFlowFileAnnotation.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/isFlowFileAnnotation'>; } declare module 'eslint-plugin-flowtype/dist/utilities/iterateFunctionNodes.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/iterateFunctionNodes'>; } declare module 'eslint-plugin-flowtype/dist/utilities/quoteName.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/quoteName'>; } declare module 'eslint-plugin-flowtype/dist/utilities/spacingFixers.js' { declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/spacingFixers'>; } ================================================ FILE: flow-typed/npm/eslint-plugin-import_vx.x.x.js ================================================ // flow-typed signature: ed95a0dbf4ede73fb2995e80197fc3e2 // flow-typed version: <>/eslint-plugin-import_v^2.0.1/flow_v0.36.0 /** * This is an autogenerated libdef stub for: * * 'eslint-plugin-import' * * Fill this stub out by replacing all the `any` types. * * Once filled out, we encourage you to share your work with the * community by sending a pull request to: * https://github.com/flowtype/flow-typed */ declare module 'eslint-plugin-import' { declare module.exports: any; } /** * We include stubs for each file inside this npm package in case you need to * require those files directly. Feel free to delete any files that aren't * needed. */ declare module 'eslint-plugin-import/config/electron' { declare module.exports: any; } declare module 'eslint-plugin-import/config/errors' { declare module.exports: any; } declare module 'eslint-plugin-import/config/react-native' { declare module.exports: any; } declare module 'eslint-plugin-import/config/react' { declare module.exports: any; } declare module 'eslint-plugin-import/config/recommended' { declare module.exports: any; } declare module 'eslint-plugin-import/config/stage-0' { declare module.exports: any; } declare module 'eslint-plugin-import/config/warnings' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/core/importType' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/core/staticRequire' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/ExportMap' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/importDeclaration' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/index' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/rules/default' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/rules/export' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/rules/extensions' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/rules/first' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/rules/imports-first' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/rules/max-dependencies' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/rules/named' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/rules/namespace' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/rules/newline-after-import' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/rules/no-absolute-path' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/rules/no-amd' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/rules/no-commonjs' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/rules/no-deprecated' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/rules/no-duplicates' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/rules/no-dynamic-require' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/rules/no-extraneous-dependencies' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/rules/no-internal-modules' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/rules/no-mutable-exports' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/rules/no-named-as-default-member' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/rules/no-named-as-default' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/rules/no-named-default' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/rules/no-namespace' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/rules/no-nodejs-modules' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/rules/no-restricted-paths' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/rules/no-unassigned-import' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/rules/no-unresolved' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/rules/no-webpack-loader-syntax' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/rules/order' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/rules/prefer-default-export' { declare module.exports: any; } declare module 'eslint-plugin-import/lib/rules/unambiguous' { declare module.exports: any; } declare module 'eslint-plugin-import/memo-parser/index' { declare module.exports: any; } // Filename aliases declare module 'eslint-plugin-import/config/electron.js' { declare module.exports: $Exports<'eslint-plugin-import/config/electron'>; } declare module 'eslint-plugin-import/config/errors.js' { declare module.exports: $Exports<'eslint-plugin-import/config/errors'>; } declare module 'eslint-plugin-import/config/react-native.js' { declare module.exports: $Exports<'eslint-plugin-import/config/react-native'>; } declare module 'eslint-plugin-import/config/react.js' { declare module.exports: $Exports<'eslint-plugin-import/config/react'>; } declare module 'eslint-plugin-import/config/recommended.js' { declare module.exports: $Exports<'eslint-plugin-import/config/recommended'>; } declare module 'eslint-plugin-import/config/stage-0.js' { declare module.exports: $Exports<'eslint-plugin-import/config/stage-0'>; } declare module 'eslint-plugin-import/config/warnings.js' { declare module.exports: $Exports<'eslint-plugin-import/config/warnings'>; } declare module 'eslint-plugin-import/lib/core/importType.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/core/importType'>; } declare module 'eslint-plugin-import/lib/core/staticRequire.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/core/staticRequire'>; } declare module 'eslint-plugin-import/lib/ExportMap.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/ExportMap'>; } declare module 'eslint-plugin-import/lib/importDeclaration.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/importDeclaration'>; } declare module 'eslint-plugin-import/lib/index.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/index'>; } declare module 'eslint-plugin-import/lib/rules/default.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/rules/default'>; } declare module 'eslint-plugin-import/lib/rules/export.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/rules/export'>; } declare module 'eslint-plugin-import/lib/rules/extensions.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/rules/extensions'>; } declare module 'eslint-plugin-import/lib/rules/first.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/rules/first'>; } declare module 'eslint-plugin-import/lib/rules/imports-first.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/rules/imports-first'>; } declare module 'eslint-plugin-import/lib/rules/max-dependencies.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/rules/max-dependencies'>; } declare module 'eslint-plugin-import/lib/rules/named.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/rules/named'>; } declare module 'eslint-plugin-import/lib/rules/namespace.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/rules/namespace'>; } declare module 'eslint-plugin-import/lib/rules/newline-after-import.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/rules/newline-after-import'>; } declare module 'eslint-plugin-import/lib/rules/no-absolute-path.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-absolute-path'>; } declare module 'eslint-plugin-import/lib/rules/no-amd.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-amd'>; } declare module 'eslint-plugin-import/lib/rules/no-commonjs.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-commonjs'>; } declare module 'eslint-plugin-import/lib/rules/no-deprecated.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-deprecated'>; } declare module 'eslint-plugin-import/lib/rules/no-duplicates.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-duplicates'>; } declare module 'eslint-plugin-import/lib/rules/no-dynamic-require.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-dynamic-require'>; } declare module 'eslint-plugin-import/lib/rules/no-extraneous-dependencies.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-extraneous-dependencies'>; } declare module 'eslint-plugin-import/lib/rules/no-internal-modules.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-internal-modules'>; } declare module 'eslint-plugin-import/lib/rules/no-mutable-exports.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-mutable-exports'>; } declare module 'eslint-plugin-import/lib/rules/no-named-as-default-member.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-named-as-default-member'>; } declare module 'eslint-plugin-import/lib/rules/no-named-as-default.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-named-as-default'>; } declare module 'eslint-plugin-import/lib/rules/no-named-default.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-named-default'>; } declare module 'eslint-plugin-import/lib/rules/no-namespace.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-namespace'>; } declare module 'eslint-plugin-import/lib/rules/no-nodejs-modules.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-nodejs-modules'>; } declare module 'eslint-plugin-import/lib/rules/no-restricted-paths.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-restricted-paths'>; } declare module 'eslint-plugin-import/lib/rules/no-unassigned-import.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-unassigned-import'>; } declare module 'eslint-plugin-import/lib/rules/no-unresolved.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-unresolved'>; } declare module 'eslint-plugin-import/lib/rules/no-webpack-loader-syntax.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-webpack-loader-syntax'>; } declare module 'eslint-plugin-import/lib/rules/order.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/rules/order'>; } declare module 'eslint-plugin-import/lib/rules/prefer-default-export.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/rules/prefer-default-export'>; } declare module 'eslint-plugin-import/lib/rules/unambiguous.js' { declare module.exports: $Exports<'eslint-plugin-import/lib/rules/unambiguous'>; } declare module 'eslint-plugin-import/memo-parser/index.js' { declare module.exports: $Exports<'eslint-plugin-import/memo-parser/index'>; } ================================================ FILE: flow-typed/npm/eslint-plugin-promise_vx.x.x.js ================================================ // flow-typed signature: 5fd6942ecac535ed44e1bdbc2d708b19 // flow-typed version: <>/eslint-plugin-promise_v^3.3.0/flow_v0.36.0 /** * This is an autogenerated libdef stub for: * * 'eslint-plugin-promise' * * Fill this stub out by replacing all the `any` types. * * Once filled out, we encourage you to share your work with the * community by sending a pull request to: * https://github.com/flowtype/flow-typed */ declare module 'eslint-plugin-promise' { declare module.exports: any; } /** * We include stubs for each file inside this npm package in case you need to * require those files directly. Feel free to delete any files that aren't * needed. */ declare module 'eslint-plugin-promise/rules/always-return' { declare module.exports: any; } declare module 'eslint-plugin-promise/rules/avoid-new' { declare module.exports: any; } declare module 'eslint-plugin-promise/rules/catch-or-return' { declare module.exports: any; } declare module 'eslint-plugin-promise/rules/lib/has-promise-callback' { declare module.exports: any; } declare module 'eslint-plugin-promise/rules/lib/is-callback' { declare module.exports: any; } declare module 'eslint-plugin-promise/rules/lib/is-inside-callback' { declare module.exports: any; } declare module 'eslint-plugin-promise/rules/lib/is-inside-promise' { declare module.exports: any; } declare module 'eslint-plugin-promise/rules/lib/is-named-callback' { declare module.exports: any; } declare module 'eslint-plugin-promise/rules/lib/is-promise' { declare module.exports: any; } declare module 'eslint-plugin-promise/rules/no-callback-in-promise' { declare module.exports: any; } declare module 'eslint-plugin-promise/rules/no-native' { declare module.exports: any; } declare module 'eslint-plugin-promise/rules/no-nesting' { declare module.exports: any; } declare module 'eslint-plugin-promise/rules/no-promise-in-callback' { declare module.exports: any; } declare module 'eslint-plugin-promise/rules/no-return-wrap' { declare module.exports: any; } declare module 'eslint-plugin-promise/rules/param-names' { declare module.exports: any; } declare module 'eslint-plugin-promise/rules/prefer-await-to-callbacks' { declare module.exports: any; } declare module 'eslint-plugin-promise/rules/prefer-await-to-then' { declare module.exports: any; } // Filename aliases declare module 'eslint-plugin-promise/index' { declare module.exports: $Exports<'eslint-plugin-promise'>; } declare module 'eslint-plugin-promise/index.js' { declare module.exports: $Exports<'eslint-plugin-promise'>; } declare module 'eslint-plugin-promise/rules/always-return.js' { declare module.exports: $Exports<'eslint-plugin-promise/rules/always-return'>; } declare module 'eslint-plugin-promise/rules/avoid-new.js' { declare module.exports: $Exports<'eslint-plugin-promise/rules/avoid-new'>; } declare module 'eslint-plugin-promise/rules/catch-or-return.js' { declare module.exports: $Exports<'eslint-plugin-promise/rules/catch-or-return'>; } declare module 'eslint-plugin-promise/rules/lib/has-promise-callback.js' { declare module.exports: $Exports<'eslint-plugin-promise/rules/lib/has-promise-callback'>; } declare module 'eslint-plugin-promise/rules/lib/is-callback.js' { declare module.exports: $Exports<'eslint-plugin-promise/rules/lib/is-callback'>; } declare module 'eslint-plugin-promise/rules/lib/is-inside-callback.js' { declare module.exports: $Exports<'eslint-plugin-promise/rules/lib/is-inside-callback'>; } declare module 'eslint-plugin-promise/rules/lib/is-inside-promise.js' { declare module.exports: $Exports<'eslint-plugin-promise/rules/lib/is-inside-promise'>; } declare module 'eslint-plugin-promise/rules/lib/is-named-callback.js' { declare module.exports: $Exports<'eslint-plugin-promise/rules/lib/is-named-callback'>; } declare module 'eslint-plugin-promise/rules/lib/is-promise.js' { declare module.exports: $Exports<'eslint-plugin-promise/rules/lib/is-promise'>; } declare module 'eslint-plugin-promise/rules/no-callback-in-promise.js' { declare module.exports: $Exports<'eslint-plugin-promise/rules/no-callback-in-promise'>; } declare module 'eslint-plugin-promise/rules/no-native.js' { declare module.exports: $Exports<'eslint-plugin-promise/rules/no-native'>; } declare module 'eslint-plugin-promise/rules/no-nesting.js' { declare module.exports: $Exports<'eslint-plugin-promise/rules/no-nesting'>; } declare module 'eslint-plugin-promise/rules/no-promise-in-callback.js' { declare module.exports: $Exports<'eslint-plugin-promise/rules/no-promise-in-callback'>; } declare module 'eslint-plugin-promise/rules/no-return-wrap.js' { declare module.exports: $Exports<'eslint-plugin-promise/rules/no-return-wrap'>; } declare module 'eslint-plugin-promise/rules/param-names.js' { declare module.exports: $Exports<'eslint-plugin-promise/rules/param-names'>; } declare module 'eslint-plugin-promise/rules/prefer-await-to-callbacks.js' { declare module.exports: $Exports<'eslint-plugin-promise/rules/prefer-await-to-callbacks'>; } declare module 'eslint-plugin-promise/rules/prefer-await-to-then.js' { declare module.exports: $Exports<'eslint-plugin-promise/rules/prefer-await-to-then'>; } ================================================ FILE: flow-typed/npm/eslint-plugin-standard_vx.x.x.js ================================================ // flow-typed signature: 6327ffe504a28c2a1c05f1c46aa1ec71 // flow-typed version: <>/eslint-plugin-standard_v^2.0.1/flow_v0.36.0 /** * This is an autogenerated libdef stub for: * * 'eslint-plugin-standard' * * Fill this stub out by replacing all the `any` types. * * Once filled out, we encourage you to share your work with the * community by sending a pull request to: * https://github.com/flowtype/flow-typed */ declare module 'eslint-plugin-standard' { declare module.exports: any; } /** * We include stubs for each file inside this npm package in case you need to * require those files directly. Feel free to delete any files that aren't * needed. */ declare module 'eslint-plugin-standard/rules/array-bracket-even-spacing' { declare module.exports: any; } declare module 'eslint-plugin-standard/rules/computed-property-even-spacing' { declare module.exports: any; } declare module 'eslint-plugin-standard/rules/object-curly-even-spacing' { declare module.exports: any; } declare module 'eslint-plugin-standard/tests/array-bracket-even-spacing' { declare module.exports: any; } declare module 'eslint-plugin-standard/tests/computed-property-even-spacing' { declare module.exports: any; } declare module 'eslint-plugin-standard/tests/object-curly-even-spacing' { declare module.exports: any; } // Filename aliases declare module 'eslint-plugin-standard/index' { declare module.exports: $Exports<'eslint-plugin-standard'>; } declare module 'eslint-plugin-standard/index.js' { declare module.exports: $Exports<'eslint-plugin-standard'>; } declare module 'eslint-plugin-standard/rules/array-bracket-even-spacing.js' { declare module.exports: $Exports<'eslint-plugin-standard/rules/array-bracket-even-spacing'>; } declare module 'eslint-plugin-standard/rules/computed-property-even-spacing.js' { declare module.exports: $Exports<'eslint-plugin-standard/rules/computed-property-even-spacing'>; } declare module 'eslint-plugin-standard/rules/object-curly-even-spacing.js' { declare module.exports: $Exports<'eslint-plugin-standard/rules/object-curly-even-spacing'>; } declare module 'eslint-plugin-standard/tests/array-bracket-even-spacing.js' { declare module.exports: $Exports<'eslint-plugin-standard/tests/array-bracket-even-spacing'>; } declare module 'eslint-plugin-standard/tests/computed-property-even-spacing.js' { declare module.exports: $Exports<'eslint-plugin-standard/tests/computed-property-even-spacing'>; } declare module 'eslint-plugin-standard/tests/object-curly-even-spacing.js' { declare module.exports: $Exports<'eslint-plugin-standard/tests/object-curly-even-spacing'>; } ================================================ FILE: flow-typed/npm/eslint_vx.x.x.js ================================================ // flow-typed signature: 5f87357a0ad855387da13a010a5c9c1e // flow-typed version: <>/eslint_v^3.8.1/flow_v0.36.0 /** * This is an autogenerated libdef stub for: * * 'eslint' * * Fill this stub out by replacing all the `any` types. * * Once filled out, we encourage you to share your work with the * community by sending a pull request to: * https://github.com/flowtype/flow-typed */ declare module 'eslint' { declare module.exports: any; } /** * We include stubs for each file inside this npm package in case you need to * require those files directly. Feel free to delete any files that aren't * needed. */ declare module 'eslint/bin/eslint' { declare module.exports: any; } declare module 'eslint/conf/cli-options' { declare module.exports: any; } declare module 'eslint/conf/environments' { declare module.exports: any; } declare module 'eslint/conf/eslint-all' { declare module.exports: any; } declare module 'eslint/conf/eslint-recommended' { declare module.exports: any; } declare module 'eslint/lib/api' { declare module.exports: any; } declare module 'eslint/lib/ast-utils' { declare module.exports: any; } declare module 'eslint/lib/cli-engine' { declare module.exports: any; } declare module 'eslint/lib/cli' { declare module.exports: any; } declare module 'eslint/lib/code-path-analysis/code-path-analyzer' { declare module.exports: any; } declare module 'eslint/lib/code-path-analysis/code-path-segment' { declare module.exports: any; } declare module 'eslint/lib/code-path-analysis/code-path-state' { declare module.exports: any; } declare module 'eslint/lib/code-path-analysis/code-path' { declare module.exports: any; } declare module 'eslint/lib/code-path-analysis/debug-helpers' { declare module.exports: any; } declare module 'eslint/lib/code-path-analysis/fork-context' { declare module.exports: any; } declare module 'eslint/lib/code-path-analysis/id-generator' { declare module.exports: any; } declare module 'eslint/lib/config' { declare module.exports: any; } declare module 'eslint/lib/config/autoconfig' { declare module.exports: any; } declare module 'eslint/lib/config/config-file' { declare module.exports: any; } declare module 'eslint/lib/config/config-initializer' { declare module.exports: any; } declare module 'eslint/lib/config/config-ops' { declare module.exports: any; } declare module 'eslint/lib/config/config-rule' { declare module.exports: any; } declare module 'eslint/lib/config/config-validator' { declare module.exports: any; } declare module 'eslint/lib/config/environments' { declare module.exports: any; } declare module 'eslint/lib/config/plugins' { declare module.exports: any; } declare module 'eslint/lib/eslint' { declare module.exports: any; } declare module 'eslint/lib/file-finder' { declare module.exports: any; } declare module 'eslint/lib/formatters/checkstyle' { declare module.exports: any; } declare module 'eslint/lib/formatters/codeframe' { declare module.exports: any; } declare module 'eslint/lib/formatters/compact' { declare module.exports: any; } declare module 'eslint/lib/formatters/html' { declare module.exports: any; } declare module 'eslint/lib/formatters/jslint-xml' { declare module.exports: any; } declare module 'eslint/lib/formatters/json' { declare module.exports: any; } declare module 'eslint/lib/formatters/junit' { declare module.exports: any; } declare module 'eslint/lib/formatters/stylish' { declare module.exports: any; } declare module 'eslint/lib/formatters/table' { declare module.exports: any; } declare module 'eslint/lib/formatters/tap' { declare module.exports: any; } declare module 'eslint/lib/formatters/unix' { declare module.exports: any; } declare module 'eslint/lib/formatters/visualstudio' { declare module.exports: any; } declare module 'eslint/lib/ignored-paths' { declare module.exports: any; } declare module 'eslint/lib/internal-rules/internal-consistent-docs-description' { declare module.exports: any; } declare module 'eslint/lib/internal-rules/internal-no-invalid-meta' { declare module.exports: any; } declare module 'eslint/lib/load-rules' { declare module.exports: any; } declare module 'eslint/lib/logging' { declare module.exports: any; } declare module 'eslint/lib/options' { declare module.exports: any; } declare module 'eslint/lib/rule-context' { declare module.exports: any; } declare module 'eslint/lib/rules' { declare module.exports: any; } declare module 'eslint/lib/rules/accessor-pairs' { declare module.exports: any; } declare module 'eslint/lib/rules/array-bracket-spacing' { declare module.exports: any; } declare module 'eslint/lib/rules/array-callback-return' { declare module.exports: any; } declare module 'eslint/lib/rules/arrow-body-style' { declare module.exports: any; } declare module 'eslint/lib/rules/arrow-parens' { declare module.exports: any; } declare module 'eslint/lib/rules/arrow-spacing' { declare module.exports: any; } declare module 'eslint/lib/rules/block-scoped-var' { declare module.exports: any; } declare module 'eslint/lib/rules/block-spacing' { declare module.exports: any; } declare module 'eslint/lib/rules/brace-style' { declare module.exports: any; } declare module 'eslint/lib/rules/callback-return' { declare module.exports: any; } declare module 'eslint/lib/rules/camelcase' { declare module.exports: any; } declare module 'eslint/lib/rules/capitalized-comments' { declare module.exports: any; } declare module 'eslint/lib/rules/class-methods-use-this' { declare module.exports: any; } declare module 'eslint/lib/rules/comma-dangle' { declare module.exports: any; } declare module 'eslint/lib/rules/comma-spacing' { declare module.exports: any; } declare module 'eslint/lib/rules/comma-style' { declare module.exports: any; } declare module 'eslint/lib/rules/complexity' { declare module.exports: any; } declare module 'eslint/lib/rules/computed-property-spacing' { declare module.exports: any; } declare module 'eslint/lib/rules/consistent-return' { declare module.exports: any; } declare module 'eslint/lib/rules/consistent-this' { declare module.exports: any; } declare module 'eslint/lib/rules/constructor-super' { declare module.exports: any; } declare module 'eslint/lib/rules/curly' { declare module.exports: any; } declare module 'eslint/lib/rules/default-case' { declare module.exports: any; } declare module 'eslint/lib/rules/dot-location' { declare module.exports: any; } declare module 'eslint/lib/rules/dot-notation' { declare module.exports: any; } declare module 'eslint/lib/rules/eol-last' { declare module.exports: any; } declare module 'eslint/lib/rules/eqeqeq' { declare module.exports: any; } declare module 'eslint/lib/rules/func-call-spacing' { declare module.exports: any; } declare module 'eslint/lib/rules/func-name-matching' { declare module.exports: any; } declare module 'eslint/lib/rules/func-names' { declare module.exports: any; } declare module 'eslint/lib/rules/func-style' { declare module.exports: any; } declare module 'eslint/lib/rules/generator-star-spacing' { declare module.exports: any; } declare module 'eslint/lib/rules/global-require' { declare module.exports: any; } declare module 'eslint/lib/rules/guard-for-in' { declare module.exports: any; } declare module 'eslint/lib/rules/handle-callback-err' { declare module.exports: any; } declare module 'eslint/lib/rules/id-blacklist' { declare module.exports: any; } declare module 'eslint/lib/rules/id-length' { declare module.exports: any; } declare module 'eslint/lib/rules/id-match' { declare module.exports: any; } declare module 'eslint/lib/rules/indent' { declare module.exports: any; } declare module 'eslint/lib/rules/init-declarations' { declare module.exports: any; } declare module 'eslint/lib/rules/jsx-quotes' { declare module.exports: any; } declare module 'eslint/lib/rules/key-spacing' { declare module.exports: any; } declare module 'eslint/lib/rules/keyword-spacing' { declare module.exports: any; } declare module 'eslint/lib/rules/line-comment-position' { declare module.exports: any; } declare module 'eslint/lib/rules/linebreak-style' { declare module.exports: any; } declare module 'eslint/lib/rules/lines-around-comment' { declare module.exports: any; } declare module 'eslint/lib/rules/lines-around-directive' { declare module.exports: any; } declare module 'eslint/lib/rules/max-depth' { declare module.exports: any; } declare module 'eslint/lib/rules/max-len' { declare module.exports: any; } declare module 'eslint/lib/rules/max-lines' { declare module.exports: any; } declare module 'eslint/lib/rules/max-nested-callbacks' { declare module.exports: any; } declare module 'eslint/lib/rules/max-params' { declare module.exports: any; } declare module 'eslint/lib/rules/max-statements-per-line' { declare module.exports: any; } declare module 'eslint/lib/rules/max-statements' { declare module.exports: any; } declare module 'eslint/lib/rules/multiline-ternary' { declare module.exports: any; } declare module 'eslint/lib/rules/new-cap' { declare module.exports: any; } declare module 'eslint/lib/rules/new-parens' { declare module.exports: any; } declare module 'eslint/lib/rules/newline-after-var' { declare module.exports: any; } declare module 'eslint/lib/rules/newline-before-return' { declare module.exports: any; } declare module 'eslint/lib/rules/newline-per-chained-call' { declare module.exports: any; } declare module 'eslint/lib/rules/no-alert' { declare module.exports: any; } declare module 'eslint/lib/rules/no-array-constructor' { declare module.exports: any; } declare module 'eslint/lib/rules/no-await-in-loop' { declare module.exports: any; } declare module 'eslint/lib/rules/no-bitwise' { declare module.exports: any; } declare module 'eslint/lib/rules/no-caller' { declare module.exports: any; } declare module 'eslint/lib/rules/no-case-declarations' { declare module.exports: any; } declare module 'eslint/lib/rules/no-catch-shadow' { declare module.exports: any; } declare module 'eslint/lib/rules/no-class-assign' { declare module.exports: any; } declare module 'eslint/lib/rules/no-cond-assign' { declare module.exports: any; } declare module 'eslint/lib/rules/no-confusing-arrow' { declare module.exports: any; } declare module 'eslint/lib/rules/no-console' { declare module.exports: any; } declare module 'eslint/lib/rules/no-const-assign' { declare module.exports: any; } declare module 'eslint/lib/rules/no-constant-condition' { declare module.exports: any; } declare module 'eslint/lib/rules/no-continue' { declare module.exports: any; } declare module 'eslint/lib/rules/no-control-regex' { declare module.exports: any; } declare module 'eslint/lib/rules/no-debugger' { declare module.exports: any; } declare module 'eslint/lib/rules/no-delete-var' { declare module.exports: any; } declare module 'eslint/lib/rules/no-div-regex' { declare module.exports: any; } declare module 'eslint/lib/rules/no-dupe-args' { declare module.exports: any; } declare module 'eslint/lib/rules/no-dupe-class-members' { declare module.exports: any; } declare module 'eslint/lib/rules/no-dupe-keys' { declare module.exports: any; } declare module 'eslint/lib/rules/no-duplicate-case' { declare module.exports: any; } declare module 'eslint/lib/rules/no-duplicate-imports' { declare module.exports: any; } declare module 'eslint/lib/rules/no-else-return' { declare module.exports: any; } declare module 'eslint/lib/rules/no-empty-character-class' { declare module.exports: any; } declare module 'eslint/lib/rules/no-empty-function' { declare module.exports: any; } declare module 'eslint/lib/rules/no-empty-pattern' { declare module.exports: any; } declare module 'eslint/lib/rules/no-empty' { declare module.exports: any; } declare module 'eslint/lib/rules/no-eq-null' { declare module.exports: any; } declare module 'eslint/lib/rules/no-eval' { declare module.exports: any; } declare module 'eslint/lib/rules/no-ex-assign' { declare module.exports: any; } declare module 'eslint/lib/rules/no-extend-native' { declare module.exports: any; } declare module 'eslint/lib/rules/no-extra-bind' { declare module.exports: any; } declare module 'eslint/lib/rules/no-extra-boolean-cast' { declare module.exports: any; } declare module 'eslint/lib/rules/no-extra-label' { declare module.exports: any; } declare module 'eslint/lib/rules/no-extra-parens' { declare module.exports: any; } declare module 'eslint/lib/rules/no-extra-semi' { declare module.exports: any; } declare module 'eslint/lib/rules/no-fallthrough' { declare module.exports: any; } declare module 'eslint/lib/rules/no-floating-decimal' { declare module.exports: any; } declare module 'eslint/lib/rules/no-func-assign' { declare module.exports: any; } declare module 'eslint/lib/rules/no-global-assign' { declare module.exports: any; } declare module 'eslint/lib/rules/no-implicit-coercion' { declare module.exports: any; } declare module 'eslint/lib/rules/no-implicit-globals' { declare module.exports: any; } declare module 'eslint/lib/rules/no-implied-eval' { declare module.exports: any; } declare module 'eslint/lib/rules/no-inline-comments' { declare module.exports: any; } declare module 'eslint/lib/rules/no-inner-declarations' { declare module.exports: any; } declare module 'eslint/lib/rules/no-invalid-regexp' { declare module.exports: any; } declare module 'eslint/lib/rules/no-invalid-this' { declare module.exports: any; } declare module 'eslint/lib/rules/no-irregular-whitespace' { declare module.exports: any; } declare module 'eslint/lib/rules/no-iterator' { declare module.exports: any; } declare module 'eslint/lib/rules/no-label-var' { declare module.exports: any; } declare module 'eslint/lib/rules/no-labels' { declare module.exports: any; } declare module 'eslint/lib/rules/no-lone-blocks' { declare module.exports: any; } declare module 'eslint/lib/rules/no-lonely-if' { declare module.exports: any; } declare module 'eslint/lib/rules/no-loop-func' { declare module.exports: any; } declare module 'eslint/lib/rules/no-magic-numbers' { declare module.exports: any; } declare module 'eslint/lib/rules/no-mixed-operators' { declare module.exports: any; } declare module 'eslint/lib/rules/no-mixed-requires' { declare module.exports: any; } declare module 'eslint/lib/rules/no-mixed-spaces-and-tabs' { declare module.exports: any; } declare module 'eslint/lib/rules/no-multi-assign' { declare module.exports: any; } declare module 'eslint/lib/rules/no-multi-spaces' { declare module.exports: any; } declare module 'eslint/lib/rules/no-multi-str' { declare module.exports: any; } declare module 'eslint/lib/rules/no-multiple-empty-lines' { declare module.exports: any; } declare module 'eslint/lib/rules/no-native-reassign' { declare module.exports: any; } declare module 'eslint/lib/rules/no-negated-condition' { declare module.exports: any; } declare module 'eslint/lib/rules/no-negated-in-lhs' { declare module.exports: any; } declare module 'eslint/lib/rules/no-nested-ternary' { declare module.exports: any; } declare module 'eslint/lib/rules/no-new-func' { declare module.exports: any; } declare module 'eslint/lib/rules/no-new-object' { declare module.exports: any; } declare module 'eslint/lib/rules/no-new-require' { declare module.exports: any; } declare module 'eslint/lib/rules/no-new-symbol' { declare module.exports: any; } declare module 'eslint/lib/rules/no-new-wrappers' { declare module.exports: any; } declare module 'eslint/lib/rules/no-new' { declare module.exports: any; } declare module 'eslint/lib/rules/no-obj-calls' { declare module.exports: any; } declare module 'eslint/lib/rules/no-octal-escape' { declare module.exports: any; } declare module 'eslint/lib/rules/no-octal' { declare module.exports: any; } declare module 'eslint/lib/rules/no-param-reassign' { declare module.exports: any; } declare module 'eslint/lib/rules/no-path-concat' { declare module.exports: any; } declare module 'eslint/lib/rules/no-plusplus' { declare module.exports: any; } declare module 'eslint/lib/rules/no-process-env' { declare module.exports: any; } declare module 'eslint/lib/rules/no-process-exit' { declare module.exports: any; } declare module 'eslint/lib/rules/no-proto' { declare module.exports: any; } declare module 'eslint/lib/rules/no-prototype-builtins' { declare module.exports: any; } declare module 'eslint/lib/rules/no-redeclare' { declare module.exports: any; } declare module 'eslint/lib/rules/no-regex-spaces' { declare module.exports: any; } declare module 'eslint/lib/rules/no-restricted-globals' { declare module.exports: any; } declare module 'eslint/lib/rules/no-restricted-imports' { declare module.exports: any; } declare module 'eslint/lib/rules/no-restricted-modules' { declare module.exports: any; } declare module 'eslint/lib/rules/no-restricted-properties' { declare module.exports: any; } declare module 'eslint/lib/rules/no-restricted-syntax' { declare module.exports: any; } declare module 'eslint/lib/rules/no-return-assign' { declare module.exports: any; } declare module 'eslint/lib/rules/no-return-await' { declare module.exports: any; } declare module 'eslint/lib/rules/no-script-url' { declare module.exports: any; } declare module 'eslint/lib/rules/no-self-assign' { declare module.exports: any; } declare module 'eslint/lib/rules/no-self-compare' { declare module.exports: any; } declare module 'eslint/lib/rules/no-sequences' { declare module.exports: any; } declare module 'eslint/lib/rules/no-shadow-restricted-names' { declare module.exports: any; } declare module 'eslint/lib/rules/no-shadow' { declare module.exports: any; } declare module 'eslint/lib/rules/no-spaced-func' { declare module.exports: any; } declare module 'eslint/lib/rules/no-sparse-arrays' { declare module.exports: any; } declare module 'eslint/lib/rules/no-sync' { declare module.exports: any; } declare module 'eslint/lib/rules/no-tabs' { declare module.exports: any; } declare module 'eslint/lib/rules/no-template-curly-in-string' { declare module.exports: any; } declare module 'eslint/lib/rules/no-ternary' { declare module.exports: any; } declare module 'eslint/lib/rules/no-this-before-super' { declare module.exports: any; } declare module 'eslint/lib/rules/no-throw-literal' { declare module.exports: any; } declare module 'eslint/lib/rules/no-trailing-spaces' { declare module.exports: any; } declare module 'eslint/lib/rules/no-undef-init' { declare module.exports: any; } declare module 'eslint/lib/rules/no-undef' { declare module.exports: any; } declare module 'eslint/lib/rules/no-undefined' { declare module.exports: any; } declare module 'eslint/lib/rules/no-underscore-dangle' { declare module.exports: any; } declare module 'eslint/lib/rules/no-unexpected-multiline' { declare module.exports: any; } declare module 'eslint/lib/rules/no-unmodified-loop-condition' { declare module.exports: any; } declare module 'eslint/lib/rules/no-unneeded-ternary' { declare module.exports: any; } declare module 'eslint/lib/rules/no-unreachable' { declare module.exports: any; } declare module 'eslint/lib/rules/no-unsafe-finally' { declare module.exports: any; } declare module 'eslint/lib/rules/no-unsafe-negation' { declare module.exports: any; } declare module 'eslint/lib/rules/no-unused-expressions' { declare module.exports: any; } declare module 'eslint/lib/rules/no-unused-labels' { declare module.exports: any; } declare module 'eslint/lib/rules/no-unused-vars' { declare module.exports: any; } declare module 'eslint/lib/rules/no-use-before-define' { declare module.exports: any; } declare module 'eslint/lib/rules/no-useless-call' { declare module.exports: any; } declare module 'eslint/lib/rules/no-useless-computed-key' { declare module.exports: any; } declare module 'eslint/lib/rules/no-useless-concat' { declare module.exports: any; } declare module 'eslint/lib/rules/no-useless-constructor' { declare module.exports: any; } declare module 'eslint/lib/rules/no-useless-escape' { declare module.exports: any; } declare module 'eslint/lib/rules/no-useless-rename' { declare module.exports: any; } declare module 'eslint/lib/rules/no-useless-return' { declare module.exports: any; } declare module 'eslint/lib/rules/no-var' { declare module.exports: any; } declare module 'eslint/lib/rules/no-void' { declare module.exports: any; } declare module 'eslint/lib/rules/no-warning-comments' { declare module.exports: any; } declare module 'eslint/lib/rules/no-whitespace-before-property' { declare module.exports: any; } declare module 'eslint/lib/rules/no-with' { declare module.exports: any; } declare module 'eslint/lib/rules/object-curly-newline' { declare module.exports: any; } declare module 'eslint/lib/rules/object-curly-spacing' { declare module.exports: any; } declare module 'eslint/lib/rules/object-property-newline' { declare module.exports: any; } declare module 'eslint/lib/rules/object-shorthand' { declare module.exports: any; } declare module 'eslint/lib/rules/one-var-declaration-per-line' { declare module.exports: any; } declare module 'eslint/lib/rules/one-var' { declare module.exports: any; } declare module 'eslint/lib/rules/operator-assignment' { declare module.exports: any; } declare module 'eslint/lib/rules/operator-linebreak' { declare module.exports: any; } declare module 'eslint/lib/rules/padded-blocks' { declare module.exports: any; } declare module 'eslint/lib/rules/prefer-arrow-callback' { declare module.exports: any; } declare module 'eslint/lib/rules/prefer-const' { declare module.exports: any; } declare module 'eslint/lib/rules/prefer-destructuring' { declare module.exports: any; } declare module 'eslint/lib/rules/prefer-numeric-literals' { declare module.exports: any; } declare module 'eslint/lib/rules/prefer-promise-reject-errors' { declare module.exports: any; } declare module 'eslint/lib/rules/prefer-reflect' { declare module.exports: any; } declare module 'eslint/lib/rules/prefer-rest-params' { declare module.exports: any; } declare module 'eslint/lib/rules/prefer-spread' { declare module.exports: any; } declare module 'eslint/lib/rules/prefer-template' { declare module.exports: any; } declare module 'eslint/lib/rules/quote-props' { declare module.exports: any; } declare module 'eslint/lib/rules/quotes' { declare module.exports: any; } declare module 'eslint/lib/rules/radix' { declare module.exports: any; } declare module 'eslint/lib/rules/require-await' { declare module.exports: any; } declare module 'eslint/lib/rules/require-jsdoc' { declare module.exports: any; } declare module 'eslint/lib/rules/require-yield' { declare module.exports: any; } declare module 'eslint/lib/rules/rest-spread-spacing' { declare module.exports: any; } declare module 'eslint/lib/rules/semi-spacing' { declare module.exports: any; } declare module 'eslint/lib/rules/semi' { declare module.exports: any; } declare module 'eslint/lib/rules/sort-imports' { declare module.exports: any; } declare module 'eslint/lib/rules/sort-keys' { declare module.exports: any; } declare module 'eslint/lib/rules/sort-vars' { declare module.exports: any; } declare module 'eslint/lib/rules/space-before-blocks' { declare module.exports: any; } declare module 'eslint/lib/rules/space-before-function-paren' { declare module.exports: any; } declare module 'eslint/lib/rules/space-in-parens' { declare module.exports: any; } declare module 'eslint/lib/rules/space-infix-ops' { declare module.exports: any; } declare module 'eslint/lib/rules/space-unary-ops' { declare module.exports: any; } declare module 'eslint/lib/rules/spaced-comment' { declare module.exports: any; } declare module 'eslint/lib/rules/strict' { declare module.exports: any; } declare module 'eslint/lib/rules/symbol-description' { declare module.exports: any; } declare module 'eslint/lib/rules/template-curly-spacing' { declare module.exports: any; } declare module 'eslint/lib/rules/template-tag-spacing' { declare module.exports: any; } declare module 'eslint/lib/rules/unicode-bom' { declare module.exports: any; } declare module 'eslint/lib/rules/use-isnan' { declare module.exports: any; } declare module 'eslint/lib/rules/valid-jsdoc' { declare module.exports: any; } declare module 'eslint/lib/rules/valid-typeof' { declare module.exports: any; } declare module 'eslint/lib/rules/vars-on-top' { declare module.exports: any; } declare module 'eslint/lib/rules/wrap-iife' { declare module.exports: any; } declare module 'eslint/lib/rules/wrap-regex' { declare module.exports: any; } declare module 'eslint/lib/rules/yield-star-spacing' { declare module.exports: any; } declare module 'eslint/lib/rules/yoda' { declare module.exports: any; } declare module 'eslint/lib/testers/event-generator-tester' { declare module.exports: any; } declare module 'eslint/lib/testers/rule-tester' { declare module.exports: any; } declare module 'eslint/lib/timing' { declare module.exports: any; } declare module 'eslint/lib/token-store/backward-token-comment-cursor' { declare module.exports: any; } declare module 'eslint/lib/token-store/backward-token-cursor' { declare module.exports: any; } declare module 'eslint/lib/token-store/cursor' { declare module.exports: any; } declare module 'eslint/lib/token-store/cursors' { declare module.exports: any; } declare module 'eslint/lib/token-store/decorative-cursor' { declare module.exports: any; } declare module 'eslint/lib/token-store/filter-cursor' { declare module.exports: any; } declare module 'eslint/lib/token-store/forward-token-comment-cursor' { declare module.exports: any; } declare module 'eslint/lib/token-store/forward-token-cursor' { declare module.exports: any; } declare module 'eslint/lib/token-store/index' { declare module.exports: any; } declare module 'eslint/lib/token-store/limit-cursor' { declare module.exports: any; } declare module 'eslint/lib/token-store/padded-token-cursor' { declare module.exports: any; } declare module 'eslint/lib/token-store/skip-cursor' { declare module.exports: any; } declare module 'eslint/lib/token-store/utils' { declare module.exports: any; } declare module 'eslint/lib/util/comment-event-generator' { declare module.exports: any; } declare module 'eslint/lib/util/glob-util' { declare module.exports: any; } declare module 'eslint/lib/util/glob' { declare module.exports: any; } declare module 'eslint/lib/util/hash' { declare module.exports: any; } declare module 'eslint/lib/util/keywords' { declare module.exports: any; } declare module 'eslint/lib/util/module-resolver' { declare module.exports: any; } declare module 'eslint/lib/util/node-event-generator' { declare module.exports: any; } declare module 'eslint/lib/util/npm-util' { declare module.exports: any; } declare module 'eslint/lib/util/path-util' { declare module.exports: any; } declare module 'eslint/lib/util/patterns/letters' { declare module.exports: any; } declare module 'eslint/lib/util/rule-fixer' { declare module.exports: any; } declare module 'eslint/lib/util/source-code-fixer' { declare module.exports: any; } declare module 'eslint/lib/util/source-code-util' { declare module.exports: any; } declare module 'eslint/lib/util/source-code' { declare module.exports: any; } declare module 'eslint/lib/util/traverser' { declare module.exports: any; } declare module 'eslint/lib/util/xml-escape' { declare module.exports: any; } // Filename aliases declare module 'eslint/bin/eslint.js' { declare module.exports: $Exports<'eslint/bin/eslint'>; } declare module 'eslint/conf/cli-options.js' { declare module.exports: $Exports<'eslint/conf/cli-options'>; } declare module 'eslint/conf/environments.js' { declare module.exports: $Exports<'eslint/conf/environments'>; } declare module 'eslint/conf/eslint-all.js' { declare module.exports: $Exports<'eslint/conf/eslint-all'>; } declare module 'eslint/conf/eslint-recommended.js' { declare module.exports: $Exports<'eslint/conf/eslint-recommended'>; } declare module 'eslint/lib/api.js' { declare module.exports: $Exports<'eslint/lib/api'>; } declare module 'eslint/lib/ast-utils.js' { declare module.exports: $Exports<'eslint/lib/ast-utils'>; } declare module 'eslint/lib/cli-engine.js' { declare module.exports: $Exports<'eslint/lib/cli-engine'>; } declare module 'eslint/lib/cli.js' { declare module.exports: $Exports<'eslint/lib/cli'>; } declare module 'eslint/lib/code-path-analysis/code-path-analyzer.js' { declare module.exports: $Exports<'eslint/lib/code-path-analysis/code-path-analyzer'>; } declare module 'eslint/lib/code-path-analysis/code-path-segment.js' { declare module.exports: $Exports<'eslint/lib/code-path-analysis/code-path-segment'>; } declare module 'eslint/lib/code-path-analysis/code-path-state.js' { declare module.exports: $Exports<'eslint/lib/code-path-analysis/code-path-state'>; } declare module 'eslint/lib/code-path-analysis/code-path.js' { declare module.exports: $Exports<'eslint/lib/code-path-analysis/code-path'>; } declare module 'eslint/lib/code-path-analysis/debug-helpers.js' { declare module.exports: $Exports<'eslint/lib/code-path-analysis/debug-helpers'>; } declare module 'eslint/lib/code-path-analysis/fork-context.js' { declare module.exports: $Exports<'eslint/lib/code-path-analysis/fork-context'>; } declare module 'eslint/lib/code-path-analysis/id-generator.js' { declare module.exports: $Exports<'eslint/lib/code-path-analysis/id-generator'>; } declare module 'eslint/lib/config.js' { declare module.exports: $Exports<'eslint/lib/config'>; } declare module 'eslint/lib/config/autoconfig.js' { declare module.exports: $Exports<'eslint/lib/config/autoconfig'>; } declare module 'eslint/lib/config/config-file.js' { declare module.exports: $Exports<'eslint/lib/config/config-file'>; } declare module 'eslint/lib/config/config-initializer.js' { declare module.exports: $Exports<'eslint/lib/config/config-initializer'>; } declare module 'eslint/lib/config/config-ops.js' { declare module.exports: $Exports<'eslint/lib/config/config-ops'>; } declare module 'eslint/lib/config/config-rule.js' { declare module.exports: $Exports<'eslint/lib/config/config-rule'>; } declare module 'eslint/lib/config/config-validator.js' { declare module.exports: $Exports<'eslint/lib/config/config-validator'>; } declare module 'eslint/lib/config/environments.js' { declare module.exports: $Exports<'eslint/lib/config/environments'>; } declare module 'eslint/lib/config/plugins.js' { declare module.exports: $Exports<'eslint/lib/config/plugins'>; } declare module 'eslint/lib/eslint.js' { declare module.exports: $Exports<'eslint/lib/eslint'>; } declare module 'eslint/lib/file-finder.js' { declare module.exports: $Exports<'eslint/lib/file-finder'>; } declare module 'eslint/lib/formatters/checkstyle.js' { declare module.exports: $Exports<'eslint/lib/formatters/checkstyle'>; } declare module 'eslint/lib/formatters/codeframe.js' { declare module.exports: $Exports<'eslint/lib/formatters/codeframe'>; } declare module 'eslint/lib/formatters/compact.js' { declare module.exports: $Exports<'eslint/lib/formatters/compact'>; } declare module 'eslint/lib/formatters/html.js' { declare module.exports: $Exports<'eslint/lib/formatters/html'>; } declare module 'eslint/lib/formatters/jslint-xml.js' { declare module.exports: $Exports<'eslint/lib/formatters/jslint-xml'>; } declare module 'eslint/lib/formatters/json.js' { declare module.exports: $Exports<'eslint/lib/formatters/json'>; } declare module 'eslint/lib/formatters/junit.js' { declare module.exports: $Exports<'eslint/lib/formatters/junit'>; } declare module 'eslint/lib/formatters/stylish.js' { declare module.exports: $Exports<'eslint/lib/formatters/stylish'>; } declare module 'eslint/lib/formatters/table.js' { declare module.exports: $Exports<'eslint/lib/formatters/table'>; } declare module 'eslint/lib/formatters/tap.js' { declare module.exports: $Exports<'eslint/lib/formatters/tap'>; } declare module 'eslint/lib/formatters/unix.js' { declare module.exports: $Exports<'eslint/lib/formatters/unix'>; } declare module 'eslint/lib/formatters/visualstudio.js' { declare module.exports: $Exports<'eslint/lib/formatters/visualstudio'>; } declare module 'eslint/lib/ignored-paths.js' { declare module.exports: $Exports<'eslint/lib/ignored-paths'>; } declare module 'eslint/lib/internal-rules/internal-consistent-docs-description.js' { declare module.exports: $Exports<'eslint/lib/internal-rules/internal-consistent-docs-description'>; } declare module 'eslint/lib/internal-rules/internal-no-invalid-meta.js' { declare module.exports: $Exports<'eslint/lib/internal-rules/internal-no-invalid-meta'>; } declare module 'eslint/lib/load-rules.js' { declare module.exports: $Exports<'eslint/lib/load-rules'>; } declare module 'eslint/lib/logging.js' { declare module.exports: $Exports<'eslint/lib/logging'>; } declare module 'eslint/lib/options.js' { declare module.exports: $Exports<'eslint/lib/options'>; } declare module 'eslint/lib/rule-context.js' { declare module.exports: $Exports<'eslint/lib/rule-context'>; } declare module 'eslint/lib/rules.js' { declare module.exports: $Exports<'eslint/lib/rules'>; } declare module 'eslint/lib/rules/accessor-pairs.js' { declare module.exports: $Exports<'eslint/lib/rules/accessor-pairs'>; } declare module 'eslint/lib/rules/array-bracket-spacing.js' { declare module.exports: $Exports<'eslint/lib/rules/array-bracket-spacing'>; } declare module 'eslint/lib/rules/array-callback-return.js' { declare module.exports: $Exports<'eslint/lib/rules/array-callback-return'>; } declare module 'eslint/lib/rules/arrow-body-style.js' { declare module.exports: $Exports<'eslint/lib/rules/arrow-body-style'>; } declare module 'eslint/lib/rules/arrow-parens.js' { declare module.exports: $Exports<'eslint/lib/rules/arrow-parens'>; } declare module 'eslint/lib/rules/arrow-spacing.js' { declare module.exports: $Exports<'eslint/lib/rules/arrow-spacing'>; } declare module 'eslint/lib/rules/block-scoped-var.js' { declare module.exports: $Exports<'eslint/lib/rules/block-scoped-var'>; } declare module 'eslint/lib/rules/block-spacing.js' { declare module.exports: $Exports<'eslint/lib/rules/block-spacing'>; } declare module 'eslint/lib/rules/brace-style.js' { declare module.exports: $Exports<'eslint/lib/rules/brace-style'>; } declare module 'eslint/lib/rules/callback-return.js' { declare module.exports: $Exports<'eslint/lib/rules/callback-return'>; } declare module 'eslint/lib/rules/camelcase.js' { declare module.exports: $Exports<'eslint/lib/rules/camelcase'>; } declare module 'eslint/lib/rules/capitalized-comments.js' { declare module.exports: $Exports<'eslint/lib/rules/capitalized-comments'>; } declare module 'eslint/lib/rules/class-methods-use-this.js' { declare module.exports: $Exports<'eslint/lib/rules/class-methods-use-this'>; } declare module 'eslint/lib/rules/comma-dangle.js' { declare module.exports: $Exports<'eslint/lib/rules/comma-dangle'>; } declare module 'eslint/lib/rules/comma-spacing.js' { declare module.exports: $Exports<'eslint/lib/rules/comma-spacing'>; } declare module 'eslint/lib/rules/comma-style.js' { declare module.exports: $Exports<'eslint/lib/rules/comma-style'>; } declare module 'eslint/lib/rules/complexity.js' { declare module.exports: $Exports<'eslint/lib/rules/complexity'>; } declare module 'eslint/lib/rules/computed-property-spacing.js' { declare module.exports: $Exports<'eslint/lib/rules/computed-property-spacing'>; } declare module 'eslint/lib/rules/consistent-return.js' { declare module.exports: $Exports<'eslint/lib/rules/consistent-return'>; } declare module 'eslint/lib/rules/consistent-this.js' { declare module.exports: $Exports<'eslint/lib/rules/consistent-this'>; } declare module 'eslint/lib/rules/constructor-super.js' { declare module.exports: $Exports<'eslint/lib/rules/constructor-super'>; } declare module 'eslint/lib/rules/curly.js' { declare module.exports: $Exports<'eslint/lib/rules/curly'>; } declare module 'eslint/lib/rules/default-case.js' { declare module.exports: $Exports<'eslint/lib/rules/default-case'>; } declare module 'eslint/lib/rules/dot-location.js' { declare module.exports: $Exports<'eslint/lib/rules/dot-location'>; } declare module 'eslint/lib/rules/dot-notation.js' { declare module.exports: $Exports<'eslint/lib/rules/dot-notation'>; } declare module 'eslint/lib/rules/eol-last.js' { declare module.exports: $Exports<'eslint/lib/rules/eol-last'>; } declare module 'eslint/lib/rules/eqeqeq.js' { declare module.exports: $Exports<'eslint/lib/rules/eqeqeq'>; } declare module 'eslint/lib/rules/func-call-spacing.js' { declare module.exports: $Exports<'eslint/lib/rules/func-call-spacing'>; } declare module 'eslint/lib/rules/func-name-matching.js' { declare module.exports: $Exports<'eslint/lib/rules/func-name-matching'>; } declare module 'eslint/lib/rules/func-names.js' { declare module.exports: $Exports<'eslint/lib/rules/func-names'>; } declare module 'eslint/lib/rules/func-style.js' { declare module.exports: $Exports<'eslint/lib/rules/func-style'>; } declare module 'eslint/lib/rules/generator-star-spacing.js' { declare module.exports: $Exports<'eslint/lib/rules/generator-star-spacing'>; } declare module 'eslint/lib/rules/global-require.js' { declare module.exports: $Exports<'eslint/lib/rules/global-require'>; } declare module 'eslint/lib/rules/guard-for-in.js' { declare module.exports: $Exports<'eslint/lib/rules/guard-for-in'>; } declare module 'eslint/lib/rules/handle-callback-err.js' { declare module.exports: $Exports<'eslint/lib/rules/handle-callback-err'>; } declare module 'eslint/lib/rules/id-blacklist.js' { declare module.exports: $Exports<'eslint/lib/rules/id-blacklist'>; } declare module 'eslint/lib/rules/id-length.js' { declare module.exports: $Exports<'eslint/lib/rules/id-length'>; } declare module 'eslint/lib/rules/id-match.js' { declare module.exports: $Exports<'eslint/lib/rules/id-match'>; } declare module 'eslint/lib/rules/indent.js' { declare module.exports: $Exports<'eslint/lib/rules/indent'>; } declare module 'eslint/lib/rules/init-declarations.js' { declare module.exports: $Exports<'eslint/lib/rules/init-declarations'>; } declare module 'eslint/lib/rules/jsx-quotes.js' { declare module.exports: $Exports<'eslint/lib/rules/jsx-quotes'>; } declare module 'eslint/lib/rules/key-spacing.js' { declare module.exports: $Exports<'eslint/lib/rules/key-spacing'>; } declare module 'eslint/lib/rules/keyword-spacing.js' { declare module.exports: $Exports<'eslint/lib/rules/keyword-spacing'>; } declare module 'eslint/lib/rules/line-comment-position.js' { declare module.exports: $Exports<'eslint/lib/rules/line-comment-position'>; } declare module 'eslint/lib/rules/linebreak-style.js' { declare module.exports: $Exports<'eslint/lib/rules/linebreak-style'>; } declare module 'eslint/lib/rules/lines-around-comment.js' { declare module.exports: $Exports<'eslint/lib/rules/lines-around-comment'>; } declare module 'eslint/lib/rules/lines-around-directive.js' { declare module.exports: $Exports<'eslint/lib/rules/lines-around-directive'>; } declare module 'eslint/lib/rules/max-depth.js' { declare module.exports: $Exports<'eslint/lib/rules/max-depth'>; } declare module 'eslint/lib/rules/max-len.js' { declare module.exports: $Exports<'eslint/lib/rules/max-len'>; } declare module 'eslint/lib/rules/max-lines.js' { declare module.exports: $Exports<'eslint/lib/rules/max-lines'>; } declare module 'eslint/lib/rules/max-nested-callbacks.js' { declare module.exports: $Exports<'eslint/lib/rules/max-nested-callbacks'>; } declare module 'eslint/lib/rules/max-params.js' { declare module.exports: $Exports<'eslint/lib/rules/max-params'>; } declare module 'eslint/lib/rules/max-statements-per-line.js' { declare module.exports: $Exports<'eslint/lib/rules/max-statements-per-line'>; } declare module 'eslint/lib/rules/max-statements.js' { declare module.exports: $Exports<'eslint/lib/rules/max-statements'>; } declare module 'eslint/lib/rules/multiline-ternary.js' { declare module.exports: $Exports<'eslint/lib/rules/multiline-ternary'>; } declare module 'eslint/lib/rules/new-cap.js' { declare module.exports: $Exports<'eslint/lib/rules/new-cap'>; } declare module 'eslint/lib/rules/new-parens.js' { declare module.exports: $Exports<'eslint/lib/rules/new-parens'>; } declare module 'eslint/lib/rules/newline-after-var.js' { declare module.exports: $Exports<'eslint/lib/rules/newline-after-var'>; } declare module 'eslint/lib/rules/newline-before-return.js' { declare module.exports: $Exports<'eslint/lib/rules/newline-before-return'>; } declare module 'eslint/lib/rules/newline-per-chained-call.js' { declare module.exports: $Exports<'eslint/lib/rules/newline-per-chained-call'>; } declare module 'eslint/lib/rules/no-alert.js' { declare module.exports: $Exports<'eslint/lib/rules/no-alert'>; } declare module 'eslint/lib/rules/no-array-constructor.js' { declare module.exports: $Exports<'eslint/lib/rules/no-array-constructor'>; } declare module 'eslint/lib/rules/no-await-in-loop.js' { declare module.exports: $Exports<'eslint/lib/rules/no-await-in-loop'>; } declare module 'eslint/lib/rules/no-bitwise.js' { declare module.exports: $Exports<'eslint/lib/rules/no-bitwise'>; } declare module 'eslint/lib/rules/no-caller.js' { declare module.exports: $Exports<'eslint/lib/rules/no-caller'>; } declare module 'eslint/lib/rules/no-case-declarations.js' { declare module.exports: $Exports<'eslint/lib/rules/no-case-declarations'>; } declare module 'eslint/lib/rules/no-catch-shadow.js' { declare module.exports: $Exports<'eslint/lib/rules/no-catch-shadow'>; } declare module 'eslint/lib/rules/no-class-assign.js' { declare module.exports: $Exports<'eslint/lib/rules/no-class-assign'>; } declare module 'eslint/lib/rules/no-cond-assign.js' { declare module.exports: $Exports<'eslint/lib/rules/no-cond-assign'>; } declare module 'eslint/lib/rules/no-confusing-arrow.js' { declare module.exports: $Exports<'eslint/lib/rules/no-confusing-arrow'>; } declare module 'eslint/lib/rules/no-console.js' { declare module.exports: $Exports<'eslint/lib/rules/no-console'>; } declare module 'eslint/lib/rules/no-const-assign.js' { declare module.exports: $Exports<'eslint/lib/rules/no-const-assign'>; } declare module 'eslint/lib/rules/no-constant-condition.js' { declare module.exports: $Exports<'eslint/lib/rules/no-constant-condition'>; } declare module 'eslint/lib/rules/no-continue.js' { declare module.exports: $Exports<'eslint/lib/rules/no-continue'>; } declare module 'eslint/lib/rules/no-control-regex.js' { declare module.exports: $Exports<'eslint/lib/rules/no-control-regex'>; } declare module 'eslint/lib/rules/no-debugger.js' { declare module.exports: $Exports<'eslint/lib/rules/no-debugger'>; } declare module 'eslint/lib/rules/no-delete-var.js' { declare module.exports: $Exports<'eslint/lib/rules/no-delete-var'>; } declare module 'eslint/lib/rules/no-div-regex.js' { declare module.exports: $Exports<'eslint/lib/rules/no-div-regex'>; } declare module 'eslint/lib/rules/no-dupe-args.js' { declare module.exports: $Exports<'eslint/lib/rules/no-dupe-args'>; } declare module 'eslint/lib/rules/no-dupe-class-members.js' { declare module.exports: $Exports<'eslint/lib/rules/no-dupe-class-members'>; } declare module 'eslint/lib/rules/no-dupe-keys.js' { declare module.exports: $Exports<'eslint/lib/rules/no-dupe-keys'>; } declare module 'eslint/lib/rules/no-duplicate-case.js' { declare module.exports: $Exports<'eslint/lib/rules/no-duplicate-case'>; } declare module 'eslint/lib/rules/no-duplicate-imports.js' { declare module.exports: $Exports<'eslint/lib/rules/no-duplicate-imports'>; } declare module 'eslint/lib/rules/no-else-return.js' { declare module.exports: $Exports<'eslint/lib/rules/no-else-return'>; } declare module 'eslint/lib/rules/no-empty-character-class.js' { declare module.exports: $Exports<'eslint/lib/rules/no-empty-character-class'>; } declare module 'eslint/lib/rules/no-empty-function.js' { declare module.exports: $Exports<'eslint/lib/rules/no-empty-function'>; } declare module 'eslint/lib/rules/no-empty-pattern.js' { declare module.exports: $Exports<'eslint/lib/rules/no-empty-pattern'>; } declare module 'eslint/lib/rules/no-empty.js' { declare module.exports: $Exports<'eslint/lib/rules/no-empty'>; } declare module 'eslint/lib/rules/no-eq-null.js' { declare module.exports: $Exports<'eslint/lib/rules/no-eq-null'>; } declare module 'eslint/lib/rules/no-eval.js' { declare module.exports: $Exports<'eslint/lib/rules/no-eval'>; } declare module 'eslint/lib/rules/no-ex-assign.js' { declare module.exports: $Exports<'eslint/lib/rules/no-ex-assign'>; } declare module 'eslint/lib/rules/no-extend-native.js' { declare module.exports: $Exports<'eslint/lib/rules/no-extend-native'>; } declare module 'eslint/lib/rules/no-extra-bind.js' { declare module.exports: $Exports<'eslint/lib/rules/no-extra-bind'>; } declare module 'eslint/lib/rules/no-extra-boolean-cast.js' { declare module.exports: $Exports<'eslint/lib/rules/no-extra-boolean-cast'>; } declare module 'eslint/lib/rules/no-extra-label.js' { declare module.exports: $Exports<'eslint/lib/rules/no-extra-label'>; } declare module 'eslint/lib/rules/no-extra-parens.js' { declare module.exports: $Exports<'eslint/lib/rules/no-extra-parens'>; } declare module 'eslint/lib/rules/no-extra-semi.js' { declare module.exports: $Exports<'eslint/lib/rules/no-extra-semi'>; } declare module 'eslint/lib/rules/no-fallthrough.js' { declare module.exports: $Exports<'eslint/lib/rules/no-fallthrough'>; } declare module 'eslint/lib/rules/no-floating-decimal.js' { declare module.exports: $Exports<'eslint/lib/rules/no-floating-decimal'>; } declare module 'eslint/lib/rules/no-func-assign.js' { declare module.exports: $Exports<'eslint/lib/rules/no-func-assign'>; } declare module 'eslint/lib/rules/no-global-assign.js' { declare module.exports: $Exports<'eslint/lib/rules/no-global-assign'>; } declare module 'eslint/lib/rules/no-implicit-coercion.js' { declare module.exports: $Exports<'eslint/lib/rules/no-implicit-coercion'>; } declare module 'eslint/lib/rules/no-implicit-globals.js' { declare module.exports: $Exports<'eslint/lib/rules/no-implicit-globals'>; } declare module 'eslint/lib/rules/no-implied-eval.js' { declare module.exports: $Exports<'eslint/lib/rules/no-implied-eval'>; } declare module 'eslint/lib/rules/no-inline-comments.js' { declare module.exports: $Exports<'eslint/lib/rules/no-inline-comments'>; } declare module 'eslint/lib/rules/no-inner-declarations.js' { declare module.exports: $Exports<'eslint/lib/rules/no-inner-declarations'>; } declare module 'eslint/lib/rules/no-invalid-regexp.js' { declare module.exports: $Exports<'eslint/lib/rules/no-invalid-regexp'>; } declare module 'eslint/lib/rules/no-invalid-this.js' { declare module.exports: $Exports<'eslint/lib/rules/no-invalid-this'>; } declare module 'eslint/lib/rules/no-irregular-whitespace.js' { declare module.exports: $Exports<'eslint/lib/rules/no-irregular-whitespace'>; } declare module 'eslint/lib/rules/no-iterator.js' { declare module.exports: $Exports<'eslint/lib/rules/no-iterator'>; } declare module 'eslint/lib/rules/no-label-var.js' { declare module.exports: $Exports<'eslint/lib/rules/no-label-var'>; } declare module 'eslint/lib/rules/no-labels.js' { declare module.exports: $Exports<'eslint/lib/rules/no-labels'>; } declare module 'eslint/lib/rules/no-lone-blocks.js' { declare module.exports: $Exports<'eslint/lib/rules/no-lone-blocks'>; } declare module 'eslint/lib/rules/no-lonely-if.js' { declare module.exports: $Exports<'eslint/lib/rules/no-lonely-if'>; } declare module 'eslint/lib/rules/no-loop-func.js' { declare module.exports: $Exports<'eslint/lib/rules/no-loop-func'>; } declare module 'eslint/lib/rules/no-magic-numbers.js' { declare module.exports: $Exports<'eslint/lib/rules/no-magic-numbers'>; } declare module 'eslint/lib/rules/no-mixed-operators.js' { declare module.exports: $Exports<'eslint/lib/rules/no-mixed-operators'>; } declare module 'eslint/lib/rules/no-mixed-requires.js' { declare module.exports: $Exports<'eslint/lib/rules/no-mixed-requires'>; } declare module 'eslint/lib/rules/no-mixed-spaces-and-tabs.js' { declare module.exports: $Exports<'eslint/lib/rules/no-mixed-spaces-and-tabs'>; } declare module 'eslint/lib/rules/no-multi-assign.js' { declare module.exports: $Exports<'eslint/lib/rules/no-multi-assign'>; } declare module 'eslint/lib/rules/no-multi-spaces.js' { declare module.exports: $Exports<'eslint/lib/rules/no-multi-spaces'>; } declare module 'eslint/lib/rules/no-multi-str.js' { declare module.exports: $Exports<'eslint/lib/rules/no-multi-str'>; } declare module 'eslint/lib/rules/no-multiple-empty-lines.js' { declare module.exports: $Exports<'eslint/lib/rules/no-multiple-empty-lines'>; } declare module 'eslint/lib/rules/no-native-reassign.js' { declare module.exports: $Exports<'eslint/lib/rules/no-native-reassign'>; } declare module 'eslint/lib/rules/no-negated-condition.js' { declare module.exports: $Exports<'eslint/lib/rules/no-negated-condition'>; } declare module 'eslint/lib/rules/no-negated-in-lhs.js' { declare module.exports: $Exports<'eslint/lib/rules/no-negated-in-lhs'>; } declare module 'eslint/lib/rules/no-nested-ternary.js' { declare module.exports: $Exports<'eslint/lib/rules/no-nested-ternary'>; } declare module 'eslint/lib/rules/no-new-func.js' { declare module.exports: $Exports<'eslint/lib/rules/no-new-func'>; } declare module 'eslint/lib/rules/no-new-object.js' { declare module.exports: $Exports<'eslint/lib/rules/no-new-object'>; } declare module 'eslint/lib/rules/no-new-require.js' { declare module.exports: $Exports<'eslint/lib/rules/no-new-require'>; } declare module 'eslint/lib/rules/no-new-symbol.js' { declare module.exports: $Exports<'eslint/lib/rules/no-new-symbol'>; } declare module 'eslint/lib/rules/no-new-wrappers.js' { declare module.exports: $Exports<'eslint/lib/rules/no-new-wrappers'>; } declare module 'eslint/lib/rules/no-new.js' { declare module.exports: $Exports<'eslint/lib/rules/no-new'>; } declare module 'eslint/lib/rules/no-obj-calls.js' { declare module.exports: $Exports<'eslint/lib/rules/no-obj-calls'>; } declare module 'eslint/lib/rules/no-octal-escape.js' { declare module.exports: $Exports<'eslint/lib/rules/no-octal-escape'>; } declare module 'eslint/lib/rules/no-octal.js' { declare module.exports: $Exports<'eslint/lib/rules/no-octal'>; } declare module 'eslint/lib/rules/no-param-reassign.js' { declare module.exports: $Exports<'eslint/lib/rules/no-param-reassign'>; } declare module 'eslint/lib/rules/no-path-concat.js' { declare module.exports: $Exports<'eslint/lib/rules/no-path-concat'>; } declare module 'eslint/lib/rules/no-plusplus.js' { declare module.exports: $Exports<'eslint/lib/rules/no-plusplus'>; } declare module 'eslint/lib/rules/no-process-env.js' { declare module.exports: $Exports<'eslint/lib/rules/no-process-env'>; } declare module 'eslint/lib/rules/no-process-exit.js' { declare module.exports: $Exports<'eslint/lib/rules/no-process-exit'>; } declare module 'eslint/lib/rules/no-proto.js' { declare module.exports: $Exports<'eslint/lib/rules/no-proto'>; } declare module 'eslint/lib/rules/no-prototype-builtins.js' { declare module.exports: $Exports<'eslint/lib/rules/no-prototype-builtins'>; } declare module 'eslint/lib/rules/no-redeclare.js' { declare module.exports: $Exports<'eslint/lib/rules/no-redeclare'>; } declare module 'eslint/lib/rules/no-regex-spaces.js' { declare module.exports: $Exports<'eslint/lib/rules/no-regex-spaces'>; } declare module 'eslint/lib/rules/no-restricted-globals.js' { declare module.exports: $Exports<'eslint/lib/rules/no-restricted-globals'>; } declare module 'eslint/lib/rules/no-restricted-imports.js' { declare module.exports: $Exports<'eslint/lib/rules/no-restricted-imports'>; } declare module 'eslint/lib/rules/no-restricted-modules.js' { declare module.exports: $Exports<'eslint/lib/rules/no-restricted-modules'>; } declare module 'eslint/lib/rules/no-restricted-properties.js' { declare module.exports: $Exports<'eslint/lib/rules/no-restricted-properties'>; } declare module 'eslint/lib/rules/no-restricted-syntax.js' { declare module.exports: $Exports<'eslint/lib/rules/no-restricted-syntax'>; } declare module 'eslint/lib/rules/no-return-assign.js' { declare module.exports: $Exports<'eslint/lib/rules/no-return-assign'>; } declare module 'eslint/lib/rules/no-return-await.js' { declare module.exports: $Exports<'eslint/lib/rules/no-return-await'>; } declare module 'eslint/lib/rules/no-script-url.js' { declare module.exports: $Exports<'eslint/lib/rules/no-script-url'>; } declare module 'eslint/lib/rules/no-self-assign.js' { declare module.exports: $Exports<'eslint/lib/rules/no-self-assign'>; } declare module 'eslint/lib/rules/no-self-compare.js' { declare module.exports: $Exports<'eslint/lib/rules/no-self-compare'>; } declare module 'eslint/lib/rules/no-sequences.js' { declare module.exports: $Exports<'eslint/lib/rules/no-sequences'>; } declare module 'eslint/lib/rules/no-shadow-restricted-names.js' { declare module.exports: $Exports<'eslint/lib/rules/no-shadow-restricted-names'>; } declare module 'eslint/lib/rules/no-shadow.js' { declare module.exports: $Exports<'eslint/lib/rules/no-shadow'>; } declare module 'eslint/lib/rules/no-spaced-func.js' { declare module.exports: $Exports<'eslint/lib/rules/no-spaced-func'>; } declare module 'eslint/lib/rules/no-sparse-arrays.js' { declare module.exports: $Exports<'eslint/lib/rules/no-sparse-arrays'>; } declare module 'eslint/lib/rules/no-sync.js' { declare module.exports: $Exports<'eslint/lib/rules/no-sync'>; } declare module 'eslint/lib/rules/no-tabs.js' { declare module.exports: $Exports<'eslint/lib/rules/no-tabs'>; } declare module 'eslint/lib/rules/no-template-curly-in-string.js' { declare module.exports: $Exports<'eslint/lib/rules/no-template-curly-in-string'>; } declare module 'eslint/lib/rules/no-ternary.js' { declare module.exports: $Exports<'eslint/lib/rules/no-ternary'>; } declare module 'eslint/lib/rules/no-this-before-super.js' { declare module.exports: $Exports<'eslint/lib/rules/no-this-before-super'>; } declare module 'eslint/lib/rules/no-throw-literal.js' { declare module.exports: $Exports<'eslint/lib/rules/no-throw-literal'>; } declare module 'eslint/lib/rules/no-trailing-spaces.js' { declare module.exports: $Exports<'eslint/lib/rules/no-trailing-spaces'>; } declare module 'eslint/lib/rules/no-undef-init.js' { declare module.exports: $Exports<'eslint/lib/rules/no-undef-init'>; } declare module 'eslint/lib/rules/no-undef.js' { declare module.exports: $Exports<'eslint/lib/rules/no-undef'>; } declare module 'eslint/lib/rules/no-undefined.js' { declare module.exports: $Exports<'eslint/lib/rules/no-undefined'>; } declare module 'eslint/lib/rules/no-underscore-dangle.js' { declare module.exports: $Exports<'eslint/lib/rules/no-underscore-dangle'>; } declare module 'eslint/lib/rules/no-unexpected-multiline.js' { declare module.exports: $Exports<'eslint/lib/rules/no-unexpected-multiline'>; } declare module 'eslint/lib/rules/no-unmodified-loop-condition.js' { declare module.exports: $Exports<'eslint/lib/rules/no-unmodified-loop-condition'>; } declare module 'eslint/lib/rules/no-unneeded-ternary.js' { declare module.exports: $Exports<'eslint/lib/rules/no-unneeded-ternary'>; } declare module 'eslint/lib/rules/no-unreachable.js' { declare module.exports: $Exports<'eslint/lib/rules/no-unreachable'>; } declare module 'eslint/lib/rules/no-unsafe-finally.js' { declare module.exports: $Exports<'eslint/lib/rules/no-unsafe-finally'>; } declare module 'eslint/lib/rules/no-unsafe-negation.js' { declare module.exports: $Exports<'eslint/lib/rules/no-unsafe-negation'>; } declare module 'eslint/lib/rules/no-unused-expressions.js' { declare module.exports: $Exports<'eslint/lib/rules/no-unused-expressions'>; } declare module 'eslint/lib/rules/no-unused-labels.js' { declare module.exports: $Exports<'eslint/lib/rules/no-unused-labels'>; } declare module 'eslint/lib/rules/no-unused-vars.js' { declare module.exports: $Exports<'eslint/lib/rules/no-unused-vars'>; } declare module 'eslint/lib/rules/no-use-before-define.js' { declare module.exports: $Exports<'eslint/lib/rules/no-use-before-define'>; } declare module 'eslint/lib/rules/no-useless-call.js' { declare module.exports: $Exports<'eslint/lib/rules/no-useless-call'>; } declare module 'eslint/lib/rules/no-useless-computed-key.js' { declare module.exports: $Exports<'eslint/lib/rules/no-useless-computed-key'>; } declare module 'eslint/lib/rules/no-useless-concat.js' { declare module.exports: $Exports<'eslint/lib/rules/no-useless-concat'>; } declare module 'eslint/lib/rules/no-useless-constructor.js' { declare module.exports: $Exports<'eslint/lib/rules/no-useless-constructor'>; } declare module 'eslint/lib/rules/no-useless-escape.js' { declare module.exports: $Exports<'eslint/lib/rules/no-useless-escape'>; } declare module 'eslint/lib/rules/no-useless-rename.js' { declare module.exports: $Exports<'eslint/lib/rules/no-useless-rename'>; } declare module 'eslint/lib/rules/no-useless-return.js' { declare module.exports: $Exports<'eslint/lib/rules/no-useless-return'>; } declare module 'eslint/lib/rules/no-var.js' { declare module.exports: $Exports<'eslint/lib/rules/no-var'>; } declare module 'eslint/lib/rules/no-void.js' { declare module.exports: $Exports<'eslint/lib/rules/no-void'>; } declare module 'eslint/lib/rules/no-warning-comments.js' { declare module.exports: $Exports<'eslint/lib/rules/no-warning-comments'>; } declare module 'eslint/lib/rules/no-whitespace-before-property.js' { declare module.exports: $Exports<'eslint/lib/rules/no-whitespace-before-property'>; } declare module 'eslint/lib/rules/no-with.js' { declare module.exports: $Exports<'eslint/lib/rules/no-with'>; } declare module 'eslint/lib/rules/object-curly-newline.js' { declare module.exports: $Exports<'eslint/lib/rules/object-curly-newline'>; } declare module 'eslint/lib/rules/object-curly-spacing.js' { declare module.exports: $Exports<'eslint/lib/rules/object-curly-spacing'>; } declare module 'eslint/lib/rules/object-property-newline.js' { declare module.exports: $Exports<'eslint/lib/rules/object-property-newline'>; } declare module 'eslint/lib/rules/object-shorthand.js' { declare module.exports: $Exports<'eslint/lib/rules/object-shorthand'>; } declare module 'eslint/lib/rules/one-var-declaration-per-line.js' { declare module.exports: $Exports<'eslint/lib/rules/one-var-declaration-per-line'>; } declare module 'eslint/lib/rules/one-var.js' { declare module.exports: $Exports<'eslint/lib/rules/one-var'>; } declare module 'eslint/lib/rules/operator-assignment.js' { declare module.exports: $Exports<'eslint/lib/rules/operator-assignment'>; } declare module 'eslint/lib/rules/operator-linebreak.js' { declare module.exports: $Exports<'eslint/lib/rules/operator-linebreak'>; } declare module 'eslint/lib/rules/padded-blocks.js' { declare module.exports: $Exports<'eslint/lib/rules/padded-blocks'>; } declare module 'eslint/lib/rules/prefer-arrow-callback.js' { declare module.exports: $Exports<'eslint/lib/rules/prefer-arrow-callback'>; } declare module 'eslint/lib/rules/prefer-const.js' { declare module.exports: $Exports<'eslint/lib/rules/prefer-const'>; } declare module 'eslint/lib/rules/prefer-destructuring.js' { declare module.exports: $Exports<'eslint/lib/rules/prefer-destructuring'>; } declare module 'eslint/lib/rules/prefer-numeric-literals.js' { declare module.exports: $Exports<'eslint/lib/rules/prefer-numeric-literals'>; } declare module 'eslint/lib/rules/prefer-promise-reject-errors.js' { declare module.exports: $Exports<'eslint/lib/rules/prefer-promise-reject-errors'>; } declare module 'eslint/lib/rules/prefer-reflect.js' { declare module.exports: $Exports<'eslint/lib/rules/prefer-reflect'>; } declare module 'eslint/lib/rules/prefer-rest-params.js' { declare module.exports: $Exports<'eslint/lib/rules/prefer-rest-params'>; } declare module 'eslint/lib/rules/prefer-spread.js' { declare module.exports: $Exports<'eslint/lib/rules/prefer-spread'>; } declare module 'eslint/lib/rules/prefer-template.js' { declare module.exports: $Exports<'eslint/lib/rules/prefer-template'>; } declare module 'eslint/lib/rules/quote-props.js' { declare module.exports: $Exports<'eslint/lib/rules/quote-props'>; } declare module 'eslint/lib/rules/quotes.js' { declare module.exports: $Exports<'eslint/lib/rules/quotes'>; } declare module 'eslint/lib/rules/radix.js' { declare module.exports: $Exports<'eslint/lib/rules/radix'>; } declare module 'eslint/lib/rules/require-await.js' { declare module.exports: $Exports<'eslint/lib/rules/require-await'>; } declare module 'eslint/lib/rules/require-jsdoc.js' { declare module.exports: $Exports<'eslint/lib/rules/require-jsdoc'>; } declare module 'eslint/lib/rules/require-yield.js' { declare module.exports: $Exports<'eslint/lib/rules/require-yield'>; } declare module 'eslint/lib/rules/rest-spread-spacing.js' { declare module.exports: $Exports<'eslint/lib/rules/rest-spread-spacing'>; } declare module 'eslint/lib/rules/semi-spacing.js' { declare module.exports: $Exports<'eslint/lib/rules/semi-spacing'>; } declare module 'eslint/lib/rules/semi.js' { declare module.exports: $Exports<'eslint/lib/rules/semi'>; } declare module 'eslint/lib/rules/sort-imports.js' { declare module.exports: $Exports<'eslint/lib/rules/sort-imports'>; } declare module 'eslint/lib/rules/sort-keys.js' { declare module.exports: $Exports<'eslint/lib/rules/sort-keys'>; } declare module 'eslint/lib/rules/sort-vars.js' { declare module.exports: $Exports<'eslint/lib/rules/sort-vars'>; } declare module 'eslint/lib/rules/space-before-blocks.js' { declare module.exports: $Exports<'eslint/lib/rules/space-before-blocks'>; } declare module 'eslint/lib/rules/space-before-function-paren.js' { declare module.exports: $Exports<'eslint/lib/rules/space-before-function-paren'>; } declare module 'eslint/lib/rules/space-in-parens.js' { declare module.exports: $Exports<'eslint/lib/rules/space-in-parens'>; } declare module 'eslint/lib/rules/space-infix-ops.js' { declare module.exports: $Exports<'eslint/lib/rules/space-infix-ops'>; } declare module 'eslint/lib/rules/space-unary-ops.js' { declare module.exports: $Exports<'eslint/lib/rules/space-unary-ops'>; } declare module 'eslint/lib/rules/spaced-comment.js' { declare module.exports: $Exports<'eslint/lib/rules/spaced-comment'>; } declare module 'eslint/lib/rules/strict.js' { declare module.exports: $Exports<'eslint/lib/rules/strict'>; } declare module 'eslint/lib/rules/symbol-description.js' { declare module.exports: $Exports<'eslint/lib/rules/symbol-description'>; } declare module 'eslint/lib/rules/template-curly-spacing.js' { declare module.exports: $Exports<'eslint/lib/rules/template-curly-spacing'>; } declare module 'eslint/lib/rules/template-tag-spacing.js' { declare module.exports: $Exports<'eslint/lib/rules/template-tag-spacing'>; } declare module 'eslint/lib/rules/unicode-bom.js' { declare module.exports: $Exports<'eslint/lib/rules/unicode-bom'>; } declare module 'eslint/lib/rules/use-isnan.js' { declare module.exports: $Exports<'eslint/lib/rules/use-isnan'>; } declare module 'eslint/lib/rules/valid-jsdoc.js' { declare module.exports: $Exports<'eslint/lib/rules/valid-jsdoc'>; } declare module 'eslint/lib/rules/valid-typeof.js' { declare module.exports: $Exports<'eslint/lib/rules/valid-typeof'>; } declare module 'eslint/lib/rules/vars-on-top.js' { declare module.exports: $Exports<'eslint/lib/rules/vars-on-top'>; } declare module 'eslint/lib/rules/wrap-iife.js' { declare module.exports: $Exports<'eslint/lib/rules/wrap-iife'>; } declare module 'eslint/lib/rules/wrap-regex.js' { declare module.exports: $Exports<'eslint/lib/rules/wrap-regex'>; } declare module 'eslint/lib/rules/yield-star-spacing.js' { declare module.exports: $Exports<'eslint/lib/rules/yield-star-spacing'>; } declare module 'eslint/lib/rules/yoda.js' { declare module.exports: $Exports<'eslint/lib/rules/yoda'>; } declare module 'eslint/lib/testers/event-generator-tester.js' { declare module.exports: $Exports<'eslint/lib/testers/event-generator-tester'>; } declare module 'eslint/lib/testers/rule-tester.js' { declare module.exports: $Exports<'eslint/lib/testers/rule-tester'>; } declare module 'eslint/lib/timing.js' { declare module.exports: $Exports<'eslint/lib/timing'>; } declare module 'eslint/lib/token-store/backward-token-comment-cursor.js' { declare module.exports: $Exports<'eslint/lib/token-store/backward-token-comment-cursor'>; } declare module 'eslint/lib/token-store/backward-token-cursor.js' { declare module.exports: $Exports<'eslint/lib/token-store/backward-token-cursor'>; } declare module 'eslint/lib/token-store/cursor.js' { declare module.exports: $Exports<'eslint/lib/token-store/cursor'>; } declare module 'eslint/lib/token-store/cursors.js' { declare module.exports: $Exports<'eslint/lib/token-store/cursors'>; } declare module 'eslint/lib/token-store/decorative-cursor.js' { declare module.exports: $Exports<'eslint/lib/token-store/decorative-cursor'>; } declare module 'eslint/lib/token-store/filter-cursor.js' { declare module.exports: $Exports<'eslint/lib/token-store/filter-cursor'>; } declare module 'eslint/lib/token-store/forward-token-comment-cursor.js' { declare module.exports: $Exports<'eslint/lib/token-store/forward-token-comment-cursor'>; } declare module 'eslint/lib/token-store/forward-token-cursor.js' { declare module.exports: $Exports<'eslint/lib/token-store/forward-token-cursor'>; } declare module 'eslint/lib/token-store/index.js' { declare module.exports: $Exports<'eslint/lib/token-store/index'>; } declare module 'eslint/lib/token-store/limit-cursor.js' { declare module.exports: $Exports<'eslint/lib/token-store/limit-cursor'>; } declare module 'eslint/lib/token-store/padded-token-cursor.js' { declare module.exports: $Exports<'eslint/lib/token-store/padded-token-cursor'>; } declare module 'eslint/lib/token-store/skip-cursor.js' { declare module.exports: $Exports<'eslint/lib/token-store/skip-cursor'>; } declare module 'eslint/lib/token-store/utils.js' { declare module.exports: $Exports<'eslint/lib/token-store/utils'>; } declare module 'eslint/lib/util/comment-event-generator.js' { declare module.exports: $Exports<'eslint/lib/util/comment-event-generator'>; } declare module 'eslint/lib/util/glob-util.js' { declare module.exports: $Exports<'eslint/lib/util/glob-util'>; } declare module 'eslint/lib/util/glob.js' { declare module.exports: $Exports<'eslint/lib/util/glob'>; } declare module 'eslint/lib/util/hash.js' { declare module.exports: $Exports<'eslint/lib/util/hash'>; } declare module 'eslint/lib/util/keywords.js' { declare module.exports: $Exports<'eslint/lib/util/keywords'>; } declare module 'eslint/lib/util/module-resolver.js' { declare module.exports: $Exports<'eslint/lib/util/module-resolver'>; } declare module 'eslint/lib/util/node-event-generator.js' { declare module.exports: $Exports<'eslint/lib/util/node-event-generator'>; } declare module 'eslint/lib/util/npm-util.js' { declare module.exports: $Exports<'eslint/lib/util/npm-util'>; } declare module 'eslint/lib/util/path-util.js' { declare module.exports: $Exports<'eslint/lib/util/path-util'>; } declare module 'eslint/lib/util/patterns/letters.js' { declare module.exports: $Exports<'eslint/lib/util/patterns/letters'>; } declare module 'eslint/lib/util/rule-fixer.js' { declare module.exports: $Exports<'eslint/lib/util/rule-fixer'>; } declare module 'eslint/lib/util/source-code-fixer.js' { declare module.exports: $Exports<'eslint/lib/util/source-code-fixer'>; } declare module 'eslint/lib/util/source-code-util.js' { declare module.exports: $Exports<'eslint/lib/util/source-code-util'>; } declare module 'eslint/lib/util/source-code.js' { declare module.exports: $Exports<'eslint/lib/util/source-code'>; } declare module 'eslint/lib/util/traverser.js' { declare module.exports: $Exports<'eslint/lib/util/traverser'>; } declare module 'eslint/lib/util/xml-escape.js' { declare module.exports: $Exports<'eslint/lib/util/xml-escape'>; } ================================================ FILE: flow-typed/npm/flow-bin_v0.x.x.js ================================================ // flow-typed signature: 6a5610678d4b01e13bbfbbc62bdaf583 // flow-typed version: 3817bc6980/flow-bin_v0.x.x/flow_>=v0.25.x declare module "flow-bin" { declare module.exports: string; } ================================================ FILE: flow-typed/npm/gonzales-pe_vx.x.x.js ================================================ // flow-typed signature: 750b2d64f194658ee7d5900e8c71c6dd // flow-typed version: <>/gonzales-pe_v^4.0.3/flow_v0.36.0 /** * This is an autogenerated libdef stub for: * * 'gonzales-pe' * * Fill this stub out by replacing all the `any` types. * * Once filled out, we encourage you to share your work with the * community by sending a pull request to: * https://github.com/flowtype/flow-typed */ declare module 'gonzales-pe' { declare module.exports: any; } /** * We include stubs for each file inside this npm package in case you need to * require those files directly. Feel free to delete any files that aren't * needed. */ declare module 'gonzales-pe/bin/gonzales' { declare module.exports: any; } declare module 'gonzales-pe/lib/gonzales' { declare module.exports: any; } declare module 'gonzales-pe/webpack.config' { declare module.exports: any; } // Filename aliases declare module 'gonzales-pe/bin/gonzales.js' { declare module.exports: $Exports<'gonzales-pe/bin/gonzales'>; } declare module 'gonzales-pe/lib/gonzales.js' { declare module.exports: $Exports<'gonzales-pe/lib/gonzales'>; } declare module 'gonzales-pe/webpack.config.js' { declare module.exports: $Exports<'gonzales-pe/webpack.config'>; } ================================================ FILE: flow-typed/npm/lodash_v4.x.x.js ================================================ // flow-typed signature: f0ca92a5557e6def26ab8132bc2ae10f // flow-typed version: 12af8270f6/lodash_v4.x.x/flow_>=v0.28.x_<=v0.37.x declare module 'lodash' { declare type TemplateSettings = { escape?: RegExp, evaluate?: RegExp, imports?: Object, interpolate?: RegExp, variable?: string, }; declare type TruncateOptions = { length?: number, omission?: string, separator?: RegExp|string, }; declare type DebounceOptions = { leading?: bool, maxWait?: number, trailing?: bool, }; declare type ThrottleOptions = { leading?: bool, trailing?: bool, }; declare type NestedArray = Array>; declare type matchesIterateeShorthand = Object; declare type matchesPropertyIterateeShorthand = [string, any]; declare type propertyIterateeShorthand = string; declare type OPredicate = | ((value: A, key: string, object: O) => any) | matchesIterateeShorthand | matchesPropertyIterateeShorthand | propertyIterateeShorthand; declare type OIterateeWithResult = Object|string|((value: V, key: string, object: O) => R); declare type OIteratee = OIterateeWithResult; declare type OFlatMapIteratee = OIterateeWithResult>; declare type Predicate = | ((value: T, index: number, array: Array) => any) | matchesIterateeShorthand | matchesPropertyIterateeShorthand | propertyIterateeShorthand; declare type _Iteratee = (item: T, index: number, array: ?Array) => mixed; declare type Iteratee = _Iteratee|Object|string; declare type Iteratee2 = ((item: T, index: number, array: ?Array) => U)|Object|string; declare type FlatMapIteratee = ((item: T, index: number, array: ?Array) => Array)|Object|string; declare type Comparator = (item: T, item2: T) => bool; declare type MapIterator = | ((item: T, index: number, array: Array) => U) | propertyIterateeShorthand; declare type OMapIterator = | ((item: T, key: string, object: O) => U) | propertyIterateeShorthand; declare class Lodash { // Array chunk(array: ?Array, size?: number): Array>; compact(array: Array): Array; concat(base: Array, ...elements: Array): Array; difference(array: ?Array, values?: Array): Array; differenceBy(array: ?Array, values: Array, iteratee: Iteratee): T[]; differenceWith(array: T[], values: T[], comparator?: Comparator): T[]; drop(array: ?Array, n?: number): Array; dropRight(array: ?Array, n?: number): Array; dropRightWhile(array: ?Array, predicate?: Predicate): Array; dropWhile(array: ?Array, predicate?: Predicate): Array; fill(array: ?Array, value: U, start?: number, end?: number): Array; findIndex(array: ?Array, predicate?: Predicate): number; findLastIndex(array: ?Array, predicate?: Predicate): number; // alias of _.head first(array: ?Array): T; flatten(array: Array|X>): Array; flattenDeep(array: any[]): Array; flattenDepth(array: any[], depth?: number): any[]; fromPairs(pairs: Array): Object; head(array: ?Array): T; indexOf(array: ?Array, value: T, fromIndex?: number): number; initial(array: ?Array): Array; intersection(...arrays: Array>): Array; //Workaround until (...parameter: T, parameter2: U) works intersectionBy(a1: Array, iteratee?: Iteratee): Array; intersectionBy(a1: Array, a2: Array, iteratee?: Iteratee): Array; intersectionBy(a1: Array, a2: Array, a3: Array, iteratee?: Iteratee): Array; intersectionBy(a1: Array, a2: Array, a3: Array, a4: Array, iteratee?: Iteratee): Array; //Workaround until (...parameter: T, parameter2: U) works intersectionWith(a1: Array, comparator: Comparator): Array; intersectionWith(a1: Array, a2: Array, comparator: Comparator): Array; intersectionWith(a1: Array, a2: Array, a3: Array, comparator: Comparator): Array; intersectionWith(a1: Array, a2: Array, a3: Array, a4: Array, comparator: Comparator): Array; join(array: ?Array, separator?: string): string; last(array: ?Array): T; lastIndexOf(array: ?Array, value: T, fromIndex?: number): number; nth(array: T[], n?: number): T; pull(array: ?Array, ...values?: Array): Array; pullAll(array: ?Array, values: Array): Array; pullAllBy(array: ?Array, values: Array, iteratee?: Iteratee): Array; pullAllWith(array?: T[], values: T[], comparator?: Function): T[]; pullAt(array: ?Array, ...indexed?: Array): Array; pullAt(array: ?Array, indexed?: Array): Array; remove(array: ?Array, predicate?: Predicate): Array; reverse(array: ?Array): Array; slice(array: ?Array, start?: number, end?: number): Array; sortedIndex(array: ?Array, value: T): number; sortedIndexBy(array: ?Array, value: T, iteratee?: Iteratee): number; sortedIndexOf(array: ?Array, value: T): number; sortedLastIndex(array: ?Array, value: T): number; sortedLastIndexBy(array: ?Array, value: T, iteratee?: Iteratee): number; sortedLastIndexOf(array: ?Array, value: T): number; sortedUniq(array: ?Array): Array; sortedUniqBy(array: ?Array, iteratee?: (value: T) => mixed): Array; tail(array: ?Array): Array; take(array: ?Array, n?: number): Array; takeRight(array: ?Array, n?: number): Array; takeRightWhile(array: ?Array, predicate?: Predicate): Array; takeWhile(array: ?Array, predicate?: Predicate): Array; union(...arrays?: Array>): Array; //Workaround until (...parameter: T, parameter2: U) works unionBy(a1: Array, iteratee?: Iteratee): Array; unionBy(a1: Array, a2: Array, iteratee?: Iteratee): Array; unionBy(a1: Array, a2: Array, a3: Array, iteratee?: Iteratee): Array; unionBy(a1: Array, a2: Array, a3: Array, a4: Array, iteratee?: Iteratee): Array; //Workaround until (...parameter: T, parameter2: U) works unionWith(a1: Array, comparator?: Comparator): Array; unionWith(a1: Array, a2: Array, comparator?: Comparator): Array; unionWith(a1: Array, a2: Array, a3: Array, comparator?: Comparator): Array; unionWith(a1: Array, a2: Array, a3: Array, a4: Array, comparator?: Comparator): Array; uniq(array: ?Array): Array; uniqBy(array: ?Array, iteratee?: Iteratee): Array; uniqWith(array: ?Array, comparator?: Comparator): Array; unzip(array: ?Array): Array; unzipWith(array: ?Array, iteratee?: Iteratee): Array; without(array: ?Array, ...values?: Array): Array; xor(...array: Array>): Array; //Workaround until (...parameter: T, parameter2: U) works xorBy(a1: Array, iteratee?: Iteratee): Array; xorBy(a1: Array, a2: Array, iteratee?: Iteratee): Array; xorBy(a1: Array, a2: Array, a3: Array, iteratee?: Iteratee): Array; xorBy(a1: Array, a2: Array, a3: Array, a4: Array, iteratee?: Iteratee): Array; //Workaround until (...parameter: T, parameter2: U) works xorWith(a1: Array, comparator?: Comparator): Array; xorWith(a1: Array, a2: Array, comparator?: Comparator): Array; xorWith(a1: Array, a2: Array, a3: Array, comparator?: Comparator): Array; xorWith(a1: Array, a2: Array, a3: Array, a4: Array, comparator?: Comparator): Array; zip(a1: A[], a2: B[]): Array<[A, B]>; zip(a1: A[], a2: B[], a3: C[]): Array<[A, B, C]>; zip(a1: A[], a2: B[], a3: C[], a4: D[]): Array<[A, B, C, D]>; zip(a1: A[], a2: B[], a3: C[], a4: D[], a5: E[]): Array<[A, B, C, D, E]>; zipObject(props?: Array, values?: Array): Object; zipObjectDeep(props?: any[], values?: any): Object; //Workaround until (...parameter: T, parameter2: U) works zipWith(a1: NestedArray, iteratee?: Iteratee): Array; zipWith(a1: NestedArray, a2: NestedArray, iteratee?: Iteratee): Array; zipWith(a1: NestedArray, a2: NestedArray, a3: NestedArray, iteratee?: Iteratee): Array; zipWith(a1: NestedArray, a2: NestedArray, a3: NestedArray, a4: NestedArray, iteratee?: Iteratee): Array; // Collection countBy(array: ?Array, iteratee?: Iteratee): Object; countBy(object: T, iteratee?: OIteratee): Object; // alias of _.forEach each(array: ?Array, iteratee?: Iteratee): Array; each(object: T, iteratee?: OIteratee): T; // alias of _.forEachRight eachRight(array: ?Array, iteratee?: Iteratee): Array; eachRight(object: T, iteratee?: OIteratee): T; every(array: ?Array, iteratee?: Iteratee): bool; every(object: T, iteratee?: OIteratee): bool; filter(array: ?Array, predicate?: Predicate): Array; filter(object: T, predicate?: OPredicate): Array; find(array: ?Array, predicate?: Predicate): T; find(object: T, predicate?: OPredicate): V; findLast(array: ?Array, predicate?: Predicate): T; findLast(object: T, predicate?: OPredicate): V; flatMap(array: ?Array, iteratee?: FlatMapIteratee): Array; flatMap(object: T, iteratee?: OFlatMapIteratee): Array; flatMapDeep(array: ?Array, iteratee?: FlatMapIteratee): Array; flatMapDeep(object: T, iteratee?: OFlatMapIteratee): Array; flatMapDepth(array: ?Array, iteratee?: FlatMapIteratee, depth?: number): Array; flatMapDepth(object: T, iteratee?: OFlatMapIteratee, depth?: number): Array; forEach(array: ?Array, iteratee?: Iteratee): Array; forEach(object: T, iteratee?: OIteratee): T; forEachRight(array: ?Array, iteratee?: Iteratee): Array; forEachRight(object: T, iteratee?: OIteratee): T; groupBy(array: ?Array, iteratee?: Iteratee): Object; groupBy(object: T, iteratee?: OIteratee): Object; includes(array: ?Array, value: T, fromIndex?: number): bool; includes(object: T, value: any, fromIndex?: number): bool; includes(str: string, value: string, fromIndex?: number): bool; invokeMap(array: ?Array, path: ((value: T) => Array|string)|Array|string, ...args?: Array): Array; invokeMap(object: T, path: ((value: any) => Array|string)|Array|string, ...args?: Array): Array; keyBy(array: ?Array, iteratee?: Iteratee2): {[key: V]: T}; keyBy(object: T, iteratee?: OIteratee): Object; map(array: ?Array, iteratee?: MapIterator): Array; map(object: ?T, iteratee?: OMapIterator): Array; map(str: ?string, iteratee?: (char: string, index: number, str: string) => any): string; orderBy(array: ?Array, iteratees?: Array>|string, orders?: Array<'asc'|'desc'>|string): Array; orderBy(object: T, iteratees?: Array>|string, orders?: Array<'asc'|'desc'>|string): Array; partition(array: ?Array, predicate?: Predicate): NestedArray; partition(object: T, predicate?: OPredicate): NestedArray; reduce(array: ?Array, iteratee?: (accumulator: U, value: T, index: number, array: ?Array) => U, accumulator?: U): U; reduce(object: T, iteratee?: (accumulator: U, value: any, key: string, object: T) => U, accumulator?: U): U; reduceRight(array: ?Array, iteratee?: (accumulator: U, value: T, index: number, array: ?Array) => U, accumulator?: U): U; reduceRight(object: T, iteratee?: (accumulator: U, value: any, key: string, object: T) => U, accumulator?: U): U; reject(array: ?Array, predicate?: Predicate): Array; reject(object: T, predicate?: OPredicate): Array; sample(array: ?Array): T; sample(object: T): V; sampleSize(array: ?Array, n?: number): Array; sampleSize(object: T, n?: number): Array; shuffle(array: ?Array): Array; shuffle(object: T): Array; size(collection: Array|Object): number; some(array: ?Array, predicate?: Predicate): bool; some(object?: ?T, predicate?: OPredicate): bool; sortBy(array: ?Array, ...iteratees?: Array>): Array; sortBy(array: ?Array, iteratees?: Array>): Array; sortBy(object: T, ...iteratees?: Array>): Array; sortBy(object: T, iteratees?: Array>): Array; // Date now(): number; // Function after(n: number, fn: Function): Function; ary(func: Function, n?: number): Function; before(n: number, fn: Function): Function; bind(func: Function, thisArg: any, ...partials: Array): Function; bindKey(obj: Object, key: string, ...partials: Array): Function; curry(func: Function, arity?: number): Function; curryRight(func: Function, arity?: number): Function; debounce(func: Function, wait?: number, options?: DebounceOptions): Function; defer(func: Function, ...args?: Array): number; delay(func: Function, wait: number, ...args?: Array): number; flip(func: Function): Function; memoize(func: Function, resolver?: Function): Function; negate(predicate: Function): Function; once(func: Function): Function; overArgs(func: Function, ...transforms: Array): Function; overArgs(func: Function, transforms: Array): Function; partial(func: Function, ...partials: any[]): Function; partialRight(func: Function, ...partials: Array): Function; partialRight(func: Function, partials: Array): Function; rearg(func: Function, ...indexes: Array): Function; rearg(func: Function, indexes: Array): Function; rest(func: Function, start?: number): Function; spread(func: Function): Function; throttle(func: Function, wait?: number, options?: ThrottleOptions): Function; unary(func: Function): Function; wrap(value: any, wrapper: Function): Function; // Lang castArray(value: *): any[]; clone(value: T): T; cloneDeep(value: T): T; cloneDeepWith(value: T, customizer?: ?(value: T, key: number|string, object: T, stack: any) => U): U; cloneWith(value: T, customizer?: ?(value: T, key: number|string, object: T, stack: any) => U): U; conformsTo(source: T, predicates: T&{[key:string]:(x:any)=>boolean}): boolean; eq(value: any, other: any): bool; gt(value: any, other: any): bool; gte(value: any, other: any): bool; isArguments(value: any): bool; isArray(value: any): bool; isArrayBuffer(value: any): bool; isArrayLike(value: any): bool; isArrayLikeObject(value: any): bool; isBoolean(value: any): bool; isBuffer(value: any): bool; isDate(value: any): bool; isElement(value: any): bool; isEmpty(value: any): bool; isEqual(value: any, other: any): bool; isEqualWith(value: T, other: U, customizer?: (objValue: any, otherValue: any, key: number|string, object: T, other: U, stack: any) => bool|void): bool; isError(value: any): bool; isFinite(value: any): bool; isFunction(value: Function): true; isFunction(value: number|string|void|null|Object): false; isInteger(value: any): bool; isLength(value: any): bool; isMap(value: any): bool; isMatch(object?: ?Object, source: Object): bool; isMatchWith(object: T, source: U, customizer?: (objValue: any, srcValue: any, key: number|string, object: T, source: U) => bool|void): bool; isNaN(value: any): bool; isNative(value: any): bool; isNil(value: any): bool; isNull(value: any): bool; isNumber(value: any): bool; isObject(value: any): bool; isObjectLike(value: any): bool; isPlainObject(value: any): bool; isRegExp(value: any): bool; isSafeInteger(value: any): bool; isSet(value: any): bool; isString(value: string): true; isString(value: number|Function|void|null|Object|Array): false; isSymbol(value: any): bool; isTypedArray(value: any): bool; isUndefined(value: any): bool; isWeakMap(value: any): bool; isWeakSet(value: any): bool; lt(value: any, other: any): bool; lte(value: any, other: any): bool; toArray(value: any): Array; toFinite(value: any): number; toInteger(value: any): number; toLength(value: any): number; toNumber(value: any): number; toPlainObject(value: any): Object; toSafeInteger(value: any): number; toString(value: any): string; // Math add(augend: number, addend: number): number; ceil(number: number, precision?: number): number; divide(dividend: number, divisor: number): number; floor(number: number, precision?: number): number; max(array: ?Array): T; maxBy(array: ?Array, iteratee?: Iteratee): T; mean(array: Array<*>): number; meanBy(array: Array, iteratee?: Iteratee): number; min(array: ?Array): T; minBy(array: ?Array, iteratee?: Iteratee): T; multiply(multiplier: number, multiplicand: number): number; round(number: number, precision?: number): number; subtract(minuend: number, subtrahend: number): number; sum(array: Array<*>): number; sumBy(array: Array, iteratee?: Iteratee): number; // number clamp(number: number, lower?: number, upper: number): number; inRange(number: number, start?: number, end: number): bool; random(lower?: number, upper?: number, floating?: bool): number; // Object assign(object?: ?Object, ...sources?: Array): Object; assignIn(a: A, b: B): A & B; assignIn(a: A, b: B, c: C): A & B & C; assignIn(a: A, b: B, c: C, d: D): A & B & C & D; assignIn(a: A, b: B, c: C, d: D, e: E): A & B & C & D & E; assignInWith(object: T, s1: A, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A) => any|void): Object; assignInWith(object: T, s1: A, s2: B, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A|B) => any|void): Object; assignInWith(object: T, s1: A, s2: B, s3: C, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A|B|C) => any|void): Object; assignInWith(object: T, s1: A, s2: B, s3: C, s4: D, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A|B|C|D) => any|void): Object; assignWith(object: T, s1: A, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A) => any|void): Object; assignWith(object: T, s1: A, s2: B, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A|B) => any|void): Object; assignWith(object: T, s1: A, s2: B, s3: C, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A|B|C) => any|void): Object; assignWith(object: T, s1: A, s2: B, s3: C, s4: D, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A|B|C|D) => any|void): Object; at(object?: ?Object, ...paths: Array): Array; at(object?: ?Object, paths: Array): Array; create(prototype: T, properties?: Object): $Supertype; defaults(object?: ?Object, ...sources?: Array): Object; defaultsDeep(object?: ?Object, ...sources?: Array): Object; // alias for _.toPairs entries(object?: ?Object): NestedArray; // alias for _.toPairsIn entriesIn(object?: ?Object): NestedArray; // alias for _.assignIn extend(a: A, b: B): A & B; extend(a: A, b: B, c: C): A & B & C; extend(a: A, b: B, c: C, d: D): A & B & C & D; extend(a: A, b: B, c: C, d: D, e: E): A & B & C & D & E; // alias for _.assignInWith extendWith(object: T, s1: A, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A) => any|void): Object; extendWith(object: T, s1: A, s2: B, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A|B) => any|void): Object; extendWith(object: T, s1: A, s2: B, s3: C, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A|B|C) => any|void): Object; extendWith(object: T, s1: A, s2: B, s3: C, s4: D, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A|B|C|D) => any|void): Object; findKey(object?: ?T, predicate?: OPredicate): string|void; findLastKey(object?: ?T, predicate?: OPredicate): string|void; forIn(object?: ?Object, iteratee?: OIteratee<*>): Object; forInRight(object?: ?Object, iteratee?: OIteratee<*>): Object; forOwn(object?: ?Object, iteratee?: OIteratee<*>): Object; forOwnRight(object?: ?Object, iteratee?: OIteratee<*>): Object; functions(object?: ?Object): Array; functionsIn(object?: ?Object): Array; get(object?: ?Object, path?: ?Array|string, defaultValue?: any): any; has(object?: ?Object, path?: ?Array|string): bool; hasIn(object?: ?Object, path?: ?Array|string): bool; invert(object?: ?Object, multiVal?: bool): Object; invertBy(object: ?Object, iteratee?: Function): Object; invoke(object?: ?Object, path?: ?Array|string, ...args?: Array): any; keys(object?: ?Object): Array; keysIn(object?: ?Object): Array; mapKeys(object?: ?Object, iteratee?: OIteratee<*>): Object; mapValues(object?: ?Object, iteratee?: OIteratee<*>): Object; merge(object?: ?Object, ...sources?: Array): Object; mergeWith(object: T, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A) => any|void): Object; mergeWith(object: T, s1: A, s2: B, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A|B) => any|void): Object; mergeWith(object: T, s1: A, s2: B, s3: C, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A|B|C) => any|void): Object; mergeWith(object: T, s1: A, s2: B, s3: C, s4: D, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A|B|C|D) => any|void): Object; omit(object?: ?Object, ...props: Array): Object; omit(object?: ?Object, props: Array): Object; omitBy(object?: ?T, predicate?: OPredicate): Object; pick(object?: ?Object, ...props: Array): Object; pick(object?: ?Object, props: Array): Object; pickBy(object?: ?T, predicate?: OPredicate): Object; result(object?: ?Object, path?: ?Array|string, defaultValue?: any): any; set(object?: ?Object, path?: ?Array|string, value: any): Object; setWith(object: T, path?: ?Array|string, value: any, customizer?: (nsValue: any, key: string, nsObject: T) => any): Object; toPairs(object?: ?Object|Array<*>): NestedArray; toPairsIn(object?: ?Object): NestedArray; transform(collection: Object|Array, iteratee?: OIteratee<*>, accumulator?: any): any; unset(object?: ?Object, path?: ?Array|string): bool; update(object: Object, path: string[]|string, updater: Function): Object; updateWith(object: Object, path: string[]|string, updater: Function, customizer?: Function): Object; values(object?: ?Object): Array; valuesIn(object?: ?Object): Array; // Seq // harder to read, but this is _() (value: any): any; chain(value: T): any; tap(value: T, interceptor: (value:T)=>any): T; thru(value: T1, interceptor: (value:T1)=>T2): T2; // TODO: _.prototype.* // String camelCase(string?: ?string): string; capitalize(string?: string): string; deburr(string?: string): string; endsWith(string?: string, target?: string, position?: number): bool; escape(string?: string): string; escapeRegExp(string?: string): string; kebabCase(string?: string): string; lowerCase(string?: string): string; lowerFirst(string?: string): string; pad(string?: string, length?: number, chars?: string): string; padEnd(string?: string, length?: number, chars?: string): string; padStart(string?: string, length?: number, chars?: string): string; parseInt(string: string, radix?: number): number; repeat(string?: string, n?: number): string; replace(string?: string, pattern: RegExp|string, replacement: ((string: string) => string)|string): string; snakeCase(string?: string): string; split(string?: string, separator: RegExp|string, limit?: number): Array; startCase(string?: string): string; startsWith(string?: string, target?: string, position?: number): bool; template(string?: string, options?: TemplateSettings): Function; toLower(string?: string): string; toUpper(string?: string): string; trim(string?: string, chars?: string): string; trimEnd(string?: string, chars?: string): string; trimStart(string?: string, chars?: string): string; truncate(string?: string, options?: TruncateOptions): string; unescape(string?: string): string; upperCase(string?: string): string; upperFirst(string?: string): string; words(string?: string, pattern?: RegExp|string): Array; // Util attempt(func: Function): any; bindAll(object?: ?Object, methodNames: Array): Object; bindAll(object?: ?Object, ...methodNames: Array): Object; cond(pairs: NestedArray): Function; conforms(source: Object): Function; constant(value: T): () => T; defaultTo(value: T1, default: T2): T1; // NaN is a number instead of its own type, otherwise it would behave like null/void defaultTo(value: T1, default: T2): T1|T2; defaultTo(value: T1, default: T2): T2; flow(...funcs?: Array): Function; flow(funcs?: Array): Function; flowRight(...funcs?: Array): Function; flowRight(funcs?: Array): Function; identity(value: T): T; iteratee(func?: any): Function; matches(source: Object): Function; matchesProperty(path?: ?Array|string, srcValue: any): Function; method(path?: ?Array|string, ...args?: Array): Function; methodOf(object?: ?Object, ...args?: Array): Function; mixin(object?: T, source: Object, options?: { chain: bool }): T; noConflict(): Lodash; noop(): void; nthArg(n?: number): Function; over(...iteratees: Array): Function; over(iteratees: Array): Function; overEvery(...predicates: Array): Function; overEvery(predicates: Array): Function; overSome(...predicates: Array): Function; overSome(predicates: Array): Function; property(path?: ?Array|string): Function; propertyOf(object?: ?Object): Function; range(start: number, end: number, step?: number): Array; range(end: number, step?: number): Array; rangeRight(start: number, end: number, step?: number): Array; rangeRight(end: number, step?: number): Array; runInContext(context?: Object): Function; stubArray(): Array<*>; stubFalse(): false; stubObject(): {}; stubString(): ''; stubTrue(): true; times(n: number, ...rest: Array): Array; times(n: number, iteratee: ((i: number) => T)): Array; toPath(value: any): Array; uniqueId(prefix?: string): string; // Properties VERSION: string; templateSettings: TemplateSettings; } declare var exports: Lodash; } ================================================ FILE: flow-typed/npm/mocha_v3.1.x.js ================================================ // flow-typed signature: 6b82cf8c1da27b4f0fa7a58e5ed5babf // flow-typed version: edf70dde46/mocha_v3.1.x/flow_>=v0.22.x type TestFunction = ((done: () => void) => void | Promise); declare var describe : { (name:string, spec:() => void): void; only(description:string, spec:() => void): void; skip(description:string, spec:() => void): void; timeout(ms:number): void; }; declare var context : typeof describe; declare var it : { (name:string, spec?:TestFunction): void; only(description:string, spec:TestFunction): void; skip(description:string, spec:TestFunction): void; timeout(ms:number): void; }; declare function before(method : TestFunction):void; declare function beforeEach(method : TestFunction):void; declare function after(method : TestFunction):void; declare function afterEach(method : TestFunction):void; ================================================ FILE: flow-typed/npm/nodemon_vx.x.x.js ================================================ // flow-typed signature: ecc82da093280a7b0eef229e40c481bc // flow-typed version: <>/nodemon_v^1.11.0/flow_v0.36.0 /** * This is an autogenerated libdef stub for: * * 'nodemon' * * Fill this stub out by replacing all the `any` types. * * Once filled out, we encourage you to share your work with the * community by sending a pull request to: * https://github.com/flowtype/flow-typed */ declare module 'nodemon' { declare module.exports: any; } /** * We include stubs for each file inside this npm package in case you need to * require those files directly. Feel free to delete any files that aren't * needed. */ declare module 'nodemon/bin/nodemon' { declare module.exports: any; } declare module 'nodemon/lib/cli/index' { declare module.exports: any; } declare module 'nodemon/lib/cli/parse' { declare module.exports: any; } declare module 'nodemon/lib/config/command' { declare module.exports: any; } declare module 'nodemon/lib/config/defaults' { declare module.exports: any; } declare module 'nodemon/lib/config/exec' { declare module.exports: any; } declare module 'nodemon/lib/config/index' { declare module.exports: any; } declare module 'nodemon/lib/config/load' { declare module.exports: any; } declare module 'nodemon/lib/help/index' { declare module.exports: any; } declare module 'nodemon/lib/index' { declare module.exports: any; } declare module 'nodemon/lib/monitor/index' { declare module.exports: any; } declare module 'nodemon/lib/monitor/match' { declare module.exports: any; } declare module 'nodemon/lib/monitor/run' { declare module.exports: any; } declare module 'nodemon/lib/monitor/watch' { declare module.exports: any; } declare module 'nodemon/lib/nodemon' { declare module.exports: any; } declare module 'nodemon/lib/rules/add' { declare module.exports: any; } declare module 'nodemon/lib/rules/index' { declare module.exports: any; } declare module 'nodemon/lib/rules/parse' { declare module.exports: any; } declare module 'nodemon/lib/spawn' { declare module.exports: any; } declare module 'nodemon/lib/utils/bus' { declare module.exports: any; } declare module 'nodemon/lib/utils/clone' { declare module.exports: any; } declare module 'nodemon/lib/utils/colour' { declare module.exports: any; } declare module 'nodemon/lib/utils/index' { declare module.exports: any; } declare module 'nodemon/lib/utils/log' { declare module.exports: any; } declare module 'nodemon/lib/utils/merge' { declare module.exports: any; } declare module 'nodemon/lib/version' { declare module.exports: any; } declare module 'nodemon/web/index' { declare module.exports: any; } // Filename aliases declare module 'nodemon/bin/nodemon.js' { declare module.exports: $Exports<'nodemon/bin/nodemon'>; } declare module 'nodemon/lib/cli/index.js' { declare module.exports: $Exports<'nodemon/lib/cli/index'>; } declare module 'nodemon/lib/cli/parse.js' { declare module.exports: $Exports<'nodemon/lib/cli/parse'>; } declare module 'nodemon/lib/config/command.js' { declare module.exports: $Exports<'nodemon/lib/config/command'>; } declare module 'nodemon/lib/config/defaults.js' { declare module.exports: $Exports<'nodemon/lib/config/defaults'>; } declare module 'nodemon/lib/config/exec.js' { declare module.exports: $Exports<'nodemon/lib/config/exec'>; } declare module 'nodemon/lib/config/index.js' { declare module.exports: $Exports<'nodemon/lib/config/index'>; } declare module 'nodemon/lib/config/load.js' { declare module.exports: $Exports<'nodemon/lib/config/load'>; } declare module 'nodemon/lib/help/index.js' { declare module.exports: $Exports<'nodemon/lib/help/index'>; } declare module 'nodemon/lib/index.js' { declare module.exports: $Exports<'nodemon/lib/index'>; } declare module 'nodemon/lib/monitor/index.js' { declare module.exports: $Exports<'nodemon/lib/monitor/index'>; } declare module 'nodemon/lib/monitor/match.js' { declare module.exports: $Exports<'nodemon/lib/monitor/match'>; } declare module 'nodemon/lib/monitor/run.js' { declare module.exports: $Exports<'nodemon/lib/monitor/run'>; } declare module 'nodemon/lib/monitor/watch.js' { declare module.exports: $Exports<'nodemon/lib/monitor/watch'>; } declare module 'nodemon/lib/nodemon.js' { declare module.exports: $Exports<'nodemon/lib/nodemon'>; } declare module 'nodemon/lib/rules/add.js' { declare module.exports: $Exports<'nodemon/lib/rules/add'>; } declare module 'nodemon/lib/rules/index.js' { declare module.exports: $Exports<'nodemon/lib/rules/index'>; } declare module 'nodemon/lib/rules/parse.js' { declare module.exports: $Exports<'nodemon/lib/rules/parse'>; } declare module 'nodemon/lib/spawn.js' { declare module.exports: $Exports<'nodemon/lib/spawn'>; } declare module 'nodemon/lib/utils/bus.js' { declare module.exports: $Exports<'nodemon/lib/utils/bus'>; } declare module 'nodemon/lib/utils/clone.js' { declare module.exports: $Exports<'nodemon/lib/utils/clone'>; } declare module 'nodemon/lib/utils/colour.js' { declare module.exports: $Exports<'nodemon/lib/utils/colour'>; } declare module 'nodemon/lib/utils/index.js' { declare module.exports: $Exports<'nodemon/lib/utils/index'>; } declare module 'nodemon/lib/utils/log.js' { declare module.exports: $Exports<'nodemon/lib/utils/log'>; } declare module 'nodemon/lib/utils/merge.js' { declare module.exports: $Exports<'nodemon/lib/utils/merge'>; } declare module 'nodemon/lib/version.js' { declare module.exports: $Exports<'nodemon/lib/version'>; } declare module 'nodemon/web/index.js' { declare module.exports: $Exports<'nodemon/web/index'>; } ================================================ FILE: lib/core/index.js ================================================ // @flow import fs from 'fs'; import path from 'path'; import fp from 'lodash/fp'; import _ from 'lodash'; import gonzales from 'gonzales-pe'; import type { JsNode, gASTNode } from '../types'; import { getRegularClassesMap, getComposesClassesMap, getExtendClassesMap, getParentSelectorClassesMap, getICSSExportPropsMap, eliminateGlobals, } from './traversalUtils'; const styleExtensionRegex = /\.(s?css|less)$/; function dashesCamelCase (str: string) { return str.replace(/-+(\w)/g, function (match, firstLetter) { return firstLetter.toUpperCase(); }); } export const getFilePath = (context, styleFilePath) => { const settings = context.settings['css-modules']; const dirName = path.dirname(context.getFilename()); const basePath = (settings && settings.basePath) ? settings.basePath : ''; return styleFilePath.startsWith('.') ? path.resolve(dirName, styleFilePath) : path.resolve(basePath, styleFilePath); }; export const getPropertyName = (node: JsNode): ?string => { const propertyName = node.computed /* square braces eg s['header'] we won't use node.property.name because it is for cases like s[abc] where abc is a variable */ ? node.property.value /* dot notation, eg s.header */ : node.property.name; /* skip property names starting with _ eg. special functions provided by css modules like _getCss() Tried to just skip function calls, but the parser thinks of normal property access like s._getCss and function calls like s._getCss() as same. */ if (!propertyName || _.startsWith(propertyName, '_')) { return null; } return propertyName; }; export const getClassesMap = (classes: Object, camelCase: string|boolean): Object => { const classesMap = {}; // Unroll the loop because of performance! // Remember that this function will run on every lint (e.g.: on file save) switch (camelCase) { case true: _.forIn(classes, (value, className) => { classesMap[className] = className; classesMap[_.camelCase(className)] = className; }); break; case 'dashes': _.forIn(classes, (value, className) => { classesMap[className] = className; classesMap[dashesCamelCase(className)] = className; }); break; case 'only': _.forIn(classes, (value, className) => { classesMap[_.camelCase(className)] = className; }); break; case 'dashes-only': _.forIn(classes, (value, className) => { classesMap[dashesCamelCase(className)] = className; }); break; default: _.forIn(classes, (value, className) => { classesMap[className] = className; }); } return classesMap; }; export const getStyleImportNodeData = (node: JsNode): ?Object => { // path from which it was imported const styleFilePath = fp.get('source.value')(node); if (styleFilePath && styleExtensionRegex.test(styleFilePath)) { const importNode = fp.compose( fp.find({ type: 'ImportDefaultSpecifier' }), fp.get('specifiers'), )(node); // the default imported name const importName = fp.get('local.name')(importNode); if (importName) { // it had a default import return { importName, styleFilePath, importNode }; } } }; export const fileExists = (filePath: string): boolean => { try { // check if file exists fs.statSync(filePath); return true; } catch (e) { return false; } }; /** * @returns AST of the parsed file or null if parse failed */ export const getAST = (filePath: string): gASTNode | null => { const fileContent = fs.readFileSync(filePath); const syntax = path.extname(filePath).slice(1); // remove leading . try { return gonzales.parse(fileContent.toString(), { syntax }); } catch (e) { return null; } }; export const getStyleClasses = (ast: gASTNode): ?Object => { /* mutates ast by removing :global scopes */ eliminateGlobals(ast); const classesMap = getRegularClassesMap(ast); const composedClassesMap = getComposesClassesMap(ast); const extendClassesMap = getExtendClassesMap(ast); const parentSelectorClassesMap = getParentSelectorClassesMap(ast); return { ...classesMap, ...composedClassesMap, ...extendClassesMap, ...parentSelectorClassesMap }; }; export const getExportPropsMap = (ast: gASTNode): ?Object => { const exportPropsMap = getICSSExportPropsMap(ast); return { ...exportPropsMap }; }; ================================================ FILE: lib/core/traversalUtils.js ================================================ // @flow /* eslint-disable no-param-reassign */ import fp from 'lodash/fp'; import type { gASTNode } from '../types'; type classMapType = { [key: string]: boolean, } export const getICSSExportPropsMap = (ast: gASTNode): classMapType => { const ruleSets: Array = []; ast.traverseByType('ruleset', node => ruleSets.push(node)); return fp.compose( fp.reduce((result, key) => { const prop = fp.compose(fp.nth(0), fp.map('content'))(key); result[prop] = prop; // e.g. { myProp: 'myProp' } return result; }, {}), fp.map('content'), fp.filter({ type: 'property' }), fp.flatMap('content'), fp.filter({ type: 'declaration' }), fp.flatMap('content'), fp.filter({ type: 'block' }), fp.flatMap('content'), fp.filter({ content: [{ type: 'selector', content: [{ type: 'pseudoClass', content: [{ type: 'ident', content: 'export' }] }] }] }) )(ruleSets); }; export const getRegularClassesMap = (ast: gASTNode): classMapType => { const ruleSets: Array = []; ast.traverseByType('ruleset', node => ruleSets.push(node)); return fp.compose( fp.reduce((result, key) => { result[key] = false; // classes haven't been used return result; }, {}), fp.map('content'), fp.filter({ type: 'ident' }), fp.flatMap('content'), fp.filter({ type: 'class' }), fp.flatMap('content'), fp.filter({ type: 'selector' }), fp.flatMap('content'), )(ruleSets); }; export const getComposesClassesMap = (ast: gASTNode): classMapType => { const declarations = []; ast.traverseByType('declaration', node => declarations.push(node)); return fp.compose( fp.reduce((result, key) => { result[key] = true; // mark composed classes as true return result; }, {}), fp.flatMap(fp.compose( fp.map(fp.get('content')), fp.filter({ type: 'ident' }), fp.get('content'), fp.find({ type: 'value' }), fp.get('content'), )), /* reject classes composing from other files eg. .foo { composes: .bar from './otherFile'; } */ fp.reject(fp.compose( fp.find({ type: 'ident', content: 'from' }), fp.get('content'), fp.find({ type: 'value' }), fp.get('content'), )), fp.filter(fp.compose( fp.find({ type: 'ident', content: 'composes' }), fp.get('content'), fp.find({ type: 'property' }), fp.get('content'), )), )(declarations); }; export const getExtendClassesMap = (ast: gASTNode): classMapType => { const extendNodes = []; ast.traverseByType('extend', node => extendNodes.push(node)); return fp.compose( fp.reduce((result, key) => { result[key] = true; // mark extend classes as true return result; }, {}), fp.map(fp.compose( fp.get('content'), fp.find({ type: 'ident' }), fp.get('content'), fp.find({ type: 'class' }), fp.get('content'), fp.find({ type: 'selector' }), fp.get('content'), )), )(extendNodes); }; /** * Resolves parent selectors to their full class names. * * E.g. `.foo { &_bar {color: blue } }` to `.foo_bar`. */ export const getParentSelectorClassesMap = (ast: gASTNode): classMapType => { const classesMap: classMapType = {}; // Recursively traverses down the tree looking for parent selector // extensions. Recursion is necessary as these selectors can be nested. const getExtensions = nodeContent => { const blockContent = fp.compose( fp.flatMap('content'), fp.filter({ type: 'block' }) )(nodeContent); const rulesetsContent = fp.flatMap('content', fp.concat( // `ruleset` children fp.filter({ type: 'ruleset' }, blockContent), // `ruleset` descendants nested in `include` nodes fp.compose( fp.filter({ type: 'ruleset' }), fp.flatMap('content'), fp.filter({ type: 'block' }), fp.flatMap('content'), fp.filter({ type: 'include' }) )(blockContent) )); const extensions = fp.compose( fp.map('content'), fp.filter({ type: 'ident' }), fp.flatMap('content'), fp.filter({ type: 'parentSelectorExtension' }), fp.flatMap('content'), fp.filter({ type: 'selector' }) )(rulesetsContent); if (!extensions.length) return []; const nestedExtensions = getExtensions(rulesetsContent); const result = extensions; if (nestedExtensions.length) { nestedExtensions.forEach(nestedExt => { extensions.forEach(ext => { result.push(ext + nestedExt); }); }); } return result; }; ast.traverseByType('ruleset', node => { const classNames = fp.compose( fp.map('content'), fp.filter({ type: 'ident' }), fp.flatMap('content'), fp.filter({ type: 'class' }), fp.flatMap('content'), fp.filter({ type: 'selector' }) )(node.content); if (!classNames.length) return; const extensions = getExtensions(node.content); if (!extensions.length) return; classNames.forEach(className => { extensions.forEach(ext => { classesMap[className + ext] = false; }); // Ignore the base class if it only exists for nesting parent selectors const hasDeclarations = fp.compose( fp.filter({ type: 'declaration' }), fp.flatMap('content'), fp.filter({ type: 'block' }) )(node.content).length > 0; if (!hasDeclarations) classesMap[className] = true; }); }); return classesMap; }; /** * Mutates the AST by removing `:global` instances. * * For the AST structure: * @see https://github.com/css/gonzales/blob/master/doc/AST.CSSP.en.md */ export const eliminateGlobals = (ast: gASTNode) => { // Remove all :global/:global(...) in selectors ast.traverseByType('selector', (selectorNode) => { const selectorContent = selectorNode.content; let hasGlobalWithNoArgs = false; let i = 0; let currNode = selectorContent[i]; while (currNode) { if (currNode.is('pseudoClass')) { // Remove all :global/:global(...) and trailing space const identifierNode = currNode.content[0]; if (identifierNode && identifierNode.content === 'global') { if (currNode.content.length === 1) hasGlobalWithNoArgs = true; selectorNode.removeChild(i); if (selectorContent[i] && selectorContent[i].is('space')) { selectorNode.removeChild(i); } } else { i++; } } else if (currNode.is('class') && hasGlobalWithNoArgs) { // Remove all class after :global and their trailing space selectorNode.removeChild(i); if (selectorContent[i] && selectorContent[i].is('space')) { selectorNode.removeChild(i); } } else { i++; } currNode = selectorContent[i]; } }); // Remove all ruleset with no selectors ast.traverseByType('ruleset', (node, index, parent) => { const rulesetContent = node.content; // Remove empty selectors and trailing deliminator and space let i = 0; let currNode = rulesetContent[i]; while (currNode) { if (currNode.is('selector') && currNode.content.length === 0) { node.removeChild(i); if (rulesetContent[i].is('delimiter')) node.removeChild(i); if (rulesetContent[i].is('space')) node.removeChild(i); } else { i++; } currNode = rulesetContent[i]; } // Remove the ruleset if no selectors if (rulesetContent.filter((node) => node.is('selector')).length === 0) { parent.removeChild(index); } }); }; ================================================ FILE: lib/index.js ================================================ export rules from './rules'; export const configs = { recommended: { rules: { 'css-modules/no-unused-class': 2, // error 'css-modules/no-undef-class': 2, // error } } }; ================================================ FILE: lib/rules/index.js ================================================ import noUnusedClass from './no-unused-class'; import noUndefClass from './no-undef-class'; export default { 'no-unused-class': noUnusedClass, 'no-undef-class': noUndefClass, }; ================================================ FILE: lib/rules/no-undef-class.js ================================================ /* @flow */ import _ from 'lodash'; import { getStyleImportNodeData, getAST, fileExists, getStyleClasses, getPropertyName, getClassesMap, getExportPropsMap, getFilePath, } from '../core'; import type { JsNode } from '../types'; export default { meta: { docs: { description: 'Checks that you are using the existent css/scss/less classes', recommended: true, }, schema: [ { type: 'object', properties: { camelCase: { enum: [true, 'dashes', 'only', 'dashes-only'] } }, } ], }, create (context: Object) { const camelCase = _.get(context, 'options[0].camelCase'); /* maps variable name to property Object map = { [variableName]: { classesMap: { foo: 'foo', fooBar: 'foo-bar', 'foo-bar': 'foo-bar' }, node: {...} } } example: import s from './foo.scss'; s is variable name property Object has two keys 1. classesMap: an object with propertyName as key and its className as value 2. node: node that correspond to s (see example above) */ const map = {}; return { ImportDeclaration (node: JsNode) { const styleImportNodeData = getStyleImportNodeData(node); if (!styleImportNodeData) { return; } const { importName, styleFilePath, importNode, } = styleImportNodeData; const styleFileAbsolutePath = getFilePath(context, styleFilePath); let classesMap = {}; let exportPropsMap = {}; if (fileExists(styleFileAbsolutePath)) { const ast = getAST(styleFileAbsolutePath); const classes = ast && getStyleClasses(ast); classesMap = classes && getClassesMap(classes, camelCase); exportPropsMap = ast && getExportPropsMap(ast); } // this will be used to check if classes are defined _.set(map, `${importName}.classesMap`, classesMap); // this will be used to check if :export properties are defined _.set(map, `${importName}.exportPropsMap`, exportPropsMap); // save node for reporting unused styles _.set(map, `${importName}.node`, importNode); }, MemberExpression: (node: JsNode) => { /* Check if property exists in css/scss file as class */ const objectName = node.object.name; const propertyName = getPropertyName(node, camelCase); if (!propertyName) { return; } const classesMap = _.get(map, `${objectName}.classesMap`); const exportPropsMap = _.get(map, `${objectName}.exportPropsMap`); if (classesMap && classesMap[propertyName] == null && exportPropsMap && exportPropsMap[propertyName] == null) { context.report(node.property, `Class or exported property '${propertyName}' not found`); } } }; } }; ================================================ FILE: lib/rules/no-unused-class.js ================================================ /* @flow */ import fp from 'lodash/fp'; import _ from 'lodash'; import path from 'path'; import { getStyleImportNodeData, getStyleClasses, getPropertyName, getClassesMap, getFilePath, getAST, fileExists, } from '../core'; import type { JsNode } from '../types'; export default { meta: { docs: { description: 'Checks that you are using all css/scss/less classes', recommended: true, }, schema: [ { type: 'object', properties: { camelCase: { enum: [true, 'dashes', 'only', 'dashes-only'] }, markAsUsed: { type: 'array' }, }, } ], }, create (context: Object) { const markAsUsed = _.get(context, 'options[0].markAsUsed'); const camelCase = _.get(context, 'options[0].camelCase'); /* maps variable name to property Object map = { [variableName]: { classes: { foo: false, 'foo-bar': false }, classesMap: { foo: 'foo', fooBar: 'foo-bar', 'foo-bar': 'foo-bar' }, node: {...} } } example: import s from './foo.scss'; s is variable name property Object has two keys 1. classes: an object with className as key and a boolean as value. The boolean is marked if it is used in file 2. classesMap: an object with propertyName as key and its className as value 3. node: node that correspond to s (see example above) */ const map = {}; return { ImportDeclaration (node: JsNode) { const styleImportNodeData = getStyleImportNodeData(node); if (!styleImportNodeData) { return; } const { importName, styleFilePath, importNode, } = styleImportNodeData; const styleFileAbsolutePath = getFilePath(context, styleFilePath); let classes = {}; let classesMap = {}; if (fileExists(styleFileAbsolutePath)) { // this will be used to mark s.foo as used in MemberExpression const ast = getAST(styleFileAbsolutePath); classes = ast && getStyleClasses(ast); classesMap = classes && getClassesMap(classes, camelCase); } _.set(map, `${importName}.classes`, classes); _.set(map, `${importName}.classesMap`, classesMap); // save node for reporting unused styles _.set(map, `${importName}.node`, importNode); // save file path for reporting unused styles _.set(map, `${importName}.filePath`, styleFilePath); }, MemberExpression: (node: JsNode) => { /* Check if property exists in css/scss file as class */ const objectName = node.object.name; const propertyName = getPropertyName(node, camelCase); if (!propertyName) { return; } const className = _.get(map, `${objectName}.classesMap.${propertyName}`); if (className == null) { return; } // mark this property has used _.set(map, `${objectName}.classes.${className}`, true); }, 'Program:exit' () { /* Check if all classes defined in css/scss file are used */ /* we are looping over each import style node in program example: ``` import s from './foo.css'; import x from './bar.scss'; ``` then the loop will be run 2 times */ _.forIn(map, (o) => { const { classes, node, filePath } = o; /* if option is passed to mark a class as used, example: eslint css-modules/no-unused-class: [2, { markAsUsed: ['container'] }] */ _.forEach(markAsUsed, (usedClass) => { classes[usedClass] = true; }); // classNames not marked as true are unused const unusedClasses = fp.compose( fp.keys, fp.omitBy(fp.identity), // omit truthy values )(classes); if (!_.isEmpty(unusedClasses)) { context.report(node, `Unused classes found in ${path.basename(filePath)}: ${unusedClasses.join(', ')}`); } }); } }; } }; ================================================ FILE: lib/types/index.js ================================================ // js Node export type Position = { line: number, // 1 indexed column: number, // 0 indexed }; export type SourceLocation = { start: Position, end: Position, identifierName?: string, }; export type JsNode = { type: 'ImportDeclaration' | 'ImportDefaultSpecifier', start: number, end: number, loc: JsNode, local?: JsNode, name?: string, value?: string, specifiers?: Array, importKind?: 'value', extra?: { rawValue: string, raw: string, }, source: JsNode, range: Array, // most probably array of 2 numbers ?, _babelType: string, parent: JsNode, }; // gonzales AST Node Type export type gASTNode = { traverseByType: Function, type: 'stylesheet' | 'ident' | 'class' | 'selector' | 'value' | 'property' | 'ruleset' | 'extend' | 'declaration', content: string | Array, syntax: 'css' | 'scss' | 'less', }; ================================================ FILE: package.json ================================================ { "name": "eslint-plugin-css-modules", "version": "2.12.0", "description": "Checks that you are using the existent css/scss/less classes, no more no less", "main": "build/index.js", "files": [ "build", "packages" ], "scripts": { "watch": "babel lib -d build --watch", "build": "rm -rf build && babel lib -d build", "lint": "eslint lib test", "test": "mocha 'test/**/*.test.js' --compilers js:@babel/register", "my-pre-publish": "npm run test && npm run build", "my-publish": "npm run my-pre-publish && yarn publish" }, "engines": { "node": ">=4.0.0" }, "keywords": [ "eslint", "eslintplugin", "eslint-plugin", "css-modules" ], "author": { "name": "Atif Afzal", "email": "atif5801@gmail.com", "url": "http://atfzl.me" }, "repository": { "type": "git", "url": "git://github.com/atfzl/eslint-plugin-css-modules.git" }, "license": "MIT", "peerDependencies": { "eslint": ">=2.0.0" }, "devDependencies": { "@babel/cli": "^7.23.0", "@babel/core": "^7.23.0", "@babel/eslint-parser": "^7.22.15", "@babel/plugin-proposal-export-default-from": "^7.22.17", "@babel/plugin-syntax-flow": "^7.22.5", "@babel/plugin-transform-flow-strip-types": "^7.22.5", "@babel/preset-env": "^7.22.20", "@babel/register": "^7.22.15", "chai": "^4.3.9", "eslint": "^8.50.0", "eslint-config-standard": "^17.1.0", "eslint-plugin-import": "^2.28.1", "eslint-plugin-mocha": "^10.2.0", "eslint-plugin-n": "^16.1.0", "eslint-plugin-promise": "^6.1.1", "flow-bin": "^0.36.0", "mocha": "^3.2.0", "nodemon": "^3.0.1" }, "dependencies": { "gonzales-pe": "^4.3.0", "lodash": "^4.17.2" } } ================================================ FILE: test/files/composes1.scss ================================================ .foo { font-weight: 300; } .bar { color: red; composes: foo; } .baz { composes: other from './otherfile'; color: blue; } ================================================ FILE: test/files/composesMultiple1.scss ================================================ .foo { font-weight: 300; } .tar { color: black; } .bar { color: red; composes: foo tar; } .baz { composes: other from './otherfile'; color: blue; } ================================================ FILE: test/files/export1.scss ================================================ .bar { color: blue; } :export { myProp: something; } ================================================ FILE: test/files/export2.scss ================================================ .bar { color: blue; } :export { otherProp: something; } ================================================ FILE: test/files/extend1.scss ================================================ .foo { font-weight: 300; } .bar { @extend .foo; color: red; } .baz { width: 100px; } ================================================ FILE: test/files/foo.js ================================================ /* nothing to see here this file will be provided as filename parameter for RuleTester. This file is referred in utils.js */ ================================================ FILE: test/files/global1.scss ================================================ .local1 {} .local2 { :global(.global1) {} } :global .global1 {} :global(.global2) {} :global { .global1 { } } .local3 { :global { .global2 {} } } .local4 :global .global1 .global2 {} .local5 :global(.global1, .global2) .local6 {} ================================================ FILE: test/files/noUndefClass1.less ================================================ :global(.bold) { font-weight: bold; } ================================================ FILE: test/files/noUndefClass1.scss ================================================ .container { min-width: 1024px; } ================================================ FILE: test/files/noUndefClass3.scss ================================================ .foo-bar { display: flex; } .bar-foo { display: flex; } .alreadyCamelCased { display: flex; } .snake_cased { display: flex; } :global(.bar) { font-weight: bold; } ================================================ FILE: test/files/noUnusedClass1.less ================================================ .foo { display: flex; } :global(.bar) { font-weight: bold; } ================================================ FILE: test/files/noUnusedClass1.scss ================================================ .foo { width: 100px; } .bar { height: 100%; .bold { font-weight: bold; } } ================================================ FILE: test/files/noUnusedClass2.scss ================================================ .foo { display: flex; } :global(.bar) { font-weight: bold; } ================================================ FILE: test/files/noUnusedClass3.scss ================================================ .foo-bar { display: flex; } .bar-foo { display: flex; } .alreadyCamelCased { display: flex; } .snake_cased { display: flex; } :global(.bar) { font-weight: bold; } ================================================ FILE: test/files/parentSelector1.scss ================================================ .foo { font-weight: 300; &_bar { width: 100px; } } ================================================ FILE: test/files/parentSelector2.scss ================================================ .foo { font-weight: 300; .bar { &_baz { width: 100px; } } } ================================================ FILE: test/files/parentSelector3.scss ================================================ .foo { font-weight: 300; &_baz { width: 100px; } &_bar { width: 100px; } } ================================================ FILE: test/files/parentSelector4.scss ================================================ .foo { font-weight: 300; &_baz, &_bar { width: 100px; } } ================================================ FILE: test/files/parentSelector5.scss ================================================ .foo, .bar { font-weight: 300; &_baz { font-weight: 300; } } ================================================ FILE: test/files/parentSelector6.scss ================================================ .foo { font-weight: 300; &_bar { font-weight: 300; &_baz { font-weight: 300; } } } ================================================ FILE: test/files/parentSelector7.scss ================================================ .foo { &_bar { font-weight: 300; } &_baz { font-weight: 300; } } ================================================ FILE: test/files/parentSelector8.scss ================================================ @import "~styles/media-queries"; .foo { @include match-medium { &_bar { font-weight: 300; } }; } ================================================ FILE: test/files/root1.scss ================================================ :root { --color: red; } .foo {} ================================================ FILE: test/files/unparsable.scss ================================================ safslf f sf ================================================ FILE: test/lib/core/traversalUtils.test.js ================================================ /* eslint-env mocha */ import { expect } from 'chai'; import gonzales from 'gonzales-pe'; import { eliminateGlobals } from '../../../lib/core/traversalUtils'; describe('eliminateGlobals()', function () { describe('resolving :global pseudo class', function () { it('should remove :global operator and the global class', function () { const content = ` :global .global {} `; const ast = gonzales.parse(content, { syntax: 'scss' }); eliminateGlobals(ast); expect(ast.toString().trim()).to.be.equal(''); }); it('should remove :global operator and the global classes', function () { const content = ` :global .global1 .global2 .global3.global4 {} `; const ast = gonzales.parse(content, { syntax: 'scss' }); eliminateGlobals(ast); expect(ast.toString().trim()).to.be.equal(''); }); it('should only remove :global operator and the global classes', function () { const content = ` .local1 :global .global1 :local(.local2) .global2 :local(.local3), .local4 {} `; const ast = gonzales.parse(content, { syntax: 'scss' }); eliminateGlobals(ast); expect(ast.toString().trim()).to.be.equal( '.local1 :local(.local2) :local(.local3), .local4 {}' ); }); }); describe('resolving :global() pseudo class', function () { it('should remove :global() pseudo class and its argument class', function () { const content = ` :global(.global1) {} `; const ast = gonzales.parse(content, { syntax: 'scss' }); eliminateGlobals(ast); expect(ast.toString().trim()).to.be.equal(''); }); it('should remove :global() pseudo class and its argument classes', function () { const content = ` :global(.global1) :global(.global2, .global3), :global(.global4.global5) {} `; const ast = gonzales.parse(content, { syntax: 'scss' }); eliminateGlobals(ast); expect(ast.toString().trim()).to.be.equal(''); }); it('should only remove :global() pseudo class and its argument classes', function () { const content = ` .local1 :global(.global1) .local2, .local3 :global(.global2, .global3) :local(.local4) {} `; const ast = gonzales.parse(content, { syntax: 'scss' }); eliminateGlobals(ast); expect(ast.toString().trim()).to.be.equal( '.local1 .local2, .local3 :local(.local4) {}' ); }); }); }); ================================================ FILE: test/lib/rules/no-undef-class.test.js ================================================ /* eslint-disable mocha/no-setup-in-describe */ import rule from '../../../lib/rules/no-undef-class'; import { RuleTester, addFilenameOption } from '../../utils'; const ruleTester = new RuleTester(); /** * ESLint ruleTester uses its own `describe` and `it` functions. This Mocha * `describe` is used merely for test output formatting. Disabling the * `mocha/no-setup-in-describe` rule to allow running rule tester in it. */ describe('no-undef-class', function () { ruleTester.run('no-undef-class', rule, { valid: [ { name: "absolute import eg: 'foo/bar.scss'", code: ` import s from 'test/files/noUndefClass1.scss'; export default Foo = () => (
); `, }, { name: 'dot notation eg: s.container', code: ` import s from './noUndefClass1.scss'; export default Foo = () => (
); `, }, { name: "square bracket string key eg: s['container']", code: ` import s from './noUndefClass1.scss'; export default Foo = () => (
); `, }, { name: 'does not check for dynamic properties eg: s[dynamicValue]', code: ` import s from './noUndefClass1.scss'; export default Foo = (props) => (
); `, }, { name: 'names starting with _ will be ignored', code: ` import s from './noUndefClass1.scss'; export default Foo = () => (
{s._getCss()}
); `, }, { name: 'using composes', code: ` import s from './composes1.scss'; export default Foo = () => (
); `, }, { name: 'composing with multiple classes', code: ` import s from './composesMultiple1.scss'; export default Foo = () => (
); `, }, { name: 'using @extend', code: ` import s from './extend1.scss'; export default Foo = () => (
); `, }, { name: 'using parent selector (`&`)', code: ` import s from './parentSelector1.scss'; export default Foo = () => (
); `, }, { name: 'Add support for parent selectors (&).', code: ` import s from './parentSelector2.scss'; export default Foo = () => (
); `, }, { name: 'Add support for parent selectors (&).', code: ` import s from './parentSelector3.scss'; export default Foo = () => (
); `, }, { name: 'Add support for parent selectors (&).', code: ` import s from './parentSelector4.scss'; export default Foo = () => (
); `, }, { name: 'Add support for parent selectors (&).', code: ` import s from './parentSelector5.scss'; export default Foo = () => (
); `, }, { name: 'Add support for parent selectors (&).', code: ` import s from './parentSelector6.scss'; export default Foo = () => (
); `, }, { name: 'Support parent selectors in include blocks (aka mixins).', code: ` import s from './parentSelector8.scss'; export default Foo = () => (
); `, }, { name: "file that can't be parsed should not give any error", code: ` import s from './unparsable.scss'; export default Foo = () => (
); `, }, { name: 'global is ignored', code: ` import s from './global1.scss'; export default Foo = () => (
); `, }, { name: 'ICSS :export pseudo-selector with a correct prop name should not give error', code: ` import s from './export1.scss'; export default Foo = () => (
); `, }, { name: 'check if camelCase=true classes work as expected', code: ` import s from './noUndefClass3.scss'; export default Foo = () => (
); `, options: [{ camelCase: true }], }, { name: 'Add support for all variants of the camelCase options.', code: ` import s from './noUndefClass3.scss'; export default Foo = () => (
); `, options: [{ camelCase: true }], }, { name: 'check if camelCase=dashes classes work as expected', code: ` import s from './noUndefClass3.scss'; export default Foo = () => (
); `, options: [{ camelCase: 'dashes' }], }, { name: 'Add camelCase option', code: ` import s from './noUndefClass3.scss'; export default Foo = () => (
); `, options: [{ camelCase: 'dashes' }], }, { name: 'check if camelCase=only classes work as expected', code: ` import s from './noUndefClass3.scss'; export default Foo = () => (
); `, options: [{ camelCase: 'only' }], }, { name: 'check if camelCase=dashes-only classes work as expected', code: ` import s from './noUndefClass3.scss'; export default Foo = () => (
); `, options: [{ camelCase: 'dashes-only' }], }, ].map((testCase) => addFilenameOption(testCase)), invalid: [ { name: 'dot notation', code: ` import s from './noUndefClass1.scss'; export default Foo = () => (
); `, errors: ["Class or exported property 'containr' not found"], }, { name: 'square bracket', code: ` import s from './noUndefClass1.scss'; export default Foo = () => (
); `, errors: ["Class or exported property 'containr' not found"], }, { name: 'classes with global scope for selector are ignored eg. :global(.bold) { font-weight: bold; }', code: ` import s from './global1.scss'; export default Foo = () => (
); `, errors: [ "Class or exported property 'global1' not found", "Class or exported property 'global2' not found", "Class or exported property 'global3' not found", ], }, { name: 'ICSS :export pseudo-selector with wrong prop name https://github.com/css-modules/icss#export', code: ` import s from './export2.scss'; export default Foo = () => (
); `, errors: ["Class or exported property 'myProp' not found"], }, { name: 'check less support', code: ` import s from './noUndefClass1.less'; export default Foo = () => (
); `, errors: ["Class or exported property 'bold' not found"], }, { name: 'using composes', code: ` import s from './composes1.scss'; export default Foo = () => (
); `, errors: ["Class or exported property 'bazz' not found"], }, { name: 'composing multiple classes', code: ` import s from './composesMultiple1.scss'; export default Foo = () => (
); `, errors: ["Class or exported property 'bazz' not found"], }, { name: 'using @extend', code: ` import s from './extend1.scss'; export default Foo = () => (
); `, errors: ["Class or exported property 'bazz' not found"], }, { name: 'using parent selector (`&`)', code: ` import s from './parentSelector1.scss'; export default Foo = () => (
); `, errors: ["Class or exported property 'foo_baz' not found"], }, { name: 'should show errors for file that does not exist', code: ` import s from './fileThatDoesNotExist.scss'; export default Foo = () => (
); `, errors: [ "Class or exported property 'bar' not found", "Class or exported property 'baz' not found", ], }, { name: 'should detect if camel case properties are NOT defined when camelCase=true', code: ` import s from './noUndefClass3.scss'; export default Foo = () => (
); `, options: [{ camelCase: true }], errors: ["Class or exported property 'fooBaz' not found"], }, { name: 'Add support for all variants of the camelCase options.', code: ` import s from './noUndefClass3.scss'; export default Foo = () => (
); `, options: [{ camelCase: true }], errors: ["Class or exported property 'foo-baz' not found"], }, { name: 'should detect if camel case properties are NOT defined when camelCase=dashes', code: ` import s from './noUndefClass3.scss'; export default Foo = () => (
); `, options: [{ camelCase: 'dashes' }], errors: [ "Class or exported property 'snakeCased' not found", "Class or exported property 'fooBaz' not found", "Class or exported property 'already-camel-cased' not found", "Class or exported property 'foo-baz' not found", ], }, { name: 'should detect if camel case properties are NOT defined when camelCase=only', code: ` import s from './noUndefClass3.scss'; export default Foo = () => (
); `, options: [{ camelCase: 'only' }], errors: [ "Class or exported property 'fooBaz' not found", "Class or exported property 'foo-bar' not found", "Class or exported property 'already-camel-cased' not found", "Class or exported property 'snake_cased' not found", "Class or exported property 'foo-baz' not found", ], }, { name: 'should detect if camel case properties are NOT defined when camelCase=dashes-only', code: ` import s from './noUndefClass3.scss'; export default Foo = () => (
); `, options: [{ camelCase: 'dashes-only' }], errors: [ "Class or exported property 'snakeCased' not found", "Class or exported property 'fooBaz' not found", "Class or exported property 'foo-bar' not found", "Class or exported property 'already-camel-cased' not found", "Class or exported property 'foo-baz' not found", ], }, ].map((testCase) => addFilenameOption(testCase)), }); }); ================================================ FILE: test/lib/rules/no-unused-class.test.js ================================================ /* eslint-disable mocha/no-setup-in-describe */ import rule from '../../../lib/rules/no-unused-class'; import { RuleTester, addFilenameOption } from '../../utils'; const ruleTester = new RuleTester(); /** * ESLint ruleTester uses its own `describe` and `it` functions. This Mocha * `describe` is used merely for test output formatting. Disabling the * `mocha/no-setup-in-describe` rule to allow running rule tester in it. */ describe('no-unused-class', function () { ruleTester.run('no-unused-class', rule, { valid: [ { name: "absolute import eg: 'foo/bar.scss'", code: ` import s from 'test/files/noUndefClass1.scss'; export default Foo = () => (
); `, }, { name: "dot notation and square brackets eg: s.foo and s['bar']", code: ` import s from './noUnusedClass1.scss'; export default Foo = () => (
); `, }, { name: 'ignore global scope selector', code: ` import s from './noUnusedClass2.scss'; export default Foo = () => (
); `, }, { name: 'ignore props exported by ICSS :export pseudo-selector https://github.com/css-modules/icss#export', code: ` import s from './export1.scss'; export default Foo = () => (
); `, }, { name: 'check if composes classes are ignored', code: ` import s from './composes1.scss'; export default Foo = () => (
); `, }, { name: 'composes with multiple classes', code: ` import s from './composesMultiple1.scss'; export default Foo = () => (
); `, }, { name: 'check if @extend classes are ignored', code: ` import s from './extend1.scss'; export default Foo = () => (
); `, }, { name: 'check if classes are ignored if they only exist for nesting parent selectors (`&`)', code: ` import s from './parentSelector7.scss'; export default Foo = () => (
); `, }, { name: 'check if camelCase=true classes work as expected', code: ` import s from './noUnusedClass3.scss'; export default Foo = () => (
); `, options: [{ camelCase: true }], }, { name: 'Add camelCase option', code: ` import s from './noUnusedClass3.scss'; export default Foo = () => (
); `, options: [{ camelCase: true }], }, { name: 'check if camelCase=dashes classes work as expected', code: ` import s from './noUnusedClass3.scss'; export default Foo = () => (
); `, options: [{ camelCase: 'dashes' }], }, { name: 'Add support for all variants of the camelCase options', code: ` import s from './noUnusedClass3.scss'; export default Foo = () => (
); `, options: [{ camelCase: 'dashes' }], }, { name: 'check if camelCase=only classes work as expected', code: ` import s from './noUnusedClass3.scss'; export default Foo = () => (
); `, options: [{ camelCase: 'only' }], }, { name: 'check if camelCase=dashes-only classes work as expected', code: ` import s from './noUnusedClass3.scss'; export default Foo = () => (
); `, options: [{ camelCase: 'dashes-only' }], }, ].map((testCase) => addFilenameOption(testCase)), invalid: [ { name: 'Unused class error', code: ` import s from './noUnusedClass1.scss'; export default Foo = () => (
); `, errors: ['Unused classes found in noUnusedClass1.scss: foo, bold'], }, { name: 'ignored global scope selector class', code: ` import s from './noUnusedClass2.scss'; export default Foo = () => (
); `, errors: ['Unused classes found in noUnusedClass2.scss: foo'], }, { name: 'check less support', code: ` import s from './noUnusedClass1.less'; export default Foo = () => (
); `, errors: ['Unused classes found in noUnusedClass1.less: foo'], }, { name: 'check composes support', code: ` import s from './composes1.scss'; export default Foo = () => (
); `, errors: ['Unused classes found in composes1.scss: baz'], }, { name: 'check multiple composes support', code: ` import s from './composesMultiple1.scss'; export default Foo = () => (
); `, errors: ['Unused classes found in composesMultiple1.scss: baz'], }, { name: 'check @extend support', code: ` import s from './extend1.scss'; export default Foo = () => (
); `, errors: ['Unused classes found in extend1.scss: baz'], }, { name: 'using parent selector (`&`)', code: ` import s from './parentSelector4.scss'; export default Foo = () => (
); `, errors: ['Unused classes found in parentSelector4.scss: foo_bar'], }, { name: 'snake_case', code: ` import s from './parentSelector8.scss'; export default Foo = () => (
); `, errors: ['Unused classes found in parentSelector8.scss: foo_bar'], }, { name: 'should detect if camel case properties are NOT used when camelCase=true', code: ` import s from './noUnusedClass3.scss'; export default Foo = () => (
); `, options: [{ camelCase: true }], errors: [ 'Unused classes found in noUnusedClass3.scss: bar-foo, alreadyCamelCased, snake_cased', ], }, { name: 'should detect if camel case properties are NOT used when camelCase=dashes', code: ` import s from './noUnusedClass3.scss'; export default Foo = () => (
); `, options: [{ camelCase: 'dashes' }], errors: [ 'Unused classes found in noUnusedClass3.scss: bar-foo, alreadyCamelCased, snake_cased', ], }, { name: 'should detect if camel case properties are NOT used when camelCase=only', code: ` import s from './noUnusedClass3.scss'; export default Foo = () => (
); `, options: [{ camelCase: 'only' }], errors: [ 'Unused classes found in noUnusedClass3.scss: foo-bar, alreadyCamelCased', ], }, { name: 'should detect if camel case properties are NOT used when camelCase=dashes-only', code: ` import s from './noUnusedClass3.scss'; export default Foo = () => (
); `, options: [{ camelCase: 'dashes-only' }], errors: [ 'Unused classes found in noUnusedClass3.scss: foo-bar, alreadyCamelCased, snake_cased', ], }, ].map((testCase) => addFilenameOption(testCase)), }); }); ================================================ FILE: test/utils.js ================================================ import path from 'path'; import { RuleTester as EslintRuleTester } from 'eslint'; import { test } from 'mocha'; /* pattern taken from eslint-plugin-import */ export function addFilenameOption (testCase) { return { ...testCase, // TODO: Find a way to remove this. filename: path.resolve(__dirname, './files/foo.js'), }; } /** * Customizing ESLint rule tester to be run by Mocha. * @see https://eslint.org/docs/latest/integrate/nodejs-api#customizing-ruletester */ EslintRuleTester.describe = (text, method) => { EslintRuleTester.it.title = text; return method.call(this); }; EslintRuleTester.it = (text, method) => { test(EslintRuleTester.it.title + ': ' + text, method); }; export const RuleTester = () => { return new EslintRuleTester({ parserOptions: { sourceType: 'module', ecmaVersion: 6, ecmaFeatures: { jsx: true }, }, }); };