diff --git a/internal/linker/index.js b/internal/linker/index.js index da63b35c35..531bf070e8 100644 --- a/internal/linker/index.js +++ b/internal/linker/index.js @@ -372,6 +372,9 @@ function main(args, runfiles) { if (runfilesPath.startsWith(`${bin}/`)) { runfilesPath = runfilesPath.slice(bin.length + 1); } + else if (runfilesPath === bin) { + runfilesPath = ''; + } const externalPrefix = 'external/'; if (runfilesPath.startsWith(externalPrefix)) { runfilesPath = runfilesPath.slice(externalPrefix.length); diff --git a/internal/linker/link_node_modules.ts b/internal/linker/link_node_modules.ts index b8067ad21c..ab38b4bf8b 100644 --- a/internal/linker/link_node_modules.ts +++ b/internal/linker/link_node_modules.ts @@ -601,6 +601,8 @@ export async function main(args: string[], runfiles: Runfiles) { let runfilesPath = modulePath; if (runfilesPath.startsWith(`${bin}/`)) { runfilesPath = runfilesPath.slice(bin.length + 1); + } else if (runfilesPath === bin) { + runfilesPath = ''; } const externalPrefix = 'external/'; if (runfilesPath.startsWith(externalPrefix)) { diff --git a/internal/linker/test/issue_1823/BUILD.bazel b/internal/linker/test/issue_1823/BUILD.bazel new file mode 100644 index 0000000000..ca876256df --- /dev/null +++ b/internal/linker/test/issue_1823/BUILD.bazel @@ -0,0 +1,30 @@ +load("@build_bazel_rules_nodejs//:index.bzl", "copy_to_bin") +load("@npm_bazel_typescript//:index.bzl", "ts_library") +load(":ts_jest_test.bzl", "ts_jest_test") + +ts_library( + name = "lib", + srcs = [ + "lib.ts", + ], + deps = [ + ], +) + +# Shenanigans for Windows which doesn't have runfiles symlinks +# We need the jest config to be in the output tree where the specs are +copy_to_bin( + name = "jest_config", + srcs = ["jest.config.js"], +) + +ts_jest_test( + name = "test", + srcs = [ + "lib.test.ts", + ], + jest_config = ":jest_config", + deps = [ + ":lib", + ], +) diff --git a/internal/linker/test/issue_1823/jest.config.js b/internal/linker/test/issue_1823/jest.config.js new file mode 100644 index 0000000000..25c9bac510 --- /dev/null +++ b/internal/linker/test/issue_1823/jest.config.js @@ -0,0 +1,3 @@ +module.exports = { + testEnvironment: 'node', +}; diff --git a/internal/linker/test/issue_1823/lib.test.ts b/internal/linker/test/issue_1823/lib.test.ts new file mode 100644 index 0000000000..0ea73f6237 --- /dev/null +++ b/internal/linker/test/issue_1823/lib.test.ts @@ -0,0 +1,7 @@ +import {doStuff} from './lib'; + +describe('doStuff', () => { + it('should do some stuff', () => { + expect(doStuff('boom')).toContain('boom'); + }); +}); diff --git a/internal/linker/test/issue_1823/lib.ts b/internal/linker/test/issue_1823/lib.ts new file mode 100644 index 0000000000..d7318214c4 --- /dev/null +++ b/internal/linker/test/issue_1823/lib.ts @@ -0,0 +1,3 @@ +export function doStuff(a: string): string { + return a +} \ No newline at end of file diff --git a/internal/linker/test/issue_1823/ts_jest_test.bzl b/internal/linker/test/issue_1823/ts_jest_test.bzl new file mode 100644 index 0000000000..7a5e7f9882 --- /dev/null +++ b/internal/linker/test/issue_1823/ts_jest_test.bzl @@ -0,0 +1,35 @@ +"""Simple macro around jest_test""" + +load("@npm//jest-cli:index.bzl", _jest_test = "jest_test") +load("@npm_bazel_typescript//:index.bzl", "ts_library") + +def ts_jest_test(name, srcs, jest_config, deps = [], data = [], **kwargs): + """A macro around the autogenerated jest_test rule that takes typescript sources + +Uses ts_library devmode UMD output""" + + ts_library( + name = "%s_ts" % name, + srcs = srcs, + data = data, + deps = deps + ["@npm//@types/jest"], + ) + native.filegroup( + name = "%s_umd" % name, + srcs = [":%s_ts" % name], + output_group = "es5_sources", + ) + + args = [ + "--no-cache", + "--no-watchman", + "--ci", + ] + args.extend(["--config", "$$(rlocation $(rootpath %s))" % jest_config]) + + _jest_test( + name = name, + data = [jest_config, ":%s_umd" % name] + deps + data, + templated_args = args, + **kwargs + ) diff --git a/internal/linker/test/issue_1823_use_ts_library_esm/.babelrc b/internal/linker/test/issue_1823_use_ts_library_esm/.babelrc new file mode 100644 index 0000000000..af2cb75a9a --- /dev/null +++ b/internal/linker/test/issue_1823_use_ts_library_esm/.babelrc @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "@babel/preset-env", + { + "targets": { + "node": "current", + }, + }, + ], + ] +} \ No newline at end of file diff --git a/internal/linker/test/issue_1823_use_ts_library_esm/BUILD.bazel b/internal/linker/test/issue_1823_use_ts_library_esm/BUILD.bazel new file mode 100644 index 0000000000..b6ef89a400 --- /dev/null +++ b/internal/linker/test/issue_1823_use_ts_library_esm/BUILD.bazel @@ -0,0 +1,50 @@ +load("@build_bazel_rules_nodejs//:index.bzl", "copy_to_bin") +load("@npm_bazel_typescript//:index.bzl", "ts_library") +load(":ts_jest_test.bzl", "ts_jest_test") + +ts_library( + name = "lib", + srcs = [ + "lib.ts", + ], + # NB: hacky hidden configuration setting so that es6_sources does not include tsickle + # .externs.js outputs + runtime = "nodejs", + deps = [ + "@npm//@types/node", + ], +) + +# Shenanigans for Windows which doesn't have runfiles symlinks +# We need the jest config to be in the output tree where the specs are +copy_to_bin( + name = "jest_config", + srcs = [ + "jest.config.js", + ], +) + +# Same goes for babelrc. We can't add it to the jest_config copy_to_bin +# since must be a file that is passed to jest in the --config arg. +copy_to_bin( + name = "babel_rc", + srcs = [ + ".babelrc", + ], +) + +ts_jest_test( + name = "test", + srcs = [ + "lib.test.ts", + ], + data = [ + ":babel_rc", + ], + jest_config = ":jest_config", + deps = [ + ":lib", + "@npm//@babel/preset-env", + "@npm//babel-jest", + ], +) diff --git a/internal/linker/test/issue_1823_use_ts_library_esm/jest.config.js b/internal/linker/test/issue_1823_use_ts_library_esm/jest.config.js new file mode 100644 index 0000000000..a29201ecef --- /dev/null +++ b/internal/linker/test/issue_1823_use_ts_library_esm/jest.config.js @@ -0,0 +1,18 @@ +const isWindows = process.platform === 'win32'; + +module.exports = { + testEnvironment: 'node', + transform: {'^.+\\.mjs?$': 'babel-jest'}, + // More Shenanigans for Windows where jest is running both the original .mjs & the babel + // transformed .js and fails. Not sure what why this is the case or exactly why changing + // testMatch solves it but not a priority to solve: + // ``` + // PASS ../../lib.test.js + // FAIL ../../lib.test.mjs + // C:\b\swkzcapm\execroot\build_bazel_rules_nodejs\bazel-out\x64_windows-fastbuild\bin\internal\linker\test\issue_1823_use_ts_library_esm\lib.test.mjs:1 + // import { doStuff } from './lib'; + // ^^^^^^ + // ``` + testMatch: [isWindows ? '**/?(*.)(spec|test).js?(x)' : '**/?(*.)(spec|test).?(m)js?(x)'], + moduleFileExtensions: ['js', 'mjs'], +}; diff --git a/internal/linker/test/issue_1823_use_ts_library_esm/lib.test.ts b/internal/linker/test/issue_1823_use_ts_library_esm/lib.test.ts new file mode 100644 index 0000000000..0ea73f6237 --- /dev/null +++ b/internal/linker/test/issue_1823_use_ts_library_esm/lib.test.ts @@ -0,0 +1,7 @@ +import {doStuff} from './lib'; + +describe('doStuff', () => { + it('should do some stuff', () => { + expect(doStuff('boom')).toContain('boom'); + }); +}); diff --git a/internal/linker/test/issue_1823_use_ts_library_esm/lib.ts b/internal/linker/test/issue_1823_use_ts_library_esm/lib.ts new file mode 100644 index 0000000000..d7318214c4 --- /dev/null +++ b/internal/linker/test/issue_1823_use_ts_library_esm/lib.ts @@ -0,0 +1,3 @@ +export function doStuff(a: string): string { + return a +} \ No newline at end of file diff --git a/internal/linker/test/issue_1823_use_ts_library_esm/ts_jest_test.bzl b/internal/linker/test/issue_1823_use_ts_library_esm/ts_jest_test.bzl new file mode 100644 index 0000000000..1894098ca2 --- /dev/null +++ b/internal/linker/test/issue_1823_use_ts_library_esm/ts_jest_test.bzl @@ -0,0 +1,38 @@ +"""Simple macro around jest_test""" + +load("@npm//jest-cli:index.bzl", _jest_test = "jest_test") +load("@npm_bazel_typescript//:index.bzl", "ts_library") + +def ts_jest_test(name, srcs, jest_config, deps = [], data = [], **kwargs): + """A macro around the autogenerated jest_test rule that takes typescript sources + +Uses ts_library prodmode ems output""" + + ts_library( + name = "%s_ts" % name, + srcs = srcs, + data = data, + deps = deps + ["@npm//@types/jest"], + # NB: hacky hidden configuration setting so that es6_sources does not include tsickle + # .externs.js outputs + runtime = "nodejs", + ) + native.filegroup( + name = "%s_esm" % name, + srcs = [":%s_ts" % name], + output_group = "es6_sources", + ) + + args = [ + "--no-cache", + "--no-watchman", + "--ci", + ] + args.extend(["--config", "$$(rlocation $(rootpath %s))" % jest_config]) + + _jest_test( + name = name, + data = [jest_config, ":%s_esm" % name] + deps + data, + templated_args = args, + **kwargs + ) diff --git a/internal/linker/test/local/fit/tsconfig.json b/internal/linker/test/local/fit/tsconfig.json index 8f1cc9cec2..67dcdc9d6a 100644 --- a/internal/linker/test/local/fit/tsconfig.json +++ b/internal/linker/test/local/fit/tsconfig.json @@ -1,5 +1,6 @@ { "compilerOptions": { - "declaration": true + "declaration": true, + "types": [] } } \ No newline at end of file diff --git a/internal/node/test/lib2/tsconfig.json b/internal/node/test/lib2/tsconfig.json index 9e26dfeeb6..7812f071fb 100644 --- a/internal/node/test/lib2/tsconfig.json +++ b/internal/node/test/lib2/tsconfig.json @@ -1 +1,5 @@ -{} \ No newline at end of file +{ + "compilerOptions": { + "types": ["node"] + } +} diff --git a/internal/node/test/tsconfig.json b/internal/node/test/tsconfig.json index 346e6cea95..d6e80d862e 100644 --- a/internal/node/test/tsconfig.json +++ b/internal/node/test/tsconfig.json @@ -1,3 +1,6 @@ { + "compilerOptions": { + "types": [] + }, "include": ["main.ts"] } diff --git a/internal/pkg_npm/test/linking/fub/tsconfig.json b/internal/pkg_npm/test/linking/fub/tsconfig.json index 8f1cc9cec2..67dcdc9d6a 100644 --- a/internal/pkg_npm/test/linking/fub/tsconfig.json +++ b/internal/pkg_npm/test/linking/fub/tsconfig.json @@ -1,5 +1,6 @@ { "compilerOptions": { - "declaration": true + "declaration": true, + "types": [] } } \ No newline at end of file diff --git a/internal/pkg_npm/test/linking/fuz/tsconfig.json b/internal/pkg_npm/test/linking/fuz/tsconfig.json index 8f1cc9cec2..67dcdc9d6a 100644 --- a/internal/pkg_npm/test/linking/fuz/tsconfig.json +++ b/internal/pkg_npm/test/linking/fuz/tsconfig.json @@ -1,5 +1,6 @@ { "compilerOptions": { - "declaration": true + "declaration": true, + "types": [] } } \ No newline at end of file diff --git a/internal/pkg_npm/test/linking/tsconfig.json b/internal/pkg_npm/test/linking/tsconfig.json index daf7a99a6b..1407858ebd 100644 --- a/internal/pkg_npm/test/linking/tsconfig.json +++ b/internal/pkg_npm/test/linking/tsconfig.json @@ -1,6 +1,7 @@ { "compilerOptions": { - "declaration": true + "declaration": true, + "types": [] }, "include": ["*.ts"] } \ No newline at end of file diff --git a/package.json b/package.json index a7c9e1a5c1..5cc5a4e533 100644 --- a/package.json +++ b/package.json @@ -26,8 +26,10 @@ "@gregmagolan/test-a": "0.0.5", "@types/hammerjs": "2.0.35", "@types/jasmine": "~3.3.13", + "@types/jest": "24.9.0", "@types/node": "^12.0.0", "@types/semver": "6.2.0", + "babel-jest": "^25.5.1", "bazel_workspaces": "file:./tools/npm_packages/bazel_workspaces", "clang-format": "1.2.2", "conventional-changelog-cli": "^2.0.21", diff --git a/packages/rollup/test/integration/far/a/b/c/tsconfig.json b/packages/rollup/test/integration/far/a/b/c/tsconfig.json index 80eaf79ad3..11d727c958 100644 --- a/packages/rollup/test/integration/far/a/b/c/tsconfig.json +++ b/packages/rollup/test/integration/far/a/b/c/tsconfig.json @@ -4,6 +4,7 @@ "strict": true, "target": "es2015", "module": "esnext", - "moduleResolution": "node" + "moduleResolution": "node", + "types": [] } } diff --git a/packages/rollup/test/integration/far/a/tsconfig.json b/packages/rollup/test/integration/far/a/tsconfig.json index 04b8f8124d..09f8350a7e 100644 --- a/packages/rollup/test/integration/far/a/tsconfig.json +++ b/packages/rollup/test/integration/far/a/tsconfig.json @@ -4,7 +4,8 @@ "strict": true, "target": "es2015", "module": "esnext", - "moduleResolution": "node" + "moduleResolution": "node", + "types": [] }, // For Windows, which is not sand-boxed, we need to limit // the typescript files included so the "@far/a" compilation diff --git a/packages/rollup/test/integration/foo/tsconfig.json b/packages/rollup/test/integration/foo/tsconfig.json index 80eaf79ad3..11d727c958 100644 --- a/packages/rollup/test/integration/foo/tsconfig.json +++ b/packages/rollup/test/integration/foo/tsconfig.json @@ -4,6 +4,7 @@ "strict": true, "target": "es2015", "module": "esnext", - "moduleResolution": "node" + "moduleResolution": "node", + "types": [] } } diff --git a/packages/rollup/test/integration/foo_a/tsconfig.json b/packages/rollup/test/integration/foo_a/tsconfig.json index 80eaf79ad3..11d727c958 100644 --- a/packages/rollup/test/integration/foo_a/tsconfig.json +++ b/packages/rollup/test/integration/foo_a/tsconfig.json @@ -4,6 +4,7 @@ "strict": true, "target": "es2015", "module": "esnext", - "moduleResolution": "node" + "moduleResolution": "node", + "types": [] } } diff --git a/packages/rollup/test/integration/foo_aaa/tsconfig.json b/packages/rollup/test/integration/foo_aaa/tsconfig.json index 80eaf79ad3..11d727c958 100644 --- a/packages/rollup/test/integration/foo_aaa/tsconfig.json +++ b/packages/rollup/test/integration/foo_aaa/tsconfig.json @@ -4,6 +4,7 @@ "strict": true, "target": "es2015", "module": "esnext", - "moduleResolution": "node" + "moduleResolution": "node", + "types": [] } } diff --git a/packages/typescript/src/checked_in_ts_project.bzl b/packages/typescript/src/checked_in_ts_project.bzl index aafbb4f555..86aefa9b15 100644 --- a/packages/typescript/src/checked_in_ts_project.bzl +++ b/packages/typescript/src/checked_in_ts_project.bzl @@ -31,6 +31,7 @@ def checked_in_ts_project(name, src, checked_in_js = None, **kwargs): module = "commonjs", removeComments = True, declaration = True, + skipLibCheck = True, ), files = ["/".join([workspace_root, native.package_name(), src])], ).to_json()], diff --git a/packages/typescript/test/ts_project/b/tsconfig-test.json b/packages/typescript/test/ts_project/b/tsconfig-test.json index 288ba2408c..f71d6d2250 100644 --- a/packages/typescript/test/ts_project/b/tsconfig-test.json +++ b/packages/typescript/test/ts_project/b/tsconfig-test.json @@ -1,5 +1,8 @@ { "extends": "../tsconfig-base.json", + "compilerOptions": { + "types": ["jasmine", "node"] + }, "references": [ {"path": "./"} ], diff --git a/packages/typescript/test/ts_project/empty_intermediate/tsconfig-a.json b/packages/typescript/test/ts_project/empty_intermediate/tsconfig-a.json index 3563bd1c00..7bafa424da 100644 --- a/packages/typescript/test/ts_project/empty_intermediate/tsconfig-a.json +++ b/packages/typescript/test/ts_project/empty_intermediate/tsconfig-a.json @@ -1,3 +1,6 @@ { - "files": ["a.d.ts"] + "files": ["a.d.ts"], + "compilerOptions": { + "types": [] + } } \ No newline at end of file diff --git a/packages/typescript/test/ts_project/empty_intermediate/tsconfig-b.json b/packages/typescript/test/ts_project/empty_intermediate/tsconfig-b.json index 6f5fba878a..3b87315842 100644 --- a/packages/typescript/test/ts_project/empty_intermediate/tsconfig-b.json +++ b/packages/typescript/test/ts_project/empty_intermediate/tsconfig-b.json @@ -1,3 +1,6 @@ { - "files": [] + "files": [], + "compilerOptions": { + "types": [] + } } \ No newline at end of file diff --git a/packages/typescript/test/ts_project/empty_intermediate/tsconfig-c.json b/packages/typescript/test/ts_project/empty_intermediate/tsconfig-c.json index dcdbec4409..f0b748b3d5 100644 --- a/packages/typescript/test/ts_project/empty_intermediate/tsconfig-c.json +++ b/packages/typescript/test/ts_project/empty_intermediate/tsconfig-c.json @@ -11,5 +11,6 @@ "../../../../../bazel-out/k8-dbg/bin/packages/typescript/test/ts_project/empty_intermediate", "../../../../../bazel-out/x64_windows-dbg/bin/packages/typescript/test/ts_project/empty_intermediate", ], + "types": [] } } \ No newline at end of file diff --git a/packages/typescript/test/ts_project/rootdir/tsconfig.json b/packages/typescript/test/ts_project/rootdir/tsconfig.json index 0967ef424b..e98f617914 100644 --- a/packages/typescript/test/ts_project/rootdir/tsconfig.json +++ b/packages/typescript/test/ts_project/rootdir/tsconfig.json @@ -1 +1,5 @@ -{} +{ + "compilerOptions": { + "types": [] + } +} \ No newline at end of file diff --git a/packages/typescript/test/ts_project/simple/tsconfig.json b/packages/typescript/test/ts_project/simple/tsconfig.json index 0967ef424b..e98f617914 100644 --- a/packages/typescript/test/ts_project/simple/tsconfig.json +++ b/packages/typescript/test/ts_project/simple/tsconfig.json @@ -1 +1,5 @@ -{} +{ + "compilerOptions": { + "types": [] + } +} \ No newline at end of file diff --git a/packages/typescript/test/ts_project/tsconfig-base.json b/packages/typescript/test/ts_project/tsconfig-base.json index 11a249c71d..f55cc65503 100644 --- a/packages/typescript/test/ts_project/tsconfig-base.json +++ b/packages/typescript/test/ts_project/tsconfig-base.json @@ -18,5 +18,6 @@ "../../../../bazel-out/k8-dbg/bin/packages/typescript/test/ts_project", "../../../../bazel-out/x64_windows-dbg/bin/packages/typescript/test/ts_project", ], + "types": [] } } \ No newline at end of file diff --git a/packages/typescript/test/ts_project/validation/tsconfig.json b/packages/typescript/test/ts_project/validation/tsconfig.json index 19c65db5a6..c37be6a0d4 100644 --- a/packages/typescript/test/ts_project/validation/tsconfig.json +++ b/packages/typescript/test/ts_project/validation/tsconfig.json @@ -5,5 +5,6 @@ "declarationMap": true, "declaration": true, "sourceMap": true, + "types": [] } } \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index f5b4a465cb..61ce916c4a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -880,7 +880,7 @@ "@babel/parser" "^7.6.0" "@babel/types" "^7.6.0" -"@babel/template@^7.7.4", "@babel/template@^7.8.3", "@babel/template@^7.8.6": +"@babel/template@^7.3.3", "@babel/template@^7.7.4", "@babel/template@^7.8.3", "@babel/template@^7.8.6": version "7.8.6" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== @@ -928,7 +928,7 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" -"@babel/types@^7.3.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0", "@babel/types@^7.9.5": +"@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0", "@babel/types@^7.9.5": version "7.9.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.5.tgz#89231f82915a8a566a703b3b20133f73da6b9444" integrity sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg== @@ -1335,6 +1335,37 @@ source-map "^0.6.1" write-file-atomic "^3.0.0" +"@jest/transform@^25.5.1": + version "25.5.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-25.5.1.tgz#0469ddc17699dd2bf985db55fa0fb9309f5c2db3" + integrity sha512-Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^25.5.0" + babel-plugin-istanbul "^6.0.0" + chalk "^3.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^25.5.1" + jest-regex-util "^25.2.6" + jest-util "^25.5.0" + micromatch "^4.0.2" + pirates "^4.0.1" + realpath-native "^2.0.0" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + +"@jest/types@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" + integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^1.1.1" + "@types/yargs" "^13.0.0" + "@jest/types@^25.3.0": version "25.3.0" resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.3.0.tgz#88f94b277a1d028fd7117bc1f74451e0fc2131e7" @@ -1345,6 +1376,16 @@ "@types/yargs" "^15.0.0" chalk "^3.0.0" +"@jest/types@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d" + integrity sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^1.1.1" + "@types/yargs" "^15.0.0" + chalk "^3.0.0" + "@marionebl/sander@^0.6.0": version "0.6.1" resolved "https://registry.yarnpkg.com/@marionebl/sander/-/sander-0.6.1.tgz#1958965874f24bc51be48875feb50d642fc41f7b" @@ -1520,6 +1561,13 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== +"@types/graceful-fs@^4.1.2": + version "4.1.3" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.3.tgz#039af35fe26bec35003e8d86d2ee9c586354348f" + integrity sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ== + dependencies: + "@types/node" "*" + "@types/hammerjs@2.0.35": version "2.0.35" resolved "https://registry.yarnpkg.com/@types/hammerjs/-/hammerjs-2.0.35.tgz#7b7c950c7d54593e23bffc8d2b4feba9866a7277" @@ -1550,6 +1598,13 @@ resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-3.3.16.tgz#7c84074f5d7f84da9a14f816ccfb9aeb4da13f27" integrity sha512-Nveep4zKGby8uIvG2AEUyYOwZS8uVeHK9TgbuWYSawUDDdIgfhCKz28QzamTo//Jk7Ztt9PO3f+vzlB6a4GV1Q== +"@types/jest@24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-24.9.0.tgz#78c6991cd1734cf0d390be24875e310bb0a9fb74" + integrity sha512-dXvuABY9nM1xgsXlOtLQXJKdacxZJd7AtvLsKZ/0b57ruMXDKCOXAC/M75GbllQX6o1pcZ5hAG4JzYy7Z/wM2w== + dependencies: + jest-diff "^24.3.0" + "@types/long@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.0.tgz#719551d2352d301ac8b81db732acb6bdc28dbdef" @@ -1617,6 +1672,13 @@ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== +"@types/yargs@^13.0.0": + version "13.0.8" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.8.tgz#a38c22def2f1c2068f8971acb3ea734eb3c64a99" + integrity sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA== + dependencies: + "@types/yargs-parser" "*" + "@types/yargs@^15.0.0": version "15.0.4" resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.4.tgz#7e5d0f8ca25e9d5849f2ea443cf7c402decd8299" @@ -1770,7 +1832,7 @@ ansi-regex@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= -ansi-regex@^4.1.0: +ansi-regex@^4.0.0, ansi-regex@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== @@ -2020,6 +2082,20 @@ babel-jest@^25.3.0: chalk "^3.0.0" slash "^3.0.0" +babel-jest@^25.5.1: + version "25.5.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-25.5.1.tgz#bc2e6101f849d6f6aec09720ffc7bc5332e62853" + integrity sha512-9dA9+GmMjIzgPnYtkhBg73gOo/RHqPmLruP3BaGL4KEX3Dwz6pI8auSN8G8+iuEG90+GSswyKvslN+JYSaacaQ== + dependencies: + "@jest/transform" "^25.5.1" + "@jest/types" "^25.5.0" + "@types/babel__core" "^7.1.7" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^25.5.0" + chalk "^3.0.0" + graceful-fs "^4.2.4" + slash "^3.0.0" + babel-plugin-dynamic-import-node@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" @@ -2045,6 +2121,15 @@ babel-plugin-jest-hoist@^25.2.6: dependencies: "@types/babel__traverse" "^7.0.6" +babel-plugin-jest-hoist@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.5.0.tgz#129c80ba5c7fc75baf3a45b93e2e372d57ca2677" + integrity sha512-u+/W+WAjMlvoocYGTwthAiQSxDcJAyHpQ6oWlHdFZaaN+Rlk8Q7iiwDPg2lN/FyJtAYnKjFxbn7xus4HCFkg5g== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__traverse" "^7.0.6" + babel-polyfill@6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" @@ -2078,6 +2163,14 @@ babel-preset-jest@^25.3.0: babel-plugin-jest-hoist "^25.2.6" babel-preset-current-node-syntax "^0.1.2" +babel-preset-jest@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-25.5.0.tgz#c1d7f191829487a907764c65307faa0e66590b49" + integrity sha512-8ZczygctQkBU+63DtSOKGh7tFL0CeCuz+1ieud9lJ1WPQ9O6A1a/r+LGn6Y705PA6whHQ3T1XuB/PmpfNYf8Fw== + dependencies: + babel-plugin-jest-hoist "^25.5.0" + babel-preset-current-node-syntax "^0.1.2" + babel-runtime@^6.23.0, babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" @@ -3396,6 +3489,11 @@ didyoumean2@2.0.4: lodash.deburr "^4.1.0" ramda "^0.26.1" +diff-sequences@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" + integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== + diff-sequences@^25.2.6: version "25.2.6" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd" @@ -4460,6 +4558,11 @@ graceful-fs@^4.1.15, graceful-fs@^4.2.2, graceful-fs@^4.2.3: resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== +graceful-fs@^4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== + growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" @@ -5409,6 +5512,16 @@ jest-config@^25.3.0: pretty-format "^25.3.0" realpath-native "^2.0.0" +jest-diff@^24.3.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da" + integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ== + dependencies: + chalk "^2.0.1" + diff-sequences "^24.9.0" + jest-get-type "^24.9.0" + pretty-format "^24.9.0" + jest-diff@^25.3.0: version "25.3.0" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.3.0.tgz#0d7d6f5d6171e5dacde9e05be47b3615e147c26f" @@ -5461,6 +5574,11 @@ jest-environment-node@^25.3.0: jest-util "^25.3.0" semver "^6.3.0" +jest-get-type@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" + integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== + jest-get-type@^25.2.6: version "25.2.6" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877" @@ -5485,6 +5603,26 @@ jest-haste-map@^25.3.0: optionalDependencies: fsevents "^2.1.2" +jest-haste-map@^25.5.1: + version "25.5.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-25.5.1.tgz#1df10f716c1d94e60a1ebf7798c9fb3da2620943" + integrity sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ== + dependencies: + "@jest/types" "^25.5.0" + "@types/graceful-fs" "^4.1.2" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.4" + jest-serializer "^25.5.0" + jest-util "^25.5.0" + jest-worker "^25.5.0" + micromatch "^4.0.2" + sane "^4.0.3" + walker "^1.0.7" + which "^2.0.2" + optionalDependencies: + fsevents "^2.1.2" + jest-jasmine2@^25.3.0: version "25.3.0" resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-25.3.0.tgz#16ae4f68adef65fb45001b26c864bcbcbf972830" @@ -5633,7 +5771,7 @@ jest-runtime@^25.3.0: strip-bom "^4.0.0" yargs "^15.3.1" -jest-serializer@24.3.0, jest-serializer@^25.2.6: +jest-serializer@24.3.0, jest-serializer@^25.2.6, jest-serializer@^25.5.0: version "24.3.0" resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.3.0.tgz#074e307300d1451617cf2630d11543ee4f74a1c8" integrity sha512-RiSpqo2OFbVLJN/PgAOwQIUeHDfss6NBUDTLhjiJM8Bb5rMrwRqHfkaqahIsOf9cXXB5UjcqDCzbQ7AIoMqWkg== @@ -5668,6 +5806,17 @@ jest-util@^25.3.0: is-ci "^2.0.0" make-dir "^3.0.0" +jest-util@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-25.5.0.tgz#31c63b5d6e901274d264a4fec849230aa3fa35b0" + integrity sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA== + dependencies: + "@jest/types" "^25.5.0" + chalk "^3.0.0" + graceful-fs "^4.2.4" + is-ci "^2.0.0" + make-dir "^3.0.0" + jest-validate@^25.3.0: version "25.3.0" resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-25.3.0.tgz#eb95fdee0039647bcd5d4be641b21e4a142a880c" @@ -5705,6 +5854,14 @@ jest-worker@^25.2.6: merge-stream "^2.0.0" supports-color "^7.0.0" +jest-worker@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.5.0.tgz#2611d071b79cea0f43ee57a3d118593ac1547db1" + integrity sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw== + dependencies: + merge-stream "^2.0.0" + supports-color "^7.0.0" + jest@~25.3.0: version "25.3.0" resolved "https://registry.yarnpkg.com/jest/-/jest-25.3.0.tgz#7a5e59741d94b8662664c77a9f346246d6bf228b" @@ -7696,6 +7853,16 @@ prettier@^1.7.4: resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz#6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea" integrity sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw== +pretty-format@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" + integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA== + dependencies: + "@jest/types" "^24.9.0" + ansi-regex "^4.0.0" + ansi-styles "^3.2.0" + react-is "^16.8.4" + pretty-format@^25.3.0: version "25.3.0" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.3.0.tgz#d0a4f988ff4a6cd350342fdabbb809aeb4d49ad5" @@ -7948,7 +8115,7 @@ rc@^1.0.1, rc@^1.1.6, rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-is@^16.12.0: +react-is@^16.12.0, react-is@^16.8.4: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==