├── .gitignore ├── .flowconfig ├── flow-typed └── npm │ ├── flow-bin_v0.x.x.js │ ├── flow-typed_vx.x.x.js │ └── ramda_v0.x.x.js ├── index.js ├── package.json ├── README.md └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | build -------------------------------------------------------------------------------- /.flowconfig: -------------------------------------------------------------------------------- 1 | [ignore] 2 | 3 | [include] 4 | 5 | [libs] 6 | 7 | [lints] 8 | all=error 9 | 10 | [options] 11 | 12 | [strict] 13 | 14 | [version] 15 | 0.64.0 -------------------------------------------------------------------------------- /flow-typed/npm/flow-bin_v0.x.x.js: -------------------------------------------------------------------------------- 1 | // flow-typed signature: 6a5610678d4b01e13bbfbbc62bdaf583 2 | // flow-typed version: 3817bc6980/flow-bin_v0.x.x/flow_>=v0.25.x 3 | 4 | declare module "flow-bin" { 5 | declare module.exports: string; 6 | } 7 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | // @flow 2 | 3 | const t = require("io-ts"); 4 | 5 | const PersonInterface = t.type({ 6 | name: t.string, 7 | age: t.number 8 | }); 9 | 10 | type Person = t.TypeOf; 11 | 12 | const testPerson = (x: Person) => x; 13 | 14 | t 15 | .validate(JSON.parse('{"name":"Giulio","age":43}'), PersonInterface) 16 | .map(x => console.log(testPerson(x))); // => Right({name: "Giulio", age: 43}) 17 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "flow-fp-test", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "license": "MIT", 6 | "dependencies": { 7 | "flow-bin": "^0.64.0", 8 | "flow-remove-types": "^1.2.3", 9 | "flow-typed": "^2.3.0", 10 | "io-ts": "^0.9.7", 11 | "ramda": "^0.25.0" 12 | }, 13 | "scripts": { 14 | "build": "node node_modules/.bin/flow-remove-types index.js > build/index.js", 15 | "test": "node build/index.js" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Flow and FP experiments 2 | 3 | Now it works! 4 | 5 | ### Errors before 6 | 7 | Without ignore `.*/node_modules` 8 | 9 | ``` 10 | yarn flow 11 | Error: index.js:5 12 | 5: const Person = t.interface({ 13 | ^^^^^^^^^ property `interface`. Property not found in 14 | 5: const Person = t.interface({ 15 | ^ module `io-ts` 16 | 17 | 18 | Found 1 error 19 | ``` 20 | 21 | With ignore `.*/node_modules` 22 | 23 | ``` 24 | yarn flow 25 | Error: index.js:3 26 | 3: const t = require("io-ts"); 27 | ^^^^^^^ io-ts. Required module not found 28 | 29 | Error: other/PathReporter.js:3 30 | 3: import type { ValidationError } from './index' 31 | ^^^^^^^^^^^^^^^ Named import from module `./index`. This module only has a default export. Did you mean `import ValidationError from ...`? 32 | 33 | Error: other/Reporter.js:2 34 | 2: import type { Validation } from './index' 35 | ^^^^^^^^^^ Named import from module `./index`. This module only has a default export. Did you mean `import Validation from ...`? 36 | 37 | Error: other/index.js:2 38 | 2: import type { Either } from 'fp-ts/lib/Either' 39 | ^^^^^^^^^^^^^^^^^^ fp-ts/lib/Either. Required module not found 40 | 41 | Error: other/index.js:3 42 | 3: import type { Predicate } from 'fp-ts/lib/function' 43 | ^^^^^^^^^^^^^^^^^^^^ fp-ts/lib/function. Required module not found 44 | 45 | 46 | Found 5 errors 47 | ``` -------------------------------------------------------------------------------- /flow-typed/npm/flow-typed_vx.x.x.js: -------------------------------------------------------------------------------- 1 | // flow-typed signature: 5e8060714f8b4bce04d53073b5938580 2 | // flow-typed version: <>/flow-typed_v^2.3.0/flow_v0.64.0 3 | 4 | /** 5 | * This is an autogenerated libdef stub for: 6 | * 7 | * 'flow-typed' 8 | * 9 | * Fill this stub out by replacing all the `any` types. 10 | * 11 | * Once filled out, we encourage you to share your work with the 12 | * community by sending a pull request to: 13 | * https://github.com/flowtype/flow-typed 14 | */ 15 | 16 | declare module 'flow-typed' { 17 | declare module.exports: any; 18 | } 19 | 20 | /** 21 | * We include stubs for each file inside this npm package in case you need to 22 | * require those files directly. Feel free to delete any files that aren't 23 | * needed. 24 | */ 25 | declare module 'flow-typed/dist/cli' { 26 | declare module.exports: any; 27 | } 28 | 29 | declare module 'flow-typed/dist/commands/create-stub' { 30 | declare module.exports: any; 31 | } 32 | 33 | declare module 'flow-typed/dist/commands/install' { 34 | declare module.exports: any; 35 | } 36 | 37 | declare module 'flow-typed/dist/commands/runTests' { 38 | declare module.exports: any; 39 | } 40 | 41 | declare module 'flow-typed/dist/commands/search' { 42 | declare module.exports: any; 43 | } 44 | 45 | declare module 'flow-typed/dist/commands/update-cache' { 46 | declare module.exports: any; 47 | } 48 | 49 | declare module 'flow-typed/dist/commands/update' { 50 | declare module.exports: any; 51 | } 52 | 53 | declare module 'flow-typed/dist/commands/validateDefs' { 54 | declare module.exports: any; 55 | } 56 | 57 | declare module 'flow-typed/dist/commands/version' { 58 | declare module.exports: any; 59 | } 60 | 61 | declare module 'flow-typed/dist/lib/cacheRepoUtils' { 62 | declare module.exports: any; 63 | } 64 | 65 | declare module 'flow-typed/dist/lib/codeSign' { 66 | declare module.exports: any; 67 | } 68 | 69 | declare module 'flow-typed/dist/lib/fileUtils' { 70 | declare module.exports: any; 71 | } 72 | 73 | declare module 'flow-typed/dist/lib/flowProjectUtils' { 74 | declare module.exports: any; 75 | } 76 | 77 | declare module 'flow-typed/dist/lib/flowVersion' { 78 | declare module.exports: any; 79 | } 80 | 81 | declare module 'flow-typed/dist/lib/git' { 82 | declare module.exports: any; 83 | } 84 | 85 | declare module 'flow-typed/dist/lib/github' { 86 | declare module.exports: any; 87 | } 88 | 89 | declare module 'flow-typed/dist/lib/isInFlowTypedRepo' { 90 | declare module.exports: any; 91 | } 92 | 93 | declare module 'flow-typed/dist/lib/libDefs' { 94 | declare module.exports: any; 95 | } 96 | 97 | declare module 'flow-typed/dist/lib/node' { 98 | declare module.exports: any; 99 | } 100 | 101 | declare module 'flow-typed/dist/lib/npm/npmLibDefs' { 102 | declare module.exports: any; 103 | } 104 | 105 | declare module 'flow-typed/dist/lib/npm/npmProjectUtils' { 106 | declare module.exports: any; 107 | } 108 | 109 | declare module 'flow-typed/dist/lib/semver' { 110 | declare module.exports: any; 111 | } 112 | 113 | declare module 'flow-typed/dist/lib/stubUtils' { 114 | declare module.exports: any; 115 | } 116 | 117 | declare module 'flow-typed/dist/lib/validationErrors' { 118 | declare module.exports: any; 119 | } 120 | 121 | // Filename aliases 122 | declare module 'flow-typed/dist/cli.js' { 123 | declare module.exports: $Exports<'flow-typed/dist/cli'>; 124 | } 125 | declare module 'flow-typed/dist/commands/create-stub.js' { 126 | declare module.exports: $Exports<'flow-typed/dist/commands/create-stub'>; 127 | } 128 | declare module 'flow-typed/dist/commands/install.js' { 129 | declare module.exports: $Exports<'flow-typed/dist/commands/install'>; 130 | } 131 | declare module 'flow-typed/dist/commands/runTests.js' { 132 | declare module.exports: $Exports<'flow-typed/dist/commands/runTests'>; 133 | } 134 | declare module 'flow-typed/dist/commands/search.js' { 135 | declare module.exports: $Exports<'flow-typed/dist/commands/search'>; 136 | } 137 | declare module 'flow-typed/dist/commands/update-cache.js' { 138 | declare module.exports: $Exports<'flow-typed/dist/commands/update-cache'>; 139 | } 140 | declare module 'flow-typed/dist/commands/update.js' { 141 | declare module.exports: $Exports<'flow-typed/dist/commands/update'>; 142 | } 143 | declare module 'flow-typed/dist/commands/validateDefs.js' { 144 | declare module.exports: $Exports<'flow-typed/dist/commands/validateDefs'>; 145 | } 146 | declare module 'flow-typed/dist/commands/version.js' { 147 | declare module.exports: $Exports<'flow-typed/dist/commands/version'>; 148 | } 149 | declare module 'flow-typed/dist/lib/cacheRepoUtils.js' { 150 | declare module.exports: $Exports<'flow-typed/dist/lib/cacheRepoUtils'>; 151 | } 152 | declare module 'flow-typed/dist/lib/codeSign.js' { 153 | declare module.exports: $Exports<'flow-typed/dist/lib/codeSign'>; 154 | } 155 | declare module 'flow-typed/dist/lib/fileUtils.js' { 156 | declare module.exports: $Exports<'flow-typed/dist/lib/fileUtils'>; 157 | } 158 | declare module 'flow-typed/dist/lib/flowProjectUtils.js' { 159 | declare module.exports: $Exports<'flow-typed/dist/lib/flowProjectUtils'>; 160 | } 161 | declare module 'flow-typed/dist/lib/flowVersion.js' { 162 | declare module.exports: $Exports<'flow-typed/dist/lib/flowVersion'>; 163 | } 164 | declare module 'flow-typed/dist/lib/git.js' { 165 | declare module.exports: $Exports<'flow-typed/dist/lib/git'>; 166 | } 167 | declare module 'flow-typed/dist/lib/github.js' { 168 | declare module.exports: $Exports<'flow-typed/dist/lib/github'>; 169 | } 170 | declare module 'flow-typed/dist/lib/isInFlowTypedRepo.js' { 171 | declare module.exports: $Exports<'flow-typed/dist/lib/isInFlowTypedRepo'>; 172 | } 173 | declare module 'flow-typed/dist/lib/libDefs.js' { 174 | declare module.exports: $Exports<'flow-typed/dist/lib/libDefs'>; 175 | } 176 | declare module 'flow-typed/dist/lib/node.js' { 177 | declare module.exports: $Exports<'flow-typed/dist/lib/node'>; 178 | } 179 | declare module 'flow-typed/dist/lib/npm/npmLibDefs.js' { 180 | declare module.exports: $Exports<'flow-typed/dist/lib/npm/npmLibDefs'>; 181 | } 182 | declare module 'flow-typed/dist/lib/npm/npmProjectUtils.js' { 183 | declare module.exports: $Exports<'flow-typed/dist/lib/npm/npmProjectUtils'>; 184 | } 185 | declare module 'flow-typed/dist/lib/semver.js' { 186 | declare module.exports: $Exports<'flow-typed/dist/lib/semver'>; 187 | } 188 | declare module 'flow-typed/dist/lib/stubUtils.js' { 189 | declare module.exports: $Exports<'flow-typed/dist/lib/stubUtils'>; 190 | } 191 | declare module 'flow-typed/dist/lib/validationErrors.js' { 192 | declare module.exports: $Exports<'flow-typed/dist/lib/validationErrors'>; 193 | } 194 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | ajv-keywords@^2.1.0: 6 | version "2.1.1" 7 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" 8 | 9 | ajv@^5.2.3: 10 | version "5.5.2" 11 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" 12 | dependencies: 13 | co "^4.6.0" 14 | fast-deep-equal "^1.0.0" 15 | fast-json-stable-stringify "^2.0.0" 16 | json-schema-traverse "^0.3.0" 17 | 18 | ansi-regex@^2.0.0: 19 | version "2.1.1" 20 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 21 | 22 | ansi-regex@^3.0.0: 23 | version "3.0.0" 24 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 25 | 26 | ansi-styles@^3.1.0: 27 | version "3.2.0" 28 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" 29 | dependencies: 30 | color-convert "^1.9.0" 31 | 32 | babel-polyfill@^6.26.0: 33 | version "6.26.0" 34 | resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" 35 | dependencies: 36 | babel-runtime "^6.26.0" 37 | core-js "^2.5.0" 38 | regenerator-runtime "^0.10.5" 39 | 40 | babel-runtime@^6.26.0: 41 | version "6.26.0" 42 | resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" 43 | dependencies: 44 | core-js "^2.4.0" 45 | regenerator-runtime "^0.11.0" 46 | 47 | babylon@^6.15.0: 48 | version "6.18.0" 49 | resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" 50 | 51 | balanced-match@^1.0.0: 52 | version "1.0.0" 53 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 54 | 55 | "binary@>= 0.3.0 < 1": 56 | version "0.3.0" 57 | resolved "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79" 58 | dependencies: 59 | buffers "~0.1.1" 60 | chainsaw "~0.1.0" 61 | 62 | brace-expansion@^1.1.7: 63 | version "1.1.8" 64 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" 65 | dependencies: 66 | balanced-match "^1.0.0" 67 | concat-map "0.0.1" 68 | 69 | buffers@~0.1.1: 70 | version "0.1.1" 71 | resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" 72 | 73 | builtin-modules@^1.0.0: 74 | version "1.1.1" 75 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" 76 | 77 | camelcase@^3.0.0: 78 | version "3.0.0" 79 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" 80 | 81 | chainsaw@~0.1.0: 82 | version "0.1.0" 83 | resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98" 84 | dependencies: 85 | traverse ">=0.3.0 <0.4" 86 | 87 | chalk@^2.1.0: 88 | version "2.3.0" 89 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba" 90 | dependencies: 91 | ansi-styles "^3.1.0" 92 | escape-string-regexp "^1.0.5" 93 | supports-color "^4.0.0" 94 | 95 | charenc@~0.0.1: 96 | version "0.0.2" 97 | resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" 98 | 99 | cliui@^3.2.0: 100 | version "3.2.0" 101 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" 102 | dependencies: 103 | string-width "^1.0.1" 104 | strip-ansi "^3.0.1" 105 | wrap-ansi "^2.0.0" 106 | 107 | co@^4.6.0: 108 | version "4.6.0" 109 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 110 | 111 | code-point-at@^1.0.0: 112 | version "1.1.0" 113 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 114 | 115 | color-convert@^1.9.0: 116 | version "1.9.1" 117 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" 118 | dependencies: 119 | color-name "^1.1.1" 120 | 121 | color-name@^1.1.1: 122 | version "1.1.3" 123 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 124 | 125 | colors@^1.1.2: 126 | version "1.1.2" 127 | resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" 128 | 129 | concat-map@0.0.1: 130 | version "0.0.1" 131 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 132 | 133 | core-js@^2.4.0, core-js@^2.5.0: 134 | version "2.5.3" 135 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.3.tgz#8acc38345824f16d8365b7c9b4259168e8ed603e" 136 | 137 | core-util-is@~1.0.0: 138 | version "1.0.2" 139 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 140 | 141 | crypt@~0.0.1: 142 | version "0.0.2" 143 | resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" 144 | 145 | decamelize@^1.1.1: 146 | version "1.2.0" 147 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 148 | 149 | decompress-response@^3.2.0: 150 | version "3.3.0" 151 | resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" 152 | dependencies: 153 | mimic-response "^1.0.0" 154 | 155 | duplexer3@^0.1.4: 156 | version "0.1.4" 157 | resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" 158 | 159 | error-ex@^1.2.0: 160 | version "1.3.1" 161 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" 162 | dependencies: 163 | is-arrayish "^0.2.1" 164 | 165 | escape-string-regexp@^1.0.5: 166 | version "1.0.5" 167 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 168 | 169 | fast-deep-equal@^1.0.0: 170 | version "1.0.0" 171 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" 172 | 173 | fast-json-stable-stringify@^2.0.0: 174 | version "2.0.0" 175 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" 176 | 177 | find-up@^1.0.0: 178 | version "1.1.2" 179 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" 180 | dependencies: 181 | path-exists "^2.0.0" 182 | pinkie-promise "^2.0.0" 183 | 184 | flow-bin@^0.64.0: 185 | version "0.64.0" 186 | resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.64.0.tgz#ddd3fb3b183ab1ab35a5d5dec9caf5ebbcded167" 187 | 188 | flow-remove-types@^1.2.3: 189 | version "1.2.3" 190 | resolved "https://registry.yarnpkg.com/flow-remove-types/-/flow-remove-types-1.2.3.tgz#6131aefc7da43364bb8b479758c9dec7735d1a18" 191 | dependencies: 192 | babylon "^6.15.0" 193 | vlq "^0.2.1" 194 | 195 | flow-typed@^2.3.0: 196 | version "2.3.0" 197 | resolved "https://registry.yarnpkg.com/flow-typed/-/flow-typed-2.3.0.tgz#0f8604faab60691b885024e16ec0e3256e3b680e" 198 | dependencies: 199 | babel-polyfill "^6.26.0" 200 | colors "^1.1.2" 201 | fs-extra "^5.0.0" 202 | github "0.2.4" 203 | glob "^7.1.2" 204 | got "^7.1.0" 205 | md5 "^2.1.0" 206 | mkdirp "^0.5.1" 207 | rimraf "^2.6.2" 208 | semver "^5.5.0" 209 | table "^4.0.2" 210 | through "^2.3.8" 211 | unzip "^0.1.11" 212 | which "^1.3.0" 213 | yargs "^4.2.0" 214 | 215 | fp-ts@^0.6.4: 216 | version "0.6.8" 217 | resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-0.6.8.tgz#3b4ac3251f3565b2aefceffd787eb06c30c04b52" 218 | 219 | fs-extra@^5.0.0: 220 | version "5.0.0" 221 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd" 222 | dependencies: 223 | graceful-fs "^4.1.2" 224 | jsonfile "^4.0.0" 225 | universalify "^0.1.0" 226 | 227 | fs.realpath@^1.0.0: 228 | version "1.0.0" 229 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 230 | 231 | "fstream@>= 0.1.30 < 1": 232 | version "0.1.31" 233 | resolved "https://registry.yarnpkg.com/fstream/-/fstream-0.1.31.tgz#7337f058fbbbbefa8c9f561a28cab0849202c988" 234 | dependencies: 235 | graceful-fs "~3.0.2" 236 | inherits "~2.0.0" 237 | mkdirp "0.5" 238 | rimraf "2" 239 | 240 | get-caller-file@^1.0.1: 241 | version "1.0.2" 242 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" 243 | 244 | get-stream@^3.0.0: 245 | version "3.0.0" 246 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" 247 | 248 | github@0.2.4: 249 | version "0.2.4" 250 | resolved "https://registry.yarnpkg.com/github/-/github-0.2.4.tgz#24fa7f0e13fa11b946af91134c51982a91ce538b" 251 | dependencies: 252 | mime "^1.2.11" 253 | 254 | glob@^7.0.5, glob@^7.1.2: 255 | version "7.1.2" 256 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" 257 | dependencies: 258 | fs.realpath "^1.0.0" 259 | inflight "^1.0.4" 260 | inherits "2" 261 | minimatch "^3.0.4" 262 | once "^1.3.0" 263 | path-is-absolute "^1.0.0" 264 | 265 | got@^7.1.0: 266 | version "7.1.0" 267 | resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" 268 | dependencies: 269 | decompress-response "^3.2.0" 270 | duplexer3 "^0.1.4" 271 | get-stream "^3.0.0" 272 | is-plain-obj "^1.1.0" 273 | is-retry-allowed "^1.0.0" 274 | is-stream "^1.0.0" 275 | isurl "^1.0.0-alpha5" 276 | lowercase-keys "^1.0.0" 277 | p-cancelable "^0.3.0" 278 | p-timeout "^1.1.1" 279 | safe-buffer "^5.0.1" 280 | timed-out "^4.0.0" 281 | url-parse-lax "^1.0.0" 282 | url-to-options "^1.0.1" 283 | 284 | graceful-fs@^4.1.2, graceful-fs@^4.1.6: 285 | version "4.1.11" 286 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 287 | 288 | graceful-fs@~3.0.2: 289 | version "3.0.11" 290 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818" 291 | dependencies: 292 | natives "^1.1.0" 293 | 294 | has-flag@^2.0.0: 295 | version "2.0.0" 296 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" 297 | 298 | has-symbol-support-x@^1.4.1: 299 | version "1.4.1" 300 | resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.1.tgz#66ec2e377e0c7d7ccedb07a3a84d77510ff1bc4c" 301 | 302 | has-to-string-tag-x@^1.2.0: 303 | version "1.4.1" 304 | resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" 305 | dependencies: 306 | has-symbol-support-x "^1.4.1" 307 | 308 | hosted-git-info@^2.1.4: 309 | version "2.5.0" 310 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" 311 | 312 | inflight@^1.0.4: 313 | version "1.0.6" 314 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 315 | dependencies: 316 | once "^1.3.0" 317 | wrappy "1" 318 | 319 | inherits@2, inherits@~2.0.0, inherits@~2.0.1: 320 | version "2.0.3" 321 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 322 | 323 | invert-kv@^1.0.0: 324 | version "1.0.0" 325 | resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" 326 | 327 | io-ts@^0.9.7: 328 | version "0.9.7" 329 | resolved "https://registry.yarnpkg.com/io-ts/-/io-ts-0.9.7.tgz#60c2e0c701583e1420ffa727c09e0e2f7cf85154" 330 | dependencies: 331 | fp-ts "^0.6.4" 332 | 333 | is-arrayish@^0.2.1: 334 | version "0.2.1" 335 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 336 | 337 | is-buffer@~1.1.1: 338 | version "1.1.6" 339 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" 340 | 341 | is-builtin-module@^1.0.0: 342 | version "1.0.0" 343 | resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" 344 | dependencies: 345 | builtin-modules "^1.0.0" 346 | 347 | is-fullwidth-code-point@^1.0.0: 348 | version "1.0.0" 349 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 350 | dependencies: 351 | number-is-nan "^1.0.0" 352 | 353 | is-fullwidth-code-point@^2.0.0: 354 | version "2.0.0" 355 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 356 | 357 | is-object@^1.0.1: 358 | version "1.0.1" 359 | resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" 360 | 361 | is-plain-obj@^1.1.0: 362 | version "1.1.0" 363 | resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" 364 | 365 | is-retry-allowed@^1.0.0: 366 | version "1.1.0" 367 | resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" 368 | 369 | is-stream@^1.0.0: 370 | version "1.1.0" 371 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 372 | 373 | is-utf8@^0.2.0: 374 | version "0.2.1" 375 | resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" 376 | 377 | isarray@0.0.1: 378 | version "0.0.1" 379 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" 380 | 381 | isexe@^2.0.0: 382 | version "2.0.0" 383 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 384 | 385 | isurl@^1.0.0-alpha5: 386 | version "1.0.0" 387 | resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" 388 | dependencies: 389 | has-to-string-tag-x "^1.2.0" 390 | is-object "^1.0.1" 391 | 392 | json-schema-traverse@^0.3.0: 393 | version "0.3.1" 394 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" 395 | 396 | jsonfile@^4.0.0: 397 | version "4.0.0" 398 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" 399 | optionalDependencies: 400 | graceful-fs "^4.1.6" 401 | 402 | lcid@^1.0.0: 403 | version "1.0.0" 404 | resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" 405 | dependencies: 406 | invert-kv "^1.0.0" 407 | 408 | load-json-file@^1.0.0: 409 | version "1.1.0" 410 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" 411 | dependencies: 412 | graceful-fs "^4.1.2" 413 | parse-json "^2.2.0" 414 | pify "^2.0.0" 415 | pinkie-promise "^2.0.0" 416 | strip-bom "^2.0.0" 417 | 418 | lodash.assign@^4.0.3, lodash.assign@^4.0.6: 419 | version "4.2.0" 420 | resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" 421 | 422 | lodash@^4.17.4: 423 | version "4.17.4" 424 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" 425 | 426 | lowercase-keys@^1.0.0: 427 | version "1.0.0" 428 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" 429 | 430 | "match-stream@>= 0.0.2 < 1": 431 | version "0.0.2" 432 | resolved "https://registry.yarnpkg.com/match-stream/-/match-stream-0.0.2.tgz#99eb050093b34dffade421b9ac0b410a9cfa17cf" 433 | dependencies: 434 | buffers "~0.1.1" 435 | readable-stream "~1.0.0" 436 | 437 | md5@^2.1.0: 438 | version "2.2.1" 439 | resolved "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9" 440 | dependencies: 441 | charenc "~0.0.1" 442 | crypt "~0.0.1" 443 | is-buffer "~1.1.1" 444 | 445 | mime@^1.2.11: 446 | version "1.6.0" 447 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" 448 | 449 | mimic-response@^1.0.0: 450 | version "1.0.0" 451 | resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.0.tgz#df3d3652a73fded6b9b0b24146e6fd052353458e" 452 | 453 | minimatch@^3.0.4: 454 | version "3.0.4" 455 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 456 | dependencies: 457 | brace-expansion "^1.1.7" 458 | 459 | minimist@0.0.8: 460 | version "0.0.8" 461 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 462 | 463 | mkdirp@0.5, mkdirp@^0.5.1: 464 | version "0.5.1" 465 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 466 | dependencies: 467 | minimist "0.0.8" 468 | 469 | natives@^1.1.0: 470 | version "1.1.1" 471 | resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.1.tgz#011acce1f7cbd87f7ba6b3093d6cd9392be1c574" 472 | 473 | normalize-package-data@^2.3.2: 474 | version "2.4.0" 475 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" 476 | dependencies: 477 | hosted-git-info "^2.1.4" 478 | is-builtin-module "^1.0.0" 479 | semver "2 || 3 || 4 || 5" 480 | validate-npm-package-license "^3.0.1" 481 | 482 | number-is-nan@^1.0.0: 483 | version "1.0.1" 484 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 485 | 486 | once@^1.3.0: 487 | version "1.4.0" 488 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 489 | dependencies: 490 | wrappy "1" 491 | 492 | os-locale@^1.4.0: 493 | version "1.4.0" 494 | resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" 495 | dependencies: 496 | lcid "^1.0.0" 497 | 498 | "over@>= 0.0.5 < 1": 499 | version "0.0.5" 500 | resolved "https://registry.yarnpkg.com/over/-/over-0.0.5.tgz#f29852e70fd7e25f360e013a8ec44c82aedb5708" 501 | 502 | p-cancelable@^0.3.0: 503 | version "0.3.0" 504 | resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" 505 | 506 | p-finally@^1.0.0: 507 | version "1.0.0" 508 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 509 | 510 | p-timeout@^1.1.1: 511 | version "1.2.1" 512 | resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" 513 | dependencies: 514 | p-finally "^1.0.0" 515 | 516 | parse-json@^2.2.0: 517 | version "2.2.0" 518 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 519 | dependencies: 520 | error-ex "^1.2.0" 521 | 522 | path-exists@^2.0.0: 523 | version "2.1.0" 524 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" 525 | dependencies: 526 | pinkie-promise "^2.0.0" 527 | 528 | path-is-absolute@^1.0.0: 529 | version "1.0.1" 530 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 531 | 532 | path-type@^1.0.0: 533 | version "1.1.0" 534 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" 535 | dependencies: 536 | graceful-fs "^4.1.2" 537 | pify "^2.0.0" 538 | pinkie-promise "^2.0.0" 539 | 540 | pify@^2.0.0: 541 | version "2.3.0" 542 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 543 | 544 | pinkie-promise@^2.0.0: 545 | version "2.0.1" 546 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 547 | dependencies: 548 | pinkie "^2.0.0" 549 | 550 | pinkie@^2.0.0: 551 | version "2.0.4" 552 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 553 | 554 | prepend-http@^1.0.1: 555 | version "1.0.4" 556 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" 557 | 558 | "pullstream@>= 0.4.1 < 1": 559 | version "0.4.1" 560 | resolved "https://registry.yarnpkg.com/pullstream/-/pullstream-0.4.1.tgz#d6fb3bf5aed697e831150eb1002c25a3f8ae1314" 561 | dependencies: 562 | over ">= 0.0.5 < 1" 563 | readable-stream "~1.0.31" 564 | setimmediate ">= 1.0.2 < 2" 565 | slice-stream ">= 1.0.0 < 2" 566 | 567 | ramda@^0.25.0: 568 | version "0.25.0" 569 | resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.25.0.tgz#8fdf68231cffa90bc2f9460390a0cb74a29b29a9" 570 | 571 | read-pkg-up@^1.0.1: 572 | version "1.0.1" 573 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" 574 | dependencies: 575 | find-up "^1.0.0" 576 | read-pkg "^1.0.0" 577 | 578 | read-pkg@^1.0.0: 579 | version "1.1.0" 580 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" 581 | dependencies: 582 | load-json-file "^1.0.0" 583 | normalize-package-data "^2.3.2" 584 | path-type "^1.0.0" 585 | 586 | readable-stream@~1.0.0, readable-stream@~1.0.31: 587 | version "1.0.34" 588 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" 589 | dependencies: 590 | core-util-is "~1.0.0" 591 | inherits "~2.0.1" 592 | isarray "0.0.1" 593 | string_decoder "~0.10.x" 594 | 595 | regenerator-runtime@^0.10.5: 596 | version "0.10.5" 597 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" 598 | 599 | regenerator-runtime@^0.11.0: 600 | version "0.11.1" 601 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" 602 | 603 | require-directory@^2.1.1: 604 | version "2.1.1" 605 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 606 | 607 | require-main-filename@^1.0.1: 608 | version "1.0.1" 609 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" 610 | 611 | rimraf@2, rimraf@^2.6.2: 612 | version "2.6.2" 613 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" 614 | dependencies: 615 | glob "^7.0.5" 616 | 617 | safe-buffer@^5.0.1: 618 | version "5.1.1" 619 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" 620 | 621 | "semver@2 || 3 || 4 || 5", semver@^5.5.0: 622 | version "5.5.0" 623 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" 624 | 625 | set-blocking@^2.0.0: 626 | version "2.0.0" 627 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 628 | 629 | "setimmediate@>= 1.0.1 < 2", "setimmediate@>= 1.0.2 < 2": 630 | version "1.0.5" 631 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 632 | 633 | slice-ansi@1.0.0: 634 | version "1.0.0" 635 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" 636 | dependencies: 637 | is-fullwidth-code-point "^2.0.0" 638 | 639 | "slice-stream@>= 1.0.0 < 2": 640 | version "1.0.0" 641 | resolved "https://registry.yarnpkg.com/slice-stream/-/slice-stream-1.0.0.tgz#5b33bd66f013b1a7f86460b03d463dec39ad3ea0" 642 | dependencies: 643 | readable-stream "~1.0.31" 644 | 645 | spdx-correct@~1.0.0: 646 | version "1.0.2" 647 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" 648 | dependencies: 649 | spdx-license-ids "^1.0.2" 650 | 651 | spdx-expression-parse@~1.0.0: 652 | version "1.0.4" 653 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" 654 | 655 | spdx-license-ids@^1.0.2: 656 | version "1.2.2" 657 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" 658 | 659 | string-width@^1.0.1: 660 | version "1.0.2" 661 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 662 | dependencies: 663 | code-point-at "^1.0.0" 664 | is-fullwidth-code-point "^1.0.0" 665 | strip-ansi "^3.0.0" 666 | 667 | string-width@^2.1.1: 668 | version "2.1.1" 669 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 670 | dependencies: 671 | is-fullwidth-code-point "^2.0.0" 672 | strip-ansi "^4.0.0" 673 | 674 | string_decoder@~0.10.x: 675 | version "0.10.31" 676 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" 677 | 678 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 679 | version "3.0.1" 680 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 681 | dependencies: 682 | ansi-regex "^2.0.0" 683 | 684 | strip-ansi@^4.0.0: 685 | version "4.0.0" 686 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 687 | dependencies: 688 | ansi-regex "^3.0.0" 689 | 690 | strip-bom@^2.0.0: 691 | version "2.0.0" 692 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" 693 | dependencies: 694 | is-utf8 "^0.2.0" 695 | 696 | supports-color@^4.0.0: 697 | version "4.5.0" 698 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" 699 | dependencies: 700 | has-flag "^2.0.0" 701 | 702 | table@^4.0.2: 703 | version "4.0.2" 704 | resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" 705 | dependencies: 706 | ajv "^5.2.3" 707 | ajv-keywords "^2.1.0" 708 | chalk "^2.1.0" 709 | lodash "^4.17.4" 710 | slice-ansi "1.0.0" 711 | string-width "^2.1.1" 712 | 713 | through@^2.3.8: 714 | version "2.3.8" 715 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 716 | 717 | timed-out@^4.0.0: 718 | version "4.0.1" 719 | resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" 720 | 721 | "traverse@>=0.3.0 <0.4": 722 | version "0.3.9" 723 | resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" 724 | 725 | universalify@^0.1.0: 726 | version "0.1.1" 727 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" 728 | 729 | unzip@^0.1.11: 730 | version "0.1.11" 731 | resolved "https://registry.yarnpkg.com/unzip/-/unzip-0.1.11.tgz#89749c63b058d7d90d619f86b98aa1535d3b97f0" 732 | dependencies: 733 | binary ">= 0.3.0 < 1" 734 | fstream ">= 0.1.30 < 1" 735 | match-stream ">= 0.0.2 < 1" 736 | pullstream ">= 0.4.1 < 1" 737 | readable-stream "~1.0.31" 738 | setimmediate ">= 1.0.1 < 2" 739 | 740 | url-parse-lax@^1.0.0: 741 | version "1.0.0" 742 | resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" 743 | dependencies: 744 | prepend-http "^1.0.1" 745 | 746 | url-to-options@^1.0.1: 747 | version "1.0.1" 748 | resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" 749 | 750 | validate-npm-package-license@^3.0.1: 751 | version "3.0.1" 752 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" 753 | dependencies: 754 | spdx-correct "~1.0.0" 755 | spdx-expression-parse "~1.0.0" 756 | 757 | vlq@^0.2.1: 758 | version "0.2.3" 759 | resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26" 760 | 761 | which-module@^1.0.0: 762 | version "1.0.0" 763 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" 764 | 765 | which@^1.3.0: 766 | version "1.3.0" 767 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" 768 | dependencies: 769 | isexe "^2.0.0" 770 | 771 | window-size@^0.2.0: 772 | version "0.2.0" 773 | resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" 774 | 775 | wrap-ansi@^2.0.0: 776 | version "2.1.0" 777 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" 778 | dependencies: 779 | string-width "^1.0.1" 780 | strip-ansi "^3.0.1" 781 | 782 | wrappy@1: 783 | version "1.0.2" 784 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 785 | 786 | y18n@^3.2.1: 787 | version "3.2.1" 788 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" 789 | 790 | yargs-parser@^2.4.1: 791 | version "2.4.1" 792 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-2.4.1.tgz#85568de3cf150ff49fa51825f03a8c880ddcc5c4" 793 | dependencies: 794 | camelcase "^3.0.0" 795 | lodash.assign "^4.0.6" 796 | 797 | yargs@^4.2.0: 798 | version "4.8.1" 799 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-4.8.1.tgz#c0c42924ca4aaa6b0e6da1739dfb216439f9ddc0" 800 | dependencies: 801 | cliui "^3.2.0" 802 | decamelize "^1.1.1" 803 | get-caller-file "^1.0.1" 804 | lodash.assign "^4.0.3" 805 | os-locale "^1.4.0" 806 | read-pkg-up "^1.0.1" 807 | require-directory "^2.1.1" 808 | require-main-filename "^1.0.1" 809 | set-blocking "^2.0.0" 810 | string-width "^1.0.1" 811 | which-module "^1.0.0" 812 | window-size "^0.2.0" 813 | y18n "^3.2.1" 814 | yargs-parser "^2.4.1" 815 | -------------------------------------------------------------------------------- /flow-typed/npm/ramda_v0.x.x.js: -------------------------------------------------------------------------------- 1 | // flow-typed signature: db1f919b4edc72f6f596f348ada7a4c2 2 | // flow-typed version: fc629721be/ramda_v0.x.x/flow_>=v0.62.x 3 | 4 | /* eslint-disable no-unused-vars, no-redeclare */ 5 | 6 | type Transformer = { 7 | "@@transducer/step": (r: A, a: *) => R, 8 | "@@transducer/init": () => A, 9 | "@@transducer/result": (result: *) => B 10 | }; 11 | 12 | declare type $npm$ramda$Placeholder = { "@@functional/placeholder": true }; 13 | 14 | declare module ramda { 15 | declare type UnaryFn = (a: A) => R; 16 | declare type UnaryPromiseFn = UnaryFn>; 17 | declare type BinaryFn = ((a: A, b: B) => R) & 18 | ((a: A) => (b: B) => R); 19 | declare type UnarySameTypeFn = UnaryFn; 20 | declare type BinarySameTypeFn = BinaryFn; 21 | declare type NestedObject = { [k: string]: T | NestedObject }; 22 | declare type UnaryPredicateFn = (x: T) => boolean; 23 | declare type MapUnaryPredicateFn = (V) => V => boolean; 24 | declare type BinaryPredicateFn = (x: T, y: T) => boolean; 25 | declare type BinaryPredicateFn2 = (x: T, y: S) => boolean; 26 | 27 | declare interface ObjPredicate { 28 | (value: any, key: string): boolean; 29 | } 30 | 31 | declare type __CurriedFunction1 = (...r: [AA]) => R; 32 | declare type CurriedFunction1 = __CurriedFunction1; 33 | 34 | declare type __CurriedFunction2 = (( 35 | ...r: [AA] 36 | ) => CurriedFunction1) & 37 | ((...r: [AA, BB]) => R); 38 | declare type CurriedFunction2 = __CurriedFunction2; 39 | 40 | declare type __CurriedFunction3 = (( 41 | ...r: [AA] 42 | ) => CurriedFunction2) & 43 | ((...r: [AA, BB]) => CurriedFunction1) & 44 | ((...r: [AA, BB, CC]) => R); 45 | declare type CurriedFunction3 = __CurriedFunction3< 46 | A, 47 | B, 48 | C, 49 | R, 50 | *, 51 | *, 52 | * 53 | >; 54 | 55 | declare type __CurriedFunction4< 56 | A, 57 | B, 58 | C, 59 | D, 60 | R, 61 | AA: A, 62 | BB: B, 63 | CC: C, 64 | DD: D 65 | > = ((...r: [AA]) => CurriedFunction3) & 66 | ((...r: [AA, BB]) => CurriedFunction2) & 67 | ((...r: [AA, BB, CC]) => CurriedFunction1) & 68 | ((...r: [AA, BB, CC, DD]) => R); 69 | declare type CurriedFunction4 = __CurriedFunction4< 70 | A, 71 | B, 72 | C, 73 | D, 74 | R, 75 | *, 76 | *, 77 | *, 78 | * 79 | >; 80 | 81 | declare type __CurriedFunction5< 82 | A, 83 | B, 84 | C, 85 | D, 86 | E, 87 | R, 88 | AA: A, 89 | BB: B, 90 | CC: C, 91 | DD: D, 92 | EE: E 93 | > = ((...r: [AA]) => CurriedFunction4) & 94 | ((...r: [AA, BB]) => CurriedFunction3) & 95 | ((...r: [AA, BB, CC]) => CurriedFunction2) & 96 | ((...r: [AA, BB, CC, DD]) => CurriedFunction1) & 97 | ((...r: [AA, BB, CC, DD, EE]) => R); 98 | declare type CurriedFunction5 = __CurriedFunction5< 99 | A, 100 | B, 101 | C, 102 | D, 103 | E, 104 | R, 105 | *, 106 | *, 107 | *, 108 | *, 109 | * 110 | >; 111 | 112 | declare type __CurriedFunction6< 113 | A, 114 | B, 115 | C, 116 | D, 117 | E, 118 | F, 119 | R, 120 | AA: A, 121 | BB: B, 122 | CC: C, 123 | DD: D, 124 | EE: E, 125 | FF: F 126 | > = ((...r: [AA]) => CurriedFunction5) & 127 | ((...r: [AA, BB]) => CurriedFunction4) & 128 | ((...r: [AA, BB, CC]) => CurriedFunction3) & 129 | ((...r: [AA, BB, CC, DD]) => CurriedFunction2) & 130 | ((...r: [AA, BB, CC, DD, EE]) => CurriedFunction1) & 131 | ((...r: [AA, BB, CC, DD, EE, FF]) => R); 132 | declare type CurriedFunction6 = __CurriedFunction6< 133 | A, 134 | B, 135 | C, 136 | D, 137 | E, 138 | F, 139 | R, 140 | *, 141 | *, 142 | *, 143 | *, 144 | *, 145 | * 146 | >; 147 | 148 | declare type Curry = (((...r: [A]) => R) => CurriedFunction1) & 149 | (((...r: [A, B]) => R) => CurriedFunction2) & 150 | (((...r: [A, B, C]) => R) => CurriedFunction3) & 151 | (( 152 | (...r: [A, B, C, D]) => R 153 | ) => CurriedFunction4) & 154 | (( 155 | (...r: [A, B, C, D, E]) => R 156 | ) => CurriedFunction5) & 157 | (( 158 | (...r: [A, B, C, D, E, F]) => R 159 | ) => CurriedFunction6); 160 | 161 | declare type Partial = (((...r: [A]) => R, args: [A]) => () => R) & 162 | (((...r: [A, B]) => R, args: [A]) => B => R) & 163 | (((...r: [A, B]) => R, args: [A, B]) => () => R) & 164 | (((...r: [A, B, C]) => R, args: [A]) => (B, C) => R) & 165 | (((...r: [A, B, C]) => R, args: [A, B]) => C => R) & 166 | (((...r: [A, B, C]) => R, args: [A, B, C]) => () => R) & 167 | (((...r: [A, B, C, D]) => R, args: [A]) => (B, C, D) => R) & 168 | (((...r: [A, B, C, D]) => R, args: [A, B]) => (C, D) => R) & 169 | (((...r: [A, B, C, D]) => R, args: [A, B, C]) => D => R) & 170 | (( 171 | (...r: [A, B, C, D]) => R, 172 | args: [A, B, C, D] 173 | ) => () => R) & 174 | (( 175 | (...r: [A, B, C, D, E]) => R, 176 | args: [A] 177 | ) => (B, C, D, E) => R) & 178 | (( 179 | (...r: [A, B, C, D, E]) => R, 180 | args: [A, B] 181 | ) => (C, D, E) => R) & 182 | (( 183 | (...r: [A, B, C, D, E]) => R, 184 | args: [A, B, C] 185 | ) => (D, E) => R) & 186 | (( 187 | (...r: [A, B, C, D, E]) => R, 188 | args: [A, B, C, D] 189 | ) => E => R) & 190 | (( 191 | (...r: [A, B, C, D, E]) => R, 192 | args: [A, B, C, D, E] 193 | ) => () => R) & 194 | (( 195 | (...r: [A, B, C, D, E, F]) => R, 196 | args: [A] 197 | ) => (B, C, D, E, F) => R) & 198 | (( 199 | (...r: [A, B, C, D, E, F]) => R, 200 | args: [A, B] 201 | ) => (C, D, E, F) => R) & 202 | (( 203 | (...r: [A, B, C, D, E, F]) => R, 204 | args: [A, B, C] 205 | ) => (D, E, F) => R) & 206 | (( 207 | (...r: [A, B, C, D, E, F]) => R, 208 | args: [A, B, C, D] 209 | ) => (E, F) => R) & 210 | (( 211 | (...r: [A, B, C, D, E, F]) => R, 212 | args: [A, B, C, D, E] 213 | ) => F => R) & 214 | (( 215 | (...r: [A, B, C, D, E, F]) => R, 216 | args: [A, B, C, D, E, F] 217 | ) => () => R) & 218 | (( 219 | (...r: [A, B, C, D, E, F, G]) => R, 220 | args: [A] 221 | ) => (B, C, D, E, F, G) => R) & 222 | (( 223 | (...r: [A, B, C, D, E, F, G]) => R, 224 | args: [A, B] 225 | ) => (C, D, E, F, G) => R) & 226 | (( 227 | (...r: [A, B, C, D, E, F, G]) => R, 228 | args: [A, B, C] 229 | ) => (D, E, F, G) => R) & 230 | (( 231 | (...r: [A, B, C, D, E, F, G]) => R, 232 | args: [A, B, C, D] 233 | ) => (E, F, G) => R) & 234 | (( 235 | (...r: [A, B, C, D, E, F, G]) => R, 236 | args: [A, B, C, D, E] 237 | ) => (F, G) => R) & 238 | (( 239 | (...r: [A, B, C, D, E, F, G]) => R, 240 | args: [A, B, C, D, E, F] 241 | ) => G => R) & 242 | (( 243 | (...r: [A, B, C, D, E, F, G]) => R, 244 | args: [A, B, C, D, E, F, G] 245 | ) => () => R) & 246 | (( 247 | (...r: [A, B, C, D, E, F, G, H]) => R, 248 | args: [A] 249 | ) => (B, C, D, E, F, G, H) => R) & 250 | (( 251 | (...r: [A, B, C, D, E, F, G, H]) => R, 252 | args: [A, B] 253 | ) => (C, D, E, F, G, H) => R) & 254 | (( 255 | (...r: [A, B, C, D, E, F, G, H]) => R, 256 | args: [A, B, C] 257 | ) => (D, E, F, G, H) => R) & 258 | (( 259 | (...r: [A, B, C, D, E, F, G, H]) => R, 260 | args: [A, B, C, D] 261 | ) => (E, F, G, H) => R) & 262 | (( 263 | (...r: [A, B, C, D, E, F, G, H]) => R, 264 | args: [A, B, C, D, E] 265 | ) => (F, G, H) => R) & 266 | (( 267 | (...r: [A, B, C, D, E, F, G, H]) => R, 268 | args: [A, B, C, D, E, F] 269 | ) => (G, H) => R) & 270 | (( 271 | (...r: [A, B, C, D, E, F, G, H]) => R, 272 | args: [A, B, C, D, E, F, G] 273 | ) => H => R) & 274 | (( 275 | (...r: [A, B, C, D, E, F, G, H]) => R, 276 | args: [A, B, C, D, E, F, G, H] 277 | ) => () => R) & 278 | (( 279 | (...r: [A, B, C, D, E, F, G, H, I]) => R, 280 | args: [A] 281 | ) => (B, C, D, E, F, G, H, I) => R) & 282 | (( 283 | (...r: [A, B, C, D, E, F, G, H, I]) => R, 284 | args: [A, B] 285 | ) => (C, D, E, F, G, H, I) => R) & 286 | (( 287 | (...r: [A, B, C, D, E, F, G, H, I]) => R, 288 | args: [A, B, C] 289 | ) => (D, E, F, G, H, I) => R) & 290 | (( 291 | (...r: [A, B, C, D, E, F, G, H, I]) => R, 292 | args: [A, B, C, D] 293 | ) => (E, F, G, H, I) => R) & 294 | (( 295 | (...r: [A, B, C, D, E, F, G, H, I]) => R, 296 | args: [A, B, C, D, E] 297 | ) => (F, G, H, I) => R) & 298 | (( 299 | (...r: [A, B, C, D, E, F, G, H, I]) => R, 300 | args: [A, B, C, D, E, F] 301 | ) => (G, H, I) => R) & 302 | (( 303 | (...r: [A, B, C, D, E, F, G, H, I]) => R, 304 | args: [A, B, C, D, E, F, G] 305 | ) => (H, I) => R) & 306 | (( 307 | (...r: [A, B, C, D, E, F, G, H, I]) => R, 308 | args: [A, B, C, D, E, F, G, H] 309 | ) => I => R) & 310 | (( 311 | (...r: [A, B, C, D, E, F, G, H, I]) => R, 312 | args: [A, B, C, D, E, F, G, H, I] 313 | ) => () => R); 314 | 315 | declare type Pipe = (( 316 | ab: UnaryFn, 317 | bc: UnaryFn, 318 | cd: UnaryFn, 319 | de: UnaryFn, 320 | ef: UnaryFn, 321 | fg: UnaryFn, 322 | ...rest: Array 323 | ) => UnaryFn) & 324 | (( 325 | ab: UnaryFn, 326 | bc: UnaryFn, 327 | cd: UnaryFn, 328 | de: UnaryFn, 329 | ef: UnaryFn, 330 | ...rest: Array 331 | ) => UnaryFn) & 332 | (( 333 | ab: UnaryFn, 334 | bc: UnaryFn, 335 | cd: UnaryFn, 336 | de: UnaryFn, 337 | ...rest: Array 338 | ) => UnaryFn) & 339 | (( 340 | ab: UnaryFn, 341 | bc: UnaryFn, 342 | cd: UnaryFn, 343 | ...rest: Array 344 | ) => UnaryFn) & 345 | (( 346 | ab: UnaryFn, 347 | bc: UnaryFn, 348 | ...rest: Array 349 | ) => UnaryFn) & 350 | ((ab: UnaryFn, ...rest: Array) => UnaryFn); 351 | 352 | declare type PipeP = (( 353 | ab: UnaryPromiseFn, 354 | bc: UnaryPromiseFn, 355 | cd: UnaryPromiseFn, 356 | de: UnaryPromiseFn, 357 | ef: UnaryPromiseFn, 358 | fg: UnaryPromiseFn, 359 | ...rest: Array 360 | ) => UnaryPromiseFn) & 361 | (( 362 | ab: UnaryPromiseFn, 363 | bc: UnaryPromiseFn, 364 | cd: UnaryPromiseFn, 365 | de: UnaryPromiseFn, 366 | ef: UnaryPromiseFn, 367 | ...rest: Array 368 | ) => UnaryPromiseFn) & 369 | (( 370 | ab: UnaryPromiseFn, 371 | bc: UnaryPromiseFn, 372 | cd: UnaryPromiseFn, 373 | de: UnaryPromiseFn, 374 | ...rest: Array 375 | ) => UnaryPromiseFn) & 376 | (( 377 | ab: UnaryPromiseFn, 378 | bc: UnaryPromiseFn, 379 | cd: UnaryPromiseFn, 380 | ...rest: Array 381 | ) => UnaryPromiseFn) & 382 | (( 383 | ab: UnaryPromiseFn, 384 | bc: UnaryPromiseFn, 385 | ...rest: Array 386 | ) => UnaryPromiseFn) & 387 | (( 388 | ab: UnaryPromiseFn, 389 | ...rest: Array 390 | ) => UnaryPromiseFn); 391 | 392 | declare type Compose = (( 393 | fg: UnaryFn, 394 | ef: UnaryFn, 395 | de: UnaryFn, 396 | cd: UnaryFn, 397 | bc: UnaryFn, 398 | ab: UnaryFn, 399 | ...rest: Array 400 | ) => UnaryFn) & 401 | (( 402 | ef: UnaryFn, 403 | de: UnaryFn, 404 | cd: UnaryFn, 405 | bc: UnaryFn, 406 | ab: UnaryFn, 407 | ...rest: Array 408 | ) => UnaryFn) & 409 | (( 410 | de: UnaryFn, 411 | cd: UnaryFn, 412 | bc: UnaryFn, 413 | ab: UnaryFn, 414 | ...rest: Array 415 | ) => UnaryFn) & 416 | (( 417 | cd: UnaryFn, 418 | bc: UnaryFn, 419 | ab: UnaryFn, 420 | ...rest: Array 421 | ) => UnaryFn) & 422 | (( 423 | bc: UnaryFn, 424 | ab: UnaryFn, 425 | ...rest: Array 426 | ) => UnaryFn) & 427 | ((ab: UnaryFn, ...rest: Array) => UnaryFn); 428 | 429 | declare type Filter = ( | { [key: K]: V }>( 430 | fn: UnaryPredicateFn, 431 | xs: T 432 | ) => T) & 433 | ( | { [key: K]: V }>( 434 | fn: UnaryPredicateFn 435 | ) => (xs: T) => T); 436 | 437 | declare class Monad { 438 | chain: Function; 439 | } 440 | 441 | declare class Semigroup {} 442 | 443 | declare class Chain { 444 | chain | Array>(fn: (a: T) => V, x: V): V; 445 | chain | Array>(fn: (a: T) => V): (x: V) => V; 446 | } 447 | 448 | declare class GenericContructor { 449 | constructor(x: T): GenericContructor; 450 | } 451 | 452 | declare class GenericContructorMulti { 453 | constructor(...args: Array): GenericContructor; 454 | } 455 | 456 | /** 457 | * DONE: 458 | * Function* 459 | * List* 460 | * Logic 461 | * Math 462 | * Object* 463 | * Relation 464 | * String 465 | * Type 466 | */ 467 | 468 | declare var compose: Compose; 469 | declare var pipe: Pipe; 470 | declare var pipeP: PipeP; 471 | declare var curry: Curry; 472 | declare function curryN( 473 | length: number, 474 | fn: (...args: Array) => any 475 | ): Function; 476 | 477 | // *Math 478 | declare var add: CurriedFunction2; 479 | declare var inc: UnaryFn; 480 | declare var dec: UnaryFn; 481 | declare var mean: UnaryFn, number>; 482 | declare var divide: CurriedFunction2; 483 | declare var mathMod: CurriedFunction2; 484 | declare var median: UnaryFn, number>; 485 | declare var modulo: CurriedFunction2; 486 | declare var multiply: CurriedFunction2; 487 | declare var negate: UnaryFn; 488 | declare var product: UnaryFn, number>; 489 | declare var subtract: CurriedFunction2; 490 | declare var sum: UnaryFn, number>; 491 | 492 | // Filter 493 | declare var filter: Filter; 494 | declare var reject: Filter; 495 | 496 | // *String 497 | declare var match: CurriedFunction2>; 498 | declare var replace: CurriedFunction3< 499 | RegExp | string, 500 | string | ((substring: string, ...args: Array) => string), 501 | string, 502 | string 503 | >; 504 | declare var split: CurriedFunction2>; 505 | declare var test: CurriedFunction2; 506 | declare function toLower(a: string): string; 507 | declare function toString(a: any): string; 508 | declare function toUpper(a: string): string; 509 | declare function trim(a: string): string; 510 | 511 | // *Type 512 | declare function is(t: T, ...rest: Array): (v: any) => boolean; 513 | declare function is(t: T, v: any): boolean; 514 | declare var propIs: CurriedFunction3; 515 | declare function type(x: ?any): string; 516 | declare function isArrayLike(x: any): boolean; 517 | 518 | declare function isNil(x: mixed): boolean %checks(x === undefined || 519 | x === null); 520 | 521 | // *List 522 | declare function adjust( 523 | fn: (a: T) => T, 524 | ...rest: Array 525 | ): (index: number, ...rest: Array) => (src: Array) => Array; 526 | declare function adjust( 527 | fn: (a: T) => T, 528 | index: number, 529 | ...rest: Array 530 | ): (src: Array) => Array; 531 | declare function adjust( 532 | fn: (a: T) => T, 533 | index: number, 534 | src: Array 535 | ): Array; 536 | 537 | declare function all(fn: UnaryPredicateFn, xs: Array): boolean; 538 | declare function all( 539 | fn: UnaryPredicateFn, 540 | ...rest: Array 541 | ): (xs: Array) => boolean; 542 | 543 | declare function any(fn: UnaryPredicateFn, xs: Array): boolean; 544 | declare function any( 545 | fn: UnaryPredicateFn, 546 | ...rest: Array 547 | ): (xs: Array) => boolean; 548 | 549 | declare function aperture(n: number, xs: Array): Array>; 550 | declare function aperture( 551 | n: number, 552 | ...rest: Array 553 | ): (xs: Array) => Array>; 554 | 555 | declare function append(x: E, xs: Array): Array; 556 | declare function append( 557 | x: E, 558 | ...rest: Array 559 | ): (xs: Array) => Array; 560 | 561 | declare function prepend(x: E, xs: Array): Array; 562 | declare function prepend( 563 | x: E, 564 | ...rest: Array 565 | ): (xs: Array) => Array; 566 | 567 | declare function concat | string>(x: T, y: T): T; 568 | declare function concat | string>(x: T): (y: T) => T; 569 | 570 | declare function contains | string>(x: E, xs: T): boolean; 571 | declare function contains | string>( 572 | x: E, 573 | ...rest: Array 574 | ): (xs: T) => boolean; 575 | 576 | declare function drop | string>( 577 | n: number, 578 | ...rest: Array 579 | ): (xs: T) => T; 580 | declare function drop | string>(n: number, xs: T): T; 581 | 582 | declare function dropLast | string>( 583 | n: number, 584 | ...rest: Array 585 | ): (xs: T) => T; 586 | declare function dropLast | string>(n: number, xs: T): T; 587 | 588 | declare function dropLastWhile>( 589 | fn: UnaryPredicateFn, 590 | ...rest: Array 591 | ): (xs: T) => T; 592 | declare function dropLastWhile>( 593 | fn: UnaryPredicateFn, 594 | xs: T 595 | ): T; 596 | 597 | declare function dropWhile>( 598 | fn: UnaryPredicateFn, 599 | ...rest: Array 600 | ): (xs: T) => T; 601 | declare function dropWhile>(fn: UnaryPredicateFn, xs: T): T; 602 | 603 | declare function dropRepeats>(xs: T): T; 604 | 605 | declare function dropRepeatsWith>( 606 | fn: BinaryPredicateFn, 607 | ...rest: Array 608 | ): (xs: T) => T; 609 | declare function dropRepeatsWith>( 610 | fn: BinaryPredicateFn, 611 | xs: T 612 | ): T; 613 | 614 | declare function groupBy( 615 | fn: (x: T) => string, 616 | xs: Array 617 | ): { [key: string]: Array }; 618 | declare function groupBy( 619 | fn: (x: T) => string, 620 | ...rest: Array 621 | ): (xs: Array) => { [key: string]: Array }; 622 | 623 | declare function groupWith | string>( 624 | fn: BinaryPredicateFn, 625 | xs: V 626 | ): Array; 627 | declare function groupWith | string>( 628 | fn: BinaryPredicateFn, 629 | ...rest: Array 630 | ): (xs: V) => Array; 631 | 632 | declare function head>(xs: V): ?T; 633 | declare function head(xs: V): V; 634 | 635 | declare function into, R: Array<*> | string | Object>( 636 | accum: R, 637 | xf: (a: A) => I, 638 | input: A 639 | ): R; 640 | declare function into, R>( 641 | accum: Transformer, 642 | xf: (a: A) => R, 643 | input: A 644 | ): R; 645 | 646 | declare function indexOf(x: ?E, xs: Array): number; 647 | declare function indexOf( 648 | x: ?E, 649 | ...rest: Array 650 | ): (xs: Array) => number; 651 | 652 | declare function indexBy( 653 | fn: (x: T) => string, 654 | ...rest: Array 655 | ): (xs: Array) => { [key: string]: T }; 656 | declare function indexBy( 657 | fn: (x: T) => string, 658 | xs: Array 659 | ): { [key: string]: T }; 660 | 661 | declare function insert( 662 | index: number, 663 | ...rest: Array 664 | ): (elem: T) => (src: Array) => Array; 665 | declare function insert( 666 | index: number, 667 | elem: T, 668 | ...rest: Array 669 | ): (src: Array) => Array; 670 | declare function insert(index: number, elem: T, src: Array): Array; 671 | 672 | declare function insertAll( 673 | index: number, 674 | ...rest: Array 675 | ): (elem: Array) => (src: Array) => Array; 676 | declare function insertAll( 677 | index: number, 678 | elems: Array, 679 | ...rest: Array 680 | ): (src: Array) => Array; 681 | declare function insertAll( 682 | index: number, 683 | elems: Array, 684 | src: Array 685 | ): Array; 686 | 687 | declare function join(x: string, xs: Array): string; 688 | declare function join( 689 | x: string, 690 | ...rest: Array 691 | ): (xs: Array) => string; 692 | 693 | declare function last>(xs: V): ?T; 694 | declare function last(xs: V): V; 695 | 696 | declare function none(fn: UnaryPredicateFn, xs: Array): boolean; 697 | declare function none( 698 | fn: UnaryPredicateFn, 699 | ...rest: Array 700 | ): (xs: Array) => boolean; 701 | 702 | declare function nth>(i: number, xs: T): ?V; 703 | declare function nth | string>( 704 | i: number, 705 | ...rest: Array 706 | ): ((xs: string) => string) & ((xs: T) => ?V); 707 | declare function nth(i: number, xs: T): T; 708 | 709 | declare type Find = (>( 710 | fn: UnaryPredicateFn 711 | ) => (xs: T) => ?V) & 712 | (>(fn: UnaryPredicateFn, xs: T) => ?V); 713 | 714 | declare var find: Find; 715 | 716 | declare function findLast | O>( 717 | fn: UnaryPredicateFn, 718 | ...rest: Array 719 | ): (xs: T | O) => ?V | O; 720 | declare function findLast | O>( 721 | fn: UnaryPredicateFn, 722 | xs: T | O 723 | ): ?V | O; 724 | 725 | declare function findIndex | { [key: K]: V }>( 726 | fn: UnaryPredicateFn, 727 | ...rest: Array 728 | ): (xs: T) => number; 729 | declare function findIndex | { [key: K]: V }>( 730 | fn: UnaryPredicateFn, 731 | xs: T 732 | ): number; 733 | declare function findLastIndex | { [key: K]: V }>( 734 | fn: UnaryPredicateFn, 735 | ...rest: Array 736 | ): (xs: T) => number; 737 | declare function findLastIndex | { [key: K]: V }>( 738 | fn: UnaryPredicateFn, 739 | xs: T 740 | ): number; 741 | 742 | declare function forEach(fn: (x: T) => ?V, xs: Array): Array; 743 | declare function forEach( 744 | fn: (x: T) => ?V, 745 | ...rest: Array 746 | ): (xs: Array) => Array; 747 | 748 | declare function forEachObjIndexed( 749 | fn: (val: A, key: string, o: O) => B, 750 | o: { [key: string]: A } 751 | ): O; 752 | 753 | declare function forEachObjIndexed( 754 | fn: (val: A, key: string, o: O) => B, 755 | ...args: Array 756 | ): (o: { [key: string]: A }) => O; 757 | 758 | declare function lastIndexOf(x: E, xs: Array): number; 759 | declare function lastIndexOf( 760 | x: E, 761 | ...rest: Array 762 | ): (xs: Array) => number; 763 | 764 | declare function map(fn: (x: T) => R, xs: Array): Array; 765 | declare function map(fn: (x: T) => R, xs: S): S; 766 | declare function map( 767 | fn: (x: T) => R, 768 | ...rest: Array 769 | ): ((xs: { [key: string]: T }) => { [key: string]: R }) & 770 | ((xs: Array) => Array); 771 | declare function map( 772 | fn: (x: T) => R, 773 | ...rest: Array 774 | ): ((xs: S) => S) & ((xs: S) => S); 775 | declare function map( 776 | fn: (x: T) => R, 777 | xs: { [key: string]: T } 778 | ): { [key: string]: R }; 779 | 780 | declare type AccumIterator = (acc: R, x: A) => [R, B]; 781 | declare function mapAccum( 782 | fn: AccumIterator, 783 | acc: R, 784 | xs: Array 785 | ): [R, Array]; 786 | declare function mapAccum( 787 | fn: AccumIterator, 788 | ...rest: Array 789 | ): (acc: R, xs: Array) => [R, Array]; 790 | 791 | declare function mapAccumRight( 792 | fn: AccumIterator, 793 | acc: R, 794 | xs: Array 795 | ): [R, Array]; 796 | declare function mapAccumRight( 797 | fn: AccumIterator, 798 | ...rest: Array 799 | ): (acc: R, xs: Array) => [R, Array]; 800 | 801 | declare function intersperse(x: E, xs: Array): Array; 802 | declare function intersperse( 803 | x: E, 804 | ...rest: Array 805 | ): (xs: Array) => Array; 806 | 807 | declare function pair(a: A, b: B): [A, B]; 808 | declare function pair(a: A, ...rest: Array): (b: B) => [A, B]; 809 | 810 | declare function partition | { [key: K]: V }>( 811 | fn: UnaryPredicateFn, 812 | xs: T 813 | ): [T, T]; 814 | declare function partition | { [key: K]: V }>( 815 | fn: UnaryPredicateFn, 816 | ...rest: Array 817 | ): (xs: T) => [T, T]; 818 | 819 | declare function pluck< 820 | V, 821 | K: string | number, 822 | T: Array | { [key: string]: V }> 823 | >( 824 | k: K, 825 | xs: T 826 | ): Array; 827 | declare function pluck< 828 | V, 829 | K: string | number, 830 | T: Array | { [key: string]: V }> 831 | >( 832 | k: K, 833 | ...rest: Array 834 | ): (xs: T) => Array; 835 | 836 | declare var range: CurriedFunction2>; 837 | 838 | declare function remove( 839 | from: number, 840 | ...rest: Array 841 | ): ((to: number, ...rest: Array) => (src: Array) => Array) & 842 | ((to: number, src: Array) => Array); 843 | declare function remove( 844 | from: number, 845 | to: number, 846 | ...rest: Array 847 | ): (src: Array) => Array; 848 | declare function remove(from: number, to: number, src: Array): Array; 849 | 850 | declare function repeat(x: T, times: number): Array; 851 | declare function repeat( 852 | x: T, 853 | ...rest: Array 854 | ): (times: number) => Array; 855 | 856 | declare function slice | string>( 857 | from: number, 858 | ...rest: Array 859 | ): ((to: number, ...rest: Array) => (src: T) => T) & 860 | ((to: number, src: T) => T); 861 | declare function slice | string>( 862 | from: number, 863 | to: number, 864 | ...rest: Array 865 | ): (src: T) => T; 866 | declare function slice | string>( 867 | from: number, 868 | to: number, 869 | src: T 870 | ): T; 871 | 872 | declare function sort>(fn: (a: V, b: V) => number, xs: T): T; 873 | declare function sort>( 874 | fn: (a: V, b: V) => number, 875 | ...rest: Array 876 | ): (xs: T) => T; 877 | 878 | declare function sortWith>(fns: Array<(a: V, b: V) => number>, xs: T): T; 879 | declare function sortWith>( 880 | fns: Array<(a: V, b: V) => number>, 881 | ...rest: Array 882 | ): (xs: T) => T; 883 | 884 | declare function times(fn: (i: number) => T, n: number): Array; 885 | declare function times( 886 | fn: (i: number) => T, 887 | ...rest: Array 888 | ): (n: number) => Array; 889 | 890 | declare function take | string>(n: number, xs: T): T; 891 | declare function take | string>(n: number): (xs: T) => T; 892 | 893 | declare function takeLast | string>(n: number, xs: T): T; 894 | declare function takeLast | string>(n: number): (xs: T) => T; 895 | 896 | declare function takeLastWhile>( 897 | fn: UnaryPredicateFn, 898 | xs: T 899 | ): T; 900 | declare function takeLastWhile>( 901 | fn: UnaryPredicateFn 902 | ): (xs: T) => T; 903 | 904 | declare function takeWhile>(fn: UnaryPredicateFn, xs: T): T; 905 | declare function takeWhile>( 906 | fn: UnaryPredicateFn 907 | ): (xs: T) => T; 908 | 909 | declare function unfold( 910 | fn: (seed: T) => [R, T] | boolean, 911 | ...rest: Array 912 | ): (seed: T) => Array; 913 | declare function unfold( 914 | fn: (seed: T) => [R, T] | boolean, 915 | seed: T 916 | ): Array; 917 | 918 | declare function uniqBy( 919 | fn: (x: T) => V, 920 | ...rest: Array 921 | ): (xs: Array) => Array; 922 | declare function uniqBy(fn: (x: T) => V, xs: Array): Array; 923 | 924 | declare function uniqWith( 925 | fn: BinaryPredicateFn, 926 | ...rest: Array 927 | ): (xs: Array) => Array; 928 | declare function uniqWith( 929 | fn: BinaryPredicateFn, 930 | xs: Array 931 | ): Array; 932 | 933 | declare function update( 934 | index: number, 935 | ...rest: Array 936 | ): ((elem: T, ...rest: Array) => (src: Array) => Array) & 937 | ((elem: T, src: Array) => Array); 938 | declare function update( 939 | index: number, 940 | elem: T, 941 | ...rest: Array 942 | ): (src: Array) => Array; 943 | declare function update(index: number, elem: T, src: Array): Array; 944 | 945 | // TODO `without` as a transducer 946 | declare function without(xs: Array, src: Array): Array; 947 | declare function without( 948 | xs: Array, 949 | ...rest: Array 950 | ): (src: Array) => Array; 951 | 952 | declare function xprod(xs: Array, ys: Array): Array<[T, S]>; 953 | declare function xprod( 954 | xs: Array, 955 | ...rest: Array 956 | ): (ys: Array) => Array<[T, S]>; 957 | 958 | declare function zip(xs: Array, ys: Array): Array<[T, S]>; 959 | declare function zip( 960 | xs: Array, 961 | ...rest: Array 962 | ): (ys: Array) => Array<[T, S]>; 963 | 964 | declare function zipObj( 965 | xs: Array, 966 | ys: Array 967 | ): { [key: T]: S }; 968 | declare function zipObj( 969 | xs: Array, 970 | ...rest: Array 971 | ): (ys: Array) => { [key: T]: S }; 972 | 973 | declare type NestedArray = Array>; 974 | declare function flatten(xs: NestedArray): Array; 975 | 976 | declare function fromPairs(pair: Array<[T, V]>): { [key: string]: V }; 977 | 978 | declare function init | string>(xs: V): V; 979 | 980 | declare function length(xs: Array): number; 981 | 982 | declare function mergeAll( 983 | objs: Array<{ [key: string]: any }> 984 | ): { [key: string]: any }; 985 | 986 | declare function reverse | string>(xs: V): V; 987 | 988 | declare type Reduce = (( 989 | fn: (acc: A, elm: B) => A 990 | ) => ((init: A) => (xs: Array | $ReadOnlyArray) => A) & 991 | ((init: A, xs: Array | $ReadOnlyArray) => A)) & 992 | (( 993 | fn: (acc: A, elm: B) => A, 994 | init: A 995 | ) => (xs: Array | $ReadOnlyArray) => A) & 996 | (( 997 | fn: (acc: A, elm: B) => A, 998 | init: A, 999 | xs: Array | $ReadOnlyArray 1000 | ) => A); 1001 | 1002 | declare var reduce: Reduce; 1003 | 1004 | declare function reduceBy( 1005 | fn: (acc: B, elem: A) => B, 1006 | ...rest: Array 1007 | ): (( 1008 | acc: B, 1009 | ...rest: Array 1010 | ) => (( 1011 | keyFn: (elem: A) => string, 1012 | ...rest: Array 1013 | ) => (xs: Array) => { [key: string]: B }) & 1014 | ((keyFn: (elem: A) => string, xs: Array) => { [key: string]: B })) & 1015 | (( 1016 | acc: B, 1017 | keyFn: (elem: A) => string, 1018 | ...rest: Array 1019 | ) => (xs: Array) => { [key: string]: B }) & 1020 | (( 1021 | acc: B, 1022 | keyFn: (elem: A) => string, 1023 | xs: Array 1024 | ) => { [key: string]: B }); 1025 | declare function reduceBy( 1026 | fn: (acc: B, elem: A) => B, 1027 | acc: B, 1028 | ...rest: Array 1029 | ): (( 1030 | keyFn: (elem: A) => string, 1031 | ...rest: Array 1032 | ) => (xs: Array) => { [key: string]: B }) & 1033 | ((keyFn: (elem: A) => string, xs: Array) => { [key: string]: B }); 1034 | declare function reduceBy( 1035 | fn: (acc: B, elem: A) => B, 1036 | acc: B, 1037 | keyFn: (elem: A) => string 1038 | ): (xs: Array) => { [key: string]: B }; 1039 | declare function reduceBy( 1040 | fn: (acc: B, elem: A) => B, 1041 | acc: B, 1042 | keyFn: (elem: A) => string, 1043 | xs: Array 1044 | ): { [key: string]: B }; 1045 | 1046 | declare function reduceRight( 1047 | fn: (elem: B, acc: A) => A, 1048 | ...rest: Array 1049 | ): ((init: A, xs: Array) => A) & 1050 | ((init: A, ...rest: Array) => (xs: Array) => A); 1051 | declare function reduceRight( 1052 | fn: (elem: B, acc: A) => A, 1053 | init: A, 1054 | ...rest: Array 1055 | ): (xs: Array) => A; 1056 | declare function reduceRight( 1057 | fn: (elem: B, acc: A) => A, 1058 | init: A, 1059 | xs: Array 1060 | ): A; 1061 | 1062 | declare function scan( 1063 | fn: (acc: A, elem: B) => A, 1064 | ...rest: Array 1065 | ): ((init: A, xs: Array) => Array) & 1066 | ((init: A, ...rest: Array) => (xs: Array) => Array); 1067 | declare function scan( 1068 | fn: (acc: A, elem: B) => A, 1069 | init: A, 1070 | ...rest: Array 1071 | ): (xs: Array) => Array; 1072 | declare function scan( 1073 | fn: (acc: A, elem: B) => A, 1074 | init: A, 1075 | xs: Array 1076 | ): Array; 1077 | 1078 | declare function splitAt | string>(i: number, xs: T): [T, T]; 1079 | declare function splitAt | string>( 1080 | i: number 1081 | ): (xs: T) => [T, T]; 1082 | declare function splitEvery | string>( 1083 | i: number, 1084 | xs: T 1085 | ): Array; 1086 | declare function splitEvery | string>( 1087 | i: number 1088 | ): (xs: T) => Array; 1089 | declare function splitWhen>( 1090 | fn: UnaryPredicateFn, 1091 | xs: T 1092 | ): [T, T]; 1093 | declare function splitWhen>( 1094 | fn: UnaryPredicateFn 1095 | ): (xs: T) => [T, T]; 1096 | 1097 | declare function tail | string>(xs: V): V; 1098 | 1099 | declare function transpose(xs: Array>): Array>; 1100 | 1101 | declare function uniq(xs: Array): Array; 1102 | 1103 | declare function unnest(xs: NestedArray): NestedArray; 1104 | 1105 | declare function zipWith( 1106 | fn: (a: T, b: S) => R, 1107 | ...rest: Array 1108 | ): ((xs: Array, ys: Array) => Array) & 1109 | ((xs: Array, ...rest: Array) => (ys: Array) => Array); 1110 | declare function zipWith( 1111 | fn: (a: T, b: S) => R, 1112 | xs: Array, 1113 | ...rest: Array 1114 | ): (ys: Array) => Array; 1115 | declare function zipWith( 1116 | fn: (a: T, b: S) => R, 1117 | xs: Array, 1118 | ys: Array 1119 | ): Array; 1120 | 1121 | // *Relation 1122 | declare function equals(x: T, ...rest: Array): (y: T) => boolean; 1123 | declare function equals(x: T, y: T): boolean; 1124 | 1125 | declare function eqBy( 1126 | fn: (x: A) => B, 1127 | ...rest: Array 1128 | ): ((x: A, y: A) => boolean) & 1129 | ((x: A, ...rest: Array) => (y: A) => boolean); 1130 | declare function eqBy( 1131 | fn: (x: A) => B, 1132 | x: A, 1133 | ...rest: Array 1134 | ): (y: A) => boolean; 1135 | declare function eqBy(fn: (x: A) => B, x: A, y: A): boolean; 1136 | 1137 | // Flow cares about the order in which these appear. Generally function 1138 | // siguatures should go from smallest arity to largest arity. 1139 | declare type PropEq = (( 1140 | prop: $Keys 1141 | ) => ((val: mixed) => (obj: T) => boolean) & 1142 | ((val: mixed, obj: T) => boolean)) & 1143 | ((prop: $Keys, val: mixed) => (obj: T) => boolean) & 1144 | ((prop: $Keys, val: mixed, obj: T) => boolean) & 1145 | // Array variants. 1146 | (( 1147 | prop: number 1148 | ) => ((val: mixed) => (obj: Array<*>) => boolean) & 1149 | ((val: mixed, obj: Array<*>) => boolean)) & 1150 | ((prop: number, val: mixed) => (obj: Array<*>) => boolean) & 1151 | ((prop: number, val: mixed, obj: Array<*>) => boolean); 1152 | declare var propEq: PropEq; 1153 | 1154 | declare function pathEq( 1155 | path: Array, 1156 | ...rest: Array 1157 | ): ((val: any, o: Object) => boolean) & 1158 | ((val: any, ...rest: Array) => (o: Object) => boolean); 1159 | declare function pathEq( 1160 | path: Array, 1161 | val: any, 1162 | ...rest: Array 1163 | ): (o: Object) => boolean; 1164 | declare function pathEq(path: Array, val: any, o: Object): boolean; 1165 | 1166 | declare function clamp( 1167 | min: T, 1168 | ...rest: Array 1169 | ): ((max: T, ...rest: Array) => (v: T) => T) & ((max: T, v: T) => T); 1170 | declare function clamp( 1171 | min: T, 1172 | max: T, 1173 | ...rest: Array 1174 | ): (v: T) => T; 1175 | declare function clamp(min: T, max: T, v: T): T; 1176 | 1177 | declare function countBy( 1178 | fn: (x: T) => string, 1179 | ...rest: Array 1180 | ): (list: Array) => { [key: string]: number }; 1181 | declare function countBy( 1182 | fn: (x: T) => string, 1183 | list: Array 1184 | ): { [key: string]: number }; 1185 | 1186 | declare function difference( 1187 | xs1: Array, 1188 | ...rest: Array 1189 | ): (xs2: Array) => Array; 1190 | declare function difference(xs1: Array, xs2: Array): Array; 1191 | 1192 | declare function differenceWith( 1193 | fn: BinaryPredicateFn, 1194 | ...rest: Array 1195 | ): ((xs1: Array) => (xs2: Array) => Array) & 1196 | ((xs1: Array, xs2: Array) => Array); 1197 | declare function differenceWith( 1198 | fn: BinaryPredicateFn, 1199 | xs1: Array, 1200 | ...rest: Array 1201 | ): (xs2: Array) => Array; 1202 | declare function differenceWith( 1203 | fn: BinaryPredicateFn, 1204 | xs1: Array, 1205 | xs2: Array 1206 | ): Array; 1207 | 1208 | declare function eqBy(fn: (x: T) => T, x: T, y: T): boolean; 1209 | declare function eqBy(fn: (x: T) => T): (x: T, y: T) => boolean; 1210 | declare function eqBy(fn: (x: T) => T, x: T): (y: T) => boolean; 1211 | declare function eqBy(fn: (x: T) => T): (x: T) => (y: T) => boolean; 1212 | 1213 | declare function gt(x: T, ...rest: Array): (y: T) => boolean; 1214 | declare function gt(x: T, y: T): boolean; 1215 | 1216 | declare function gte(x: T, ...rest: Array): (y: T) => boolean; 1217 | declare function gte(x: T, y: T): boolean; 1218 | 1219 | declare function identical(x: T, ...rest: Array): (y: T) => boolean; 1220 | declare function identical(x: T, y: T): boolean; 1221 | 1222 | declare function intersection(x: Array, y: Array): Array; 1223 | declare function intersection(x: Array): (y: Array) => Array; 1224 | 1225 | declare function intersectionWith( 1226 | fn: BinaryPredicateFn, 1227 | ...rest: Array 1228 | ): ((x: Array, y: Array) => Array) & 1229 | ((x: Array) => (y: Array) => Array); 1230 | declare function intersectionWith( 1231 | fn: BinaryPredicateFn, 1232 | x: Array, 1233 | ...rest: Array 1234 | ): (y: Array) => Array; 1235 | declare function intersectionWith( 1236 | fn: BinaryPredicateFn, 1237 | x: Array, 1238 | y: Array 1239 | ): Array; 1240 | 1241 | declare function lt(x: T, ...rest: Array): (y: T) => boolean; 1242 | declare function lt(x: T, y: T): boolean; 1243 | 1244 | declare function lte(x: T, ...rest: Array): (y: T) => boolean; 1245 | declare function lte(x: T, y: T): boolean; 1246 | 1247 | declare function max(x: T, ...rest: Array): (y: T) => T; 1248 | declare function max(x: T, y: T): T; 1249 | 1250 | declare function maxBy( 1251 | fn: (x: T) => V, 1252 | ...rest: Array 1253 | ): ((x: T, y: T) => T) & ((x: T) => (y: T) => T); 1254 | declare function maxBy( 1255 | fn: (x: T) => V, 1256 | x: T, 1257 | ...rest: Array 1258 | ): (y: T) => T; 1259 | declare function maxBy(fn: (x: T) => V, x: T, y: T): T; 1260 | 1261 | declare function min(x: T, ...rest: Array): (y: T) => T; 1262 | declare function min(x: T, y: T): T; 1263 | 1264 | declare function minBy( 1265 | fn: (x: T) => V, 1266 | ...rest: Array 1267 | ): ((x: T, y: T) => T) & ((x: T) => (y: T) => T); 1268 | declare function minBy( 1269 | fn: (x: T) => V, 1270 | x: T, 1271 | ...rest: Array 1272 | ): (y: T) => T; 1273 | declare function minBy(fn: (x: T) => V, x: T, y: T): T; 1274 | 1275 | declare function sortBy( 1276 | fn: (x: T) => V, 1277 | ...rest: Array 1278 | ): (x: Array) => Array; 1279 | declare function sortBy(fn: (x: T) => V, x: Array): Array; 1280 | 1281 | declare function symmetricDifference( 1282 | x: Array, 1283 | ...rest: Array 1284 | ): (y: Array) => Array; 1285 | declare function symmetricDifference(x: Array, y: Array): Array; 1286 | 1287 | declare function symmetricDifferenceWith( 1288 | fn: BinaryPredicateFn, 1289 | ...rest: Array 1290 | ): ((x: Array, ...rest: Array) => (y: Array) => Array) & 1291 | ((x: Array, y: Array) => Array); 1292 | declare function symmetricDifferenceWith( 1293 | fn: BinaryPredicateFn, 1294 | x: Array, 1295 | ...rest: Array 1296 | ): (y: Array) => Array; 1297 | declare function symmetricDifferenceWith( 1298 | fn: BinaryPredicateFn, 1299 | x: Array, 1300 | y: Array 1301 | ): Array; 1302 | 1303 | declare function union( 1304 | x: Array, 1305 | ...rest: Array 1306 | ): (y: Array) => Array; 1307 | declare function union(x: Array, y: Array): Array; 1308 | 1309 | declare function unionWith( 1310 | fn: BinaryPredicateFn, 1311 | ...rest: Array 1312 | ): ((x: Array, ...rest: Array) => (y: Array) => Array) & 1313 | ((x: Array, y: Array) => Array); 1314 | declare function unionWith( 1315 | fn: BinaryPredicateFn, 1316 | x: Array, 1317 | ...rest: Array 1318 | ): (y: Array) => Array; 1319 | declare function unionWith( 1320 | fn: BinaryPredicateFn, 1321 | x: Array, 1322 | y: Array 1323 | ): Array; 1324 | 1325 | // *Object 1326 | declare function assoc( 1327 | key: string, 1328 | ...args: Array 1329 | ): ((val: T, ...rest: Array) => (src: S) => { [k: string]: T }) & 1330 | ((val: T, src: S) => { [k: string]: T } & S); 1331 | declare function assoc( 1332 | key: string, 1333 | val: T, 1334 | ...args: Array 1335 | ): (src: S) => { [k: string]: T } & S; 1336 | declare function assoc( 1337 | key: string, 1338 | val: T, 1339 | src: S 1340 | ): { [k: string]: T } & S; 1341 | 1342 | declare function assocPath( 1343 | key: Array, 1344 | ...args: Array 1345 | ): ((val: T, ...rest: Array) => (src: S) => { [k: string]: T }) & 1346 | ((val: T) => (src: S) => { [k: string]: T } & S); 1347 | declare function assocPath( 1348 | key: Array, 1349 | val: T, 1350 | ...args: Array 1351 | ): (src: S) => { [k: string]: T } & S; 1352 | declare function assocPath( 1353 | key: Array, 1354 | val: T, 1355 | src: S 1356 | ): { [k: string]: T } & S; 1357 | 1358 | declare function clone(src: T): $Shape; 1359 | 1360 | declare function dissoc( 1361 | key: string, 1362 | ...args: Array 1363 | ): (src: { [k: string]: T }) => { [k: string]: T }; 1364 | declare function dissoc( 1365 | key: string, 1366 | src: { [k: string]: T } 1367 | ): { [k: string]: T }; 1368 | 1369 | declare function dissocPath( 1370 | key: Array, 1371 | ...args: Array 1372 | ): (src: { [k: string]: T }) => { [k: string]: T }; 1373 | declare function dissocPath( 1374 | key: Array, 1375 | src: { [k: string]: T } 1376 | ): { [k: string]: T }; 1377 | 1378 | declare function evolve(NestedObject, A): A; 1379 | declare function evolve(NestedObject): A => A; 1380 | 1381 | declare function eqProps( 1382 | key: string, 1383 | ...args: Array 1384 | ): ((o1: Object, ...rest: Array) => (o2: Object) => boolean) & 1385 | ((o1: Object, o2: Object) => boolean); 1386 | declare function eqProps( 1387 | key: string, 1388 | o1: Object, 1389 | ...args: Array 1390 | ): (o2: Object) => boolean; 1391 | declare function eqProps(key: string, o1: Object, o2: Object): boolean; 1392 | 1393 | declare function has(key: string, o: Object): boolean; 1394 | declare function has(key: string): (o: Object) => boolean; 1395 | 1396 | declare function hasIn(key: string, o: Object): boolean; 1397 | declare function hasIn(key: string): (o: Object) => boolean; 1398 | 1399 | declare function invert(o: Object): { [k: string]: Array }; 1400 | declare function invertObj(o: Object): { [k: string]: string }; 1401 | 1402 | declare function keys(o: Object): Array; 1403 | 1404 | /* TODO 1405 | lens 1406 | lensIndex 1407 | lensPath 1408 | lensProp 1409 | */ 1410 | 1411 | declare function mapObjIndexed( 1412 | fn: (val: A, key: string, o: Object) => B, 1413 | o: { [key: string]: A } 1414 | ): { [key: string]: B }; 1415 | declare function mapObjIndexed( 1416 | fn: (val: A, key: string, o: Object) => B, 1417 | ...args: Array 1418 | ): (o: { [key: string]: A }) => { [key: string]: B }; 1419 | 1420 | declare function merge(o1: A, ...rest: Array): (o2: B) => A & B; 1421 | declare function merge(o1: A, o2: B): A & B; 1422 | 1423 | declare function mergeAll( 1424 | os: Array<{ [k: string]: T }> 1425 | ): { [k: string]: T }; 1426 | 1427 | declare function mergeWith< 1428 | T, 1429 | S, 1430 | R, 1431 | A: { [k: string]: T }, 1432 | B: { [k: string]: S } 1433 | >( 1434 | fn: (v1: T, v2: S) => R 1435 | ): ((o1: A, ...rest: Array) => (o2: B) => A & B) & 1436 | ((o1: A, o2: B) => A & B); 1437 | declare function mergeWith< 1438 | T, 1439 | S, 1440 | R, 1441 | A: { [k: string]: T }, 1442 | B: { [k: string]: S } 1443 | >( 1444 | fn: (v1: T, v2: S) => R, 1445 | o1: A, 1446 | o2: B 1447 | ): A & B; 1448 | declare function mergeWith< 1449 | T, 1450 | S, 1451 | R, 1452 | A: { [k: string]: T }, 1453 | B: { [k: string]: S } 1454 | >( 1455 | fn: (v1: T, v2: S) => R, 1456 | o1: A, 1457 | ...rest: Array 1458 | ): (o2: B) => A & B; 1459 | 1460 | declare function mergeWithKey< 1461 | T, 1462 | S, 1463 | R, 1464 | A: { [k: string]: T }, 1465 | B: { [k: string]: S } 1466 | >( 1467 | fn: (key: $Keys, v1: T, v2: S) => R 1468 | ): ((o1: A, ...rest: Array) => (o2: B) => A & B) & 1469 | ((o1: A, o2: B) => A & B); 1470 | declare function mergeWithKey< 1471 | T, 1472 | S, 1473 | R, 1474 | A: { [k: string]: T }, 1475 | B: { [k: string]: S } 1476 | >( 1477 | fn: (key: $Keys, v1: T, v2: S) => R, 1478 | o1: A, 1479 | o2: B 1480 | ): A & B; 1481 | declare function mergeWithKey< 1482 | T, 1483 | S, 1484 | R, 1485 | A: { [k: string]: T }, 1486 | B: { [k: string]: S } 1487 | >( 1488 | fn: (key: $Keys, v1: T, v2: S) => R, 1489 | o1: A, 1490 | ...rest: Array 1491 | ): (o2: B) => A & B; 1492 | 1493 | declare function objOf( 1494 | key: string, 1495 | ...rest: Array 1496 | ): (val: T) => { [key: string]: T }; 1497 | declare function objOf(key: string, val: T): { [key: string]: T }; 1498 | 1499 | declare function omit( 1500 | keys: Array<$Keys>, 1501 | ...rest: Array 1502 | ): (val: T) => Object; 1503 | declare function omit(keys: Array<$Keys>, val: T): Object; 1504 | 1505 | // TODO over 1506 | 1507 | declare function path( 1508 | p: Array, 1509 | ...rest: Array 1510 | ): (o: NestedObject) => V; 1511 | declare function path( 1512 | p: Array, 1513 | ...rest: Array 1514 | ): (o: null | void) => void; 1515 | declare function path( 1516 | p: Array, 1517 | ...rest: Array 1518 | ): (o: mixed) => ?V; 1519 | declare function path>(p: Array, o: A): V; 1520 | declare function path(p: Array, o: A): void; 1521 | declare function path(p: Array, o: A): ?V; 1522 | 1523 | declare function path( 1524 | p: Array, 1525 | ...rest: Array 1526 | ): (o: NestedObject) => V; 1527 | declare function path( 1528 | p: Array, 1529 | ...rest: Array 1530 | ): (o: null | void) => void; 1531 | declare function path( 1532 | p: Array, 1533 | ...rest: Array 1534 | ): (o: mixed) => ?V; 1535 | declare function path>(p: Array, o: A): V; 1536 | declare function path(p: Array, o: A): void; 1537 | declare function path(p: Array, o: A): ?V; 1538 | 1539 | declare function pathOr>( 1540 | or: T, 1541 | ...rest: Array 1542 | ): ((p: Array, ...rest: Array) => (o: ?A) => V | T) & 1543 | ((p: Array, o: ?A) => V | T); 1544 | declare function pathOr>( 1545 | or: T, 1546 | p: Array, 1547 | ...rest: Array 1548 | ): (o: ?A) => V | T; 1549 | declare function pathOr>( 1550 | or: T, 1551 | p: Array, 1552 | o: ?A 1553 | ): V | T; 1554 | 1555 | declare function pick( 1556 | keys: Array, 1557 | ...rest: Array 1558 | ): (val: { [key: string]: A }) => { [key: string]: A }; 1559 | declare function pick( 1560 | keys: Array, 1561 | val: { [key: string]: A } 1562 | ): { [key: string]: A }; 1563 | 1564 | declare function pickAll( 1565 | keys: Array, 1566 | ...rest: Array 1567 | ): (val: { [key: string]: A }) => { [key: string]: ?A }; 1568 | declare function pickAll( 1569 | keys: Array, 1570 | val: { [key: string]: A } 1571 | ): { [key: string]: ?A }; 1572 | 1573 | declare function pickBy( 1574 | fn: BinaryPredicateFn2, 1575 | ...rest: Array 1576 | ): (val: { [key: string]: A }) => { [key: string]: A }; 1577 | declare function pickBy( 1578 | fn: BinaryPredicateFn2, 1579 | val: { [key: string]: A } 1580 | ): { [key: string]: A }; 1581 | 1582 | declare function project( 1583 | keys: Array, 1584 | ...rest: Array 1585 | ): (val: Array<{ [key: string]: T }>) => Array<{ [key: string]: T }>; 1586 | declare function project( 1587 | keys: Array, 1588 | val: Array<{ [key: string]: T }> 1589 | ): Array<{ [key: string]: T }>; 1590 | 1591 | declare function prop( 1592 | key: T, 1593 | ...rest: Array 1594 | ): (o: O) => $ElementType; 1595 | declare function prop( 1596 | __: $npm$ramda$Placeholder, 1597 | o: O 1598 | ): (key: T) => $ElementType; 1599 | declare function prop(key: T, o: O): $ElementType; 1600 | 1601 | declare function propOr( 1602 | or: T, 1603 | ...rest: Array 1604 | ): ((p: $Keys, ...rest: Array) => (o: A) => V | T) & 1605 | ((p: $Keys, o: A) => V | T); 1606 | declare function propOr( 1607 | or: T, 1608 | p: $Keys, 1609 | ...rest: Array 1610 | ): (o: A) => V | T; 1611 | declare function propOr( 1612 | or: T, 1613 | p: $Keys, 1614 | o: A 1615 | ): V | T; 1616 | 1617 | declare function keysIn(o: Object): Array; 1618 | 1619 | declare function props( 1620 | keys: Array, 1621 | ...rest: Array 1622 | ): (o: O) => Array<$ElementType>; 1623 | declare function props( 1624 | keys: Array, 1625 | o: O 1626 | ): Array<$ElementType>; 1627 | 1628 | // TODO set 1629 | 1630 | declare function toPairs( 1631 | o: O 1632 | ): Array<[$Keys, T]>; 1633 | 1634 | declare function toPairsIn( 1635 | o: O 1636 | ): Array<[string, T]>; 1637 | 1638 | declare function values(o: O): Array; 1639 | 1640 | declare function valuesIn(o: O): Array; 1641 | 1642 | declare function where( 1643 | predObj: $ObjMap, 1644 | o: O 1645 | ): boolean; 1646 | declare function where( 1647 | predObj: $ObjMap 1648 | ): O => boolean; 1649 | 1650 | declare function whereEq( 1651 | predObj: O, 1652 | ...rest: Array 1653 | ): (o: $Shape) => boolean; 1654 | declare function whereEq( 1655 | predObj: O, 1656 | o: $Shape 1657 | ): boolean; 1658 | 1659 | // TODO view 1660 | 1661 | // *Function 1662 | declare var __: $npm$ramda$Placeholder; 1663 | 1664 | declare var T: (_: any) => true; 1665 | declare var F: (_: any) => false; 1666 | 1667 | declare function addIndex( 1668 | iterFn: (fn: (x: A) => B, xs: Array) => Array 1669 | ): (fn: (x: A, idx: number, xs: Array) => B, xs: Array) => Array; 1670 | 1671 | declare function always(x: T): (x: any) => T; 1672 | 1673 | declare function ap( 1674 | fns: Array<(x: T) => V>, 1675 | ...rest: Array 1676 | ): (xs: Array) => Array; 1677 | declare function ap(fns: Array<(x: T) => V>, xs: Array): Array; 1678 | 1679 | declare function apply( 1680 | fn: (...args: Array) => V, 1681 | ...rest: Array 1682 | ): (xs: Array) => V; 1683 | declare function apply(fn: (...args: Array) => V, xs: Array): V; 1684 | 1685 | declare function applySpec< 1686 | V, 1687 | S, 1688 | A: Array, 1689 | T: NestedObject<(...args: A) => S> 1690 | >( 1691 | spec: T 1692 | ): (...args: A) => NestedObject; 1693 | 1694 | declare function binary( 1695 | fn: (...args: Array) => T 1696 | ): (x: any, y: any) => T; 1697 | 1698 | declare function bind( 1699 | fn: (...args: Array) => any, 1700 | thisObj: T 1701 | ): (...args: Array) => any; 1702 | 1703 | declare function call( 1704 | fn: (...args: Array) => T, 1705 | ...args: Array 1706 | ): T; 1707 | 1708 | declare function comparator( 1709 | fn: BinaryPredicateFn 1710 | ): (x: T, y: T) => number; 1711 | 1712 | // TODO add tests 1713 | declare function construct( 1714 | ctor: Class> 1715 | ): (x: T) => GenericContructor; 1716 | 1717 | // TODO add tests 1718 | declare function constructN( 1719 | n: number, 1720 | ctor: Class> 1721 | ): (...args: any) => GenericContructorMulti; 1722 | 1723 | // TODO make less generic 1724 | declare function converge(after: Function, fns: Array): Function; 1725 | 1726 | declare function empty(x: T): T; 1727 | 1728 | declare function flip( 1729 | fn: (arg0: A, arg1: B) => TResult 1730 | ): CurriedFunction2; 1731 | declare function flip( 1732 | fn: (arg0: A, arg1: B, arg2: C) => TResult 1733 | ): ((arg0: B, arg1: A, ...rest: Array) => (arg2: C) => TResult) & 1734 | ((arg0: B, arg1: A, arg2: C) => TResult); 1735 | declare function flip( 1736 | fn: (arg0: A, arg1: B, arg2: C, arg3: D) => TResult 1737 | ): (( 1738 | arg1: B, 1739 | arg0: A, 1740 | ...rest: Array 1741 | ) => (arg2: C, arg3: D) => TResult) & 1742 | ((arg1: B, arg0: A, arg2: C, arg3: D) => TResult); 1743 | declare function flip( 1744 | fn: (arg0: A, arg1: B, arg2: C, arg3: D, arg4: E) => TResult 1745 | ): (( 1746 | arg1: B, 1747 | arg0: A, 1748 | ...rest: Array 1749 | ) => (arg2: C, arg3: D, arg4: E) => TResult) & 1750 | ((arg1: B, arg0: A, arg2: C, arg3: D, arg4: E) => TResult); 1751 | 1752 | declare function identity(x: T): T; 1753 | 1754 | declare function invoker( 1755 | arity: number, 1756 | name: $Enum 1757 | ): CurriedFunction2 & 1758 | CurriedFunction3 & 1759 | CurriedFunction4; 1760 | 1761 | declare function juxt( 1762 | fns: Array<(...args: Array) => T> 1763 | ): (...args: Array) => Array; 1764 | 1765 | // TODO lift 1766 | 1767 | // TODO liftN 1768 | 1769 | declare function memoize) => B>(fn: T): T; 1770 | 1771 | declare function nAry( 1772 | arity: number, 1773 | fn: (...args: Array) => T 1774 | ): (...args: Array) => T; 1775 | 1776 | declare function nthArg(n: number): (...args: Array) => T; 1777 | 1778 | declare function of(x: T): Array; 1779 | 1780 | declare function once) => B>(fn: T): T; 1781 | 1782 | declare var partial: Partial; 1783 | // TODO partialRight 1784 | // TODO pipeK 1785 | 1786 | declare function tap(fn: (x: T) => any, ...rest: Array): (x: T) => T; 1787 | declare function tap(fn: (x: T) => any, x: T): T; 1788 | 1789 | declare function tryCatch( 1790 | tryer: (a: A) => B 1791 | ): ((catcher: (e: E, a: A) => B) => (a: A) => B) & 1792 | ((catcher: (e: E, a: A) => B, a: A) => B); 1793 | declare function tryCatch( 1794 | tryer: (a: A) => B, 1795 | catcher: (e: E, a: A) => B 1796 | ): (a: A) => B; 1797 | declare function tryCatch( 1798 | tryer: (a: A) => B, 1799 | catcher: (e: E, a: A) => B, 1800 | a: A 1801 | ): B; 1802 | 1803 | declare function unapply( 1804 | fn: (xs: Array) => V 1805 | ): (...args: Array) => V; 1806 | 1807 | declare function unary(fn: (...args: Array) => T): (x: any) => T; 1808 | 1809 | declare var uncurryN: ((2, (A) => B => C) => (A, B) => C) & 1810 | ((3, (A) => B => C => D) => (A, B, C) => D) & 1811 | ((4, (A) => B => C => D => E) => (A, B, C, D) => E) & 1812 | (( 1813 | 5, 1814 | (A) => B => C => D => E => F 1815 | ) => (A, B, C, D, E) => F) & 1816 | (( 1817 | 6, 1818 | (A) => B => C => D => E => F => G 1819 | ) => (A, B, C, D, E, F) => G) & 1820 | (( 1821 | 7, 1822 | (A) => B => C => D => E => F => G => H 1823 | ) => (A, B, C, D, E, F, G) => H) & 1824 | (( 1825 | 8, 1826 | (A) => B => C => D => E => F => G => H => I 1827 | ) => (A, B, C, D, E, F, G, H) => I); 1828 | 1829 | //TODO useWith 1830 | 1831 | declare function wrap) => B>( 1832 | fn: F, 1833 | fn2: (fn: F, ...args: Array) => D 1834 | ): (...args: Array) => D; 1835 | 1836 | // *Logic 1837 | 1838 | declare function allPass( 1839 | fns: Array<(...args: Array) => boolean> 1840 | ): (...args: Array) => boolean; 1841 | 1842 | declare function and( 1843 | x: boolean, 1844 | ...rest: Array 1845 | ): (y: boolean) => boolean; 1846 | declare function and(x: boolean, y: boolean): boolean; 1847 | 1848 | declare function anyPass( 1849 | fns: Array<(...args: Array) => boolean> 1850 | ): (...args: Array) => boolean; 1851 | 1852 | declare function both( 1853 | x: (...args: Array) => boolean, 1854 | ...rest: Array 1855 | ): (y: (...args: Array) => boolean) => (...args: Array) => boolean; 1856 | declare function both( 1857 | x: (...args: Array) => boolean, 1858 | y: (...args: Array) => boolean 1859 | ): (...args: Array) => boolean; 1860 | 1861 | declare function complement( 1862 | x: (...args: Array) => boolean 1863 | ): (...args: Array) => boolean; 1864 | 1865 | declare function cond( 1866 | fns: Array<[(...args: Array) => boolean, (...args: Array) => B]> 1867 | ): (...args: Array) => B; 1868 | 1869 | declare function defaultTo( 1870 | d: T, 1871 | ...rest: Array 1872 | ): (x: ?V) => V | T; 1873 | declare function defaultTo(d: T, x: ?V): V | T; 1874 | 1875 | declare function either( 1876 | x: (...args: Array) => *, 1877 | ...rest: Array 1878 | ): (y: (...args: Array) => *) => (...args: Array) => *; 1879 | declare function either( 1880 | x: (...args: Array) => *, 1881 | y: (...args: Array) => * 1882 | ): (...args: Array) => *; 1883 | 1884 | declare function ifElse( 1885 | cond: (...args: Array) => boolean, 1886 | ...rest: Array 1887 | ): (( 1888 | f1: (...args: Array) => B, 1889 | ...rest: Array 1890 | ) => (f2: (...args: Array) => C) => (...args: Array) => B | C) & 1891 | (( 1892 | f1: (...args: Array) => B, 1893 | f2: (...args: Array) => C 1894 | ) => (...args: Array) => B | C); 1895 | declare function ifElse( 1896 | cond: (...args: Array) => boolean, 1897 | f1: (...args: Array) => B, 1898 | f2: (...args: Array) => C 1899 | ): (...args: Array) => B | C; 1900 | 1901 | declare function isEmpty(x: ?Array | Object | string): boolean; 1902 | 1903 | declare function not(x: boolean): boolean; 1904 | 1905 | declare function or(x: boolean, y: boolean): boolean; 1906 | declare function or(x: boolean): (y: boolean) => boolean; 1907 | 1908 | declare var pathSatisfies: CurriedFunction3< 1909 | UnaryPredicateFn, 1910 | string[], 1911 | Object, 1912 | boolean 1913 | >; 1914 | 1915 | declare function propSatisfies( 1916 | cond: (x: T) => boolean, 1917 | prop: string, 1918 | o: NestedObject 1919 | ): boolean; 1920 | declare function propSatisfies( 1921 | cond: (x: T) => boolean, 1922 | prop: string, 1923 | ...rest: Array 1924 | ): (o: NestedObject) => boolean; 1925 | declare function propSatisfies( 1926 | cond: (x: T) => boolean, 1927 | ...rest: Array 1928 | ): ((prop: string, ...rest: Array) => (o: NestedObject) => boolean) & 1929 | ((prop: string, o: NestedObject) => boolean); 1930 | 1931 | declare function unless( 1932 | pred: UnaryPredicateFn, 1933 | ...rest: Array 1934 | ): ((fn: (x: S) => V, ...rest: Array) => (x: T | S) => T | V) & 1935 | ((fn: (x: S) => V, x: T | S) => T | V); 1936 | declare function unless( 1937 | pred: UnaryPredicateFn, 1938 | fn: (x: S) => V, 1939 | ...rest: Array 1940 | ): (x: T | S) => V | T; 1941 | declare function unless( 1942 | pred: UnaryPredicateFn, 1943 | fn: (x: S) => V, 1944 | x: T | S 1945 | ): T | V; 1946 | 1947 | declare function until( 1948 | pred: UnaryPredicateFn, 1949 | ...rest: Array 1950 | ): ((fn: (x: T) => T, ...rest: Array) => (x: T) => T) & 1951 | ((fn: (x: T) => T, x: T) => T); 1952 | declare function until( 1953 | pred: UnaryPredicateFn, 1954 | fn: (x: T) => T, 1955 | ...rest: Array 1956 | ): (x: T) => T; 1957 | declare function until( 1958 | pred: UnaryPredicateFn, 1959 | fn: (x: T) => T, 1960 | x: T 1961 | ): T; 1962 | 1963 | declare function when( 1964 | pred: UnaryPredicateFn, 1965 | ...rest: Array 1966 | ): ((fn: (x: S) => V, ...rest: Array) => (x: T | S) => T | V) & 1967 | ((fn: (x: S) => V, x: T | S) => T | V); 1968 | declare function when( 1969 | pred: UnaryPredicateFn, 1970 | fn: (x: S) => V, 1971 | ...rest: Array 1972 | ): (x: T | S) => V | T; 1973 | declare function when( 1974 | pred: UnaryPredicateFn, 1975 | fn: (x: S) => V, 1976 | x: T | S 1977 | ): T | V; 1978 | } 1979 | --------------------------------------------------------------------------------