diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..fb08b4e --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,36 @@ +module.exports = { + parser: 'babel-eslint', + plugins: [ 'flowtype' ], + + env: { + browser: true, + commonjs: true, + es6: true, + jest: true, + node: true + }, + + parserOptions: { + ecmaVersion: 6, + sourceType: 'module', + ecmaFeatures: { + experimentalObjectRestSpread: true + } + }, + + extends: [ + 'plugin:flowtype/recommended', + 'standard' + ], + + rules: { + 'object-curly-spacing': ['warn', 'always'], + 'no-duplicate-imports': 'off', + 'flowtype/no-weak-types': [0, { + 'any': false, + 'Object': false, + 'Function': false + }] + } +}; + diff --git a/.gitignore b/.gitignore index 9e84dc1..bda9819 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ lib/ +coverage/ node_modules/ - diff --git a/README.md b/README.md index 6067006..4d4f141 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,9 @@ -# REST Mobx +# mobx-rest REST conventions for mobx. [![Build Status](https://travis-ci.org/masylum/mobx-rest.svg?branch=master)](https://travis-ci.org/masylum/mobx-rest) +[![js-standard-style](https://cdn.rawgit.com/feross/standard/master/badge.svg)](http://standardjs.com) ![](https://media.giphy.com/media/b9QBHfcNpvqDK/giphy.gif) @@ -14,88 +15,514 @@ npm install mobx-rest --save ## What is it? -MobX is great to represent RESTful resources. Each resource can be represented -with a store which will the expected REST actions (`create`, `fetch`, `save`, `destroy`, ...). +An application state is usually divided into three realms: -Instead of writing hundreds of boilerplate lines we can leverage REST conventions -to deal with your API interactions. + - **Component state**: Each state can have their own state, like a button + being pressed, a text input value, etc. + - **Application state**: Sometimes we need components to share state between them and + they are too far away to actually make them talk each other through props. + - **Resources state**: Other times, state is persisted in the server. We syncronize + that state through APIs that consume *resources*. One way to syncronize this state + is through REST. -## Example +MobX is an excellent state management choice to deal with those three realms: +It allows you to represent your state as a graph while other solutions, +like Redux for instance, force you to represent your state as a tree. + +With `mobx-rest` resources are implemented with all their REST +actions built in (`create`, `fetch`, `save`, `destroy`, ...) so instead +of writing, over and over, hundreds of lines of boilerplate we can leverage +REST conventions to minimize the code needed for your API interactions. + +## Documentation + +`mobx-rest` is very simple and its source code can be read in 5 minutes. + +### `Model` + +A `Model` represents one resource. It's identified by a primary key (mandatory) and holds +its attributes. You can create, update and destroy models in the client and then sync +them with the server. A part from its attributes, a `Model` also holds the state of +the interactions with the server so you can react to those easily (showing loading states +for instance). + +#### `attributes: ObservableMap` + +An `ObservableMap` that holds the attributes of the model. + +#### `collection: ?Collection` + +A pointer to a `Collection`. By having models +"belong to" a collection you can take the most out +of `mobx-rest`. + +#### `request` + +A `Request` object that represents the state of the ongoing request, if any. + +#### `error` + +An `Error` object that represents the state of the failed request, if any. + +#### `constructor(attributes: Object)` + +Initialize the model with the given attributes. + +#### `toJS(): Object` + +Return the object version of the attributes. + +#### `primaryKey: string` + +Implement this abstract method so `mobx-rest` knows what to +use as a primary key. It defaults to `'id'` but if you use +something like mongodb you can change it to `'_id'`. + +#### `urlRoot(): string` + +Implement this abstract method so `mobx-rest` knows where +its API points to. If the model belongs to a `Collection` +(setting the `collection` attribute) this method does +not need to be implemented. + +#### `url(): string` + +Return the url for that given resource. Will leverage the +collection's base url (if any) or `urlRoot`. It uses the +primary id since that's REST convention. + +Example: `tasks.get(34).url() // => "/tasks/34"` + +#### `isRequest(label: string): boolean` + +Helper method that asks the model whether there is an ongoing +request with the given label. + +Example: `file.isRequest('saving')` + +#### `isNew: boolean` + +Return whether that model has been syncronized with the server or not. +Resources created in the client side (optimistically) don't have +and `id` attribute yet (that's given by the server) + +Example: + +```js +const user = new User({ name : 'Pau' }) +user.isNew // => true +user.save() +user.isNew // => false +user.get('id') // => 1 +``` + +#### `get(attribute: string): any` + +Get the given attribute. If the attribute does not exist, it will throw. + +#### `has(attribute: string): boolean` + +Check that the given attribute exists. + +#### `set(data: Object): void` + +Update the attributes in the client. + +Example: + +```js +const folder = new Folder({ name : 'Trash' }) +folder.get('name') // => 'Trash' +folder.set({ name: 'Rubbish' }) +folder.get('name') // => 'Rubbish' +``` + +#### `fetch(options): Promise` + +Request this resource's data from the server. It tracks the state +of the request using the label `fetching` and updates the resource when +the data is back from the API. + +Example: ```js +const task = new Task({ id: 3 }) +const promise = task.fetch() +task.isRequest('fetching') // => true +await promise +task.get('name') // => 'Do the laundry' +``` + +#### `save(attributes: Object, options: Object): Promise` + +The opposite of `fetch`. It takes the resource from the client and +persists it in the server through the API. It accepts some attributes +as the first argument so you can use it as a `set` + `save`. +It tracks the state of the request using the label `saving`. + +Options: + + - `optimistic = true` Whether we want to update the resource in the client + first or wait for the server's response. + - `patch = true` Whether we want to use the `PATCH` verb and semantics, sending + only the changed attributes instead of the whole resource down the wire. + +Example: + +```js +const company = new Company({ name: 'Teambox' }) +const promise = company.save({ name: 'Redbooth' }, { optimstic: false }) +company.isRequest('saving') // => true +company.get('name') // => 'Teambox' +await promise +company.get('name') // => 'Redbooth' +``` + +#### `destroy(options: Object): Promise` + +Tells the API to destroy this resource. + +Options: + + - `optimistic = true` Whether we want to delete the resource in the client + first or wait for the server's response. + +#### `rpc(method: 'string', body: {}): Promise` + +When dealing with REST there are always cases when we have some actions beyond +the conventions. Those are represented as `rpc` calls and are not opinionated. + +Example: + +```js +const response = await task.rpc('resolveSubtasks', { all: true }) +if (response.ok) { + task.subTasks.fetch() +} +``` + +### `Collection` + +A `Collection` represents a group of resources. Each element of a `Collection` is a `Model`. +Likewise, a collection tracks also the state of the interactions with the server so you +can react accordingly. + +#### `models: ObservableArray` + +An `ObservableArray` that holds the collection of models. + +#### `request: ?Request` + +A `Request` object that represents the state of the ongoing request, if any. + +#### `error: ?ErrorObject` + +An `Error` object that represents the state of the failed request, if any. + +#### `constructor(data: Array)` + +Initializes the collection with the given resources. + +#### `url(): string` + +Abstract method that must be implemented if you want your collection +and it's models to be able to interact with the API. + +#### `model(): Model` + +Abstract method that tells which kind of `Model` objects this collection +holds. This is used, for instance, when doing a `collection.create` so +we know which object to instantiate. + +#### `toJS(): Array` + +Return a plain data structure representing the collection of resources +without all the observable layer. + +#### `toArray(): Array` + +Return an array with the observable resources. + +#### `isRequest(label: string): boolean` + +Helper method that asks the collection whether there is an ongoing +request with the given label. + +Example: + +```js +filesCollection.isRequest('saving') +``` + +#### `isEmpty(): boolean` + +Helper method that asks the collection whether there is any +model in it. + +Example: + +```js +const promise = usersCollection.fetch() +usersCollection.isEmpty() // => true +await promise +usersCollection.isEmpty() // => false +usersCollection.models.length // => 10 +``` + +#### `at(index: number): ?Model` + +Find a model at the given position. + +#### `get(id: number): ?Model` + +Find a model (or not) with the given id. + +#### `filter(query: Object): Array` + +Helper method that filters the collection by the given conditions represented +as a key value. + +Example: + +```js +const resolvedTasks = tasksCollection.filter({ resolved: true }) +resolvedTasks.length // => 3 +``` + +#### `find(query: Object): ?Model` + +Same as `filter` but it will halt and return when the first model matches +the conditions. + +Example: + +```js +const pau = usersCollection.find({ name: 'pau' }) +pau.get('name') // => 'pau' +``` + +#### `add(data: Object): Array` + +Add a model with the given attributes. + +#### `remove(ids: Array): void` + +Remove any model with the given ids. + +Example: + +```js +usersCollection.remove([1, 2, 3]) +``` + +#### `set(models: Array, options: Object): void` + +Merge the given models smartly the current ones in the collection. +It detects what to add, remove and change. + +Options: + + - `add = true` Change to disable adding models + - `change = true` Change to disable updating models + - `remove = true` Change to disable removing models + +```js +const companiesCollection = new CompaniesCollection([ + { id: 1, name: 'Teambox' } + { id: 3, name: 'Zpeaker' } +]) +companiesCollection.set([ + { id: 1, name: 'Redbooth' }, + { id: 2, name: 'Factorial' } +]) +companiesCollection.get(1).get('name') // => 'Redbooth' +companiesCollection.get(2).get('name') // => 'Factorial' +companiesCollection.get(3) // => null +``` + +#### `build(attributes: Object): Model` + +Instantiates and links a model to the current collection. + +```js +const factorial = companiesCollection.build({ name: 'Factorial' }) +factorial.collection === companiesCollection // => true +factorial.get('name') // 'Factorial' +``` + +#### `create(target: Object | Model, options: Object)` + +Add and save to the server the given model. If attributes are given, +also it builds the model for you. It tracks the state of the request +using the label `creating`. + +Options: + + - `optimistic = true` Whether we want to create the resource in the client + first or wait for the server's response. + +```js +const promise = tasksCollection.create({ name: 'Do laundry' }) +tasksCollection.isRequest('creating') // => true +await promise +tasksCollection.at(0).get('name') // => 'Do laundry' +``` + +#### `fetch(options: Object)` + +Fetch the date from the server and then calls `set` to update the current +models. Accepts any option from the `set` method. + +```js +const promise = tasksCollection.fetch() +tasksCollection.isEmpty() // => true +tasksCollection.isRequest('fetching') // => true +await promise +tasksCollection.isEmpty() // => false +``` + +#### `rpc(method: 'string', body: {}): Promise` + +Exactly the same as the model one, but at the collection level. + +### `apiClient` + +This is the object that is going to make the `xhr` requests to interact with your API. +There is an example implementation for jQuery in the `mobx-rest-jquery-adapter` package. + +## Full Example + +A collection looks like this: + +```js +// TasksCollection.js const apiPath = '/api' import jqueryAdapter from 'mobx-rest-jquery-adapter' import { apiClient, Collection, Model } from 'mobx-rest' -// Set the adapter +// We will use the jQuery adapter to make the `xhr` calls apiClient(jqueryAdapter, { apiPath }) class Task extends Model { } class Tasks extends Collection { - url () { - return `/tasks` - } - - model () { - return Task - } + url () { return `/tasks` } + model () { return Task } } -const tasks = new Tasks() +// We instantiate the collection and export it as a singleton +export default new Tasks() +``` +And here an example of how to use React with it: + +```js +import tasksCollection from './TasksCollection' +import { computed } from 'mobx' import { observer } from 'mobx-react' @observer -class Companies extends React.Component { +class Task extends React.Component { + onClick () { + this.props.task.save({ resolved: true }) + } + + render () { + return ( +
  • + + {this.props.task.get('name')} +
  • + ) + } +} + +@observer +class Tasks extends React.Component { componentWillMount () { - tasks.fetch() + // This will call `/api/tasks?all=true` + tasksCollection.fetch({ data: { all: true } }) } - renderTask (task, i) { - return
  • + @computed + get activeTasks () { + return tasksCollection.filter({ resolved: false }) } render () { - if (tasks.isRequest('fetching')) { + if (tasksCollection.isRequest('fetching')) { return Fetching tasks... } - return
      {tasks.models.map(this.renderTask.bind(this))}
    + return ( +
    + {this.activeTasks.length} tasks +
      {activeTasks.map((task) => )}
    +
    + ) } } ``` -## Tree schema +## State shape + +Your collections and models will have the following state shape: -Your tree will have the following schema: +### Collection ```js -models: [ - { // Information at the resource level - optimisticId: String, // Client side id. Used for optimistic updates - request: { // An ongoing request - label: String, // Examples: 'updating', 'creating', 'fetching', 'destroying' ... - abort: Function, // A method to abort the ongoing request - }, - error: { // A failed request - label: String, // Examples: 'updating', 'creating', 'fetching', 'destroying' ... - body: String, // A string representing the error - }, - attributes: Object // The resource attributes - } -] // Information at the collection level +models: Array // This is where the models live request: { // An ongoing request - label: String, // Examples: 'updating', 'creating', 'fetching', 'destroying' ... - abort: Function, // A method to abort the ongoing request + label: string, // Examples: 'updating', 'creating', 'fetching', 'destroying' ... + abort: () => void, // A method to abort the ongoing request progress: number // If uploading a file, represents the progress }, error: { // A failed request - label: String, // Examples: 'updating', 'creating', 'fetching', 'destroying' ... + label: string, // Examples: 'updating', 'creating', 'fetching', 'destroying' ... body: Object, // A string representing the error } ``` +### Model + +```js +attributes: Object // The resource attributes +optimisticId: string, // Client side id. Used for optimistic updates +request: { // An ongoing request + label: string, // Examples: 'updating', 'creating', 'fetching', 'destroying' ... + abort: () => void, // A method to abort the ongoing request +}, +error: { // A failed request + label: string, // Examples: 'updating', 'creating', 'fetching', 'destroying' ... + body: string, // A string representing the error +}, +``` + +## FAQ + +### How do I create relations between the models? + +This is something that mobx makes really easy to achieve: + +```js +import usersCollection from './UsersCollections' +import { computed } from 'mobx' + +class Task extends Model { + @computed + author () { + const userId = this.get('userId') + return usersCollection.get(userId) || + usersCollection.nullObject() + } +} +``` + +I recommend to always fallback with a null object which will facilitate +a ton to write code like `task.author.get('name')`. + ## License (The MIT License) diff --git a/flow-typed/npm/babel-cli_vx.x.x.js b/flow-typed/npm/babel-cli_vx.x.x.js new file mode 100644 index 0000000..cade211 --- /dev/null +++ b/flow-typed/npm/babel-cli_vx.x.x.js @@ -0,0 +1,108 @@ +// flow-typed signature: 14fa8268165aaa802442727c9b0d7323 +// flow-typed version: <>/babel-cli_v^6.23.0/flow_v0.41.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'>; +} diff --git a/flow-typed/npm/babel-core_vx.x.x.js b/flow-typed/npm/babel-core_vx.x.x.js new file mode 100644 index 0000000..047fd44 --- /dev/null +++ b/flow-typed/npm/babel-core_vx.x.x.js @@ -0,0 +1,227 @@ +// flow-typed signature: fd778a43cab56666e05692c3482e3207 +// flow-typed version: <>/babel-core_v^6.23.1/flow_v0.41.0 + +/** + * This is an autogenerated libdef stub for: + * + * 'babel-core' + * + * 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-core' { + 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-core/lib/api/browser' { + declare module.exports: any; +} + +declare module 'babel-core/lib/api/node' { + declare module.exports: any; +} + +declare module 'babel-core/lib/helpers/get-possible-plugin-names' { + declare module.exports: any; +} + +declare module 'babel-core/lib/helpers/get-possible-preset-names' { + declare module.exports: any; +} + +declare module 'babel-core/lib/helpers/merge' { + declare module.exports: any; +} + +declare module 'babel-core/lib/helpers/normalize-ast' { + declare module.exports: any; +} + +declare module 'babel-core/lib/helpers/resolve-from-possible-names' { + declare module.exports: any; +} + +declare module 'babel-core/lib/helpers/resolve-plugin' { + declare module.exports: any; +} + +declare module 'babel-core/lib/helpers/resolve-preset' { + declare module.exports: any; +} + +declare module 'babel-core/lib/helpers/resolve' { + declare module.exports: any; +} + +declare module 'babel-core/lib/store' { + declare module.exports: any; +} + +declare module 'babel-core/lib/tools/build-external-helpers' { + declare module.exports: any; +} + +declare module 'babel-core/lib/transformation/file/index' { + declare module.exports: any; +} + +declare module 'babel-core/lib/transformation/file/logger' { + declare module.exports: any; +} + +declare module 'babel-core/lib/transformation/file/metadata' { + declare module.exports: any; +} + +declare module 'babel-core/lib/transformation/file/options/build-config-chain' { + declare module.exports: any; +} + +declare module 'babel-core/lib/transformation/file/options/config' { + declare module.exports: any; +} + +declare module 'babel-core/lib/transformation/file/options/index' { + declare module.exports: any; +} + +declare module 'babel-core/lib/transformation/file/options/option-manager' { + declare module.exports: any; +} + +declare module 'babel-core/lib/transformation/file/options/parsers' { + declare module.exports: any; +} + +declare module 'babel-core/lib/transformation/file/options/removed' { + declare module.exports: any; +} + +declare module 'babel-core/lib/transformation/internal-plugins/block-hoist' { + declare module.exports: any; +} + +declare module 'babel-core/lib/transformation/internal-plugins/shadow-functions' { + declare module.exports: any; +} + +declare module 'babel-core/lib/transformation/pipeline' { + declare module.exports: any; +} + +declare module 'babel-core/lib/transformation/plugin-pass' { + declare module.exports: any; +} + +declare module 'babel-core/lib/transformation/plugin' { + declare module.exports: any; +} + +declare module 'babel-core/lib/util' { + declare module.exports: any; +} + +declare module 'babel-core/register' { + declare module.exports: any; +} + +// Filename aliases +declare module 'babel-core/index' { + declare module.exports: $Exports<'babel-core'>; +} +declare module 'babel-core/index.js' { + declare module.exports: $Exports<'babel-core'>; +} +declare module 'babel-core/lib/api/browser.js' { + declare module.exports: $Exports<'babel-core/lib/api/browser'>; +} +declare module 'babel-core/lib/api/node.js' { + declare module.exports: $Exports<'babel-core/lib/api/node'>; +} +declare module 'babel-core/lib/helpers/get-possible-plugin-names.js' { + declare module.exports: $Exports<'babel-core/lib/helpers/get-possible-plugin-names'>; +} +declare module 'babel-core/lib/helpers/get-possible-preset-names.js' { + declare module.exports: $Exports<'babel-core/lib/helpers/get-possible-preset-names'>; +} +declare module 'babel-core/lib/helpers/merge.js' { + declare module.exports: $Exports<'babel-core/lib/helpers/merge'>; +} +declare module 'babel-core/lib/helpers/normalize-ast.js' { + declare module.exports: $Exports<'babel-core/lib/helpers/normalize-ast'>; +} +declare module 'babel-core/lib/helpers/resolve-from-possible-names.js' { + declare module.exports: $Exports<'babel-core/lib/helpers/resolve-from-possible-names'>; +} +declare module 'babel-core/lib/helpers/resolve-plugin.js' { + declare module.exports: $Exports<'babel-core/lib/helpers/resolve-plugin'>; +} +declare module 'babel-core/lib/helpers/resolve-preset.js' { + declare module.exports: $Exports<'babel-core/lib/helpers/resolve-preset'>; +} +declare module 'babel-core/lib/helpers/resolve.js' { + declare module.exports: $Exports<'babel-core/lib/helpers/resolve'>; +} +declare module 'babel-core/lib/store.js' { + declare module.exports: $Exports<'babel-core/lib/store'>; +} +declare module 'babel-core/lib/tools/build-external-helpers.js' { + declare module.exports: $Exports<'babel-core/lib/tools/build-external-helpers'>; +} +declare module 'babel-core/lib/transformation/file/index.js' { + declare module.exports: $Exports<'babel-core/lib/transformation/file/index'>; +} +declare module 'babel-core/lib/transformation/file/logger.js' { + declare module.exports: $Exports<'babel-core/lib/transformation/file/logger'>; +} +declare module 'babel-core/lib/transformation/file/metadata.js' { + declare module.exports: $Exports<'babel-core/lib/transformation/file/metadata'>; +} +declare module 'babel-core/lib/transformation/file/options/build-config-chain.js' { + declare module.exports: $Exports<'babel-core/lib/transformation/file/options/build-config-chain'>; +} +declare module 'babel-core/lib/transformation/file/options/config.js' { + declare module.exports: $Exports<'babel-core/lib/transformation/file/options/config'>; +} +declare module 'babel-core/lib/transformation/file/options/index.js' { + declare module.exports: $Exports<'babel-core/lib/transformation/file/options/index'>; +} +declare module 'babel-core/lib/transformation/file/options/option-manager.js' { + declare module.exports: $Exports<'babel-core/lib/transformation/file/options/option-manager'>; +} +declare module 'babel-core/lib/transformation/file/options/parsers.js' { + declare module.exports: $Exports<'babel-core/lib/transformation/file/options/parsers'>; +} +declare module 'babel-core/lib/transformation/file/options/removed.js' { + declare module.exports: $Exports<'babel-core/lib/transformation/file/options/removed'>; +} +declare module 'babel-core/lib/transformation/internal-plugins/block-hoist.js' { + declare module.exports: $Exports<'babel-core/lib/transformation/internal-plugins/block-hoist'>; +} +declare module 'babel-core/lib/transformation/internal-plugins/shadow-functions.js' { + declare module.exports: $Exports<'babel-core/lib/transformation/internal-plugins/shadow-functions'>; +} +declare module 'babel-core/lib/transformation/pipeline.js' { + declare module.exports: $Exports<'babel-core/lib/transformation/pipeline'>; +} +declare module 'babel-core/lib/transformation/plugin-pass.js' { + declare module.exports: $Exports<'babel-core/lib/transformation/plugin-pass'>; +} +declare module 'babel-core/lib/transformation/plugin.js' { + declare module.exports: $Exports<'babel-core/lib/transformation/plugin'>; +} +declare module 'babel-core/lib/util.js' { + declare module.exports: $Exports<'babel-core/lib/util'>; +} +declare module 'babel-core/register.js' { + declare module.exports: $Exports<'babel-core/register'>; +} diff --git a/flow-typed/npm/babel-eslint_vx.x.x.js b/flow-typed/npm/babel-eslint_vx.x.x.js new file mode 100644 index 0000000..083aa9f --- /dev/null +++ b/flow-typed/npm/babel-eslint_vx.x.x.js @@ -0,0 +1,73 @@ +// flow-typed signature: 22e5660f6ace1e8a35df70bd5fa9b751 +// flow-typed version: <>/babel-eslint_v^7.1.1/flow_v0.41.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'>; +} diff --git a/flow-typed/npm/babel-jest_vx.x.x.js b/flow-typed/npm/babel-jest_vx.x.x.js new file mode 100644 index 0000000..c1fadf2 --- /dev/null +++ b/flow-typed/npm/babel-jest_vx.x.x.js @@ -0,0 +1,32 @@ +// flow-typed signature: e29f857cbe719bd33494c101d3b55cd1 +// flow-typed version: <>/babel-jest_v^19.0.0/flow_v0.41.0 + +/** + * This is an autogenerated libdef stub for: + * + * 'babel-jest' + * + * 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-jest' { + 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-jest/build/index' { + declare module.exports: any; +} + +// Filename aliases +declare module 'babel-jest/build/index.js' { + declare module.exports: $Exports<'babel-jest/build/index'>; +} diff --git a/flow-typed/npm/babel-plugin-transform-decorators-legacy_vx.x.x.js b/flow-typed/npm/babel-plugin-transform-decorators-legacy_vx.x.x.js new file mode 100644 index 0000000..7dd4f13 --- /dev/null +++ b/flow-typed/npm/babel-plugin-transform-decorators-legacy_vx.x.x.js @@ -0,0 +1,32 @@ +// flow-typed signature: 793d051a31bf31fbe50358d49a6fcbb3 +// flow-typed version: <>/babel-plugin-transform-decorators-legacy_v^1.3.4/flow_v0.41.0 + +/** + * This is an autogenerated libdef stub for: + * + * 'babel-plugin-transform-decorators-legacy' + * + * 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-decorators-legacy' { + 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-decorators-legacy/lib/index' { + declare module.exports: any; +} + +// Filename aliases +declare module 'babel-plugin-transform-decorators-legacy/lib/index.js' { + declare module.exports: $Exports<'babel-plugin-transform-decorators-legacy/lib/index'>; +} diff --git a/flow-typed/npm/babel-plugin-transform-flow-strip-types_vx.x.x.js b/flow-typed/npm/babel-plugin-transform-flow-strip-types_vx.x.x.js new file mode 100644 index 0000000..9a8ac0b --- /dev/null +++ b/flow-typed/npm/babel-plugin-transform-flow-strip-types_vx.x.x.js @@ -0,0 +1,32 @@ +// flow-typed signature: 76a02125146cb48c4078050ec70abf62 +// flow-typed version: <>/babel-plugin-transform-flow-strip-types_v^6.22.0/flow_v0.41.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'>; +} diff --git a/flow-typed/npm/babel-polyfill_vx.x.x.js b/flow-typed/npm/babel-polyfill_vx.x.x.js new file mode 100644 index 0000000..cf5a867 --- /dev/null +++ b/flow-typed/npm/babel-polyfill_vx.x.x.js @@ -0,0 +1,67 @@ +// flow-typed signature: 678cc58163c53b800f837a7cb3c7ce77 +// flow-typed version: <>/babel-polyfill_v^6.23.0/flow_v0.41.0 + +/** + * This is an autogenerated libdef stub for: + * + * 'babel-polyfill' + * + * 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-polyfill' { + 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-polyfill/browser' { + declare module.exports: any; +} + +declare module 'babel-polyfill/dist/polyfill' { + declare module.exports: any; +} + +declare module 'babel-polyfill/dist/polyfill.min' { + declare module.exports: any; +} + +declare module 'babel-polyfill/lib/index' { + declare module.exports: any; +} + +declare module 'babel-polyfill/scripts/postpublish' { + declare module.exports: any; +} + +declare module 'babel-polyfill/scripts/prepublish' { + declare module.exports: any; +} + +// Filename aliases +declare module 'babel-polyfill/browser.js' { + declare module.exports: $Exports<'babel-polyfill/browser'>; +} +declare module 'babel-polyfill/dist/polyfill.js' { + declare module.exports: $Exports<'babel-polyfill/dist/polyfill'>; +} +declare module 'babel-polyfill/dist/polyfill.min.js' { + declare module.exports: $Exports<'babel-polyfill/dist/polyfill.min'>; +} +declare module 'babel-polyfill/lib/index.js' { + declare module.exports: $Exports<'babel-polyfill/lib/index'>; +} +declare module 'babel-polyfill/scripts/postpublish.js' { + declare module.exports: $Exports<'babel-polyfill/scripts/postpublish'>; +} +declare module 'babel-polyfill/scripts/prepublish.js' { + declare module.exports: $Exports<'babel-polyfill/scripts/prepublish'>; +} diff --git a/flow-typed/npm/babel-preset-es2015_vx.x.x.js b/flow-typed/npm/babel-preset-es2015_vx.x.x.js new file mode 100644 index 0000000..4ae40d7 --- /dev/null +++ b/flow-typed/npm/babel-preset-es2015_vx.x.x.js @@ -0,0 +1,32 @@ +// flow-typed signature: 6eb623682ef5eb10a84973a4658255b1 +// flow-typed version: <>/babel-preset-es2015_v^6.22.0/flow_v0.41.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'>; +} diff --git a/flow-typed/npm/babel-preset-stage-1_vx.x.x.js b/flow-typed/npm/babel-preset-stage-1_vx.x.x.js new file mode 100644 index 0000000..d3e576d --- /dev/null +++ b/flow-typed/npm/babel-preset-stage-1_vx.x.x.js @@ -0,0 +1,32 @@ +// flow-typed signature: 45cdf5fce1f463f67849a6c316586249 +// flow-typed version: <>/babel-preset-stage-1_v^6.22.0/flow_v0.41.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'>; +} diff --git a/flow-typed/npm/babel-register_vx.x.x.js b/flow-typed/npm/babel-register_vx.x.x.js new file mode 100644 index 0000000..9a63707 --- /dev/null +++ b/flow-typed/npm/babel-register_vx.x.x.js @@ -0,0 +1,46 @@ +// flow-typed signature: ff18a262d91ed65ceea0f7e9dff4202a +// flow-typed version: <>/babel-register_v^6.23.0/flow_v0.41.0 + +/** + * This is an autogenerated libdef stub for: + * + * 'babel-register' + * + * 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-register' { + 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-register/lib/browser' { + declare module.exports: any; +} + +declare module 'babel-register/lib/cache' { + declare module.exports: any; +} + +declare module 'babel-register/lib/node' { + declare module.exports: any; +} + +// Filename aliases +declare module 'babel-register/lib/browser.js' { + declare module.exports: $Exports<'babel-register/lib/browser'>; +} +declare module 'babel-register/lib/cache.js' { + declare module.exports: $Exports<'babel-register/lib/cache'>; +} +declare module 'babel-register/lib/node.js' { + declare module.exports: $Exports<'babel-register/lib/node'>; +} diff --git a/flow-typed/npm/eslint-config-standard_vx.x.x.js b/flow-typed/npm/eslint-config-standard_vx.x.x.js new file mode 100644 index 0000000..2517a96 --- /dev/null +++ b/flow-typed/npm/eslint-config-standard_vx.x.x.js @@ -0,0 +1,45 @@ +// flow-typed signature: 7eb4bd351d236c9bbefad6862a91fe8d +// flow-typed version: <>/eslint-config-standard_v^7.1.0/flow_v0.41.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'>; +} diff --git a/flow-typed/npm/eslint-plugin-flowtype_vx.x.x.js b/flow-typed/npm/eslint-plugin-flowtype_vx.x.x.js new file mode 100644 index 0000000..b385829 --- /dev/null +++ b/flow-typed/npm/eslint-plugin-flowtype_vx.x.x.js @@ -0,0 +1,319 @@ +// flow-typed signature: cbb05cd070538fe74a0a1962e9ccb630 +// flow-typed version: <>/eslint-plugin-flowtype_v2.30.3/flow_v0.41.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'>; +} diff --git a/flow-typed/npm/eslint-plugin-import_vx.x.x.js b/flow-typed/npm/eslint-plugin-import_vx.x.x.js new file mode 100644 index 0000000..dbec350 --- /dev/null +++ b/flow-typed/npm/eslint-plugin-import_vx.x.x.js @@ -0,0 +1,326 @@ +// flow-typed signature: 4cfe4ed9672a8800e1fb4e3ff3538781 +// flow-typed version: <>/eslint-plugin-import_v^2.2.0/flow_v0.41.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'>; +} diff --git a/flow-typed/npm/eslint-plugin-node_vx.x.x.js b/flow-typed/npm/eslint-plugin-node_vx.x.x.js new file mode 100644 index 0000000..0fcb446 --- /dev/null +++ b/flow-typed/npm/eslint-plugin-node_vx.x.x.js @@ -0,0 +1,220 @@ +// flow-typed signature: 89ee5e5a5790f7da50527cb6798a79e0 +// flow-typed version: <>/eslint-plugin-node_v^4.2.1/flow_v0.41.0 + +/** + * This is an autogenerated libdef stub for: + * + * 'eslint-plugin-node' + * + * 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-node' { + 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-node/lib/rules/exports-style' { + declare module.exports: any; +} + +declare module 'eslint-plugin-node/lib/rules/no-deprecated-api' { + declare module.exports: any; +} + +declare module 'eslint-plugin-node/lib/rules/no-hide-core-modules' { + declare module.exports: any; +} + +declare module 'eslint-plugin-node/lib/rules/no-missing-import' { + declare module.exports: any; +} + +declare module 'eslint-plugin-node/lib/rules/no-missing-require' { + declare module.exports: any; +} + +declare module 'eslint-plugin-node/lib/rules/no-unpublished-bin' { + declare module.exports: any; +} + +declare module 'eslint-plugin-node/lib/rules/no-unpublished-import' { + declare module.exports: any; +} + +declare module 'eslint-plugin-node/lib/rules/no-unpublished-require' { + declare module.exports: any; +} + +declare module 'eslint-plugin-node/lib/rules/no-unsupported-features' { + declare module.exports: any; +} + +declare module 'eslint-plugin-node/lib/rules/process-exit-as-throw' { + declare module.exports: any; +} + +declare module 'eslint-plugin-node/lib/rules/shebang' { + declare module.exports: any; +} + +declare module 'eslint-plugin-node/lib/util/cache' { + declare module.exports: any; +} + +declare module 'eslint-plugin-node/lib/util/check-existence' { + declare module.exports: any; +} + +declare module 'eslint-plugin-node/lib/util/check-publish' { + declare module.exports: any; +} + +declare module 'eslint-plugin-node/lib/util/deprecated-apis' { + declare module.exports: any; +} + +declare module 'eslint-plugin-node/lib/util/exists' { + declare module.exports: any; +} + +declare module 'eslint-plugin-node/lib/util/features' { + declare module.exports: any; +} + +declare module 'eslint-plugin-node/lib/util/get-allow-modules' { + declare module.exports: any; +} + +declare module 'eslint-plugin-node/lib/util/get-convert-path' { + declare module.exports: any; +} + +declare module 'eslint-plugin-node/lib/util/get-import-export-targets' { + declare module.exports: any; +} + +declare module 'eslint-plugin-node/lib/util/get-npmignore' { + declare module.exports: any; +} + +declare module 'eslint-plugin-node/lib/util/get-package-json' { + declare module.exports: any; +} + +declare module 'eslint-plugin-node/lib/util/get-require-targets' { + declare module.exports: any; +} + +declare module 'eslint-plugin-node/lib/util/get-try-extensions' { + declare module.exports: any; +} + +declare module 'eslint-plugin-node/lib/util/get-value-if-string' { + declare module.exports: any; +} + +declare module 'eslint-plugin-node/lib/util/import-target' { + declare module.exports: any; +} + +declare module 'eslint-plugin-node/lib/util/strip-import-path-params' { + declare module.exports: any; +} + +// Filename aliases +declare module 'eslint-plugin-node/index' { + declare module.exports: $Exports<'eslint-plugin-node'>; +} +declare module 'eslint-plugin-node/index.js' { + declare module.exports: $Exports<'eslint-plugin-node'>; +} +declare module 'eslint-plugin-node/lib/rules/exports-style.js' { + declare module.exports: $Exports<'eslint-plugin-node/lib/rules/exports-style'>; +} +declare module 'eslint-plugin-node/lib/rules/no-deprecated-api.js' { + declare module.exports: $Exports<'eslint-plugin-node/lib/rules/no-deprecated-api'>; +} +declare module 'eslint-plugin-node/lib/rules/no-hide-core-modules.js' { + declare module.exports: $Exports<'eslint-plugin-node/lib/rules/no-hide-core-modules'>; +} +declare module 'eslint-plugin-node/lib/rules/no-missing-import.js' { + declare module.exports: $Exports<'eslint-plugin-node/lib/rules/no-missing-import'>; +} +declare module 'eslint-plugin-node/lib/rules/no-missing-require.js' { + declare module.exports: $Exports<'eslint-plugin-node/lib/rules/no-missing-require'>; +} +declare module 'eslint-plugin-node/lib/rules/no-unpublished-bin.js' { + declare module.exports: $Exports<'eslint-plugin-node/lib/rules/no-unpublished-bin'>; +} +declare module 'eslint-plugin-node/lib/rules/no-unpublished-import.js' { + declare module.exports: $Exports<'eslint-plugin-node/lib/rules/no-unpublished-import'>; +} +declare module 'eslint-plugin-node/lib/rules/no-unpublished-require.js' { + declare module.exports: $Exports<'eslint-plugin-node/lib/rules/no-unpublished-require'>; +} +declare module 'eslint-plugin-node/lib/rules/no-unsupported-features.js' { + declare module.exports: $Exports<'eslint-plugin-node/lib/rules/no-unsupported-features'>; +} +declare module 'eslint-plugin-node/lib/rules/process-exit-as-throw.js' { + declare module.exports: $Exports<'eslint-plugin-node/lib/rules/process-exit-as-throw'>; +} +declare module 'eslint-plugin-node/lib/rules/shebang.js' { + declare module.exports: $Exports<'eslint-plugin-node/lib/rules/shebang'>; +} +declare module 'eslint-plugin-node/lib/util/cache.js' { + declare module.exports: $Exports<'eslint-plugin-node/lib/util/cache'>; +} +declare module 'eslint-plugin-node/lib/util/check-existence.js' { + declare module.exports: $Exports<'eslint-plugin-node/lib/util/check-existence'>; +} +declare module 'eslint-plugin-node/lib/util/check-publish.js' { + declare module.exports: $Exports<'eslint-plugin-node/lib/util/check-publish'>; +} +declare module 'eslint-plugin-node/lib/util/deprecated-apis.js' { + declare module.exports: $Exports<'eslint-plugin-node/lib/util/deprecated-apis'>; +} +declare module 'eslint-plugin-node/lib/util/exists.js' { + declare module.exports: $Exports<'eslint-plugin-node/lib/util/exists'>; +} +declare module 'eslint-plugin-node/lib/util/features.js' { + declare module.exports: $Exports<'eslint-plugin-node/lib/util/features'>; +} +declare module 'eslint-plugin-node/lib/util/get-allow-modules.js' { + declare module.exports: $Exports<'eslint-plugin-node/lib/util/get-allow-modules'>; +} +declare module 'eslint-plugin-node/lib/util/get-convert-path.js' { + declare module.exports: $Exports<'eslint-plugin-node/lib/util/get-convert-path'>; +} +declare module 'eslint-plugin-node/lib/util/get-import-export-targets.js' { + declare module.exports: $Exports<'eslint-plugin-node/lib/util/get-import-export-targets'>; +} +declare module 'eslint-plugin-node/lib/util/get-npmignore.js' { + declare module.exports: $Exports<'eslint-plugin-node/lib/util/get-npmignore'>; +} +declare module 'eslint-plugin-node/lib/util/get-package-json.js' { + declare module.exports: $Exports<'eslint-plugin-node/lib/util/get-package-json'>; +} +declare module 'eslint-plugin-node/lib/util/get-require-targets.js' { + declare module.exports: $Exports<'eslint-plugin-node/lib/util/get-require-targets'>; +} +declare module 'eslint-plugin-node/lib/util/get-try-extensions.js' { + declare module.exports: $Exports<'eslint-plugin-node/lib/util/get-try-extensions'>; +} +declare module 'eslint-plugin-node/lib/util/get-value-if-string.js' { + declare module.exports: $Exports<'eslint-plugin-node/lib/util/get-value-if-string'>; +} +declare module 'eslint-plugin-node/lib/util/import-target.js' { + declare module.exports: $Exports<'eslint-plugin-node/lib/util/import-target'>; +} +declare module 'eslint-plugin-node/lib/util/strip-import-path-params.js' { + declare module.exports: $Exports<'eslint-plugin-node/lib/util/strip-import-path-params'>; +} diff --git a/flow-typed/npm/eslint-plugin-promise_vx.x.x.js b/flow-typed/npm/eslint-plugin-promise_vx.x.x.js new file mode 100644 index 0000000..4a6993d --- /dev/null +++ b/flow-typed/npm/eslint-plugin-promise_vx.x.x.js @@ -0,0 +1,150 @@ +// flow-typed signature: 8926b9a9877d2445baa486ff6e88f350 +// flow-typed version: <>/eslint-plugin-promise_v^3.5.0/flow_v0.41.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'>; +} diff --git a/flow-typed/npm/eslint-plugin-standard_vx.x.x.js b/flow-typed/npm/eslint-plugin-standard_vx.x.x.js new file mode 100644 index 0000000..b74e50c --- /dev/null +++ b/flow-typed/npm/eslint-plugin-standard_vx.x.x.js @@ -0,0 +1,87 @@ +// flow-typed signature: 42ec1d98ab206726b2e0908003c13139 +// flow-typed version: <>/eslint-plugin-standard_v^2.1.1/flow_v0.41.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/no-callback-literal' { + 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/no-callback-literal' { + 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/no-callback-literal.js' { + declare module.exports: $Exports<'eslint-plugin-standard/rules/no-callback-literal'>; +} +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/no-callback-literal.js' { + declare module.exports: $Exports<'eslint-plugin-standard/tests/no-callback-literal'>; +} +declare module 'eslint-plugin-standard/tests/object-curly-even-spacing.js' { + declare module.exports: $Exports<'eslint-plugin-standard/tests/object-curly-even-spacing'>; +} diff --git a/flow-typed/npm/eslint_vx.x.x.js b/flow-typed/npm/eslint_vx.x.x.js new file mode 100644 index 0000000..c1d102e --- /dev/null +++ b/flow-typed/npm/eslint_vx.x.x.js @@ -0,0 +1,2293 @@ +// flow-typed signature: c2e98bbf87d41277ca3e7e56b7459f90 +// flow-typed version: <>/eslint_v^3.18.0/flow_v0.41.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-compare-neg-zero' { + 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/nonblock-statement-body-position' { + 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/fix-tracker' { + 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-compare-neg-zero.js' { + declare module.exports: $Exports<'eslint/lib/rules/no-compare-neg-zero'>; +} +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/nonblock-statement-body-position.js' { + declare module.exports: $Exports<'eslint/lib/rules/nonblock-statement-body-position'>; +} +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/fix-tracker.js' { + declare module.exports: $Exports<'eslint/lib/util/fix-tracker'>; +} +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'>; +} diff --git a/flow-typed/npm/flow-bin_v0.x.x.js b/flow-typed/npm/flow-bin_v0.x.x.js new file mode 100644 index 0000000..c538e20 --- /dev/null +++ b/flow-typed/npm/flow-bin_v0.x.x.js @@ -0,0 +1,6 @@ +// 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; +} diff --git a/flow-typed/npm/jest_v19.x.x.js b/flow-typed/npm/jest_v19.x.x.js new file mode 100644 index 0000000..fd4797c --- /dev/null +++ b/flow-typed/npm/jest_v19.x.x.js @@ -0,0 +1,449 @@ +// flow-typed signature: adc2f239806ddd8eb09272d1b4e23cb9 +// flow-typed version: 7dc2a8971e/jest_v19.x.x/flow_>=v0.33.x + +type JestMockFn = { + (...args: Array): any, + /** + * An object for introspecting mock calls + */ + mock: { + /** + * An array that represents all calls that have been made into this mock + * function. Each call is represented by an array of arguments that were + * passed during the call. + */ + calls: Array>, + /** + * An array that contains all the object instances that have been + * instantiated from this mock function. + */ + instances: mixed, + }, + /** + * Resets all information stored in the mockFn.mock.calls and + * mockFn.mock.instances arrays. Often this is useful when you want to clean + * up a mock's usage data between two assertions. + */ + mockClear(): Function, + /** + * Resets all information stored in the mock. This is useful when you want to + * completely restore a mock back to its initial state. + */ + mockReset(): Function, + /** + * Accepts a function that should be used as the implementation of the mock. + * The mock itself will still record all calls that go into and instances + * that come from itself -- the only difference is that the implementation + * will also be executed when the mock is called. + */ + mockImplementation(fn: Function): JestMockFn, + /** + * Accepts a function that will be used as an implementation of the mock for + * one call to the mocked function. Can be chained so that multiple function + * calls produce different results. + */ + mockImplementationOnce(fn: Function): JestMockFn, + /** + * Just a simple sugar function for returning `this` + */ + mockReturnThis(): void, + /** + * Deprecated: use jest.fn(() => value) instead + */ + mockReturnValue(value: any): JestMockFn, + /** + * Sugar for only returning a value once inside your mock + */ + mockReturnValueOnce(value: any): JestMockFn, +} + +type JestAsymmetricEqualityType = { + /** + * A custom Jasmine equality tester + */ + asymmetricMatch(value: mixed): boolean, +} + +type JestCallsType = { + allArgs(): mixed, + all(): mixed, + any(): boolean, + count(): number, + first(): mixed, + mostRecent(): mixed, + reset(): void, +} + +type JestClockType = { + install(): void, + mockDate(date: Date): void, + tick(): void, + uninstall(): void, +} + +type JestMatcherResult = { + message?: string | ()=>string, + pass: boolean, +} + +type JestMatcher = (actual: any, expected: any) => JestMatcherResult; + +type JestExpectType = { + not: JestExpectType, + /** + * If you have a mock function, you can use .lastCalledWith to test what + * arguments it was last called with. + */ + lastCalledWith(...args: Array): void, + /** + * toBe just checks that a value is what you expect. It uses === to check + * strict equality. + */ + toBe(value: any): void, + /** + * Use .toHaveBeenCalled to ensure that a mock function got called. + */ + toBeCalled(): void, + /** + * Use .toBeCalledWith to ensure that a mock function was called with + * specific arguments. + */ + toBeCalledWith(...args: Array): void, + /** + * Using exact equality with floating point numbers is a bad idea. Rounding + * means that intuitive things fail. + */ + toBeCloseTo(num: number, delta: any): void, + /** + * Use .toBeDefined to check that a variable is not undefined. + */ + toBeDefined(): void, + /** + * Use .toBeFalsy when you don't care what a value is, you just want to + * ensure a value is false in a boolean context. + */ + toBeFalsy(): void, + /** + * To compare floating point numbers, you can use toBeGreaterThan. + */ + toBeGreaterThan(number: number): void, + /** + * To compare floating point numbers, you can use toBeGreaterThanOrEqual. + */ + toBeGreaterThanOrEqual(number: number): void, + /** + * To compare floating point numbers, you can use toBeLessThan. + */ + toBeLessThan(number: number): void, + /** + * To compare floating point numbers, you can use toBeLessThanOrEqual. + */ + toBeLessThanOrEqual(number: number): void, + /** + * Use .toBeInstanceOf(Class) to check that an object is an instance of a + * class. + */ + toBeInstanceOf(cls: Class<*>): void, + /** + * .toBeNull() is the same as .toBe(null) but the error messages are a bit + * nicer. + */ + toBeNull(): void, + /** + * Use .toBeTruthy when you don't care what a value is, you just want to + * ensure a value is true in a boolean context. + */ + toBeTruthy(): void, + /** + * Use .toBeUndefined to check that a variable is undefined. + */ + toBeUndefined(): void, + /** + * Use .toContain when you want to check that an item is in a list. For + * testing the items in the list, this uses ===, a strict equality check. + */ + toContain(item: any): void, + /** + * Use .toContainEqual when you want to check that an item is in a list. For + * testing the items in the list, this matcher recursively checks the + * equality of all fields, rather than checking for object identity. + */ + toContainEqual(item: any): void, + /** + * Use .toEqual when you want to check that two objects have the same value. + * This matcher recursively checks the equality of all fields, rather than + * checking for object identity. + */ + toEqual(value: any): void, + /** + * Use .toHaveBeenCalled to ensure that a mock function got called. + */ + toHaveBeenCalled(): void, + /** + * Use .toHaveBeenCalledTimes to ensure that a mock function got called exact + * number of times. + */ + toHaveBeenCalledTimes(number: number): void, + /** + * Use .toHaveBeenCalledWith to ensure that a mock function was called with + * specific arguments. + */ + toHaveBeenCalledWith(...args: Array): void, + /** + * Check that an object has a .length property and it is set to a certain + * numeric value. + */ + toHaveLength(number: number): void, + /** + * + */ + toHaveProperty(propPath: string, value?: any): void, + /** + * Use .toMatch to check that a string matches a regular expression. + */ + toMatch(regexp: RegExp): void, + /** + * Use .toMatchObject to check that a javascript object matches a subset of the properties of an object. + */ + toMatchObject(object: Object): void, + /** + * This ensures that a React component matches the most recent snapshot. + */ + toMatchSnapshot(name?: string): void, + /** + * Use .toThrow to test that a function throws when it is called. + */ + toThrow(message?: string | Error): void, + /** + * Use .toThrowError to test that a function throws a specific error when it + * is called. The argument can be a string for the error message, a class for + * the error, or a regex that should match the error. + */ + toThrowError(message?: string | Error | RegExp): void, + /** + * Use .toThrowErrorMatchingSnapshot to test that a function throws a error + * matching the most recent snapshot when it is called. + */ + toThrowErrorMatchingSnapshot(): void, +} + +type JestObjectType = { + /** + * Disables automatic mocking in the module loader. + * + * After this method is called, all `require()`s will return the real + * versions of each module (rather than a mocked version). + */ + disableAutomock(): JestObjectType, + /** + * An un-hoisted version of disableAutomock + */ + autoMockOff(): JestObjectType, + /** + * Enables automatic mocking in the module loader. + */ + enableAutomock(): JestObjectType, + /** + * An un-hoisted version of enableAutomock + */ + autoMockOn(): JestObjectType, + /** + * Resets the state of all mocks. Equivalent to calling .mockReset() on every + * mocked function. + */ + resetAllMocks(): JestObjectType, + /** + * Removes any pending timers from the timer system. + */ + clearAllTimers(): void, + /** + * The same as `mock` but not moved to the top of the expectation by + * babel-jest. + */ + doMock(moduleName: string, moduleFactory?: any): JestObjectType, + /** + * The same as `unmock` but not moved to the top of the expectation by + * babel-jest. + */ + dontMock(moduleName: string): JestObjectType, + /** + * Returns a new, unused mock function. Optionally takes a mock + * implementation. + */ + fn(implementation?: Function): JestMockFn, + /** + * Determines if the given function is a mocked function. + */ + isMockFunction(fn: Function): boolean, + /** + * Given the name of a module, use the automatic mocking system to generate a + * mocked version of the module for you. + */ + genMockFromModule(moduleName: string): any, + /** + * Mocks a module with an auto-mocked version when it is being required. + * + * The second argument can be used to specify an explicit module factory that + * is being run instead of using Jest's automocking feature. + * + * The third argument can be used to create virtual mocks -- mocks of modules + * that don't exist anywhere in the system. + */ + mock(moduleName: string, moduleFactory?: any): JestObjectType, + /** + * Resets the module registry - the cache of all required modules. This is + * useful to isolate modules where local state might conflict between tests. + */ + resetModules(): JestObjectType, + /** + * Exhausts the micro-task queue (usually interfaced in node via + * process.nextTick). + */ + runAllTicks(): void, + /** + * Exhausts the macro-task queue (i.e., all tasks queued by setTimeout(), + * setInterval(), and setImmediate()). + */ + runAllTimers(): void, + /** + * Exhausts all tasks queued by setImmediate(). + */ + runAllImmediates(): void, + /** + * Executes only the macro task queue (i.e. all tasks queued by setTimeout() + * or setInterval() and setImmediate()). + */ + runTimersToTime(msToRun: number): void, + /** + * Executes only the macro-tasks that are currently pending (i.e., only the + * tasks that have been queued by setTimeout() or setInterval() up to this + * point) + */ + runOnlyPendingTimers(): void, + /** + * Explicitly supplies the mock object that the module system should return + * for the specified module. Note: It is recommended to use jest.mock() + * instead. + */ + setMock(moduleName: string, moduleExports: any): JestObjectType, + /** + * Indicates that the module system should never return a mocked version of + * the specified module from require() (e.g. that it should always return the + * real module). + */ + unmock(moduleName: string): JestObjectType, + /** + * Instructs Jest to use fake versions of the standard timer functions + * (setTimeout, setInterval, clearTimeout, clearInterval, nextTick, + * setImmediate and clearImmediate). + */ + useFakeTimers(): JestObjectType, + /** + * Instructs Jest to use the real versions of the standard timer functions. + */ + useRealTimers(): JestObjectType, + /** + * Creates a mock function similar to jest.fn but also tracks calls to + * object[methodName]. + */ + spyOn(object: Object, methodName: string): JestMockFn, +} + +type JestSpyType = { + calls: JestCallsType, +} + +/** Runs this function after every test inside this context */ +declare function afterEach(fn: Function): void; +/** Runs this function before every test inside this context */ +declare function beforeEach(fn: Function): void; +/** Runs this function after all tests have finished inside this context */ +declare function afterAll(fn: Function): void; +/** Runs this function before any tests have started inside this context */ +declare function beforeAll(fn: Function): void; +/** A context for grouping tests together */ +declare function describe(name: string, fn: Function): void; + +/** An individual test unit */ +declare var it: { + /** + * An individual test unit + * + * @param {string} Name of Test + * @param {Function} Test + */ + (name: string, fn?: Function): ?Promise, + /** + * Only run this test + * + * @param {string} Name of Test + * @param {Function} Test + */ + only(name: string, fn?: Function): ?Promise, + /** + * Skip running this test + * + * @param {string} Name of Test + * @param {Function} Test + */ + skip(name: string, fn?: Function): ?Promise, + /** + * Run the test concurrently + * + * @param {string} Name of Test + * @param {Function} Test + */ + concurrent(name: string, fn?: Function): ?Promise, +}; +declare function fit(name: string, fn: Function): ?Promise; +/** An individual test unit */ +declare var test: typeof it; +/** A disabled group of tests */ +declare var xdescribe: typeof describe; +/** A focused group of tests */ +declare var fdescribe: typeof describe; +/** A disabled individual test */ +declare var xit: typeof it; +/** A disabled individual test */ +declare var xtest: typeof it; + +/** The expect function is used every time you want to test a value */ +declare var expect: { + /** The object that you want to make assertions against */ + (value: any): JestExpectType, + /** Add additional Jasmine matchers to Jest's roster */ + extend(matchers: {[name:string]: JestMatcher}): void, + /** Add a module that formats application-specific data structures. */ + addSnapshotSerializer(serializer: (input: Object) => string): void, + assertions(expectedAssertions: number): void, + any(value: mixed): JestAsymmetricEqualityType, + anything(): void, + arrayContaining(value: Array): void, + objectContaining(value: Object): void, + /** Matches any received string that contains the exact expected string. */ + stringContaining(value: string): void, + stringMatching(value: string | RegExp): void, +}; + +// TODO handle return type +// http://jasmine.github.io/2.4/introduction.html#section-Spies +declare function spyOn(value: mixed, method: string): Object; + +/** Holds all functions related to manipulating test runner */ +declare var jest: JestObjectType + +/** + * The global Jamine object, this is generally not exposed as the public API, + * using features inside here could break in later versions of Jest. + */ +declare var jasmine: { + DEFAULT_TIMEOUT_INTERVAL: number, + any(value: mixed): JestAsymmetricEqualityType, + anything(): void, + arrayContaining(value: Array): void, + clock(): JestClockType, + createSpy(name: string): JestSpyType, + createSpyObj(baseName: string, methodNames: Array): {[methodName: string]: JestSpyType}, + objectContaining(value: Object): void, + stringMatching(value: string): void, +} diff --git a/flow-typed/npm/lodash_v4.x.x.js b/flow-typed/npm/lodash_v4.x.x.js new file mode 100644 index 0000000..dd6d380 --- /dev/null +++ b/flow-typed/npm/lodash_v4.x.x.js @@ -0,0 +1,513 @@ +// flow-typed signature: 78dae8071af35cd03d9d90192a5461d9 +// flow-typed version: e26b789976/lodash_v4.x.x/flow_>=v0.38.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; +} diff --git a/flow-typed/npm/prettier-standard_vx.x.x.js b/flow-typed/npm/prettier-standard_vx.x.x.js new file mode 100644 index 0000000..30f88f4 --- /dev/null +++ b/flow-typed/npm/prettier-standard_vx.x.x.js @@ -0,0 +1,109 @@ +// flow-typed signature: a69f4801d27e8c65d980f0986e133a22 +// flow-typed version: <>/prettier-standard_v^1.0.6/flow_v0.41.0 + +/** + * This is an autogenerated libdef stub for: + * + * 'prettier-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 'prettier-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 'prettier-standard/lib/format-files' { + declare module.exports: any; +} + +declare module 'prettier-standard/lib/format-files.test' { + declare module.exports: any; +} + +declare module 'prettier-standard/lib/index' { + declare module.exports: any; +} + +declare module 'prettier-standard/lib/message.test' { + declare module.exports: any; +} + +declare module 'prettier-standard/lib/messages' { + declare module.exports: any; +} + +declare module 'prettier-standard/lib/no-main' { + declare module.exports: any; +} + +declare module 'prettier-standard/src/format-files' { + declare module.exports: any; +} + +declare module 'prettier-standard/src/format-files.test' { + declare module.exports: any; +} + +declare module 'prettier-standard/src/index' { + declare module.exports: any; +} + +declare module 'prettier-standard/src/message.test' { + declare module.exports: any; +} + +declare module 'prettier-standard/src/messages' { + declare module.exports: any; +} + +declare module 'prettier-standard/src/no-main' { + declare module.exports: any; +} + +// Filename aliases +declare module 'prettier-standard/lib/format-files.js' { + declare module.exports: $Exports<'prettier-standard/lib/format-files'>; +} +declare module 'prettier-standard/lib/format-files.test.js' { + declare module.exports: $Exports<'prettier-standard/lib/format-files.test'>; +} +declare module 'prettier-standard/lib/index.js' { + declare module.exports: $Exports<'prettier-standard/lib/index'>; +} +declare module 'prettier-standard/lib/message.test.js' { + declare module.exports: $Exports<'prettier-standard/lib/message.test'>; +} +declare module 'prettier-standard/lib/messages.js' { + declare module.exports: $Exports<'prettier-standard/lib/messages'>; +} +declare module 'prettier-standard/lib/no-main.js' { + declare module.exports: $Exports<'prettier-standard/lib/no-main'>; +} +declare module 'prettier-standard/src/format-files.js' { + declare module.exports: $Exports<'prettier-standard/src/format-files'>; +} +declare module 'prettier-standard/src/format-files.test.js' { + declare module.exports: $Exports<'prettier-standard/src/format-files.test'>; +} +declare module 'prettier-standard/src/index.js' { + declare module.exports: $Exports<'prettier-standard/src/index'>; +} +declare module 'prettier-standard/src/message.test.js' { + declare module.exports: $Exports<'prettier-standard/src/message.test'>; +} +declare module 'prettier-standard/src/messages.js' { + declare module.exports: $Exports<'prettier-standard/src/messages'>; +} +declare module 'prettier-standard/src/no-main.js' { + declare module.exports: $Exports<'prettier-standard/src/no-main'>; +} diff --git a/package.json b/package.json index b278548..d9a33d7 100644 --- a/package.json +++ b/package.json @@ -8,11 +8,22 @@ }, "license": "MIT", "jest": { - "testRegex": "/__tests__/.*\\.spec\\.js$" + "collectCoverage": true, + "testRegex": "/__tests__/.*\\.spec\\.js$", + "collectCoverageFrom": [ + "src/**/*.js" + ] }, "standard": { "parser": "babel-eslint", - "globals": [ "it", "describe", "beforeEach", "expect", "Class", "jest" ] + "globals": [ + "it", + "describe", + "beforeEach", + "expect", + "Class", + "jest" + ] }, "dependencies": { "lodash": "^4.17.4", @@ -29,18 +40,36 @@ "babel-preset-es2015": "^6.22.0", "babel-preset-stage-1": "^6.22.0", "babel-register": "^6.23.0", + "eslint": "^3.18.0", + "eslint-config-standard": "^7.1.0", + "eslint-plugin-flowtype": "2.30.3", + "eslint-plugin-import": "^2.2.0", + "eslint-plugin-node": "^4.2.1", + "eslint-plugin-promise": "^3.5.0", + "eslint-plugin-standard": "^2.1.1", "flow-bin": "^0.41.0", + "husky": "^0.13.2", "jest": "^19.0.2", - "snazzy": "^6.0.0", - "standard": "^9.0.1" + "lint-staged": "^3.4.0", + "prettier-standard": "^1.0.6" }, "main": "lib", "scripts": { - "compile": "./node_modules/.bin/babel src --out-dir lib", + "compile": "babel src --out-dir lib", "prepublish": "npm run compile", "jest": "BABEL_ENV=test NODE_PATH=src jest --no-cache", - "lint": "standard --verbose | snazzy", + "lint": "eslint src __tests__", "flow": "flow", - "test": "npm run flow && npm run lint && npm run jest" + "test": "npm run flow && npm run lint && npm run jest", + "format": "prettier-standard --print-width 60 'src/**/*.js'", + "prepush": "npm test", + "lint-staged": { + "linters": { + "src/**/*.js": [ + "prettier-standard", + "git add" + ] + } + } } } diff --git a/src/Collection.js b/src/Collection.js index c64cc01..98fe8e6 100644 --- a/src/Collection.js +++ b/src/Collection.js @@ -17,11 +17,11 @@ import apiClient from './apiClient' import type { Label, CreateOptions, SetOptions, Id } from './types' export default class Collection { - @observable request: ?Request = null - @observable error: ?ErrorObject = null - @observable models: IObservableArray = [] + @observable request: ?Request = null; + @observable error: ?ErrorObject = null; + @observable models: IObservableArray = []; - constructor (data: Array<{[key: string]: any}> = []) { + constructor (data: Array<{ [key: string]: any }> = []) { this.set(data) } @@ -78,8 +78,7 @@ export default class Collection { * Gets the ids of all the items in the collection */ _ids (): Array { - return map(this.models, (item) => item.id) - .filter(Boolean) + return map(this.models, item => item.id).filter(Boolean) } /** @@ -93,13 +92,13 @@ export default class Collection { * Get a resource with the given id or uuid */ get (id: Id): ?T { - return this.models.find((item) => item.id === id) + return this.models.find(item => item.id === id) } /** * Get resources matching criteria */ - filter (query: {[key: string]: any} = {}): Array { + filter (query: { [key: string]: any } = {}): Array { return filter(this.models, ({ attributes }) => { return isMatch(attributes.toJS(), query) }) @@ -108,7 +107,7 @@ export default class Collection { /** * Finds an element with the given matcher */ - find (query: {[key: string]: mixed}): ?T { + find (query: { [key: string]: mixed }): ?T { return find(this.models, ({ attributes }) => { return isMatch(attributes.toJS(), query) }) @@ -118,8 +117,7 @@ export default class Collection { * Adds a collection of models. * Returns the added models. */ - @action - add (data: Array<{[key: string]: any}>): Array { + @action add (data: Array<{ [key: string]: any }>): Array { const models = data.map(d => this.build(d)) this.models = this.models.concat(models) return models @@ -128,9 +126,8 @@ export default class Collection { /** * Removes the model with the given ids or uuids */ - @action - remove (ids: Array): void { - ids.forEach((id) => { + @action remove (ids: Array): void { + ids.forEach(id => { const model = this.get(id) if (!model) return @@ -139,33 +136,32 @@ export default class Collection { } /** - * Sets the models into the collection. + * Sets the resources into the collection. * * You can disable adding, changing or removing. */ - @action - set ( - models: Array<{[key: string]: any}>, + @action set ( + resources: Array<{ [key: string]: any }>, { add = true, change = true, remove = true }: SetOptions = {} ): void { if (remove) { - const ids = models.map((d) => d.id) + const ids = resources.map(r => r.id) const toRemove = difference(this._ids(), ids) if (toRemove.length) this.remove(toRemove) } - models.forEach((attributes) => { - const model = this.get(attributes.id) + resources.forEach(resource => { + const model = this.get(resource.id) - if (model && change) model.set(attributes) - if (!model && add) this.add([attributes]) + if (model && change) model.set(resource) + if (!model && add) this.add([resource]) }) } /** * Creates a new model instance with the given attributes */ - build (attributes: {[key: string]: any} = {}) { + build (attributes: { [key: string]: any } = {}): T { const ModelClass = this.model() const model = new ModelClass(attributes) model.collection = this @@ -179,9 +175,8 @@ export default class Collection { * The default behaviour is optimistic but this * can be tuned. */ - @action - async create ( - attributesOrModel: {[key: string]: any} | Model, + @action async create ( + attributesOrModel: { [key: string]: any } | Model, { optimistic = true }: CreateOptions = {} ): Promise<*> { let model @@ -190,22 +185,23 @@ export default class Collection { : attributesOrModel const label: Label = 'creating' - const onProgress = debounce(function onProgress (progress) { - if (optimistic && model.request) { - model.request.progress = progress - } - - if (this.request) { - this.request.progress = progress - } - }, 300) + const onProgress = debounce( + function onProgress (progress) { + if (optimistic && model.request) { + model.request.progress = progress + } - const { abort, promise } = apiClient().post( - this.url(), - attributes, - { onProgress } + if (this.request) { + this.request.progress = progress + } + }, + 300 ) + const { abort, promise } = apiClient().post(this.url(), attributes, { + onProgress + }) + if (optimistic) { model = attributesOrModel instanceof Model ? attributesOrModel @@ -251,17 +247,13 @@ export default class Collection { * use the options to disable adding, changing * or removing. */ - @action - async fetch (options: SetOptions = {}): Promise { + @action async fetch (options: SetOptions = {}): Promise { const label: Label = 'fetching' - const { abort, promise } = apiClient().get( - this.url(), - options.data - ) + const { abort, promise } = apiClient().get(this.url(), options.data) this.request = new Request(label, abort, 0) - let data: Array<{[key: string]: any}> + let data: Array<{ [key: string]: any }> try { data = await promise @@ -287,11 +279,7 @@ export default class Collection { * non-REST endpoints that you may have in * your API. */ - @action - async rpc ( - method: string, - body?: {} - ): Promise<*> { + @action async rpc (method: string, body?: {}): Promise<*> { const label: Label = 'updating' // TODO: Maybe differentiate? const { promise, abort } = apiClient().post( `${this.url()}/${method}`, diff --git a/src/ErrorObject.js b/src/ErrorObject.js index 946bd8d..081a918 100644 --- a/src/ErrorObject.js +++ b/src/ErrorObject.js @@ -2,8 +2,8 @@ import type { Label } from './types' export default class Request { - label: Label - body: {} + label: Label; + body: {}; constructor (label: Label, body: {}) { this.label = label diff --git a/src/Model.js b/src/Model.js index 4dd6883..21b6386 100644 --- a/src/Model.js +++ b/src/Model.js @@ -22,14 +22,14 @@ import type { } from './types' export default class Model { - @observable request: ?Request = null - @observable error: ?ErrorObject = null - attributes: ObservableMap + @observable request: ?Request = null; + @observable error: ?ErrorObject = null; + attributes: ObservableMap; - optimisticId: OptimisticId = uniqueId('i_') - collection: ?Collection<*> = null + optimisticId: OptimisticId = uniqueId('i_'); + collection: ?Collection<*> = null; - constructor (attributes: {[key: string]: any} = {}) { + constructor (attributes: { [key: string]: any } = {}) { this.attributes = observable.map(attributes) } @@ -145,21 +145,16 @@ export default class Model { * Merge the given attributes with * the current ones */ - @action - set (data: {}): void { + @action set (data: {}): void { this.attributes.merge(data) } /** * Fetches the model from the backend. */ - @action - async fetch (options: { data?: {} } = {}): Promise { + @action async fetch (options: { data?: {} } = {}): Promise { const label: Label = 'fetching' - const { abort, promise } = apiClient().get( - this.url(), - options.data - ) + const { abort, promise } = apiClient().get(this.url(), options.data) this.request = new Request(label, abort, 0) @@ -220,21 +215,20 @@ export default class Model { data = Object.assign({}, originalAttributes, attributes) } - const onProgress = debounce(function onProgress (progress) { - if (optimistic && this.request) { - this.request.progress = progress - } - }, 300) - - const { promise, abort } = apiClient().put( - this.url(), - data, - { - method: patch ? 'PATCH' : 'PUT', - onProgress - } + const onProgress = debounce( + function onProgress (progress) { + if (optimistic && this.request) { + this.request.progress = progress + } + }, + 300 ) + const { promise, abort } = apiClient().put(this.url(), data, { + method: patch ? 'PATCH' : 'PUT', + onProgress + }) + if (optimistic) this.set(newAttributes) this.request = new Request(label, abort, 0) @@ -271,18 +265,19 @@ export default class Model { ): Promise<*> { const label: Label = 'creating' - const onProgress = debounce(function onProgress (progress) { - if (optimistic && this.request) { - this.request.progress = progress - } - }, 300) - - const { abort, promise } = apiClient().post( - this.url(), - attributes, - { onProgress } + const onProgress = debounce( + function onProgress (progress) { + if (optimistic && this.request) { + this.request.progress = progress + } + }, + 300 ) + const { abort, promise } = apiClient().post(this.url(), attributes, { + onProgress + }) + if (optimistic) { this.request = new Request(label, abort, 0) } @@ -359,11 +354,7 @@ export default class Model { * non-REST endpoints that you may have in * your API. */ - @action - async rpc ( - method: string, - body?: {} - ): Promise<*> { + @action async rpc (method: string, body?: {}): Promise<*> { const label: Label = 'updating' // TODO: Maybe differentiate? const { promise, abort } = apiClient().post( `${this.url()}/${method}`, diff --git a/src/Request.js b/src/Request.js index 8fda77e..613c44b 100644 --- a/src/Request.js +++ b/src/Request.js @@ -3,9 +3,9 @@ import { observable } from 'mobx' import type { Label } from './types' export default class Request { - label: Label - abort: () => void - @observable progress: number = 0 + label: Label; + abort: () => void; + @observable progress: number = 0; constructor (label: Label, abort: () => void, progress: number) { this.label = label diff --git a/src/apiClient.js b/src/apiClient.js index 54bc143..761ec69 100644 --- a/src/apiClient.js +++ b/src/apiClient.js @@ -7,7 +7,7 @@ let currentAdapter */ export default function apiClient ( adapter?: Adapter, - options: {[key: string]: any} = {} + options: { [key: string]: any } = {} ): Adapter { if (adapter) { currentAdapter = Object.assign({}, adapter, options) diff --git a/src/index.js b/src/index.js index 9947b0b..ab5dc2a 100644 --- a/src/index.js +++ b/src/index.js @@ -1,6 +1,7 @@ // @flow import Collection from './Collection' import Model from './Model' +import Request from './Request' import apiClient from './apiClient' -export { Collection, Model, apiClient } +export { Collection, Model, apiClient, Request } diff --git a/src/types.js b/src/types.js index 0e53565..c01fa1d 100644 --- a/src/types.js +++ b/src/types.js @@ -1,39 +1,39 @@ // @flow -export type Label = 'fetching' | 'creating' | 'updating' | 'destroying' +export type Label = 'fetching' | 'creating' | 'updating' | 'destroying'; -export type OptimisticId = string -export type Id = number | OptimisticId +export type OptimisticId = string; +export type Id = number | OptimisticId; export type CreateOptions = { - optimistic?: boolean; - onProgress?: () => mixed; -} + optimistic?: boolean, + onProgress?: () => mixed +}; export type DestroyOptions = { - optimistic?: boolean; -} + optimistic?: boolean +}; export type SaveOptions = { - optimistic?: boolean; - patch?: boolean; - onProgress?: () => mixed; -} + optimistic?: boolean, + patch?: boolean, + onProgress?: () => mixed +}; export type Response = { - abort: () => void; - promise: Promise<*>; -} + abort: () => void, + promise: Promise<*> +}; export type SetOptions = { - add?: boolean; - change?: boolean; - remove?: boolean; - data?: {}; -} + add?: boolean, + change?: boolean, + remove?: boolean, + data?: {} +}; export type Adapter = { - get (path: string, data?: {}, options?: {}): Response; - post (path: string, data?: {}, options?: {}): Response; - put (path: string, data?: {}, options?: {}): Response; - del (path: string, options?: {}): Response; -} + get(path: string, data?: {}, options?: {}): Response, + post(path: string, data?: {}, options?: {}): Response, + put(path: string, data?: {}, options?: {}): Response, + del(path: string, options?: {}): Response +};