1
0
mirror of https://github.com/SomboChea/ui synced 2024-11-24 06:54:27 +07:00

feat: migrating flow to typescript (#47)

This PR convert the code base to Typescript, the changes are the following:

- migrate code base to Typescript (3.4.x)
- enable `eslint` and `@typescript-eslint/eslint-plugin` (warnings still need to be addressed in future pull request
- update relevant dependencies for this PR (linting, etc)
- enable `bundlezise` (it was disabled for some reason)

* refactor: refactoring to typescript

* refactor: migrating to typescript

* refactor: applied feedbacks

* fix: fixed conflicts

* refactored: changed registry

* refactor: updated registry & removed unnecessary lib

* fix: fixed registry ur

* fix: fixed page load

* refactor: refactored footer wip

* refactor: converting to ts..wip

* refactor: converting to ts. wip

* refactor: converting to ts. wip

* refactor: converting to ts

* refactor: converting to ts

* fix: fixed load errors

* refactor: converted files to ts

* refactor: removed flow from tests

* fix: removed transpiled files

* refactor: added ts-ignore

* fix: fixed errors

* fix: fixed types

* fix: fixing jest import -.-

* fix: fixing lint errors

* fix: fixing lint errors

* fix: fixed lint errors

* refactor: removed unnecessary tsconfig's config

* fix: fixing errors

* fix: fixed warning

* fix: fixed test

* refactor: wip

* refactor: wip

* refactor: wip

* fix: fixing tests: wip

* wip

* wip

* fix: fixed search test

* wip

* fix: fixing lint errors

* fix: re-added stylelint

* refactor: updated stylelint script

* fix: fixed: 'styles.js'  were found.

* fix: fixed Search tests

* chore: enable eslint

eslint needs expecitely to know which file has to lint, by default is JS, in this case we need also ts,tsx files eslint . --ext .js,.ts

* chore: vcode eslint settings

* chore: restore eslint previous conf

* chore: clean jest config

* chore: fix eslint warnings

* chore: eslint errors cleared

chore: clean warnings

chore: remove github actions test phases

chore: remove dupe rule

* chore: update handler name

* chore: restore logo from img to url css prop

- loading images with css is more performant than using img html tags, switching this might be a breaking change
- restore no-empty-source seems the linting do not accept false
- update snapshots
- remove @material-ui/styles

* chore: update stylelint linting

* chore: update stylelint linting

* chore: fix a mistake on move tabs to a function

* chore: eanble bundlezie

* chore: use default_executor in circleci

* chore: update readme
This commit is contained in:
Priscila Oliveira 2019-06-20 14:37:28 +02:00 committed by Juan Picado @jotadeveloper
parent 7d1764458b
commit 6b5d0b7e2e
358 changed files with 4730 additions and 58431 deletions

View File

@ -1,3 +1,5 @@
{ {
"presets": [["@verdaccio", { "flow": true }]] "presets": [
["@verdaccio", { "typescript": true }]
]
} }

View File

@ -76,6 +76,14 @@ jobs:
key: *repo_key key: *repo_key
paths: paths:
- ~/ui-theme - ~/ui-theme
test_bundlesize:
<<: *defaults
<<: *default_executor
steps:
- *restore_repo
- run:
name: Test BundleSize
command: yarn test:size
test_node11: test_node11:
<<: *defaults <<: *defaults
@ -84,7 +92,7 @@ jobs:
- *restore_repo - *restore_repo
- run: - run:
name: Test with Node 11 name: Test with Node 11
command: yarn run test command: yarn test
test_node8: test_node8:
<<: *defaults <<: *defaults
@ -156,12 +164,16 @@ workflows:
requires: requires:
- prepare - prepare
<<: *ignore_non_dev_branches <<: *ignore_non_dev_branches
- coverage: - test_bundlesize:
requires: requires:
- test_node11 - test_node11
- test_node8 - test_node8
- test_node10 - test_node10
<<: *ignore_non_dev_branches <<: *ignore_non_dev_branches
- coverage:
requires:
- test_bundlesize
<<: *ignore_non_dev_branches
- publish_package: - publish_package:
requires: requires:
- coverage - coverage

View File

@ -1,17 +1,12 @@
node_modules node_modules
coverage/ coverage/
wiki/
static/ static/
flow-typed/ .github/
website/ .circleci/
build/
*.md *.md
*.lock *.lock
*.yaml *.yaml
Dockerfile Dockerfile
*.rpi
*.html *.html
*.scss *.scss
*.png *.png
*.jpg
test/unit/partials/

View File

@ -1,50 +1,49 @@
{ {
"plugins": [
"babel",
"react",
"flowtype",
"jest",
"verdaccio",
"jsx-a11y"
],
"extends": [ "extends": [
"eslint:recommended", "@verdaccio",
"google", "plugin:react/recommended",
"plugin:flowtype/recommended",
"plugin:jest/recommended", "plugin:jest/recommended",
"plugin:prettier/recommended", "plugin:prettier/recommended",
"plugin:react/recommended",
"plugin:verdaccio/recommended", "plugin:verdaccio/recommended",
"plugin:jsx-a11y/recommended" "plugin:jsx-a11y/recommended"
], ],
"plugins": [
"react",
"jest",
"prettier",
"verdaccio",
"jsx-a11y"
],
"settings": { "settings": {
"react": { "react": {
"pragma": "React", "version": "detect"
"version": "16.4.2",
"flowVersion": "0.81.0"
} }
}, },
"parser": "babel-eslint",
"parserOptions": { "parserOptions": {
"sourceType": "module",
"ecmaVersion": 7,
"ecmaFeatures": { "ecmaFeatures": {
"impliedStrict": true,
"jsx": true "jsx": true
} }
}, },
"env": {
"browser": true,
"node": true,
"es6": true,
"jest": true
},
"globals": {
"__APP_VERSION__": true
},
"rules": { "rules": {
"babel/no-invalid-this": 1, "babel/no-invalid-this": 0,
"prettier/prettier": ["error", null, "@prettier"], "no-invalid-this": 0,
"no-console": ["error", { "allow": ["warn", "error"] }],
"prettier/prettier": "error",
"@typescript-eslint/no-var-requires": 0,
"@typescript-eslint/indent": 0,
"@typescript-eslint/explicit-member-accessibility": ["warn",
{
"accessibility": "explicit",
"overrides": {
"constructors": "off"
}
}
],
"@typescript-eslint/explicit-function-return-type": ["warn",
{
"allowExpressions": true,
"allowTypedFunctionExpressions": true
}],
"react/no-deprecated": 1, "react/no-deprecated": 1,
"react/jsx-no-target-blank": 1, "react/jsx-no-target-blank": 1,
"react/destructuring-assignment": ["error", "always"], "react/destructuring-assignment": ["error", "always"],
@ -88,8 +87,9 @@
"react/jsx-no-duplicate-props": ["error"], "react/jsx-no-duplicate-props": ["error"],
"react/jsx-no-literals": ["error"], "react/jsx-no-literals": ["error"],
"react/jsx-no-undef": ["error"], "react/jsx-no-undef": ["error"],
"react/prop-types": 0,
"react/jsx-one-expression-per-line": ["error", {"allow": "single-child"}], "react/jsx-one-expression-per-line": ["error", {"allow": "single-child"}],
"react/jsx-curly-brace-presence": ["error", { "props": "always", "children": "ignore" }], "react/jsx-curly-brace-presence": ["warn", { "props": "ignore", "children": "ignore" }],
"react/jsx-pascal-case": ["error"], "react/jsx-pascal-case": ["error"],
"react/jsx-props-no-multi-spaces": ["error"], "react/jsx-props-no-multi-spaces": ["error"],
"react/jsx-sort-default-props": ["error"], "react/jsx-sort-default-props": ["error"],
@ -106,23 +106,19 @@
2, 2,
"always" "always"
], ],
"semi": ["error"],
"comma-dangle": ["error"],
"camelcase": 0,
"no-useless-escape": ["error"],
"no-invalid-this": 0,
"handle-callback-err": ["error"],
"no-fallthrough": ["error"],
"no-new-require": ["error"],
"max-len": ["error", 160],
"require-jsdoc": 0,
"valid-jsdoc": 0,
"prefer-spread": 1,
"prefer-rest-params": 1,
"linebreak-style": 0,
"quote-props":["error", "as-needed"],
"verdaccio/jsx-no-style": ["warn"], "verdaccio/jsx-no-style": ["warn"],
"verdaccio/jsx-spread": ["warn"], "verdaccio/jsx-spread": ["warn"],
"jest/expect-expect": 0 "jest/expect-expect": 0,
"quote-props":["error", "as-needed"],
"max-len": ["error", 160],
"prefer-spread": 1,
"linebreak-style": 0
},
"globals": {
"__DEBUG__": true
},
"env": {
"browser": true,
"jest/globals": true
} }
} }

View File

@ -1,25 +0,0 @@
[ignore]
.*/node_modules/.*
.*/test/**/*.json
.*/static/.*
.*/test/unit/partials/.*
.*/.nyc_output/.*
.*/coverage/.*
.*/.vscode/.*
.*/build/.*
.*/docs/.*
.*/scripts/.*
.*/assets/.*
.*/bin/.*
.*/systemd/.*
.*/website/.*
.*/wiki/.*
.*/docs/.*
.*/tools/.*
[libs]
node_modules/@verdaccio/types/lib/
[options]
suppress_comment= \\(.\\|\n\\)*\\$FlowFixMe
module.ignore_non_literal_requires=true

163
.github/main.workflow vendored
View File

@ -1,166 +1,3 @@
################################################
# Workflow for a branch push
################################################
workflow "build and test on branch" {
resolves = [
"branch.lint.node.10",
"branch.test.node.10",
"branch.test.node.8",
# "branch.test.node.12"
]
on = "push"
}
# node 10
action "branch.filter" {
uses = "actions/bin/filter@master"
args = "branch"
}
action "branch.install.node.10" {
needs = ["branch.filter"]
uses = "docker://node:10"
args = "yarn install"
}
action "branch.build.node.10" {
uses = "docker://node:10"
needs = ["branch.install.node.10"]
args = "yarn run build"
}
action "branch.lint.node.10" {
uses = "docker://node:10"
needs = ["branch.install.node.10"]
args = "yarn run lint"
}
action "branch.test.node.10" {
uses = "docker://node:10"
needs = ["branch.build.node.10"]
args = "yarn run test"
}
# node 8
action "branch.install.node.8" {
needs = ["branch.filter"]
uses = "docker://node:8"
args = "yarn install"
}
action "branch.build.node.8" {
uses = "docker://node:8"
needs = ["branch.install.node.8"]
args = "yarn run build"
}
action "branch.test.node.8" {
uses = "docker://node:8"
needs = ["branch.build.node.8"]
args = "yarn run test"
}
# @todo node 12
# action "branch.install.node.12" {
# needs = ["branch.filter"]
# uses = "docker://node:12"
# args = "yarn install"
# }
# action "branch.build.node.12" {
# uses = "docker://node:12"
# needs = ["branch.install.node.12"]
# args = "yarn run build"
# }
# action "branch.test.node.12" {
# uses = "docker://node:12"
# needs = ["branch.build.node.12"]
# args = "yarn run test"
# }
################################################
# Workflow for a Pull request
################################################
workflow "build and test on PR" {
resolves = [
"pr.lint.node.10",
"pr.test.node.10",
"pr.test.node.8",
# "pr.test.node.12"
]
on = "pull_request"
}
# node 10
action "pr.filter" {
uses = "actions/bin/filter@master"
args = "action 'opened|synchronize|reopened'"
}
action "pr.install.node.10" {
needs = ["pr.filter"]
uses = "docker://node:10"
args = "yarn install"
}
action "pr.build.node.10" {
uses = "docker://node:10"
needs = ["pr.install.node.10"]
args = "yarn run build"
}
action "pr.lint.node.10" {
uses = "docker://node:10"
needs = ["pr.install.node.10"]
args = "yarn run lint"
}
action "pr.test.node.10" {
uses = "docker://node:10"
needs = ["pr.build.node.10"]
args = "yarn run test"
}
# node 8
action "pr.install.node.8" {
needs = ["pr.filter"]
uses = "docker://node:8"
args = "yarn install"
}
action "pr.build.node.8" {
uses = "docker://node:8"
needs = ["pr.install.node.8"]
args = "yarn run build"
}
action "pr.test.node.8" {
uses = "docker://node:8"
needs = ["pr.build.node.8"]
args = "yarn run test"
}
# @todo node 12
# action "pr.install.node.12" {
# needs = ["pr.filter"]
# uses = "docker://node:12"
# args = "yarn install"
# }
# action "pr.build.node.12" {
# uses = "docker://node:12"
# needs = ["pr.install.node.12"]
# args = "yarn run build"
# }
# action "pr.test.node.12" {
# uses = "docker://node:12"
# needs = ["pr.build.node.12"]
# args = "yarn run test"
# }
################################################ ################################################
# Workflow for a github release when a tag is # Workflow for a github release when a tag is
# pushed # pushed

View File

@ -3,10 +3,9 @@
"printWidth": 160, "printWidth": 160,
"tabWidth": 2, "tabWidth": 2,
"singleQuote": true, "singleQuote": true,
"requirePragma": true,
"bracketSpacing": true, "bracketSpacing": true,
"jsxBracketSameLine": true, "jsxBracketSameLine": true,
"trailingComma": "es5", "trailingComma": "es5",
"semi": true, "semi": true,
"parser": "flow" "parser": "typescript"
} }

View File

@ -26,7 +26,6 @@
"no-descending-specificity": [true, { "severity": "warning" }], "no-descending-specificity": [true, { "severity": "warning" }],
"no-duplicate-at-import-rules": true, "no-duplicate-at-import-rules": true,
"no-duplicate-selectors": true, "no-duplicate-selectors": true,
"no-empty-source": true,
"no-extra-semicolons": true, "no-extra-semicolons": true,
"no-invalid-double-slash-comments": true, "no-invalid-double-slash-comments": true,
"property-no-unknown": true, "property-no-unknown": true,

9
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,9 @@
{
"eslint.packageManager": "yarn",
"eslint.validate": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact"
]
}

View File

@ -6,14 +6,15 @@
[Verdaccio](https://verdaccio.org/) UI is a [theme plugin](https://verdaccio.org/docs/en/dev-plugins#theme-plugin) build in React, Flow and Emotion. It uses Jest and Enzyme for Unit testing. [Verdaccio](https://verdaccio.org/) UI is a [theme plugin](https://verdaccio.org/docs/en/dev-plugins#theme-plugin) build in React, Flow and Emotion. It uses Jest and Enzyme for Unit testing.
[![verdaccio (latest)](https://img.shields.io/npm/v/@verdaccio/ui-theme/latest.svg)](https://www.npmjs.com/package/verdaccio) [![verdaccio (latest)](https://img.shields.io/npm/v/@verdaccio/ui-theme/latest.svg)](https://www.npmjs.com/package/@verdaccio/ui-theme)
[![docker pulls](https://img.shields.io/docker/pulls/verdaccio/verdaccio.svg?maxAge=43200)](https://verdaccio.org/docs/en/docker.html) [![docker pulls](https://img.shields.io/docker/pulls/verdaccio/verdaccio.svg?maxAge=43200)](https://verdaccio.org/docs/en/docker.html)
[![backers](https://opencollective.com/verdaccio/tiers/backer/badge.svg?label=Backer&color=brightgreen)](https://opencollective.com/verdaccio) [![backers](https://opencollective.com/verdaccio/tiers/backer/badge.svg?label=Backer&color=brightgreen)](https://opencollective.com/verdaccio)
[![stackshare](https://img.shields.io/badge/Follow%20on-StackShare-blue.svg?logo=stackshare&style=flat)](https://stackshare.io/verdaccio) [![stackshare](https://img.shields.io/badge/Follow%20on-StackShare-blue.svg?logo=stackshare&style=flat)](https://stackshare.io/verdaccio)
[![discord](https://img.shields.io/discord/388674437219745793.svg)](http://chat.verdaccio.org/) [![discord](https://img.shields.io/discord/388674437219745793.svg)](http://chat.verdaccio.org/)
[![node](https://img.shields.io/node/v/@verdaccio/ui-theme/latest.svg)](https://www.npmjs.com/package/verdaccio) [![node](https://img.shields.io/node/v/@verdaccio/ui-theme/latest.svg)](https://www.npmjs.com/package/@verdaccio/ui-theme)
![MIT](https://img.shields.io/github/license/mashape/apistatus.svg) ![MIT](https://img.shields.io/github/license/mashape/apistatus.svg)
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/verdaccio/localized.svg)](https://crowdin.com/project/verdaccio) [![Crowdin](https://d322cqt584bo4o.cloudfront.net/verdaccio/localized.svg)](https://crowdin.com/project/verdaccio)
[![codecov](https://codecov.io/gh/verdaccio/ui/branch/master/graph/badge.svg)](https://codecov.io/gh/verdaccio/ui)
[![Twitter followers](https://img.shields.io/twitter/follow/verdaccio_npm.svg?style=social&label=Follow)](https://twitter.com/verdaccio_npm) [![Twitter followers](https://img.shields.io/twitter/follow/verdaccio_npm.svg?style=social&label=Follow)](https://twitter.com/verdaccio_npm)

View File

@ -1,11 +1,6 @@
/**
* @prettier
* @flow
*/
const path = require('path'); const path = require('path');
const APP_ROOT = path.resolve(__dirname, '../../'); const APP_ROOT = path.resolve(__dirname, '../');
module.exports = { module.exports = {
APP_ROOT, APP_ROOT,

View File

@ -1,38 +0,0 @@
// flow-typed signature: ce23ecafd4a8df99e8eab3d7417dea83
// flow-typed version: <<STUB>>/@material-ui/core/Avatar_v3.1.0/flow_v0.81.0
/**
* This is an autogenerated libdef stub for:
*
* '@material-ui/core/Avatar'
*
* 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 '@material-ui/core/Avatar' {
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 '@material-ui/core/Avatar/Avatar' {
declare module.exports: any;
}
// Filename aliases
declare module '@material-ui/core/Avatar/Avatar.js' {
declare module.exports: $Exports<'@material-ui/core/Avatar/Avatar'>;
}
declare module '@material-ui/core/Avatar/index' {
declare module.exports: $Exports<'@material-ui/core/Avatar'>;
}
declare module '@material-ui/core/Avatar/index.js' {
declare module.exports: $Exports<'@material-ui/core/Avatar'>;
}

View File

@ -1,38 +0,0 @@
// flow-typed signature: bc8a4aaaeb1e738c5006d06072a9b064
// flow-typed version: <<STUB>>/@material-ui/core/InputAdornment_v3.1.0/flow_v0.81.0
/**
* This is an autogenerated libdef stub for:
*
* '@material-ui/core/InputAdornment'
*
* 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 '@material-ui/core/InputAdornment' {
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 '@material-ui/core/InputAdornment/InputAdornment' {
declare module.exports: any;
}
// Filename aliases
declare module '@material-ui/core/InputAdornment/index' {
declare module.exports: $Exports<'@material-ui/core/InputAdornment'>;
}
declare module '@material-ui/core/InputAdornment/index.js' {
declare module.exports: $Exports<'@material-ui/core/InputAdornment'>;
}
declare module '@material-ui/core/InputAdornment/InputAdornment.js' {
declare module.exports: $Exports<'@material-ui/core/InputAdornment/InputAdornment'>;
}

View File

@ -1,38 +0,0 @@
// flow-typed signature: fd8dc668544eb744d5267a667187804b
// flow-typed version: <<STUB>>/@material-ui/core/MenuItem_v3.1.0/flow_v0.81.0
/**
* This is an autogenerated libdef stub for:
*
* '@material-ui/core/MenuItem'
*
* 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 '@material-ui/core/MenuItem' {
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 '@material-ui/core/MenuItem/MenuItem' {
declare module.exports: any;
}
// Filename aliases
declare module '@material-ui/core/MenuItem/index' {
declare module.exports: $Exports<'@material-ui/core/MenuItem'>;
}
declare module '@material-ui/core/MenuItem/index.js' {
declare module.exports: $Exports<'@material-ui/core/MenuItem'>;
}
declare module '@material-ui/core/MenuItem/MenuItem.js' {
declare module.exports: $Exports<'@material-ui/core/MenuItem/MenuItem'>;
}

View File

@ -1,38 +0,0 @@
// flow-typed signature: 1ac90635766a00f883f3d21d79c9f12e
// flow-typed version: <<STUB>>/@material-ui/core/Paper_v3.1.0/flow_v0.81.0
/**
* This is an autogenerated libdef stub for:
*
* '@material-ui/core/Paper'
*
* 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 '@material-ui/core/Paper' {
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 '@material-ui/core/Paper/Paper' {
declare module.exports: any;
}
// Filename aliases
declare module '@material-ui/core/Paper/index' {
declare module.exports: $Exports<'@material-ui/core/Paper'>;
}
declare module '@material-ui/core/Paper/index.js' {
declare module.exports: $Exports<'@material-ui/core/Paper'>;
}
declare module '@material-ui/core/Paper/Paper.js' {
declare module.exports: $Exports<'@material-ui/core/Paper/Paper'>;
}

View File

@ -1,38 +0,0 @@
// flow-typed signature: 864619754dd206242d851f1d47ddb63f
// flow-typed version: <<STUB>>/@material-ui/core/TextField_v3.0.1/flow_v0.81.0
/**
* This is an autogenerated libdef stub for:
*
* '@material-ui/core/TextField'
*
* 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 '@material-ui/core/TextField' {
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 '@material-ui/core/TextField/TextField' {
declare module.exports: any;
}
// Filename aliases
declare module '@material-ui/core/TextField/index' {
declare module.exports: $Exports<'@material-ui/core/TextField'>;
}
declare module '@material-ui/core/TextField/index.js' {
declare module.exports: $Exports<'@material-ui/core/TextField'>;
}
declare module '@material-ui/core/TextField/TextField.js' {
declare module.exports: $Exports<'@material-ui/core/TextField/TextField'>;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,199 +0,0 @@
// flow-typed signature: 12a8262920099086254f18882b49d862
// flow-typed version: <<STUB>>/JSONStream_v1.3.2/flow_v0.64.0
/**
* This is an autogenerated libdef stub for:
*
* 'JSONStream'
*
* 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 'JSONStream' {
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 'JSONStream/bin' {
declare module.exports: any;
}
declare module 'JSONStream/examples/all_docs' {
declare module.exports: any;
}
declare module 'JSONStream/test/bool' {
declare module.exports: any;
}
declare module 'JSONStream/test/browser' {
declare module.exports: any;
}
declare module 'JSONStream/test/destroy_missing' {
declare module.exports: any;
}
declare module 'JSONStream/test/disabled/doubledot1' {
declare module.exports: any;
}
declare module 'JSONStream/test/disabled/doubledot2' {
declare module.exports: any;
}
declare module 'JSONStream/test/empty' {
declare module.exports: any;
}
declare module 'JSONStream/test/error_contents' {
declare module.exports: any;
}
declare module 'JSONStream/test/fn' {
declare module.exports: any;
}
declare module 'JSONStream/test/gen' {
declare module.exports: any;
}
declare module 'JSONStream/test/header_footer' {
declare module.exports: any;
}
declare module 'JSONStream/test/issues' {
declare module.exports: any;
}
declare module 'JSONStream/test/keys' {
declare module.exports: any;
}
declare module 'JSONStream/test/map' {
declare module.exports: any;
}
declare module 'JSONStream/test/multiple_objects_error' {
declare module.exports: any;
}
declare module 'JSONStream/test/multiple_objects' {
declare module.exports: any;
}
declare module 'JSONStream/test/null' {
declare module.exports: any;
}
declare module 'JSONStream/test/parsejson' {
declare module.exports: any;
}
declare module 'JSONStream/test/stringify_object' {
declare module.exports: any;
}
declare module 'JSONStream/test/stringify' {
declare module.exports: any;
}
declare module 'JSONStream/test/test' {
declare module.exports: any;
}
declare module 'JSONStream/test/test2' {
declare module.exports: any;
}
declare module 'JSONStream/test/two-ways' {
declare module.exports: any;
}
// Filename aliases
declare module 'JSONStream/bin.js' {
declare module.exports: $Exports<'JSONStream/bin'>;
}
declare module 'JSONStream/examples/all_docs.js' {
declare module.exports: $Exports<'JSONStream/examples/all_docs'>;
}
declare module 'JSONStream/index' {
declare module.exports: $Exports<'JSONStream'>;
}
declare module 'JSONStream/index.js' {
declare module.exports: $Exports<'JSONStream'>;
}
declare module 'JSONStream/test/bool.js' {
declare module.exports: $Exports<'JSONStream/test/bool'>;
}
declare module 'JSONStream/test/browser.js' {
declare module.exports: $Exports<'JSONStream/test/browser'>;
}
declare module 'JSONStream/test/destroy_missing.js' {
declare module.exports: $Exports<'JSONStream/test/destroy_missing'>;
}
declare module 'JSONStream/test/disabled/doubledot1.js' {
declare module.exports: $Exports<'JSONStream/test/disabled/doubledot1'>;
}
declare module 'JSONStream/test/disabled/doubledot2.js' {
declare module.exports: $Exports<'JSONStream/test/disabled/doubledot2'>;
}
declare module 'JSONStream/test/empty.js' {
declare module.exports: $Exports<'JSONStream/test/empty'>;
}
declare module 'JSONStream/test/error_contents.js' {
declare module.exports: $Exports<'JSONStream/test/error_contents'>;
}
declare module 'JSONStream/test/fn.js' {
declare module.exports: $Exports<'JSONStream/test/fn'>;
}
declare module 'JSONStream/test/gen.js' {
declare module.exports: $Exports<'JSONStream/test/gen'>;
}
declare module 'JSONStream/test/header_footer.js' {
declare module.exports: $Exports<'JSONStream/test/header_footer'>;
}
declare module 'JSONStream/test/issues.js' {
declare module.exports: $Exports<'JSONStream/test/issues'>;
}
declare module 'JSONStream/test/keys.js' {
declare module.exports: $Exports<'JSONStream/test/keys'>;
}
declare module 'JSONStream/test/map.js' {
declare module.exports: $Exports<'JSONStream/test/map'>;
}
declare module 'JSONStream/test/multiple_objects_error.js' {
declare module.exports: $Exports<'JSONStream/test/multiple_objects_error'>;
}
declare module 'JSONStream/test/multiple_objects.js' {
declare module.exports: $Exports<'JSONStream/test/multiple_objects'>;
}
declare module 'JSONStream/test/null.js' {
declare module.exports: $Exports<'JSONStream/test/null'>;
}
declare module 'JSONStream/test/parsejson.js' {
declare module.exports: $Exports<'JSONStream/test/parsejson'>;
}
declare module 'JSONStream/test/stringify_object.js' {
declare module.exports: $Exports<'JSONStream/test/stringify_object'>;
}
declare module 'JSONStream/test/stringify.js' {
declare module.exports: $Exports<'JSONStream/test/stringify'>;
}
declare module 'JSONStream/test/test.js' {
declare module.exports: $Exports<'JSONStream/test/test'>;
}
declare module 'JSONStream/test/test2.js' {
declare module.exports: $Exports<'JSONStream/test/test2'>;
}
declare module 'JSONStream/test/two-ways.js' {
declare module.exports: $Exports<'JSONStream/test/two-ways'>;
}

View File

@ -1,67 +0,0 @@
// flow-typed signature: b7109b7e394ff03ed211118d5af4cff8
// flow-typed version: <<STUB>>/asciidoctor.js_v1.5.6/flow_v0.69.0
/**
* This is an autogenerated libdef stub for:
*
* 'asciidoctor.js'
*
* 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 'asciidoctor.js' {
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 'asciidoctor.js/dist/asciidoctor' {
declare module.exports: any;
}
declare module 'asciidoctor.js/dist/asciidoctor.min' {
declare module.exports: any;
}
declare module 'asciidoctor.js/dist/browser/asciidoctor' {
declare module.exports: any;
}
declare module 'asciidoctor.js/dist/nashorn/asciidoctor' {
declare module.exports: any;
}
declare module 'asciidoctor.js/dist/node/asciidoctor' {
declare module.exports: any;
}
declare module 'asciidoctor.js/dist/umd/asciidoctor' {
declare module.exports: any;
}
// Filename aliases
declare module 'asciidoctor.js/dist/asciidoctor.js' {
declare module.exports: $Exports<'asciidoctor.js/dist/asciidoctor'>;
}
declare module 'asciidoctor.js/dist/asciidoctor.min.js' {
declare module.exports: $Exports<'asciidoctor.js/dist/asciidoctor.min'>;
}
declare module 'asciidoctor.js/dist/browser/asciidoctor.js' {
declare module.exports: $Exports<'asciidoctor.js/dist/browser/asciidoctor'>;
}
declare module 'asciidoctor.js/dist/nashorn/asciidoctor.js' {
declare module.exports: $Exports<'asciidoctor.js/dist/nashorn/asciidoctor'>;
}
declare module 'asciidoctor.js/dist/node/asciidoctor.js' {
declare module.exports: $Exports<'asciidoctor.js/dist/node/asciidoctor'>;
}
declare module 'asciidoctor.js/dist/umd/asciidoctor.js' {
declare module.exports: $Exports<'asciidoctor.js/dist/umd/asciidoctor'>;
}

View File

@ -1,913 +0,0 @@
// flow-typed signature: 9f4aa70155d93ad082ea38137cded473
// flow-typed version: <<STUB>>/async_v2.6.0/flow_v0.64.0
/**
* This is an autogenerated libdef stub for:
*
* 'async'
*
* 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 'async' {
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 'async/all' {
declare module.exports: any;
}
declare module 'async/allLimit' {
declare module.exports: any;
}
declare module 'async/allSeries' {
declare module.exports: any;
}
declare module 'async/any' {
declare module.exports: any;
}
declare module 'async/anyLimit' {
declare module.exports: any;
}
declare module 'async/anySeries' {
declare module.exports: any;
}
declare module 'async/apply' {
declare module.exports: any;
}
declare module 'async/applyEach' {
declare module.exports: any;
}
declare module 'async/applyEachSeries' {
declare module.exports: any;
}
declare module 'async/asyncify' {
declare module.exports: any;
}
declare module 'async/auto' {
declare module.exports: any;
}
declare module 'async/autoInject' {
declare module.exports: any;
}
declare module 'async/cargo' {
declare module.exports: any;
}
declare module 'async/compose' {
declare module.exports: any;
}
declare module 'async/concat' {
declare module.exports: any;
}
declare module 'async/concatLimit' {
declare module.exports: any;
}
declare module 'async/concatSeries' {
declare module.exports: any;
}
declare module 'async/constant' {
declare module.exports: any;
}
declare module 'async/detect' {
declare module.exports: any;
}
declare module 'async/detectLimit' {
declare module.exports: any;
}
declare module 'async/detectSeries' {
declare module.exports: any;
}
declare module 'async/dir' {
declare module.exports: any;
}
declare module 'async/dist/async' {
declare module.exports: any;
}
declare module 'async/dist/async.min' {
declare module.exports: any;
}
declare module 'async/doDuring' {
declare module.exports: any;
}
declare module 'async/doUntil' {
declare module.exports: any;
}
declare module 'async/doWhilst' {
declare module.exports: any;
}
declare module 'async/during' {
declare module.exports: any;
}
declare module 'async/each' {
declare module.exports: any;
}
declare module 'async/eachLimit' {
declare module.exports: any;
}
declare module 'async/eachOf' {
declare module.exports: any;
}
declare module 'async/eachOfLimit' {
declare module.exports: any;
}
declare module 'async/eachOfSeries' {
declare module.exports: any;
}
declare module 'async/eachSeries' {
declare module.exports: any;
}
declare module 'async/ensureAsync' {
declare module.exports: any;
}
declare module 'async/every' {
declare module.exports: any;
}
declare module 'async/everyLimit' {
declare module.exports: any;
}
declare module 'async/everySeries' {
declare module.exports: any;
}
declare module 'async/filter' {
declare module.exports: any;
}
declare module 'async/filterLimit' {
declare module.exports: any;
}
declare module 'async/filterSeries' {
declare module.exports: any;
}
declare module 'async/find' {
declare module.exports: any;
}
declare module 'async/findLimit' {
declare module.exports: any;
}
declare module 'async/findSeries' {
declare module.exports: any;
}
declare module 'async/foldl' {
declare module.exports: any;
}
declare module 'async/foldr' {
declare module.exports: any;
}
declare module 'async/forEach' {
declare module.exports: any;
}
declare module 'async/forEachLimit' {
declare module.exports: any;
}
declare module 'async/forEachOf' {
declare module.exports: any;
}
declare module 'async/forEachOfLimit' {
declare module.exports: any;
}
declare module 'async/forEachOfSeries' {
declare module.exports: any;
}
declare module 'async/forEachSeries' {
declare module.exports: any;
}
declare module 'async/forever' {
declare module.exports: any;
}
declare module 'async/groupBy' {
declare module.exports: any;
}
declare module 'async/groupByLimit' {
declare module.exports: any;
}
declare module 'async/groupBySeries' {
declare module.exports: any;
}
declare module 'async/inject' {
declare module.exports: any;
}
declare module 'async/internal/applyEach' {
declare module.exports: any;
}
declare module 'async/internal/breakLoop' {
declare module.exports: any;
}
declare module 'async/internal/consoleFunc' {
declare module.exports: any;
}
declare module 'async/internal/createTester' {
declare module.exports: any;
}
declare module 'async/internal/doLimit' {
declare module.exports: any;
}
declare module 'async/internal/doParallel' {
declare module.exports: any;
}
declare module 'async/internal/doParallelLimit' {
declare module.exports: any;
}
declare module 'async/internal/DoublyLinkedList' {
declare module.exports: any;
}
declare module 'async/internal/eachOfLimit' {
declare module.exports: any;
}
declare module 'async/internal/filter' {
declare module.exports: any;
}
declare module 'async/internal/findGetResult' {
declare module.exports: any;
}
declare module 'async/internal/getIterator' {
declare module.exports: any;
}
declare module 'async/internal/initialParams' {
declare module.exports: any;
}
declare module 'async/internal/iterator' {
declare module.exports: any;
}
declare module 'async/internal/map' {
declare module.exports: any;
}
declare module 'async/internal/notId' {
declare module.exports: any;
}
declare module 'async/internal/once' {
declare module.exports: any;
}
declare module 'async/internal/onlyOnce' {
declare module.exports: any;
}
declare module 'async/internal/parallel' {
declare module.exports: any;
}
declare module 'async/internal/queue' {
declare module.exports: any;
}
declare module 'async/internal/reject' {
declare module.exports: any;
}
declare module 'async/internal/setImmediate' {
declare module.exports: any;
}
declare module 'async/internal/slice' {
declare module.exports: any;
}
declare module 'async/internal/withoutIndex' {
declare module.exports: any;
}
declare module 'async/internal/wrapAsync' {
declare module.exports: any;
}
declare module 'async/log' {
declare module.exports: any;
}
declare module 'async/map' {
declare module.exports: any;
}
declare module 'async/mapLimit' {
declare module.exports: any;
}
declare module 'async/mapSeries' {
declare module.exports: any;
}
declare module 'async/mapValues' {
declare module.exports: any;
}
declare module 'async/mapValuesLimit' {
declare module.exports: any;
}
declare module 'async/mapValuesSeries' {
declare module.exports: any;
}
declare module 'async/memoize' {
declare module.exports: any;
}
declare module 'async/nextTick' {
declare module.exports: any;
}
declare module 'async/parallel' {
declare module.exports: any;
}
declare module 'async/parallelLimit' {
declare module.exports: any;
}
declare module 'async/priorityQueue' {
declare module.exports: any;
}
declare module 'async/queue' {
declare module.exports: any;
}
declare module 'async/race' {
declare module.exports: any;
}
declare module 'async/reduce' {
declare module.exports: any;
}
declare module 'async/reduceRight' {
declare module.exports: any;
}
declare module 'async/reflect' {
declare module.exports: any;
}
declare module 'async/reflectAll' {
declare module.exports: any;
}
declare module 'async/reject' {
declare module.exports: any;
}
declare module 'async/rejectLimit' {
declare module.exports: any;
}
declare module 'async/rejectSeries' {
declare module.exports: any;
}
declare module 'async/retry' {
declare module.exports: any;
}
declare module 'async/retryable' {
declare module.exports: any;
}
declare module 'async/select' {
declare module.exports: any;
}
declare module 'async/selectLimit' {
declare module.exports: any;
}
declare module 'async/selectSeries' {
declare module.exports: any;
}
declare module 'async/seq' {
declare module.exports: any;
}
declare module 'async/series' {
declare module.exports: any;
}
declare module 'async/setImmediate' {
declare module.exports: any;
}
declare module 'async/some' {
declare module.exports: any;
}
declare module 'async/someLimit' {
declare module.exports: any;
}
declare module 'async/someSeries' {
declare module.exports: any;
}
declare module 'async/sortBy' {
declare module.exports: any;
}
declare module 'async/timeout' {
declare module.exports: any;
}
declare module 'async/times' {
declare module.exports: any;
}
declare module 'async/timesLimit' {
declare module.exports: any;
}
declare module 'async/timesSeries' {
declare module.exports: any;
}
declare module 'async/transform' {
declare module.exports: any;
}
declare module 'async/tryEach' {
declare module.exports: any;
}
declare module 'async/unmemoize' {
declare module.exports: any;
}
declare module 'async/until' {
declare module.exports: any;
}
declare module 'async/waterfall' {
declare module.exports: any;
}
declare module 'async/whilst' {
declare module.exports: any;
}
declare module 'async/wrapSync' {
declare module.exports: any;
}
// Filename aliases
declare module 'async/all.js' {
declare module.exports: $Exports<'async/all'>;
}
declare module 'async/allLimit.js' {
declare module.exports: $Exports<'async/allLimit'>;
}
declare module 'async/allSeries.js' {
declare module.exports: $Exports<'async/allSeries'>;
}
declare module 'async/any.js' {
declare module.exports: $Exports<'async/any'>;
}
declare module 'async/anyLimit.js' {
declare module.exports: $Exports<'async/anyLimit'>;
}
declare module 'async/anySeries.js' {
declare module.exports: $Exports<'async/anySeries'>;
}
declare module 'async/apply.js' {
declare module.exports: $Exports<'async/apply'>;
}
declare module 'async/applyEach.js' {
declare module.exports: $Exports<'async/applyEach'>;
}
declare module 'async/applyEachSeries.js' {
declare module.exports: $Exports<'async/applyEachSeries'>;
}
declare module 'async/asyncify.js' {
declare module.exports: $Exports<'async/asyncify'>;
}
declare module 'async/auto.js' {
declare module.exports: $Exports<'async/auto'>;
}
declare module 'async/autoInject.js' {
declare module.exports: $Exports<'async/autoInject'>;
}
declare module 'async/cargo.js' {
declare module.exports: $Exports<'async/cargo'>;
}
declare module 'async/compose.js' {
declare module.exports: $Exports<'async/compose'>;
}
declare module 'async/concat.js' {
declare module.exports: $Exports<'async/concat'>;
}
declare module 'async/concatLimit.js' {
declare module.exports: $Exports<'async/concatLimit'>;
}
declare module 'async/concatSeries.js' {
declare module.exports: $Exports<'async/concatSeries'>;
}
declare module 'async/constant.js' {
declare module.exports: $Exports<'async/constant'>;
}
declare module 'async/detect.js' {
declare module.exports: $Exports<'async/detect'>;
}
declare module 'async/detectLimit.js' {
declare module.exports: $Exports<'async/detectLimit'>;
}
declare module 'async/detectSeries.js' {
declare module.exports: $Exports<'async/detectSeries'>;
}
declare module 'async/dir.js' {
declare module.exports: $Exports<'async/dir'>;
}
declare module 'async/dist/async.js' {
declare module.exports: $Exports<'async/dist/async'>;
}
declare module 'async/dist/async.min.js' {
declare module.exports: $Exports<'async/dist/async.min'>;
}
declare module 'async/doDuring.js' {
declare module.exports: $Exports<'async/doDuring'>;
}
declare module 'async/doUntil.js' {
declare module.exports: $Exports<'async/doUntil'>;
}
declare module 'async/doWhilst.js' {
declare module.exports: $Exports<'async/doWhilst'>;
}
declare module 'async/during.js' {
declare module.exports: $Exports<'async/during'>;
}
declare module 'async/each.js' {
declare module.exports: $Exports<'async/each'>;
}
declare module 'async/eachLimit.js' {
declare module.exports: $Exports<'async/eachLimit'>;
}
declare module 'async/eachOf.js' {
declare module.exports: $Exports<'async/eachOf'>;
}
declare module 'async/eachOfLimit.js' {
declare module.exports: $Exports<'async/eachOfLimit'>;
}
declare module 'async/eachOfSeries.js' {
declare module.exports: $Exports<'async/eachOfSeries'>;
}
declare module 'async/eachSeries.js' {
declare module.exports: $Exports<'async/eachSeries'>;
}
declare module 'async/ensureAsync.js' {
declare module.exports: $Exports<'async/ensureAsync'>;
}
declare module 'async/every.js' {
declare module.exports: $Exports<'async/every'>;
}
declare module 'async/everyLimit.js' {
declare module.exports: $Exports<'async/everyLimit'>;
}
declare module 'async/everySeries.js' {
declare module.exports: $Exports<'async/everySeries'>;
}
declare module 'async/filter.js' {
declare module.exports: $Exports<'async/filter'>;
}
declare module 'async/filterLimit.js' {
declare module.exports: $Exports<'async/filterLimit'>;
}
declare module 'async/filterSeries.js' {
declare module.exports: $Exports<'async/filterSeries'>;
}
declare module 'async/find.js' {
declare module.exports: $Exports<'async/find'>;
}
declare module 'async/findLimit.js' {
declare module.exports: $Exports<'async/findLimit'>;
}
declare module 'async/findSeries.js' {
declare module.exports: $Exports<'async/findSeries'>;
}
declare module 'async/foldl.js' {
declare module.exports: $Exports<'async/foldl'>;
}
declare module 'async/foldr.js' {
declare module.exports: $Exports<'async/foldr'>;
}
declare module 'async/forEach.js' {
declare module.exports: $Exports<'async/forEach'>;
}
declare module 'async/forEachLimit.js' {
declare module.exports: $Exports<'async/forEachLimit'>;
}
declare module 'async/forEachOf.js' {
declare module.exports: $Exports<'async/forEachOf'>;
}
declare module 'async/forEachOfLimit.js' {
declare module.exports: $Exports<'async/forEachOfLimit'>;
}
declare module 'async/forEachOfSeries.js' {
declare module.exports: $Exports<'async/forEachOfSeries'>;
}
declare module 'async/forEachSeries.js' {
declare module.exports: $Exports<'async/forEachSeries'>;
}
declare module 'async/forever.js' {
declare module.exports: $Exports<'async/forever'>;
}
declare module 'async/groupBy.js' {
declare module.exports: $Exports<'async/groupBy'>;
}
declare module 'async/groupByLimit.js' {
declare module.exports: $Exports<'async/groupByLimit'>;
}
declare module 'async/groupBySeries.js' {
declare module.exports: $Exports<'async/groupBySeries'>;
}
declare module 'async/index' {
declare module.exports: $Exports<'async'>;
}
declare module 'async/index.js' {
declare module.exports: $Exports<'async'>;
}
declare module 'async/inject.js' {
declare module.exports: $Exports<'async/inject'>;
}
declare module 'async/internal/applyEach.js' {
declare module.exports: $Exports<'async/internal/applyEach'>;
}
declare module 'async/internal/breakLoop.js' {
declare module.exports: $Exports<'async/internal/breakLoop'>;
}
declare module 'async/internal/consoleFunc.js' {
declare module.exports: $Exports<'async/internal/consoleFunc'>;
}
declare module 'async/internal/createTester.js' {
declare module.exports: $Exports<'async/internal/createTester'>;
}
declare module 'async/internal/doLimit.js' {
declare module.exports: $Exports<'async/internal/doLimit'>;
}
declare module 'async/internal/doParallel.js' {
declare module.exports: $Exports<'async/internal/doParallel'>;
}
declare module 'async/internal/doParallelLimit.js' {
declare module.exports: $Exports<'async/internal/doParallelLimit'>;
}
declare module 'async/internal/DoublyLinkedList.js' {
declare module.exports: $Exports<'async/internal/DoublyLinkedList'>;
}
declare module 'async/internal/eachOfLimit.js' {
declare module.exports: $Exports<'async/internal/eachOfLimit'>;
}
declare module 'async/internal/filter.js' {
declare module.exports: $Exports<'async/internal/filter'>;
}
declare module 'async/internal/findGetResult.js' {
declare module.exports: $Exports<'async/internal/findGetResult'>;
}
declare module 'async/internal/getIterator.js' {
declare module.exports: $Exports<'async/internal/getIterator'>;
}
declare module 'async/internal/initialParams.js' {
declare module.exports: $Exports<'async/internal/initialParams'>;
}
declare module 'async/internal/iterator.js' {
declare module.exports: $Exports<'async/internal/iterator'>;
}
declare module 'async/internal/map.js' {
declare module.exports: $Exports<'async/internal/map'>;
}
declare module 'async/internal/notId.js' {
declare module.exports: $Exports<'async/internal/notId'>;
}
declare module 'async/internal/once.js' {
declare module.exports: $Exports<'async/internal/once'>;
}
declare module 'async/internal/onlyOnce.js' {
declare module.exports: $Exports<'async/internal/onlyOnce'>;
}
declare module 'async/internal/parallel.js' {
declare module.exports: $Exports<'async/internal/parallel'>;
}
declare module 'async/internal/queue.js' {
declare module.exports: $Exports<'async/internal/queue'>;
}
declare module 'async/internal/reject.js' {
declare module.exports: $Exports<'async/internal/reject'>;
}
declare module 'async/internal/setImmediate.js' {
declare module.exports: $Exports<'async/internal/setImmediate'>;
}
declare module 'async/internal/slice.js' {
declare module.exports: $Exports<'async/internal/slice'>;
}
declare module 'async/internal/withoutIndex.js' {
declare module.exports: $Exports<'async/internal/withoutIndex'>;
}
declare module 'async/internal/wrapAsync.js' {
declare module.exports: $Exports<'async/internal/wrapAsync'>;
}
declare module 'async/log.js' {
declare module.exports: $Exports<'async/log'>;
}
declare module 'async/map.js' {
declare module.exports: $Exports<'async/map'>;
}
declare module 'async/mapLimit.js' {
declare module.exports: $Exports<'async/mapLimit'>;
}
declare module 'async/mapSeries.js' {
declare module.exports: $Exports<'async/mapSeries'>;
}
declare module 'async/mapValues.js' {
declare module.exports: $Exports<'async/mapValues'>;
}
declare module 'async/mapValuesLimit.js' {
declare module.exports: $Exports<'async/mapValuesLimit'>;
}
declare module 'async/mapValuesSeries.js' {
declare module.exports: $Exports<'async/mapValuesSeries'>;
}
declare module 'async/memoize.js' {
declare module.exports: $Exports<'async/memoize'>;
}
declare module 'async/nextTick.js' {
declare module.exports: $Exports<'async/nextTick'>;
}
declare module 'async/parallel.js' {
declare module.exports: $Exports<'async/parallel'>;
}
declare module 'async/parallelLimit.js' {
declare module.exports: $Exports<'async/parallelLimit'>;
}
declare module 'async/priorityQueue.js' {
declare module.exports: $Exports<'async/priorityQueue'>;
}
declare module 'async/queue.js' {
declare module.exports: $Exports<'async/queue'>;
}
declare module 'async/race.js' {
declare module.exports: $Exports<'async/race'>;
}
declare module 'async/reduce.js' {
declare module.exports: $Exports<'async/reduce'>;
}
declare module 'async/reduceRight.js' {
declare module.exports: $Exports<'async/reduceRight'>;
}
declare module 'async/reflect.js' {
declare module.exports: $Exports<'async/reflect'>;
}
declare module 'async/reflectAll.js' {
declare module.exports: $Exports<'async/reflectAll'>;
}
declare module 'async/reject.js' {
declare module.exports: $Exports<'async/reject'>;
}
declare module 'async/rejectLimit.js' {
declare module.exports: $Exports<'async/rejectLimit'>;
}
declare module 'async/rejectSeries.js' {
declare module.exports: $Exports<'async/rejectSeries'>;
}
declare module 'async/retry.js' {
declare module.exports: $Exports<'async/retry'>;
}
declare module 'async/retryable.js' {
declare module.exports: $Exports<'async/retryable'>;
}
declare module 'async/select.js' {
declare module.exports: $Exports<'async/select'>;
}
declare module 'async/selectLimit.js' {
declare module.exports: $Exports<'async/selectLimit'>;
}
declare module 'async/selectSeries.js' {
declare module.exports: $Exports<'async/selectSeries'>;
}
declare module 'async/seq.js' {
declare module.exports: $Exports<'async/seq'>;
}
declare module 'async/series.js' {
declare module.exports: $Exports<'async/series'>;
}
declare module 'async/setImmediate.js' {
declare module.exports: $Exports<'async/setImmediate'>;
}
declare module 'async/some.js' {
declare module.exports: $Exports<'async/some'>;
}
declare module 'async/someLimit.js' {
declare module.exports: $Exports<'async/someLimit'>;
}
declare module 'async/someSeries.js' {
declare module.exports: $Exports<'async/someSeries'>;
}
declare module 'async/sortBy.js' {
declare module.exports: $Exports<'async/sortBy'>;
}
declare module 'async/timeout.js' {
declare module.exports: $Exports<'async/timeout'>;
}
declare module 'async/times.js' {
declare module.exports: $Exports<'async/times'>;
}
declare module 'async/timesLimit.js' {
declare module.exports: $Exports<'async/timesLimit'>;
}
declare module 'async/timesSeries.js' {
declare module.exports: $Exports<'async/timesSeries'>;
}
declare module 'async/transform.js' {
declare module.exports: $Exports<'async/transform'>;
}
declare module 'async/tryEach.js' {
declare module.exports: $Exports<'async/tryEach'>;
}
declare module 'async/unmemoize.js' {
declare module.exports: $Exports<'async/unmemoize'>;
}
declare module 'async/until.js' {
declare module.exports: $Exports<'async/until'>;
}
declare module 'async/waterfall.js' {
declare module.exports: $Exports<'async/waterfall'>;
}
declare module 'async/whilst.js' {
declare module.exports: $Exports<'async/whilst'>;
}
declare module 'async/wrapSync.js' {
declare module.exports: $Exports<'async/wrapSync'>;
}

View File

@ -1,33 +0,0 @@
// flow-typed signature: f4ce515b9395f4f0279d388b18ef59b5
// flow-typed version: <<STUB>>/autosuggest-highlight/match_v3.1.1/flow_v0.81.0
/**
* This is an autogenerated libdef stub for:
*
* 'autosuggest-highlight/match'
*
* 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 'autosuggest-highlight/match' {
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.
*/
// Filename aliases
declare module 'autosuggest-highlight/match/index' {
declare module.exports: $Exports<'autosuggest-highlight/match'>;
}
declare module 'autosuggest-highlight/match/index.js' {
declare module.exports: $Exports<'autosuggest-highlight/match'>;
}

View File

@ -1,33 +0,0 @@
// flow-typed signature: 7df3e3914baffd57187e87617a708990
// flow-typed version: <<STUB>>/autosuggest-highlight/parse_v3.1.1/flow_v0.81.0
/**
* This is an autogenerated libdef stub for:
*
* 'autosuggest-highlight/parse'
*
* 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 'autosuggest-highlight/parse' {
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.
*/
// Filename aliases
declare module 'autosuggest-highlight/parse/index' {
declare module.exports: $Exports<'autosuggest-highlight/parse'>;
}
declare module 'autosuggest-highlight/parse/index.js' {
declare module.exports: $Exports<'autosuggest-highlight/parse'>;
}

View File

@ -1,46 +0,0 @@
// flow-typed signature: bac0ee66e0653772d037dc47b51a5e1f
// flow-typed version: da30fe6876/body-parser_v1.x.x/flow_>=v0.25.x
import type { Middleware, $Request, $Response } from "express";
declare type bodyParser$Options = {
inflate?: boolean,
limit?: number | string,
type?: string | string[] | ((req: $Request) => any),
verify?: (
req: $Request,
res: $Response,
buf: Buffer,
encoding: string
) => void
};
declare type bodyParser$OptionsText = bodyParser$Options & {
reviver?: (key: string, value: any) => any,
strict?: boolean
};
declare type bodyParser$OptionsJson = bodyParser$Options & {
reviver?: (key: string, value: any) => any,
strict?: boolean
};
declare type bodyParser$OptionsUrlencoded = bodyParser$Options & {
extended?: boolean,
parameterLimit?: number
};
declare module "body-parser" {
declare type Options = bodyParser$Options;
declare type OptionsText = bodyParser$OptionsText;
declare type OptionsJson = bodyParser$OptionsJson;
declare type OptionsUrlencoded = bodyParser$OptionsUrlencoded;
declare function json(options?: OptionsJson): Middleware;
declare function raw(options?: Options): Middleware;
declare function text(options?: OptionsText): Middleware;
declare function urlencoded(options?: OptionsUrlencoded): Middleware;
}

View File

@ -1,156 +0,0 @@
// flow-typed signature: b3827b7e37fa457f58d7a6656d830369
// flow-typed version: da30fe6876/bunyan_v1.x.x/flow_>=v0.25.x
declare module "bunyan" {
declare var TRACE: 10;
declare var DEBUG: 20;
declare var INFO: 30;
declare var WARN: 40;
declare var ERROR: 50;
declare var FATAL: 60;
declare type BunyanLogLevels =
| 60 // fatal
| 50 // error
| 40 // warn
| 30 // info
| 20 // debug
| 10; // info
declare type BunyanRecord = {
v: number,
level: BunyanLogLevels,
name: string,
hostname: string,
pid: string,
time: Date,
msg: string,
src: string,
err?: {
message: string,
name: string,
code: any,
signal: any,
stack: string
},
[key: string]: any
};
declare type Writable = {
write(rec: BunyanRecord): void
};
declare class Logger extends events$EventEmitter {
constructor(options: LoggerOptions): any;
addStream(stream: Stream): void;
addSerializers(serializers: Serializers): void;
child(opts?: LoggerOptions, simple?: boolean): Logger;
reopenFileStreams(): void;
level(): string | number;
level(value: number | string): void;
levels(name: number | string, value: number | string): void;
trace(...params: Array<void>): boolean;
trace(error: Error, format?: any, ...params: Array<any>): void;
trace(buffer: Buffer, format?: any, ...params: Array<any>): void;
trace(obj: Object, format?: any, ...params: Array<any>): void;
trace(format: string, ...params: Array<any>): void;
debug(...params: Array<void>): boolean;
debug(error: Error, format?: any, ...params: Array<any>): void;
debug(buffer: Buffer, format?: any, ...params: Array<any>): void;
debug(obj: Object, format?: any, ...params: Array<any>): void;
debug(format: string, ...params: Array<any>): void;
info(...params: Array<void>): boolean;
info(error: Error, format?: any, ...params: Array<any>): void;
info(buffer: Buffer, format?: any, ...params: Array<any>): void;
info(obj: Object, format?: any, ...params: Array<any>): void;
info(format: string, ...params: Array<any>): void;
warn(...params: Array<void>): boolean;
warn(error: Error, format?: any, ...params: Array<any>): void;
warn(buffer: Buffer, format?: any, ...params: Array<any>): void;
warn(obj: Object, format?: any, ...params: Array<any>): void;
warn(format: string, ...params: Array<any>): void;
error(...params: Array<void>): boolean;
error(error: Error, format?: any, ...params: Array<any>): void;
error(buffer: Buffer, format?: any, ...params: Array<any>): void;
error(obj: Object, format?: any, ...params: Array<any>): void;
error(format: string, ...params: Array<any>): void;
fatal(...params: Array<void>): boolean;
fatal(error: Error, format?: any, ...params: Array<any>): void;
fatal(buffer: Buffer, format?: any, ...params: Array<any>): void;
fatal(obj: Object, format?: any, ...params: Array<any>): void;
fatal(format: string, ...params: Array<any>): void;
static stdSerializers: {
req: (
req: http$ClientRequest
) => {
method: string,
url: string,
headers: mixed,
remoteAddress: string,
remotePort: number
},
res: (
res: http$IncomingMessage
) => { statusCode: number, header: string },
err: (
err: Error
) => {
message: string,
name: string,
stack: string,
code: string,
signal: string
}
};
}
declare interface LoggerOptions {
streams?: Array<Stream>;
level?: BunyanLogLevels | string;
stream?: stream$Writable;
serializers?: Serializers;
src?: boolean;
}
declare type Serializers = {
[key: string]: (input: any) => mixed
};
declare type Stream = {
type?: string,
level?: number | string,
path?: string,
stream?: stream$Writable | tty$WriteStream | Stream | Writable,
closeOnExit?: boolean,
period?: string,
count?: number
};
declare var stdSerializers: Serializers;
declare function resolveLevel(value: number | string): number;
declare function createLogger(
options: LoggerOptions & { name: string }
): Logger;
declare class RingBuffer extends events$EventEmitter {
constructor(options: RingBufferOptions): any;
writable: boolean;
records: Array<any>;
write(record: BunyanRecord): void;
end(record?: any): void;
destroy(): void;
destroySoon(): void;
}
declare interface RingBufferOptions {
limit: number;
}
declare function safeCycles(): (key: string, value: any) => any;
declare class ConsoleRawStream {
write(rec: BunyanRecord): void;
}
declare var levelFromName: {
trace: typeof TRACE,
debug: typeof DEBUG,
info: typeof INFO,
warn: typeof WARN,
error: typeof ERROR,
fatal: typeof FATAL
};
declare var nameFromLevel: {
[key: BunyanLogLevels]: string
};
declare var VERSION: string;
declare var LOG_VERSION: string;
}

View File

@ -1,98 +0,0 @@
// flow-typed signature: db5b2cdde8db39d47e27cc8ab84f89bf
// flow-typed version: d662d43161/chalk_v2.x.x/flow_>=v0.25.x
// From: https://github.com/chalk/chalk/blob/master/index.js.flow
declare module "chalk" {
declare type TemplateStringsArray = $ReadOnlyArray<string>;
declare type Level = $Values<{
None: 0,
Basic: 1,
Ansi256: 2,
TrueColor: 3
}>;
declare type ChalkOptions = {|
enabled?: boolean,
level?: Level
|};
declare type ColorSupport = {|
level: Level,
hasBasic: boolean,
has256: boolean,
has16m: boolean
|};
declare interface Chalk {
(...text: string[]): string,
(text: TemplateStringsArray, ...placeholders: string[]): string,
constructor(options?: ChalkOptions): Chalk,
enabled: boolean,
level: Level,
rgb(r: number, g: number, b: number): Chalk,
hsl(h: number, s: number, l: number): Chalk,
hsv(h: number, s: number, v: number): Chalk,
hwb(h: number, w: number, b: number): Chalk,
bgHex(color: string): Chalk,
bgKeyword(color: string): Chalk,
bgRgb(r: number, g: number, b: number): Chalk,
bgHsl(h: number, s: number, l: number): Chalk,
bgHsv(h: number, s: number, v: number): Chalk,
bgHwb(h: number, w: number, b: number): Chalk,
hex(color: string): Chalk,
keyword(color: string): Chalk,
+reset: Chalk,
+bold: Chalk,
+dim: Chalk,
+italic: Chalk,
+underline: Chalk,
+inverse: Chalk,
+hidden: Chalk,
+strikethrough: Chalk,
+visible: Chalk,
+black: Chalk,
+red: Chalk,
+green: Chalk,
+yellow: Chalk,
+blue: Chalk,
+magenta: Chalk,
+cyan: Chalk,
+white: Chalk,
+gray: Chalk,
+grey: Chalk,
+blackBright: Chalk,
+redBright: Chalk,
+greenBright: Chalk,
+yellowBright: Chalk,
+blueBright: Chalk,
+magentaBright: Chalk,
+cyanBright: Chalk,
+whiteBright: Chalk,
+bgBlack: Chalk,
+bgRed: Chalk,
+bgGreen: Chalk,
+bgYellow: Chalk,
+bgBlue: Chalk,
+bgMagenta: Chalk,
+bgCyan: Chalk,
+bgWhite: Chalk,
+bgBlackBright: Chalk,
+bgRedBright: Chalk,
+bgGreenBright: Chalk,
+bgYellowBright: Chalk,
+bgBlueBright: Chalk,
+bgMagentaBright: Chalk,
+bgCyanBright: Chalk,
+bgWhiteBrigh: Chalk,
supportsColor: ColorSupport
}
declare module.exports: Chalk;
}

View File

@ -1,281 +0,0 @@
// flow-typed signature: 9a1fb3feac221b50aab621209bf8ca9c
// flow-typed version: 94e9f7e0a4/commander_v2.x.x/flow_>=v0.28.x
declare module "commander" {
declare class Command extends events$EventEmitter {
/**
* Initialize a new `Command`.
*
* @param {String} name
* @api public
*/
constructor(name?: string): Command;
/**
* Add command `name`.
*
* The `.action()` callback is invoked when the
* command `name` is specified via __ARGV__,
* and the remaining arguments are applied to the
* function for access.
*
* When the `name` is "*" an un-matched command
* will be passed as the first arg, followed by
* the rest of __ARGV__ remaining.
*
* Examples:
*
* program
* .version('0.0.1')
* .option('-C, --chdir <path>', 'change the working directory')
* .option('-c, --config <path>', 'set config path. defaults to ./deploy.conf')
* .option('-T, --no-tests', 'ignore test hook')
*
* program
* .command('setup')
* .description('run remote setup commands')
* .action(function(){
* console.log('setup');
* });
*
* program
* .command('exec <cmd>')
* .description('run the given remote command')
* .action(function(cmd){
* console.log('exec "%s"', cmd);
* });
*
* program
* .command('*')
* .description('deploy the given env')
* .action(function(env){
* console.log('deploying "%s"', env);
* });
*
* program.parse(process.argv);
*
* @param {String} name
* @param {String} [desc]
* @param {Mixed} [opts]
* @return {Command} the new command
* @api public
*/
command(
name: string,
desc?: string,
opts?: { isDefault: boolean, noHelp: boolean }
): Command;
/**
* Parse expected `args`.
*
* For example `["[type]"]` becomes `[{ required: false, name: 'type' }]`.
*
* @param {Array} args
* @return {Command} for chaining
* @api public
*/
parseExpectedArgs(args: Array<string>): this;
/**
* Register callback `fn` for the command.
*
* Examples:
*
* program
* .command('help')
* .description('display verbose help')
* .action(function(){
* // output help here
* });
*
* @param {Function} fn
* @return {Command} for chaining
* @api public
*/
action(fn: (...args: Array<any>) => mixed): this;
/**
* Define option with `flags`, `description` and optional
* coercion `fn`.
*
* The `flags` string should contain both the short and long flags,
* separated by comma, a pipe or space. The following are all valid
* all will output this way when `--help` is used.
*
* "-p, --pepper"
* "-p|--pepper"
* "-p --pepper"
*
* Examples:
*
* // simple boolean defaulting to false
* program.option('-p, --pepper', 'add pepper');
*
* --pepper
* program.pepper
* // => Boolean
*
* // simple boolean defaulting to true
* program.option('-C, --no-cheese', 'remove cheese');
*
* program.cheese
* // => true
*
* --no-cheese
* program.cheese
* // => false
*
* // required argument
* program.option('-C, --chdir <path>', 'change the working directory');
*
* --chdir /tmp
* program.chdir
* // => "/tmp"
*
* // optional argument
* program.option('-c, --cheese [type]', 'add cheese [marble]');
*
* @param {String} flags
* @param {String} description
* @param {Function|Mixed} fn or default
* @param {Mixed} defaultValue
* @return {Command} for chaining
* @api public
*/
option(flags: string, description?: string, fn?: ((val: any, memo: any) => mixed) | RegExp, defaultValue?: mixed): this;
option(flags: string, description?: string, defaultValue?: mixed): this;
/**
* Allow unknown options on the command line.
*
* @param {Boolean} arg if `true` or omitted, no error will be thrown
* for unknown options.
* @api public
*/
allowUnknownOption(arg?: boolean): this;
/**
* Parse `argv`, settings options and invoking commands when defined.
*
* @param {Array} argv
* @return {Command} for chaining
* @api public
*/
parse(argv: Array<string>): this;
/**
* Parse options from `argv` returning `argv`
* void of these options.
*
* @param {Array} argv
* @return {Array}
* @api public
*/
parseOptions(argv: Array<string>): { args: Array<string>, unknown: Array<string> };
/**
* Define argument syntax for the top-level command.
*
* @api public
*/
arguments(desc: string): this;
/**
* Return an object containing options as key-value pairs
*
* @return {Object}
* @api public
*/
opts(): { [key: string]: any };
/**
* Set the program version to `str`.
*
* This method auto-registers the "-V, --version" flag
* which will print the version number when passed.
*
* @param {String} str
* @param {String} flags
* @return {Command} for chaining
* @api public
*/
version(str: string, flags?: string): this;
/**
* Set the description to `str`.
*
* @param {String} str
* @return {String|Command}
* @api public
*/
description(str: string): this;
description(): string;
/**
* Set an alias for the command
*
* @param {String} alias
* @return {String|Command}
* @api public
*/
alias(alias: string): this;
alias(): string;
/**
* Set / get the command usage `str`.
*
* @param {String} str
* @return {String|Command}
* @api public
*/
usage(str: string): this;
usage(): string;
/**
* Get the name of the command
*
* @param {String} name
* @return {String|Command}
* @api public
*/
name(): string;
/**
* Output help information for this command
*
* @api public
*/
outputHelp(): void;
/**
* Output help information and exit.
*
* @api public
*/
help(): void;
}
declare class Option {
/**
* Initialize a new `Option` with the given `flags` and `description`.
*
* @param {String} flags
* @param {String} description
* @api public
*/
constructor(flags: string, description?: string): Option;
flags: string;
required: boolean;
optional: boolean;
bool: boolean;
short?: string;
long: string;
description: string;
}
declare module.exports: Command & {
Command: Command,
Option: Option
};
}

View File

@ -1,33 +0,0 @@
// flow-typed signature: 80c21b4a25778a0faefd532204b78050
// flow-typed version: <<STUB>>/compression_v1.7.2/flow_v0.67.1
/**
* This is an autogenerated libdef stub for:
*
* 'compression'
*
* 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 'compression' {
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.
*/
// Filename aliases
declare module 'compression/index' {
declare module.exports: $Exports<'compression'>;
}
declare module 'compression/index.js' {
declare module.exports: $Exports<'compression'>;
}

View File

@ -1,33 +0,0 @@
// flow-typed signature: dd32612579acfe0d3fb825468a81fc4a
// flow-typed version: <<STUB>>/cookies_v0.7.1/flow_v0.64.0
/**
* This is an autogenerated libdef stub for:
*
* 'cookies'
*
* 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 'cookies' {
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.
*/
// Filename aliases
declare module 'cookies/index' {
declare module.exports: $Exports<'cookies'>;
}
declare module 'cookies/index.js' {
declare module.exports: $Exports<'cookies'>;
}

View File

@ -1,88 +0,0 @@
// flow-typed signature: d369e8a6411b1ce4fcd5339b6d41e441
// flow-typed version: <<STUB>>/cors_v2.8.4/flow_v0.67.1
/**
* This is an autogenerated libdef stub for:
*
* 'cors'
*
* 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 'cors' {
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 'cors/lib/index' {
declare module.exports: any;
}
declare module 'cors/test/basic-auth' {
declare module.exports: any;
}
declare module 'cors/test/body-events' {
declare module.exports: any;
}
declare module 'cors/test/cors' {
declare module.exports: any;
}
declare module 'cors/test/error-response' {
declare module.exports: any;
}
declare module 'cors/test/example-app' {
declare module.exports: any;
}
declare module 'cors/test/issue-2' {
declare module.exports: any;
}
declare module 'cors/test/issue-31' {
declare module.exports: any;
}
declare module 'cors/test/support/env' {
declare module.exports: any;
}
// Filename aliases
declare module 'cors/lib/index.js' {
declare module.exports: $Exports<'cors/lib/index'>;
}
declare module 'cors/test/basic-auth.js' {
declare module.exports: $Exports<'cors/test/basic-auth'>;
}
declare module 'cors/test/body-events.js' {
declare module.exports: $Exports<'cors/test/body-events'>;
}
declare module 'cors/test/cors.js' {
declare module.exports: $Exports<'cors/test/cors'>;
}
declare module 'cors/test/error-response.js' {
declare module.exports: $Exports<'cors/test/error-response'>;
}
declare module 'cors/test/example-app.js' {
declare module.exports: $Exports<'cors/test/example-app'>;
}
declare module 'cors/test/issue-2.js' {
declare module.exports: $Exports<'cors/test/issue-2'>;
}
declare module 'cors/test/issue-31.js' {
declare module.exports: $Exports<'cors/test/issue-31'>;
}
declare module 'cors/test/support/env.js' {
declare module.exports: $Exports<'cors/test/support/env'>;
}

View File

@ -1,127 +0,0 @@
// flow-typed signature: 02db3523747059d89e87d4dec6873edf
// flow-typed version: 62a0c60689/enzyme_v3.x.x/flow_>=v0.53.x
import * as React from "react";
declare module "enzyme" {
declare type PredicateFunction<T: Wrapper> = (
wrapper: T,
index: number
) => boolean;
declare type NodeOrNodes = React.Node | Array<React.Node>;
declare type EnzymeSelector = string | Class<React.Component<*, *>> | Object;
// CheerioWrapper is a type alias for an actual cheerio instance
// TODO: Reference correct type from cheerio's type declarations
declare type CheerioWrapper = any;
declare class Wrapper {
find(selector: EnzymeSelector): this,
findWhere(predicate: PredicateFunction<this>): this,
filter(selector: EnzymeSelector): this,
filterWhere(predicate: PredicateFunction<this>): this,
hostNodes(): this,
contains(nodeOrNodes: NodeOrNodes): boolean,
containsMatchingElement(node: React.Node): boolean,
containsAllMatchingElements(nodes: NodeOrNodes): boolean,
containsAnyMatchingElements(nodes: NodeOrNodes): boolean,
dive(option?: { context?: Object }): this,
exists(): boolean,
isEmptyRender(): boolean,
matchesElement(node: React.Node): boolean,
hasClass(className: string): boolean,
is(selector: EnzymeSelector): boolean,
isEmpty(): boolean,
not(selector: EnzymeSelector): this,
children(selector?: EnzymeSelector): this,
childAt(index: number): this,
parents(selector?: EnzymeSelector): this,
parent(): this,
closest(selector: EnzymeSelector): this,
render(): CheerioWrapper,
unmount(): this,
text(): string,
html(): string,
get(index: number): React.Node,
getNodes(): Array<React.Node>,
getDOMNode(): HTMLElement | HTMLInputElement,
at(index: number): this,
first(): this,
last(): this,
state(key?: string): any,
context(key?: string): any,
props(): Object,
prop(key: string): any,
key(): string,
simulate(event: string, ...args: Array<any>): this,
setState(state: {}, callback?: Function): this,
setProps(props: {}): this,
setContext(context: Object): this,
instance(): React.Component<*, *>,
update(): this,
debug(): string,
type(): string | Function | null,
name(): string,
forEach(fn: (node: this, index: number) => mixed): this,
map<T>(fn: (node: this, index: number) => T): Array<T>,
reduce<T>(
fn: (value: T, node: this, index: number) => T,
initialValue?: T
): Array<T>,
reduceRight<T>(
fn: (value: T, node: this, index: number) => T,
initialValue?: T
): Array<T>,
some(selector: EnzymeSelector): boolean,
someWhere(predicate: PredicateFunction<this>): boolean,
every(selector: EnzymeSelector): boolean,
everyWhere(predicate: PredicateFunction<this>): boolean,
length: number
}
declare class ReactWrapper extends Wrapper {
constructor(nodes: NodeOrNodes, root: any, options?: ?Object): ReactWrapper,
mount(): this,
ref(refName: string): this,
detach(): void
}
declare class ShallowWrapper extends Wrapper {
constructor(
nodes: NodeOrNodes,
root: any,
options?: ?Object
): ShallowWrapper,
equals(node: React.Node): boolean,
shallow(options?: { context?: Object }): ShallowWrapper
}
declare function shallow(
node: React.Node,
options?: { context?: Object, disableLifecycleMethods?: boolean }
): ShallowWrapper;
declare function mount(
node: React.Node,
options?: {
context?: Object,
attachTo?: HTMLElement,
childContextTypes?: Object
}
): ReactWrapper;
declare function render(
node: React.Node,
options?: { context?: Object }
): CheerioWrapper;
declare module.exports: {
configure(options: {
Adapter?: any,
disableLifecycleMethods?: boolean
}): void,
render: typeof render,
mount: typeof mount,
shallow: typeof shallow,
ShallowWrapper: typeof ShallowWrapper,
ReactWrapper: typeof ReactWrapper
};
}

View File

@ -1,304 +0,0 @@
// flow-typed signature: cc24a4e737d9dfb8e1381c3bd4ebaa65
// flow-typed version: d11eab7bb5/express_v4.16.x/flow_>=v0.32.x
import type { Server } from "http";
import type { Socket } from "net";
declare type express$RouterOptions = {
caseSensitive?: boolean,
mergeParams?: boolean,
strict?: boolean
};
declare class express$RequestResponseBase {
app: express$Application;
get(field: string): string | void;
}
declare type express$RequestParams = {
[param: string]: string
};
declare class express$Request extends http$IncomingMessage mixins express$RequestResponseBase {
baseUrl: string;
body: mixed;
cookies: { [cookie: string]: string };
connection: Socket;
fresh: boolean;
hostname: string;
ip: string;
ips: Array<string>;
method: string;
originalUrl: string;
params: express$RequestParams;
path: string;
protocol: "https" | "http";
query: { [name: string]: string | Array<string> };
route: string;
secure: boolean;
signedCookies: { [signedCookie: string]: string };
stale: boolean;
subdomains: Array<string>;
xhr: boolean;
accepts(types: string): string | false;
accepts(types: Array<string>): string | false;
acceptsCharsets(...charsets: Array<string>): string | false;
acceptsEncodings(...encoding: Array<string>): string | false;
acceptsLanguages(...lang: Array<string>): string | false;
header(field: string): string | void;
is(type: string): boolean;
param(name: string, defaultValue?: string): string | void;
}
declare type express$CookieOptions = {
domain?: string,
encode?: (value: string) => string,
expires?: Date,
httpOnly?: boolean,
maxAge?: number,
path?: string,
secure?: boolean,
signed?: boolean
};
declare type express$Path = string | RegExp;
declare type express$RenderCallback = (
err: Error | null,
html?: string
) => mixed;
declare type express$SendFileOptions = {
maxAge?: number,
root?: string,
lastModified?: boolean,
headers?: { [name: string]: string },
dotfiles?: "allow" | "deny" | "ignore"
};
declare class express$Response extends http$ServerResponse mixins express$RequestResponseBase {
headersSent: boolean;
locals: { [name: string]: mixed };
append(field: string, value?: string): this;
attachment(filename?: string): this;
cookie(name: string, value: string, options?: express$CookieOptions): this;
clearCookie(name: string, options?: express$CookieOptions): this;
download(
path: string,
filename?: string,
callback?: (err?: ?Error) => void
): this;
format(typesObject: { [type: string]: Function }): this;
json(body?: mixed): this;
jsonp(body?: mixed): this;
links(links: { [name: string]: string }): this;
location(path: string): this;
redirect(url: string, ...args: Array<void>): this;
redirect(status: number, url: string, ...args: Array<void>): this;
render(
view: string,
locals?: { [name: string]: mixed },
callback?: express$RenderCallback
): this;
send(body?: mixed): this;
sendFile(
path: string,
options?: express$SendFileOptions,
callback?: (err?: ?Error) => mixed
): this;
sendStatus(statusCode: number): this;
header(field: string, value?: string): this;
header(headers: { [name: string]: string }): this;
set(field: string, value?: string | string[]): this;
set(headers: { [name: string]: string }): this;
status(statusCode: number): this;
type(type: string): this;
vary(field: string): this;
req: express$Request;
}
declare type express$NextFunction = (err?: ?Error | "route") => mixed;
declare type express$Middleware =
| ((
req: $Subtype<express$Request>,
res: express$Response,
next: express$NextFunction
) => mixed)
| ((
error: Error,
req: $Subtype<express$Request>,
res: express$Response,
next: express$NextFunction
) => mixed);
declare interface express$RouteMethodType<T> {
(middleware: express$Middleware): T;
(...middleware: Array<express$Middleware>): T;
(
path: express$Path | express$Path[],
...middleware: Array<express$Middleware>
): T;
}
declare class express$Route {
all: express$RouteMethodType<this>;
get: express$RouteMethodType<this>;
post: express$RouteMethodType<this>;
put: express$RouteMethodType<this>;
head: express$RouteMethodType<this>;
delete: express$RouteMethodType<this>;
options: express$RouteMethodType<this>;
trace: express$RouteMethodType<this>;
copy: express$RouteMethodType<this>;
lock: express$RouteMethodType<this>;
mkcol: express$RouteMethodType<this>;
move: express$RouteMethodType<this>;
purge: express$RouteMethodType<this>;
propfind: express$RouteMethodType<this>;
proppatch: express$RouteMethodType<this>;
unlock: express$RouteMethodType<this>;
report: express$RouteMethodType<this>;
mkactivity: express$RouteMethodType<this>;
checkout: express$RouteMethodType<this>;
merge: express$RouteMethodType<this>;
// @TODO Missing 'm-search' but get flow illegal name error.
notify: express$RouteMethodType<this>;
subscribe: express$RouteMethodType<this>;
unsubscribe: express$RouteMethodType<this>;
patch: express$RouteMethodType<this>;
search: express$RouteMethodType<this>;
connect: express$RouteMethodType<this>;
}
declare class express$Router extends express$Route {
constructor(options?: express$RouterOptions): void;
route(path: string): express$Route;
static (options?: express$RouterOptions): express$Router;
use(middleware: express$Middleware): this;
use(...middleware: Array<express$Middleware>): this;
use(
path: express$Path | express$Path[],
...middleware: Array<express$Middleware>
): this;
use(path: string, router: express$Router): this;
handle(
req: http$IncomingMessage,
res: http$ServerResponse,
next: express$NextFunction
): void;
param(
param: string,
callback: (
req: $Subtype<express$Request>,
res: express$Response,
next: express$NextFunction,
id: string
) => mixed
): void;
(
req: http$IncomingMessage,
res: http$ServerResponse,
next?: ?express$NextFunction
): void;
}
/*
With flow-bin ^0.59, express app.listen() is deemed to return any and fails flow type coverage.
Which is ironic because https://github.com/facebook/flow/blob/master/Changelog.md#misc-2 (release notes for 0.59)
says "Improves typings for Node.js HTTP server listen() function." See that? IMPROVES!
To work around this issue, we changed Server to ?Server here, so that our invocations of express.listen() will
not be deemed to lack type coverage.
*/
declare class express$Application extends express$Router mixins events$EventEmitter {
constructor(): void;
locals: { [name: string]: mixed };
mountpath: string;
listen(
port: number,
hostname?: string,
backlog?: number,
callback?: (err?: ?Error) => mixed
): ?Server;
listen(
port: number,
hostname?: string,
callback?: (err?: ?Error) => mixed
): ?Server;
listen(port: number, callback?: (err?: ?Error) => mixed): ?Server;
listen(path: string, callback?: (err?: ?Error) => mixed): ?Server;
listen(handle: Object, callback?: (err?: ?Error) => mixed): ?Server;
disable(name: string): void;
disabled(name: string): boolean;
enable(name: string): express$Application;
enabled(name: string): boolean;
engine(name: string, callback: Function): void;
/**
* Mixed will not be taken as a value option. Issue around using the GET http method name and the get for settings.
*/
// get(name: string): mixed;
set(name: string, value: mixed): mixed;
render(
name: string,
optionsOrFunction: { [name: string]: mixed },
callback: express$RenderCallback
): void;
handle(
req: http$IncomingMessage,
res: http$ServerResponse,
next?: ?express$NextFunction
): void;
// callable signature is not inherited
(
req: http$IncomingMessage,
res: http$ServerResponse,
next?: ?express$NextFunction
): void;
}
declare type JsonOptions = {
inflate?: boolean,
limit?: string | number,
reviver?: (key: string, value: mixed) => mixed,
strict?: boolean,
type?: string | Array<string> | ((req: express$Request) => boolean),
verify?: (
req: express$Request,
res: express$Response,
buf: Buffer,
encoding: string
) => mixed
};
declare type express$UrlEncodedOptions = {
extended?: boolean,
inflate?: boolean,
limit?: string | number,
parameterLimit?: number,
type?: string | Array<string> | ((req: express$Request) => boolean),
verify?: (
req: express$Request,
res: express$Response,
buf: Buffer,
encoding: string
) => mixed,
}
declare module "express" {
declare export type RouterOptions = express$RouterOptions;
declare export type CookieOptions = express$CookieOptions;
declare export type Middleware = express$Middleware;
declare export type NextFunction = express$NextFunction;
declare export type RequestParams = express$RequestParams;
declare export type $Response = express$Response;
declare export type $Request = express$Request;
declare export type $Application = express$Application;
declare module.exports: {
(): express$Application, // If you try to call like a function, it will use this signature
json: (opts: ?JsonOptions) => express$Middleware,
static: (root: string, options?: Object) => express$Middleware, // `static` property on the function
Router: typeof express$Router, // `Router` property on the function
urlencoded: (opts: ?express$UrlEncodedOptions) => express$Middleware,
};
}

View File

@ -1,6 +0,0 @@
// 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;
}

View File

@ -1,18 +0,0 @@
// flow-typed signature: cda964a8fd1ee8efbd11f88eb4c5c4df
// flow-typed version: <<STUB>>/github-markdown-css_v2.10.0/flow_v0.81.0
/**
* This is an autogenerated libdef stub for:
*
* 'github-markdown-css'
*
* 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 'github-markdown-css' {
declare module.exports: any;
}

View File

@ -1,59 +0,0 @@
// flow-typed signature: 573c576fe34eb3c3c65dd7a9c90a46d2
// flow-typed version: b43dff3e0e/http-errors_v1.x.x/flow_>=v0.25.x
declare module 'http-errors' {
declare class SpecialHttpError extends HttpError {
constructor(): SpecialHttpError;
}
declare class HttpError extends Error {
expose: bool;
message: string;
status: number;
statusCode: number;
}
declare module.exports: {
(status?: number, message?: string, props?: Object): HttpError;
HttpError: typeof HttpError;
BadRequest: typeof SpecialHttpError;
Unauthorized: typeof SpecialHttpError;
PaymentRequired: typeof SpecialHttpError;
Forbidden: typeof SpecialHttpError;
NotFound: typeof SpecialHttpError;
MethodNotAllowed: typeof SpecialHttpError;
NotAcceptable: typeof SpecialHttpError;
ProxyAuthenticationRequired: typeof SpecialHttpError;
RequestTimeout: typeof SpecialHttpError;
Conflict: typeof SpecialHttpError;
Gone: typeof SpecialHttpError;
LengthRequired: typeof SpecialHttpError;
PreconditionFailed: typeof SpecialHttpError;
PayloadTooLarge: typeof SpecialHttpError;
URITooLong: typeof SpecialHttpError;
UnsupportedMediaType: typeof SpecialHttpError;
RangeNotStatisfiable: typeof SpecialHttpError;
ExpectationFailed: typeof SpecialHttpError;
ImATeapot: typeof SpecialHttpError;
MisdirectedRequest: typeof SpecialHttpError;
UnprocessableEntity: typeof SpecialHttpError;
Locked: typeof SpecialHttpError;
FailedDependency: typeof SpecialHttpError;
UnorderedCollection: typeof SpecialHttpError;
UpgradeRequired: typeof SpecialHttpError;
PreconditionRequired: typeof SpecialHttpError;
TooManyRequests: typeof SpecialHttpError;
RequestHeaderFieldsTooLarge: typeof SpecialHttpError;
UnavailableForLegalReasons: typeof SpecialHttpError;
InternalServerError: typeof SpecialHttpError;
NotImplemented: typeof SpecialHttpError;
BadGateway: typeof SpecialHttpError;
ServiceUnavailable: typeof SpecialHttpError;
GatewayTimeout: typeof SpecialHttpError;
HTTPVersionNotSupported: typeof SpecialHttpError;
VariantAlsoNegotiates: typeof SpecialHttpError;
InsufficientStorage: typeof SpecialHttpError;
LoopDetected: typeof SpecialHttpError;
BandwidthLimitExceeded: typeof SpecialHttpError;
NotExtended: typeof SpecialHttpError;
NetworkAuthenticationRequired: typeof SpecialHttpError;
}
}

View File

@ -1,32 +0,0 @@
// flow-typed signature: 76121323ae40fcb28bee1398717ee06c
// flow-typed version: <<STUB>>/jest-environment-node_v22.x.x/flow_v0.69.0
/**
* This is an autogenerated libdef stub for:
*
* 'jest-environment-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 'jest-environment-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 'jest-environment-node/build/index' {
declare module.exports: any;
}
// Filename aliases
declare module 'jest-environment-node/build/index.js' {
declare module.exports: $Exports<'jest-environment-node/build/index'>;
}

File diff suppressed because it is too large Load Diff

View File

@ -1,255 +0,0 @@
// flow-typed signature: 10998829754884cf0b6f5fe169611a08
// flow-typed version: <<STUB>>/js-yaml_v3.10.0/flow_v0.64.0
/**
* This is an autogenerated libdef stub for:
*
* 'js-yaml'
*
* 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 'js-yaml' {
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 'js-yaml/bin/js-yaml' {
declare module.exports: any;
}
declare module 'js-yaml/dist/js-yaml' {
declare module.exports: any;
}
declare module 'js-yaml/dist/js-yaml.min' {
declare module.exports: any;
}
declare module 'js-yaml/lib/js-yaml' {
declare module.exports: any;
}
declare module 'js-yaml/lib/js-yaml/common' {
declare module.exports: any;
}
declare module 'js-yaml/lib/js-yaml/dumper' {
declare module.exports: any;
}
declare module 'js-yaml/lib/js-yaml/exception' {
declare module.exports: any;
}
declare module 'js-yaml/lib/js-yaml/loader' {
declare module.exports: any;
}
declare module 'js-yaml/lib/js-yaml/mark' {
declare module.exports: any;
}
declare module 'js-yaml/lib/js-yaml/schema' {
declare module.exports: any;
}
declare module 'js-yaml/lib/js-yaml/schema/core' {
declare module.exports: any;
}
declare module 'js-yaml/lib/js-yaml/schema/default_full' {
declare module.exports: any;
}
declare module 'js-yaml/lib/js-yaml/schema/default_safe' {
declare module.exports: any;
}
declare module 'js-yaml/lib/js-yaml/schema/failsafe' {
declare module.exports: any;
}
declare module 'js-yaml/lib/js-yaml/schema/json' {
declare module.exports: any;
}
declare module 'js-yaml/lib/js-yaml/type' {
declare module.exports: any;
}
declare module 'js-yaml/lib/js-yaml/type/binary' {
declare module.exports: any;
}
declare module 'js-yaml/lib/js-yaml/type/bool' {
declare module.exports: any;
}
declare module 'js-yaml/lib/js-yaml/type/float' {
declare module.exports: any;
}
declare module 'js-yaml/lib/js-yaml/type/int' {
declare module.exports: any;
}
declare module 'js-yaml/lib/js-yaml/type/js/function' {
declare module.exports: any;
}
declare module 'js-yaml/lib/js-yaml/type/js/regexp' {
declare module.exports: any;
}
declare module 'js-yaml/lib/js-yaml/type/js/undefined' {
declare module.exports: any;
}
declare module 'js-yaml/lib/js-yaml/type/map' {
declare module.exports: any;
}
declare module 'js-yaml/lib/js-yaml/type/merge' {
declare module.exports: any;
}
declare module 'js-yaml/lib/js-yaml/type/null' {
declare module.exports: any;
}
declare module 'js-yaml/lib/js-yaml/type/omap' {
declare module.exports: any;
}
declare module 'js-yaml/lib/js-yaml/type/pairs' {
declare module.exports: any;
}
declare module 'js-yaml/lib/js-yaml/type/seq' {
declare module.exports: any;
}
declare module 'js-yaml/lib/js-yaml/type/set' {
declare module.exports: any;
}
declare module 'js-yaml/lib/js-yaml/type/str' {
declare module.exports: any;
}
declare module 'js-yaml/lib/js-yaml/type/timestamp' {
declare module.exports: any;
}
// Filename aliases
declare module 'js-yaml/bin/js-yaml.js' {
declare module.exports: $Exports<'js-yaml/bin/js-yaml'>;
}
declare module 'js-yaml/dist/js-yaml.js' {
declare module.exports: $Exports<'js-yaml/dist/js-yaml'>;
}
declare module 'js-yaml/dist/js-yaml.min.js' {
declare module.exports: $Exports<'js-yaml/dist/js-yaml.min'>;
}
declare module 'js-yaml/index' {
declare module.exports: $Exports<'js-yaml'>;
}
declare module 'js-yaml/index.js' {
declare module.exports: $Exports<'js-yaml'>;
}
declare module 'js-yaml/lib/js-yaml.js' {
declare module.exports: $Exports<'js-yaml/lib/js-yaml'>;
}
declare module 'js-yaml/lib/js-yaml/common.js' {
declare module.exports: $Exports<'js-yaml/lib/js-yaml/common'>;
}
declare module 'js-yaml/lib/js-yaml/dumper.js' {
declare module.exports: $Exports<'js-yaml/lib/js-yaml/dumper'>;
}
declare module 'js-yaml/lib/js-yaml/exception.js' {
declare module.exports: $Exports<'js-yaml/lib/js-yaml/exception'>;
}
declare module 'js-yaml/lib/js-yaml/loader.js' {
declare module.exports: $Exports<'js-yaml/lib/js-yaml/loader'>;
}
declare module 'js-yaml/lib/js-yaml/mark.js' {
declare module.exports: $Exports<'js-yaml/lib/js-yaml/mark'>;
}
declare module 'js-yaml/lib/js-yaml/schema.js' {
declare module.exports: $Exports<'js-yaml/lib/js-yaml/schema'>;
}
declare module 'js-yaml/lib/js-yaml/schema/core.js' {
declare module.exports: $Exports<'js-yaml/lib/js-yaml/schema/core'>;
}
declare module 'js-yaml/lib/js-yaml/schema/default_full.js' {
declare module.exports: $Exports<'js-yaml/lib/js-yaml/schema/default_full'>;
}
declare module 'js-yaml/lib/js-yaml/schema/default_safe.js' {
declare module.exports: $Exports<'js-yaml/lib/js-yaml/schema/default_safe'>;
}
declare module 'js-yaml/lib/js-yaml/schema/failsafe.js' {
declare module.exports: $Exports<'js-yaml/lib/js-yaml/schema/failsafe'>;
}
declare module 'js-yaml/lib/js-yaml/schema/json.js' {
declare module.exports: $Exports<'js-yaml/lib/js-yaml/schema/json'>;
}
declare module 'js-yaml/lib/js-yaml/type.js' {
declare module.exports: $Exports<'js-yaml/lib/js-yaml/type'>;
}
declare module 'js-yaml/lib/js-yaml/type/binary.js' {
declare module.exports: $Exports<'js-yaml/lib/js-yaml/type/binary'>;
}
declare module 'js-yaml/lib/js-yaml/type/bool.js' {
declare module.exports: $Exports<'js-yaml/lib/js-yaml/type/bool'>;
}
declare module 'js-yaml/lib/js-yaml/type/float.js' {
declare module.exports: $Exports<'js-yaml/lib/js-yaml/type/float'>;
}
declare module 'js-yaml/lib/js-yaml/type/int.js' {
declare module.exports: $Exports<'js-yaml/lib/js-yaml/type/int'>;
}
declare module 'js-yaml/lib/js-yaml/type/js/function.js' {
declare module.exports: $Exports<'js-yaml/lib/js-yaml/type/js/function'>;
}
declare module 'js-yaml/lib/js-yaml/type/js/regexp.js' {
declare module.exports: $Exports<'js-yaml/lib/js-yaml/type/js/regexp'>;
}
declare module 'js-yaml/lib/js-yaml/type/js/undefined.js' {
declare module.exports: $Exports<'js-yaml/lib/js-yaml/type/js/undefined'>;
}
declare module 'js-yaml/lib/js-yaml/type/map.js' {
declare module.exports: $Exports<'js-yaml/lib/js-yaml/type/map'>;
}
declare module 'js-yaml/lib/js-yaml/type/merge.js' {
declare module.exports: $Exports<'js-yaml/lib/js-yaml/type/merge'>;
}
declare module 'js-yaml/lib/js-yaml/type/null.js' {
declare module.exports: $Exports<'js-yaml/lib/js-yaml/type/null'>;
}
declare module 'js-yaml/lib/js-yaml/type/omap.js' {
declare module.exports: $Exports<'js-yaml/lib/js-yaml/type/omap'>;
}
declare module 'js-yaml/lib/js-yaml/type/pairs.js' {
declare module.exports: $Exports<'js-yaml/lib/js-yaml/type/pairs'>;
}
declare module 'js-yaml/lib/js-yaml/type/seq.js' {
declare module.exports: $Exports<'js-yaml/lib/js-yaml/type/seq'>;
}
declare module 'js-yaml/lib/js-yaml/type/set.js' {
declare module.exports: $Exports<'js-yaml/lib/js-yaml/type/set'>;
}
declare module 'js-yaml/lib/js-yaml/type/str.js' {
declare module.exports: $Exports<'js-yaml/lib/js-yaml/type/str'>;
}
declare module 'js-yaml/lib/js-yaml/type/timestamp.js' {
declare module.exports: $Exports<'js-yaml/lib/js-yaml/type/timestamp'>;
}

View File

@ -1,80 +0,0 @@
// flow-typed signature: 4ec026fce9b8a945dbac93217027085d
// flow-typed version: <<STUB>>/jsonwebtoken_v8.1.1/flow_v0.64.0
/**
* This is an autogenerated libdef stub for:
*
* 'jsonwebtoken'
*
* 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 'jsonwebtoken' {
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 'jsonwebtoken/decode' {
declare module.exports: any;
}
declare module 'jsonwebtoken/lib/JsonWebTokenError' {
declare module.exports: any;
}
declare module 'jsonwebtoken/lib/NotBeforeError' {
declare module.exports: any;
}
declare module 'jsonwebtoken/lib/timespan' {
declare module.exports: any;
}
declare module 'jsonwebtoken/lib/TokenExpiredError' {
declare module.exports: any;
}
declare module 'jsonwebtoken/sign' {
declare module.exports: any;
}
declare module 'jsonwebtoken/verify' {
declare module.exports: any;
}
// Filename aliases
declare module 'jsonwebtoken/decode.js' {
declare module.exports: $Exports<'jsonwebtoken/decode'>;
}
declare module 'jsonwebtoken/index' {
declare module.exports: $Exports<'jsonwebtoken'>;
}
declare module 'jsonwebtoken/index.js' {
declare module.exports: $Exports<'jsonwebtoken'>;
}
declare module 'jsonwebtoken/lib/JsonWebTokenError.js' {
declare module.exports: $Exports<'jsonwebtoken/lib/JsonWebTokenError'>;
}
declare module 'jsonwebtoken/lib/NotBeforeError.js' {
declare module.exports: $Exports<'jsonwebtoken/lib/NotBeforeError'>;
}
declare module 'jsonwebtoken/lib/timespan.js' {
declare module.exports: $Exports<'jsonwebtoken/lib/timespan'>;
}
declare module 'jsonwebtoken/lib/TokenExpiredError.js' {
declare module.exports: $Exports<'jsonwebtoken/lib/TokenExpiredError'>;
}
declare module 'jsonwebtoken/sign.js' {
declare module.exports: $Exports<'jsonwebtoken/sign'>;
}
declare module 'jsonwebtoken/verify.js' {
declare module.exports: $Exports<'jsonwebtoken/verify'>;
}

View File

@ -1,18 +0,0 @@
// flow-typed signature: 20e87b8d51bb8f98aaf129f4b0bdaf81
// flow-typed version: c5395b57b9/lockfile_v1.x.x/flow_>=v0.47.x
declare module "lockfile" {
declare type Callback = (err: ?Error) => void | mixed;
declare type LockOptions = {
wait?: number,
pollPeriod?: number,
stale?: number,
retries?: number,
retryWait?: number
};
declare interface LockFileExport {
lock(fileName: string, opts: LockOptions, cb: Callback): void,
unlock(fileName: string, cb: Callback): void
}
declare module.exports: LockFileExport;
}

File diff suppressed because it is too large Load Diff

View File

@ -1,74 +0,0 @@
// flow-typed signature: f588bf5982dc1140e97108be62b860db
// flow-typed version: <<STUB>>/lunr-mutable-indexes_v2.3.1/flow_v0.77.0
/**
* This is an autogenerated libdef stub for:
*
* 'lunr-mutable-indexes'
*
* 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 'lunr-mutable-indexes' {
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 'lunr-mutable-indexes/lib/lunr_mutable' {
declare module.exports: any;
}
declare module 'lunr-mutable-indexes/lib/mutable_builder' {
declare module.exports: any;
}
declare module 'lunr-mutable-indexes/lib/mutable_index' {
declare module.exports: any;
}
declare module 'lunr-mutable-indexes/lunr-mutable' {
declare module.exports: any;
}
declare module 'lunr-mutable-indexes/test/mutable_serialization_test' {
declare module.exports: any;
}
declare module 'lunr-mutable-indexes/test/mutable_sugar_test' {
declare module.exports: any;
}
declare module 'lunr-mutable-indexes/test/mutable_test' {
declare module.exports: any;
}
// Filename aliases
declare module 'lunr-mutable-indexes/lib/lunr_mutable.js' {
declare module.exports: $Exports<'lunr-mutable-indexes/lib/lunr_mutable'>;
}
declare module 'lunr-mutable-indexes/lib/mutable_builder.js' {
declare module.exports: $Exports<'lunr-mutable-indexes/lib/mutable_builder'>;
}
declare module 'lunr-mutable-indexes/lib/mutable_index.js' {
declare module.exports: $Exports<'lunr-mutable-indexes/lib/mutable_index'>;
}
declare module 'lunr-mutable-indexes/lunr-mutable.js' {
declare module.exports: $Exports<'lunr-mutable-indexes/lunr-mutable'>;
}
declare module 'lunr-mutable-indexes/test/mutable_serialization_test.js' {
declare module.exports: $Exports<'lunr-mutable-indexes/test/mutable_serialization_test'>;
}
declare module 'lunr-mutable-indexes/test/mutable_sugar_test.js' {
declare module.exports: $Exports<'lunr-mutable-indexes/test/mutable_sugar_test'>;
}
declare module 'lunr-mutable-indexes/test/mutable_test.js' {
declare module.exports: $Exports<'lunr-mutable-indexes/test/mutable_test'>;
}

View File

@ -1,163 +0,0 @@
// flow-typed signature: 85ea5a515c42c00188d893614f410655
// flow-typed version: 72fe9c1b53/marked_v0.3.x/flow_>=v0.28.x
type marked$AlignFlag = 'left' | 'right' | 'center'
type marked$NodeCallback<T> = (e: ?Error, d: ?T) => void
class marked$Renderer {
options: marked$MarkedOptions;
code: (c: string, l: string) => string;
blockquote: (q: string) => string;
html: (h: string) => string;
heading: (t: string, l: number) => string;
hr: () => string;
list: (b: string, o: boolean) => string;
listitem: (t: string) => string;
paragraph: (t: string) => string;
table: (h: string, b: string) => string;
tablerow: (c: string) => string;
tablecell: (c: string, f: ?marked$AlignFlag) => string;
heading: (t: string, l: number) => string;
strong: (t: string) => string;
em: (t: string) => string;
codespan: (c: string) => string;
br: () => string;
del: (t: string) => string;
link: (h: string, ti: string, te: string) => string;
image: (h: string, ti: string, te: string) => string;
text: (t: string) => string;
constructor(o?: marked$MarkedOptions): marked$Renderer {
return this;
}
}
type marked$HighlightFunction =
((c: string, l: string, cb: marked$NodeCallback<string>) => void)
| ((c: string, cb: marked$NodeCallback<string>) => void)
| ((c: string, l?: string) => string)
type marked$MarkedOptions = {
highlight?: marked$HighlightFunction;
renderer?: marked$Renderer;
gfm?: boolean;
tables?: boolean;
breaks?: boolean;
pedantic?: boolean;
sanitize?: boolean;
smartLists?: boolean;
smartypants?: boolean;
}
/*
* marked$Tokens
*/
type marked$Space = { type: 'space'; }
type marked$Code = { type: 'code'; text: string; lang?: string; }
type marked$Heading = { type: 'heading'; depth: number; text: string; }
type marked$Table = { type: 'table'; header: string; align: Array<marked$AlignFlag> ; cells: Array<Array<string>> }
type marked$Hr = { type: 'hr'; }
type marked$BlockquoteStart = { type: 'blockquote_start' }
type marked$BlockquoteEnd = { type: 'blockquote_end' }
type marked$ListStart = { type: 'list_start' }
type marked$ListEnd = { type: 'list_end' }
type marked$Paragraph = { type: 'paragraph'; pre: boolean; text: string; }
type marked$Html = { type: 'paragraph'; pre: boolean; text: string; }
type marked$Text = { type: 'text'; text: string; }
type marked$Token =
marked$Space
| marked$Code
| marked$Heading
| marked$Table
| marked$Hr
| marked$BlockquoteStart
| marked$BlockquoteEnd
| marked$ListStart
| marked$ListEnd
| marked$Paragraph
| marked$Html
| marked$Text
type marked$Link = {
title: ?string;
href: string;
}
type marked$Tokens = { links: Array<marked$Link> } & Array<marked$Token>;
type marked$NoopRule = {
(i: mixed): void;
exec: (i: mixed) => void;
}
type marked$Rule = RegExp | marked$NoopRule
type marked$lex = (t: string) => marked$Tokens;
class marked$Lexer {
static lexer: (t: string, o?: marked$MarkedOptions) => marked$Tokens;
static rules: { [key: string]: marked$Rule };
rules: { [key: string]: marked$Rule };
lex: marked$lex;
tokens: marked$Tokens;
options: marked$MarkedOptions;
constructor(o?: marked$MarkedOptions): marked$Lexer {
return this;
}
}
class marked$Parser {
static parse: (t: marked$Tokens, o?: marked$MarkedOptions) => string;
parse: (t: marked$Tokens) => string;
next: () => marked$Token;
peek: () => marked$Token;
parsemarked$Text: () => string;
tok: () => string;
tokens: marked$Tokens;
token: ?marked$Token;
options: marked$MarkedOptions;
renderer: marked$Renderer;
constructor(o?: marked$MarkedOptions): marked$Parser {
return this;
}
}
class marked$InlineLexer {
static rules: Array<marked$Rule>;
static output: (s: string, l: Array<marked$Link>, o?: marked$MarkedOptions) => string;
output: (s: string) => string;
outputmarked$Link: (c: Array<string>, l: marked$Link) => string;
smartypants: (t: string) => string;
mangle: (t: string) => string;
options: marked$MarkedOptions;
links: Array<marked$Link>;
rules: Array<marked$Rule>;
renderer: marked$Renderer;
constructor(l: Array<marked$Link>, o?: marked$MarkedOptions): marked$InlineLexer {
return this;
}
}
type marked$Marked = {
(md: string, o: marked$MarkedOptions, cb: marked$NodeCallback<string>): void;
(md: string, cb: marked$NodeCallback<string>): void;
(md: string, o?: marked$MarkedOptions): string;
setOptions: (o: marked$MarkedOptions) => void;
defaults: marked$MarkedOptions;
Parser: typeof marked$Parser;
parser: typeof marked$Parser.parse;
Lexer: typeof marked$Lexer;
lexer: typeof marked$Lexer.lexer;
InlineLexer: typeof marked$InlineLexer;
inlinelexer: marked$InlineLexer.output;
Renderer: typeof marked$Renderer;
parse: marked$Marked;
}
declare module marked {
declare export default marked$Marked;
}

View File

@ -1,66 +0,0 @@
// flow-typed signature: 56b4e33a3df0ef57946fd42834d344b8
// flow-typed version: <<STUB>>/mime_v2.2.0/flow_v0.67.1
/**
* This is an autogenerated libdef stub for:
*
* 'mime'
*
* 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 'mime' {
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 'mime/cli' {
declare module.exports: any;
}
declare module 'mime/lite' {
declare module.exports: any;
}
declare module 'mime/Mime' {
declare module.exports: any;
}
declare module 'mime/src/build' {
declare module.exports: any;
}
declare module 'mime/src/test' {
declare module.exports: any;
}
// Filename aliases
declare module 'mime/cli.js' {
declare module.exports: $Exports<'mime/cli'>;
}
declare module 'mime/index' {
declare module.exports: $Exports<'mime'>;
}
declare module 'mime/index.js' {
declare module.exports: $Exports<'mime'>;
}
declare module 'mime/lite.js' {
declare module.exports: $Exports<'mime/lite'>;
}
declare module 'mime/Mime.js' {
declare module.exports: $Exports<'mime/Mime'>;
}
declare module 'mime/src/build.js' {
declare module.exports: $Exports<'mime/src/build'>;
}
declare module 'mime/src/test.js' {
declare module.exports: $Exports<'mime/src/test'>;
}

View File

@ -1,53 +0,0 @@
// flow-typed signature: bc0af4a44bb8631039f713b1afba6988
// flow-typed version: d42cbef63c/minimatch_v3.x.x/flow_>=v0.25.x
type $npm$minimatch$Options = {
debug?: boolean,
nobrace?: boolean,
noglobstar?: boolean,
dot?: boolean,
noext?: boolean,
nocase?: boolean,
nonull?: boolean,
matchBase?: boolean,
nocomment?: boolean,
nonegate?: boolean,
flipNegate?: boolean
};
declare module "minimatch" {
declare class Minimatch {
constructor(pattern: string, options?: $npm$minimatch$Options): Minimatch,
set: Array<Array<string | RegExp>>,
regexp: null | RegExp, // null until .makeRe() is called
negate: boolean,
comment: boolean,
empty: boolean,
makeRe(): RegExp | false,
match(name: string): boolean,
matchOne(
fileArray: Array<string>,
patternArray: Array<string>,
partial?: boolean
): boolean
}
declare class MinimatchModule {
Minimatch: Class<Minimatch>,
(name: string, pattern: string, options?: $npm$minimatch$Options): boolean,
filter(
pattern: string,
options?: $npm$minimatch$Options
): (value: string) => boolean,
match(
list: Array<string>,
pattern: string,
options?: $npm$minimatch$Options
): Array<string>
}
declare module.exports: MinimatchModule;
}

View File

@ -1,13 +0,0 @@
// flow-typed signature: 82aa0feffc2bbd64dce3bec492f5d601
// flow-typed version: 3315d89a00/mkdirp_v0.5.x/flow_>=v0.25.0
declare module 'mkdirp' {
declare type Options = number | { mode?: number; fs?: mixed };
declare type Callback = (err: ?Error, path: ?string) => void;
declare module.exports: {
(path: string, options?: Options | Callback, callback?: Callback): void;
sync(path: string, options?: Options): void;
};
}

View File

@ -1,109 +0,0 @@
// flow-typed signature: 0c37b93b28df38b46c7edb9bc9d278ad
// flow-typed version: <<STUB>>/node-mocks-http_v1.6.7/flow_v0.64.0
/**
* This is an autogenerated libdef stub for:
*
* 'node-mocks-http'
*
* 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 'node-mocks-http' {
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 'node-mocks-http/lib/express/mock-application' {
declare module.exports: any;
}
declare module 'node-mocks-http/lib/express/mock-express' {
declare module.exports: any;
}
declare module 'node-mocks-http/lib/express/mock-request' {
declare module.exports: any;
}
declare module 'node-mocks-http/lib/express/utils/define-getter' {
declare module.exports: any;
}
declare module 'node-mocks-http/lib/http-mock' {
declare module.exports: any;
}
declare module 'node-mocks-http/lib/mockEventEmitter' {
declare module.exports: any;
}
declare module 'node-mocks-http/lib/mockRequest' {
declare module.exports: any;
}
declare module 'node-mocks-http/lib/mockResponse' {
declare module.exports: any;
}
declare module 'node-mocks-http/lib/mockWritableStream' {
declare module.exports: any;
}
declare module 'node-mocks-http/lib/node/_http_incoming' {
declare module.exports: any;
}
declare module 'node-mocks-http/lib/node/_http_server' {
declare module.exports: any;
}
declare module 'node-mocks-http/lib/node/http' {
declare module.exports: any;
}
// Filename aliases
declare module 'node-mocks-http/lib/express/mock-application.js' {
declare module.exports: $Exports<'node-mocks-http/lib/express/mock-application'>;
}
declare module 'node-mocks-http/lib/express/mock-express.js' {
declare module.exports: $Exports<'node-mocks-http/lib/express/mock-express'>;
}
declare module 'node-mocks-http/lib/express/mock-request.js' {
declare module.exports: $Exports<'node-mocks-http/lib/express/mock-request'>;
}
declare module 'node-mocks-http/lib/express/utils/define-getter.js' {
declare module.exports: $Exports<'node-mocks-http/lib/express/utils/define-getter'>;
}
declare module 'node-mocks-http/lib/http-mock.js' {
declare module.exports: $Exports<'node-mocks-http/lib/http-mock'>;
}
declare module 'node-mocks-http/lib/mockEventEmitter.js' {
declare module.exports: $Exports<'node-mocks-http/lib/mockEventEmitter'>;
}
declare module 'node-mocks-http/lib/mockRequest.js' {
declare module.exports: $Exports<'node-mocks-http/lib/mockRequest'>;
}
declare module 'node-mocks-http/lib/mockResponse.js' {
declare module.exports: $Exports<'node-mocks-http/lib/mockResponse'>;
}
declare module 'node-mocks-http/lib/mockWritableStream.js' {
declare module.exports: $Exports<'node-mocks-http/lib/mockWritableStream'>;
}
declare module 'node-mocks-http/lib/node/_http_incoming.js' {
declare module.exports: $Exports<'node-mocks-http/lib/node/_http_incoming'>;
}
declare module 'node-mocks-http/lib/node/_http_server.js' {
declare module.exports: $Exports<'node-mocks-http/lib/node/_http_server'>;
}
declare module 'node-mocks-http/lib/node/http.js' {
declare module.exports: $Exports<'node-mocks-http/lib/node/http'>;
}

View File

@ -1,9 +0,0 @@
// flow-typed signature: b0a8c8851219a1c2a933509d842e0bc8
// flow-typed version: 4a2d036a51/normalize.css_v7.x.x/flow_>=v0.34.x
// normalize.css may be imported for side-effects,
// e.g. to force webpack to bundle it alongside CSS modules
declare module "normalize.css" {
declare export default empty
}

View File

@ -1,81 +0,0 @@
// flow-typed signature: 5ea2cb6aa83979de9573ab3e3723be3f
// flow-typed version: <<STUB>>/pkginfo_v0.4.1/flow_v0.67.1
/**
* This is an autogenerated libdef stub for:
*
* 'pkginfo'
*
* 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 'pkginfo' {
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 'pkginfo/examples/all-properties' {
declare module.exports: any;
}
declare module 'pkginfo/examples/array-argument' {
declare module.exports: any;
}
declare module 'pkginfo/examples/multiple-properties' {
declare module.exports: any;
}
declare module 'pkginfo/examples/object-argument' {
declare module.exports: any;
}
declare module 'pkginfo/examples/single-property' {
declare module.exports: any;
}
declare module 'pkginfo/examples/target-dir' {
declare module.exports: any;
}
declare module 'pkginfo/lib/pkginfo' {
declare module.exports: any;
}
declare module 'pkginfo/test/pkginfo-test' {
declare module.exports: any;
}
// Filename aliases
declare module 'pkginfo/examples/all-properties.js' {
declare module.exports: $Exports<'pkginfo/examples/all-properties'>;
}
declare module 'pkginfo/examples/array-argument.js' {
declare module.exports: $Exports<'pkginfo/examples/array-argument'>;
}
declare module 'pkginfo/examples/multiple-properties.js' {
declare module.exports: $Exports<'pkginfo/examples/multiple-properties'>;
}
declare module 'pkginfo/examples/object-argument.js' {
declare module.exports: $Exports<'pkginfo/examples/object-argument'>;
}
declare module 'pkginfo/examples/single-property.js' {
declare module.exports: $Exports<'pkginfo/examples/single-property'>;
}
declare module 'pkginfo/examples/target-dir.js' {
declare module.exports: $Exports<'pkginfo/examples/target-dir'>;
}
declare module 'pkginfo/lib/pkginfo.js' {
declare module.exports: $Exports<'pkginfo/lib/pkginfo'>;
}
declare module 'pkginfo/test/pkginfo-test.js' {
declare module.exports: $Exports<'pkginfo/test/pkginfo-test'>;
}

View File

@ -1,690 +0,0 @@
// flow-typed signature: 269daa88cf96222ec337ad11f33aeff0
// flow-typed version: <<STUB>>/polished_v2.3.0/flow_v0.81.0
/**
* This is an autogenerated libdef stub for:
*
* 'polished'
*
* 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 'polished' {
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 'polished/babel.config' {
declare module.exports: any;
}
declare module 'polished/dist/polished.es' {
declare module.exports: any;
}
declare module 'polished/dist/polished' {
declare module.exports: any;
}
declare module 'polished/dist/polished.min' {
declare module.exports: any;
}
declare module 'polished/docs/assets/anchor' {
declare module.exports: any;
}
declare module 'polished/docs/assets/docs' {
declare module.exports: any;
}
declare module 'polished/docs/assets/highlight.pack' {
declare module.exports: any;
}
declare module 'polished/docs/assets/polished' {
declare module.exports: any;
}
declare module 'polished/docs/assets/script' {
declare module.exports: any;
}
declare module 'polished/lib/color/adjustHue' {
declare module.exports: any;
}
declare module 'polished/lib/color/complement' {
declare module.exports: any;
}
declare module 'polished/lib/color/darken' {
declare module.exports: any;
}
declare module 'polished/lib/color/desaturate' {
declare module.exports: any;
}
declare module 'polished/lib/color/getLuminance' {
declare module.exports: any;
}
declare module 'polished/lib/color/grayscale' {
declare module.exports: any;
}
declare module 'polished/lib/color/hsl' {
declare module.exports: any;
}
declare module 'polished/lib/color/hsla' {
declare module.exports: any;
}
declare module 'polished/lib/color/invert' {
declare module.exports: any;
}
declare module 'polished/lib/color/lighten' {
declare module.exports: any;
}
declare module 'polished/lib/color/mix' {
declare module.exports: any;
}
declare module 'polished/lib/color/opacify' {
declare module.exports: any;
}
declare module 'polished/lib/color/parseToHsl' {
declare module.exports: any;
}
declare module 'polished/lib/color/parseToRgb' {
declare module.exports: any;
}
declare module 'polished/lib/color/readableColor' {
declare module.exports: any;
}
declare module 'polished/lib/color/rgb' {
declare module.exports: any;
}
declare module 'polished/lib/color/rgba' {
declare module.exports: any;
}
declare module 'polished/lib/color/saturate' {
declare module.exports: any;
}
declare module 'polished/lib/color/setHue' {
declare module.exports: any;
}
declare module 'polished/lib/color/setLightness' {
declare module.exports: any;
}
declare module 'polished/lib/color/setSaturation' {
declare module.exports: any;
}
declare module 'polished/lib/color/shade' {
declare module.exports: any;
}
declare module 'polished/lib/color/tint' {
declare module.exports: any;
}
declare module 'polished/lib/color/toColorString' {
declare module.exports: any;
}
declare module 'polished/lib/color/transparentize' {
declare module.exports: any;
}
declare module 'polished/lib/helpers/directionalProperty' {
declare module.exports: any;
}
declare module 'polished/lib/helpers/em' {
declare module.exports: any;
}
declare module 'polished/lib/helpers/getValueAndUnit' {
declare module.exports: any;
}
declare module 'polished/lib/helpers/modularScale' {
declare module.exports: any;
}
declare module 'polished/lib/helpers/rem' {
declare module.exports: any;
}
declare module 'polished/lib/helpers/stripUnit' {
declare module.exports: any;
}
declare module 'polished/lib/index' {
declare module.exports: any;
}
declare module 'polished/lib/internalHelpers/_capitalizeString' {
declare module.exports: any;
}
declare module 'polished/lib/internalHelpers/_curry' {
declare module.exports: any;
}
declare module 'polished/lib/internalHelpers/_endsWith' {
declare module.exports: any;
}
declare module 'polished/lib/internalHelpers/_guard' {
declare module.exports: any;
}
declare module 'polished/lib/internalHelpers/_hslToHex' {
declare module.exports: any;
}
declare module 'polished/lib/internalHelpers/_hslToRgb' {
declare module.exports: any;
}
declare module 'polished/lib/internalHelpers/_nameToHex' {
declare module.exports: any;
}
declare module 'polished/lib/internalHelpers/_numberToHex' {
declare module.exports: any;
}
declare module 'polished/lib/internalHelpers/_pxto' {
declare module.exports: any;
}
declare module 'polished/lib/internalHelpers/_reduceHexValue' {
declare module.exports: any;
}
declare module 'polished/lib/internalHelpers/_rgbToHsl' {
declare module.exports: any;
}
declare module 'polished/lib/internalHelpers/_statefulSelectors' {
declare module.exports: any;
}
declare module 'polished/lib/mixins/between' {
declare module.exports: any;
}
declare module 'polished/lib/mixins/clearFix' {
declare module.exports: any;
}
declare module 'polished/lib/mixins/cover' {
declare module.exports: any;
}
declare module 'polished/lib/mixins/ellipsis' {
declare module.exports: any;
}
declare module 'polished/lib/mixins/fluidRange' {
declare module.exports: any;
}
declare module 'polished/lib/mixins/fontFace' {
declare module.exports: any;
}
declare module 'polished/lib/mixins/hideText' {
declare module.exports: any;
}
declare module 'polished/lib/mixins/hideVisually' {
declare module.exports: any;
}
declare module 'polished/lib/mixins/hiDPI' {
declare module.exports: any;
}
declare module 'polished/lib/mixins/normalize' {
declare module.exports: any;
}
declare module 'polished/lib/mixins/placeholder' {
declare module.exports: any;
}
declare module 'polished/lib/mixins/radialGradient' {
declare module.exports: any;
}
declare module 'polished/lib/mixins/retinaImage' {
declare module.exports: any;
}
declare module 'polished/lib/mixins/selection' {
declare module.exports: any;
}
declare module 'polished/lib/mixins/timingFunctions' {
declare module.exports: any;
}
declare module 'polished/lib/mixins/triangle' {
declare module.exports: any;
}
declare module 'polished/lib/mixins/wordWrap' {
declare module.exports: any;
}
declare module 'polished/lib/shorthands/animation' {
declare module.exports: any;
}
declare module 'polished/lib/shorthands/backgroundImages' {
declare module.exports: any;
}
declare module 'polished/lib/shorthands/backgrounds' {
declare module.exports: any;
}
declare module 'polished/lib/shorthands/border' {
declare module.exports: any;
}
declare module 'polished/lib/shorthands/borderColor' {
declare module.exports: any;
}
declare module 'polished/lib/shorthands/borderRadius' {
declare module.exports: any;
}
declare module 'polished/lib/shorthands/borderStyle' {
declare module.exports: any;
}
declare module 'polished/lib/shorthands/borderWidth' {
declare module.exports: any;
}
declare module 'polished/lib/shorthands/buttons' {
declare module.exports: any;
}
declare module 'polished/lib/shorthands/margin' {
declare module.exports: any;
}
declare module 'polished/lib/shorthands/padding' {
declare module.exports: any;
}
declare module 'polished/lib/shorthands/position' {
declare module.exports: any;
}
declare module 'polished/lib/shorthands/size' {
declare module.exports: any;
}
declare module 'polished/lib/shorthands/textInputs' {
declare module.exports: any;
}
declare module 'polished/lib/shorthands/transitions' {
declare module.exports: any;
}
declare module 'polished/lib/types/color' {
declare module.exports: any;
}
declare module 'polished/lib/types/fluidRangeConfiguration' {
declare module.exports: any;
}
declare module 'polished/lib/types/fontFaceConfiguration' {
declare module.exports: any;
}
declare module 'polished/lib/types/interactionState' {
declare module.exports: any;
}
declare module 'polished/lib/types/modularScaleRatio' {
declare module.exports: any;
}
declare module 'polished/lib/types/radialGradientConfiguration' {
declare module.exports: any;
}
declare module 'polished/lib/types/sideKeyword' {
declare module.exports: any;
}
declare module 'polished/lib/types/style' {
declare module.exports: any;
}
declare module 'polished/lib/types/timingFunction' {
declare module.exports: any;
}
declare module 'polished/lib/types/triangleConfiguration' {
declare module.exports: any;
}
// Filename aliases
declare module 'polished/babel.config.js' {
declare module.exports: $Exports<'polished/babel.config'>;
}
declare module 'polished/dist/polished.es.js' {
declare module.exports: $Exports<'polished/dist/polished.es'>;
}
declare module 'polished/dist/polished.js' {
declare module.exports: $Exports<'polished/dist/polished'>;
}
declare module 'polished/dist/polished.min.js' {
declare module.exports: $Exports<'polished/dist/polished.min'>;
}
declare module 'polished/docs/assets/anchor.js' {
declare module.exports: $Exports<'polished/docs/assets/anchor'>;
}
declare module 'polished/docs/assets/docs.js' {
declare module.exports: $Exports<'polished/docs/assets/docs'>;
}
declare module 'polished/docs/assets/highlight.pack.js' {
declare module.exports: $Exports<'polished/docs/assets/highlight.pack'>;
}
declare module 'polished/docs/assets/polished.js' {
declare module.exports: $Exports<'polished/docs/assets/polished'>;
}
declare module 'polished/docs/assets/script.js' {
declare module.exports: $Exports<'polished/docs/assets/script'>;
}
declare module 'polished/lib/color/adjustHue.js' {
declare module.exports: $Exports<'polished/lib/color/adjustHue'>;
}
declare module 'polished/lib/color/complement.js' {
declare module.exports: $Exports<'polished/lib/color/complement'>;
}
declare module 'polished/lib/color/darken.js' {
declare module.exports: $Exports<'polished/lib/color/darken'>;
}
declare module 'polished/lib/color/desaturate.js' {
declare module.exports: $Exports<'polished/lib/color/desaturate'>;
}
declare module 'polished/lib/color/getLuminance.js' {
declare module.exports: $Exports<'polished/lib/color/getLuminance'>;
}
declare module 'polished/lib/color/grayscale.js' {
declare module.exports: $Exports<'polished/lib/color/grayscale'>;
}
declare module 'polished/lib/color/hsl.js' {
declare module.exports: $Exports<'polished/lib/color/hsl'>;
}
declare module 'polished/lib/color/hsla.js' {
declare module.exports: $Exports<'polished/lib/color/hsla'>;
}
declare module 'polished/lib/color/invert.js' {
declare module.exports: $Exports<'polished/lib/color/invert'>;
}
declare module 'polished/lib/color/lighten.js' {
declare module.exports: $Exports<'polished/lib/color/lighten'>;
}
declare module 'polished/lib/color/mix.js' {
declare module.exports: $Exports<'polished/lib/color/mix'>;
}
declare module 'polished/lib/color/opacify.js' {
declare module.exports: $Exports<'polished/lib/color/opacify'>;
}
declare module 'polished/lib/color/parseToHsl.js' {
declare module.exports: $Exports<'polished/lib/color/parseToHsl'>;
}
declare module 'polished/lib/color/parseToRgb.js' {
declare module.exports: $Exports<'polished/lib/color/parseToRgb'>;
}
declare module 'polished/lib/color/readableColor.js' {
declare module.exports: $Exports<'polished/lib/color/readableColor'>;
}
declare module 'polished/lib/color/rgb.js' {
declare module.exports: $Exports<'polished/lib/color/rgb'>;
}
declare module 'polished/lib/color/rgba.js' {
declare module.exports: $Exports<'polished/lib/color/rgba'>;
}
declare module 'polished/lib/color/saturate.js' {
declare module.exports: $Exports<'polished/lib/color/saturate'>;
}
declare module 'polished/lib/color/setHue.js' {
declare module.exports: $Exports<'polished/lib/color/setHue'>;
}
declare module 'polished/lib/color/setLightness.js' {
declare module.exports: $Exports<'polished/lib/color/setLightness'>;
}
declare module 'polished/lib/color/setSaturation.js' {
declare module.exports: $Exports<'polished/lib/color/setSaturation'>;
}
declare module 'polished/lib/color/shade.js' {
declare module.exports: $Exports<'polished/lib/color/shade'>;
}
declare module 'polished/lib/color/tint.js' {
declare module.exports: $Exports<'polished/lib/color/tint'>;
}
declare module 'polished/lib/color/toColorString.js' {
declare module.exports: $Exports<'polished/lib/color/toColorString'>;
}
declare module 'polished/lib/color/transparentize.js' {
declare module.exports: $Exports<'polished/lib/color/transparentize'>;
}
declare module 'polished/lib/helpers/directionalProperty.js' {
declare module.exports: $Exports<'polished/lib/helpers/directionalProperty'>;
}
declare module 'polished/lib/helpers/em.js' {
declare module.exports: $Exports<'polished/lib/helpers/em'>;
}
declare module 'polished/lib/helpers/getValueAndUnit.js' {
declare module.exports: $Exports<'polished/lib/helpers/getValueAndUnit'>;
}
declare module 'polished/lib/helpers/modularScale.js' {
declare module.exports: $Exports<'polished/lib/helpers/modularScale'>;
}
declare module 'polished/lib/helpers/rem.js' {
declare module.exports: $Exports<'polished/lib/helpers/rem'>;
}
declare module 'polished/lib/helpers/stripUnit.js' {
declare module.exports: $Exports<'polished/lib/helpers/stripUnit'>;
}
declare module 'polished/lib/index.js' {
declare module.exports: $Exports<'polished/lib/index'>;
}
declare module 'polished/lib/internalHelpers/_capitalizeString.js' {
declare module.exports: $Exports<'polished/lib/internalHelpers/_capitalizeString'>;
}
declare module 'polished/lib/internalHelpers/_curry.js' {
declare module.exports: $Exports<'polished/lib/internalHelpers/_curry'>;
}
declare module 'polished/lib/internalHelpers/_endsWith.js' {
declare module.exports: $Exports<'polished/lib/internalHelpers/_endsWith'>;
}
declare module 'polished/lib/internalHelpers/_guard.js' {
declare module.exports: $Exports<'polished/lib/internalHelpers/_guard'>;
}
declare module 'polished/lib/internalHelpers/_hslToHex.js' {
declare module.exports: $Exports<'polished/lib/internalHelpers/_hslToHex'>;
}
declare module 'polished/lib/internalHelpers/_hslToRgb.js' {
declare module.exports: $Exports<'polished/lib/internalHelpers/_hslToRgb'>;
}
declare module 'polished/lib/internalHelpers/_nameToHex.js' {
declare module.exports: $Exports<'polished/lib/internalHelpers/_nameToHex'>;
}
declare module 'polished/lib/internalHelpers/_numberToHex.js' {
declare module.exports: $Exports<'polished/lib/internalHelpers/_numberToHex'>;
}
declare module 'polished/lib/internalHelpers/_pxto.js' {
declare module.exports: $Exports<'polished/lib/internalHelpers/_pxto'>;
}
declare module 'polished/lib/internalHelpers/_reduceHexValue.js' {
declare module.exports: $Exports<'polished/lib/internalHelpers/_reduceHexValue'>;
}
declare module 'polished/lib/internalHelpers/_rgbToHsl.js' {
declare module.exports: $Exports<'polished/lib/internalHelpers/_rgbToHsl'>;
}
declare module 'polished/lib/internalHelpers/_statefulSelectors.js' {
declare module.exports: $Exports<'polished/lib/internalHelpers/_statefulSelectors'>;
}
declare module 'polished/lib/mixins/between.js' {
declare module.exports: $Exports<'polished/lib/mixins/between'>;
}
declare module 'polished/lib/mixins/clearFix.js' {
declare module.exports: $Exports<'polished/lib/mixins/clearFix'>;
}
declare module 'polished/lib/mixins/cover.js' {
declare module.exports: $Exports<'polished/lib/mixins/cover'>;
}
declare module 'polished/lib/mixins/ellipsis.js' {
declare module.exports: $Exports<'polished/lib/mixins/ellipsis'>;
}
declare module 'polished/lib/mixins/fluidRange.js' {
declare module.exports: $Exports<'polished/lib/mixins/fluidRange'>;
}
declare module 'polished/lib/mixins/fontFace.js' {
declare module.exports: $Exports<'polished/lib/mixins/fontFace'>;
}
declare module 'polished/lib/mixins/hideText.js' {
declare module.exports: $Exports<'polished/lib/mixins/hideText'>;
}
declare module 'polished/lib/mixins/hideVisually.js' {
declare module.exports: $Exports<'polished/lib/mixins/hideVisually'>;
}
declare module 'polished/lib/mixins/hiDPI.js' {
declare module.exports: $Exports<'polished/lib/mixins/hiDPI'>;
}
declare module 'polished/lib/mixins/normalize.js' {
declare module.exports: $Exports<'polished/lib/mixins/normalize'>;
}
declare module 'polished/lib/mixins/placeholder.js' {
declare module.exports: $Exports<'polished/lib/mixins/placeholder'>;
}
declare module 'polished/lib/mixins/radialGradient.js' {
declare module.exports: $Exports<'polished/lib/mixins/radialGradient'>;
}
declare module 'polished/lib/mixins/retinaImage.js' {
declare module.exports: $Exports<'polished/lib/mixins/retinaImage'>;
}
declare module 'polished/lib/mixins/selection.js' {
declare module.exports: $Exports<'polished/lib/mixins/selection'>;
}
declare module 'polished/lib/mixins/timingFunctions.js' {
declare module.exports: $Exports<'polished/lib/mixins/timingFunctions'>;
}
declare module 'polished/lib/mixins/triangle.js' {
declare module.exports: $Exports<'polished/lib/mixins/triangle'>;
}
declare module 'polished/lib/mixins/wordWrap.js' {
declare module.exports: $Exports<'polished/lib/mixins/wordWrap'>;
}
declare module 'polished/lib/shorthands/animation.js' {
declare module.exports: $Exports<'polished/lib/shorthands/animation'>;
}
declare module 'polished/lib/shorthands/backgroundImages.js' {
declare module.exports: $Exports<'polished/lib/shorthands/backgroundImages'>;
}
declare module 'polished/lib/shorthands/backgrounds.js' {
declare module.exports: $Exports<'polished/lib/shorthands/backgrounds'>;
}
declare module 'polished/lib/shorthands/border.js' {
declare module.exports: $Exports<'polished/lib/shorthands/border'>;
}
declare module 'polished/lib/shorthands/borderColor.js' {
declare module.exports: $Exports<'polished/lib/shorthands/borderColor'>;
}
declare module 'polished/lib/shorthands/borderRadius.js' {
declare module.exports: $Exports<'polished/lib/shorthands/borderRadius'>;
}
declare module 'polished/lib/shorthands/borderStyle.js' {
declare module.exports: $Exports<'polished/lib/shorthands/borderStyle'>;
}
declare module 'polished/lib/shorthands/borderWidth.js' {
declare module.exports: $Exports<'polished/lib/shorthands/borderWidth'>;
}
declare module 'polished/lib/shorthands/buttons.js' {
declare module.exports: $Exports<'polished/lib/shorthands/buttons'>;
}
declare module 'polished/lib/shorthands/margin.js' {
declare module.exports: $Exports<'polished/lib/shorthands/margin'>;
}
declare module 'polished/lib/shorthands/padding.js' {
declare module.exports: $Exports<'polished/lib/shorthands/padding'>;
}
declare module 'polished/lib/shorthands/position.js' {
declare module.exports: $Exports<'polished/lib/shorthands/position'>;
}
declare module 'polished/lib/shorthands/size.js' {
declare module.exports: $Exports<'polished/lib/shorthands/size'>;
}
declare module 'polished/lib/shorthands/textInputs.js' {
declare module.exports: $Exports<'polished/lib/shorthands/textInputs'>;
}
declare module 'polished/lib/shorthands/transitions.js' {
declare module.exports: $Exports<'polished/lib/shorthands/transitions'>;
}
declare module 'polished/lib/types/color.js' {
declare module.exports: $Exports<'polished/lib/types/color'>;
}
declare module 'polished/lib/types/fluidRangeConfiguration.js' {
declare module.exports: $Exports<'polished/lib/types/fluidRangeConfiguration'>;
}
declare module 'polished/lib/types/fontFaceConfiguration.js' {
declare module.exports: $Exports<'polished/lib/types/fontFaceConfiguration'>;
}
declare module 'polished/lib/types/interactionState.js' {
declare module.exports: $Exports<'polished/lib/types/interactionState'>;
}
declare module 'polished/lib/types/modularScaleRatio.js' {
declare module.exports: $Exports<'polished/lib/types/modularScaleRatio'>;
}
declare module 'polished/lib/types/radialGradientConfiguration.js' {
declare module.exports: $Exports<'polished/lib/types/radialGradientConfiguration'>;
}
declare module 'polished/lib/types/sideKeyword.js' {
declare module.exports: $Exports<'polished/lib/types/sideKeyword'>;
}
declare module 'polished/lib/types/style.js' {
declare module.exports: $Exports<'polished/lib/types/style'>;
}
declare module 'polished/lib/types/timingFunction.js' {
declare module.exports: $Exports<'polished/lib/types/timingFunction'>;
}
declare module 'polished/lib/types/triangleConfiguration.js' {
declare module.exports: $Exports<'polished/lib/types/triangleConfiguration'>;
}

View File

@ -1,34 +0,0 @@
// flow-typed signature: 3eaa1f24c7397b78a7481992d2cddcb2
// flow-typed version: a1a20d4928/prop-types_v15.x.x/flow_>=v0.41.x
type $npm$propTypes$ReactPropsCheckType = (
props: any,
propName: string,
componentName: string,
href?: string) => ?Error;
declare module 'prop-types' {
declare var array: React$PropType$Primitive<Array<any>>;
declare var bool: React$PropType$Primitive<boolean>;
declare var func: React$PropType$Primitive<Function>;
declare var number: React$PropType$Primitive<number>;
declare var object: React$PropType$Primitive<Object>;
declare var string: React$PropType$Primitive<string>;
declare var any: React$PropType$Primitive<any>;
declare var arrayOf: React$PropType$ArrayOf;
declare var element: React$PropType$Primitive<any>; /* TODO */
declare var instanceOf: React$PropType$InstanceOf;
declare var node: React$PropType$Primitive<any>; /* TODO */
declare var objectOf: React$PropType$ObjectOf;
declare var oneOf: React$PropType$OneOf;
declare var oneOfType: React$PropType$OneOfType;
declare var shape: React$PropType$Shape;
declare function checkPropTypes<V>(
propTypes: $Subtype<{[_: $Keys<V>]: $npm$propTypes$ReactPropsCheckType}>,
values: V,
location: string,
componentName: string,
getStack: ?(() => ?string)
) : void;
}

View File

@ -1,60 +0,0 @@
// flow-typed signature: 844045a071365b8f4e9d7d1aac302959
// flow-typed version: <<STUB>>/react-autosuggest_v9.4.2/flow_v0.81.0
/**
* This is an autogenerated libdef stub for:
*
* 'react-autosuggest'
*
* 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 'react-autosuggest' {
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 'react-autosuggest/dist/Autosuggest' {
declare module.exports: any;
}
declare module 'react-autosuggest/dist/index' {
declare module.exports: any;
}
declare module 'react-autosuggest/dist/standalone/autosuggest' {
declare module.exports: any;
}
declare module 'react-autosuggest/dist/standalone/autosuggest.min' {
declare module.exports: any;
}
declare module 'react-autosuggest/dist/theme' {
declare module.exports: any;
}
// Filename aliases
declare module 'react-autosuggest/dist/Autosuggest.js' {
declare module.exports: $Exports<'react-autosuggest/dist/Autosuggest'>;
}
declare module 'react-autosuggest/dist/index.js' {
declare module.exports: $Exports<'react-autosuggest/dist/index'>;
}
declare module 'react-autosuggest/dist/standalone/autosuggest.js' {
declare module.exports: $Exports<'react-autosuggest/dist/standalone/autosuggest'>;
}
declare module 'react-autosuggest/dist/standalone/autosuggest.min.js' {
declare module.exports: $Exports<'react-autosuggest/dist/standalone/autosuggest.min'>;
}
declare module 'react-autosuggest/dist/theme.js' {
declare module.exports: $Exports<'react-autosuggest/dist/theme'>;
}

View File

@ -1,60 +0,0 @@
// flow-typed signature: 70c6c9c1a5de74b9254304a0f8d6f61e
// flow-typed version: <<STUB>>/react-emotion_v9.x.x/flow_v0.77.0
/**
* This is an autogenerated libdef stub for:
*
* 'react-emotion'
*
* 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 'react-emotion' {
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 'react-emotion/dist/emotion.umd.min' {
declare module.exports: any;
}
declare module 'react-emotion/dist/index.cjs' {
declare module.exports: any;
}
declare module 'react-emotion/dist/index.esm' {
declare module.exports: any;
}
declare module 'react-emotion/macro' {
declare module.exports: any;
}
declare module 'react-emotion/src/index' {
declare module.exports: any;
}
// Filename aliases
declare module 'react-emotion/dist/emotion.umd.min.js' {
declare module.exports: $Exports<'react-emotion/dist/emotion.umd.min'>;
}
declare module 'react-emotion/dist/index.cjs.js' {
declare module.exports: $Exports<'react-emotion/dist/index.cjs'>;
}
declare module 'react-emotion/dist/index.esm.js' {
declare module.exports: $Exports<'react-emotion/dist/index.esm'>;
}
declare module 'react-emotion/macro.js' {
declare module.exports: $Exports<'react-emotion/macro'>;
}
declare module 'react-emotion/src/index.js' {
declare module.exports: $Exports<'react-emotion/src/index'>;
}

View File

@ -1,158 +0,0 @@
// flow-typed signature: 7ef7e99bfa7953a438470755d51dc345
// flow-typed version: 107feb8c45/react-router-dom_v4.x.x/flow_>=v0.53.x
declare module "react-router-dom" {
declare export class BrowserRouter extends React$Component<{
basename?: string,
forceRefresh?: boolean,
getUserConfirmation?: GetUserConfirmation,
keyLength?: number,
children?: React$Node
}> {}
declare export class HashRouter extends React$Component<{
basename?: string,
getUserConfirmation?: GetUserConfirmation,
hashType?: "slash" | "noslash" | "hashbang",
children?: React$Node
}> {}
declare export class Link extends React$Component<{
to: string | LocationShape,
replace?: boolean,
children?: React$Node
}> {}
declare export class NavLink extends React$Component<{
to: string | LocationShape,
activeClassName?: string,
className?: string,
activeStyle?: Object,
style?: Object,
isActive?: (match: Match, location: Location) => boolean,
children?: React$Node,
exact?: boolean,
strict?: boolean
}> {}
// NOTE: Below are duplicated from react-router. If updating these, please
// update the react-router and react-router-native types as well.
declare export type Location = {
pathname: string,
search: string,
hash: string,
state?: any,
key?: string
};
declare export type LocationShape = {
pathname?: string,
search?: string,
hash?: string,
state?: any
};
declare export type HistoryAction = "PUSH" | "REPLACE" | "POP";
declare export type RouterHistory = {
length: number,
location: Location,
action: HistoryAction,
listen(
callback: (location: Location, action: HistoryAction) => void
): () => void,
push(path: string | LocationShape, state?: any): void,
replace(path: string | LocationShape, state?: any): void,
go(n: number): void,
goBack(): void,
goForward(): void,
canGo?: (n: number) => boolean,
block(
callback: (location: Location, action: HistoryAction) => boolean
): void,
// createMemoryHistory
index?: number,
entries?: Array<Location>
};
declare export type Match = {
params: { [key: string]: ?string },
isExact: boolean,
path: string,
url: string
};
declare export type ContextRouter = {|
history: RouterHistory,
location: Location,
match: Match
|};
declare export type GetUserConfirmation = (
message: string,
callback: (confirmed: boolean) => void
) => void;
declare type StaticRouterContext = {
url?: string
};
declare export class StaticRouter extends React$Component<{
basename?: string,
location?: string | Location,
context: StaticRouterContext,
children?: React$Node
}> {}
declare export class MemoryRouter extends React$Component<{
initialEntries?: Array<LocationShape | string>,
initialIndex?: number,
getUserConfirmation?: GetUserConfirmation,
keyLength?: number,
children?: React$Node
}> {}
declare export class Router extends React$Component<{
history: RouterHistory,
children?: React$Node
}> {}
declare export class Prompt extends React$Component<{
message: string | ((location: Location) => string | boolean),
when?: boolean
}> {}
declare export class Redirect extends React$Component<{
to: string | LocationShape,
push?: boolean
}> {}
declare export class Route extends React$Component<{
component?: React$ComponentType<*>,
render?: (router: ContextRouter) => React$Node,
children?: React$ComponentType<ContextRouter> | React$Node,
path?: string,
exact?: boolean,
strict?: boolean
}> {}
declare export class Switch extends React$Component<{
children?: React$Node
}> {}
declare export function withRouter<P>(
Component: React$ComponentType<{| ...ContextRouter, ...P |}>
): React$ComponentType<P>;
declare type MatchPathOptions = {
path?: string,
exact?: boolean,
sensitive?: boolean,
strict?: boolean
};
declare export function matchPath(
pathname: string,
options?: MatchPathOptions | string
): null | Match;
}

View File

@ -1,199 +0,0 @@
// flow-typed signature: 4fb3dfe55b5d1711432e74df5fa80adc
// flow-typed version: <<STUB>>/react-router_v4.3.1/flow_v0.81.0
/**
* This is an autogenerated libdef stub for:
*
* 'react-router'
*
* 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 'react-router' {
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 'react-router/es/generatePath' {
declare module.exports: any;
}
declare module 'react-router/es/index' {
declare module.exports: any;
}
declare module 'react-router/es/matchPath' {
declare module.exports: any;
}
declare module 'react-router/es/MemoryRouter' {
declare module.exports: any;
}
declare module 'react-router/es/Prompt' {
declare module.exports: any;
}
declare module 'react-router/es/Redirect' {
declare module.exports: any;
}
declare module 'react-router/es/Route' {
declare module.exports: any;
}
declare module 'react-router/es/Router' {
declare module.exports: any;
}
declare module 'react-router/es/RouterContext' {
declare module.exports: any;
}
declare module 'react-router/es/StaticRouter' {
declare module.exports: any;
}
declare module 'react-router/es/Switch' {
declare module.exports: any;
}
declare module 'react-router/es/withRouter' {
declare module.exports: any;
}
declare module 'react-router/generatePath' {
declare module.exports: any;
}
declare module 'react-router/matchPath' {
declare module.exports: any;
}
declare module 'react-router/MemoryRouter' {
declare module.exports: any;
}
declare module 'react-router/Prompt' {
declare module.exports: any;
}
declare module 'react-router/Redirect' {
declare module.exports: any;
}
declare module 'react-router/Route' {
declare module.exports: any;
}
declare module 'react-router/Router' {
declare module.exports: any;
}
declare module 'react-router/StaticRouter' {
declare module.exports: any;
}
declare module 'react-router/Switch' {
declare module.exports: any;
}
declare module 'react-router/umd/react-router' {
declare module.exports: any;
}
declare module 'react-router/umd/react-router.min' {
declare module.exports: any;
}
declare module 'react-router/withRouter' {
declare module.exports: any;
}
// Filename aliases
declare module 'react-router/es/generatePath.js' {
declare module.exports: $Exports<'react-router/es/generatePath'>;
}
declare module 'react-router/es/index.js' {
declare module.exports: $Exports<'react-router/es/index'>;
}
declare module 'react-router/es/matchPath.js' {
declare module.exports: $Exports<'react-router/es/matchPath'>;
}
declare module 'react-router/es/MemoryRouter.js' {
declare module.exports: $Exports<'react-router/es/MemoryRouter'>;
}
declare module 'react-router/es/Prompt.js' {
declare module.exports: $Exports<'react-router/es/Prompt'>;
}
declare module 'react-router/es/Redirect.js' {
declare module.exports: $Exports<'react-router/es/Redirect'>;
}
declare module 'react-router/es/Route.js' {
declare module.exports: $Exports<'react-router/es/Route'>;
}
declare module 'react-router/es/Router.js' {
declare module.exports: $Exports<'react-router/es/Router'>;
}
declare module 'react-router/es/RouterContext.js' {
declare module.exports: $Exports<'react-router/es/RouterContext'>;
}
declare module 'react-router/es/StaticRouter.js' {
declare module.exports: $Exports<'react-router/es/StaticRouter'>;
}
declare module 'react-router/es/Switch.js' {
declare module.exports: $Exports<'react-router/es/Switch'>;
}
declare module 'react-router/es/withRouter.js' {
declare module.exports: $Exports<'react-router/es/withRouter'>;
}
declare module 'react-router/generatePath.js' {
declare module.exports: $Exports<'react-router/generatePath'>;
}
declare module 'react-router/index' {
declare module.exports: $Exports<'react-router'>;
}
declare module 'react-router/index.js' {
declare module.exports: $Exports<'react-router'>;
}
declare module 'react-router/matchPath.js' {
declare module.exports: $Exports<'react-router/matchPath'>;
}
declare module 'react-router/MemoryRouter.js' {
declare module.exports: $Exports<'react-router/MemoryRouter'>;
}
declare module 'react-router/Prompt.js' {
declare module.exports: $Exports<'react-router/Prompt'>;
}
declare module 'react-router/Redirect.js' {
declare module.exports: $Exports<'react-router/Redirect'>;
}
declare module 'react-router/Route.js' {
declare module.exports: $Exports<'react-router/Route'>;
}
declare module 'react-router/Router.js' {
declare module.exports: $Exports<'react-router/Router'>;
}
declare module 'react-router/StaticRouter.js' {
declare module.exports: $Exports<'react-router/StaticRouter'>;
}
declare module 'react-router/Switch.js' {
declare module.exports: $Exports<'react-router/Switch'>;
}
declare module 'react-router/umd/react-router.js' {
declare module.exports: $Exports<'react-router/umd/react-router'>;
}
declare module 'react-router/umd/react-router.min.js' {
declare module.exports: $Exports<'react-router/umd/react-router.min'>;
}
declare module 'react-router/withRouter.js' {
declare module.exports: $Exports<'react-router/withRouter'>;
}

View File

@ -1,108 +0,0 @@
// flow-typed signature: fce684fdcdf9c74363f2c0bf136dbf88
// flow-typed version: <<STUB>>/request_v2.83.0/flow_v0.64.0
/**
* This is an autogenerated libdef stub for:
*
* 'request'
*
* 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 'request' {
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 'request/lib/auth' {
declare module.exports: any;
}
declare module 'request/lib/cookies' {
declare module.exports: any;
}
declare module 'request/lib/getProxyFromURI' {
declare module.exports: any;
}
declare module 'request/lib/har' {
declare module.exports: any;
}
declare module 'request/lib/helpers' {
declare module.exports: any;
}
declare module 'request/lib/multipart' {
declare module.exports: any;
}
declare module 'request/lib/oauth' {
declare module.exports: any;
}
declare module 'request/lib/querystring' {
declare module.exports: any;
}
declare module 'request/lib/redirect' {
declare module.exports: any;
}
declare module 'request/lib/tunnel' {
declare module.exports: any;
}
declare module 'request/request' {
declare module.exports: any;
}
// Filename aliases
declare module 'request/index' {
declare module.exports: $Exports<'request'>;
}
declare module 'request/index.js' {
declare module.exports: $Exports<'request'>;
}
declare module 'request/lib/auth.js' {
declare module.exports: $Exports<'request/lib/auth'>;
}
declare module 'request/lib/cookies.js' {
declare module.exports: $Exports<'request/lib/cookies'>;
}
declare module 'request/lib/getProxyFromURI.js' {
declare module.exports: $Exports<'request/lib/getProxyFromURI'>;
}
declare module 'request/lib/har.js' {
declare module.exports: $Exports<'request/lib/har'>;
}
declare module 'request/lib/helpers.js' {
declare module.exports: $Exports<'request/lib/helpers'>;
}
declare module 'request/lib/multipart.js' {
declare module.exports: $Exports<'request/lib/multipart'>;
}
declare module 'request/lib/oauth.js' {
declare module.exports: $Exports<'request/lib/oauth'>;
}
declare module 'request/lib/querystring.js' {
declare module.exports: $Exports<'request/lib/querystring'>;
}
declare module 'request/lib/redirect.js' {
declare module.exports: $Exports<'request/lib/redirect'>;
}
declare module 'request/lib/tunnel.js' {
declare module.exports: $Exports<'request/lib/tunnel'>;
}
declare module 'request/request.js' {
declare module.exports: $Exports<'request/request'>;
}

View File

@ -1,18 +0,0 @@
// flow-typed signature: 1dff23447d5e18f5ac2b05aaec7cfb74
// flow-typed version: a453e98ea2/rimraf_v2.x.x/flow_>=v0.25.0
declare module 'rimraf' {
declare type Options = {
maxBusyTries?: number,
emfileWait?: number,
glob?: boolean,
disableGlob?: boolean
};
declare type Callback = (err: ?Error, path: ?string) => void;
declare module.exports: {
(f: string, opts?: Options | Callback, callback?: Callback): void;
sync(path: string, opts?: Options): void;
};
}

View File

@ -1,198 +0,0 @@
// flow-typed signature: dc381ee55406f66b7272c6343db0834b
// flow-typed version: da30fe6876/semver_v5.1.x/flow_>=v0.25.x
declare module "semver" {
declare type Release =
| "major"
| "premajor"
| "minor"
| "preminor"
| "patch"
| "prepatch"
| "prerelease";
// The supported comparators are taken from the source here:
// https://github.com/npm/node-semver/blob/8bd070b550db2646362c9883c8d008d32f66a234/semver.js#L623
declare type Operator =
| "==="
| "!=="
| "=="
| "="
| "" // Not sure why you would want this, but whatever.
| "!="
| ">"
| ">="
| "<"
| "<=";
declare class SemVer {
build: Array<string>;
loose: ?boolean;
major: number;
minor: number;
patch: number;
prerelease: Array<string | number>;
raw: string;
version: string;
constructor(version: string | SemVer, loose?: boolean): SemVer;
compare(other: string | SemVer): -1 | 0 | 1;
compareMain(other: string | SemVer): -1 | 0 | 1;
comparePre(other: string | SemVer): -1 | 0 | 1;
format(): string;
inc(release: Release, identifier: string): this;
}
declare class Comparator {
loose?: boolean;
operator: Operator;
semver: SemVer;
value: string;
constructor(comp: string | Comparator, loose?: boolean): Comparator;
parse(comp: string): void;
test(version: string): boolean;
}
declare class Range {
loose: ?boolean;
raw: string;
set: Array<Array<Comparator>>;
constructor(range: string | Range, loose?: boolean): Range;
format(): string;
parseRange(range: string): Array<Comparator>;
test(version: string): boolean;
toString(): string;
}
declare var SEMVER_SPEC_VERSION: string;
declare var re: Array<RegExp>;
declare var src: Array<string>;
// Functions
declare function valid(v: string | SemVer, loose?: boolean): string | null;
declare function clean(v: string | SemVer, loose?: boolean): string | null;
declare function inc(
v: string | SemVer,
release: Release,
loose?: boolean,
identifier?: string
): string | null;
declare function inc(
v: string | SemVer,
release: Release,
identifier: string
): string | null;
declare function major(v: string | SemVer, loose?: boolean): number;
declare function minor(v: string | SemVer, loose?: boolean): number;
declare function patch(v: string | SemVer, loose?: boolean): number;
// Comparison
declare function gt(
v1: string | SemVer,
v2: string | SemVer,
loose?: boolean
): boolean;
declare function gte(
v1: string | SemVer,
v2: string | SemVer,
loose?: boolean
): boolean;
declare function lt(
v1: string | SemVer,
v2: string | SemVer,
loose?: boolean
): boolean;
declare function lte(
v1: string | SemVer,
v2: string | SemVer,
loose?: boolean
): boolean;
declare function eq(
v1: string | SemVer,
v2: string | SemVer,
loose?: boolean
): boolean;
declare function neq(
v1: string | SemVer,
v2: string | SemVer,
loose?: boolean
): boolean;
declare function cmp(
v1: string | SemVer,
comparator: Operator,
v2: string | SemVer,
loose?: boolean
): boolean;
declare function compare(
v1: string | SemVer,
v2: string | SemVer,
loose?: boolean
): -1 | 0 | 1;
declare function rcompare(
v1: string | SemVer,
v2: string | SemVer,
loose?: boolean
): -1 | 0 | 1;
declare function compareLoose(
v1: string | SemVer,
v2: string | SemVer
): -1 | 0 | 1;
declare function diff(v1: string | SemVer, v2: string | SemVer): ?Release;
declare function sort(
list: Array<string | SemVer>,
loose?: boolean
): Array<string | SemVer>;
declare function rsort(
list: Array<string | SemVer>,
loose?: boolean
): Array<string | SemVer>;
declare function compareIdentifiers(
v1: string | SemVer,
v2: string | SemVer
): -1 | 0 | 1;
declare function rcompareIdentifiers(
v1: string | SemVer,
v2: string | SemVer
): -1 | 0 | 1;
// Ranges
declare function validRange(
range: string | Range,
loose?: boolean
): string | null;
declare function satisfies(
version: string | SemVer,
range: string | Range,
loose?: boolean
): boolean;
declare function maxSatisfying(
versions: Array<string | SemVer>,
range: string | Range,
loose?: boolean
): string | SemVer | null;
declare function gtr(
version: string | SemVer,
range: string | Range,
loose?: boolean
): boolean;
declare function ltr(
version: string | SemVer,
range: string | Range,
loose?: boolean
): boolean;
declare function outside(
version: string | SemVer,
range: string | Range,
hilo: ">" | "<",
loose?: boolean
): boolean;
// Not explicitly documented, or deprecated
declare function parse(version: string, loose?: boolean): ?SemVer;
declare function toComparators(
range: string | Range,
loose?: boolean
): Array<Array<string>>;
}

View File

@ -1,52 +0,0 @@
// flow-typed signature: 92c970084ff90673c82c72604aa26f27
// flow-typed version: <<STUB>>/supertest_v3.x.x/flow_v0.69.0
/**
* This is an autogenerated libdef stub for:
*
* 'supertest'
*
* 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 'supertest' {
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 'supertest/lib/agent' {
declare module.exports: any;
}
declare module 'supertest/lib/test' {
declare module.exports: any;
}
declare module 'supertest/test/supertest' {
declare module.exports: any;
}
// Filename aliases
declare module 'supertest/index' {
declare module.exports: $Exports<'supertest'>;
}
declare module 'supertest/index.js' {
declare module.exports: $Exports<'supertest'>;
}
declare module 'supertest/lib/agent.js' {
declare module.exports: $Exports<'supertest/lib/agent'>;
}
declare module 'supertest/lib/test.js' {
declare module.exports: $Exports<'supertest/lib/test'>;
}
declare module 'supertest/test/supertest.js' {
declare module.exports: $Exports<'supertest/test/supertest'>;
}

View File

@ -1,56 +1,36 @@
/* eslint comma-dangle: 0 */
module.exports = { module.exports = {
name: 'verdaccio-unit-jest', name: 'verdaccio-ui-jest',
verbose: true, verbose: true,
collectCoverage: true, collectCoverage: true,
testEnvironment: 'jest-environment-jsdom-global', testEnvironment: 'jest-environment-jsdom-global',
moduleFileExtensions: ['js', 'ts', 'tsx'],
testURL: 'http://localhost', testURL: 'http://localhost',
testRegex: '(test/unit/.*\\.spec)\\.js', rootDir: '..',
setupFiles: [ setupFiles: ['<rootDir>/test/setup.js'],
'./test/unit/setup.js' transformIgnorePatterns: ['<rootDir>/node_modules/(?!react-syntax-highlighter)'],
], modulePathIgnorePatterns: ['<rootDir>/coverage', '<rootDir>/scripts', '<rootDir>/.circleci', '<rootDir>/tools', '<rootDir>/build', '<rootDir>/.vscode/'],
// Some unit tests rely on data folders that look like packages. This confuses jest-hast-map snapshotSerializers: ['enzyme-to-json/serializer', 'jest-emotion'],
// when it tries to scan for package.json files.
modulePathIgnorePatterns: [
'<rootDir>/test/unit/partials/mock-store/.*/package.json',
'<rootDir>/test/functional/store/.*/package.json',
'<rootDir>/test/unit/partials/store/.*/package.json',
'<rootDir>/coverage',
'<rootDir>/docs',
'<rootDir>/debug',
'<rootDir>/scripts',
'<rootDir>/.circleci',
'<rootDir>/tools',
'<rootDir>/wiki',
'<rootDir>/systemd',
'<rootDir>/flow-typed',
'<rootDir>test/unit/partials/mock-store/.*/package.json',
'<rootDir>/test/functional/store/.*/package.json',
'<rootDir>/build',
'<rootDir>/.vscode/',
],
testPathIgnorePatterns: [
'__snapshots__',
'<rootDir>/build',
],
snapshotSerializers: [
'enzyme-to-json/serializer',
"jest-emotion"
],
coveragePathIgnorePatterns: [
'node_modules',
'fixtures',
'<rootDir>/src/api/debug',
'<rootDir>/test',
],
moduleNameMapper: { moduleNameMapper: {
'\\.(s?css)$': '<rootDir>/node_modules/identity-obj-proxy', '\\.(s?css)$': '<rootDir>/node_modules/identity-obj-proxy',
'github-markdown-css': '<rootDir>/node_modules/identity-obj-proxy', 'github-markdown-css': '<rootDir>/node_modules/identity-obj-proxy',
'\\.(png)$': '<rootDir>/node_modules/identity-obj-proxy', '\\.(png)$': '<rootDir>/node_modules/identity-obj-proxy',
'\\.(svg)$': '<rootDir>/test/unit/empty.js' '\\.(svg)$': '<rootDir>/test/unit/empty.ts',
}, },
transformIgnorePatterns: [
'<rootDir>/node_modules/(?!react-syntax-highlighter)'
]
}; };
// module.exports = {
// name: 'verdaccio-unit-jest',
// verbose: true,
// collectCoverage: true,
// testEnvironment: 'jest-environment-jsdom-global',
// testURL: 'http://localhost',
// testRegex: '../src/components/CopyToClipBoard/CopyToClipBoard.test.tsx',
// setupFiles: ['./setup.ts'],
// // Some unit tests rely on data folders that look like packages. This confuses jest-hast-map
// // when it tries to scan for package.json files.
// modulePathIgnorePatterns: ['<rootDir>/coverage', '<rootDir>/scripts', '<rootDir>/.circleci', '<rootDir>/tools', '<rootDir>/build', '<rootDir>/.vscode/'],
// // testPathIgnorePatterns: ['__snapshots__', '<rootDir>/build'],
// snapshotSerializers: ['enzyme-to-json/serializer', 'jest-emotion'],
// // coveragePathIgnorePatterns: ['node_modules', 'fixtures', '<rootDir>/src/api/debug', '<rootDir>/test'],
// // transformIgnorePatterns: ['<rootDir>/node_modules/(?!react-syntax-highlighter)'],
// };

21
jest/jest.config.js Normal file
View File

@ -0,0 +1,21 @@
const { defaults } = require('jest-config');
module.exports = {
name: 'verdaccio-ui-jest',
verbose: true,
collectCoverage: true,
testEnvironment: 'jest-environment-jsdom-global',
moduleFileExtensions: [...defaults.moduleFileExtensions, 'ts', 'tsx'],
testURL: 'http://localhost',
rootDir: '..',
setupFiles: ['<rootDir>/jest/setup.ts'],
transformIgnorePatterns: ['<rootDir>/node_modules/(?!react-syntax-highlighter)'],
modulePathIgnorePatterns: ['<rootDir>/coverage', '<rootDir>/scripts', '<rootDir>/.circleci', '<rootDir>/tools', '<rootDir>/build', '<rootDir>/.vscode/'],
snapshotSerializers: ['enzyme-to-json/serializer', 'jest-emotion'],
moduleNameMapper: {
'\\.(s?css)$': '<rootDir>/node_modules/identity-obj-proxy',
'github-markdown-css': '<rootDir>/node_modules/identity-obj-proxy',
'\\.(png)$': '<rootDir>/node_modules/identity-obj-proxy',
'\\.(svg)$': '<rootDir>/jest/unit/empty.ts',
},
};

25
jest/setup.ts Normal file
View File

@ -0,0 +1,25 @@
/**
* Setup configuration for Jest
* This file includes global settings for the JEST environment.
*/
import 'raf/polyfill';
import { configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
// @ts-ignore : Only a void function can be called with the 'new' keyword
configure({ adapter: new Adapter() });
// @ts-ignore : Property '__APP_VERSION__' does not exist on type 'Global'.
global.__APP_VERSION__ = '1.0.0';
// @ts-ignore : Property '__VERDACCIO_BASENAME_UI_OPTIONS' does not exist on type 'Global'.
global.__VERDACCIO_BASENAME_UI_OPTIONS = {};
// mocking few DOM methods
// @ts-ignore : Property 'document' does not exist on type 'Global'.
if (global.document) {
// @ts-ignore : Type 'Mock<{ selectNodeContents: () => void; }, []>' is not assignable to type '() => Range'.
document.createRange = jest.fn((): void => ({
selectNodeContents: (): void => {},
}));
document.execCommand = jest.fn();
}

View File

@ -0,0 +1,5 @@
{
"rules": {
"@typescript-eslint/explicit-function-return-type": 0
}
}

View File

@ -12,7 +12,6 @@ import { packageInformation } from '../store/package';
* @returns {Promise} * @returns {Promise}
*/ */
const register = (url, method = 'get', options = {}) => { const register = (url, method = 'get', options = {}) => {
if (url === 'login' && method.toLocaleLowerCase() === 'post') { if (url === 'login' && method.toLocaleLowerCase() === 'post') {
return login(options); return login(options);
} }
@ -45,4 +44,4 @@ class API {
} }
} }
export default new API; export default new API();

View File

@ -0,0 +1,26 @@
/**
* Token Utility
*/
import { Base64 } from 'js-base64';
import addHours from 'date-fns/add_hours';
export function generateTokenWithTimeRange(limit = 0) {
const payload = {
username: 'verdaccio',
exp: Number.parseInt(String(addHours(new Date(), limit).getTime() / 1000), 10),
};
return `xxxxxx.${Base64.encode(JSON.stringify(payload))}.xxxxxx`;
}
export function generateTokenWithExpirationAsString() {
const payload = { username: 'verdaccio', exp: 'I am not a number' };
return `xxxxxx.${Base64.encode(payload)}.xxxxxx`;
}
export function generateTokenWithOutExpiration() {
const payload = {
username: 'verdaccio',
};
return `xxxxxx.${Base64.encode(JSON.stringify(payload))}.xxxxxx`;
}

View File

@ -0,0 +1,23 @@
import { API_ERROR } from '../../../../lib/constants';
/**
* API mock for login endpoint
* @param {object} config configuration of api call
* @returns {promise}
*/
export default function login(config): Promise<unknown> {
return new Promise(function loginCallbackPromise(resolve, reject): void {
const body = JSON.parse(config.body);
if (body.username === 'sam' && body.password === '1234') {
resolve({
username: 'sam',
token: 'TEST_TOKEN',
});
} else {
// perhaps we should rethink this reject regarding the eslint rule
/* eslint-disable prefer-promise-reject-errors */
reject({
error: API_ERROR.BAD_USERNAME_PASSWORD,
});
}
});
}

View File

@ -13,11 +13,11 @@ export const packageInformation = [
}, },
repository: { repository: {
type: 'git', type: 'git',
url: 'https://github.com/jquery/jquery.git' url: 'https://github.com/jquery/jquery.git',
}, },
keywords: ['jquery', 'javascript', 'browser', 'library'], keywords: ['jquery', 'javascript', 'browser', 'library'],
bugs: { bugs: {
url: 'https://github.com/jquery/jquery/issues' url: 'https://github.com/jquery/jquery/issues',
}, },
license: 'MIT', license: 'MIT',
dependencies: {}, dependencies: {},
@ -60,7 +60,7 @@ export const packageInformation = [
sizzle: '2.3.3', sizzle: '2.3.3',
'strip-json-comments': '2.0.1', 'strip-json-comments': '2.0.1',
testswarm: '1.1.0', testswarm: '1.1.0',
'uglify-js': '3.4.0' 'uglify-js': '3.4.0',
}, },
scripts: { scripts: {
build: 'npm install && grunt', build: 'npm install && grunt',
@ -70,7 +70,7 @@ export const packageInformation = [
test: 'grunt && grunt test:slow && grunt karma:main', test: 'grunt && grunt test:slow && grunt karma:main',
jenkins: 'npm run test:browserless', jenkins: 'npm run test:browserless',
precommit: 'grunt lint:newer qunit_fixture', precommit: 'grunt lint:newer qunit_fixture',
commitmsg: 'node node_modules/commitplease' commitmsg: 'node node_modules/commitplease',
}, },
commitplease: { commitplease: {
nohook: true, nohook: true,
@ -97,11 +97,11 @@ export const packageInformation = [
'Selector', 'Selector',
'Serialize', 'Serialize',
'Traversing', 'Traversing',
'Wrap' 'Wrap',
], ],
markerPattern: '^((clos|fix|resolv)(e[sd]|ing))|^(refs?)', markerPattern: '^((clos|fix|resolv)(e[sd]|ing))|^(refs?)',
ticketPattern: '^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])' ticketPattern: '^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])',
} },
}, },
{ {
name: 'lodash', name: 'lodash',
@ -115,7 +115,7 @@ export const packageInformation = [
avatar: 'test avatar', avatar: 'test avatar',
}, },
engines: { engines: {
node: '>=4.0.0' node: '>=4.0.0',
}, },
sideEffects: false, sideEffects: false,
scripts: { scripts: {
@ -127,15 +127,14 @@ export const packageInformation = [
doc: 'node lib/main/build-doc github && npm run test:doc', doc: 'node lib/main/build-doc github && npm run test:doc',
'doc:fp': 'node lib/fp/build-doc', 'doc:fp': 'node lib/fp/build-doc',
'doc:site': 'node lib/main/build-doc site', 'doc:site': 'node lib/main/build-doc site',
'doc:sitehtml': 'doc:sitehtml': 'optional-dev-dependency marky-markdown@^9.0.1 && npm run doc:site && node lib/main/build-site',
'optional-dev-dependency marky-markdown@^9.0.1 && npm run doc:site && node lib/main/build-site',
pretest: 'npm run build', pretest: 'npm run build',
style: 'eslint *.js .internal/**/*.js', style: 'eslint *.js .internal/**/*.js',
test: 'npm run test:main && npm run test:fp', test: 'npm run test:main && npm run test:fp',
'test:doc': 'markdown-doctest doc/*.md', 'test:doc': 'markdown-doctest doc/*.md',
'test:fp': 'node test/test-fp', 'test:fp': 'node test/test-fp',
'test:main': 'node test/test', 'test:main': 'node test/test',
validate: 'npm run style && npm run test' validate: 'npm run style && npm run test',
}, },
devDependencies: { devDependencies: {
async: '^2.1.4', async: '^2.1.4',
@ -165,10 +164,10 @@ export const packageInformation = [
requirejs: '^2.3.2', requirejs: '^2.3.2',
'sauce-tunnel': '^2.5.0', 'sauce-tunnel': '^2.5.0',
'uglify-js': '2.7.5', 'uglify-js': '2.7.5',
webpack: '^1.14.0' webpack: '^1.14.0',
}, },
greenkeeper: { greenkeeper: {
ignore: ['lodash'] ignore: ['lodash'],
} },
} },
]; ];

View File

@ -51,12 +51,12 @@ export const packageMeta = {
'2.6.5': '2017-11-05T09:09:31.332Z', '2.6.5': '2017-11-05T09:09:31.332Z',
'2.6.6': '2017-11-08T22:47:16.504Z', '2.6.6': '2017-11-08T22:47:16.504Z',
'2.7.0': '2017-12-05T23:25:06.372Z', '2.7.0': '2017-12-05T23:25:06.372Z',
'2.7.1': '2017-12-14T15:43:27.317Z' '2.7.1': '2017-12-14T15:43:27.317Z',
}, },
_uplinks: { _uplinks: {
abc: { etag: 'ddfdxjn8m8n6gn70-8m', fetched: 1532297472000 }, abc: { etag: 'ddfdxjn8m8n6gn70-8m', fetched: 1532297472000 },
npmjs: { etag: '"5a272ad2-4f6b1"', fetched: 1513266232741 }, npmjs: { etag: '"5a272ad2-4f6b1"', fetched: 1513266232741 },
xyz: { etag: '564748hydydygs-s7ehj', fetched: 1532124672000} xyz: { etag: '564748hydydygs-s7ehj', fetched: 1532124672000 },
}, },
_rev: '16-ba1b806df0298246', _rev: '16-ba1b806df0298246',
_attachments: {}, _attachments: {},
@ -67,11 +67,11 @@ export const packageMeta = {
author: { author: {
name: 'User NPM', name: 'User NPM',
email: 'test@author.local', email: 'test@author.local',
avatar: 'https://www.gravatar.com/avatar/a5a236ba477ee98908600c40cda74f4a' avatar: 'https://www.gravatar.com/avatar/a5a236ba477ee98908600c40cda74f4a',
}, },
repository: { repository: {
type: 'git', type: 'git',
url: 'git://github.com/verdaccio/verdaccio.git' url: 'git://github.com/verdaccio/verdaccio.git',
}, },
main: 'index.js', main: 'index.js',
bin: { verdaccio: './bin/verdaccio' }, bin: { verdaccio: './bin/verdaccio' },
@ -105,7 +105,7 @@ export const packageMeta = {
pkginfo: '^0.4.0', pkginfo: '^0.4.0',
request: '^2.72.0', request: '^2.72.0',
semver: '^5.1.0', semver: '^5.1.0',
'unix-crypt-td-js': '^1.0.0' 'unix-crypt-td-js': '^1.0.0',
}, },
devDependencies: { devDependencies: {
axios: '0.16.2', axios: '0.16.2',
@ -168,18 +168,9 @@ export const packageMeta = {
'url-loader': '0.5.8', 'url-loader': '0.5.8',
webpack: '3.2.0', webpack: '3.2.0',
'webpack-dev-server': '2.5.0', 'webpack-dev-server': '2.5.0',
'webpack-merge': '4.1.0' 'webpack-merge': '4.1.0',
}, },
keywords: [ keywords: ['private', 'package', 'repository', 'registry', 'enterprise', 'modules', 'proxy', 'server'],
'private',
'package',
'repository',
'registry',
'enterprise',
'modules',
'proxy',
'server'
],
scripts: { scripts: {
release: 'standard-version -a -s', release: 'standard-version -a -s',
prepublish: 'in-publish && npm run build:webui || not-in-publish', prepublish: 'in-publish && npm run build:webui || not-in-publish',
@ -194,10 +185,9 @@ export const packageMeta = {
'lint:css': "stylelint 'src/**/*.scss' --syntax scss", 'lint:css': "stylelint 'src/**/*.scss' --syntax scss",
'pre:webpack': 'npm run lint && rimraf static/*', 'pre:webpack': 'npm run lint && rimraf static/*',
'dev:webui': 'babel-node tools/dev.server.js', 'dev:webui': 'babel-node tools/dev.server.js',
'build:webui': 'build:webui': 'npm run pre:webpack && webpack --config tools/webpack.prod.config.babel.js',
'npm run pre:webpack && webpack --config tools/webpack.prod.config.babel.js',
'build:docker': 'docker build -t verdaccio . --no-cache', 'build:docker': 'docker build -t verdaccio . --no-cache',
'build:docker:rpi': 'docker build -f Dockerfile.rpi -t verdaccio:rpi .' 'build:docker:rpi': 'docker build -f Dockerfile.rpi -t verdaccio:rpi .',
}, },
jest: { snapshotSerializers: ['jest-serializer-enzyme'] }, jest: { snapshotSerializers: ['jest-serializer-enzyme'] },
engines: { node: '>=4.6.1', npm: '>=2.15.9' }, engines: { node: '>=4.6.1', npm: '>=2.15.9' },
@ -208,447 +198,373 @@ export const packageMeta = {
{ {
name: '030', name: '030',
email: 'test1@test.local', email: 'test1@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/4ef03c2bf8d8689527903212d96fb45b',
'https://www.gravatar.com/avatar/4ef03c2bf8d8689527903212d96fb45b'
}, },
{ {
name: 'User NPM', name: 'User NPM',
email: 'test2@test.local', email: 'test2@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/a5a236ba477ee98908600c40cda74f4a',
'https://www.gravatar.com/avatar/a5a236ba477ee98908600c40cda74f4a'
}, },
{ {
name: 'User NPM', name: 'User NPM',
email: 'test3@test.comu', email: 'test3@test.comu',
avatar: avatar: 'https://www.gravatar.com/avatar/41a61049006855759bd6ec82ef0543a0',
'https://www.gravatar.com/avatar/41a61049006855759bd6ec82ef0543a0'
}, },
{ {
name: 'Alex Vernacchia', name: 'Alex Vernacchia',
email: 'tes4@test.local', email: 'tes4@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/06975001f7f2be7052bcf978700c6112',
'https://www.gravatar.com/avatar/06975001f7f2be7052bcf978700c6112'
}, },
{ {
name: 'Alexander Makarenko', name: 'Alexander Makarenko',
email: 'test5@test.local', email: 'test5@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/d9acfc4ed4e49a436738ff26a722dce4',
'https://www.gravatar.com/avatar/d9acfc4ed4e49a436738ff26a722dce4'
}, },
{ {
name: 'Alexandre-io', name: 'Alexandre-io',
email: 'test6@test.local', email: 'test6@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/2e095c7cfd278f72825d0fed6e12e3b1',
'https://www.gravatar.com/avatar/2e095c7cfd278f72825d0fed6e12e3b1'
}, },
{ {
name: 'Aram Drevekenin', name: 'Aram Drevekenin',
email: 'test7@test.local', email: 'test7@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/371edff6d79c39bb9e36bde39d41a4b0',
'https://www.gravatar.com/avatar/371edff6d79c39bb9e36bde39d41a4b0'
}, },
{ {
name: 'Bart Dubois', name: 'Bart Dubois',
email: 'test8@test.local', email: 'test8@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/4acf72b14fcb459286c988c4523bafc8',
'https://www.gravatar.com/avatar/4acf72b14fcb459286c988c4523bafc8'
}, },
{ {
name: 'Barthélemy Vessemont', name: 'Barthélemy Vessemont',
email: 'test9@test.local', email: 'test9@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/322cd2fad528a55c4351ec76d85ef525',
'https://www.gravatar.com/avatar/322cd2fad528a55c4351ec76d85ef525'
}, },
{ {
name: 'Brandon Nicholls', name: 'Brandon Nicholls',
email: 'test10@test.local', email: 'test10@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/2d3b462f08f214ed459967aa7ef206f7',
'https://www.gravatar.com/avatar/2d3b462f08f214ed459967aa7ef206f7'
}, },
{ {
name: 'Bren Norris', name: 'Bren Norris',
email: 'test11@test.local', email: 'test11@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/465a42204a22efada0f15b46a7cdad3a',
'https://www.gravatar.com/avatar/465a42204a22efada0f15b46a7cdad3a'
}, },
{ {
name: 'Brett Trotter', name: 'Brett Trotter',
email: 'test12@test.local', email: 'test12@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/27a54519dcbe64c6d705f3cc4854595a',
'https://www.gravatar.com/avatar/27a54519dcbe64c6d705f3cc4854595a'
}, },
{ {
name: 'Brian Peacock', name: 'Brian Peacock',
email: 'test13@test.local', email: 'test13@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/3dd3d627330e7e048c13a7480f19842e',
'https://www.gravatar.com/avatar/3dd3d627330e7e048c13a7480f19842e'
}, },
{ {
name: 'Cedric Darne', name: 'Cedric Darne',
email: 'test14@test.local', email: 'test14@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/0a617cebc6539940d7956c86e86c72a6',
'https://www.gravatar.com/avatar/0a617cebc6539940d7956c86e86c72a6'
}, },
{ {
name: 'Chad Killingsworth', name: 'Chad Killingsworth',
email: 'test15@test.local', email: 'test15@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/a5825b2d69311e559e28a535e5f0d483',
'https://www.gravatar.com/avatar/a5825b2d69311e559e28a535e5f0d483'
}, },
{ {
name: 'Chris Breneman', name: 'Chris Breneman',
email: 'test16@test.local', email: 'test16@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/3c5c3edef955c93edac672cbad04d7cd',
'https://www.gravatar.com/avatar/3c5c3edef955c93edac672cbad04d7cd'
}, },
{ {
name: 'Cody Droz', name: 'Cody Droz',
email: 'test17@test.local', email: 'test17@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/b762ce4d14acfece36e783b1592d882b',
'https://www.gravatar.com/avatar/b762ce4d14acfece36e783b1592d882b'
}, },
{ {
name: 'Daniel Rodríguez Rivero', name: 'Daniel Rodríguez Rivero',
email: 'test18@test.local', email: 'test18@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/ac7f548c31e8a002cfa41bd4c71e222d',
'https://www.gravatar.com/avatar/ac7f548c31e8a002cfa41bd4c71e222d'
}, },
{ {
name: 'Denis Babineau', name: 'Denis Babineau',
email: 'test19@test.local', email: 'test19@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/ee5a522e067759ba0403824ecebeab4d',
'https://www.gravatar.com/avatar/ee5a522e067759ba0403824ecebeab4d'
}, },
{ {
name: 'Emmanuel Narh', name: 'Emmanuel Narh',
email: 'test20@test.local', email: 'test20@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/93a84a6120969fd181785ff9de834f0a',
'https://www.gravatar.com/avatar/93a84a6120969fd181785ff9de834f0a'
}, },
{ {
name: 'Fabio Poloni', name: 'Fabio Poloni',
email: 'test21@test.local', email: 'test21@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/f9a05677360e5f52fcca6e1af9b0f2ee',
'https://www.gravatar.com/avatar/f9a05677360e5f52fcca6e1af9b0f2ee'
}, },
{ {
name: 'Facundo Chambó', name: 'Facundo Chambó',
email: 'test22@test.local', email: 'test22@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/ec9e7c590ba4081c25fcf197f90a4ea0',
'https://www.gravatar.com/avatar/ec9e7c590ba4081c25fcf197f90a4ea0'
}, },
{ {
name: 'Guilherme Bernal', name: 'Guilherme Bernal',
email: 'test23@test.local', email: 'test23@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/e5d55dcf2495618e8b9f8778f8353ee0',
'https://www.gravatar.com/avatar/e5d55dcf2495618e8b9f8778f8353ee0'
}, },
{ {
name: 'Jakub Jirutka', name: 'Jakub Jirutka',
email: 'test24@test.local', email: 'test24@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/061bdb74aa4a543108658b277a257b4b',
'https://www.gravatar.com/avatar/061bdb74aa4a543108658b277a257b4b'
}, },
{ {
name: 'James Newell', name: 'James Newell',
email: 'test25@test.local', email: 'test25@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/825190aaae6ec7fd95085e1fb6f261d2',
'https://www.gravatar.com/avatar/825190aaae6ec7fd95085e1fb6f261d2'
}, },
{ {
name: 'Jan Vansteenkiste', name: 'Jan Vansteenkiste',
email: 'test26@test.local', email: 'test26@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/41835625a324201c796a0a0cffe4796b',
'https://www.gravatar.com/avatar/41835625a324201c796a0a0cffe4796b'
}, },
{ {
name: 'Jannis Achstetter', name: 'Jannis Achstetter',
email: 'test27@test.local', email: 'test27@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/92d1cce007b032f4a63c6df764f18030',
'https://www.gravatar.com/avatar/92d1cce007b032f4a63c6df764f18030'
}, },
{ {
name: 'Jeremy Moritz', name: 'Jeremy Moritz',
email: 'test28@test.local', email: 'test28@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/008127e8f10293f43e62de3b7b3520e1',
'https://www.gravatar.com/avatar/008127e8f10293f43e62de3b7b3520e1'
}, },
{ {
name: 'John Gozde', name: 'John Gozde',
email: 'test29@test.local', email: 'test29@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/3e8927c60cb043a56fdd6531cfcaddbc',
'https://www.gravatar.com/avatar/3e8927c60cb043a56fdd6531cfcaddbc'
}, },
{ {
name: 'Jon de la Motte', name: 'Jon de la Motte',
email: 'test30@test.local', email: 'test30@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/126c1ea4fdb20bbb85c3ff735b7b0964',
'https://www.gravatar.com/avatar/126c1ea4fdb20bbb85c3ff735b7b0964'
}, },
{ {
name: 'Joseph Gentle', name: 'Joseph Gentle',
email: 'test31@test.local', email: 'test31@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/484f0b8ba8b7cc43db0be8f910a91254',
'https://www.gravatar.com/avatar/484f0b8ba8b7cc43db0be8f910a91254'
}, },
{ {
name: 'José De Paz', name: 'José De Paz',
email: 'test32@test.local', email: 'test32@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/2532122835f5ebf1642b707ae088c895',
'https://www.gravatar.com/avatar/2532122835f5ebf1642b707ae088c895'
}, },
{ {
name: 'Juan Carlos Picado', name: 'Juan Carlos Picado',
email: 'test33@test.local', email: 'test33@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/c676605ff39f9c7a43f5518a8ce54e12',
'https://www.gravatar.com/avatar/c676605ff39f9c7a43f5518a8ce54e12'
}, },
{ {
name: 'Juan Carlos Picado', name: 'Juan Carlos Picado',
email: 'test34@test.local', email: 'test34@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/fba48015a688c38cc84e5b55b07858c0',
'https://www.gravatar.com/avatar/fba48015a688c38cc84e5b55b07858c0'
}, },
{ {
name: 'User NPM', name: 'User NPM',
email: 'test35@test.local', email: 'test35@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/fba48015a688c38cc84e5b55b07858c0',
'https://www.gravatar.com/avatar/fba48015a688c38cc84e5b55b07858c0'
}, },
{ {
name: 'User NPM @nickname', name: 'User NPM @nickname',
email: 'test36@test.local', email: 'test36@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/fba48015a688c38cc84e5b55b07858c0',
'https://www.gravatar.com/avatar/fba48015a688c38cc84e5b55b07858c0'
}, },
{ {
name: 'Kalman Speier', name: 'Kalman Speier',
email: 'test37@test.local', email: 'test37@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/272806ba17639e2fbf811e51eb8bfb99',
'https://www.gravatar.com/avatar/272806ba17639e2fbf811e51eb8bfb99'
}, },
{ {
name: 'Keyvan Fatehi', name: 'Keyvan Fatehi',
email: 'test38@test.local', email: 'test38@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/22735d1ba5765955914eb2d597dfaab5',
'https://www.gravatar.com/avatar/22735d1ba5765955914eb2d597dfaab5'
}, },
{ {
name: 'Kody J. Peterson', name: 'Kody J. Peterson',
email: 'test39@test.local', email: 'test39@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/918a15afc52e9b0a67b2651191b23d04',
'https://www.gravatar.com/avatar/918a15afc52e9b0a67b2651191b23d04'
}, },
{ {
name: 'Madison Grubb', name: 'Madison Grubb',
email: 'test40@test.local', email: 'test40@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/73b84fdf661c11d48d3370bfa197162b',
'https://www.gravatar.com/avatar/73b84fdf661c11d48d3370bfa197162b'
}, },
{ {
name: 'Manuel de Brito Fontes', name: 'Manuel de Brito Fontes',
email: 'test41@test.local', email: 'test41@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/8798ca0a499428e5e8f25d3614ac8b6e',
'https://www.gravatar.com/avatar/8798ca0a499428e5e8f25d3614ac8b6e'
}, },
{ {
name: 'Mark Doeswijk', name: 'Mark Doeswijk',
email: 'test42@test.local', email: 'test42@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/0d70ebd6c46dc01502bfab5f8c2d2bc5',
'https://www.gravatar.com/avatar/0d70ebd6c46dc01502bfab5f8c2d2bc5'
}, },
{ {
name: 'Meeeeow', name: 'Meeeeow',
email: 'test43@test.local', email: 'test43@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/baa061890d7b352ba121082272419a8a',
'https://www.gravatar.com/avatar/baa061890d7b352ba121082272419a8a'
}, },
{ {
name: 'Meeeeow', name: 'Meeeeow',
email: 'test44@test.local', email: 'test44@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/12a36e093451d4c0f75d4240960ce29b',
'https://www.gravatar.com/avatar/12a36e093451d4c0f75d4240960ce29b'
}, },
{ {
name: 'Michael Arnel', name: 'Michael Arnel',
email: 'test45@test.local', email: 'test45@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/5f9a5ed24c63609d52651258f6dd8c12',
'https://www.gravatar.com/avatar/5f9a5ed24c63609d52651258f6dd8c12'
}, },
{ {
name: 'Michael Crowe', name: 'Michael Crowe',
email: 'test46@test.local', email: 'test46@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/eec9ee62019852da28a3bc91c57907f9',
'https://www.gravatar.com/avatar/eec9ee62019852da28a3bc91c57907f9'
}, },
{ {
name: 'Miguel Mejias', name: 'Miguel Mejias',
email: 'test47@test.local', email: 'test47@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/7289a01fedfdb9ddf855ee4dd4d41ae2',
'https://www.gravatar.com/avatar/7289a01fedfdb9ddf855ee4dd4d41ae2'
}, },
{ {
name: 'Miroslav Bajtoš', name: 'Miroslav Bajtoš',
email: 'test48@test.local', email: 'test48@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/b4d8831300713259f74aea79f842ca57',
'https://www.gravatar.com/avatar/b4d8831300713259f74aea79f842ca57'
}, },
{ {
name: 'Nate Ziarek', name: 'Nate Ziarek',
email: 'test49@test.local', email: 'test49@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/6442023756294fd43aa518bbe5cc6dcc',
'https://www.gravatar.com/avatar/6442023756294fd43aa518bbe5cc6dcc'
}, },
{ {
name: 'Nick', name: 'Nick',
email: 'test50@test.local', email: 'test50@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/8a810f12c9624ea2092852fe7c19f1ee',
'https://www.gravatar.com/avatar/8a810f12c9624ea2092852fe7c19f1ee'
}, },
{ {
name: 'Piotr Synowiec', name: 'Piotr Synowiec',
email: 'test51@test.local', email: 'test51@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/87028f33a3e1e5b4201c371abddf93e2',
'https://www.gravatar.com/avatar/87028f33a3e1e5b4201c371abddf93e2'
}, },
{ {
name: 'Rafael Cesar', name: 'Rafael Cesar',
email: 'test52@test.local', email: 'test52@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/204ed93fa5be7e2f9f299ad8bca6431f',
'https://www.gravatar.com/avatar/204ed93fa5be7e2f9f299ad8bca6431f'
}, },
{ {
name: 'Robert Ewald', name: 'Robert Ewald',
email: 'test53@test.local', email: 'test53@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/ec2166ce419f78fb354f128b01a4a44d',
'https://www.gravatar.com/avatar/ec2166ce419f78fb354f128b01a4a44d'
}, },
{ {
name: 'Robert Groh', name: 'Robert Groh',
email: 'test54@test.local', email: 'test54@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/565ccb5374a3e0e31a75f11da2eb57aa',
'https://www.gravatar.com/avatar/565ccb5374a3e0e31a75f11da2eb57aa'
}, },
{ {
name: 'Robin Persson', name: 'Robin Persson',
email: 'test55@test.local', email: 'test55@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/99da46e4d59664134b176869340f464b',
'https://www.gravatar.com/avatar/99da46e4d59664134b176869340f464b'
}, },
{ {
name: 'Romain Lai-King', name: 'Romain Lai-King',
email: 'test56@test.local', email: 'test56@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/69d0370c58399d0e0bbd15ccabfe1ec5',
'https://www.gravatar.com/avatar/69d0370c58399d0e0bbd15ccabfe1ec5'
}, },
{ {
name: 'Ryan Graham', name: 'Ryan Graham',
email: 'test57@test.local', email: 'test57@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/8bd1dd86bbf8705a5a702b86a2f3a390',
'https://www.gravatar.com/avatar/8bd1dd86bbf8705a5a702b86a2f3a390'
}, },
{ {
name: 'Ryan Graham', name: 'Ryan Graham',
email: 'test58@test.local', email: 'test58@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/e272ab422c1c629e9be26cba8b6c0166',
'https://www.gravatar.com/avatar/e272ab422c1c629e9be26cba8b6c0166'
}, },
{ {
name: 'Sam Day', name: 'Sam Day',
email: 'test59@test.local', email: 'test59@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/1886554b0562a0eeeb78a4d1f27917ea',
'https://www.gravatar.com/avatar/1886554b0562a0eeeb78a4d1f27917ea'
}, },
{ {
name: 'Tarun Garg', name: 'Tarun Garg',
email: 'test60@test.local', email: 'test60@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/185e200c3451cfbe341f0e758626303a',
'https://www.gravatar.com/avatar/185e200c3451cfbe341f0e758626303a'
}, },
{ {
name: 'Thomas Cort', name: 'Thomas Cort',
email: 'test61@test.local', email: 'test61@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/120d2921c33c1bd8dedfce67a28dcc63',
'https://www.gravatar.com/avatar/120d2921c33c1bd8dedfce67a28dcc63'
}, },
{ {
name: 'Tom Vincent', name: 'Tom Vincent',
email: 'test62@test.local', email: 'test62@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/fb0c7faeda7f5d5632182a3d80381bfa',
'https://www.gravatar.com/avatar/fb0c7faeda7f5d5632182a3d80381bfa'
}, },
{ {
name: 'Trent Earl', name: 'Trent Earl',
email: 'test63@test.local', email: 'test63@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/1e30abe66d21824b89c28d05e5b57d84',
'https://www.gravatar.com/avatar/1e30abe66d21824b89c28d05e5b57d84'
}, },
{ {
name: 'Yannick Croissant', name: 'Yannick Croissant',
email: 'test64@test.local', email: 'test64@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/1e619ddb2a180222dd3d9f0348e65b9b',
'https://www.gravatar.com/avatar/1e619ddb2a180222dd3d9f0348e65b9b'
}, },
{ {
name: 'Yannick Galatol', name: 'Yannick Galatol',
email: 'test65@test.local', email: 'test65@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/2f624f92326fef845bb2c07b392b7e48',
'https://www.gravatar.com/avatar/2f624f92326fef845bb2c07b392b7e48'
}, },
{ {
name: 'cklein', name: 'cklein',
email: 'test66@test.local', email: 'test66@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/f8288370380881cf3afc5a92a63d652d',
'https://www.gravatar.com/avatar/f8288370380881cf3afc5a92a63d652d'
}, },
{ {
name: 'danielo515', name: 'danielo515',
email: 'test67@test.local', email: 'test67@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/ac7f548c31e8a002cfa41bd4c71e222d',
'https://www.gravatar.com/avatar/ac7f548c31e8a002cfa41bd4c71e222d'
}, },
{ {
name: 'jmwilkinson', name: 'jmwilkinson',
email: 'test68@test.local', email: 'test68@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/3b99683f0a4c26a8906ecbe7968a4ade',
'https://www.gravatar.com/avatar/3b99683f0a4c26a8906ecbe7968a4ade'
}, },
{ {
name: 'nickname', name: 'nickname',
email: 'test69@test.local', email: 'test69@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/fba48015a688c38cc84e5b55b07858c0',
'https://www.gravatar.com/avatar/fba48015a688c38cc84e5b55b07858c0'
}, },
{ {
name: 'nickname', name: 'nickname',
email: 'test70@test.local', email: 'test70@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/047ba1e853d20459e531619af5493c56',
'https://www.gravatar.com/avatar/047ba1e853d20459e531619af5493c56'
}, },
{ {
name: 'maxlaverse', name: 'maxlaverse',
email: 'test71@test.local', email: 'test71@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/74324a2900906c45949a8c5cee6d0730',
'https://www.gravatar.com/avatar/74324a2900906c45949a8c5cee6d0730'
}, },
{ {
name: 'saheba', name: 'saheba',
email: 'test72@test.local', email: 'test72@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/77644c51856cab149e0f550c5f0c6ed8',
'https://www.gravatar.com/avatar/77644c51856cab149e0f550c5f0c6ed8'
}, },
{ {
name: 'steve-p-com', name: 'steve-p-com',
email: 'test73@test.local', email: 'test73@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/bef1821d3036b8b9242c4999826c1c3c',
'https://www.gravatar.com/avatar/bef1821d3036b8b9242c4999826c1c3c'
}, },
{ {
name: 'trent.earl', name: 'trent.earl',
email: 'test74@test.local', email: 'test74@test.local',
avatar: avatar: 'https://www.gravatar.com/avatar/f84b8ae496f7c988dce5a71d773e75bb',
'https://www.gravatar.com/avatar/f84b8ae496f7c988dce5a71d773e75bb' },
}
], ],
readmeFilename: 'README.md', readmeFilename: 'README.md',
gitHead: '567dbe327819ed30afb96906f8d43f19740e2e3d', gitHead: '567dbe327819ed30afb96906f8d43f19740e2e3d',
@ -662,7 +578,7 @@ export const packageMeta = {
_npmUser: {}, _npmUser: {},
dist: { dist: {
shasum: '958c919180e7f2ed6775f48d4ec64bd8de2a14df', shasum: '958c919180e7f2ed6775f48d4ec64bd8de2a14df',
tarball: 'http://localhost:4873/verdaccio/-/verdaccio-2.7.1.tgz' tarball: 'http://localhost:4873/verdaccio/-/verdaccio-2.7.1.tgz',
} },
} },
}; };

1
jest/unit/empty.ts Normal file
View File

@ -0,0 +1 @@
export default {};

View File

@ -1,9 +1,3 @@
/**
* @prettier
*/
// @flow
export const DIST_TAGS = 'dist-tags'; export const DIST_TAGS = 'dist-tags';
export const HEADERS = { export const HEADERS = {

View File

@ -11,62 +11,62 @@
}, },
"main": "index.js", "main": "index.js",
"devDependencies": { "devDependencies": {
"@commitlint/cli": "7.5.2", "@commitlint/cli": "8.0.0",
"@commitlint/config-conventional": "7.5.0", "@commitlint/config-conventional": "8.0.0",
"@material-ui/core": "3.9.0", "@material-ui/core": "3.9.3",
"@material-ui/icons": "3.0.2", "@material-ui/icons": "3.0.2",
"@octokit/rest": "16.23.2", "@octokit/rest": "16.23.2",
"@verdaccio/babel-preset": "0.1.0", "@types/enzyme": "3.9.3",
"@verdaccio/types": "5.0.0-beta.4", "@types/lodash": "4.14.134",
"@types/material-ui": "0.21.6",
"@types/node": "12.0.8",
"@types/react": "16.8.16",
"@types/react-dom": "16.8.4",
"@types/react-router-dom": "4.3.2",
"@verdaccio/babel-preset": "0.2.1",
"@verdaccio/eslint-config": "0.0.1",
"@verdaccio/types": "6.1.0",
"autosuggest-highlight": "3.1.1", "autosuggest-highlight": "3.1.1",
"bundlesize": "0.17.1", "babel-loader": "8.0.6",
"codecov": "3.2.0", "bundlesize": "0.17.2",
"codecov": "3.5.0",
"concurrently": "4.1.0", "concurrently": "4.1.0",
"cross-env": "5.2.0", "cross-env": "5.2.0",
"css-loader": "0.28.10", "css-loader": "0.28.10",
"date-fns": "1.30.1", "date-fns": "1.30.1",
"emotion": "9.2.12", "emotion": "9.2.12",
"enzyme": "3.9.0", "enzyme": "3.10.0",
"enzyme-adapter-react-16": "1.10.0", "enzyme-adapter-react-16": "1.14.0",
"enzyme-to-json": "3.3.5", "enzyme-to-json": "3.3.5",
"eslint": "5.14.1", "eslint": "5.16.0",
"eslint-config-google": "0.12.0",
"eslint-config-prettier": "4.1.0",
"eslint-loader": "2.1.2",
"eslint-plugin-babel": "5.3.0",
"eslint-plugin-flowtype": "3.4.2",
"eslint-plugin-import": "2.16.0",
"eslint-plugin-jest": "22.3.0",
"eslint-plugin-jsx-a11y": "6.2.1", "eslint-plugin-jsx-a11y": "6.2.1",
"eslint-plugin-prettier": "3.0.1", "eslint-plugin-prettier": "3.1.0",
"eslint-plugin-react": "7.11.1", "eslint-plugin-react": "7.13.0",
"eslint-plugin-verdaccio": "0.0.5", "eslint-plugin-verdaccio": "0.0.5",
"file-loader": "2.0.0", "file-loader": "2.0.0",
"flow-bin": "0.81.0",
"flow-runtime": "0.17.0",
"friendly-errors-webpack-plugin": "1.7.0", "friendly-errors-webpack-plugin": "1.7.0",
"get-stdin": "6.0.0", "get-stdin": "6.0.0",
"github-markdown-css": "2.10.0", "github-markdown-css": "2.10.0",
"html-webpack-plugin": "3.2.0", "html-webpack-plugin": "3.2.0",
"husky": "0.15.0-rc.8", "husky": "2.4.1",
"identity-obj-proxy": "3.0.0", "identity-obj-proxy": "3.0.0",
"in-publish": "2.0.0", "in-publish": "2.0.0",
"jest": "24.1.0", "jest": "24.8.0",
"jest-emotion": "10.0.10", "jest-emotion": "10.0.11",
"jest-environment-jsdom": "24.0.0", "jest-environment-jsdom": "24.8.0",
"jest-environment-jsdom-global": "1.1.1", "jest-environment-jsdom-global": "1.2.0",
"jest-environment-node": "24.0.0", "jest-environment-node": "24.8.0",
"js-yaml": "3.13.1", "js-yaml": "3.13.1",
"localstorage-memory": "1.0.3", "localstorage-memory": "1.0.3",
"mini-css-extract-plugin": "0.5.0", "mini-css-extract-plugin": "0.7.0",
"node-mocks-http": "1.7.3", "node-mocks-http": "1.7.3",
"node-sass": "4.11.0", "node-sass": "4.12.0",
"normalize.css": "8.0.1", "normalize.css": "8.0.1",
"optimize-css-assets-webpack-plugin": "5.0.1", "optimize-css-assets-webpack-plugin": "5.0.1",
"ora": "1.4.0", "ora": "3.4.0",
"prettier": "1.14.3", "prettier": "1.18.2",
"prop-types": "15.7.2", "prop-types": "15.7.2",
"puppeteer": "1.8.0", "puppeteer": "1.17.0",
"react": "16.8.3", "react": "16.8.3",
"react-autosuggest": "9.4.2", "react-autosuggest": "9.4.2",
"react-dom": "16.8.3", "react-dom": "16.8.3",
@ -80,18 +80,19 @@
"source-map-loader": "0.2.4", "source-map-loader": "0.2.4",
"standard-version": "4.4.0", "standard-version": "4.4.0",
"style-loader": "0.23.1", "style-loader": "0.23.1",
"stylelint": "9.10.1", "stylelint": "10.1.0",
"stylelint-config-recommended": "2.1.0", "stylelint-config-recommended": "2.2.0",
"stylelint-config-recommended-scss": "3.2.0", "stylelint-config-recommended-scss": "3.3.0",
"stylelint-config-styled-components": "0.1.1", "stylelint-config-styled-components": "0.1.1",
"stylelint-processor-styled-components": "1.5.2", "stylelint-processor-styled-components": "1.8.0",
"stylelint-scss": "3.5.4", "stylelint-scss": "3.8.0",
"stylelint-webpack-plugin": "0.10.5", "stylelint-webpack-plugin": "0.10.5",
"supertest": "3.4.2", "supertest": "4.0.2",
"typeface-roboto": "0.0.54", "typeface-roboto": "0.0.54",
"typescript": "3.4.5",
"url-loader": "1.1.2", "url-loader": "1.1.2",
"validator": "10.11.0", "validator": "10.11.0",
"verdaccio": "4.0.1", "verdaccio": "4.0.3",
"verdaccio-auth-memory": "0.0.4", "verdaccio-auth-memory": "0.0.4",
"verdaccio-memory": "2.0.0", "verdaccio-memory": "2.0.0",
"webpack": "4.20.2", "webpack": "4.20.2",
@ -101,24 +102,51 @@
"webpack-dev-server": "3.2.1", "webpack-dev-server": "3.2.1",
"webpack-merge": "4.2.1", "webpack-merge": "4.2.1",
"whatwg-fetch": "3.0.0", "whatwg-fetch": "3.0.0",
"xss": "1.0.3" "xss": "1.0.6"
}, },
"keywords": [ "keywords": [
"verdaccio", "verdaccio",
"verdaccio-plugin", "verdaccio-plugin",
"verdaccio-theme" "verdaccio-theme"
], ],
"bundlesize": [
{
"path": "./static/vendors.*.js",
"maxSize": "180 kB"
},
{
"path": "./static/main.*.js",
"maxSize": "30 kB"
},
{
"path": "./static/[0-9].*.{js,css}",
"maxSize": "30 kB"
},
{
"path": "./static/*.svg",
"maxSize": "1.3 kB"
},
{
"path": "./static/*.png",
"maxSize": "15 kB"
},
{
"path": "./static/fonts/*.{woff,woff2}",
"maxSize": "20 kB"
}
],
"scripts": { "scripts": {
"flow": "flow check", "type-check": "tsc --noEmit",
"type-check:watch": "npm run type-check -- --watch",
"release": "standard-version -a -s", "release": "standard-version -a -s",
"test:clean": "npx jest --clearCache", "test": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --config ./jest/jest.config.js --maxWorkers 2",
"test": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --config ./jest.config.js --maxWorkers 2 --passWithNoTests",
"test:size": "bundlesize", "test:size": "bundlesize",
"lint": "npm run flow && npm run lint:js && npm run lint:css", "lint": "npm run lint:js && npm run lint:css",
"lint:js": "eslint .", "lint:js": "npm run type-check && eslint . --ext .js,.ts,.tsx",
"lint:css": "stylelint 'src/**/styles.ts'",
"coverage:publish": "codecov", "coverage:publish": "codecov",
"lint:css": "stylelint 'src/webui/**/styles.js'",
"pre:webpack": "rimraf static/*", "pre:webpack": "rimraf static/*",
"prepublish": "in-publish && npm run build || not-in-publish",
"dev:web": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", "dev:web": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js",
"verdaccio:server": "node tools/verdaccio.js", "verdaccio:server": "node tools/verdaccio.js",
"build": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", "build": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js",

View File

@ -1,24 +1,25 @@
"use strict"; 'use strict';
const [ /* node */, /* file */, tag] = process.argv; const [, , /* node */ /* file */ tag] = process.argv;
const getStdin = require("get-stdin"); const getStdin = require('get-stdin');
const Octokit = require('@octokit/rest'); const Octokit = require('@octokit/rest');
const octokit = new Octokit({ const octokit = new Octokit({
auth: `token ${process.env.GITHUB_TOKEN}`, auth: `token ${process.env.GITHUB_TOKEN}`,
}); });
const [repoOwner, repoName] = process.env.GITHUB_REPOSITORY.split('/');
const [repoOwner, repoName] = process.env.GITHUB_REPOSITORY.split("/");
getStdin() getStdin()
.then(changelog => octokit.repos.createRelease({ .then(changelog =>
octokit.repos.createRelease({
owner: repoOwner, owner: repoOwner,
repo: repoName, repo: repoName,
tag_name: tag, tag_name: tag,
body: changelog, body: changelog,
draft: true, draft: true,
})) })
)
.catch(err => { .catch(err => {
// eslint-disable-next-line no-console // eslint-disable-next-line no-console
console.error(err); console.error(err);

View File

@ -1,33 +1,34 @@
import React from 'react'; import React from 'react';
import { mount } from 'enzyme'; import { mount } from 'enzyme';
import storage from '../../src/webui/utils/storage'; import storage from '../utils/storage';
import App from '../../src/webui/app'; import App from './App';
import { generateTokenWithTimeRange } from './components/__mocks__/token'; import { generateTokenWithTimeRange } from '../../jest/unit/components/__mocks__/token';
jest.mock('../../src/webui/utils/storage', () => { jest.mock('../utils/storage', () => {
class LocalStorageMock { class LocalStorageMock {
constructor() { store: object;
public constructor() {
this.store = {}; this.store = {};
} }
clear() { public clear(): void {
this.store = {}; this.store = {};
} }
getItem(key) { public getItem(key): unknown {
return this.store[key] || null; return this.store[key] || null;
} }
setItem(key, value) { public setItem(key, value): void {
this.store[key] = value.toString(); this.store[key] = value.toString();
} }
removeItem(key) { public removeItem(key): void {
delete this.store[key]; delete this.store[key];
} }
} }
return new LocalStorageMock(); return new LocalStorageMock();
}); });
jest.mock('../../src/webui/utils/api', () => ({ jest.mock('../utils/api', () => ({
request: require('./components/__mocks__/api').default.request request: require('../../jest/unit/components/__mocks__/api').default.request,
})); }));
describe('App', () => { describe('App', () => {
@ -46,7 +47,6 @@ describe('App', () => {
}); });
test('isUserAlreadyLoggedIn: token already available in storage', async () => { test('isUserAlreadyLoggedIn: token already available in storage', async () => {
storage.setItem('username', 'verdaccio'); storage.setItem('username', 'verdaccio');
storage.setItem('token', generateTokenWithTimeRange(24)); storage.setItem('token', generateTokenWithTimeRange(24));
const { isUserAlreadyLoggedIn } = wrapper.instance(); const { isUserAlreadyLoggedIn } = wrapper.instance();
@ -71,7 +71,7 @@ describe('App', () => {
await handleDoLogin('sam', '1234'); await handleDoLogin('sam', '1234');
const result = { const result = {
username: 'sam', username: 'sam',
token: 'TEST_TOKEN' token: 'TEST_TOKEN',
}; };
expect(wrapper.state('isUserLoggedIn')).toBeTruthy(); expect(wrapper.state('isUserLoggedIn')).toBeTruthy();
expect(wrapper.state('showLoginModal')).toBeFalsy(); expect(wrapper.state('showLoginModal')).toBeFalsy();
@ -86,7 +86,7 @@ describe('App', () => {
const result = { const result = {
description: 'bad username/password, access denied', description: 'bad username/password, access denied',
title: 'Unable to login', title: 'Unable to login',
type: 'error' type: 'error',
}; };
expect(wrapper.state('user')).toEqual({}); expect(wrapper.state('user')).toEqual({});
expect(wrapper.state('error')).toEqual(result); expect(wrapper.state('error')).toEqual(result);

View File

@ -1,33 +1,31 @@
/** import React, { Component, ReactElement } from 'react';
* @prettier
*/
import React, { Component, Fragment } from 'react';
import isNil from 'lodash/isNil'; import isNil from 'lodash/isNil';
import storage from './utils/storage'; import storage from '../utils/storage';
import { makeLogin, isTokenExpire } from './utils/login'; import { makeLogin, isTokenExpire } from '../utils/login';
import Loading from './components/Loading'; import Loading from '../components/Loading';
import LoginModal from './components/Login'; import LoginModal from '../components/Login';
import Header from './components/Header'; import Header from '../components/Header';
import { Container, Content } from './components/Layout'; import { Container, Content } from '../components/Layout';
import RouterApp from './router'; import RouterApp from '../router';
import API from './utils/api'; import API from '../utils/api';
import './styles/typeface-roboto.scss'; import '../styles/typeface-roboto.scss';
import './styles/main.scss'; import '../styles/main.scss';
import 'normalize.css'; import 'normalize.css';
import Footer from './components/Footer'; import Footer from '../components/Footer';
export const AppContext = React.createContext(); export const AppContext = React.createContext<null>(null);
export const AppContextProvider = AppContext.Provider; export const AppContextProvider = AppContext.Provider;
export const AppContextConsumer = AppContext.Consumer; export const AppContextConsumer = AppContext.Consumer;
export default class App extends Component { export default class App extends Component<any, any> {
state = { public state = {
error: {}, error: {},
// @ts-ignore
logoUrl: window.VERDACCIO_LOGO, logoUrl: window.VERDACCIO_LOGO,
user: {}, user: {},
// @ts-ignore
scope: window.VERDACCIO_SCOPE ? `${window.VERDACCIO_SCOPE}:` : '', scope: window.VERDACCIO_SCOPE ? `${window.VERDACCIO_SCOPE}:` : '',
showLoginModal: false, showLoginModal: false,
isUserLoggedIn: false, isUserLoggedIn: false,
@ -35,37 +33,40 @@ export default class App extends Component {
isLoading: true, isLoading: true,
}; };
componentDidMount() { public componentDidMount(): void {
this.isUserAlreadyLoggedIn(); this.isUserAlreadyLoggedIn();
this.loadOnHandler(); this.loadOnHandler();
} }
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
componentDidUpdate(_, prevState) { public componentDidUpdate(_, prevState): void {
const { isUserLoggedIn } = this.state; const { isUserLoggedIn } = this.state;
if (prevState.isUserLoggedIn !== isUserLoggedIn) { if (prevState.isUserLoggedIn !== isUserLoggedIn) {
this.loadOnHandler(); this.loadOnHandler();
} }
} }
render() { public render(): React.ReactElement<HTMLDivElement> {
const { isLoading, isUserLoggedIn, packages, logoUrl, user, scope } = this.state; const { isLoading, isUserLoggedIn, packages, logoUrl, user, scope } = this.state;
const context: any = { isUserLoggedIn, packages, logoUrl, user, scope };
return ( return (
// @ts-ignore
<Container isLoading={isLoading}> <Container isLoading={isLoading}>
{isLoading ? ( {isLoading ? (
<Loading /> <Loading />
) : ( ) : (
<Fragment> <>
<AppContextProvider value={{ isUserLoggedIn, packages, logoUrl, user, scope }}>{this.renderContent()}</AppContextProvider> <AppContextProvider value={context}>{this.renderContent()}</AppContextProvider>
</Fragment> </>
)} )}
{this.renderLoginModal()} {this.renderLoginModal()}
</Container> </Container>
); );
} }
isUserAlreadyLoggedIn = () => { public isUserAlreadyLoggedIn = () => {
// checks for token validity // checks for token validity
const token = storage.getItem('token'); const token = storage.getItem('token');
const username = storage.getItem('username'); const username = storage.getItem('username');
@ -79,10 +80,12 @@ export default class App extends Component {
} }
}; };
loadOnHandler = async () => { public loadOnHandler = async () => {
try { try {
// @ts-ignore
this.req = await API.request('packages', 'GET'); this.req = await API.request('packages', 'GET');
this.setState({ this.setState({
// @ts-ignore
packages: this.req, packages: this.req,
isLoading: false, isLoading: false,
}); });
@ -96,7 +99,7 @@ export default class App extends Component {
} }
}; };
setLoading = isLoading => public setLoading = isLoading =>
this.setState({ this.setState({
isLoading, isLoading,
}); });
@ -105,8 +108,9 @@ export default class App extends Component {
* Toggles the login modal * Toggles the login modal
* Required by: <LoginModal /> <Header /> * Required by: <LoginModal /> <Header />
*/ */
handleToggleLoginModal = () => { public handleToggleLoginModal = () => {
this.setState(prevState => ({ this.setState(prevState => ({
// @ts-ignore
showLoginModal: !prevState.showLoginModal, showLoginModal: !prevState.showLoginModal,
error: {}, error: {},
})); }));
@ -116,7 +120,8 @@ export default class App extends Component {
* handles login * handles login
* Required by: <Header /> * Required by: <Header />
*/ */
handleDoLogin = async (usernameValue, passwordValue) => { public handleDoLogin = async (usernameValue, passwordValue) => {
// @ts-ignore
const { username, token, error } = await makeLogin(usernameValue, passwordValue); const { username, token, error } = await makeLogin(usernameValue, passwordValue);
if (username && token) { if (username && token) {
@ -133,7 +138,7 @@ export default class App extends Component {
} }
}; };
setLoggedUser = (username, token) => { public setLoggedUser = (username, token) => {
this.setState({ this.setState({
user: { user: {
username, username,
@ -148,7 +153,7 @@ export default class App extends Component {
* Logouts user * Logouts user
* Required by: <Header /> * Required by: <Header />
*/ */
handleLogout = () => { public handleLogout = () => {
storage.removeItem('username'); storage.removeItem('username');
storage.removeItem('token'); storage.removeItem('token');
this.setState({ this.setState({
@ -157,34 +162,31 @@ export default class App extends Component {
}); });
}; };
renderLoginModal = () => { public renderLoginModal = (): ReactElement<HTMLElement> => {
const { error, showLoginModal } = this.state; const { error, showLoginModal } = this.state;
return ( return <LoginModal error={error} onCancel={this.handleToggleLoginModal} onSubmit={this.handleDoLogin} visibility={showLoginModal} />;
<LoginModal
error={error}
onCancel={this.handleToggleLoginModal}
onChange={this.handleSetUsernameAndPassword}
onSubmit={this.handleDoLogin}
visibility={showLoginModal}
/>
);
}; };
renderContent = () => { public renderContent = (): ReactElement<HTMLElement> => {
return ( return (
<Fragment> <>
<Content> <Content>
<RouterApp onLogout={this.handleLogout} onToggleLoginModal={this.handleToggleLoginModal}> <RouterApp onLogout={this.handleLogout} onToggleLoginModal={this.handleToggleLoginModal}>
{this.renderHeader()} {this.renderHeader()}
</RouterApp> </RouterApp>
</Content> </Content>
<Footer /> <Footer />
</Fragment> </>
); );
}; };
renderHeader = () => { public renderHeader = (): ReactElement<HTMLElement> => {
const { logoUrl, user: { username } = {}, scope } = this.state; const {
logoUrl,
// @ts-ignore
user: { username },
scope,
} = this.state;
return <Header logo={logoUrl} onLogout={this.handleLogout} onToggleLoginModal={this.handleToggleLoginModal} scope={scope} username={username} />; return <Header logo={logoUrl} onLogout={this.handleLogout} onToggleLoginModal={this.handleToggleLoginModal} scope={scope} username={username} />;
}; };

1
src/App/index.ts Normal file
View File

@ -0,0 +1 @@
export { default } from './App';

5
src/components/.eslintrc Normal file
View File

@ -0,0 +1,5 @@
{
"rules": {
"no-invalid-this": 0
}
}

View File

@ -1,16 +1,12 @@
/** import React, { Component, ReactElement } from 'react';
* @prettier
*/
import React, { Component } from 'react';
import BugReportIcon from '@material-ui/icons/BugReport'; import BugReportIcon from '@material-ui/icons/BugReport';
import DownloadIcon from '@material-ui/icons/CloudDownload'; import DownloadIcon from '@material-ui/icons/CloudDownload';
import HomeIcon from '@material-ui/icons/Home'; import HomeIcon from '@material-ui/icons/Home';
import List from '@material-ui/core/List/index'; import List from '@material-ui/core/List';
import Tooltip from '@material-ui/core/Tooltip/index'; import Tooltip from '@material-ui/core/Tooltip';
import { DetailContextConsumer } from '../../pages/version/index'; import { DetailContextConsumer, VersionPageConsumerProps } from '../../pages/version/Version';
import { Fab, ActionListItem } from './styles'; import { Fab, ActionListItem } from './styles';
import { isURL } from '../../utils/url'; import { isURL } from '../../utils/url';
@ -30,17 +26,17 @@ const ACTIONS = {
}; };
class ActionBar extends Component<any, any> { class ActionBar extends Component<any, any> {
render() { public render(): ReactElement<HTMLElement> {
return ( return (
<DetailContextConsumer> <DetailContextConsumer>
{context => { {context => {
return this.renderActionBar(context); return this.renderActionBar(context as VersionPageConsumerProps);
}} }}
</DetailContextConsumer> </DetailContextConsumer>
); );
} }
renderIconsWithLink(link, component) { private renderIconsWithLink(link: string, component: any): ReactElement<HTMLElement> {
return ( return (
<a href={link} target={'_blank'}> <a href={link} target={'_blank'}>
{component} {component}
@ -48,7 +44,8 @@ class ActionBar extends Component<any, any> {
); );
} }
renderActionBarListItems = packageMeta => { private renderActionBarListItems = packageMeta => {
// @ts-ignore
const { latest: { bugs: { url: issue } = {}, homepage, dist: { tarball } = {} } = {} } = packageMeta; const { latest: { bugs: { url: issue } = {}, homepage, dist: { tarball } = {} } = {} } = packageMeta;
const actionsMap = { const actionsMap = {
@ -62,8 +59,9 @@ class ActionBar extends Component<any, any> {
if (link && isURL(link)) { if (link && isURL(link)) {
const fab = <Fab size={'small'}>{ACTIONS[value]['icon']}</Fab>; const fab = <Fab size={'small'}>{ACTIONS[value]['icon']}</Fab>;
component.push( component.push(
// @ts-ignore
<Tooltip key={key} title={ACTIONS[value]['title']}> <Tooltip key={key} title={ACTIONS[value]['title']}>
{this.renderIconsWithLink(link, fab)} <>{this.renderIconsWithLink(link, fab)}</>
</Tooltip> </Tooltip>
); );
} }
@ -77,7 +75,7 @@ class ActionBar extends Component<any, any> {
); );
}; };
renderActionBar = ({ packageMeta = {} }) => { private renderActionBar = ({ packageMeta = {} }) => {
return <List>{this.renderActionBarListItems(packageMeta)}</List>; return <List>{this.renderActionBarListItems(packageMeta)}</List>;
}; };
} }

View File

@ -0,0 +1 @@
export { default } from './ActionBar';

View File

@ -1,9 +1,6 @@
/**
* @prettier
*/
import styled from 'react-emotion'; import styled from 'react-emotion';
import { default as MuiFab } from '@material-ui/core/Fab'; import { default as MuiFab } from '@material-ui/core/Fab';
import ListItem from '@material-ui/core/ListItem/index'; import ListItem from '@material-ui/core/ListItem';
import colors from '../../utils/styles/colors'; import colors from '../../utils/styles/colors';

View File

@ -0,0 +1,11 @@
import React from 'react';
import { shallow } from 'enzyme';
import Author from './Author';
describe('<Author /> component', () => {
test('should render the component in default state', () => {
const wrapper = shallow(<Author />);
expect(wrapper.html()).toMatchSnapshot();
});
});

View File

@ -1,14 +1,10 @@
/** import React, { Component, ReactNode } from 'react';
* @prettier
*/
import React, { Component } from 'react'; import Avatar from '@material-ui/core/Avatar';
import List from '@material-ui/core/List';
import ListItemText from '@material-ui/core/ListItemText';
import Avatar from '@material-ui/core/Avatar/index'; import { DetailContextConsumer } from '../../pages/version/Version';
import List from '@material-ui/core/List/index';
import ListItemText from '@material-ui/core/ListItemText/index';
import { DetailContextConsumer } from '../../pages/version/index';
import { Heading, AuthorListItem } from './styles'; import { Heading, AuthorListItem } from './styles';
import { isEmail } from '../../utils/url'; import { isEmail } from '../../utils/url';
@ -16,14 +12,14 @@ class Authors extends Component<any, any> {
render() { render() {
return ( return (
<DetailContextConsumer> <DetailContextConsumer>
{context => { {(context: any) => {
return this.renderAuthor(context); return context && context.packageMeta && this.renderAuthor(context.packageMeta);
}} }}
</DetailContextConsumer> </DetailContextConsumer>
); );
} }
renderLinkForMail(email, avatarComponent, packageName, version) { renderLinkForMail(email: string, avatarComponent: ReactNode, packageName: string, version: string) {
if (!email || isEmail(email) === false) { if (!email || isEmail(email) === false) {
return avatarComponent; return avatarComponent;
} }
@ -35,7 +31,7 @@ class Authors extends Component<any, any> {
); );
} }
renderAuthor = ({ packageMeta }) => { renderAuthor = packageMeta => {
const { author, name: packageName, version } = packageMeta.latest; const { author, name: packageName, version } = packageMeta.latest;
if (!author) { if (!author) {

View File

@ -0,0 +1,3 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`<Author /> component should render the component in default state 1`] = `""`;

View File

@ -0,0 +1 @@
export { default } from './Author';

View File

@ -1,11 +1,6 @@
/**
* @prettier
* @flow
*/
import styled from 'react-emotion'; import styled from 'react-emotion';
import ListItem from '@material-ui/core/ListItem/index'; import ListItem from '@material-ui/core/ListItem';
import Typography from '@material-ui/core/Typography/index'; import Typography from '@material-ui/core/Typography';
export const Heading = styled(Typography)` export const Heading = styled(Typography)`
&& { && {

View File

@ -1,10 +1,4 @@
/** import React, { KeyboardEvent } from 'react';
* @prettier
* @flow
*/
import React from 'react';
import type { Node } from 'react';
import Autosuggest from 'react-autosuggest'; import Autosuggest from 'react-autosuggest';
import match from 'autosuggest-highlight/match'; import match from 'autosuggest-highlight/match';
import parse from 'autosuggest-highlight/parse'; import parse from 'autosuggest-highlight/parse';
@ -12,9 +6,27 @@ import MenuItem from '@material-ui/core/MenuItem';
import { fontWeight } from '../../utils/styles/sizes'; import { fontWeight } from '../../utils/styles/sizes';
import { Wrapper, InputField, SuggestionContainer } from './styles'; import { Wrapper, InputField, SuggestionContainer } from './styles';
import { IProps } from './types';
const renderInputComponent = (inputProps): Node => { export interface Props {
suggestions: any[];
suggestionsLoading?: boolean;
suggestionsLoaded?: boolean;
suggestionsError?: boolean;
apiLoading?: boolean;
color?: string;
value?: string;
placeholder?: string;
startAdornment?: any;
disableUnderline?: boolean;
onChange?: (event: KeyboardEvent<HTMLInputElement>, { newValue, method }: { newValue: string; method: string }) => void;
onSuggestionsFetch?: ({ value: string }) => Promise<void>;
onCleanSuggestions?: () => void;
onClick?: (event: KeyboardEvent<HTMLInputElement>, { suggestionValue, method }: { suggestionValue: any[]; method: string }) => void;
onKeyDown?: (event: KeyboardEvent<HTMLInputElement>) => void;
onBlur?: (event: KeyboardEvent<HTMLInputElement>) => void;
}
const renderInputComponent = inputProps => {
const { ref, startAdornment, disableUnderline, onKeyDown, ...others } = inputProps; const { ref, startAdornment, disableUnderline, onKeyDown, ...others } = inputProps;
return ( return (
<InputField <InputField
@ -34,21 +46,21 @@ const renderInputComponent = (inputProps): Node => {
const getSuggestionValue = (suggestion): string => suggestion.name; const getSuggestionValue = (suggestion): string => suggestion.name;
const renderSuggestion = (suggestion, { query, isHighlighted }): Node => { const renderSuggestion = (suggestion, { query, isHighlighted }) => {
const matches = match(suggestion.name, query); const matches = match(suggestion.name, query);
const parts = parse(suggestion.name, matches); const parts = parse(suggestion.name, matches);
return ( return (
<MenuItem component={'div'} selected={isHighlighted}> <MenuItem component="div" selected={isHighlighted}>
<div> <div>
{parts.map((part, index) => { {parts.map((part, index) => {
return part.highlight ? ( return part.highlight ? (
<span href={suggestion.link} key={String(index)} style={{ fontWeight: fontWeight.semiBold }}> <a href={suggestion.link} key={String(index)} style={{ fontWeight: fontWeight.semiBold }}>
{part.text} {part.text}
</span> </a>
) : ( ) : (
<span href={suggestion.link} key={String(index)} style={{ fontWeight: fontWeight.light }}> <a href={suggestion.link} key={String(index)} style={{ fontWeight: fontWeight.light }}>
{part.text} {part.text}
</span> </a>
); );
})} })}
</div> </div>
@ -56,9 +68,9 @@ const renderSuggestion = (suggestion, { query, isHighlighted }): Node => {
); );
}; };
const renderMessage = (message): Node => { const renderMessage = message => {
return ( return (
<MenuItem component={'div'} selected={false}> <MenuItem component="div" selected={false}>
<div>{message}</div> <div>{message}</div>
</MenuItem> </MenuItem>
); );
@ -86,7 +98,7 @@ const AutoComplete = ({
suggestionsLoading = false, suggestionsLoading = false,
suggestionsLoaded = false, suggestionsLoaded = false,
suggestionsError = false, suggestionsError = false,
}: IProps): Node => { }: Props) => {
const autosuggestProps = { const autosuggestProps = {
renderInputComponent, renderInputComponent,
suggestions, suggestions,

View File

@ -0,0 +1 @@
export { default } from './AutoComplete';

View File

@ -1,16 +1,14 @@
/**
* @prettier
* @flow
*/
import React from 'react'; import React from 'react';
import styled, { css } from 'react-emotion'; import styled, { css } from 'react-emotion';
import Paper from '@material-ui/core/Paper'; import Paper from '@material-ui/core/Paper';
import TextField from '../TextField'; import TextField from '../TextField';
import { IInputField } from './types';
export const Wrapper = styled.div` export interface InputFieldProps {
color: string;
}
export const Wrapper = styled('div')`
&& { && {
width: 100%; width: 100%;
height: 32px; height: 32px;
@ -19,10 +17,11 @@ export const Wrapper = styled.div`
} }
`; `;
export const InputField = ({ color, ...others }: IInputField) => ( export const InputField: React.FC<InputFieldProps> = ({ color, ...others }) => (
<TextField <TextField
{...others} {...others}
classes={{ classes={{
// @ts-ignore
input: css` input: css`
&& { && {
${color && ${color &&

View File

@ -1,23 +1,14 @@
/**
* @prettier
* @flow
*/
import React from 'react'; import React from 'react';
import { shallow } from 'enzyme'; import { shallow } from 'enzyme';
import CopyToClipBoard from '../../../src/webui/components/CopyToClipBoard/index'; import CopyToClipBoard from './CopyToClipBoard';
import { CopyIcon } from '../../../src/webui/components/CopyToClipBoard/styles'; import { CopyIcon } from './styles';
describe('<CopyToClipBoard /> component', () => { describe('<CopyToClipBoard /> component', () => {
let wrapper; let wrapper;
let props;
beforeEach(() => { beforeEach(() => {
props = { wrapper = shallow(<CopyToClipBoard text={'copy text'} />);
text: 'copy text',
};
wrapper = shallow(<CopyToClipBoard {...props} />);
}); });
test('render the component', () => { test('render the component', () => {
@ -29,11 +20,13 @@ describe('<CopyToClipBoard /> component', () => {
preventDefault: jest.fn(), preventDefault: jest.fn(),
}; };
// @ts-ignore: Property 'getSelection' does not exist on type 'Global'.
global.getSelection = jest.fn(() => ({ global.getSelection = jest.fn(() => ({
removeAllRanges: () => {}, removeAllRanges: () => {},
addRange: () => {}, addRange: () => {},
})); }));
// @ts-ignore: Property 'document/getSelection' does not exist on type 'Global'.
const { document, getSelection } = global; const { document, getSelection } = global;
wrapper.find(CopyIcon).simulate('click', event); wrapper.find(CopyIcon).simulate('click', event);

View File

@ -0,0 +1,40 @@
import Tooltip from '@material-ui/core/Tooltip';
import FileCopy from '@material-ui/icons/FileCopy';
import React from 'react';
import { copyToClipBoardUtility } from '../../utils/cli-utils';
import { TEXT } from '../../utils/constants';
import { ClipBoardCopy, ClipBoardCopyText, CopyIcon } from './styles';
interface Props {
text: string;
children?: React.ReactNode;
}
const renderText: React.FC<any> = (text: string, children: React.ReactNode): React.ReactElement<HTMLElement> => {
if (children) {
return <ClipBoardCopyText>{children}</ClipBoardCopyText>;
}
return <ClipBoardCopyText>{text}</ClipBoardCopyText>;
};
const renderToolTipFileCopy = (text: string): React.ReactElement<HTMLElement> => (
<Tooltip disableFocusListener={true} title={TEXT.CLIPBOARD_COPY}>
<CopyIcon onClick={copyToClipBoardUtility(text)}>
<FileCopy />
</CopyIcon>
</Tooltip>
);
const CopyToClipBoard: React.FC<Props> = ({ text, children }) => {
return (
<ClipBoardCopy>
{renderText(text, children)}
{renderToolTipFileCopy(text)}
</ClipBoardCopy>
);
};
export default CopyToClipBoard;

View File

@ -0,0 +1,3 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`<CopyToClipBoard /> component render the component 1`] = `"<div class=\\"css-1mta3t8 eb8w2fo0\\"><span class=\\"css-1m8aenu eb8w2fo1\\">copy text</span><button class=\\"MuiButtonBase-root-15 MuiIconButton-root-9 css-56v3u0 eb8w2fo2\\" tabindex=\\"0\\" type=\\"button\\" title=\\"Copy to Clipboard\\"><span class=\\"MuiIconButton-label-14\\"><svg class=\\"MuiSvgIcon-root-18\\" focusable=\\"false\\" viewBox=\\"0 0 24 24\\" aria-hidden=\\"true\\" role=\\"presentation\\"><path fill=\\"none\\" d=\\"M0 0h24v24H0z\\"></path><path d=\\"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm-1 4l6 6v10c0 1.1-.9 2-2 2H7.99C6.89 23 6 22.1 6 21l.01-14c0-1.1.89-2 1.99-2h7zm-1 7h5.5L14 6.5V12z\\"></path></svg></span></button></div>"`;

View File

@ -0,0 +1 @@
export { default } from './CopyToClipBoard';

View File

@ -1,7 +1,7 @@
import IconButton from '@material-ui/core/IconButton';
import styled from 'react-emotion'; import styled from 'react-emotion';
import IconButton from '@material-ui/core/IconButton/index';
export const ClipBoardCopy = styled.div` export const ClipBoardCopy = styled('div')`
&& { && {
display: flex; display: flex;
align-items: center; align-items: center;
@ -9,7 +9,7 @@ export const ClipBoardCopy = styled.div`
} }
`; `;
export const ClipBoardCopyText = styled.span` export const ClipBoardCopyText = styled('span')`
&& { && {
display: inline-block; display: inline-block;
text-overflow: ellipsis; text-overflow: ellipsis;

View File

@ -1,13 +1,8 @@
/** import React, { Component, Fragment, ReactElement } from 'react';
* @prettier
* @flow
*/
import React, { Component, Fragment } from 'react';
import { withRouter } from 'react-router-dom'; import { withRouter } from 'react-router-dom';
import CardContent from '@material-ui/core/CardContent/index'; import CardContent from '@material-ui/core/CardContent';
import { DetailContextConsumer } from '../../pages/version'; import { DetailContextConsumer, VersionPageConsumerProps } from '../../pages/version/Version';
import { CardWrap, Heading, Tags, Tag } from './styles'; import { CardWrap, Heading, Tags, Tag } from './styles';
import NoItems from '../NoItems'; import NoItems from '../NoItems';
@ -23,13 +18,13 @@ class DepDetail extends Component<any, any> {
}; };
} }
render() { public render(): ReactElement<HTMLElement> {
const { name, version } = this.state; const { name, version } = this.state;
const tagText = `${name}@${version}`; const tagText = `${name}@${version}`;
return <Tag className={'dep-tag'} clickable={true} component={'div'} label={tagText} onClick={this.handleOnClick} />; return <Tag className={'dep-tag'} clickable={true} component={'div'} label={tagText} onClick={this.handleOnClick} />;
} }
handleOnClick = () => { private handleOnClick = () => {
const { name } = this.state; const { name } = this.state;
const { onLoading, history } = this.props; const { onLoading, history } = this.props;
@ -41,18 +36,17 @@ class DepDetail extends Component<any, any> {
const WrapperDependencyDetail = withRouter(DepDetail); const WrapperDependencyDetail = withRouter(DepDetail);
class DependencyBlock extends Component<any, any> { class DependencyBlock extends Component<any, any> {
render() { public render(): ReactElement<HTMLElement> {
const { dependencies, title } = this.props; const { dependencies, title } = this.props;
const deps = Object.entries(dependencies); const deps = Object.entries(dependencies);
return ( return (
// $FlowFixMe
<DetailContextConsumer> <DetailContextConsumer>
{({ enableLoading }) => { {({ enableLoading }: any) => {
return ( return (
<CardWrap> <CardWrap>
<CardContent> <CardContent>
<Heading variant={'subheading'}>{`${title} (${deps.length})`}</Heading> <Heading variant="subheading">{`${title} (${deps.length})`}</Heading>
<Tags>{this.renderTags(deps, enableLoading)}</Tags> <Tags>{this.renderTags(deps, enableLoading)}</Tags>
</CardContent> </CardContent>
</CardWrap> </CardWrap>
@ -62,7 +56,7 @@ class DependencyBlock extends Component<any, any> {
); );
} }
renderTags = (deps: any, enableLoading: any) => private renderTags = (deps: any, enableLoading: any) =>
deps.map(dep => { deps.map(dep => {
const [name, version] = dep; const [name, version] = dep;
@ -71,26 +65,25 @@ class DependencyBlock extends Component<any, any> {
} }
class Dependencies extends Component<any, any> { class Dependencies extends Component<any, any> {
state = { public state = {
tabPosition: 0, tabPosition: 0,
}; };
render() { public render(): ReactElement<HTMLElement> {
return ( return (
<DetailContextConsumer> <DetailContextConsumer>
{packageMeta => { {packageMeta => {
return this.renderDependencies(packageMeta); return this.renderDependencies(packageMeta as VersionPageConsumerProps);
}} }}
</DetailContextConsumer> </DetailContextConsumer>
); );
} }
checkDependencyLength(dependency: Object = {}) { private checkDependencyLength(dependency: Record<string, any> = {}): boolean {
return Object.keys(dependency).length > 0; return Object.keys(dependency).length > 0;
} }
// $FlowFixMe private renderDependencies({ packageMeta }): ReactElement<HTMLElement> {
renderDependencies({ packageMeta }) {
const { latest } = packageMeta; const { latest } = packageMeta;
const { dependencies, devDependencies, peerDependencies, name } = latest; const { dependencies, devDependencies, peerDependencies, name } = latest;
@ -99,7 +92,8 @@ class Dependencies extends Component<any, any> {
const dependencyList = Object.keys(dependencyMap).reduce((result, value, key) => { const dependencyList = Object.keys(dependencyMap).reduce((result, value, key) => {
const selectedDepndency = dependencyMap[value]; const selectedDepndency = dependencyMap[value];
if (selectedDepndency && this.checkDependencyLength(selectedDepndency)) { if (selectedDepndency && this.checkDependencyLength(selectedDepndency)) {
result.push(<DependencyBlock className={'dependency-block'} dependencies={selectedDepndency} key={key} title={value} />); // @ts-ignore
result.push(<DependencyBlock className="dependency-block" dependencies={selectedDepndency} key={key} title={value} />);
} }
return result; return result;
}, []); }, []);
@ -107,7 +101,7 @@ class Dependencies extends Component<any, any> {
if (dependencyList.length) { if (dependencyList.length) {
return <Fragment>{dependencyList}</Fragment>; return <Fragment>{dependencyList}</Fragment>;
} }
return <NoItems className={'no-dependencies'} text={`${name} has no dependencies.`} />; return <NoItems className="no-dependencies" text={`${name} has no dependencies.`} />;
} }
} }

View File

@ -0,0 +1 @@
export { default } from './Dependencies';

View File

@ -1,12 +1,7 @@
/**
* @prettier
* @flow
*/
import styled from 'react-emotion'; import styled from 'react-emotion';
import Card from '@material-ui/core/Card/index'; import Card from '@material-ui/core/Card';
import Typography from '@material-ui/core/Typography/index'; import Typography from '@material-ui/core/Typography';
import Chip from '@material-ui/core/Chip/index'; import Chip from '@material-ui/core/Chip';
export const CardWrap = styled(Card)` export const CardWrap = styled(Card)`
&& { && {

View File

@ -0,0 +1,7 @@
import { ReactNode } from 'react';
export interface Props {
children: ReactNode;
open: boolean;
onClose: () => void;
}

View File

@ -0,0 +1,72 @@
import React, { Component, ReactElement, Fragment } from 'react';
import { DetailContextConsumer, VersionPageConsumerProps } from '../../pages/version/Version';
import Readme from '../Readme';
import Versions from '../Versions';
import { preventXSS } from '../../utils/sec-utils';
import Tabs from '@material-ui/core/Tabs';
import Tab from '@material-ui/core/Tab';
import { Content } from './styles';
import Dependencies from '../Dependencies';
import UpLinks from '../UpLinks';
interface DetailContainerState {
tabPosition: number;
}
class DetailContainer extends Component<any, DetailContainerState> {
public state = {
tabPosition: 0,
};
public render(): ReactElement<HTMLElement> {
return (
<DetailContextConsumer>
{context => {
return this.renderTabs(context as VersionPageConsumerProps);
}}
</DetailContextConsumer>
);
}
private handleChange = (event: any, tabPosition: number) => {
event.preventDefault();
this.setState({ tabPosition });
};
private renderListTabs(tabPosition: number): React.ReactElement<HTMLElement> {
return (
<Tabs indicatorColor={'primary'} onChange={this.handleChange} textColor={'primary'} value={tabPosition} variant={'fullWidth'}>
<Tab id={'readme-tab'} label={'Readme'} />
<Tab id={'dependencies-tab'} label={'Dependencies'} />
<Tab id={'versions-tab'} label={'Versions'} />
<Tab id={'uplinks-tab'} label={'Uplinks'} />
</Tabs>
);
}
private renderTabs = ({ readMe }) => {
const { tabPosition } = this.state;
return (
<Fragment>
<Content>
{this.renderListTabs(tabPosition)}
<br />
{tabPosition === 0 && this.renderReadme(readMe)}
{tabPosition === 1 && <Dependencies />}
{tabPosition === 2 && <Versions />}
{tabPosition === 3 && <UpLinks />}
</Content>
</Fragment>
);
};
private renderReadme = (readMe: string): ReactElement<HTMLElement> => {
const encodedReadme = preventXSS(readMe);
return <Readme description={encodedReadme} />;
};
}
export default DetailContainer;

Some files were not shown because too many files have changed in this diff Show More