Merge branch '4.x-master' into test/bdd-acceptance-testing-setup

This commit is contained in:
Juan Picado @jotadeveloper 2019-08-04 11:10:56 +02:00 committed by GitHub
commit cb876f936e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
409 changed files with 7735 additions and 60600 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
paths:
- ~/ui-theme
test_bundlesize:
<<: *defaults
<<: *default_executor
steps:
- *restore_repo
- run:
name: Test BundleSize
command: yarn test:size
test_node11:
<<: *defaults
@ -84,7 +92,7 @@ jobs:
- *restore_repo
- run:
name: Test with Node 11
command: yarn run test
command: yarn test
test_node8:
<<: *defaults
@ -156,12 +164,16 @@ workflows:
requires:
- prepare
<<: *ignore_non_dev_branches
- coverage:
- test_bundlesize:
requires:
- test_node11
- test_node8
- test_node10
<<: *ignore_non_dev_branches
- coverage:
requires:
- test_bundlesize
<<: *ignore_non_dev_branches
- publish_package:
requires:
- coverage

View File

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

View File

@ -1,50 +1,49 @@
{
"plugins": [
"babel",
"react",
"flowtype",
"jest",
"verdaccio",
"jsx-a11y"
],
"extends": [
"eslint:recommended",
"google",
"plugin:flowtype/recommended",
"@verdaccio",
"plugin:react/recommended",
"plugin:jest/recommended",
"plugin:prettier/recommended",
"plugin:react/recommended",
"plugin:verdaccio/recommended",
"plugin:jsx-a11y/recommended"
],
"plugins": [
"react",
"jest",
"prettier",
"verdaccio",
"jsx-a11y"
],
"settings": {
"react": {
"pragma": "React",
"version": "16.4.2",
"flowVersion": "0.81.0"
"version": "detect"
}
},
"parser": "babel-eslint",
"parserOptions": {
"sourceType": "module",
"ecmaVersion": 7,
"ecmaFeatures": {
"impliedStrict": true,
"jsx": true
}
},
"env": {
"browser": true,
"node": true,
"es6": true,
"jest": true
},
"globals": {
"__APP_VERSION__": true
},
"rules": {
"babel/no-invalid-this": 1,
"prettier/prettier": ["error", null, "@prettier"],
"babel/no-invalid-this": 0,
"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/jsx-no-target-blank": 1,
"react/destructuring-assignment": ["error", "always"],
@ -88,8 +87,9 @@
"react/jsx-no-duplicate-props": ["error"],
"react/jsx-no-literals": ["error"],
"react/jsx-no-undef": ["error"],
"react/prop-types": 0,
"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-props-no-multi-spaces": ["error"],
"react/jsx-sort-default-props": ["error"],
@ -106,23 +106,19 @@
2,
"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-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

1
.github/FUNDING.yml vendored Normal file
View File

@ -0,0 +1 @@
open_collective: verdaccio

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
# pushed

2
.gitignore vendored
View File

@ -16,4 +16,4 @@ __tests__
# Compiled script
static/*
coverage/
stats.json

View File

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

View File

@ -26,7 +26,7 @@
"no-descending-specificity": [true, { "severity": "warning" }],
"no-duplicate-at-import-rules": true,
"no-duplicate-selectors": true,
"no-empty-source": true,
"no-empty-source": null,
"no-extra-semicolons": true,
"no-invalid-double-slash-comments": 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

@ -2,6 +2,99 @@
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
<a name="0.2.2"></a>
## [0.2.2](https://github.com/verdaccio/ui/compare/v0.2.1...v0.2.2) (2019-07-29)
### Bug Fixes
* css repetition is not closed in Logo component ([ec243b1](https://github.com/verdaccio/ui/commit/ec243b1))
* localhost domain download tarball button ([cca2c3c](https://github.com/verdaccio/ui/commit/cca2c3c))
* proxy webpack setting ([5c484bb](https://github.com/verdaccio/ui/commit/5c484bb))
* token were not being send it ([fd74c52](https://github.com/verdaccio/ui/commit/fd74c52))
<a name="0.2.1"></a>
## [0.2.1](https://github.com/verdaccio/ui/compare/v0.2.0...v0.2.1) (2019-07-10)
### Bug Fixes
* [@typescript-eslint](https://github.com/typescript-eslint)/explicit-function-return-type ([31c11f2](https://github.com/verdaccio/ui/commit/31c11f2))
* [@typescript-eslint](https://github.com/typescript-eslint)/explicit-member-accessibility ([55f50e9](https://github.com/verdaccio/ui/commit/55f50e9))
* [@typescript-eslint](https://github.com/typescript-eslint)/no-explicit-any ([2f28ade](https://github.com/verdaccio/ui/commit/2f28ade))
* [@typescript-eslint](https://github.com/typescript-eslint)/no-explicit-any ([6eec4f4](https://github.com/verdaccio/ui/commit/6eec4f4))
* [@typescript-eslint](https://github.com/typescript-eslint)/no-explicit-any ([ec8ed12](https://github.com/verdaccio/ui/commit/ec8ed12))
* [@typescript-eslint](https://github.com/typescript-eslint)/no-explicit-any for file-size.ts ([b683b68](https://github.com/verdaccio/ui/commit/b683b68))
* add missing global font-family ([c57f9dd](https://github.com/verdaccio/ui/commit/c57f9dd))
* added packageMeta type ([3c54b11](https://github.com/verdaccio/ui/commit/3c54b11))
* container breakpoint ([60b7161](https://github.com/verdaccio/ui/commit/60b7161))
* incorrect logos styles ([fdad635](https://github.com/verdaccio/ui/commit/fdad635)), closes [#47](https://github.com/verdaccio/ui/issues/47)
* logo component styled ([210bcf3](https://github.com/verdaccio/ui/commit/210bcf3))
* remove any types and added additional component state interfaces ([116055c](https://github.com/verdaccio/ui/commit/116055c))
* remove token from AppState ([78b4c3f](https://github.com/verdaccio/ui/commit/78b4c3f))
* remove undefined error ([d1ed3e7](https://github.com/verdaccio/ui/commit/d1ed3e7))
* support deprecated license object properties ([b2e420d](https://github.com/verdaccio/ui/commit/b2e420d))
* type lint for login ([91e603e](https://github.com/verdaccio/ui/commit/91e603e))
* typescript warnings - prefer-rest-params ([e33570b](https://github.com/verdaccio/ui/commit/e33570b))
* update snapshot for verdaccio/jsx-no-style ([e7d145f](https://github.com/verdaccio/ui/commit/e7d145f))
* updated type to fix unit test ([7cab3f2](https://github.com/verdaccio/ui/commit/7cab3f2))
* verdaccio/jsx-no-style ([55b1402](https://github.com/verdaccio/ui/commit/55b1402))
<a name="0.2.0"></a>
# [0.2.0](https://github.com/verdaccio/ui/compare/v0.1.11...v0.2.0) (2019-06-20)
### Features
* migrating flow to typescript ([#47](https://github.com/verdaccio/ui/issues/47)) ([6b5d0b7](https://github.com/verdaccio/ui/commit/6b5d0b7))
<a name="0.1.11"></a>
## [0.1.11](https://github.com/verdaccio/ui/compare/v0.1.10...v0.1.11) (2019-06-10)
### Bug Fixes
* fixed failed to load all packages after login ([#73](https://github.com/verdaccio/ui/issues/73)) ([7bac088](https://github.com/verdaccio/ui/commit/7bac088))
<a name="0.1.10"></a>
## [0.1.10](https://github.com/verdaccio/ui/compare/v0.1.9...v0.1.10) (2019-05-17)
<a name="0.1.9"></a>
## [0.1.9](https://github.com/verdaccio/ui/compare/v0.1.8...v0.1.9) (2019-05-16)
<a name="0.1.8"></a>
## [0.1.8](https://github.com/verdaccio/ui/compare/v0.1.7...v0.1.8) (2019-05-16)
### Bug Fixes
* use auto for overflow-y ([#57](https://github.com/verdaccio/ui/issues/57)) ([01da082](https://github.com/verdaccio/ui/commit/01da082))
* verify validation url and email ([#60](https://github.com/verdaccio/ui/issues/60)) ([980dac5](https://github.com/verdaccio/ui/commit/980dac5))
<a name="0.1.7"></a>
## [0.1.7](https://github.com/verdaccio/ui/compare/v0.1.6...v0.1.7) (2019-05-11)
### Bug Fixes
* search suggestion container height ([#54](https://github.com/verdaccio/ui/issues/54)) ([c9fb3c4](https://github.com/verdaccio/ui/commit/c9fb3c4))
<a name="0.1.6"></a>
## [0.1.6](https://github.com/verdaccio/ui/compare/v0.1.5...v0.1.6) (2019-05-07)

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 (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)
[![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)
[![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)
[![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)
@ -21,9 +22,9 @@
## Contributing
We use `>=yarn@1.13.0`, keep on mind we use lock file.
We use `>=yarn@1.13.0`, keep on mind we use lock file.
For development run the following command, it will execute `webpack` and `verdaccio` to
For development run the following command, it will execute `webpack` and `verdaccio` to
```
yarn dev

View File

@ -1,11 +1,6 @@
/**
* @prettier
* @flow
*/
const path = require('path');
const APP_ROOT = path.resolve(__dirname, '../../');
const APP_ROOT = path.resolve(__dirname, '../');
module.exports = {
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 = {
name: 'verdaccio-unit-jest',
name: 'verdaccio-ui-jest',
verbose: true,
collectCoverage: true,
testEnvironment: 'jest-environment-jsdom-global',
moduleFileExtensions: ['js', 'ts', 'tsx'],
testURL: 'http://localhost',
testRegex: '(test/unit/.*\\.spec)\\.js',
setupFiles: [
'./test/unit/setup.js'
],
// 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>/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',
],
rootDir: '..',
setupFiles: ['<rootDir>/test/setup.js'],
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>/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}
*/
const register = (url, method = 'get', options = {}) => {
if (url === 'login' && method.toLocaleLowerCase() === 'post') {
return login(options);
}
@ -28,7 +27,7 @@ const register = (url, method = 'get', options = {}) => {
}
if (url === 'packages' && method.toLocaleLowerCase() === 'get') {
return new Promise(function (resolve) {
return new Promise(function(resolve) {
resolve(packageInformation);
});
}
@ -40,9 +39,9 @@ const register = (url, method = 'get', options = {}) => {
* Bind API methods
*/
class API {
request() {
return register.call(null, ...arguments);
public request(...rest) {
return register.call(null, ...rest);
}
}
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

@ -2,6 +2,6 @@
* Mock response for logo api
* @returns {promise}
*/
export default function() {
export default function<T>(): Promise<T> {
return Promise.resolve('http://localhost/-/static/logo.png');
}

View File

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

View File

@ -1,6 +1,6 @@
{
"name": "@verdaccio/ui-theme",
"version": "0.1.6",
"version": "0.2.2",
"description": "Verdaccio User Interface",
"author": {
"name": "Verdaccio Core Team"
@ -11,63 +11,63 @@
},
"main": "index.js",
"devDependencies": {
"@commitlint/cli": "7.5.2",
"@commitlint/config-conventional": "7.5.0",
"@material-ui/core": "3.9.0",
"@commitlint/cli": "8.0.0",
"@commitlint/config-conventional": "8.0.0",
"@material-ui/core": "3.9.3",
"@material-ui/icons": "3.0.2",
"@octokit/rest": "16.23.2",
"@verdaccio/babel-preset": "0.1.0",
"@verdaccio/types": "5.0.0-beta.4",
"@octokit/rest": "16.28.7",
"@types/enzyme": "3.10.3",
"@types/lodash": "4.14.134",
"@types/material-ui": "0.21.6",
"@types/node": "12.6.8",
"@types/react": "16.8.16",
"@types/react-dom": "16.8.4",
"@types/react-router-dom": "4.3.2",
"@types/validator": "10.11.1",
"@verdaccio/babel-preset": "2.0.0",
"@verdaccio/eslint-config": "2.0.0",
"@verdaccio/types": "7.0.0",
"autosuggest-highlight": "3.1.1",
"bundlesize": "0.17.1",
"bundlesize": "0.18.0",
"codeceptjs": "2.1.0",
"codecov": "3.2.0",
"codecov": "3.5.0",
"babel-loader": "8.0.6",
"concurrently": "4.1.0",
"cross-env": "5.2.0",
"css-loader": "0.28.10",
"date-fns": "1.30.1",
"emotion": "9.2.12",
"enzyme": "3.9.0",
"enzyme-adapter-react-16": "1.10.0",
"enzyme": "3.10.0",
"enzyme-adapter-react-16": "1.14.0",
"enzyme-to-json": "3.3.5",
"eslint": "5.14.1",
"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": "5.16.0",
"eslint-plugin-jsx-a11y": "6.2.1",
"eslint-plugin-prettier": "3.0.1",
"eslint-plugin-react": "7.11.1",
"eslint-plugin-verdaccio": "0.0.5",
"eslint-plugin-prettier": "3.1.0",
"eslint-plugin-react": "7.13.0",
"eslint-plugin-verdaccio": "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",
"get-stdin": "6.0.0",
"github-markdown-css": "2.10.0",
"html-webpack-plugin": "3.2.0",
"husky": "0.15.0-rc.8",
"husky": "2.4.1",
"identity-obj-proxy": "3.0.0",
"in-publish": "2.0.0",
"jest": "24.1.0",
"jest-emotion": "10.0.10",
"jest-environment-jsdom": "24.0.0",
"jest-environment-jsdom-global": "1.1.1",
"jest-environment-node": "24.0.0",
"jest": "24.8.0",
"jest-emotion": "10.0.11",
"jest-environment-jsdom": "24.8.0",
"jest-environment-jsdom-global": "1.2.0",
"jest-environment-node": "24.8.0",
"js-yaml": "3.13.1",
"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-sass": "4.11.0",
"normalize.css": "8.0.1",
"optimize-css-assets-webpack-plugin": "5.0.1",
"ora": "1.4.0",
"prettier": "1.14.3",
"ora": "3.4.0",
"prettier": "1.18.2",
"prop-types": "15.7.2",
"puppeteer": "1.15.0",
"puppeteer": "1.17.0",
"react": "16.8.3",
"react-autosuggest": "9.4.2",
"react-dom": "16.8.3",
@ -77,52 +77,82 @@
"react-router-dom": "4.3.1",
"resolve-url-loader": "3.0.1",
"rimraf": "2.6.3",
"sass-loader": "7.1.0",
"source-map-loader": "0.2.4",
"standard-version": "4.4.0",
"style-loader": "0.23.1",
"stylelint": "9.10.1",
"stylelint-config-recommended": "2.1.0",
"stylelint-config-recommended-scss": "3.2.0",
"stylelint": "10.1.0",
"stylelint-config-recommended": "2.2.0",
"stylelint-config-styled-components": "0.1.1",
"stylelint-processor-styled-components": "1.5.2",
"stylelint-scss": "3.5.4",
"stylelint-processor-styled-components": "1.8.0",
"stylelint-webpack-plugin": "0.10.5",
"supertest": "3.4.2",
"supertest": "4.0.2",
"typeface-roboto": "0.0.54",
"typescript": "3.5.3",
"url-loader": "1.1.2",
"verdaccio": "4.0.0-alpha.7",
"verdaccio-auth-memory": "0.0.4",
"validator": "10.11.0",
"verdaccio": "4.1.0",
"verdaccio-auth-memory": "1.1.5",
"verdaccio-memory": "2.0.0",
"webpack": "4.20.2",
"webpack-bundle-analyzer": "3.0.4",
"webpack-cli": "3.2.3",
"webpack-dev-server": "3.2.1",
"webpack-bundle-analyzer": "3.3.2",
"webpack-bundle-size-analyzer": "3.0.0",
"webpack-cli": "3.3.6",
"webpack-dev-server": "3.7.2",
"webpack-merge": "4.2.1",
"whatwg-fetch": "3.0.0",
"xss": "1.0.3"
"xss": "1.0.6"
},
"keywords": [
"verdaccio",
"verdaccio-plugin",
"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": {
"flow": "flow check",
"type-check": "tsc --noEmit",
"type-check:watch": "npm run type-check -- --watch",
"release": "standard-version -a -s",
"test:clean": "npx jest --clearCache",
"test:acceptance": "codeceptjs run --steps",
"test:acceptance:server": "concurrently --kill-others \"npm run verdaccio:server\" \"npm run test:acceptance\"",
"test": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --config ./jest.config.js --maxWorkers 2 --passWithNoTests",
"test": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --config ./jest/jest.config.js --maxWorkers 2 --passWithNoTests",
"test:size": "bundlesize",
"lint": "npm run flow && npm run lint:js && npm run lint:css",
"lint:js": "eslint .",
"lint": "npm run lint:js && npm run lint:css",
"lint:js": "npm run type-check && eslint . --ext .js,.ts,.tsx",
"lint:css": "stylelint 'src/**/styles.ts'",
"coverage:publish": "codecov",
"lint:css": "stylelint 'src/webui/**/styles.js'",
"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",
"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:stats": "cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js --json > stats.json",
"build:size": "cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js --json | webpack-bundle-size-analyzer",
"dev": "concurrently --kill-others \"npm run dev:web\" \"npm run verdaccio:server\""
},
"engines": {
@ -131,7 +161,7 @@
},
"husky": {
"hooks": {
"pre-commit": "commitlint -e $GIT_PARAMS"
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
},
"license": "MIT",

View File

@ -1,26 +1,27 @@
"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 = 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()
.then(changelog => octokit.repos.createRelease({
owner: repoOwner,
repo: repoName,
tag_name: tag,
body: changelog,
draft: true,
}))
.catch(err => {
// eslint-disable-next-line no-console
console.error(err);
process.exit(1);
});
.then(changelog =>
octokit.repos.createRelease({
owner: repoOwner,
repo: repoName,
tag_name: tag,
body: changelog,
draft: true,
})
)
.catch(err => {
// eslint-disable-next-line no-console
console.error(err);
process.exit(1);
});

View File

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

View File

@ -1,33 +1,43 @@
/**
* @prettier
*/
import React, { Component, Fragment } from 'react';
import React, { Component, ReactElement } from 'react';
import isNil from 'lodash/isNil';
import storage from './utils/storage';
import { makeLogin, isTokenExpire } from './utils/login';
import storage from '../utils/storage';
import { makeLogin, isTokenExpire } from '../utils/login';
import Loading from './components/Loading';
import LoginModal from './components/Login';
import Header from './components/Header';
import { Container, Content } from './components/Layout';
import RouterApp from './router';
import API from './utils/api';
import './styles/typeface-roboto.scss';
import './styles/main.scss';
import Loading from '../components/Loading';
import LoginModal from '../components/Login';
import Header from '../components/Header';
import { Container, Content } from '../components/Layout';
import RouterApp from '../router';
import API from '../utils/api';
import '../styles/typeface-roboto.css';
import '../utils/styles/global';
import 'normalize.css';
import Footer from './components/Footer';
import Footer from '../components/Footer';
import { FormError } from 'src/components/Login/Login';
export const AppContext = React.createContext();
export const AppContext = React.createContext<{}>({});
export const AppContextProvider = AppContext.Provider;
export const AppContextConsumer = AppContext.Consumer;
export default class App extends Component {
state = {
error: {},
export interface AppStateInterface {
error?: FormError;
logoUrl: string;
user: {
username?: string;
};
scope: string;
showLoginModal: boolean;
isUserLoggedIn: boolean;
packages: [];
isLoading: boolean;
}
export default class App extends Component<{}, AppStateInterface> {
public state: AppStateInterface = {
// @ts-ignore
logoUrl: window.VERDACCIO_LOGO,
user: {},
// @ts-ignore
scope: window.VERDACCIO_SCOPE ? `${window.VERDACCIO_SCOPE}:` : '',
showLoginModal: false,
isUserLoggedIn: false,
@ -35,37 +45,34 @@ export default class App extends Component {
isLoading: true,
};
componentDidMount() {
public componentDidMount(): void {
this.isUserAlreadyLoggedIn();
this.loadOnHandler();
}
// eslint-disable-next-line no-unused-vars
componentDidUpdate(_, prevState) {
public componentDidUpdate(_, prevState): void {
const { isUserLoggedIn } = this.state;
if (prevState.isUserLoggedIn !== isUserLoggedIn) {
this.loadOnHandler();
}
}
render() {
public render(): React.ReactElement<HTMLDivElement> {
const { isLoading, isUserLoggedIn, packages, logoUrl, user, scope } = this.state;
const context = { isUserLoggedIn, packages, logoUrl, user, scope };
return (
// @ts-ignore
<Container isLoading={isLoading}>
{isLoading ? (
<Loading />
) : (
<Fragment>
<AppContextProvider value={{ isUserLoggedIn, packages, logoUrl, user, scope }}>{this.renderContent()}</AppContextProvider>
</Fragment>
)}
{isLoading ? <Loading /> : <AppContextProvider value={context}>{this.renderContent()}</AppContextProvider>}
{this.renderLoginModal()}
</Container>
);
}
isUserAlreadyLoggedIn = () => {
public isUserAlreadyLoggedIn = () => {
// checks for token validity
const token = storage.getItem('token');
const username = storage.getItem('username');
@ -73,16 +80,18 @@ export default class App extends Component {
this.handleLogout();
} else {
this.setState({
user: { username, token },
user: { username },
isUserLoggedIn: true,
});
}
};
loadOnHandler = async () => {
public loadOnHandler = async () => {
try {
// @ts-ignore
this.req = await API.request('packages', 'GET');
this.setState({
// @ts-ignore
packages: this.req,
isLoading: false,
});
@ -96,7 +105,7 @@ export default class App extends Component {
}
};
setLoading = isLoading =>
public setLoading = isLoading =>
this.setState({
isLoading,
});
@ -105,10 +114,10 @@ export default class App extends Component {
* Toggles the login modal
* Required by: <LoginModal /> <Header />
*/
handleToggleLoginModal = () => {
public handleToggleLoginModal = () => {
this.setState(prevState => ({
// @ts-ignore
showLoginModal: !prevState.showLoginModal,
error: {},
}));
};
@ -116,13 +125,14 @@ export default class App extends Component {
* handles login
* Required by: <Header />
*/
handleDoLogin = async (usernameValue, passwordValue) => {
public handleDoLogin = async (usernameValue, passwordValue) => {
// @ts-ignore
const { username, token, error } = await makeLogin(usernameValue, passwordValue);
if (username && token) {
this.setLoggedUser(username, token);
storage.setItem('username', username);
storage.setItem('token', token);
this.setLoggedUser(username);
}
if (error) {
@ -133,11 +143,10 @@ export default class App extends Component {
}
};
setLoggedUser = (username, token) => {
public setLoggedUser = username => {
this.setState({
user: {
username,
token,
},
isUserLoggedIn: true, // close login modal after successful login
showLoginModal: false, // set isUserLoggedIn to true
@ -148,7 +157,7 @@ export default class App extends Component {
* Logouts user
* Required by: <Header />
*/
handleLogout = () => {
public handleLogout = () => {
storage.removeItem('username');
storage.removeItem('token');
this.setState({
@ -157,34 +166,31 @@ export default class App extends Component {
});
};
renderLoginModal = () => {
public renderLoginModal = (): ReactElement<HTMLElement> => {
const { error, showLoginModal } = this.state;
return (
<LoginModal
error={error}
onCancel={this.handleToggleLoginModal}
onChange={this.handleSetUsernameAndPassword}
onSubmit={this.handleDoLogin}
visibility={showLoginModal}
/>
);
return <LoginModal error={error} onCancel={this.handleToggleLoginModal} onSubmit={this.handleDoLogin} visibility={showLoginModal} />;
};
renderContent = () => {
public renderContent = (): ReactElement<HTMLElement> => {
return (
<Fragment>
<>
<Content>
<RouterApp onLogout={this.handleLogout} onToggleLoginModal={this.handleToggleLoginModal}>
{this.renderHeader()}
</RouterApp>
</Content>
<Footer />
</Fragment>
</>
);
};
renderHeader = () => {
const { logoUrl, user: { username } = {}, scope } = this.state;
public renderHeader = (): ReactElement<HTMLElement> => {
const {
logoUrl,
// @ts-ignore
user: { username },
scope,
} = this.state;
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';

17
src/App/styles.ts Normal file
View File

@ -0,0 +1,17 @@
import { css } from 'emotion';
import colors from '../utils/styles/colors';
export const alertError = css({
backgroundColor: `${colors.red} !important`,
minWidth: 'inherit !important',
});
export const alertErrorMsg = css({
display: 'flex',
alignItems: 'center',
});
export const alertIcon = css({
opacity: 0.9,
marginRight: '8px',
});

5
src/components/.eslintrc Normal file
View File

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

View File

@ -0,0 +1,73 @@
import React from 'react';
import { mount, shallow } from 'enzyme';
describe('<ActionBar /> component', () => {
beforeEach(() => {
jest.resetModules();
});
test('should render the component in default state', () => {
const packageMeta = {
latest: {
homepage: 'https://verdaccio.tld',
bugs: {
url: 'https://verdaccio.tld/bugs',
},
dist: {
tarball: 'https://verdaccio.tld/download',
},
},
};
jest.doMock('../../pages/version/Version', () => ({
DetailContextConsumer: component => {
return component.children({ packageMeta });
},
}));
const ActionBar = require('./ActionBar').default;
const wrapper = shallow(<ActionBar />);
expect(wrapper.html()).toMatchSnapshot();
});
test('when there is no action bar data', () => {
const packageMeta = {
latest: {},
};
jest.doMock('../../pages/version/Version', () => ({
DetailContextConsumer: component => {
return component.children({ packageMeta });
},
}));
const ActionBar = require('./ActionBar').default;
const wrapper = shallow(<ActionBar />);
// FIXME: this only renders the DetailContextConsumer, thus
// the wrapper will be always empty
expect(wrapper.html()).toEqual('');
});
test('when there is a button to download a tarball', () => {
const packageMeta = {
latest: {
dist: {
tarball: 'http://localhost:8080/bootstrap/-/bootstrap-4.3.1.tgz',
},
},
};
jest.doMock('../../pages/version/Version', () => ({
DetailContextConsumer: component => {
return component.children({ packageMeta });
},
}));
const ActionBar = require('./ActionBar').default;
const wrapper = mount(<ActionBar />);
expect(wrapper.html()).toMatchSnapshot();
const button = wrapper.find('button');
expect(button).toHaveLength(1);
});
});

View File

@ -0,0 +1,120 @@
import React, { Component, ReactElement } from 'react';
import BugReportIcon from '@material-ui/icons/BugReport';
import DownloadIcon from '@material-ui/icons/CloudDownload';
import HomeIcon from '@material-ui/icons/Home';
import List from '@material-ui/core/List';
import Tooltip from '@material-ui/core/Tooltip';
import { DetailContextConsumer, VersionPageConsumerProps } from '../../pages/version/Version';
import { Fab, ActionListItem } from './styles';
import { isURL, extractFileName, downloadFile } from '../../utils/url';
import api from '../../utils/api';
export interface Action {
icon: string;
title: string;
handler?: Function;
}
export async function downloadHandler(link: string): Promise<void> {
const fileStream: Blob = await api.request(link, 'GET', {
headers: {
['accept']: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
},
credentials: 'include',
});
const fileName = extractFileName(link);
downloadFile(fileStream, fileName);
}
const ACTIONS = {
homepage: {
icon: <HomeIcon />,
title: 'Visit homepage',
},
issue: {
icon: <BugReportIcon />,
title: 'Open an issue',
},
tarball: {
icon: <DownloadIcon />,
title: 'Download tarball',
handler: downloadHandler,
},
};
class ActionBar extends Component {
public render(): ReactElement<HTMLElement> {
return (
<DetailContextConsumer>
{context => {
return this.renderActionBar(context as VersionPageConsumerProps);
}}
</DetailContextConsumer>
);
}
private renderIconsWithLink(link: string, component: JSX.Element): ReactElement<HTMLElement> {
return (
<a href={link} target={'_blank'}>
{component}
</a>
);
}
private renderActionBar = ({ packageMeta }) => {
// @ts-ignore
const { latest: { bugs: { url: issue } = {}, homepage, dist: { tarball } = {} } = {} } = packageMeta;
const actionsMap = {
homepage,
issue,
tarball,
};
const renderList = Object.keys(actionsMap).reduce((component: React.ReactElement[], value, key) => {
const link = actionsMap[value];
if (link && isURL(link)) {
const actionItem: Action = ACTIONS[value];
if (actionItem.handler) {
const fab = (
<Tooltip key={key} title={actionItem['title']}>
<Fab
/* eslint-disable react/jsx-no-bind */
onClick={() => {
/* eslint-disable @typescript-eslint/no-non-null-assertion */
actionItem.handler!(link);
}}
size={'small'}>
{actionItem['icon']}
</Fab>
</Tooltip>
);
component.push(fab);
} else {
const fab = <Fab size={'small'}>{actionItem['icon']}</Fab>;
component.push(
// @ts-ignore
<Tooltip key={key} title={actionItem['title']}>
<>{this.renderIconsWithLink(link, fab)}</>
</Tooltip>
);
}
}
return component;
}, []);
if (renderList.length > 0) {
return (
<List>
<ActionListItem alignItems={'flex-start'}>{renderList}</ActionListItem>
</List>
);
}
return null;
};
}
export default ActionBar;

View File

@ -0,0 +1,5 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`<ActionBar /> component should render the component in default state 1`] = `"<ul class=\\"MuiList-root-1 MuiList-padding-2\\"><li class=\\"MuiListItem-root-5 MuiListItem-default-8 MuiListItem-gutters-13 MuiListItem-alignItemsFlexStart-10 css-9q3x3c eux6shq0\\"><a href=\\"https://verdaccio.tld\\" target=\\"_blank\\"><button class=\\"MuiButtonBase-root-35 MuiFab-root-25 MuiFab-sizeSmall-33 css-96oxa0 eux6shq1\\" tabindex=\\"0\\" type=\\"button\\"><span class=\\"MuiFab-label-26\\"><svg class=\\"MuiSvgIcon-root-38\\" focusable=\\"false\\" viewBox=\\"0 0 24 24\\" aria-hidden=\\"true\\" role=\\"presentation\\"><path d=\\"M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z\\"></path><path fill=\\"none\\" d=\\"M0 0h24v24H0z\\"></path></svg></span></button></a><a href=\\"https://verdaccio.tld/bugs\\" target=\\"_blank\\"><button class=\\"MuiButtonBase-root-35 MuiFab-root-25 MuiFab-sizeSmall-33 css-96oxa0 eux6shq1\\" tabindex=\\"0\\" type=\\"button\\"><span class=\\"MuiFab-label-26\\"><svg class=\\"MuiSvgIcon-root-38\\" focusable=\\"false\\" viewBox=\\"0 0 24 24\\" aria-hidden=\\"true\\" role=\\"presentation\\"><path fill=\\"none\\" d=\\"M0 0h24v24H0z\\"></path><path d=\\"M20 8h-2.81c-.45-.78-1.07-1.45-1.82-1.96L17 4.41 15.59 3l-2.17 2.17C12.96 5.06 12.49 5 12 5c-.49 0-.96.06-1.41.17L8.41 3 7 4.41l1.62 1.63C7.88 6.55 7.26 7.22 6.81 8H4v2h2.09c-.05.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.04-.67-.09-1H20V8zm-6 8h-4v-2h4v2zm0-4h-4v-2h4v2z\\"></path></svg></span></button></a><button class=\\"MuiButtonBase-root-35 MuiFab-root-25 MuiFab-sizeSmall-33 css-96oxa0 eux6shq1\\" tabindex=\\"0\\" type=\\"button\\" title=\\"Download tarball\\"><span class=\\"MuiFab-label-26\\"><svg class=\\"MuiSvgIcon-root-38\\" focusable=\\"false\\" viewBox=\\"0 0 24 24\\" aria-hidden=\\"true\\" role=\\"presentation\\"><path fill=\\"none\\" d=\\"M0 0h24v24H0z\\"></path><path d=\\"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM17 13l-5 5-5-5h3V9h4v4h3z\\"></path></svg></span></button></li></ul>"`;
exports[`<ActionBar /> component when there is a button to download a tarball 1`] = `"<ul class=\\"MuiList-root-47 MuiList-padding-48\\"><li class=\\"MuiListItem-root-51 MuiListItem-default-54 MuiListItem-gutters-59 MuiListItem-alignItemsFlexStart-56 css-9q3x3c eux6shq0\\"><button class=\\"MuiButtonBase-root-81 MuiFab-root-71 MuiFab-sizeSmall-79 css-96oxa0 eux6shq1\\" tabindex=\\"0\\" type=\\"button\\" title=\\"Download tarball\\"><span class=\\"MuiFab-label-72\\"><svg class=\\"MuiSvgIcon-root-84\\" focusable=\\"false\\" viewBox=\\"0 0 24 24\\" aria-hidden=\\"true\\" role=\\"presentation\\"><path fill=\\"none\\" d=\\"M0 0h24v24H0z\\"></path><path d=\\"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM17 13l-5 5-5-5h3V9h4v4h3z\\"></path></svg></span><span class=\\"MuiTouchRipple-root-93\\"></span></button></li></ul>"`;

View File

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

View File

@ -0,0 +1,21 @@
import styled from 'react-emotion';
import { default as MuiFab } from '@material-ui/core/Fab';
import ListItem from '@material-ui/core/ListItem';
import colors from '../../utils/styles/colors';
export const ActionListItem = styled(ListItem)({
'&&': {
paddingTop: 0,
paddingLeft: 0,
paddingRight: 0,
},
});
export const Fab = styled(MuiFab)({
'&&': {
backgroundColor: colors.primary,
color: colors.white,
marginRight: '10px',
},
});

View File

@ -0,0 +1,76 @@
import React from 'react';
import { shallow } from 'enzyme';
describe('<Author /> component', () => {
beforeEach(() => {
jest.resetModules();
});
test('should render the component in default state', () => {
const packageMeta = {
latest: {
name: 'verdaccio',
version: '4.0.0',
author: {
name: 'verdaccio user',
email: 'verdaccio.user@verdaccio.org',
url: '',
avatar: 'https://www.gravatar.com/avatar/000000',
},
},
};
jest.doMock('../../pages/version/Version', () => ({
DetailContextConsumer: component => {
return component.children({ packageMeta });
},
}));
const Author = require('./Author').default;
const wrapper = shallow(<Author />);
expect(wrapper.html()).toMatchSnapshot();
});
test('should render the component when there is no author information available', () => {
const packageMeta = {
latest: {
name: 'verdaccio',
version: '4.0.0',
},
};
jest.doMock('../../pages/version/Version', () => ({
DetailContextConsumer: component => {
return component.children({ packageMeta });
},
}));
const Author = require('./Author').default;
const wrapper = shallow(<Author />);
expect(wrapper.html()).toEqual('');
});
test('should render the component when there is no author email', () => {
const packageMeta = {
latest: {
name: 'verdaccio',
version: '4.0.0',
author: {
name: 'verdaccio user',
url: '',
avatar: 'https://www.gravatar.com/avatar/000000',
},
},
};
jest.doMock('../../pages/version/Version', () => ({
DetailContextConsumer: component => {
return component.children({ packageMeta });
},
}));
const Author = require('./Author').default;
const wrapper = shallow(<Author />);
expect(wrapper.html()).toMatchSnapshot();
});
});

View File

@ -1,31 +1,29 @@
/**
* @prettier
*/
import React, { Component, ReactNode, ReactElement } from 'react';
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 List from '@material-ui/core/List/index';
import ListItemText from '@material-ui/core/ListItemText/index';
import { DetailContextConsumer } from '../../pages/version/index';
import { DetailContextConsumer } from '../../pages/version/Version';
import { Heading, AuthorListItem } from './styles';
import { isEmail } from '../../utils/url';
class Authors extends Component<any, any> {
render() {
class Authors extends Component {
public render(): ReactElement<HTMLElement> {
return (
<DetailContextConsumer>
{context => {
return this.renderAuthor(context);
return context && context.packageMeta && this.renderAuthor(context.packageMeta);
}}
</DetailContextConsumer>
);
}
renderLinkForMail(email, avatarComponent, packageName, version) {
if (!email) {
public renderLinkForMail(email: string, avatarComponent: ReactNode, packageName: string, version: string): ReactElement<HTMLElement> | ReactNode {
if (!email || isEmail(email) === false) {
return avatarComponent;
}
return (
<a href={`mailto:${email}?subject=${packageName}@${version}`} target={'_top'}>
{avatarComponent}
@ -33,7 +31,7 @@ class Authors extends Component<any, any> {
);
}
renderAuthor = ({ packageMeta }) => {
public renderAuthor = packageMeta => {
const { author, name: packageName, version } = packageMeta.latest;
if (!author) {

View File

@ -0,0 +1,5 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`<Author /> component should render the component in default state 1`] = `"<ul class=\\"MuiList-root-1 MuiList-padding-2 MuiList-subheader-4\\"><h3 class=\\"MuiTypography-root-5 MuiTypography-subheading-12 css-hyrz44 e1xuehjw0\\">Author</h3><li class=\\"MuiListItem-root-41 MuiListItem-default-44 MuiListItem-gutters-49 css-z8a2h0 e1xuehjw1\\"><a href=\\"mailto:verdaccio.user@verdaccio.org?subject=verdaccio@4.0.0\\" target=\\"_top\\"><div class=\\"MuiAvatar-root-53\\"><img alt=\\"verdaccio user\\" src=\\"https://www.gravatar.com/avatar/000000\\" class=\\"MuiAvatar-img-55\\"/></div></a><div class=\\"MuiListItemText-root-56\\"><span class=\\"MuiTypography-root-5 MuiTypography-subheading-12 MuiListItemText-primary-59\\">verdaccio user</span></div></li></ul>"`;
exports[`<Author /> component should render the component when there is no author email 1`] = `"<ul class=\\"MuiList-root-62 MuiList-padding-63 MuiList-subheader-65\\"><h3 class=\\"MuiTypography-root-66 MuiTypography-subheading-73 css-hyrz44 e1xuehjw0\\">Author</h3><li class=\\"MuiListItem-root-102 MuiListItem-default-105 MuiListItem-gutters-110 css-z8a2h0 e1xuehjw1\\"><div class=\\"MuiAvatar-root-114\\"><img alt=\\"verdaccio user\\" src=\\"https://www.gravatar.com/avatar/000000\\" class=\\"MuiAvatar-img-116\\"/></div><div class=\\"MuiListItemText-root-117\\"><span class=\\"MuiTypography-root-66 MuiTypography-subheading-73 MuiListItemText-primary-120\\">verdaccio user</span></div></li></ul>"`;

View File

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

View File

@ -0,0 +1,16 @@
import styled from 'react-emotion';
import ListItem from '@material-ui/core/ListItem';
import Typography from '@material-ui/core/Typography';
export const Heading = styled(Typography)({
'&&': {
fontWeight: 700,
textTransform: 'capitalize',
},
});
export const AuthorListItem = styled(ListItem)({
'&&': {
paddingLeft: 0,
paddingRight: 0,
},
});

View File

@ -1,21 +1,33 @@
/**
* @prettier
* @flow
*/
import React from 'react';
import type { Node } from 'react';
import React, { KeyboardEvent } from 'react';
import { css } from 'emotion';
import Autosuggest from 'react-autosuggest';
import match from 'autosuggest-highlight/match';
import parse from 'autosuggest-highlight/parse';
import Paper from '@material-ui/core/Paper';
import MenuItem from '@material-ui/core/MenuItem';
import { fontWeight } from '../../utils/styles/sizes';
import { Wrapper, InputField } from './styles';
import { IProps } from './types';
import { Wrapper, InputField, SuggestionContainer } from './styles';
const renderInputComponent = (inputProps): Node => {
interface Props {
suggestions: unknown[];
suggestionsLoading?: boolean;
suggestionsLoaded?: boolean;
suggestionsError?: boolean;
apiLoading?: boolean;
color?: string;
value?: string;
placeholder?: string;
startAdornment?: JSX.Element;
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: string[]; method: string }) => void;
onKeyDown?: (event: KeyboardEvent<HTMLInputElement>) => void;
onBlur?: (event: KeyboardEvent<HTMLInputElement>) => void;
}
const renderInputComponent = (inputProps): JSX.Element => {
const { ref, startAdornment, disableUnderline, onKeyDown, ...others } = inputProps;
return (
<InputField
@ -35,21 +47,23 @@ const renderInputComponent = (inputProps): Node => {
const getSuggestionValue = (suggestion): string => suggestion.name;
const renderSuggestion = (suggestion, { query, isHighlighted }): Node => {
const renderSuggestion = (suggestion, { query, isHighlighted }): JSX.Element => {
const matches = match(suggestion.name, query);
const parts = parse(suggestion.name, matches);
return (
<MenuItem component={'div'} selected={isHighlighted}>
<MenuItem component="div" selected={isHighlighted}>
<div>
{parts.map((part, index) => {
return part.highlight ? (
<span href={suggestion.link} key={String(index)} style={{ fontWeight: fontWeight.semiBold }}>
const fw = part.highlight ? fontWeight.semiBold : fontWeight.light;
return (
<a
className={css`
font-weight: ${fw};
`}
href={suggestion.link}
key={String(index)}>
{part.text}
</span>
) : (
<span href={suggestion.link} key={String(index)} style={{ fontWeight: fontWeight.light }}>
{part.text}
</span>
</a>
);
})}
</div>
@ -57,9 +71,9 @@ const renderSuggestion = (suggestion, { query, isHighlighted }): Node => {
);
};
const renderMessage = (message): Node => {
const renderMessage = (message): JSX.Element => {
return (
<MenuItem component={'div'} selected={false}>
<MenuItem component="div" selected={false}>
<div>{message}</div>
</MenuItem>
);
@ -87,7 +101,7 @@ const AutoComplete = ({
suggestionsLoading = false,
suggestionsLoaded = false,
suggestionsError = false,
}: IProps): Node => {
}: Props): JSX.Element => {
const autosuggestProps = {
renderInputComponent,
suggestions,
@ -108,14 +122,14 @@ const AutoComplete = ({
};
// this format avoid arrow function eslint rule
function renderSuggestionsContainer({ containerProps, children, query }) {
function renderSuggestionsContainer({ containerProps, children, query }): JSX.Element {
return (
<Paper {...containerProps} square={true}>
<SuggestionContainer {...containerProps} square={true}>
{suggestionsLoaded && children === null && query && renderMessage(SUGGESTIONS_RESPONSE.NO_RESULT)}
{suggestionsLoading && query && renderMessage(SUGGESTIONS_RESPONSE.LOADING)}
{suggestionsError && renderMessage(SUGGESTIONS_RESPONSE.FAILURE)}
{children}
</Paper>
</SuggestionContainer>
);
}

View File

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

View File

@ -1,27 +1,27 @@
/**
* @prettier
* @flow
*/
import React from 'react';
import styled, { css } from 'react-emotion';
import Paper from '@material-ui/core/Paper';
import TextField from '../TextField';
import { IInputField } from './types';
export const Wrapper = styled.div`
&& {
width: 100%;
height: 32px;
position: relative;
z-index: 1;
}
`;
export interface InputFieldProps {
color: string;
}
export const InputField = ({ color, ...others }: IInputField) => (
export const Wrapper = styled('div')({
'&&': {
width: '100%',
height: '32px',
position: 'relative',
zIndex: 1,
},
});
export const InputField: React.FC<InputFieldProps> = ({ color, ...others }) => (
<TextField
{...others}
classes={{
// @ts-ignore
input: css`
&& {
${color &&
@ -50,3 +50,10 @@ export const InputField = ({ color, ...others }: IInputField) => (
}}
/>
);
export const SuggestionContainer = styled(Paper)({
'&&': {
maxHeight: '500px',
overflowY: 'auto',
},
});

View File

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

@ -0,0 +1,26 @@
import IconButton from '@material-ui/core/IconButton';
import styled from 'react-emotion';
export const ClipBoardCopy = styled('div')({
'&&': {
display: 'flex',
alignItems: 'center',
justifyContent: 'space-between',
},
});
export const ClipBoardCopyText = styled('span')({
'&&': {
display: 'inline-block',
textOverflow: 'ellipsis',
overflow: 'hidden',
whiteSpace: 'nowrap',
height: '21px',
},
});
export const CopyIcon = styled(IconButton)({
'&&': {
margin: '0 0 0 10px',
},
});

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