From 9671291b75f182df7c6986f8deeac75506e86718 Mon Sep 17 00:00:00 2001 From: 86 Date: Fri, 31 Jul 2020 12:35:32 +0900 Subject: [PATCH] fix: test file pattern (#2089) fix: remove duplicate Importing chore: upgrade rollup to ^2.3.0 fix: coverage (#2100) * test: add coverage e2e test * fix(builtin): fix coverage lcov merger script jumping out of sandbox and not being able to find c8 * test: don't test coverage on Windows docs: use @npm//@bazel for example load sites fix(cypress): allow for async cypress plugins cypress_repository now fails if cypress verify fails set the HOME env variable since cypress writes files to it remove unused includeScreenshots / includeVideos variables browserify files are no longer included in test output files screenshots/videos are stored directory in TEST_UNDECLARED_OUTPUTS_DIR docs: update docs for release chore(release): 2.0.2 chore: update lock files for release feat(example): add targets in angular_bazel_architect for production serve and build fix(examples): use ./ prefix on babel config file Otherwise if it's in a subfolder, babel will think it's an npm package chore: update dependency com_google_protobuf to v3.13.0 (#2103) refactor(rollup): use rollup loadConfigFile API chore: update dependency bazel_toolchains to v3.4.1 build(deps): bump elliptic in /e2e/fine_grained_symlinks Bumps [elliptic](https://github.com/indutny/elliptic) from 6.4.1 to 6.5.3. - [Release notes](https://github.com/indutny/elliptic/releases) - [Commits](https://github.com/indutny/elliptic/compare/v6.4.1...v6.5.3) Signed-off-by: dependabot[bot] fix(typescript): only expect .js outs for .tsx? srcs (#2118) Fixes #2115 feat(builtin): new js_library rule (#2109) Removes `node_module_library` private API and renames it to `js_library` the latter will be promoted to a public API in a followup change fix(typescript): produce .d.ts as default output rather than empty (#2117) This lets you type-check a ts_project(emit_declaration_only=True) just by building it (its default outputs) Fixes #2116 added script to generate NodeJS versions for node_repositories and added most up-to-date versions (#2126) Co-authored-by: Matt Insler refactor: move node version list into its own file (#2128) Add a package.json script for updating it docs: update docs for release chore(release): 2.0.3 chore: update lock files for release fix(typescript): add the tsBuildInfoFile option to ts_project (#2138) Like other options that affect tsc outputs, Bazel needs to know the value from the tsconfig if its set. Add it to our validator so there's a buildozer command to sync the option value into the BUILD file. Fixes #2137 refactor(typescript): remove private _TsConfigInfo in ts_project (#2139) Instead use the same TsConfigInfo that ts_library uses. Fixes #1931 docs: refresh docsite docs: minor cleanup of builtins page don't include the defaults which are giant dictionaries as they render poorly docs: fix spacing and link colours on rhs sidenav Fix circleci status badges to pin to stable branch CircleCI docs claim that they should use the default branch by default, but this icon is green while stable is red, so I think it's still reporting on master. ci: all angular examples timeout=long chore: update dependency bazel_toolchains to v3.4.2 chore: update circleci image to latest to pick up newer chrome docs: add search to docsite using gcse feat(typescript): generate tsconfig.json for ts_project (#2130) This is an experimental, opt-in feature where ts_project will generate a tsconfig.json file in place of the user specifying one in the source directory. I expect a long tail of compatibility bugs since any path appearing in this generated file needs to point from bazel-out back to the source directory. Fixes #2058 docs: replace references to //packages/ with the @npm//@bazel/ equivalent (#2154) feat(builtin): accept any stamp vars in pkg_npm NOTE: instead of replacing the replace_with_version with 0.0.0 in unstamped builds, we now omit the replacement. See #1694 docs(rollup): add stamping and debug to rollup doc Also move most of the content above the list of rules. It shows up better in the TOC since rollup_bundle can be its own entry later in the page, and avoids the API doc table of attributes just appearing with no header. docs: document the node_context_data attribute It can be useful if you need to turn on/off stamping per-target. `java_binary` gives a dedicated stamp attribute for this purpose Fixes #1693 chore: hide generated .html files in code review feat(builtin): support for substitutions fix: use golden_file_test instead refactor: cleanup pkg_web stamping feature chore: update dependency bazel_toolchains to v3.5.0 (#2168) Updated nodejs versions (14.9.0) (#2169) docs: update docs for release chore(release): 2.1.0 chore: update lock files for release chore: try github actions version of stale bot The probot one never triggered despite being setup correctly AFAICT. This bot seems better supported and I sow it working on bazel-watcher repo. build(deps): bump http-proxy from 1.18.0 to 1.18.1 Bumps [http-proxy](https://github.com/http-party/node-http-proxy) from 1.18.0 to 1.18.1. - [Release notes](https://github.com/http-party/node-http-proxy/releases) - [Changelog](https://github.com/http-party/node-http-proxy/blob/master/CHANGELOG.md) - [Commits](https://github.com/http-party/node-http-proxy/compare/1.18.0...1.18.1) Signed-off-by: dependabot[bot] build(deps): bump yargs-parser in /e2e/ts_devserver Bumps [yargs-parser](https://github.com/yargs/yargs-parser) from 13.1.1 to 13.1.2. - [Release notes](https://github.com/yargs/yargs-parser/releases) - [Changelog](https://github.com/yargs/yargs-parser/blob/master/docs/CHANGELOG-full.md) - [Commits](https://github.com/yargs/yargs-parser/commits) Signed-off-by: dependabot[bot] ci: stamp our releases with a stable key fix(builtin): don't set --preserve-symlinks-main by default (#2176) feat: add link_workspace_root to nodejs_binary, npm_package_bin, rollup_bundle, terser_minified, ts_project Link the workspace root to the bin_dir to support absolute requires like 'my_wksp/path/to/file'. If source files need to be required then they can be copied to the bin_dir with copy_to_bin. fix(builtin): fix bazel coverage masking test failures test(builtin): test failing test with bazel coverage build(deps): bump http-proxy in /examples/protocol_buffers Bumps [http-proxy](https://github.com/http-party/node-http-proxy) from 1.18.0 to 1.18.1. - [Release notes](https://github.com/http-party/node-http-proxy/releases) - [Changelog](https://github.com/http-party/node-http-proxy/blob/master/CHANGELOG.md) - [Commits](https://github.com/http-party/node-http-proxy/compare/1.18.0...1.18.1) Signed-off-by: dependabot[bot] build(deps): bump http-proxy in /examples/web_testing Bumps [http-proxy](https://github.com/http-party/node-http-proxy) from 1.18.0 to 1.18.1. - [Release notes](https://github.com/http-party/node-http-proxy/releases) - [Changelog](https://github.com/http-party/node-http-proxy/blob/master/CHANGELOG.md) - [Commits](https://github.com/http-party/node-http-proxy/compare/1.18.0...1.18.1) Signed-off-by: dependabot[bot] test(rollup): fix test failing due to missing dep fix(rollup): allow config files to override default onwarn method Fixes #2084 feat: link_workspace_root not needed in terser_minified docs: add spica to adopter organization list (#2184) * Add spica to adopter organization list (#2183) * docs: update the 'send a PR' link to point to the stable branch Co-authored-by: Sahin Yort feat: promote js_library to public API Fixes #149 Fixes #1771 docs: update docs for release chore(release): 2.2.0 chore: update lock files for release Update readme (#2190) Fix missing `}` and indentation feat: add strict_visibility to npm_install / yarn_install rules (#2193) With strict_visibility enabled (currently defaults false), only dependencies within the given `package.json` file are given public visibility. All transitive dependencies are given limited visibility, enforcing that all direct dependencies are listed in the `package.json` file. closes #2110 fix: don't glob yarn or node files when using vendored_node or vendored_yarn - Fixes a visibility issue with rollup-worker fix(examples): prevent ibazel EOF Fixes #2143 docs(karma): document how to use non-headless Chrome (#2202) Fixes #1881 docs(labs): produce stardoc API for labs Fixes #2195 fix(karma): allow custom browsers to specify args (fixes #595) Today, the args as specified in the various manifests of the rules_webtesting browsers never make it into the generated karma.conf.js. This results in these arguments never being used when launching Chrome, preventing customization of browsers such as window size, enabling remote debugging, or other flag-based options. This PR fixes this by reading those arguments from the manifest, and adding them to the browsers list in the generated karma.conf.js. Also, this PR includes a change to generated_file_test to allow a golden file to represent a substring of the generated output. Also Also: This PR includes a golden file test that verified that the generated karma.conf.js does read in the specified value. Furthermore, the effect of this can be verified manually via: ``` VERBOSE_LOGS=1 bazel run packages/karma/test/karma:testing_custom_chrome ``` Note the appearance of the additional flags in the new debug output. fix(builtin): js_library: correctly propagate DeclarationInfos Transitive typings are added to typings_depsets, but we were checking the typings array instead. Signed-off-by: Duarte Nunes feat: update nodejs versions (#2207) include 10.22.1, 12.18.4, 14.10.0, 14.10.1, 14.11.0 and 14.12.0 in node_versions Added s390x support docs: update docs for release chore(release): 2.2.1 chore: update lock files for release ci: tell Angular CLI not to update webdriver It can get ahead of the Chrome version on our CI machine ci: replace --webdriver-update=false with --no-webdriverUpdate Architect CLI uses minimist under the hood to parse arguments. Minimist will not convert boolean like values unless they are known options or the `{boolean: true}` option is configured (Which is not in Architect CLI). feat(karma): use Trusted Types policy when loading scripts for Karma When the Karma plugin is used in a testing environment that enforces Trusted Types, its loadFile functionality currently fails due to a Trusted Types violation when assigning to script.textContent. This makes it impossible to use the plugin with integration tests that ensure an application is compatible with Trusted Types. This is fixed by creating a Trusted Types policy specifically for the Karma plugin, and use it to promote any loaded scripts to a TrustedScript before assigning to script.textContent. This is done in a way that is backwards compatible: - The policy is `null` in browsers that don't yet support Trusted Types, in which case the original script string is used as before. - When Trusted Types are supported in the browser but not enforced by the application, the browser treats the TrustedScript as if it were a string when it is assigned to script.textContent. chore: update dependency bazel_toolchains to v3.6.0 docs: remove HTML tables so docs can be authored in markdown without need for html escaping docs(rollup): improve clarity feat(example): add full pwa support feat(example): service worker update handling fix(exmaple): add docstring to ngsw_config rule fix(example): remove server side compression fix(example): remove index.html from prodapp srcs fix(example): remove compression dependencies fix(builtin): js_library supports --output_groups=types If providing DeclarationInfo we should also give this way for filegroup/bazel CLI to select them chore: docgen docs: update docs for release chore(release): 2.2.2 chore: update lock files for release fix(builtin): give a longer timeout for _create_build_files A user reports that their build file generation takes longer than 600 seconds. It's probably a bug that we are so slow, but let's address that separately (maybe in our work for npm v7) Also note we could have made this timeout user-configurable, but I think the extra API surface isn't worth the benefit. Fixes #2231 fix(typescript): don't include _valid_options marker file in outs Tested by building //packages/angular:npm_package and don't get an extra .d.ts file in the package. Also tested the negative case by making an invalid option and check that it's still reported. Fixes #2078 chore: allow node versions <= 14.14.0 chore: update rules_docker to 0.14.4 docs: minor update for readability and formatting (#2243) * docs: minor update for readibility and formating Fix small typo in changelog chore(docs): move ts_library docs into ts_library Also recommend ts_project for new uses chore(karma): remove dependency on tmp feat(typescript): add allow_js support to ts_project fix(exmaples/nestjs): add module_name field in ts_library docs: fix a typo of angular-architect example (#2272) chore: bump days before closing stale issues to 90 Fix select with conditons on darwin. Bazel is changing how @bazel_tools/conditions:darwin is implemented. With old implementation based on flags, it was ok to have darwin and darwin_x86_64 in a select. This was based on flag --cpu=darwin and --cpu=dawin_x86_64. New implementation is based on constraints, where "darwin" means OS (and any CPU), while "darwin_x86_64" mean only specific CPU. As such they cannot be used in the same select, because the selection would be ambiguous. build: add 'fix-windows' tag due to windows flaky tests Will revisit the linker and test, but this is blocking PRs from being merged feat(typescript): worker mode for ts_project (#2136) * feat(typescript): worker mode for ts_project * chore: cleanup and declare protobufjs dependency * fix: do not pass --watch for non-worker mode * fix: do not test worker on windows * fix: log on standalone failures * chore: docs improvements Co-authored-by: Alex Eagle Co-authored-by: Dan Muller feat(node_repositories): Added auth option for downloading nodejs and yarn fix: npm_package.pack should work in windows os feat(examples): adds example for running jest with typescript (#2245) fix(typescript): specify rootDir as absolute path Also allow non-ts files across src/bin dir, since they are not emitted we don't need the rootdir calculation to take them into account. This lets the Angular compiler accept .ts sources from source dir even if the css inputs are generated. refactor: ts_project cleanup feat(cypress): remove browiserify preprocessor docs: update docs for release chore(release): 2.3.0 chore: update lock files for release fix: npm_package.pack on Windows should not generate undefined.tgz chore: update nodejs versions (#2284) perf(cypress): pack cypress runfiles into a single tar chore: add GitHub Workflow to update NodeJS versions every night chore: fix a link Current link returns 404, it seems that the url was somehow changed to .html from .md. chore: fix the link again haha fix(builtin): make linker deterministic when resolving from manifest & fix link_workspace_root with no runfiles chore: re-lock jest dependencies It was using a non-standard repository, which had downtime this morning chore(release): 2.3.1 chore: update lock files for release chore: update dependency com_google_protobuf to v3.14.0 chore: update dependency bazel_toolchains to v3.7.0 fix launcher script terminating before child terminates on SIGTERM chore: update dependency bazel_toolchains to v3.7.1 fix(examples): fix jest example on windows Fixes #1454 fix(builtin): give better error when linker runs on Node <10 Example how this looks now: ``` [20 / 21] Bundling JavaScript bundle.js [parcel]; 4s remote-cache, darwin-sandbox ERROR: /private/var/folders/r7/2kp53v7n091gcz93xlt7wtd80000gn/T/tmp-48948DHy4HrXTwhRy/BUILD.bazel:4:1: Bundling JavaScript bundle.js [parcel] failed (Exit 1) parcel.sh failed: error executing command bazel-out/host/bin/external/npm/parcel-bundler/bin/parcel.sh build foo.js --out-dir bazel-out/darwin-fastbuild/bin --out-file bundle.js ... (remaining 2 argument(s) skipped) Use --sandbox_debug to see verbose messages from the sandbox ERROR: rules_nodejs linker requires Node v10 or greater, but is running on 8.11.2 Note that earlier Node versions are no longer in long-term-support, see https://nodejs.org/en/about/releases/ INFO: Elapsed time: 40.360s, Critical Path: 12.97s INFO: 0 processes. FAILED: Build did NOT complete successfully //:test NO STATUS ``` Fixes #2304 docs(typescript): link some user-contributed doc (#2322) Fixes #2298 chore: allow node versions >=12 <=14 (#2332) chore: allow node versions >=12 <=14 feat: add esbuild package chore: add module_mapping support via the aspect instead of manual implementing it chore: sqash feat: update to latest esbuild, add additional flags when not minifying fix: consume both JSEcmaScriptModuleInfo and JSModuleInfo to support js_library fix: add missing bzl libraries and publish helpers test: use runfiles helper in test fix: use exe for Windows --- .bazelci/presubmit.yml | 14 +- .bazelrc | 4 +- .circleci/config.yml | 6 +- .github/stale.yml | 25 - .github/workflows/stale.yml | 51 + .github/workflows/update-nodejs-versions.yml | 37 + BUILD.bazel | 1 + CHANGELOG.md | 139 + DEVELOPING.md | 7 +- README.md | 4 +- WORKSPACE | 35 +- docs/.gitattributes | 3 + docs/BUILD.bazel | 75 +- docs/Built-ins.html | 2322 ++++++++++++ docs/Built-ins.md | 1294 ++++--- docs/Cypress.html | 395 ++ docs/Cypress.md | 51 +- docs/Jasmine.html | 364 ++ docs/Jasmine.md | 75 +- docs/Karma.html | 479 +++ docs/Karma.md | 128 +- docs/Labs.html | 386 ++ docs/Labs.md | 137 + docs/Protractor.html | 400 ++ docs/Protractor.md | 103 +- docs/README.md | 18 +- docs/Rollup.html | 637 ++++ docs/Rollup.md | 223 +- docs/Terser.html | 400 ++ docs/Terser.md | 59 +- docs/TypeScript.html | 1327 +++++++ docs/TypeScript.md | 829 +++-- docs/_config.yml | 16 +- docs/_includes/drawer.html | 73 - docs/_includes/footer-content.html | 7 + docs/_includes/footer.html | 185 +- docs/_includes/head.html | 50 +- docs/_includes/header.html | 49 +- docs/_includes/sidenav.html | 39 + docs/_layouts/default.html | 59 +- docs/_layouts/home.html | 23 - docs/_layouts/search.html | 21 + docs/changing-rules.html | 313 ++ docs/changing-rules.md | 47 + docs/css/BUILD.bazel | 15 + docs/css/_be.scss | 93 + docs/css/_docs.scss | 7 + docs/css/_footer.scss | 25 + docs/css/_navbar.scss | 96 + docs/css/_sidebar.scss | 163 + docs/css/_styles.scss | 254 ++ docs/css/_syntax.scss | 89 + docs/css/_tables.scss | 63 + docs/css/docs.css | 212 -- docs/css/home.css | 173 - docs/css/main.css | 1 + docs/css/main.scss | 11 + docs/debugging.html | 329 ++ docs/debugging.md | 67 + docs/dependencies.html | 547 +++ docs/dependencies.md | 277 ++ docs/examples.html | 444 +++ docs/examples.md | 47 +- docs/images/bazel-icon.png | Bin 0 -> 4945 bytes docs/images/bazel-icon.svg | 15 + docs/images/bazel-logo.png | Bin 0 -> 12169 bytes docs/images/bazel-logo.svg | 13 + docs/images/bazel-navbar.svg | 38 + docs/images/bazel-og-image.png | Bin 0 -> 15253 bytes docs/images/favicon-16x16.png | Bin 0 -> 553 bytes docs/images/favicon-32x32.png | Bin 0 -> 733 bytes docs/images/favicon.ico | Bin docs/index.html | 449 +++ docs/index.md | 242 +- docs/install.html | 434 +++ docs/install.md | 303 +- docs/repositories.html | 355 ++ docs/repositories.md | 5 +- docs/search.html | 162 + docs/search.md | 5 + docs/stamping.html | 366 ++ docs/stamping.md | 97 + e2e/BUILD.bazel | 20 + e2e/bazel_managed_deps/WORKSPACE | 4 +- e2e/bazel_managed_deps/package.json | 2 +- e2e/bazel_managed_deps/yarn.lock | 8 +- e2e/coverage/.bazelignore | 3 + e2e/coverage/.bazelrc | 1 + e2e/coverage/BUILD.bazel | 23 + e2e/coverage/WORKSPACE | 34 + e2e/coverage/coverage.spec.js | 10 + e2e/coverage/coverage_source.ts | 7 + e2e/coverage/fail.spec.js | 3 + e2e/coverage/package.json | 12 + e2e/coverage/tsconfig.json | 8 + e2e/coverage/yarn.lock | 1328 +++++++ e2e/fine_grained_symlinks/WORKSPACE | 4 +- e2e/fine_grained_symlinks/yarn.lock | 22 +- e2e/jasmine/WORKSPACE | 4 +- e2e/jasmine/package.json | 2 +- e2e/jasmine/yarn.lock | 8 +- .../WORKSPACE | 4 +- e2e/node_loader_preserve_symlinks/WORKSPACE | 4 +- e2e/nodejs_image/WORKSPACE | 18 +- e2e/nodejs_image/foolib/BUILD.bazel | 2 +- e2e/packages/WORKSPACE | 4 +- e2e/ts_devserver/WORKSPACE | 4 +- e2e/ts_devserver/package.json | 4 +- e2e/ts_devserver/yarn.lock | 22 +- e2e/typescript/WORKSPACE | 4 +- e2e/typescript/package.json | 4 +- e2e/typescript/yarn.lock | 16 +- e2e/webapp/WORKSPACE | 4 +- e2e/webapp/package.json | 6 +- e2e/webapp/yarn.lock | 50 +- examples/BUILD.bazel | 4 + examples/angular/BUILD.bazel | 2 + examples/angular/README.md | 1 + examples/angular/WORKSPACE | 39 +- examples/angular/favicon.ico | Bin 0 -> 15406 bytes examples/angular/package.json | 25 +- examples/angular/src/BUILD.bazel | 36 +- examples/angular/src/app/BUILD.bazel | 3 + examples/angular/src/app/app.component.ts | 5 + examples/angular/src/app/app.module.ts | 6 +- .../angular/src/app/service-worker.service.ts | 34 + examples/angular/src/assets/BUILD.bazel | 2 +- .../angular/src/assets/icons/icon-128x128.png | Bin 0 -> 2919 bytes .../angular/src/assets/icons/icon-144x144.png | Bin 0 -> 4549 bytes .../angular/src/assets/icons/icon-152x152.png | Bin 0 -> 5105 bytes .../angular/src/assets/icons/icon-192x192.png | Bin 0 -> 5230 bytes .../angular/src/assets/icons/icon-384x384.png | Bin 0 -> 12058 bytes .../angular/src/assets/icons/icon-512x512.png | Bin 0 -> 9343 bytes .../angular/src/assets/icons/icon-72x72.png | Bin 0 -> 2513 bytes .../angular/src/assets/icons/icon-96x96.png | Bin 0 -> 2685 bytes examples/angular/src/example/index.prod.html | 23 +- examples/angular/src/manifest.webmanifest | 59 + examples/angular/src/ngsw-config.json | 35 + examples/angular/src/robots.txt | 2 + examples/angular/src/rollup.config.js | 6 +- examples/angular/src/server.ts | 51 +- examples/angular/tools/ngsw_config.bzl | 38 + examples/angular/yarn.lock | 215 +- examples/angular_bazel_architect/BUILD.bazel | 111 +- examples/angular_bazel_architect/README.md | 2 +- examples/angular_bazel_architect/WORKSPACE | 4 +- examples/angular_bazel_architect/package.json | 9 +- examples/angular_bazel_architect/yarn.lock | 24 +- examples/angular_view_engine/WORKSPACE | 12 +- examples/angular_view_engine/package.json | 22 +- examples/angular_view_engine/src/BUILD.bazel | 4 +- .../angular_view_engine/src/rollup.config.js | 6 +- examples/angular_view_engine/yarn.lock | 195 +- examples/app/WORKSPACE | 4 +- examples/app/package.json | 8 +- examples/app/yarn.lock | 38 +- examples/closure/WORKSPACE | 4 +- examples/create-react-app/BUILD.bazel | 8 +- examples/create-react-app/WORKSPACE | 4 +- examples/create-react-app/package.json | 4 +- examples/create-react-app/yarn.lock | 16 +- examples/cypress/WORKSPACE | 4 +- examples/cypress/package.json | 9 +- examples/cypress/yarn.lock | 2863 +-------------- examples/from_source/WORKSPACE | 1 + examples/from_source/package.json | 6 +- examples/from_source/yarn.lock | 187 +- examples/jest/.bazelrc | 6 + examples/jest/BUILD.bazel | 12 +- examples/jest/README.md | 15 + examples/jest/WORKSPACE | 4 +- examples/jest/jest.ts.config.js | 8 + examples/jest/package.json | 5 +- examples/jest/ts/BUILD.bazel | 0 examples/jest/ts/src/BUILD.bazel | 9 + examples/jest/ts/src/extra.ts | 1 + examples/jest/ts/src/index.ts | 3 + examples/jest/ts/test/BUILD.bazel | 37 + examples/jest/ts/test/index.test.ts | 5 + examples/jest/tsconfig.json | 11 + examples/jest/yarn.lock | 2970 ++++++++------- examples/kotlin/BUILD.bazel | 4 +- examples/kotlin/WORKSPACE | 4 +- examples/kotlin/package-lock.json | 215 +- examples/kotlin/package.json | 12 +- examples/kotlin/rollup.config.js | 6 +- examples/nestjs/WORKSPACE | 18 +- examples/nestjs/package.json | 8 +- examples/nestjs/src/BUILD.bazel | 3 +- examples/nestjs/yarn.lock | 32 +- examples/parcel/WORKSPACE | 4 +- examples/protocol_buffers/BUILD.bazel | 4 +- examples/protocol_buffers/WORKSPACE | 10 +- examples/protocol_buffers/package.json | 18 +- examples/protocol_buffers/rollup.config.js | 6 +- examples/protocol_buffers/yarn.lock | 241 +- examples/react_webpack/BUILD.bazel | 2 + examples/react_webpack/WORKSPACE | 4 +- examples/react_webpack/package.json | 8 +- examples/react_webpack/tsconfig.json | 15 +- examples/react_webpack/yarn.lock | 36 +- examples/vendored_node/WORKSPACE | 4 +- examples/vendored_node/package-lock.json | 25 +- examples/vendored_node/package.json | 2 +- examples/vendored_node_and_yarn/.bazelrc | 4 + examples/vendored_node_and_yarn/WORKSPACE | 4 +- examples/vendored_node_and_yarn/package.json | 2 +- examples/vendored_node_and_yarn/yarn.lock | 8 +- examples/vue/WORKSPACE | 4 +- examples/vue/package-lock.json | 12 +- examples/vue/package.json | 4 +- examples/web_testing/WORKSPACE | 4 +- examples/web_testing/package.json | 4 +- examples/web_testing/yarn.lock | 49 +- examples/webapp/WORKSPACE | 4 +- examples/webapp/differential_loading.bzl | 2 +- examples/webapp/package.json | 10 +- examples/webapp/yarn.lock | 72 +- examples/worker/WORKSPACE | 4 +- examples/worker/package.json | 2 +- examples/worker/yarn.lock | 8 +- index.bzl | 4 +- index.for_docs.bzl | 2 + internal/common/copy_to_bin.bzl | 2 +- internal/common/os_name.bzl | 8 +- internal/common/windows_utils.bzl | 3 + internal/generated_file_test/BUILD.bazel | 4 +- internal/generated_file_test/bin.js | 32 +- .../generated_file_test.bzl | 28 +- internal/generated_file_test/rollup.config.js | 6 +- internal/js_library/js_library.bzl | 301 +- internal/js_library/test/BUILD.bazel | 0 .../js_library/test/transitive/BUILD.bazel | 14 + internal/js_library/test/transitive/a.d.ts | 1 + .../transitive_declarations_test.bzl | 20 + internal/linker/index.js | 26 +- internal/linker/link_node_modules.bzl | 16 +- internal/linker/link_node_modules.ts | 33 +- .../dynamic_linked_pkg/BUILD.bazel | 2 +- .../dynamic_linked_scoped_pkg/BUILD.bazel | 2 +- .../integration/static_linked_pkg/BUILD.bazel | 2 +- .../static_linked_scoped_pkg/BUILD.bazel | 2 +- .../transitive_static_linked_pkg/BUILD.bazel | 2 +- .../linker/test/workspace_link/BUILD.bazel | 12 + .../test/workspace_link/bar/BUILD.bazel | 10 + .../linker/test/workspace_link/bar/main.js | 3 + .../test/workspace_link/bar/package.json | 5 + .../test/workspace_link/foo/BUILD.bazel | 35 + .../linker/test/workspace_link/foo/main.ts | 1 + .../test/workspace_link/foo/package.json | 5 + .../test/workspace_link/foo/tsconfig.json | 6 + internal/linker/test/workspace_link/test.js | 8 + internal/node/context.bzl | 2 +- internal/node/launcher.sh | 30 +- internal/node/node.bzl | 40 +- internal/node/node_patches.js | 31 +- internal/node/node_repositories.bzl | 273 +- internal/node/node_versions.bzl | 1063 ++++++ internal/node/npm_package_bin.bzl | 7 +- internal/node/test/BUILD.bazel | 2 +- internal/node/test/env.spec.js | 8 +- internal/node/test/lib1/BUILD.bazel | 2 +- internal/node/test/lib2/BUILD.bazel | 6 +- internal/node/test/nodejs_toolchain_test.bzl | 2 +- internal/npm_install/BUILD.bazel | 2 +- internal/npm_install/generate_build_file.ts | 108 +- internal/npm_install/index.js | 73 +- internal/npm_install/node_module_library.bzl | 105 - internal/npm_install/npm_install.bzl | 15 +- internal/npm_install/test/BUILD.bazel | 1 + .../test/generate_build_file.spec.js | 17 +- .../golden/@angular/core/BUILD.bazel.golden | 8 +- .../golden/@gregmagolan/BUILD.bazel.golden | 4 +- .../@gregmagolan/test-a/BUILD.bazel.golden | 8 +- .../@gregmagolan/test-b/BUILD.bazel.golden | 8 +- .../test/golden/BUILD.bazel.golden | 4 +- .../test/golden/ajv/BUILD.bazel.golden | 8 +- .../test/golden/jasmine/BUILD.bazel.golden | 8 +- .../test/golden/rxjs/BUILD.bazel.golden | 8 +- .../test/golden/unidiff/BUILD.bazel.golden | 8 +- .../test/golden/zone.js/BUILD.bazel.golden | 8 +- internal/npm_install/test/package.spec.json | 10 + internal/npm_install/test/package/BUILD.bazel | 6 +- internal/npm_version_check.js | 4 +- internal/pkg_npm/npm_script_generator.js | 12 +- internal/pkg_npm/packager.js | 58 +- internal/pkg_npm/pkg_npm.bzl | 104 +- internal/pkg_npm/test/BUILD.bazel | 26 + internal/pkg_npm/test/diff_pack_dir.sh | 25 + internal/pkg_npm/test/linking/foo/BUILD.bazel | 2 +- internal/pkg_npm/test/linking/foz/BUILD.bazel | 2 +- internal/pkg_web/BUILD.bazel | 6 +- internal/pkg_web/assembler.js | 70 +- internal/pkg_web/assembler_spec.js | 74 +- internal/pkg_web/pkg_web.bzl | 37 +- internal/pkg_web/test/BUILD.bazel | 18 +- internal/pkg_web/test/index_golden.html_ | 1 - internal/pkg_web/test/script.ts | 3 +- internal/pkg_web/test/spec.js | 32 +- internal/providers/linkable_package_info.bzl | 8 +- internal/providers/node_runtime_deps_info.bzl | 12 +- internal/providers/npm_package_info.bzl | 4 +- package.bzl | 11 +- package.json | 17 +- packages/angular/README.md | 5 +- packages/create/index.js | 4 +- packages/cypress/BUILD.bazel | 6 +- packages/cypress/install.md | 10 +- .../cypress/internal/cypress_repository.bzl | 29 +- ...{cypress-install.js => install-cypress.js} | 155 +- .../internal/plugins/index.template.js | 37 +- packages/cypress/internal/run-cypress.js | 84 +- .../internal/template.cypress_web_test.bzl | 57 +- packages/cypress/package.json | 8 +- packages/cypress/test/package.json | 6 +- packages/cypress/test/yarn.lock | 3238 ++--------------- packages/esbuild/BUILD.bazel | 83 + packages/esbuild/_README.md | 60 + packages/esbuild/esbuild.bzl | 252 ++ packages/esbuild/esbuild_repo.bzl | 70 + packages/esbuild/helpers.bzl | 50 + packages/esbuild/index.bzl | 33 + packages/esbuild/package.json | 17 + .../esbuild/test/alias-mapping/BUILD.bazel | 29 + .../test/alias-mapping/bundle.golden.txt | 12 + packages/esbuild/test/alias-mapping/main.js | 4 + .../test/alias-mapping/module-one/BUILD.bazel | 9 + .../test/alias-mapping/module-one/index.js | 1 + .../test/alias-mapping/module-two/BUILD.bazel | 9 + .../test/alias-mapping/module-two/index.js | 1 + packages/esbuild/test/bundle/BUILD.bazel | 58 + packages/esbuild/test/bundle/a.ts | 3 + .../esbuild/test/bundle/bundle.golden.txt | 8 + .../esbuild/test/bundle/bundle.min.golden.txt | 2 + packages/esbuild/test/bundle/index.ts | 1 + packages/esbuild/test/splitting/BUILD.bazel | 36 + .../esbuild/test/splitting/bundle.spec.js | 17 + packages/esbuild/test/splitting/main.ts | 1 + packages/esbuild/test/splitting/other.ts | 1 + packages/esbuild/test/typescript/BUILD.bazel | 37 + .../esbuild/test/typescript/bundle.golden.txt | 61 + packages/esbuild/test/typescript/main.ts | 5 + .../typescript/module-dynamic/BUILD.bazel | 18 + .../test/typescript/module-dynamic/index.ts | 1 + .../typescript/module-dynamic/random-file.css | 3 + .../test/typescript/module-one/BUILD.bazel | 13 + .../test/typescript/module-one/index.ts | 1 + .../test/typescript/module-two/BUILD.bazel | 13 + .../test/typescript/module-two/index.ts | 1 + .../esbuild/test/typescript/tsconfig.json | 8 + packages/jasmine/BUILD.bazel | 20 +- packages/karma/BUILD.bazel | 2 - packages/karma/index.ts | 27 +- packages/karma/karma.conf.js | 24 +- packages/karma/karma_web_test.bzl | 13 +- packages/karma/package.json | 3 - packages/karma/test/karma/BUILD.bazel | 16 + packages/karma/test/karma/custom_chrome.json | 11 + .../karma/test/karma/karma.conf.js.golden | 5 + packages/labs/BUILD.bazel | 38 +- packages/labs/grpc_web/BUILD.bazel | 8 +- packages/labs/{README.md => install.md} | 0 packages/labs/package.bzl | 16 +- packages/labs/protobufjs/BUILD.bazel | 5 +- packages/labs/protobufjs/ts_proto_library.bzl | 8 +- packages/labs/test/grpc_web/BUILD.bazel | 4 +- packages/labs/test/grpc_web/rollup.config.js | 6 +- packages/node-patches/BUILD.bazel | 2 +- packages/node-patches/rollup.config.js | 2 +- packages/rollup/bin/BUILD.bazel | 2 +- packages/rollup/index.js | 77 +- packages/rollup/install.md | 141 +- packages/rollup/rollup_bundle.bzl | 88 +- packages/rollup/test/code_splitting/spec.js | 2 +- packages/rollup/test/integration/BUILD.bazel | 6 +- .../rollup/test/integration/far/a/BUILD.bazel | 4 +- .../test/integration/far/a/b/c/BUILD.bazel | 4 +- .../rollup/test/integration/foo/BUILD.bazel | 9 +- .../rollup/test/integration/foo_a/BUILD.bazel | 2 +- .../test/integration/foo_aaa/BUILD.bazel | 2 +- .../rollup/test/integration/fum/BUILD.bazel | 2 +- .../integration/golden.amd.js.map.sha256_ | 2 +- .../rollup/test/integration/golden.amd.js_ | 7 +- .../integration/golden.cjs.js.map.sha256_ | 2 +- .../rollup/test/integration/golden.cjs.js_ | 7 +- .../integration/golden.esm.js.map.sha256_ | 2 +- .../rollup/test/integration/golden.esm.js_ | 7 +- .../integration/golden.iife.js.map.sha256_ | 2 +- .../rollup/test/integration/golden.iife.js_ | 7 +- .../integration/golden.system.js.map.sha256_ | 2 +- .../rollup/test/integration/golden.system.js_ | 9 +- .../integration/golden.umd.js.map.sha256_ | 2 +- .../test/integration/golden.umd.js.sha256_ | 2 +- .../rollup/test/integration/golden.umd.js_ | 11 +- .../rollup/test/integration/rollup.config.js | 10 +- packages/rollup/test/plugins/BUILD.bazel | 2 +- packages/rollup/test/plugins/rollup.config.js | 2 +- .../test/version_stamp/rollup.config.js | 6 +- .../rollup/test/workspace_link/BUILD.bazel | 30 + packages/rollup/test/workspace_link/bar.js | 1 + packages/rollup/test/workspace_link/foo.js | 1 + packages/rollup/test/workspace_link/main.js | 5 + .../test/workspace_link/rollup.config.js | 15 + packages/rollup/test/workspace_link/spec.js | 11 + packages/terser/terser_minified.bzl | 7 +- packages/typescript/BUILD.bazel | 5 +- packages/typescript/_README.md | 61 + packages/typescript/checked_in_ts_project.bzl | 37 +- packages/typescript/devserver/BUILD.bazel | 17 + packages/typescript/install.md | 350 -- packages/typescript/internal/BUILD.bazel | 1 + packages/typescript/internal/build_defs.bzl | 318 +- .../internal/devserver/ts_devserver.bzl | 2 +- packages/typescript/internal/ts_config.bzl | 93 +- packages/typescript/internal/ts_project.bzl | 375 +- .../internal/ts_project_options_validator.ts | 36 +- .../typescript/internal/worker/BUILD.bazel | 55 + .../internal/worker/worker_adapter.js | 99 + packages/typescript/replacements.bzl | 3 +- packages/typescript/test/ts_project/BUILD | 8 + .../test/ts_project/allow_js/BUILD.bazel | 36 + .../typescript/test/ts_project/allow_js/a.js | 3 + .../test/ts_project/allow_js/tsconfig.json | 9 + .../test/ts_project/allow_js/verify.js | 6 + .../ts_project/declaration_only/BUILD.bazel | 13 + .../test/ts_project/declaration_only/a.d.ts_ | 1 + .../test/ts_project/declaration_only/a.ts | 1 + .../ts_project/declaration_only/tsconfig.json | 7 + .../generated_tsconfig/config/BUILD.bazel | 43 + .../config/expected.d.ts.map_ | 1 + .../generated_tsconfig/config/expected.d.ts_ | 2 + .../config/expected.js.map_ | 1 + .../generated_tsconfig/config/expected.js_ | 2 + .../generated_tsconfig/config/src/a.ts | 1 + .../config_attrs/BUILD.bazel | 43 + .../config_attrs/expected.d.ts.map_ | 1 + .../config_attrs/expected.d.ts_ | 2 + .../config_attrs/expected.js.map_ | 1 + .../config_attrs/expected.js_ | 2 + .../generated_tsconfig/config_attrs/src/a.ts | 1 + .../generated_tsconfig/decl_only/BUILD.bazel | 20 + .../generated_tsconfig/decl_only/a.ts | 1 + .../decl_only/expected.d.ts_ | 1 + .../generated_tsconfig/default/BUILD.bazel | 16 + .../generated_tsconfig/default/a.ts | 1 + .../generated_tsconfig/default/expected.js_ | 3 + .../generated_tsconfig/extends/BUILD.bazel | 50 + .../generated_tsconfig/extends/a.ts | 1 + .../generated_tsconfig/extends/expected.js_ | 3 + .../extends/tsconfig-extended.json | 6 + .../generated_tsconfig/gen_src/BUILD.bazel | 25 + .../generated_tsconfig/gen_src/expected.js_ | 3 + .../import_package_by_name/app/BUILD.bazel | 11 + .../import_package_by_name/app/app.ts | 3 + .../import_package_by_name/lib/BUILD.bazel | 19 + .../import_package_by_name/lib/lib.ts | 1 + .../import_package_by_name/lib/package.json | 6 + .../test/ts_project/js_library/BUILD.bazel | 2 +- .../test/ts_project/json/BUILD.bazel | 2 + .../typescript/test/ts_project/json/baz.svg | 1 + .../test/ts_project/rootdir/BUILD.bazel | 20 +- .../test/ts_project/simple/tsconfig.json | 2 +- .../test/ts_project/ts_config/BUILD.bazel | 21 + .../typescript/test/ts_project/ts_config/a.ts | 1 + .../ts_config/tsconfig-extended.json | 6 + .../test/ts_project/ts_config/tsconfig.json | 6 + .../ts_project/tsbuildinfofile/BUILD.bazel | 7 + .../test/ts_project/tsbuildinfofile/a.ts | 1 + .../ts_project/tsbuildinfofile/tsconfig.json | 7 + .../test/ts_project/worker/BUILD.bazel | 12 + .../typescript/test/ts_project/worker/big.ts | 3 + providers.bzl | 14 + rules_typescript_pr_508.patch | 41 + scripts/current_version.sh | 2 + scripts/publish_release.sh | 7 +- scripts/update-nodejs-versions.js | 105 + scripts/update_nested_lock_files.sh | 2 +- .../gjtorikian/isBinaryFile/BUILD.bazel | 2 +- toolchains/node/BUILD.bazel | 22 +- tools/defaults.bzl | 16 +- tools/stardoc/BUILD.bazel | 5 +- tools/stardoc/index.bzl | 3 + tools/stardoc/jekyll.bzl | 153 + tools/stardoc/jekyll_serve_tpl.sh | 9 + tools/stardoc/post-process-docs.js | 33 + tools/stardoc/templates/aspect.vm | 30 +- tools/stardoc/templates/func.vm | 26 +- tools/stardoc/templates/header.vm | 3 - tools/stardoc/templates/provider.vm | 13 +- tools/stardoc/templates/rule.vm | 23 +- version.bzl | 2 +- yarn.lock | 324 +- 492 files changed, 24703 insertions(+), 12334 deletions(-) delete mode 100644 .github/stale.yml create mode 100644 .github/workflows/stale.yml create mode 100644 .github/workflows/update-nodejs-versions.yml create mode 100644 docs/.gitattributes create mode 100755 docs/Built-ins.html create mode 100755 docs/Cypress.html create mode 100755 docs/Jasmine.html create mode 100755 docs/Karma.html create mode 100755 docs/Labs.html create mode 100755 docs/Labs.md create mode 100755 docs/Protractor.html create mode 100755 docs/Rollup.html create mode 100755 docs/Terser.html create mode 100755 docs/TypeScript.html delete mode 100644 docs/_includes/drawer.html create mode 100644 docs/_includes/footer-content.html create mode 100644 docs/_includes/sidenav.html delete mode 100644 docs/_layouts/home.html create mode 100644 docs/_layouts/search.html create mode 100755 docs/changing-rules.html create mode 100644 docs/changing-rules.md create mode 100644 docs/css/BUILD.bazel create mode 100644 docs/css/_be.scss create mode 100644 docs/css/_docs.scss create mode 100644 docs/css/_footer.scss create mode 100644 docs/css/_navbar.scss create mode 100644 docs/css/_sidebar.scss create mode 100644 docs/css/_styles.scss create mode 100644 docs/css/_syntax.scss create mode 100644 docs/css/_tables.scss delete mode 100644 docs/css/docs.css delete mode 100644 docs/css/home.css create mode 100755 docs/css/main.css create mode 100644 docs/css/main.scss create mode 100755 docs/debugging.html create mode 100644 docs/debugging.md create mode 100755 docs/dependencies.html create mode 100644 docs/dependencies.md create mode 100755 docs/examples.html create mode 100644 docs/images/bazel-icon.png create mode 100755 docs/images/bazel-icon.svg create mode 100644 docs/images/bazel-logo.png create mode 100644 docs/images/bazel-logo.svg create mode 100644 docs/images/bazel-navbar.svg create mode 100644 docs/images/bazel-og-image.png create mode 100644 docs/images/favicon-16x16.png create mode 100644 docs/images/favicon-32x32.png mode change 100644 => 100755 docs/images/favicon.ico create mode 100755 docs/index.html create mode 100755 docs/install.html create mode 100755 docs/repositories.html create mode 100755 docs/search.html create mode 100644 docs/search.md create mode 100755 docs/stamping.html create mode 100644 docs/stamping.md create mode 100644 e2e/coverage/.bazelignore create mode 100644 e2e/coverage/.bazelrc create mode 100644 e2e/coverage/BUILD.bazel create mode 100644 e2e/coverage/WORKSPACE create mode 100644 e2e/coverage/coverage.spec.js create mode 100644 e2e/coverage/coverage_source.ts create mode 100644 e2e/coverage/fail.spec.js create mode 100644 e2e/coverage/package.json create mode 100644 e2e/coverage/tsconfig.json create mode 100644 e2e/coverage/yarn.lock create mode 100644 examples/angular/favicon.ico create mode 100644 examples/angular/src/app/service-worker.service.ts create mode 100644 examples/angular/src/assets/icons/icon-128x128.png create mode 100644 examples/angular/src/assets/icons/icon-144x144.png create mode 100644 examples/angular/src/assets/icons/icon-152x152.png create mode 100644 examples/angular/src/assets/icons/icon-192x192.png create mode 100644 examples/angular/src/assets/icons/icon-384x384.png create mode 100644 examples/angular/src/assets/icons/icon-512x512.png create mode 100644 examples/angular/src/assets/icons/icon-72x72.png create mode 100644 examples/angular/src/assets/icons/icon-96x96.png create mode 100644 examples/angular/src/manifest.webmanifest create mode 100644 examples/angular/src/ngsw-config.json create mode 100644 examples/angular/src/robots.txt create mode 100644 examples/angular/tools/ngsw_config.bzl create mode 100644 examples/jest/jest.ts.config.js create mode 100644 examples/jest/ts/BUILD.bazel create mode 100644 examples/jest/ts/src/BUILD.bazel create mode 100644 examples/jest/ts/src/extra.ts create mode 100644 examples/jest/ts/src/index.ts create mode 100644 examples/jest/ts/test/BUILD.bazel create mode 100644 examples/jest/ts/test/index.test.ts create mode 100644 examples/jest/tsconfig.json create mode 100644 internal/js_library/test/BUILD.bazel create mode 100644 internal/js_library/test/transitive/BUILD.bazel create mode 100644 internal/js_library/test/transitive/a.d.ts create mode 100644 internal/js_library/test/transitive/transitive_declarations_test.bzl create mode 100644 internal/linker/test/workspace_link/BUILD.bazel create mode 100644 internal/linker/test/workspace_link/bar/BUILD.bazel create mode 100644 internal/linker/test/workspace_link/bar/main.js create mode 100644 internal/linker/test/workspace_link/bar/package.json create mode 100644 internal/linker/test/workspace_link/foo/BUILD.bazel create mode 100644 internal/linker/test/workspace_link/foo/main.ts create mode 100644 internal/linker/test/workspace_link/foo/package.json create mode 100644 internal/linker/test/workspace_link/foo/tsconfig.json create mode 100644 internal/linker/test/workspace_link/test.js create mode 100644 internal/node/node_versions.bzl delete mode 100644 internal/npm_install/node_module_library.bzl create mode 100644 internal/npm_install/test/package.spec.json create mode 100755 internal/pkg_npm/test/diff_pack_dir.sh delete mode 100644 internal/pkg_web/test/index_golden.html_ rename packages/cypress/internal/{cypress-install.js => install-cypress.js} (53%) create mode 100644 packages/esbuild/BUILD.bazel create mode 100644 packages/esbuild/_README.md create mode 100644 packages/esbuild/esbuild.bzl create mode 100644 packages/esbuild/esbuild_repo.bzl create mode 100644 packages/esbuild/helpers.bzl create mode 100644 packages/esbuild/index.bzl create mode 100644 packages/esbuild/package.json create mode 100644 packages/esbuild/test/alias-mapping/BUILD.bazel create mode 100644 packages/esbuild/test/alias-mapping/bundle.golden.txt create mode 100644 packages/esbuild/test/alias-mapping/main.js create mode 100644 packages/esbuild/test/alias-mapping/module-one/BUILD.bazel create mode 100644 packages/esbuild/test/alias-mapping/module-one/index.js create mode 100644 packages/esbuild/test/alias-mapping/module-two/BUILD.bazel create mode 100644 packages/esbuild/test/alias-mapping/module-two/index.js create mode 100644 packages/esbuild/test/bundle/BUILD.bazel create mode 100644 packages/esbuild/test/bundle/a.ts create mode 100644 packages/esbuild/test/bundle/bundle.golden.txt create mode 100644 packages/esbuild/test/bundle/bundle.min.golden.txt create mode 100644 packages/esbuild/test/bundle/index.ts create mode 100644 packages/esbuild/test/splitting/BUILD.bazel create mode 100644 packages/esbuild/test/splitting/bundle.spec.js create mode 100644 packages/esbuild/test/splitting/main.ts create mode 100644 packages/esbuild/test/splitting/other.ts create mode 100644 packages/esbuild/test/typescript/BUILD.bazel create mode 100644 packages/esbuild/test/typescript/bundle.golden.txt create mode 100644 packages/esbuild/test/typescript/main.ts create mode 100644 packages/esbuild/test/typescript/module-dynamic/BUILD.bazel create mode 100644 packages/esbuild/test/typescript/module-dynamic/index.ts create mode 100644 packages/esbuild/test/typescript/module-dynamic/random-file.css create mode 100644 packages/esbuild/test/typescript/module-one/BUILD.bazel create mode 100644 packages/esbuild/test/typescript/module-one/index.ts create mode 100644 packages/esbuild/test/typescript/module-two/BUILD.bazel create mode 100644 packages/esbuild/test/typescript/module-two/index.ts create mode 100644 packages/esbuild/test/typescript/tsconfig.json create mode 100644 packages/karma/test/karma/custom_chrome.json create mode 100644 packages/karma/test/karma/karma.conf.js.golden rename packages/labs/{README.md => install.md} (100%) create mode 100644 packages/rollup/test/workspace_link/BUILD.bazel create mode 100644 packages/rollup/test/workspace_link/bar.js create mode 100644 packages/rollup/test/workspace_link/foo.js create mode 100644 packages/rollup/test/workspace_link/main.js create mode 100644 packages/rollup/test/workspace_link/rollup.config.js create mode 100644 packages/rollup/test/workspace_link/spec.js create mode 100644 packages/typescript/_README.md delete mode 100644 packages/typescript/install.md create mode 100644 packages/typescript/internal/worker/BUILD.bazel create mode 100644 packages/typescript/internal/worker/worker_adapter.js create mode 100644 packages/typescript/test/ts_project/allow_js/BUILD.bazel create mode 100644 packages/typescript/test/ts_project/allow_js/a.js create mode 100644 packages/typescript/test/ts_project/allow_js/tsconfig.json create mode 100644 packages/typescript/test/ts_project/allow_js/verify.js create mode 100644 packages/typescript/test/ts_project/declaration_only/BUILD.bazel create mode 100644 packages/typescript/test/ts_project/declaration_only/a.d.ts_ create mode 100644 packages/typescript/test/ts_project/declaration_only/a.ts create mode 100644 packages/typescript/test/ts_project/declaration_only/tsconfig.json create mode 100644 packages/typescript/test/ts_project/generated_tsconfig/config/BUILD.bazel create mode 100644 packages/typescript/test/ts_project/generated_tsconfig/config/expected.d.ts.map_ create mode 100644 packages/typescript/test/ts_project/generated_tsconfig/config/expected.d.ts_ create mode 100644 packages/typescript/test/ts_project/generated_tsconfig/config/expected.js.map_ create mode 100644 packages/typescript/test/ts_project/generated_tsconfig/config/expected.js_ create mode 100644 packages/typescript/test/ts_project/generated_tsconfig/config/src/a.ts create mode 100644 packages/typescript/test/ts_project/generated_tsconfig/config_attrs/BUILD.bazel create mode 100644 packages/typescript/test/ts_project/generated_tsconfig/config_attrs/expected.d.ts.map_ create mode 100644 packages/typescript/test/ts_project/generated_tsconfig/config_attrs/expected.d.ts_ create mode 100644 packages/typescript/test/ts_project/generated_tsconfig/config_attrs/expected.js.map_ create mode 100644 packages/typescript/test/ts_project/generated_tsconfig/config_attrs/expected.js_ create mode 100644 packages/typescript/test/ts_project/generated_tsconfig/config_attrs/src/a.ts create mode 100644 packages/typescript/test/ts_project/generated_tsconfig/decl_only/BUILD.bazel create mode 100644 packages/typescript/test/ts_project/generated_tsconfig/decl_only/a.ts create mode 100644 packages/typescript/test/ts_project/generated_tsconfig/decl_only/expected.d.ts_ create mode 100644 packages/typescript/test/ts_project/generated_tsconfig/default/BUILD.bazel create mode 100644 packages/typescript/test/ts_project/generated_tsconfig/default/a.ts create mode 100644 packages/typescript/test/ts_project/generated_tsconfig/default/expected.js_ create mode 100644 packages/typescript/test/ts_project/generated_tsconfig/extends/BUILD.bazel create mode 100644 packages/typescript/test/ts_project/generated_tsconfig/extends/a.ts create mode 100644 packages/typescript/test/ts_project/generated_tsconfig/extends/expected.js_ create mode 100644 packages/typescript/test/ts_project/generated_tsconfig/extends/tsconfig-extended.json create mode 100644 packages/typescript/test/ts_project/generated_tsconfig/gen_src/BUILD.bazel create mode 100644 packages/typescript/test/ts_project/generated_tsconfig/gen_src/expected.js_ create mode 100644 packages/typescript/test/ts_project/import_package_by_name/app/BUILD.bazel create mode 100644 packages/typescript/test/ts_project/import_package_by_name/app/app.ts create mode 100644 packages/typescript/test/ts_project/import_package_by_name/lib/BUILD.bazel create mode 100644 packages/typescript/test/ts_project/import_package_by_name/lib/lib.ts create mode 100644 packages/typescript/test/ts_project/import_package_by_name/lib/package.json create mode 100644 packages/typescript/test/ts_project/json/baz.svg create mode 100644 packages/typescript/test/ts_project/ts_config/BUILD.bazel create mode 100644 packages/typescript/test/ts_project/ts_config/a.ts create mode 100644 packages/typescript/test/ts_project/ts_config/tsconfig-extended.json create mode 100644 packages/typescript/test/ts_project/ts_config/tsconfig.json create mode 100644 packages/typescript/test/ts_project/tsbuildinfofile/BUILD.bazel create mode 100644 packages/typescript/test/ts_project/tsbuildinfofile/a.ts create mode 100644 packages/typescript/test/ts_project/tsbuildinfofile/tsconfig.json create mode 100644 packages/typescript/test/ts_project/worker/BUILD.bazel create mode 100644 packages/typescript/test/ts_project/worker/big.ts create mode 100644 rules_typescript_pr_508.patch create mode 100644 scripts/update-nodejs-versions.js create mode 100644 tools/stardoc/jekyll.bzl create mode 100644 tools/stardoc/jekyll_serve_tpl.sh create mode 100644 tools/stardoc/post-process-docs.js diff --git a/.bazelci/presubmit.yml b/.bazelci/presubmit.yml index 5e2c576ec9..95cf18b200 100644 --- a/.bazelci/presubmit.yml +++ b/.bazelci/presubmit.yml @@ -32,7 +32,7 @@ tasks: # on bazelci apt-get fails with permission denied and there is no sudo # command to switch to root. # TODO(gregmagolan): figure out how to install missing shared libs - - "--test_tag_filters=-e2e,-examples,-manual,-browser:chromium-local,-browser:firefox-local,-cypress" + - "--test_tag_filters=-e2e,-examples,-manual,-browser:chromium-local,-browser:firefox-local,-browser:custom_chrome,-cypress" test_targets: - "//..." # //internal/node/test:nodejs_toolchain_linux_amd64_test is a "manual" test that must be run @@ -128,16 +128,16 @@ tasks: # TODO(gregmagolan): figure out how to install missing shared libs # Without this filter the @cypress external repository will be built and that build will fail due to missing shared libs. - "--build_tag_filters=-cypress" - # This target is tagged "manual" but we want some CI - # coverage of it to make sure it doesn't break. - - "//docs" + # Build the docs up to the point of running Jekyll as this requires some locally installed deps + # Building the stardoc targets provides a little test coverage in formatting etc + - "//docs:builtins_md" test_flags: # Both chrome & firefox are missing shared libs on bazelci ubuntu. # On circleci we have the same issue but we can work around it using apt-get. # on bazelci apt-get fails with permission denied and there is no sudo # command to switch to root. # TODO(gregmagolan): figure out how to install missing shared libs - - "--test_tag_filters=-e2e,-examples,-manual,-browser:chromium-local,-browser:firefox-local,-cypress" + - "--test_tag_filters=-e2e,-examples,-manual,-browser:chromium-local,-browser:firefox-local,-browser:custom_chrome,-cypress" test_targets: - "//..." # //internal/node/test:nodejs_toolchain_linux_amd64_test is a "manual" test that must be run @@ -158,7 +158,7 @@ tasks: # on bazelci apt-get fails with permission denied and there is no sudo # command to switch to root. # TODO(gregmagolan): figure out how to install missing shared libs - - "--test_tag_filters=-e2e,-examples,-manual,-browser:chromium-local,-browser:firefox-local,-cypress" + - "--test_tag_filters=-e2e,-examples,-manual,-browser:chromium-local,-browser:firefox-local,-browser:custom_chrome,-cypress" test_targets: - "//..." ubuntu1804_e2e: @@ -462,7 +462,7 @@ tasks: build_flags: # TODO(gregmagolan): figure out how to install missing shared libs # Without this filter the @cypress external repository will be built and that build will fail due to missing shared libs. - - "--build_tag_filters=-cypress" + - "--build_tag_filters=-cypress,-pkg_npm.pack" test_flags: # TODO(gregmagolan): figure out how to install missing shared libs - "--test_arg=-cypress" diff --git a/.bazelrc b/.bazelrc index 6c5170f5b9..0a2b87449a 100644 --- a/.bazelrc +++ b/.bazelrc @@ -5,8 +5,8 @@ import %workspace%/common.bazelrc # This lets us glob() up all the files inside the examples to make them inputs to tests # To update these lines, just run `yarn bazel:update-deleted-packages` # (Note, we cannot use common --deleted_packages because the bazel version command doesn't support it) -build --deleted_packages=examples/angular,examples/angular/e2e,examples/angular/src/app/home,examples/angular/src/app/hello-world,examples/angular/src/app,examples/angular/src/app/todos,examples/angular/src/app/todos/reducers,examples/angular/src/shared/material,examples/angular/src/lib/shorten,examples/angular/src,examples/angular/src/assets,examples/angular/tools,examples/angular_bazel_architect,examples/angular_bazel_architect/projects/frontend-lib,examples/angular_view_engine,examples/angular_view_engine/e2e,examples/angular_view_engine/src/app/home,examples/angular_view_engine/src/app/hello-world,examples/angular_view_engine/src/app,examples/angular_view_engine/src/app/todos,examples/angular_view_engine/src/app/todos/reducers,examples/angular_view_engine/src/shared/material,examples/angular_view_engine/src/lib/typography,examples/angular_view_engine/src/lib/shorten,examples/angular_view_engine/src,examples/angular_view_engine/src/assets,examples/app,examples/app/styles,examples/app/test,examples/closure,examples/create-react-app,examples/cypress,examples/from_source,examples/jest,examples/kotlin,examples/nestjs,examples/nestjs/src,examples/parcel,examples/protocol_buffers,examples/react_webpack,examples/user_managed_deps,examples/vendored_node,examples/vendored_node_and_yarn,examples/vue,examples/vue/src,examples/web_testing,examples/webapp,examples/worker,e2e/bazel_managed_deps,e2e/fine_grained_symlinks,e2e/jasmine,e2e/node_loader_no_preserve_symlinks,e2e/node_loader_preserve_symlinks,e2e/nodejs_image,e2e/nodejs_image/foolib,e2e/packages,e2e/symlinked_node_modules_npm,e2e/symlinked_node_modules_yarn,e2e/ts_devserver,e2e/ts_devserver/genrule,e2e/ts_devserver/subpackage,e2e/typescript,e2e/webapp -query --deleted_packages=examples/angular,examples/angular/e2e,examples/angular/src/app/home,examples/angular/src/app/hello-world,examples/angular/src/app,examples/angular/src/app/todos,examples/angular/src/app/todos/reducers,examples/angular/src/shared/material,examples/angular/src/lib/shorten,examples/angular/src,examples/angular/src/assets,examples/angular/tools,examples/angular_bazel_architect,examples/angular_bazel_architect/projects/frontend-lib,examples/angular_view_engine,examples/angular_view_engine/e2e,examples/angular_view_engine/src/app/home,examples/angular_view_engine/src/app/hello-world,examples/angular_view_engine/src/app,examples/angular_view_engine/src/app/todos,examples/angular_view_engine/src/app/todos/reducers,examples/angular_view_engine/src/shared/material,examples/angular_view_engine/src/lib/typography,examples/angular_view_engine/src/lib/shorten,examples/angular_view_engine/src,examples/angular_view_engine/src/assets,examples/app,examples/app/styles,examples/app/test,examples/closure,examples/create-react-app,examples/cypress,examples/from_source,examples/jest,examples/kotlin,examples/nestjs,examples/nestjs/src,examples/parcel,examples/protocol_buffers,examples/react_webpack,examples/user_managed_deps,examples/vendored_node,examples/vendored_node_and_yarn,examples/vue,examples/vue/src,examples/web_testing,examples/webapp,examples/worker,e2e/bazel_managed_deps,e2e/fine_grained_symlinks,e2e/jasmine,e2e/node_loader_no_preserve_symlinks,e2e/node_loader_preserve_symlinks,e2e/nodejs_image,e2e/nodejs_image/foolib,e2e/packages,e2e/symlinked_node_modules_npm,e2e/symlinked_node_modules_yarn,e2e/ts_devserver,e2e/ts_devserver/genrule,e2e/ts_devserver/subpackage,e2e/typescript,e2e/webapp +build --deleted_packages=examples/angular,examples/angular/e2e,examples/angular/src/app/home,examples/angular/src/app/hello-world,examples/angular/src/app,examples/angular/src/app/todos,examples/angular/src/app/todos/reducers,examples/angular/src/shared/material,examples/angular/src/lib/shorten,examples/angular/src,examples/angular/src/assets,examples/angular/tools,examples/angular_bazel_architect,examples/angular_bazel_architect/projects/frontend-lib,examples/angular_view_engine,examples/angular_view_engine/e2e,examples/angular_view_engine/src/app/home,examples/angular_view_engine/src/app/hello-world,examples/angular_view_engine/src/app,examples/angular_view_engine/src/app/todos,examples/angular_view_engine/src/app/todos/reducers,examples/angular_view_engine/src/shared/material,examples/angular_view_engine/src/lib/typography,examples/angular_view_engine/src/lib/shorten,examples/angular_view_engine/src,examples/angular_view_engine/src/assets,examples/app,examples/app/styles,examples/app/test,examples/closure,examples/create-react-app,examples/cypress,examples/from_source,examples/jest,examples/jest/ts,examples/jest/ts/src,examples/jest/ts/test,examples/kotlin,examples/nestjs,examples/nestjs/src,examples/parcel,examples/protocol_buffers,examples/react_webpack,examples/user_managed_deps,examples/vendored_node,examples/vendored_node_and_yarn,examples/vue,examples/vue/src,examples/web_testing,examples/webapp,examples/worker,e2e/bazel_managed_deps,e2e/coverage,e2e/coverage/node_modules/@bazel/typescript/internal/devserver,e2e/coverage/node_modules/@bazel/typescript/internal,e2e/coverage/node_modules/@bazel/typescript/devserver,e2e/coverage/node_modules/@bazel/typescript/third_party/github.com/bazelbuild/bazel/src/main/protobuf,e2e/coverage/node_modules/@bazel/typescript/third_party/npm/requirejs,e2e/fine_grained_symlinks,e2e/jasmine,e2e/node_loader_no_preserve_symlinks,e2e/node_loader_preserve_symlinks,e2e/nodejs_image,e2e/nodejs_image/foolib,e2e/packages,e2e/symlinked_node_modules_npm,e2e/symlinked_node_modules_yarn,e2e/ts_devserver,e2e/ts_devserver/genrule,e2e/ts_devserver/subpackage,e2e/typescript,e2e/webapp +query --deleted_packages=examples/angular,examples/angular/e2e,examples/angular/src/app/home,examples/angular/src/app/hello-world,examples/angular/src/app,examples/angular/src/app/todos,examples/angular/src/app/todos/reducers,examples/angular/src/shared/material,examples/angular/src/lib/shorten,examples/angular/src,examples/angular/src/assets,examples/angular/tools,examples/angular_bazel_architect,examples/angular_bazel_architect/projects/frontend-lib,examples/angular_view_engine,examples/angular_view_engine/e2e,examples/angular_view_engine/src/app/home,examples/angular_view_engine/src/app/hello-world,examples/angular_view_engine/src/app,examples/angular_view_engine/src/app/todos,examples/angular_view_engine/src/app/todos/reducers,examples/angular_view_engine/src/shared/material,examples/angular_view_engine/src/lib/typography,examples/angular_view_engine/src/lib/shorten,examples/angular_view_engine/src,examples/angular_view_engine/src/assets,examples/app,examples/app/styles,examples/app/test,examples/closure,examples/create-react-app,examples/cypress,examples/from_source,examples/jest,examples/jest/ts,examples/jest/ts/src,examples/jest/ts/test,examples/kotlin,examples/nestjs,examples/nestjs/src,examples/parcel,examples/protocol_buffers,examples/react_webpack,examples/user_managed_deps,examples/vendored_node,examples/vendored_node_and_yarn,examples/vue,examples/vue/src,examples/web_testing,examples/webapp,examples/worker,e2e/bazel_managed_deps,e2e/coverage,e2e/coverage/node_modules/@bazel/typescript/internal/devserver,e2e/coverage/node_modules/@bazel/typescript/internal,e2e/coverage/node_modules/@bazel/typescript/devserver,e2e/coverage/node_modules/@bazel/typescript/third_party/github.com/bazelbuild/bazel/src/main/protobuf,e2e/coverage/node_modules/@bazel/typescript/third_party/npm/requirejs,e2e/fine_grained_symlinks,e2e/jasmine,e2e/node_loader_no_preserve_symlinks,e2e/node_loader_preserve_symlinks,e2e/nodejs_image,e2e/nodejs_image/foolib,e2e/packages,e2e/symlinked_node_modules_npm,e2e/symlinked_node_modules_yarn,e2e/ts_devserver,e2e/ts_devserver/genrule,e2e/ts_devserver/subpackage,e2e/typescript,e2e/webapp # Mock versioning command to test the --stamp behavior build --workspace_status_command="echo BUILD_SCM_VERSION 1.2.3" diff --git a/.circleci/config.yml b/.circleci/config.yml index 080f55e40b..460d9ec1be 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -9,9 +9,9 @@ ## IMPORTANT # If you change the `default_docker_image` version, also change the `cache_key` version -var_1: &default_docker_image circleci/node:12.18.2 -var_2: &browsers_docker_image circleci/node:12.18.2-browsers -var_3: &cache_key node-12.18.2-{{ checksum "yarn.lock" }} +var_1: &default_docker_image circleci/node:12.18.3 +var_2: &browsers_docker_image circleci/node:12.18.3-browsers +var_3: &cache_key node-12.18.3-{{ checksum "yarn.lock" }} var_4: &init_environment run: diff --git a/.github/stale.yml b/.github/stale.yml deleted file mode 100644 index 54d9430f9a..0000000000 --- a/.github/stale.yml +++ /dev/null @@ -1,25 +0,0 @@ -# See https://github.com/probot/stale - -# Number of days of inactivity before an issue becomes stale -daysUntilStale: 60 -# Number of days of inactivity before a stale issue is closed -daysUntilClose: 14 -# Issues with these labels will never be considered stale -exemptLabels: - - "need: discussion" - - cleanup -exemptMilestones: true -exemptAssignees: true -# Label to use when marking an issue as stale -staleLabel: "Can Close?" -# Comment to post when marking an issue as stale. Set to `false` to disable -markComment: > - This issue has been automatically marked as stale because it has not had - any activity for 60 days. - It will be closed if no further activity occurs in two weeks. - Collaborators can add a "cleanup" or "need: discussion" label to keep it open indefinitely. - Thanks for your contributions to rules_nodejs! -# Comment to post when closing a stale issue. Set to `false` to disable -closeComment: > - This issue was automatically closed because it went two weeks without a reply - since it was labelled "Can Close?" diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 0000000000..96b961830b --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,51 @@ +# See https://github.com/marketplace/actions/close-stale-issues + +name: Mark stale issues and pull requests + +on: + schedule: + # run at 01:30 UTC daily + - cron: "30 1 * * *" + +jobs: + stale: + runs-on: ubuntu-latest + + steps: + - uses: actions/stale@v3 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + + # The number of days old an issue can be before marking it stale. + days-before-stale: 90 + # Number of days of inactivity before a stale issue is closed + days-before-close: 14 + + # Issues with these labels will never be considered stale + exempt-issue-labels: "need: discussion,cleanup" + + # Label to use when marking an issue as stale + stale-issue-label: 'Can Close?' + stale-pr-label: 'Can Close?' + + stale-issue-message: > + This issue has been automatically marked as stale because it has not had + any activity for 90 days. + It will be closed if no further activity occurs in two weeks. + Collaborators can add a "cleanup" or "need: discussion" label to keep it open indefinitely. + Thanks for your contributions to rules_nodejs! + + stale-pr-message: > + This Pull Request has been automatically marked as stale because it has not had + any activity for 90 days. + It will be closed if no further activity occurs in two weeks. + Collaborators can add a "cleanup" or "need: discussion" label to keep it open indefinitely. + Thanks for your contributions to rules_nodejs! + + close-issue-message: > + This issue was automatically closed because it went two weeks without a reply + since it was labeled "Can Close?" + + close-pr-message: > + This PR was automatically closed because it went two weeks without a reply + since it was labeled "Can Close?" diff --git a/.github/workflows/update-nodejs-versions.yml b/.github/workflows/update-nodejs-versions.yml new file mode 100644 index 0000000000..e5f3c6cf09 --- /dev/null +++ b/.github/workflows/update-nodejs-versions.yml @@ -0,0 +1,37 @@ +# See https://github.com/marketplace/actions/github-action-for-yarn + +name: Update NodeJS Versions + +on: + schedule: + # run at 01:30 UTC daily + - cron: "30 1 * * *" + +jobs: + updateNodejsVersions: + runs-on: ubuntu-latest + + steps: + - name: Git Checkout + uses: actions/checkout@v2 + with: + fetch-depth: + + - name: Run yarn update-nodejs-versions + uses: borales/actions-yarn@v2.0.0 + with: + cmd: update-nodejs-versions + + - name: Create Pull Request + uses: peter-evans/create-pull-request@v3 + with: + token: ${{ secrets.PAT }} + commit-message: Update NodeJS Versions + title: Update NodeJS Versions + body: | + - Updated NodeJS Versions using `yarn update-nodejs-versions` + + Auto-generated by [create-pull-request][1] + + [1]: https://github.com/peter-evans/create-pull-request + branch: update-nodejs-versions diff --git a/BUILD.bazel b/BUILD.bazel index 2736913c2b..fe6a9fb068 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -48,6 +48,7 @@ bzl_library( deps = [ "//internal/common:bzl", "//internal/generated_file_test:bzl", + "//internal/js_library:bzl", "//internal/linker:bzl", "//internal/pkg_npm:bzl", "//internal/pkg_web:bzl", diff --git a/CHANGELOG.md b/CHANGELOG.md index d0664abada..38d3e54de8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,142 @@ +## [2.3.1](https://github.com/bazelbuild/rules_nodejs/compare/2.3.0...2.3.1) (2020-11-24) + + +### Bug Fixes + +* **builtin:** make linker deterministic when resolving from manifest & fix link_workspace_root with no runfiles ([8adebda](https://github.com/bazelbuild/rules_nodejs/commit/8adebda)) +* npm_package.pack on Windows should not generate undefined.tgz ([76c3f51](https://github.com/bazelbuild/rules_nodejs/commit/76c3f51)) + + +### Performance Improvements + +* **cypress:** pack cypress runfiles into a single tar ([185c632](https://github.com/bazelbuild/rules_nodejs/commit/185c632)) + + + +# [2.3.0](https://github.com/bazelbuild/rules_nodejs/compare/2.2.2...2.3.0) (2020-11-10) + + +### Bug Fixes + +* **typescript:** specify rootDir as absolute path ([86bef24](https://github.com/bazelbuild/rules_nodejs/commit/86bef24)) +* npm_package.pack should work in windows os ([bc36519](https://github.com/bazelbuild/rules_nodejs/commit/bc36519)) +* **builtin:** give a longer timeout for _create_build_files ([e72c145](https://github.com/bazelbuild/rules_nodejs/commit/e72c145)), closes [#2231](https://github.com/bazelbuild/rules_nodejs/issues/2231) +* **exmaples/nestjs:** add module_name field in ts_library ([700374a](https://github.com/bazelbuild/rules_nodejs/commit/700374a)) +* **typescript:** don't include _valid_options marker file in outs ([6305db3](https://github.com/bazelbuild/rules_nodejs/commit/6305db3)), closes [#2078](https://github.com/bazelbuild/rules_nodejs/issues/2078) + + +### Features + +* **cypress:** remove browiserify preprocessor ([1eeabbe](https://github.com/bazelbuild/rules_nodejs/commit/1eeabbe)) +* **examples:** adds example for running jest with typescript ([#2245](https://github.com/bazelbuild/rules_nodejs/issues/2245)) ([3c11800](https://github.com/bazelbuild/rules_nodejs/commit/3c11800)) +* **node_repositories:** Added auth option for downloading nodejs and yarn ([51de4e0](https://github.com/bazelbuild/rules_nodejs/commit/51de4e0)) +* **typescript:** add allow_js support to ts_project ([12571ee](https://github.com/bazelbuild/rules_nodejs/commit/12571ee)) +* **typescript:** worker mode for ts_project ([#2136](https://github.com/bazelbuild/rules_nodejs/issues/2136)) ([9663b85](https://github.com/bazelbuild/rules_nodejs/commit/9663b85)) + + + +## [2.2.2](https://github.com/bazelbuild/rules_nodejs/compare/2.2.1...2.2.2) (2020-10-17) + + +### Bug Fixes + +* **builtin:** js_library supports --output_groups=types ([c060a22](https://github.com/bazelbuild/rules_nodejs/commit/c060a22)) +* **example:** remove compression dependencies ([75bf720](https://github.com/bazelbuild/rules_nodejs/commit/75bf720)) +* **example:** remove index.html from prodapp srcs ([c7be89b](https://github.com/bazelbuild/rules_nodejs/commit/c7be89b)) +* **example:** remove server side compression ([6d5aafb](https://github.com/bazelbuild/rules_nodejs/commit/6d5aafb)) +* **example:** add docstring to ngsw_config rule ([481fa21](https://github.com/bazelbuild/rules_nodejs/commit/481fa21)) + + +### Features + +* **example:** add full pwa support ([4d5b9c7](https://github.com/bazelbuild/rules_nodejs/commit/4d5b9c7)) +* **example:** service worker update handling ([bb66235](https://github.com/bazelbuild/rules_nodejs/commit/bb66235)) +* **karma:** use Trusted Types policy when loading scripts for Karma ([af9feb4](https://github.com/bazelbuild/rules_nodejs/commit/af9feb4)) + + + +## [2.2.1](https://github.com/bazelbuild/rules_nodejs/compare/2.2.0...2.2.1) (2020-10-07) + + +### Bug Fixes + +* **builtin:** js_library: correctly propagate DeclarationInfos ([41f8719](https://github.com/bazelbuild/rules_nodejs/commit/41f8719)) +* **examples:** prevent ibazel EOF ([96aea69](https://github.com/bazelbuild/rules_nodejs/commit/96aea69)), closes [#2143](https://github.com/bazelbuild/rules_nodejs/issues/2143) +* **karma:** allow custom browsers to specify args (fixes [#595](https://github.com/bazelbuild/rules_nodejs/issues/595)) ([5a58030](https://github.com/bazelbuild/rules_nodejs/commit/5a58030)) +* don't glob yarn or node files when using vendored_node or vendored_yarn ([f5ef64f](https://github.com/bazelbuild/rules_nodejs/commit/f5ef64f)) + + +### Features + +* add strict_visibility to npm_install / yarn_install rules ([#2193](https://github.com/bazelbuild/rules_nodejs/issues/2193)) ([18c6e80](https://github.com/bazelbuild/rules_nodejs/commit/18c6e80)), closes [#2110](https://github.com/bazelbuild/rules_nodejs/issues/2110) +* update nodejs versions ([#2207](https://github.com/bazelbuild/rules_nodejs/issues/2207)) ([5478dab](https://github.com/bazelbuild/rules_nodejs/commit/5478dab)) + + + +# [2.2.0](https://github.com/bazelbuild/rules_nodejs/compare/2.1.0...2.2.0) (2020-09-10) + + +### Bug Fixes + +* **builtin:** don't set --preserve-symlinks-main by default ([#2176](https://github.com/bazelbuild/rules_nodejs/issues/2176)) ([df18c61](https://github.com/bazelbuild/rules_nodejs/commit/df18c61)) +* **builtin:** fix bazel coverage masking test failures ([3d0d1f7](https://github.com/bazelbuild/rules_nodejs/commit/3d0d1f7)) +* **rollup:** allow config files to override default onwarn method ([0b80f6a](https://github.com/bazelbuild/rules_nodejs/commit/0b80f6a)), closes [#2084](https://github.com/bazelbuild/rules_nodejs/issues/2084) + + +### Features + +* add link_workspace_root to nodejs_binary, npm_package_bin, rollup_bundle, terser_minified, ts_project ([4dcb37f](https://github.com/bazelbuild/rules_nodejs/commit/4dcb37f)) +* link_workspace_root not needed in terser_minified ([c80b816](https://github.com/bazelbuild/rules_nodejs/commit/c80b816)) +* promote js_library to public API ([1e357fd](https://github.com/bazelbuild/rules_nodejs/commit/1e357fd)), closes [#149](https://github.com/bazelbuild/rules_nodejs/issues/149) [#1771](https://github.com/bazelbuild/rules_nodejs/issues/1771) + + + +# [2.1.0](https://github.com/bazelbuild/rules_nodejs/compare/2.0.3...2.1.0) (2020-09-07) + + +### Bug Fixes + +* use golden_file_test instead ([1ef6704](https://github.com/bazelbuild/rules_nodejs/commit/1ef6704)) +* **typescript:** add the tsBuildInfoFile option to ts_project ([#2138](https://github.com/bazelbuild/rules_nodejs/issues/2138)) ([16def64](https://github.com/bazelbuild/rules_nodejs/commit/16def64)), closes [#2137](https://github.com/bazelbuild/rules_nodejs/issues/2137) + + +### Features + +* **builtin:** accept any stamp vars in pkg_npm ([01bfe4d](https://github.com/bazelbuild/rules_nodejs/commit/01bfe4d)), closes [#1694](https://github.com/bazelbuild/rules_nodejs/issues/1694) +* **builtin:** support for substitutions ([8a3f9b0](https://github.com/bazelbuild/rules_nodejs/commit/8a3f9b0)) +* **typescript:** generate tsconfig.json for ts_project ([#2130](https://github.com/bazelbuild/rules_nodejs/issues/2130)) ([09ec233](https://github.com/bazelbuild/rules_nodejs/commit/09ec233)), closes [#2058](https://github.com/bazelbuild/rules_nodejs/issues/2058) + + + +## [2.0.3](https://github.com/bazelbuild/rules_nodejs/compare/2.0.2...2.0.3) (2020-08-18) + + +### Bug Fixes + +* **examples:** use ./ prefix on babel config file ([374f56f](https://github.com/bazelbuild/rules_nodejs/commit/374f56f)) +* **typescript:** only expect .js outs for .tsx? srcs ([#2118](https://github.com/bazelbuild/rules_nodejs/issues/2118)) ([83688a1](https://github.com/bazelbuild/rules_nodejs/commit/83688a1)), closes [#2115](https://github.com/bazelbuild/rules_nodejs/issues/2115) +* **typescript:** produce .d.ts as default output rather than empty ([#2117](https://github.com/bazelbuild/rules_nodejs/issues/2117)) ([3d885e8](https://github.com/bazelbuild/rules_nodejs/commit/3d885e8)), closes [#2116](https://github.com/bazelbuild/rules_nodejs/issues/2116) + + +### Features + +* **builtin:** new js_library rule ([#2109](https://github.com/bazelbuild/rules_nodejs/issues/2109)) ([4fe1a17](https://github.com/bazelbuild/rules_nodejs/commit/4fe1a17)) +* **example:** add targets in angular_bazel_architect for production serve and build ([746a6f8](https://github.com/bazelbuild/rules_nodejs/commit/746a6f8)) + + + +## [2.0.2](https://github.com/bazelbuild/rules_nodejs/compare/2.0.1...2.0.2) (2020-08-10) + + +### Bug Fixes + +* **cypress:** allow for async cypress plugins ([4fd4653](https://github.com/bazelbuild/rules_nodejs/commit/4fd4653)) +* coverage ([#2100](https://github.com/bazelbuild/rules_nodejs/issues/2100)) ([e5fc274](https://github.com/bazelbuild/rules_nodejs/commit/e5fc274)) +* remove duplicate Importing ([23f80cf](https://github.com/bazelbuild/rules_nodejs/commit/23f80cf)) +* test file pattern ([#2089](https://github.com/bazelbuild/rules_nodejs/issues/2089)) ([857471e](https://github.com/bazelbuild/rules_nodejs/commit/857471e)) + + + ## [2.0.1](https://github.com/bazelbuild/rules_nodejs/compare/2.0.0...2.0.1) (2020-07-24) diff --git a/DEVELOPING.md b/DEVELOPING.md index 4ba51a1ab0..8649584a28 100644 --- a/DEVELOPING.md +++ b/DEVELOPING.md @@ -48,10 +48,11 @@ Check if there are any breaking changes since the last tag - if so, this will be 1. Manually update the CHANGELOG.md based on the commits since the last release. Look for breaking changes that weren't documented. 1. If publishing from inside Google, set NPM_REGISTRY="--registry https://wombat-dressing-room.appspot.com" in your environment 1. Build npm packages and publish them: `./scripts/publish_release.sh` -1. Run `./scripts/update_nested_lock_files.sh` to update the lock files in all nested workspaces to new release -1. `git commit -a -m 'chore: update lock files for release'` 1. `git push upstream && git push upstream --tags` 1. (Manual for now): go to the [releases] page, edit the release with rough changelog (especially note any breaking changes!) and upload the release artifact from `rules_nodejs-[version].tar.gz`. Also copy the release notes from CHANGELOG.md -1. Announce the release on Angular slack in `#tools-abc-discuss` +1. Announce the release on Bazel slack in `#javascript` +1. Run `yarn stardoc` again so the new release http_archive gets updated in the .html copy of install.md +1. Run `./scripts/update_nested_lock_files.sh` to update the lock files in all nested workspaces to new release +1. `git commit -a -m 'chore: update lock files for release'; git push upstream` [releases]: https://github.com/bazelbuild/rules_nodejs/releases diff --git a/README.md b/README.md index 376249d602..d75b1d464c 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ Circle CI | Bazel CI :---: | :---: -[![CircleCI](https://circleci.com/gh/bazelbuild/rules_nodejs.svg?style=svg)](https://circleci.com/gh/bazelbuild/rules_nodejs) | [![Build status](https://badge.buildkite.com/af1a592b39b11923ef0f523cbb223dd3dbd61629f8bc813c07.svg?branch=master)](https://buildkite.com/bazel/nodejs-rules-nodejs-postsubmit) +[![CircleCI](https://circleci.com/gh/bazelbuild/rules_nodejs/tree/stable.svg?style=svg)](https://circleci.com/gh/bazelbuild/rules_nodejs/tree/stable) | [![Build status](https://badge.buildkite.com/af1a592b39b11923ef0f523cbb223dd3dbd61629f8bc813c07.svg?branch=master)](https://buildkite.com/bazel/nodejs-rules-nodejs-postsubmit) The nodejs rules integrate NodeJS development toolchain and runtime with Bazel. @@ -61,7 +61,7 @@ Organizations: - [LogiOcean](https://www.logiocean.com) - [Spica](https://spicaengine.com) -Not on this list? [Send a PR](https://github.com/bazelbuild/rules_nodejs/edit/master/README.md) to add your repo or organization! +Not on this list? [Send a PR](https://github.com/bazelbuild/rules_nodejs/edit/stable/README.md) to add your repo or organization! ## User testimonials diff --git a/WORKSPACE b/WORKSPACE index ca7f5fb3ad..200396d3bd 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -51,9 +51,9 @@ yarn_install( # The @npm//:node_modules_filegroup generated by manual_build_file_contents # is used in the //packages/typescript/test/reference_types_directive:tsconfig_types # test. For now we're still supporting node_modules as a filegroup tho this may - # change in the future. The default generated //:node_modules target is a node_module_library - # rule which provides NpmPackageInfo but that rule is not yet in the public API and we - # have not yet dropped support for filegroup based node_modules target. + # change in the future. The default generated //:node_modules target is a js_library + # rule which provides NpmPackageInfo but we have not yet dropped support for + # filegroup based node_modules target. manual_build_file_contents = """ filegroup( name = "node_modules_filegroup", @@ -99,6 +99,17 @@ load("@build_bazel_rules_typescript//:package.bzl", "rules_typescript_dev_depend rules_typescript_dev_dependencies() +# Install labs dependencies +load("//packages/labs:package.bzl", "npm_bazel_labs_dependencies") + +npm_bazel_labs_dependencies() + +load("@rules_proto//proto:repositories.bzl", "rules_proto_dependencies", "rules_proto_toolchains") + +rules_proto_dependencies() + +rules_proto_toolchains() + load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies") load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies") @@ -120,6 +131,8 @@ load("//packages/cypress:index.bzl", "cypress_repository") cypress_repository( name = "cypress", cypress_bin = "@cypress_deps//:node_modules/cypress/bin/cypress", + # Currently cypress cannot be installed on our Linux/Windows CI machines + fail_on_error = False, ) # @@ -142,6 +155,11 @@ browser_repositories( firefox = True, ) +# Setup esbuild dependencies +load("//packages/esbuild:index.bzl", "esbuild_repository") + +esbuild_repository(name = "esbuild") + # # Dependencies to run stardoc & generating documentation # @@ -284,14 +302,3 @@ load("@build_bazel_integration_testing//tools:repositories.bzl", "bazel_binaries # Depend on the Bazel binaries bazel_binaries(versions = SUPPORTED_BAZEL_VERSIONS) - -# Install labs dependencies -load("//packages/labs:package.bzl", "npm_bazel_labs_dependencies") - -npm_bazel_labs_dependencies() - -load("@rules_proto//proto:repositories.bzl", "rules_proto_dependencies", "rules_proto_toolchains") - -rules_proto_dependencies() - -rules_proto_toolchains() diff --git a/docs/.gitattributes b/docs/.gitattributes new file mode 100644 index 0000000000..f632f8095c --- /dev/null +++ b/docs/.gitattributes @@ -0,0 +1,3 @@ +# Tell GitHub code review that the .html files aren't interesting +# See https://github.com/github/linguist#generated-code +*.html linguist-generated diff --git a/docs/BUILD.bazel b/docs/BUILD.bazel index eb16ffe8b8..c7b61aae2a 100644 --- a/docs/BUILD.bazel +++ b/docs/BUILD.bazel @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -load("//tools/stardoc:index.bzl", "stardoc") +load("//tools/stardoc:index.bzl", "rules_nodejs_docs", "stardoc") stardoc( name = "builtins", @@ -53,45 +53,38 @@ genrule( tags = ["fix-windows"], ) -_PACKAGE_READMES = { - "Built-ins": ":builtins.doc", - "Cypress": "//packages/cypress:README.md", - "Jasmine": "//packages/jasmine:README.md", - "Karma": "//packages/karma:README.md", - "Protractor": "//packages/protractor:README.md", - "Rollup": "//packages/rollup:README.md", - "Terser": "//packages/terser:README.md", - "TypeScript": "//packages/typescript:README.md", -} - -_FRONT_MATTER = "\n".join([ - "---", - "title: %s", - "layout: default", - "stylesheet: docs", - "---", - "", -]) - -[ - genrule( - name = "%s_md" % readme[0], - srcs = [readme[1]], - outs = [readme[0] + ".md"], - cmd = "echo '%s' > $@;" % _FRONT_MATTER % readme[0] + - "cat $< >> $@", - tags = ["fix-windows"], - ) - for readme in _PACKAGE_READMES.items() -] - -filegroup( +rules_nodejs_docs( name = "docs", - srcs = [s + ".md" for s in _PACKAGE_READMES.keys()], - tags = ["fix-windows"], + assets = glob(["images/*"]), + config = "_config.yml", + css = "//docs/css", + docs = [ + "search.md", + "install.md", + "repositories.md", + "debugging.md", + "dependencies.md", + "stamping.md", + "index.md", + "examples.md", + "changing-rules.md", + ], + includes = glob(["_includes/*"]), + layouts = glob(["_layouts/*"]), + readmes = { + "Built-ins": ":builtins.doc", + "Cypress": "//packages/cypress:README.md", + "Jasmine": "//packages/jasmine:README.md", + "Karma": "//packages/karma:README.md", + "Labs": "//packages/labs:README.md", + "Protractor": "//packages/protractor:README.md", + "Rollup": "//packages/rollup:README.md", + "Terser": "//packages/terser:README.md", + "TypeScript": "//packages/typescript:README.md", + "esbuild": "//packages/esbuild:README.md", + }, + tags = [ + "fix-windows", + "manual", + ], ) diff --git a/docs/Built-ins.html b/docs/Built-ins.html new file mode 100755 index 0000000000..7a7bbe5e53 --- /dev/null +++ b/docs/Built-ins.html @@ -0,0 +1,2322 @@ + + + + + + + + + + rules_nodejs - Built-ins + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+ + +
+
+ +

Built-in rules

+ +

These rules are available without any npm installation, via the WORKSPACE install of the build_bazel_rules_nodejs workspace. This is necessary to bootstrap Bazel to run the package manager to download other rules from NPM.

+ +

node_repositories

+ +

USAGE

+ +
+node_repositories(name, node_download_auth, node_repositories, node_urls, node_version,
+                  package_json, preserve_symlinks, repo_mapping, vendored_node, vendored_yarn,
+                  yarn_download_auth, yarn_repositories, yarn_urls, yarn_version)
+
+ +

To be run in user’s WORKSPACE to install rules_nodejs dependencies.

+ +

This rule sets up node, npm, and yarn. The versions of these tools can be specified in one of three ways

+ +

Simplest Usage

+ +

Specify no explicit versions. This will download and use the latest NodeJS & Yarn that were available when the +version of rules_nodejs you’re using was released. +Note that you can skip calling node_repositories in your WORKSPACE file - if you later try to yarn_install or npm_install, +we’ll automatically select this simple usage for you.

+ +

Forced version(s)

+ +

You can select the version of NodeJS and/or Yarn to download & use by specifying it when you call node_repositories, +using a value that matches a known version (see the default values)

+ +

Using a custom version

+ +

You can pass in a custom list of NodeJS and/or Yarn repositories and URLs for node_resositories to use.

+ +

Custom NodeJS versions

+ +

To specify custom NodeJS versions, use the node_repositories attribute

+ +
node_repositories(
+    node_repositories = {
+        "10.10.0-darwin_amd64": ("node-v10.10.0-darwin-x64.tar.gz", "node-v10.10.0-darwin-x64", "00b7a8426e076e9bf9d12ba2d571312e833fe962c70afafd10ad3682fdeeaa5e"),
+        "10.10.0-linux_amd64": ("node-v10.10.0-linux-x64.tar.xz", "node-v10.10.0-linux-x64", "686d2c7b7698097e67bcd68edc3d6b5d28d81f62436c7cf9e7779d134ec262a9"),
+        "10.10.0-windows_amd64": ("node-v10.10.0-win-x64.zip", "node-v10.10.0-win-x64", "70c46e6451798be9d052b700ce5dadccb75cf917f6bf0d6ed54344c856830cfb"),
+    },
+)
+
+ +

These can be mapped to a custom download URL, using node_urls

+ +
node_repositories(
+    node_version = "10.10.0",
+    node_repositories = {"10.10.0-darwin_amd64": ("node-v10.10.0-darwin-x64.tar.gz", "node-v10.10.0-darwin-x64", "00b7a8426e076e9bf9d12ba2d571312e833fe962c70afafd10ad3682fdeeaa5e")},
+    node_urls = ["https://mycorpproxy/mirror/node/v{version}/{filename}"],
+)
+
+ +

A Mac client will try to download node from https://mycorpproxy/mirror/node/v10.10.0/node-v10.10.0-darwin-x64.tar.gz +and expect that file to have sha256sum 00b7a8426e076e9bf9d12ba2d571312e833fe962c70afafd10ad3682fdeeaa5e

+ +

Custom Yarn versions

+ +

To specify custom Yarn versions, use the yarn_repositories attribute

+ +
node_repositories(
+    yarn_repositories = {
+        "1.12.1": ("yarn-v1.12.1.tar.gz", "yarn-v1.12.1", "09bea8f4ec41e9079fa03093d3b2db7ac5c5331852236d63815f8df42b3ba88d"),
+    },
+)
+
+ +

Like node_urls, the yarn_urls attribute can be used to provide a list of custom URLs to use to download yarn

+ +
node_repositories(
+    yarn_repositories = {
+        "1.12.1": ("yarn-v1.12.1.tar.gz", "yarn-v1.12.1", "09bea8f4ec41e9079fa03093d3b2db7ac5c5331852236d63815f8df42b3ba88d"),
+    },
+    yarn_version = "1.12.1",
+    yarn_urls = [
+        "https://github.com/yarnpkg/yarn/releases/download/v{version}/{filename}",
+    ],
+)
+
+ +

Will download yarn from https://github.com/yarnpkg/yarn/releases/download/v1.2.1/yarn-v1.12.1.tar.gz +and expect the file to have sha256sum 09bea8f4ec41e9079fa03093d3b2db7ac5c5331852236d63815f8df42b3ba88d.

+ +

Using a local version

+ +

To avoid downloads, you can check in vendored copies of NodeJS and/or Yarn and set vendored_node and or vendored_yarn +to point to those before calling node_repositories. You can also point to a location where node is installed on your computer, +but we don’t recommend this because it leads to version skew between you, your coworkers, and your Continuous Integration environment. +It also ties your build to a single platform, preventing you from cross-compiling into a Linux docker image on Mac for example.

+ +

See the the repositories documentation for how to use the resulting repositories.

+ +

Manual install

+ +

You can optionally pass a package_json array to node_repositories. This lets you use Bazel’s version of yarn or npm, yet always run the package manager yourself. +This is an advanced scenario you can use in place of the npm_install or yarn_install rules, but we don’t recommend it, and might remove it in the future.

+ +
load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories")
+node_repositories(package_json = ["//:package.json", "//subpkg:package.json"])
+
+ +

Running bazel run @nodejs//:yarn_node_repositories in this repo would create /node_modules and /subpkg/node_modules.

+ +

Note that the dependency installation scripts will run in each subpackage indicated by the package_json attribute.

+ +

ATTRIBUTES

+ +

name

+ +

(Name, mandatory): A unique name for this repository.

+ +

node_download_auth

+ +

(Dictionary: String -> String): auth to use for all url requests +Example: {“type”: “basic”, “login”: “", "password": "" }

+ +

Defaults to {}

+ +

node_repositories

+ +

(Dictionary: String -> List of strings): Custom list of node repositories to use

+ +

A dictionary mapping NodeJS versions to sets of hosts and their corresponding (filename, strip_prefix, sha256) tuples. +You should list a node binary for every platform users have, likely Mac, Windows, and Linux.

+ +

By default, if this attribute has no items, we’ll use a list of all public NodeJS releases.

+ +

Defaults to {}

+ +

node_urls

+ +

(List of strings): custom list of URLs to use to download NodeJS

+ +

Each entry is a template for downloading a node distribution.

+ +

The {version} parameter is substituted with the node_version attribute, +and {filename} with the matching entry from the node_repositories attribute.

+ +

Defaults to ["https://mirror.bazel.build/nodejs.org/dist/v{version}/{filename}", "https://nodejs.org/dist/v{version}/{filename}"]

+ +

node_version

+ +

(String): the specific version of NodeJS to install or, if vendored_node is specified, the vendored version of node

+ +

Defaults to "12.13.0"

+ +

package_json

+ +

(List of labels): (ADVANCED, not recommended) + a list of labels, which indicate the package.json files that will be installed + when you manually run the package manager, e.g. with + bazel run @nodejs//:yarn_node_repositories or bazel run @nodejs//:npm_node_repositories install. + If you use bazel-managed dependencies, you should omit this attribute.

+ +

Defaults to []

+ + + +

(Boolean): Turn on –node_options=–preserve-symlinks for nodejs_binary and nodejs_test rules.

+ +

When this option is turned on, node will preserve the symlinked path for resolves instead of the default +behavior of resolving to the real path. This means that all required files must be in be included in your +runfiles as it prevents the default behavior of potentially resolving outside of the runfiles. For example, +all required files need to be included in your node_modules filegroup. This option is desirable as it gives +a stronger guarantee of hermeticity which is required for remote execution.

+ +

Defaults to True

+ +

repo_mapping

+ +

(Dictionary: String -> String, mandatory): A dictionary from local repository name to global repository name. This allows controls over workspace dependency resolution for dependencies of this repository.<p>For example, an entry "@foo": "@bar" declares that, for any time this repository depends on @foo (such as a dependency on @foo//some:target, it should actually resolve that dependency within globally-declared @bar (@bar//some:target).

+ +

vendored_node

+ +

(Label): the local path to a pre-installed NodeJS runtime.

+ +

If set then also set node_version to the version that of node that is vendored.

+ +

Defaults to None

+ +

vendored_yarn

+ +

(Label): the local path to a pre-installed yarn tool

+ +

Defaults to None

+ +

yarn_download_auth

+ +

(Dictionary: String -> String): auth to use for all url requests +Example: {“type”: “basic”, “login”: “", "password": "" }

+ +

Defaults to {}

+ +

yarn_repositories

+ +

(Dictionary: String -> List of strings): Custom list of yarn repositories to use.

+ +

Dictionary mapping Yarn versions to their corresponding (filename, strip_prefix, sha256) tuples.

+ +

By default, if this attribute has no items, we’ll use a list of all public NodeJS releases.

+ +

Defaults to {}

+ +

yarn_urls

+ +

(List of strings): custom list of URLs to use to download Yarn

+ +

Each entry is a template, similar to the node_urls attribute, using yarn_version and yarn_repositories in the substitutions.

+ +

Defaults to ["https://mirror.bazel.build/github.com/yarnpkg/yarn/releases/download/v{version}/{filename}", "https://github.com/yarnpkg/yarn/releases/download/v{version}/{filename}"]

+ +

yarn_version

+ +

(String): the specific version of Yarn to install

+ +

Defaults to "1.19.1"

+ +

nodejs_binary

+ +

USAGE

+ +
+nodejs_binary(name, configuration_env_vars, data, default_env_vars, entry_point,
+              link_workspace_root, node_modules, templated_args)
+
+ +

Runs some JavaScript code in NodeJS.

+ +

ATTRIBUTES

+ +

name

+ +

(Name, mandatory): A unique name for this target.

+ +

configuration_env_vars

+ +

(List of strings): Pass these configuration environment variables to the resulting binary. + Chooses a subset of the configuration environment variables (taken from ctx.var), which also + includes anything specified via the –define flag. + Note, this can lead to different outputs produced by this rule.

+ +

Defaults to []

+ +

data

+ +

(List of labels): Runtime dependencies which may be loaded during execution.

+ +

Defaults to []

+ +

default_env_vars

+ +

(List of strings): Default environment variables that are added to configuration_env_vars.

+ +

This is separate from the default of configuration_env_vars so that a user can set configuration_env_vars +without losing the defaults that should be set in most cases.

+ +

The set of default environment variables is:

+ +
    +
  • VERBOSE_LOGS: use by some rules & tools to turn on debug output in their logs
  • +
  • NODE_DEBUG: used by node.js itself to print more logs
  • +
  • RUNFILES_LIB_DEBUG: print diagnostic message from Bazel runfiles.bash helper
  • +
+ +

Defaults to ["VERBOSE_LOGS", "NODE_DEBUG", "RUNFILES_LIB_DEBUG"]

+ +

entry_point

+ +

(Label, mandatory): The script which should be executed first, usually containing a main function.

+ +

If the entry JavaScript file belongs to the same package (as the BUILD file), +you can simply reference it by its relative name to the package directory:

+ +
nodejs_binary(
+    name = "my_binary",
+    ...
+    entry_point = ":file.js",
+)
+
+ +

You can specify the entry point as a typescript file so long as you also include +the ts_library target in data:

+ +
ts_library(
+    name = "main",
+    srcs = ["main.ts"],
+)
+
+nodejs_binary(
+    name = "bin",
+    data = [":main"]
+    entry_point = ":main.ts",
+)
+
+ +

The rule will use the corresponding .js output of the ts_library rule as the entry point.

+ +

If the entry point target is a rule, it should produce a single JavaScript entry file that will be passed to the nodejs_binary rule. +For example:

+ +
filegroup(
+    name = "entry_file",
+    srcs = ["main.js"],
+)
+
+nodejs_binary(
+    name = "my_binary",
+    entry_point = ":entry_file",
+)
+
+ +

The entry_point can also be a label in another workspace:

+ +
nodejs_binary(
+    name = "history-server",
+    entry_point = "@npm//:node_modules/history-server/modules/cli.js",
+    data = ["@npm//history-server"],
+)
+
+ + + +

(Boolean): Link the workspace root to the bin_dir to support absolute requires like ‘my_wksp/path/to/file’. +If source files need to be required then they can be copied to the bin_dir with copy_to_bin.

+ +

Defaults to False

+ +

node_modules

+ +

(Label): The npm packages which should be available to require() during + execution.

+ +

This attribute is DEPRECATED. As of version 0.13.0 the recommended approach +to npm dependencies is to use fine grained npm dependencies which are setup +with the yarn_install or npm_install rules. For example, in targets +that used a //:node_modules filegroup,

+ +
nodejs_binary(
+    name = "my_binary",
+    ...
+    node_modules = "//:node_modules",
+)
+
+ +

which specifies all files within the //:node_modules filegroup +to be inputs to the my_binary. Using fine grained npm dependencies, +my_binary is defined with only the npm dependencies that are +needed:

+ +
nodejs_binary(
+    name = "my_binary",
+    ...
+    data = [
+        "@npm//foo",
+        "@npm//bar",
+        ...
+    ],
+)
+
+ +

In this case, only the foo and bar npm packages and their +transitive deps are includes as inputs to the my_binary target +which reduces the time required to setup the runfiles for this +target (see https://github.com/bazelbuild/bazel/issues/5153).

+ +

The @npm external repository and the fine grained npm package +targets are setup using the yarn_install or npm_install rule +in your WORKSPACE file:

+ +

yarn_install( + name = “npm”, + package_json = “//:package.json”, + yarn_lock = “//:yarn.lock”, +)

+ +

For other rules such as jasmine_node_test, fine grained +npm dependencies are specified in the deps attribute:

+ +
jasmine_node_test(
+    name = "my_test",
+    ...
+    deps = [
+        "@npm//jasmine",
+        "@npm//foo",
+        "@npm//bar",
+        ...
+    ],
+)
+
+ +

Defaults to //:node_modules_none

+ +

templated_args

+ +

(List of strings): Arguments which are passed to every execution of the program. + To pass a node startup option, prepend it with --node_options=, e.g. + --node_options=--preserve-symlinks.

+ +

Subject to ‘Make variable’ substitution. See https://docs.bazel.build/versions/master/be/make-variables.html.

+ +
    +
  1. Subject to predefined source/output path variables substitutions.
  2. +
+ +

The predefined variables execpath, execpaths, rootpath, rootpaths, location, and locations take +label parameters (e.g. $(execpath //foo:bar)) and substitute the file paths denoted by that label.

+ +

See https://docs.bazel.build/versions/master/be/make-variables.html#predefined_label_variables for more info.

+ +

NB: This $(location) substition returns the manifest file path which differs from the *_binary & *_test +args and genrule bazel substitions. This will be fixed in a future major release. +See docs string of expand_location_into_runfiles macro in internal/common/expand_into_runfiles.bzl +for more info.

+ +

The recommended approach is to now use $(rootpath) where you previously used $(location).

+ +

To get from a $(rootpath) to the absolute path that $$(rlocation $(location)) returned you can either use +$$(rlocation $(rootpath)) if you are in the templated_args of a nodejs_binary or nodejs_test:

+ +

BUILD.bazel:

+
nodejs_test(
+    name = "my_test",
+    data = [":bootstrap.js"],
+    templated_args = ["--node_options=--require=$$(rlocation $(rootpath :bootstrap.js))"],
+)
+
+ +

or if you’re in the context of a .js script you can pass the $(rootpath) as an argument to the script +and use the javascript runfiles helper to resolve to the absolute path:

+ +

BUILD.bazel:

+
nodejs_test(
+    name = "my_test",
+    data = [":some_file"],
+    entry_point = ":my_test.js",
+    templated_args = ["$(rootpath :some_file)"],
+)
+
+ +

my_test.js

+
const runfiles = require(process.env['BAZEL_NODE_RUNFILES_HELPER']);
+const args = process.argv.slice(2);
+const some_file = runfiles.resolveWorkspaceRelative(args[0]);
+
+ +

NB: Bazel will error if it sees the single dollar sign $(rlocation path) in templated_args as it will try to +expand $(rlocation) since we now expand predefined & custom “make” variables such as $(COMPILATION_MODE), +$(BINDIR) & $(TARGET_CPU) using ctx.expand_make_variables. See https://docs.bazel.build/versions/master/be/make-variables.html.

+ +

To prevent expansion of $(rlocation) write it as $$(rlocation). Bazel understands $$ to be +the string literal $ and the expansion results in $(rlocation) being passed as an arg instead +of being expanded. $(rlocation) is then evaluated by the bash node launcher script and it calls +the rlocation function in the runfiles.bash helper. For example, the templated arg +$$(rlocation $(rootpath //:some_file)) is expanded by Bazel to $(rlocation ./some_file) which +is then converted in bash to the absolute path of //:some_file in runfiles by the runfiles.bash helper +before being passed as an argument to the program.

+ +

NB: nodejs_binary and nodejs_test will preserve the legacy behavior of $(rlocation) so users don’t +need to update to $$(rlocation). This may be changed in the future.

+ +
    +
  1. Subject to predefined variables & custom variable substitutions.
  2. +
+ +

Predefined “Make” variables such as $(COMPILATION_MODE) and $(TARGET_CPU) are expanded. +See https://docs.bazel.build/versions/master/be/make-variables.html#predefined_variables.

+ +

Custom variables are also expanded including variables set through the Bazel CLI with –define=SOME_VAR=SOME_VALUE. +See https://docs.bazel.build/versions/master/be/make-variables.html#custom_variables.

+ +

Predefined genrule variables are not supported in this context.

+ +

Defaults to []

+ +

nodejs_test

+ +

USAGE

+ +
+nodejs_test(name, configuration_env_vars, data, default_env_vars, entry_point, expected_exit_code,
+            link_workspace_root, node_modules, templated_args)
+
+ +

Identical to nodejs_binary, except this can be used with bazel test as well. +When the binary returns zero exit code, the test passes; otherwise it fails.

+ +

nodejs_test is a convenient way to write a novel kind of test based on running +your own test runner. For example, the ts-api-guardian library has a way to +assert the public API of a TypeScript program, and uses nodejs_test here: +https://github.com/angular/angular/blob/master/tools/ts-api-guardian/index.bzl

+ +

If you just want to run a standard test using a test runner from npm, use the generated +*_test target created by npm_install/yarn_install, such as mocha_test. +Some test runners like Karma and Jasmine have custom rules with added features, e.g. jasmine_node_test.

+ +

Bazel always runs tests with a working directory set to your workspace root. +If your test needs to run in a different directory, you can write a process.chdir helper script +and invoke it before the test with a --require argument, like +templated_args = ["--node_options=--require=./$(rootpath chdir.js)"]. +See rules_nodejs/internal/node/test/chdir for an example.

+ +

To debug a Node.js test, we recommend saving a group of flags together in a “config”. +Put this in your tools/bazel.rc so it’s shared with your team:

+
# Enable debugging tests with --config=debug
+test:debug --test_arg=--node_options=--inspect-brk --test_output=streamed --test_strategy=exclusive --test_timeout=9999 --nocache_test_results
+
+ +

Now you can add --config=debug to any bazel test command line. +The runtime will pause before executing the program, allowing you to connect a +remote debugger.

+ +

ATTRIBUTES

+ +

name

+ +

(Name, mandatory): A unique name for this target.

+ +

configuration_env_vars

+ +

(List of strings): Pass these configuration environment variables to the resulting binary. + Chooses a subset of the configuration environment variables (taken from ctx.var), which also + includes anything specified via the –define flag. + Note, this can lead to different outputs produced by this rule.

+ +

Defaults to []

+ +

data

+ +

(List of labels): Runtime dependencies which may be loaded during execution.

+ +

Defaults to []

+ +

default_env_vars

+ +

(List of strings): Default environment variables that are added to configuration_env_vars.

+ +

This is separate from the default of configuration_env_vars so that a user can set configuration_env_vars +without losing the defaults that should be set in most cases.

+ +

The set of default environment variables is:

+ +
    +
  • VERBOSE_LOGS: use by some rules & tools to turn on debug output in their logs
  • +
  • NODE_DEBUG: used by node.js itself to print more logs
  • +
  • RUNFILES_LIB_DEBUG: print diagnostic message from Bazel runfiles.bash helper
  • +
+ +

Defaults to ["VERBOSE_LOGS", "NODE_DEBUG", "RUNFILES_LIB_DEBUG"]

+ +

entry_point

+ +

(Label, mandatory): The script which should be executed first, usually containing a main function.

+ +

If the entry JavaScript file belongs to the same package (as the BUILD file), +you can simply reference it by its relative name to the package directory:

+ +
nodejs_binary(
+    name = "my_binary",
+    ...
+    entry_point = ":file.js",
+)
+
+ +

You can specify the entry point as a typescript file so long as you also include +the ts_library target in data:

+ +
ts_library(
+    name = "main",
+    srcs = ["main.ts"],
+)
+
+nodejs_binary(
+    name = "bin",
+    data = [":main"]
+    entry_point = ":main.ts",
+)
+
+ +

The rule will use the corresponding .js output of the ts_library rule as the entry point.

+ +

If the entry point target is a rule, it should produce a single JavaScript entry file that will be passed to the nodejs_binary rule. +For example:

+ +
filegroup(
+    name = "entry_file",
+    srcs = ["main.js"],
+)
+
+nodejs_binary(
+    name = "my_binary",
+    entry_point = ":entry_file",
+)
+
+ +

The entry_point can also be a label in another workspace:

+ +
nodejs_binary(
+    name = "history-server",
+    entry_point = "@npm//:node_modules/history-server/modules/cli.js",
+    data = ["@npm//history-server"],
+)
+
+ +

expected_exit_code

+ +

(Integer): The expected exit code for the test. Defaults to 0.

+ +

Defaults to 0

+ + + +

(Boolean): Link the workspace root to the bin_dir to support absolute requires like ‘my_wksp/path/to/file’. +If source files need to be required then they can be copied to the bin_dir with copy_to_bin.

+ +

Defaults to False

+ +

node_modules

+ +

(Label): The npm packages which should be available to require() during + execution.

+ +

This attribute is DEPRECATED. As of version 0.13.0 the recommended approach +to npm dependencies is to use fine grained npm dependencies which are setup +with the yarn_install or npm_install rules. For example, in targets +that used a //:node_modules filegroup,

+ +
nodejs_binary(
+    name = "my_binary",
+    ...
+    node_modules = "//:node_modules",
+)
+
+ +

which specifies all files within the //:node_modules filegroup +to be inputs to the my_binary. Using fine grained npm dependencies, +my_binary is defined with only the npm dependencies that are +needed:

+ +
nodejs_binary(
+    name = "my_binary",
+    ...
+    data = [
+        "@npm//foo",
+        "@npm//bar",
+        ...
+    ],
+)
+
+ +

In this case, only the foo and bar npm packages and their +transitive deps are includes as inputs to the my_binary target +which reduces the time required to setup the runfiles for this +target (see https://github.com/bazelbuild/bazel/issues/5153).

+ +

The @npm external repository and the fine grained npm package +targets are setup using the yarn_install or npm_install rule +in your WORKSPACE file:

+ +

yarn_install( + name = “npm”, + package_json = “//:package.json”, + yarn_lock = “//:yarn.lock”, +)

+ +

For other rules such as jasmine_node_test, fine grained +npm dependencies are specified in the deps attribute:

+ +
jasmine_node_test(
+    name = "my_test",
+    ...
+    deps = [
+        "@npm//jasmine",
+        "@npm//foo",
+        "@npm//bar",
+        ...
+    ],
+)
+
+ +

Defaults to //:node_modules_none

+ +

templated_args

+ +

(List of strings): Arguments which are passed to every execution of the program. + To pass a node startup option, prepend it with --node_options=, e.g. + --node_options=--preserve-symlinks.

+ +

Subject to ‘Make variable’ substitution. See https://docs.bazel.build/versions/master/be/make-variables.html.

+ +
    +
  1. Subject to predefined source/output path variables substitutions.
  2. +
+ +

The predefined variables execpath, execpaths, rootpath, rootpaths, location, and locations take +label parameters (e.g. $(execpath //foo:bar)) and substitute the file paths denoted by that label.

+ +

See https://docs.bazel.build/versions/master/be/make-variables.html#predefined_label_variables for more info.

+ +

NB: This $(location) substition returns the manifest file path which differs from the *_binary & *_test +args and genrule bazel substitions. This will be fixed in a future major release. +See docs string of expand_location_into_runfiles macro in internal/common/expand_into_runfiles.bzl +for more info.

+ +

The recommended approach is to now use $(rootpath) where you previously used $(location).

+ +

To get from a $(rootpath) to the absolute path that $$(rlocation $(location)) returned you can either use +$$(rlocation $(rootpath)) if you are in the templated_args of a nodejs_binary or nodejs_test:

+ +

BUILD.bazel:

+
nodejs_test(
+    name = "my_test",
+    data = [":bootstrap.js"],
+    templated_args = ["--node_options=--require=$$(rlocation $(rootpath :bootstrap.js))"],
+)
+
+ +

or if you’re in the context of a .js script you can pass the $(rootpath) as an argument to the script +and use the javascript runfiles helper to resolve to the absolute path:

+ +

BUILD.bazel:

+
nodejs_test(
+    name = "my_test",
+    data = [":some_file"],
+    entry_point = ":my_test.js",
+    templated_args = ["$(rootpath :some_file)"],
+)
+
+ +

my_test.js

+
const runfiles = require(process.env['BAZEL_NODE_RUNFILES_HELPER']);
+const args = process.argv.slice(2);
+const some_file = runfiles.resolveWorkspaceRelative(args[0]);
+
+ +

NB: Bazel will error if it sees the single dollar sign $(rlocation path) in templated_args as it will try to +expand $(rlocation) since we now expand predefined & custom “make” variables such as $(COMPILATION_MODE), +$(BINDIR) & $(TARGET_CPU) using ctx.expand_make_variables. See https://docs.bazel.build/versions/master/be/make-variables.html.

+ +

To prevent expansion of $(rlocation) write it as $$(rlocation). Bazel understands $$ to be +the string literal $ and the expansion results in $(rlocation) being passed as an arg instead +of being expanded. $(rlocation) is then evaluated by the bash node launcher script and it calls +the rlocation function in the runfiles.bash helper. For example, the templated arg +$$(rlocation $(rootpath //:some_file)) is expanded by Bazel to $(rlocation ./some_file) which +is then converted in bash to the absolute path of //:some_file in runfiles by the runfiles.bash helper +before being passed as an argument to the program.

+ +

NB: nodejs_binary and nodejs_test will preserve the legacy behavior of $(rlocation) so users don’t +need to update to $$(rlocation). This may be changed in the future.

+ +
    +
  1. Subject to predefined variables & custom variable substitutions.
  2. +
+ +

Predefined “Make” variables such as $(COMPILATION_MODE) and $(TARGET_CPU) are expanded. +See https://docs.bazel.build/versions/master/be/make-variables.html#predefined_variables.

+ +

Custom variables are also expanded including variables set through the Bazel CLI with –define=SOME_VAR=SOME_VALUE. +See https://docs.bazel.build/versions/master/be/make-variables.html#custom_variables.

+ +

Predefined genrule variables are not supported in this context.

+ +

Defaults to []

+ +

npm_install

+ +

USAGE

+ +
+npm_install(name, args, data, environment, included_files, manual_build_file_contents, package_json,
+            package_lock_json, quiet, repo_mapping, strict_visibility, symlink_node_modules, timeout)
+
+ +

Runs npm install during workspace setup.

+ +

This rule will set the environment variable BAZEL_NPM_INSTALL to ‘1’ (unless it +set to another value in the environment attribute). Scripts may use to this to +check if yarn is being run by the npm_install repository rule.

+ +

ATTRIBUTES

+ +

name

+ +

(Name, mandatory): A unique name for this repository.

+ +

args

+ +

(List of strings): Arguments passed to npm install.

+ +

See npm CLI docs https://docs.npmjs.com/cli/install.html for complete list of supported arguments.

+ +

Defaults to []

+ +

data

+ +

(List of labels): Data files required by this rule.

+ +

If symlink_node_modules is True, this attribute is optional since the package manager +will run in your workspace folder. It is recommended, however, that all files that the +package manager depends on, such as .rc files or files used in postinstall, are added +symlink_node_modules is True so that the repository rule is rerun when any of these files +change.

+ +

If symlink_node_modules is False, the package manager is run in the bazel external +repository so all files that the package manager depends on must be listed.

+ +

Defaults to []

+ +

environment

+ +

(Dictionary: String -> String): Environment variables to set before calling the package manager.

+ +

Defaults to {}

+ +

included_files

+ +

(List of strings): List of file extensions to be included in the npm package targets.

+ +

For example, [“.js”, “.d.ts”, “.proto”, “.json”, “”].

+ +

This option is useful to limit the number of files that are inputs +to actions that depend on npm package targets. See +https://github.com/bazelbuild/bazel/issues/5153.

+ +

If set to an empty list then all files are included in the package targets. +If set to a list of extensions, only files with matching extensions are +included in the package targets. An empty string in the list is a special +string that denotes that files with no extensions such as README should +be included in the package targets.

+ +

This attribute applies to both the coarse @wksp//:node_modules target +as well as the fine grained targets such as @wksp//foo.

+ +

Defaults to []

+ +

manual_build_file_contents

+ +

(String): Experimental attribute that can be used to override the generated BUILD.bazel file and set its contents manually.

+ +

Can be used to work-around a bazel performance issue if the +default @wksp//:node_modules target has too many files in it. +See https://github.com/bazelbuild/bazel/issues/5153. If +you are running into performance issues due to a large +node_modules target it is recommended to switch to using +fine grained npm dependencies.

+ +

Defaults to ""

+ +

package_json

+ +

(Label, mandatory)

+ +

package_lock_json

+ +

(Label, mandatory)

+ +

quiet

+ +

(Boolean): If stdout and stderr should be printed to the terminal.

+ +

Defaults to True

+ +

repo_mapping

+ +

(Dictionary: String -> String, mandatory): A dictionary from local repository name to global repository name. This allows controls over workspace dependency resolution for dependencies of this repository.<p>For example, an entry "@foo": "@bar" declares that, for any time this repository depends on @foo (such as a dependency on @foo//some:target, it should actually resolve that dependency within globally-declared @bar (@bar//some:target).

+ +

strict_visibility

+ +

(Boolean): Turn on stricter visibility for generated BUILD.bazel files

+ +

When enabled, only dependencies within the given package.json file are given public visibility. +All transitive dependencies are given limited visibility, enforcing that all direct dependencies are +listed in the package.json file.

+ +

Currently the default is set False, but will likely be flipped True in rules_nodejs 3.0.0

+ +

Defaults to False

+ + + +

(Boolean): Turn symlinking of node_modules on

+ +

This requires the use of Bazel 0.26.0 and the experimental +managed_directories feature.

+ +

When true, the package manager will run in the package.json folder +and the resulting node_modules folder will be symlinked into the +external repository create by this rule.

+ +

When false, the package manager will run in the external repository +created by this rule and any files other than the package.json file and +the lock file that are required for it to run should be listed in the +data attribute.

+ +

Defaults to True

+ +

timeout

+ +

(Integer): Maximum duration of the package manager execution in seconds.

+ +

Defaults to 3600

+ +

pkg_npm

+ +

USAGE

+ +
+pkg_npm(name, deps, nested_packages, node_context_data, package_name, replace_with_version, srcs,
+        substitutions, vendor_external)
+
+ +

The pkg_npm rule creates a directory containing a publishable npm artifact.

+ +

Example:

+ +
load("@build_bazel_rules_nodejs//:index.bzl", "pkg_npm")
+
+pkg_npm(
+    name = "my_package",
+    srcs = ["package.json"],
+    deps = [":my_typescript_lib"],
+    substitutions = {"//internal/": "//"},
+)
+
+ +

You can use a pair of // BEGIN-INTERNAL ... // END-INTERNAL comments to mark regions of files that should be elided during publishing. +For example:

+ +
function doThing() {
+    // BEGIN-INTERNAL
+    // This is a secret internal-only comment
+    doInternalOnlyThing();
+    // END-INTERNAL
+}
+
+ +

With the Bazel stamping feature, pkg_npm will replace any placeholder version in your package with the actual version control tag. +See the stamping documentation

+ +

Usage:

+ +

pkg_npm yields three labels. Build the package directory using the default label:

+ +
$ bazel build :my_package
+Target //:my_package up-to-date:
+  bazel-out/fastbuild/bin/my_package
+$ ls -R bazel-out/fastbuild/bin/my_package
+
+ +

Dry-run of publishing to npm, calling npm pack (it builds the package first if needed):

+ +
$ bazel run :my_package.pack
+INFO: Running command line: bazel-out/fastbuild/bin/my_package.pack
+my-package-name-1.2.3.tgz
+$ tar -tzf my-package-name-1.2.3.tgz
+
+ +

Actually publish the package with npm publish (also builds first):

+ +
# Check login credentials
+$ bazel run @nodejs//:npm_node_repositories who
+# Publishes the package
+$ bazel run :my_package.publish
+
+ +

You can pass arguments to npm by escaping them from Bazel using a double-hyphen, for example:

+ +

bazel run my_package.publish -- --tag=next

+ +

ATTRIBUTES

+ +

name

+ +

(Name, mandatory): A unique name for this target.

+ +

deps

+ +

(List of labels): Other targets which produce files that should be included in the package, such as rollup_bundle

+ +

Defaults to []

+ +

nested_packages

+ +

(List of labels): Other pkg_npm rules whose content is copied into this package.

+ +

Defaults to []

+ +

node_context_data

+ +

(Label): Provides info about the build context, such as stamping.

+ +

By default it reads from the bazel command line, such as the --stamp argument. +Use this to override values for this target, such as enabling or disabling stamping. +You can use the node_context_data rule in @build_bazel_rules_nodejs//internal/node:context.bzl +to create a NodeContextInfo. The dependencies of this attribute must provide: NodeContextInfo

+ +

Defaults to @build_bazel_rules_nodejs//internal:node_context_data

+ +

package_name

+ +

(String): Optional package_name that this npm package may be imported as.

+ +

Defaults to ""

+ +

replace_with_version

+ +

(String): DEPRECATED: use substitutions instead.

+ +

replace_with_version = "my_version_placeholder" is just syntax sugar for +substitutions = {"my_version_placeholder": "{BUILD_SCM_VERSION}"}.

+ +

Follow this deprecation at https://github.com/bazelbuild/rules_nodejs/issues/2158

+ +

Defaults to "0.0.0-PLACEHOLDER"

+ +

srcs

+ +

(List of labels): Files inside this directory which are simply copied into the package.

+ +

Defaults to []

+ +

substitutions

+ +

(Dictionary: String -> String): Key-value pairs which are replaced in all the files while building the package.

+ +

You can use values from the workspace status command using curly braces, for example +{"0.0.0-PLACEHOLDER": "{STABLE_GIT_VERSION}"}.

+ +

See the section on stamping in the README

+ +

Defaults to {}

+ +

vendor_external

+ +

(List of strings): External workspaces whose contents should be vendored into this workspace. + Avoids external/foo path segments in the resulting package.

+ +

Defaults to []

+ +

pkg_web

+ +

USAGE

+ +
+pkg_web(name, additional_root_paths, node_context_data, srcs, substitutions)
+
+ +

Assembles a web application from source files.

+ +

ATTRIBUTES

+ +

name

+ +

(Name, mandatory): A unique name for this target.

+ +

additional_root_paths

+ +

(List of strings): Path prefixes to strip off all srcs, in addition to the current package. Longest wins.

+ +

Defaults to []

+ +

node_context_data

+ +

(Label): Provides info about the build context, such as stamping.

+ +

By default it reads from the bazel command line, such as the --stamp argument. +Use this to override values for this target, such as enabling or disabling stamping. +You can use the node_context_data rule in @build_bazel_rules_nodejs//internal/node:context.bzl +to create a NodeContextInfo. The dependencies of this attribute must provide: NodeContextInfo

+ +

Defaults to @build_bazel_rules_nodejs//internal:node_context_data

+ +

srcs

+ +

(List of labels): Files which should be copied into the package

+ +

Defaults to []

+ +

substitutions

+ +

(Dictionary: String -> String): Key-value pairs which are replaced in all the files while building the package.

+ +

You can use values from the workspace status command using curly braces, for example +{"0.0.0-PLACEHOLDER": "{STABLE_GIT_VERSION}"}. +See the section on stamping in the README.

+ +

Defaults to {}

+ +

yarn_install

+ +

USAGE

+ +
+yarn_install(name, args, data, environment, included_files, manual_build_file_contents,
+             package_json, quiet, repo_mapping, strict_visibility, symlink_node_modules, timeout,
+             use_global_yarn_cache, yarn_lock)
+
+ +

Runs yarn install during workspace setup.

+ +

This rule will set the environment variable BAZEL_YARN_INSTALL to ‘1’ (unless it +set to another value in the environment attribute). Scripts may use to this to +check if yarn is being run by the yarn_install repository rule.

+ +

ATTRIBUTES

+ +

name

+ +

(Name, mandatory): A unique name for this repository.

+ +

args

+ +

(List of strings): Arguments passed to yarn install.

+ +

See yarn CLI docs https://yarnpkg.com/en/docs/cli/install for complete list of supported arguments.

+ +

Defaults to []

+ +

data

+ +

(List of labels): Data files required by this rule.

+ +

If symlink_node_modules is True, this attribute is optional since the package manager +will run in your workspace folder. It is recommended, however, that all files that the +package manager depends on, such as .rc files or files used in postinstall, are added +symlink_node_modules is True so that the repository rule is rerun when any of these files +change.

+ +

If symlink_node_modules is False, the package manager is run in the bazel external +repository so all files that the package manager depends on must be listed.

+ +

Defaults to []

+ +

environment

+ +

(Dictionary: String -> String): Environment variables to set before calling the package manager.

+ +

Defaults to {}

+ +

included_files

+ +

(List of strings): List of file extensions to be included in the npm package targets.

+ +

For example, [“.js”, “.d.ts”, “.proto”, “.json”, “”].

+ +

This option is useful to limit the number of files that are inputs +to actions that depend on npm package targets. See +https://github.com/bazelbuild/bazel/issues/5153.

+ +

If set to an empty list then all files are included in the package targets. +If set to a list of extensions, only files with matching extensions are +included in the package targets. An empty string in the list is a special +string that denotes that files with no extensions such as README should +be included in the package targets.

+ +

This attribute applies to both the coarse @wksp//:node_modules target +as well as the fine grained targets such as @wksp//foo.

+ +

Defaults to []

+ +

manual_build_file_contents

+ +

(String): Experimental attribute that can be used to override the generated BUILD.bazel file and set its contents manually.

+ +

Can be used to work-around a bazel performance issue if the +default @wksp//:node_modules target has too many files in it. +See https://github.com/bazelbuild/bazel/issues/5153. If +you are running into performance issues due to a large +node_modules target it is recommended to switch to using +fine grained npm dependencies.

+ +

Defaults to ""

+ +

package_json

+ +

(Label, mandatory)

+ +

quiet

+ +

(Boolean): If stdout and stderr should be printed to the terminal.

+ +

Defaults to True

+ +

repo_mapping

+ +

(Dictionary: String -> String, mandatory): A dictionary from local repository name to global repository name. This allows controls over workspace dependency resolution for dependencies of this repository.<p>For example, an entry "@foo": "@bar" declares that, for any time this repository depends on @foo (such as a dependency on @foo//some:target, it should actually resolve that dependency within globally-declared @bar (@bar//some:target).

+ +

strict_visibility

+ +

(Boolean): Turn on stricter visibility for generated BUILD.bazel files

+ +

When enabled, only dependencies within the given package.json file are given public visibility. +All transitive dependencies are given limited visibility, enforcing that all direct dependencies are +listed in the package.json file.

+ +

Currently the default is set False, but will likely be flipped True in rules_nodejs 3.0.0

+ +

Defaults to False

+ + + +

(Boolean): Turn symlinking of node_modules on

+ +

This requires the use of Bazel 0.26.0 and the experimental +managed_directories feature.

+ +

When true, the package manager will run in the package.json folder +and the resulting node_modules folder will be symlinked into the +external repository create by this rule.

+ +

When false, the package manager will run in the external repository +created by this rule and any files other than the package.json file and +the lock file that are required for it to run should be listed in the +data attribute.

+ +

Defaults to True

+ +

timeout

+ +

(Integer): Maximum duration of the package manager execution in seconds.

+ +

Defaults to 3600

+ +

use_global_yarn_cache

+ +

(Boolean): Use the global yarn cache on the system.

+ +

The cache lets you avoid downloading packages multiple times. +However, it can introduce non-hermeticity, and the yarn cache can +have bugs.

+ +

Disabling this attribute causes every run of yarn to have a unique +cache_directory.

+ +

If True, this rule will pass --mutex network to yarn to ensure that +the global cache can be shared by parallelized yarn_install rules.

+ +

If False, this rule will pass --cache-folder /path/to/external/repository/__yarn_cache +to yarn so that the local cache is contained within the external repository.

+ +

Defaults to True

+ +

yarn_lock

+ +

(Label, mandatory)

+ +

check_bazel_version

+ +

USAGE

+ +
+check_bazel_version(minimum_bazel_version, message)
+
+ +
Verify the users Bazel version is at least the given one.
+
+ +

This can be used in rule implementations that depend on changes in Bazel, +to warn users about a mismatch between the rule and their installed Bazel +version.

+ +

This should not be used in users WORKSPACE files. To locally pin your +Bazel version, just create the .bazelversion file in your workspace.

+ +

PARAMETERS

+ +

minimum_bazel_version

+ +

a string indicating the minimum version

+ +

message

+ +

optional string to print to your users, could be used to help them update

+ +

Defaults to ""

+ +

copy_to_bin

+ +

USAGE

+ +
+copy_to_bin(name, srcs, kwargs)
+
+ +

Copies a source file to bazel-bin at the same workspace-relative path.

+ +

e.g. <workspace_root>/foo/bar/a.txt -> <bazel-bin>/foo/bar/a.txt

+ +

This is useful to populate the output folder with all files needed at runtime, even +those which aren’t outputs of a Bazel rule.

+ +

This way you can run a binary in the output folder (execroot or runfiles_root) +without that program needing to rely on a runfiles helper library or be aware that +files are divided between the source tree and the output tree.

+ +

PARAMETERS

+ +

name

+ +

Name of the rule.

+ +

srcs

+ +

A List of Labels. File(s) to to copy.

+ +

kwargs

+ +

further keyword arguments, e.g. visibility

+ +

generated_file_test

+ +

USAGE

+ +
+generated_file_test(name, generated, src, substring_search, src_dbg, kwargs)
+
+ +

Tests that a file generated by Bazel has identical content to a file in the workspace.

+ +

This is useful for testing, where a “snapshot” or “golden” file is checked in, +so that you can code review changes to the generated output.

+ +

PARAMETERS

+ +

name

+ +

Name of the rule.

+ +

generated

+ +

a Label of the output file generated by another rule

+ +

src

+ +

Label of the source file in the workspace

+ + + +

When true, creates a test that will fail only if the golden file is not found +anywhere within the generated file. Note that the .update rule is not generated in substring mode.

+ +

Defaults to False

+ +

src_dbg

+ +

if the build uses --compilation_mode dbg then some rules will produce different output. +In this case you can specify what the dbg version of the output should look like

+ +

Defaults to None

+ +

kwargs

+ +

extra arguments passed to the underlying nodejs_test or nodejs_binary

+ +

js_library

+ +

USAGE

+ +
+js_library(name, srcs, package_name, deps, kwargs)
+
+ +

Groups JavaScript code so that it can be depended on like an npm package.

+ +

js_library is intended to be used internally within Bazel, such as between two libraries in your monorepo. +This rule doesn’t perform any build steps (“actions”) so it is similar to a filegroup. +However it provides several Bazel “Providers” for interop with other rules.

+ +
+

Compare this to pkg_npm which just produces a directory output, and therefore can’t expose individual +files to downstream targets and causes a cascading re-build of all transitive dependencies when any file +changes. Also pkg_npm is intended to publish your code for external usage outside of Bazel, like +by publishing to npm or artifactory, while js_library is for internal dependencies within your repo.

+
+ +

js_library also copies any source files into the bazel-out folder. +This is the same behavior as the copy_to_bin rule. +By copying the complete package to the output tree, we ensure that the linker (our npm link equivalent) +will make your source files available in the node_modules tree where resolvers expect them. +It also means you can have relative imports between the files +rather than being forced to use Bazel’s “Runfiles” semantics where any program might need a helper library +to resolve files between the logical union of the source tree and the output tree.

+ +

Example

+ +

A typical example usage of js_library is to expose some sources with a package name:

+ +
ts_project(
+    name = "compile_ts",
+    srcs = glob(["*.ts"]),
+)
+
+js_library(
+    name = "my_pkg",
+    # Code that depends on this target can import from "@myco/mypkg"
+    package_name = "@myco/mypkg",
+    # Consumers might need fields like "main" or "typings"
+    srcs = ["package.json"],
+    # The .js and .d.ts outputs from above will be part of the package
+    deps = [":compile_ts"],
+)
+
+ +
+

To help work with “named AMD” modules as required by ts_devserver and other Google-style “concatjs” rules, +js_library has some undocumented advanced features you can find in the source code or in our examples. +These should not be considered a public API and aren’t subject to our usual support and semver guarantees.

+
+ +

Outputs

+ +

Like all Bazel rules it produces a default output by providing DefaultInfo. +You’ll get these outputs if you include this in the srcs of a typical rule like filegroup, +and these will be the printed result when you bazel build //some:js_library_target. +The default outputs are all of:

+
    +
  • DefaultInfo produced by targets in deps
  • +
  • A copy of all sources (InputArtifacts from your source tree) in the bazel-out directory
  • +
+ +

When there are TypeScript typings files, js_library provides DeclarationInfo +so this target can be a dependency of a TypeScript rule. This includes any .d.ts files in srcs as well +as transitive ones from deps. +It will also provide OutputGroupInfo with a “types” field, so you can select the typings outputs with +bazel build //some:js_library_target --output_groups=types or with a filegroup rule using the +output_group attribute.

+ +

In order to work with the linker (similar to npm link for first-party monorepo deps), js_library provides +LinkablePackageInfo for use with our “linker” that makes this package importable.

+ +

It also provides:

+
    +
  • NpmPackageInfo to interop with rules that expect third-party npm packages.
  • +
  • JsModuleInfo so rules like bundlers can collect the transitive set of .js files
  • +
  • JsNamedModuleInfo for rules that expect named AMD or goog.module format JS
  • +
+ +

PARAMETERS

+ +

name

+ +

a name for the target

+ +

srcs

+ +

the list of files that comprise the package

+ +

Defaults to []

+ +

package_name

+ +

the name it will be imported by. Should match the “name” field in the package.json file.

+ +

Defaults to None

+ +

deps

+ +

other targets that provide JavaScript code

+ +

Defaults to []

+ +

kwargs

+ +

used for undocumented legacy features

+ +

npm_package_bin

+ +

USAGE

+ +
+npm_package_bin(tool, package, package_bin, data, outs, args, output_dir, link_workspace_root,
+                kwargs)
+
+ +

Run an arbitrary npm package binary (e.g. a program under node_modules/.bin/*) under Bazel.

+ +

It must produce outputs. If you just want to run a program with bazel run, use the nodejs_binary rule.

+ +

This is like a genrule() except that it runs our launcher script that first +links the node_modules tree before running the program.

+ +

Bazel always runs actions with a working directory set to your workspace root. +If your tool needs to run in a different directory, you can write a process.chdir helper script +and invoke it before the action with a --require argument, like +args = ["--node_options=--require=./$(execpath chdir.js)"] +See rules_nodejs/internal/node/test/chdir for an example.

+ +

This is a great candidate to wrap with a macro, as documented: +https://docs.bazel.build/versions/master/skylark/macros.html#full-example

+ +

PARAMETERS

+ +

tool

+ +

a label for a binary to run, like @npm//terser/bin:terser. This is the longer form of package/package_bin. +Note that you can also refer to a binary in your local workspace.

+ +

Defaults to None

+ +

package

+ +

an npm package whose binary to run, like “terser”. Assumes your node_modules are installed in a workspace called “npm”

+ +

Defaults to None

+ +

package_bin

+ +

the “bin” entry from package that should be run. By default package_bin is the same string as package

+ +

Defaults to None

+ +

data

+ +

similar to genrule.srcs +may also include targets that produce or reference npm packages which are needed by the tool

+ +

Defaults to []

+ +

outs

+ +

similar to genrule.outs

+ +

Defaults to []

+ +

args

+ +

Command-line arguments to the tool.

+ +

Subject to ‘Make variable’ substitution. See https://docs.bazel.build/versions/master/be/make-variables.html.

+ +
    +
  1. Predefined source/output path substitions is applied first:
  2. +
+ +

See https://docs.bazel.build/versions/master/be/make-variables.html#predefined_label_variables.

+ +

Use $(execpath) $(execpaths) to expand labels to the execroot (where Bazel runs build actions).

+ +

Use $(rootpath) $(rootpaths) to expand labels to the runfiles path that a built binary can use +to find its dependencies.

+ +

Since npm_package_bin is used primarily for build actions, in most cases you’ll want to +use $(execpath) or $(execpaths) to expand locations.

+ +

Using $(location) and $(locations) expansions is not recommended as these are a synonyms +for either $(execpath) or $(rootpath) depending on the context.

+ +
    +
  1. “Make” variables are expanded second:
  2. +
+ +

Predefined “Make” variables such as $(COMPILATION_MODE) and $(TARGET_CPU) are expanded. +See https://docs.bazel.build/versions/master/be/make-variables.html#predefined_variables.

+ +

Like genrule, you may also use some syntax sugar for locations.

+ +
    +
  • $@: if you have only one output file, the location of the output
  • +
  • $(@D): The output directory. If output_dir=False and there is only one file name in outs, this expands to the directory + containing that file. If there are multiple files, this instead expands to the package’s root directory in the genfiles + tree, even if all generated files belong to the same subdirectory! If output_dir=True then this corresponds + to the output directory which is the $(RULEDIR)/{target_name}.
  • +
  • $(RULEDIR): the root output directory of the rule, corresponding with its package + (can be used with output_dir=True or False)
  • +
+ +

See https://docs.bazel.build/versions/master/be/make-variables.html#predefined_genrule_variables.

+ +

Custom variables are also expanded including variables set through the Bazel CLI with –define=SOME_VAR=SOME_VALUE. +See https://docs.bazel.build/versions/master/be/make-variables.html#custom_variables.

+ +

Defaults to []

+ +

output_dir

+ +

set to True if you want the output to be a directory +Exactly one of outs, output_dir may be used. +If you output a directory, there can only be one output, which will be a directory named the same as the target.

+ +

Defaults to False

+ + + +

Link the workspace root to the bin_dir to support absolute requires like ‘my_wksp/path/to/file’. +If source files need to be required then they can be copied to the bin_dir with copy_to_bin.

+ +

Defaults to False

+ +

kwargs

+ +

params_file

+ +

USAGE

+ +
+params_file(name, out, args, data, newline, kwargs)
+
+ +

Generates a UTF-8 encoded params file from a list of arguments.

+ +

Handles variable substitutions for args.

+ +

PARAMETERS

+ +

name

+ +

Name of the rule.

+ +

out

+ +

Path of the output file, relative to this package.

+ +

args

+ +

Arguments to concatenate into a params file.

+ +

Subject to ‘Make variable’ substitution. See https://docs.bazel.build/versions/master/be/make-variables.html.

+ +
    +
  1. Subject to predefined source/output path variables substitutions.
  2. +
+ +

The predefined variables execpath, execpaths, rootpath, rootpaths, location, and locations take +label parameters (e.g. $(execpath //foo:bar)) and substitute the file paths denoted by that label.

+ +

See https://docs.bazel.build/versions/master/be/make-variables.html#predefined_label_variables for more info.

+ +

NB: This $(location) substition returns the manifest file path which differs from the *_binary & *_test +args and genrule bazel substitions. This will be fixed in a future major release. +See docs string of expand_location_into_runfiles macro in internal/common/expand_into_runfiles.bzl +for more info.

+ +
    +
  1. Subject to predefined variables & custom variable substitutions.
  2. +
+ +

Predefined “Make” variables such as $(COMPILATION_MODE) and $(TARGET_CPU) are expanded. +See https://docs.bazel.build/versions/master/be/make-variables.html#predefined_variables.

+ +

Custom variables are also expanded including variables set through the Bazel CLI with –define=SOME_VAR=SOME_VALUE. +See https://docs.bazel.build/versions/master/be/make-variables.html#custom_variables.

+ +

Predefined genrule variables are not supported in this context.

+ +

Defaults to []

+ +

data

+ +

Data for $(location) expansions in args.

+ +

Defaults to []

+ +

newline

+ +

Line endings to use. One of [“auto”, “unix”, “windows”].

+ +

“auto” for platform-determined +“unix” for LF +“windows” for CRLF

+ +

Defaults to "auto"

+ +

kwargs

+ +

DeclarationInfo

+ +

USAGE

+ +
+DeclarationInfo(declarations, transitive_declarations, type_blacklisted_declarations)
+
+ +

The DeclarationInfo provider allows JS rules to communicate typing information. +TypeScript’s .d.ts files are used as the interop format for describing types. +package.json files are included as well, as TypeScript needs to read the “typings” property.

+ +

Do not create DeclarationInfo instances directly, instead use the declaration_info factory function.

+ +

Note: historically this was a subset of the string-typed “typescript” provider.

+ +

FIELDS

+ +

declarations

+ +

A depset of typings files produced by this rule

+

transitive_declarations

+ +

A depset of typings files produced by this rule and all its transitive dependencies. +This prevents needing an aspect in rules that consume the typings, which improves performance.

+

type_blacklisted_declarations

+ +

A depset of .d.ts files that we should not use to infer JSCompiler types (via tsickle)

+ +

JSEcmaScriptModuleInfo

+ +

USAGE

+ +
+JSEcmaScriptModuleInfo(direct_sources, sources)
+
+ +

JavaScript files (and sourcemaps) that are intended to be consumed by downstream tooling.

+ +

They should use modern syntax and ESModules. +These files should typically be named “foo.mjs”

+ +

Historical note: this was the typescript.es6_sources output

+ +

FIELDS

+ +

direct_sources

+ +

Depset of direct JavaScript files and sourcemaps

+

sources

+ +

Depset of direct and transitive JavaScript files and sourcemaps

+ +

JSModuleInfo

+ +

USAGE

+ +
+JSModuleInfo(direct_sources, sources)
+
+ +

JavaScript files and sourcemaps.

+ +

FIELDS

+ +

direct_sources

+ +

Depset of direct JavaScript files and sourcemaps

+

sources

+ +

Depset of direct and transitive JavaScript files and sourcemaps

+ +

JSNamedModuleInfo

+ +

USAGE

+ +
+JSNamedModuleInfo(direct_sources, sources)
+
+ +

JavaScript files whose module name is self-contained.

+ +

For example named AMD/UMD or goog.module format. +These files can be efficiently served with the concatjs bundler. +These outputs should be named “foo.umd.js” +(note that renaming it from “foo.js” doesn’t affect the module id)

+ +

Historical note: this was the typescript.es5_sources output.

+ +

FIELDS

+ +

direct_sources

+ +

Depset of direct JavaScript files and sourcemaps

+

sources

+ +

Depset of direct and transitive JavaScript files and sourcemaps

+ +

LinkablePackageInfo

+ +

USAGE

+ +
+LinkablePackageInfo(files, package_name, path, _tslibrary)
+
+ +

The LinkablePackageInfo provider provides information to the linker for linking pkg_npm built packages

+ +

FIELDS

+ +

files

+ +

Depset of files in this package (must all be contained within path)

+

package_name

+ +

The package name.

+ +

Should be the same as name field in the package’s package.json.

+ +

In the future, the linker may validate that the names match the name in a package.json file.

+

path

+ +

The path to link to.

+ +

Path must be relative to execroot/wksp. It can either an output dir path such as,

+ +

bazel-out/<platform>-<build>/bin/path/to/package or +bazel-out/<platform>-<build>/bin/external/external_wksp>/path/to/package

+ +

or a source file path such as,

+ +

path/to/package or +external/<external_wksp>/path/to/package

+

_tslibrary

+ +

For internal use only

+ +

NodeContextInfo

+ +

USAGE

+ +
+NodeContextInfo(stamp)
+
+ +

Provides data about the build context, like config_setting’s

+ +

FIELDS

+ +

stamp

+ +

If stamping is enabled

+ +

NodeRuntimeDepsInfo

+ +

USAGE

+ +
+NodeRuntimeDepsInfo(deps, pkgs)
+
+ +

Stores runtime dependencies of a nodejs_binary or nodejs_test

+ +

These are files that need to be found by the node module resolver at runtime.

+ +

Historically these files were passed using the Runfiles mechanism. +However runfiles has a big performance penalty of creating a symlink forest +with FS API calls for every file in node_modules. +It also causes there to be separate node_modules trees under each binary. This +prevents user-contributed modules passed as deps[] to a particular action from +being found by node module resolver, which expects everything in one tree.

+ +

In node, this resolution is done dynamically by assuming a node_modules +tree will exist on disk, so we assume node actions/binary/test executions will +do the same.

+ +

FIELDS

+ +

deps

+ +

depset of runtime dependency labels

+

pkgs

+ +

list of labels of packages that provide NpmPackageInfo

+ +

NpmPackageInfo

+ +

USAGE

+ +
+NpmPackageInfo(direct_sources, sources, workspace)
+
+ +

Provides information about npm dependencies

+ +

FIELDS

+ +

direct_sources

+ +

Depset of direct source files in this npm package

+

sources

+ +

Depset of direct & transitive source files in this npm package and in its dependencies

+

workspace

+ +

The workspace name that this npm package is provided from

+ +

declaration_info

+ +

USAGE

+ +
+declaration_info(declarations, deps)
+
+ +

Constructs a DeclarationInfo including all transitive files needed to type-check from DeclarationInfo providers in a list of deps.

+ +

PARAMETERS

+ +

declarations

+ +

list of typings files

+ +

deps

+ +

list of labels of dependencies where we should collect their DeclarationInfo to pass transitively

+ +

Defaults to []

+ +

js_ecma_script_module_info

+ +

USAGE

+ +
+js_ecma_script_module_info(sources, deps)
+
+ +

Constructs a JSEcmaScriptModuleInfo including all transitive sources from JSEcmaScriptModuleInfo providers in a list of deps.

+ +

Returns a single JSEcmaScriptModuleInfo.

+ +

PARAMETERS

+ +

sources

+ +

deps

+ +

Defaults to []

+ +

js_module_info

+ +

USAGE

+ +
+js_module_info(sources, deps)
+
+ +

Constructs a JSModuleInfo including all transitive sources from JSModuleInfo providers in a list of deps.

+ +

Returns a single JSModuleInfo.

+ +

PARAMETERS

+ +

sources

+ +

deps

+ +

Defaults to []

+ +

js_named_module_info

+ +

USAGE

+ +
+js_named_module_info(sources, deps)
+
+ +

Constructs a JSNamedModuleInfo including all transitive sources from JSNamedModuleInfo providers in a list of deps.

+ +

Returns a single JSNamedModuleInfo.

+ +

PARAMETERS

+ +

sources

+ +

deps

+ +

Defaults to []

+ +

run_node

+ +

USAGE

+ +
+run_node(ctx, inputs, arguments, executable, kwargs)
+
+ +

Helper to replace ctx.actions.run

+ +

This calls node programs with a node_modules directory in place

+ +

PARAMETERS

+ +

ctx

+ +

rule context from the calling rule implementation function

+ +

inputs

+ +

list or depset of inputs to the action

+ +

arguments

+ +

list or ctx.actions.Args object containing arguments to pass to the executable

+ +

executable

+ +

stringy representation of the executable this action will run, eg eg. “my_executable” rather than ctx.executable.my_executable

+ +

kwargs

+ +

node_modules_aspect

+ +

USAGE

+ +
+node_modules_aspect(name)
+
+ +

ASPECT ATTRIBUTES

+ +

deps

+ +

ATTRIBUTES

+ +

name

+ +

(Name, {util.mandatoryString(name: “name” +doc_string: “A unique name for this target.” +type: NAME +mandatory: true +)}) + A unique name for this target.

+ + +
+
+ + +
+
+ +
+
+
+
+

© 2020 The rules_nodejs authors

+
+
+
+ +
+ + + + + + + + + + + + + + + diff --git a/docs/Built-ins.md b/docs/Built-ins.md index 2195ed6a56..fda3dd7cf8 100755 --- a/docs/Built-ins.md +++ b/docs/Built-ins.md @@ -1,10 +1,11 @@ --- title: Built-ins layout: default -stylesheet: docs +toc: true +nav: rule --- + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+ + +
+
+ +

Cypress rules for Bazel

+ +

The Cypress rules run tests under the Cypress e2e testing framework with Bazel.

+ +

Installation

+ +

Add @bazel/cypress and cypress npm packages to your devDependencies in package.json.

+ +
npm install --save-dev @bazel/cypress cypress
+
+

or using yarn

+
yarn add -D @bazel/cypress cypress
+
+ +

Then, load and invoke cypress_repository within your WORKSPACE file.

+ +
# Assuming your external repository for node_modules is named @npm
+
+load("@npm//@bazel/cypress:index.bzl", "cypress_repository")
+
+# The name you pass here names the external repository you can load cypress_web_test from
+cypress_repository(name = "cypress")
+
+ +

macOS install requirements

+

On macOS, cypress_repository generates an external repository containing files whose names contain spaces. In order to make these files compatible with bazel you will need to add the following flag to your .bazelrc file:

+
# Required for cypress_repository on macOS
+build --experimental_inprocess_symlink_creation
+
+ +

windows install requirements

+

At this point in time, cypress_repository is incompatible with bazel sandboxing on Windows. This may change in the future, but for now using cypress on windows requires windows sandboxing be disabled (it is disabled by default)

+ +

Example use of cypress_web_test

+

This example assumes you’ve named your external repository for node_modules as npm and for cypress as cypress

+
load("@cypress//:index.bzl", "cypress_web_test")
+load("@npm//@bazel/typescript:index.bzl", "ts_library")
+
+# You must create a cypress plugin in order to boot a server to serve your application. It can be written as a javascript file or in typescript using ts_library or ts_project.
+ts_library(
+    name = "plugins_file",
+    testonly = True,
+    srcs = ["plugin.ts"],
+    tsconfig = ":tsconfig.json",
+    deps = [
+        "@npm//@types/node",
+        "@npm//express",
+    ],
+)
+
+# You can write your cypress tests a javascript files or in typescript using ts_library or ts_project.
+ts_library(
+    name = "hello_spec",
+    testonly = True,
+    srcs = ["hello.spec.ts"],
+    tsconfig = ":tsconfig.json",
+    deps = [
+        "@npm//cypress",
+    ],
+)
+
+cypress_web_test(
+    # The name of your test target
+    name = "test",
+    srcs = [
+        # Load javascript test files directly as sources
+        "world.spec.js",
+        # Load ts_library tests as a target to srcs
+        ":hello_spec",
+    ],
+    # A cypress config file is required
+    config_file = "cypress.json",
+    # Any runtime dependencies you need to boot your server or run your tests
+    data = [],
+    # Your cypress plugin used to configure cypress and boot your server
+    plugins_file = ":plugins_file",
+)
+
+ +

cypress_repository

+ +

USAGE

+ +
+cypress_repository(name, cypress_bin, fail_on_error, quiet, repo_mapping)
+
+ +

ATTRIBUTES

+ +

name

+ +

(Name, mandatory): A unique name for this repository.

+ +

cypress_bin

+ +

(Label): bazel target of the cypress binary

+ +

Defaults to @npm//:node_modules/cypress/bin/cypress

+ +

fail_on_error

+ +

(Boolean): If the repository rule should allow errors

+ +

Defaults to True

+ +

quiet

+ +

(Boolean): If stdout and stderr should be printed to the terminal

+ +

Defaults to True

+ +

repo_mapping

+ +

(Dictionary: String -> String, mandatory): A dictionary from local repository name to global repository name. This allows controls over workspace dependency resolution for dependencies of this repository.<p>For example, an entry "@foo": "@bar" declares that, for any time this repository depends on @foo (such as a dependency on @foo//some:target, it should actually resolve that dependency within globally-declared @bar (@bar//some:target).

+ + +
+
+ + +
+
+ +
+
+
+
+

© 2020 The rules_nodejs authors

+
+
+
+ +
+ + + + + + + + + + + + + + + diff --git a/docs/Cypress.md b/docs/Cypress.md index 18d143db7c..6b2114ec53 100755 --- a/docs/Cypress.md +++ b/docs/Cypress.md @@ -1,10 +1,11 @@ --- title: Cypress layout: default -stylesheet: docs +toc: true +nav: rule --- + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+ + +
+
+ +

Jasmine rules for Bazel

+ +

The Jasmine rules run tests under the Jasmine framework with Bazel.

+ +

Installation

+ +

Add the @bazel/jasmine npm package to your devDependencies in package.json.

+ +

jasmine_node_test

+ +

USAGE

+ +
+jasmine_node_test(name, srcs, data, deps, expected_exit_code, tags, config_file, jasmine,
+                  jasmine_entry_point, kwargs)
+
+ +

Runs tests in NodeJS using the Jasmine test runner.

+ +

Detailed XML test results are found in the standard bazel-testlogs +directory. This may be symlinked in your workspace. +See https://docs.bazel.build/versions/master/output_directories.html

+ +

To debug the test, see debugging notes in nodejs_test.

+ +

PARAMETERS

+ +

name

+ +

Name of the resulting label

+ +

srcs

+ +

JavaScript source files containing Jasmine specs

+ +

Defaults to []

+ +

data

+ +

Runtime dependencies which will be loaded while the test executes

+ +

Defaults to []

+ +

deps

+ +

Other targets which produce JavaScript, such as ts_library

+ +

Defaults to []

+ +

expected_exit_code

+ +

The expected exit code for the test.

+ +

Defaults to 0

+ +

tags

+ +

Bazel tags applied to test

+ +

Defaults to []

+ +

config_file

+ +

(experimental) label of a file containing Jasmine JSON config.

+ +

Note that not all configuration options are honored, and +we expect some strange feature interations. +For example, the filter for which files are instrumented for +code coverage doesn’t understand the spec_files setting in the config.

+ +

See https://jasmine.github.io/setup/nodejs.html#configuration

+ +

Defaults to None

+ +

jasmine

+ +

A label providing the @bazel/jasmine npm dependency.

+ +

Defaults to "@npm//@bazel/jasmine"

+ +

jasmine_entry_point

+ +

A label providing the @bazel/jasmine entry point.

+ +

Defaults to "@npm//@bazel/jasmine:jasmine_runner.js"

+ +

kwargs

+ +

Remaining arguments are passed to the test rule

+ + +
+
+ + +
+
+ +
+
+
+
+

© 2020 The rules_nodejs authors

+
+
+
+ +
+ + + + + + + + + + + + + + + diff --git a/docs/Jasmine.md b/docs/Jasmine.md index 3ce8b69ce0..c413aad463 100755 --- a/docs/Jasmine.md +++ b/docs/Jasmine.md @@ -1,10 +1,11 @@ --- title: Jasmine layout: default -stylesheet: docs +toc: true +nav: rule --- + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+ + +
+
+ +

Karma rules for Bazel

+ +

The Karma rules run karma tests with Bazel.

+ +

Installation

+ +

Add the @bazel/karma npm package to your devDependencies in package.json.

+ +

Now add this to your WORKSPACE to install the Karma dependencies:

+ +
# Fetch transitive Bazel dependencies of @bazel/karma
+load("@npm//@bazel/karma:package.bzl", "npm_bazel_karma_dependencies")
+npm_bazel_karma_dependencies()
+
+ +

This installs the io_bazel_rules_webtesting repository, if you haven’t installed it earlier.

+ +

Finally, configure the rules_webtesting:

+ +
# Set up web testing, choose browsers we can test on
+load("@io_bazel_rules_webtesting//web:repositories.bzl", "web_test_repositories")
+
+web_test_repositories()
+
+load("@io_bazel_rules_webtesting//web/versioned:browsers-0.3.2.bzl", "browser_repositories")
+
+browser_repositories(
+    chromium = True,
+    firefox = True,
+)
+
+ +

Installing with self-managed dependencies

+ +

If you didn’t use the yarn_install or npm_install rule to create an npm workspace, you’ll have to declare a rule in your root BUILD.bazel file to execute karma:

+ +
# Create a karma rule to use in ts_web_test_suite karma
+# attribute when using self-managed dependencies
+nodejs_binary(
+    name = "karma/karma",
+    entry_point = "//:node_modules/karma/bin/karma",
+    # Point bazel to your node_modules to find the entry point
+    node_modules = ["//:node_modules"],
+)
+
+ +

karma_web_test

+ +

USAGE

+ +
+karma_web_test(srcs, deps, data, configuration_env_vars, bootstrap, runtime_deps, static_files,
+               config_file, tags, peer_deps, kwargs)
+
+ +

Runs unit tests in a browser with Karma.

+ +

When executed under bazel test, this uses a headless browser for speed. +This is also because bazel test allows multiple targets to be tested together, +and we don’t want to open a Chrome window on your machine for each one. Also, +under bazel test the test will execute and immediately terminate.

+ +

Running under ibazel test gives you a “watch mode” for your tests. The rule is +optimized for this case - the test runner server will stay running and just +re-serve the up-to-date JavaScript source bundle.

+ +

To debug a single test target, run it with bazel run instead. This will open a +browser window on your computer. Also you can use any other browser by opening +the URL printed when the test starts up. The test will remain running until you +cancel the bazel run command.

+ +

This rule will use your system Chrome by default. In the default case, your +environment must specify CHROME_BIN so that the rule will know which Chrome binary to run. +Other browsers and customLaunchers may be set using the a base Karma configuration +specified in the config_file attribute.

+ +

By default we open a headless Chrome. To use a real Chrome browser window, you can pass +--define DISPLAY=true to Bazel, along with configuration_env_vars = ["DISPLAY"] on +karma_web_test.

+ +

PARAMETERS

+ +

srcs

+ +

A list of JavaScript test files

+ +

Defaults to []

+ +

deps

+ +

Other targets which produce JavaScript such as ts_library

+ +

Defaults to []

+ +

data

+ +

Runtime dependencies

+ +

Defaults to []

+ +

configuration_env_vars

+ +

Pass these configuration environment variables to the resulting binary. +Chooses a subset of the configuration environment variables (taken from ctx.var), which also +includes anything specified via the –define flag. +Note, this can lead to different outputs produced by this rule.

+ +

Defaults to []

+ +

bootstrap

+ +

JavaScript files to include before the module loader (require.js). +For example, you can include Reflect,js for TypeScript decorator metadata reflection, +or UMD bundles for third-party libraries.

+ +

Defaults to []

+ +

runtime_deps

+ +

Dependencies which should be loaded after the module loader but before the srcs and deps. +These should be a list of targets which produce JavaScript such as ts_library. +The files will be loaded in the same order they are declared by that rule.

+ +

Defaults to []

+ +

static_files

+ +

Arbitrary files which are available to be served on request. +Files are served at: +/base/&lt;WORKSPACE_NAME&gt;/&lt;path-to-file&gt;, e.g. +/base/npm_bazel_typescript/examples/testing/static_script.js

+ +

Defaults to []

+ +

config_file

+ +

User supplied Karma configuration file. Bazel will override +certain attributes of this configuration file. Attributes that are +overridden will be outputted to the test log.

+ +

Defaults to None

+ +

tags

+ +

Standard Bazel tags, this macro adds tags for ibazel support

+ +

Defaults to []

+ +

peer_deps

+ +

list of peer npm deps required by karma_web_test

+ +

Defaults to ["@npm//jasmine-core", "@npm//karma", "@npm//karma-chrome-launcher", "@npm//karma-firefox-launcher", "@npm//karma-jasmine", "@npm//karma-requirejs", "@npm//karma-sourcemap-loader", "@npm//requirejs"]

+ +

kwargs

+ +

Passed through to karma_web_test

+ +

karma_web_test_suite

+ +

USAGE

+ +
+karma_web_test_suite(name, browsers, web_test_data, wrapped_test_tags, kwargs)
+
+ +

Defines a test_suite of web_test targets that wrap a karma_web_test target.

+ +

This macro accepts all parameters in karma_web_test and adds additional parameters +for the suite. See karma_web_test docs for all karma_web_test.

+ +

The wrapping macro is web_test_suite which comes from rules_websting: +https://github.com/bazelbuild/rules_webtesting/blob/master/web/web.bzl.

+ +

PARAMETERS

+ +

name

+ +

The base name of the test

+ +

browsers

+ +

A sequence of labels specifying the browsers to use.

+ +

Defaults to None

+ +

web_test_data

+ +

Data dependencies for the wrapper web_test targets.

+ +

Defaults to []

+ +

wrapped_test_tags

+ +

A list of test tag strings to use for the wrapped +karma_web_test target.

+ +

Defaults to ["manual", "noci"]

+ +

kwargs

+ +

Arguments for the wrapped karma_web_test target.

+ + +
+
+ + +
+
+ +
+
+
+
+

© 2020 The rules_nodejs authors

+
+
+
+ +
+ + + + + + + + + + + + + + + diff --git a/docs/Karma.md b/docs/Karma.md index bda55c66d8..b389b8f411 100755 --- a/docs/Karma.md +++ b/docs/Karma.md @@ -1,10 +1,11 @@ --- title: Karma layout: default -stylesheet: docs +toc: true +nav: rule --- + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+ + +
+
+ +

Bazel nodejs Labs

+ +

This package contains experimental code which isn’t at the same quality or stability standard as our main packages.

+ +

By using code in Labs, we trust that you understand:

+ +
    +
  • It might be deleted at any time
  • +
  • We offer no support guarantees for using it
  • +
  • Breaking changes can happen in any release
  • +
  • We could release with bugs or other brokenness
  • +
  • Documentation is sparse
  • +
+ +

protobufjs_ts_library

+ +

USAGE

+ +
+protobufjs_ts_library(name, deps, output_name)
+
+ +

Wraps https://github.com/dcodeIO/protobuf.js for use in Bazel.

+ +

ts_proto_library has identical outputs to ts_library, so it can be used anywhere +a ts_library can appear, such as in the deps[] of another ts_library.

+ +

Example:

+ +
load("@npm//@bazel/typescript:index.bzl", "ts_library", "ts_proto_library")
+
+proto_library(
+    name = "car_proto",
+    srcs = ["car.proto"],
+)
+
+ts_proto_library(
+    name = "car",
+    deps = [":car_proto"],
+)
+
+ts_library(
+    name = "test_lib",
+    testonly = True,
+    srcs = ["car.spec.ts"],
+    deps = [":car"],
+)
+
+ +

Note in this example we named the ts_proto_library rule car so that the +result will be car.d.ts. This means our TypeScript code can just +import {symbols} from './car'. Use the output_name attribute if you want to +name the rule differently from the output file.

+ +

The JavaScript produced by protobuf.js has a runtime dependency on a support library. +Under devmode (e.g. ts_devserver, karma_web_test_suite) you’ll need to include these scripts +in the bootstrap phase (before Require.js loads). You can use the label +@npm//@bazel/labs/protobufjs:bootstrap_scripts to reference these scripts +in the bootstrap attribute of karma_web_test_suite or ts_devserver.

+ +

To complete the example above, you could write a karma_web_test_suite:

+ +
load("@npm//@bazel/karma:index.bzl", "karma_web_test_suite")
+
+karma_web_test_suite(
+    name = "test",
+    deps = ["test_lib"],
+    bootstrap = ["@npm//@bazel/labs/protobufjs:bootstrap_scripts"],
+    browsers = [
+        "@io_bazel_rules_webtesting//browsers:chromium-local",
+        "@io_bazel_rules_webtesting//browsers:firefox-local",
+    ],
+)
+
+ +

ATTRIBUTES

+ +

name

+ +

(Name, mandatory): A unique name for this target.

+ +

deps

+ +

(List of labels): proto_library targets

+ +

Defaults to []

+ +

output_name

+ +

(String): Name of the resulting module, which you will import from. + If not specified, the name will match the target’s name.

+ +

Defaults to ""

+ +

ts_proto_library

+ +

USAGE

+ +
+ts_proto_library(name, proto)
+
+ +

ATTRIBUTES

+ +

name

+ +

(Name, mandatory): A unique name for this target.

+ +

proto

+ +

(Label, mandatory) The dependencies of this attribute must provide: ProtoInfo

+ + +
+
+ + +
+
+ +
+
+
+
+

© 2020 The rules_nodejs authors

+
+
+
+ +
+ + + + + + + + + + + + + + + diff --git a/docs/Labs.md b/docs/Labs.md new file mode 100755 index 0000000000..8eaca3c2bd --- /dev/null +++ b/docs/Labs.md @@ -0,0 +1,137 @@ +--- +title: Labs +layout: default +toc: true +nav: rule +--- + +# Bazel nodejs Labs + +This package contains experimental code which isn't at the same quality or stability standard as our main packages. + +By using code in Labs, we trust that you understand: + +- It might be deleted at any time +- We offer no support guarantees for using it +- Breaking changes can happen in any release +- We could release with bugs or other brokenness +- Documentation is sparse + + +## protobufjs_ts_library + +**USAGE** + +
+protobufjs_ts_library(name, deps, output_name)
+
+ +Wraps https://github.com/dcodeIO/protobuf.js for use in Bazel. + +`ts_proto_library` has identical outputs to `ts_library`, so it can be used anywhere +a `ts_library` can appear, such as in the `deps[]` of another `ts_library`. + +Example: + +```python +load("@npm//@bazel/typescript:index.bzl", "ts_library", "ts_proto_library") + +proto_library( + name = "car_proto", + srcs = ["car.proto"], +) + +ts_proto_library( + name = "car", + deps = [":car_proto"], +) + +ts_library( + name = "test_lib", + testonly = True, + srcs = ["car.spec.ts"], + deps = [":car"], +) +``` + +Note in this example we named the `ts_proto_library` rule `car` so that the +result will be `car.d.ts`. This means our TypeScript code can just +`import {symbols} from './car'`. Use the `output_name` attribute if you want to +name the rule differently from the output file. + +The JavaScript produced by protobuf.js has a runtime dependency on a support library. +Under devmode (e.g. `ts_devserver`, `karma_web_test_suite`) you'll need to include these scripts +in the `bootstrap` phase (before Require.js loads). You can use the label +`@npm//@bazel/labs/protobufjs:bootstrap_scripts` to reference these scripts +in the `bootstrap` attribute of `karma_web_test_suite` or `ts_devserver`. + +To complete the example above, you could write a `karma_web_test_suite`: + +```python +load("@npm//@bazel/karma:index.bzl", "karma_web_test_suite") + +karma_web_test_suite( + name = "test", + deps = ["test_lib"], + bootstrap = ["@npm//@bazel/labs/protobufjs:bootstrap_scripts"], + browsers = [ + "@io_bazel_rules_webtesting//browsers:chromium-local", + "@io_bazel_rules_webtesting//browsers:firefox-local", + ], +) +``` + + +**ATTRIBUTES** + + +

name

+ +(*Name, mandatory*): A unique name for this target. + + +

deps

+ +(*List of labels*): proto_library targets + +Defaults to `[]` + +

output_name

+ +(*String*): Name of the resulting module, which you will import from. + If not specified, the name will match the target's name. + +Defaults to `""` + + + +## ts_proto_library + +**USAGE** + +
+ts_proto_library(name, proto)
+
+ + + +**ATTRIBUTES** + + +

name

+ +(*Name, mandatory*): A unique name for this target. + + +

proto

+ +(*Label, mandatory*) The dependencies of this attribute must provide: ProtoInfo + + + + diff --git a/docs/Protractor.html b/docs/Protractor.html new file mode 100755 index 0000000000..774171e828 --- /dev/null +++ b/docs/Protractor.html @@ -0,0 +1,400 @@ + + + + + + + + + + rules_nodejs - Protractor + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+ + +
+
+ +

Protractor rules for Bazel

+ +

The Protractor rules run tests under the Protractor framework with Bazel.

+ +

Installation

+ +

Add the @bazel/protractor npm package to your devDependencies in package.json.

+ +

protractor_web_test

+ +

USAGE

+ +
+protractor_web_test(name, configuration, on_prepare, srcs, deps, data, server, tags, peer_deps,
+                    protractor_entry_point, kwargs)
+
+ +

Runs a protractor test in a browser.

+ +

PARAMETERS

+ +

name

+ +

The name of the test

+ +

configuration

+ +

Protractor configuration file.

+ +

Defaults to None

+ +

on_prepare

+ +

A file with a node.js script to run once before all tests run. +If the script exports a function which returns a promise, protractor +will wait for the promise to resolve before beginning tests.

+ +

Defaults to None

+ +

srcs

+ +

JavaScript source files

+ +

Defaults to []

+ +

deps

+ +

Other targets which produce JavaScript such as ts_library

+ +

Defaults to []

+ +

data

+ +

Runtime dependencies

+ +

Defaults to []

+ +

server

+ +

Optional server executable target

+ +

Defaults to None

+ +

tags

+ +

Standard Bazel tags, this macro adds one for ibazel

+ +

Defaults to []

+ +

peer_deps

+ +

List of peer npm deps required by protractor_web_test

+ +

Defaults to ["@npm//@bazel/protractor", "@npm//protractor"]

+ +

protractor_entry_point

+ +

A label providing the protractor entry point +Default to :node_modules/protractor/bin/protractor.

+ +

Defaults to "@npm//:node_modules/protractor/bin/protractor"

+ +

kwargs

+ +

passed through to protractor_web_test

+ +

protractor_web_test_suite

+ +

USAGE

+ +
+protractor_web_test_suite(name, browsers, web_test_data, wrapped_test_tags, kwargs)
+
+ +

Defines a test_suite of web_test targets that wrap a protractor_web_test target.

+ +

PARAMETERS

+ +

name

+ +

The base name of the test

+ +

browsers

+ +

A sequence of labels specifying the browsers to use.

+ +

Defaults to None

+ +

web_test_data

+ +

Data dependencies for the wrapper web_test targets.

+ +

Defaults to []

+ +

wrapped_test_tags

+ +

A list of test tag strings to use for the wrapped +karma_web_test target.

+ +

Defaults to ["manual", "noci"]

+ +

kwargs

+ +

Arguments for the wrapped karma_web_test target.

+ + +
+
+ + +
+
+ +
+
+
+
+

© 2020 The rules_nodejs authors

+
+
+
+ +
+ + + + + + + + + + + + + + + diff --git a/docs/Protractor.md b/docs/Protractor.md index b7badf81b2..c4a72ff353 100755 --- a/docs/Protractor.md +++ b/docs/Protractor.md @@ -1,10 +1,11 @@ --- title: Protractor layout: default -stylesheet: docs +toc: true +nav: rule --- ``` - Should be edited by modifying the docs in the source `.bzl` files, other files can be freely edited. + +Should be edited by modifying the docs in the source `.bzl` files. +If updating css, then the `scss` in `/docs/css` should be edited. +The HTML files in `/docs` are also generated and should not be edited directly, other files can be freely edited. diff --git a/docs/Rollup.html b/docs/Rollup.html new file mode 100755 index 0000000000..f458dfba61 --- /dev/null +++ b/docs/Rollup.html @@ -0,0 +1,637 @@ + + + + + + + + + + rules_nodejs - Rollup + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+ + +
+
+ +

Rollup rules for Bazel

+ +

The Rollup rules run the rollup.js bundler with Bazel.

+ +

Installation

+ +

Add the @bazel/rollup npm package to your devDependencies in package.json.

+ +

Installing with self-managed dependencies

+ +

If you didn’t use the yarn_install or npm_install rule, you’ll have to declare a rule in your root BUILD.bazel file to execute rollup:

+ +
# Create a rollup rule to use in rollup_bundle#rollup_bin
+# attribute when using self-managed dependencies
+nodejs_binary(
+    name = "rollup_bin",
+    entry_point = "//:node_modules/rollup/bin/rollup",
+    # Point bazel to your node_modules to find the entry point
+    node_modules = ["//:node_modules"],
+)
+
+ +

Usage

+ +

The rollup_bundle rule is used to invoke Rollup on some JavaScript inputs. +The API docs appear below.

+ +

Typical example:

+
load("@npm//@bazel/rollup:index.bzl", "rollup_bundle")
+
+rollup_bundle(
+    name = "bundle",
+    srcs = ["dependency.js"],
+    entry_point = "input.js",
+    config_file = "rollup.config.js",
+)
+
+ +

Note that the command-line options set by Bazel override what appears in the rollup config file. +This means that typically a single rollup.config.js can contain settings for your whole repo, +and multiple rollup_bundle rules can share the configuration.

+ +

Thus, setting options that Bazel controls will have no effect, e.g.

+ +
module.exports = {
+    output: { file: 'this_is_ignored.js' },
+}
+
+ +

Output types

+ +

You must determine ahead of time whether Rollup will write a single file or a directory. +Rollup’s CLI has the same behavior, forcing you to pick --output.file or --output.dir.

+ +

Writing a directory is used when you have dynamic imports which cause code-splitting, or if you +provide multiple entry points. Use the output_dir attribute to specify that you want a +directory output.

+ +

Each rollup_bundle rule produces only one output by running the rollup CLI a single time. +To get multiple output formats, you can wrap the rule with a macro or list comprehension, e.g.

+ +
[
+    rollup_bundle(
+        name = "bundle.%s" % format,
+        entry_point = "foo.js",
+        format = format,
+    )
+    for format in [
+        "cjs",
+        "umd",
+    ]
+]
+
+ +

This will produce one output per requested format.

+ +

Stamping

+ +

You can stamp the current version control info into the output by writing some code in your rollup config. +See the stamping documentation.

+ +

By passing the --stamp option to Bazel, two additional input files will be readable by Rollup.

+ +
    +
  1. The variable bazel_version_file will point to bazel-out/volatile-status.txt which contains +statuses that change frequently; such changes do not cause a re-build of the rollup_bundle.
  2. +
  3. The variable bazel_info_file will point to bazel-out/stable-status.txt file which contains +statuses that stay the same; any changed values will cause rollup_bundle to rebuild.
  4. +
+ +

Both bazel_version_file and bazel_info_file will be undefined if the build is run without --stamp.

+ +
+

Note that under --stamp, only the bundle is re-built, but not the compilation steps that produced the inputs. +This avoids a slow cascading re-build of a whole tree of actions.

+
+ +

To use these files, you write JS code in your rollup.config.js to read from the status files and parse the lines. +Each line is a space-separated key/value pair.

+ +
// Parse the stamp file produced by Bazel from the version control system
+let version = '<unknown>';
+if (bazel_info_file) {
+  const versionTag = require('fs')
+                         .readFileSync(bazel_info_file, {encoding: 'utf-8'})
+                         .split('\n')
+                         .find(s => s.startsWith('STABLE_GIT_COMMIT'));
+  if (versionTag) {
+    version = 'v' + versionTag.split(' ')[1].trim();
+  }
+}
+
+ +

Debug and Opt builds

+ +

When you use --compilation_mode=dbg, Bazel produces a distinct output-tree in bazel-out/[arch]-dbg/bin. +Code in your rollup.config.js can look in the environment to detect if a debug build is being performed, +and include extra developer information in the bundle that you wouldn’t normally ship to production.

+ +

Similarly, --compilation_mode=opt is Bazel’s signal to perform extra optimizations. +You could use this value to perform extra production-only optimizations.

+ +

For example you could define a constant for enabling Debug:

+ +
const DEBUG = process.env['COMPILATION_MODE'] === 'dbg';
+
+ +

and configure Rollup differently when DEBUG is true or false.

+ +

Increasing Heap memory for rollup

+ +

The rollup_bin attribute allows you to customize the rollup.js program we execute, +so you can use nodejs_binary to construct your own.

+ +
+

You can always call bazel query --output=build [default rollup_bin] to see what +the default definition looks like, then copy-paste from there to be sure yours +matches.

+
+ +
nodejs_binary(
+    name = "rollup_more_mem",
+    data = ["@npm//rollup:rollup"],
+    entry_point = "@npm//:node_modules/rollup/dist/bin/rollup",
+    templated_args = [
+        "--nobazel_patch_module_resolver",
+        "--node_options=--max-old-space-size=<SOME_SIZE>",
+    ],
+)
+
+rollup_bundle(
+    ...
+    rollup_bin = ":rollup_more_mem",
+)
+
+ +

rollup_bundle

+ +

USAGE

+ +
+rollup_bundle(name, args, config_file, deps, entry_point, entry_points, format, link_workspace_root,
+              node_context_data, output_dir, rollup_bin, rollup_worker_bin, silent, sourcemap, srcs,
+              supports_workers)
+
+ +

Runs the rollup.js CLI under Bazel.

+ +

ATTRIBUTES

+ +

name

+ +

(Name, mandatory): A unique name for this target.

+ +

args

+ +

(List of strings): Command line arguments to pass to Rollup. Can be used to override config file settings.

+ +

These argument passed on the command line before arguments that are added by the rule. +Run bazel with --subcommands to see what Rollup CLI command line was invoked.

+ +

See the Rollup CLI docs for a complete list of supported arguments.

+ +

Defaults to []

+ +

config_file

+ +

(Label): A rollup.config.js file

+ +

Passed to the --config option, see the config doc

+ +

If not set, a default basic Rollup config is used.

+ +

Defaults to @npm//@bazel/rollup:rollup.config.js

+ +

deps

+ +

(List of labels): Other libraries that are required by the code, or by the rollup.config.js

+ +

Defaults to []

+ +

entry_point

+ +

(Label): The bundle’s entry point (e.g. your main.js or app.js or index.js).

+ +

This is just a shortcut for the entry_points attribute with a single output chunk named the same as the rule.

+ +

For example, these are equivalent:

+ +
rollup_bundle(
+    name = "bundle",
+    entry_point = "index.js",
+)
+
+ +
rollup_bundle(
+    name = "bundle",
+    entry_points = {
+        "index.js": "bundle"
+    }
+)
+
+ +

If rollup_bundle is used on a ts_library, the rollup_bundle rule handles selecting the correct outputs from ts_library. +In this case, entry_point can be specified as the .ts file and rollup_bundle will handle the mapping to the .mjs output file.

+ +

For example:

+ +
ts_library(
+    name = "foo",
+    srcs = [
+        "foo.ts",
+        "index.ts",
+    ],
+)
+
+rollup_bundle(
+    name = "bundle",
+    deps = [ "foo" ],
+    entry_point = "index.ts",
+)
+
+ +

Defaults to None

+ +

entry_points

+ +

(Dictionary: Label -> String): The bundle’s entry points (e.g. your main.js or app.js or index.js).

+ +

Passed to the --input option in Rollup.

+ +

Keys in this dictionary are labels pointing to .js entry point files. +Values are the name to be given to the corresponding output chunk.

+ +

Either this attribute or entry_point must be specified, but not both.

+ +

Defaults to {}

+ +

format

+ +

(String): Specifies the format of the generated bundle. One of the following:

+ +
    +
  • amd: Asynchronous Module Definition, used with module loaders like RequireJS
  • +
  • cjs: CommonJS, suitable for Node and other bundlers
  • +
  • esm: Keep the bundle as an ES module file, suitable for other bundlers and inclusion as a <script type=module> tag in modern browsers
  • +
  • iife: A self-executing function, suitable for inclusion as a <script> tag. (If you want to create a bundle for your application, you probably want to use this.)
  • +
  • umd: Universal Module Definition, works as amd, cjs and iife all in one
  • +
  • system: Native format of the SystemJS loader
  • +
+ +

Defaults to "esm"

+ + + +

(Boolean): Link the workspace root to the bin_dir to support absolute requires like ‘my_wksp/path/to/file’. +If source files need to be required then they can be copied to the bin_dir with copy_to_bin.

+ +

Defaults to False

+ +

node_context_data

+ +

(Label): Provides info about the build context, such as stamping.

+ +

By default it reads from the bazel command line, such as the --stamp argument. +Use this to override values for this target, such as enabling or disabling stamping. +You can use the node_context_data rule in @build_bazel_rules_nodejs//internal/node:context.bzl +to create a NodeContextInfo. The dependencies of this attribute must provide: NodeContextInfo

+ +

Defaults to @build_bazel_rules_nodejs//internal:node_context_data

+ +

output_dir

+ +

(Boolean): Whether to produce a directory output.

+ +

We will use the --output.dir option in rollup +rather than --output.file.

+ +

If the program produces multiple chunks, you must specify this attribute. +Otherwise, the outputs are assumed to be a single file.

+ +

Defaults to False

+ +

rollup_bin

+ +

(Label): Target that executes the rollup binary

+ +

Defaults to @npm//rollup/bin:rollup

+ +

rollup_worker_bin

+ +

(Label): Internal use only

+ +

Defaults to @npm//@bazel/bin:rollup-worker

+ +

silent

+ +

(Boolean): Whether to execute the rollup binary with the –silent flag, defaults to False.

+ +

Using –silent can cause rollup to ignore errors/warnings +which are only surfaced via logging. Since bazel expects printing nothing on success, setting silent to True +is a more Bazel-idiomatic experience, however could cause rollup to drop important warnings.

+ +

Defaults to False

+ +

sourcemap

+ +

(String): Whether to produce sourcemaps.

+ +

Passed to the --sourcemap option in Rollup

+ +

Defaults to "inline"

+ +

srcs

+ +

(List of labels): Non-entry point JavaScript source files from the workspace.

+ +

You must not repeat file(s) passed to entry_point/entry_points.

+ +

Defaults to []

+ +

supports_workers

+ +

(Boolean): Experimental! Use only with caution.

+ +

Allows you to enable the Bazel Worker strategy for this library. +When enabled, this rule invokes the “rollup_worker_bin” +worker aware binary rather than “rollup_bin”.

+ +

Defaults to False

+ + +
+
+ + +
+
+ +
+
+
+
+

© 2020 The rules_nodejs authors

+
+
+
+ +
+ + + + + + + + + + + + + + + diff --git a/docs/Rollup.md b/docs/Rollup.md index 0b301e8d0e..27a599aa34 100755 --- a/docs/Rollup.md +++ b/docs/Rollup.md @@ -1,19 +1,18 @@ --- title: Rollup layout: default -stylesheet: docs +toc: true +nav: rule --- -# rollup rules for Bazel +# Rollup rules for Bazel -The rollup rules run the rollup JS bundler with Bazel. - -Wraps the rollup CLI documented at https://rollupjs.org/guide/en/#command-line-reference +The Rollup rules run the [rollup.js](https://rollupjs.org/) bundler with Bazel. ## Installation @@ -21,7 +20,7 @@ Wraps the rollup CLI documented at https://rollupjs.org/guide/en/#command-line-r Add the `@bazel/rollup` npm package to your `devDependencies` in `package.json`. -## Installing with self-managed dependencies +### Installing with self-managed dependencies If you didn't use the `yarn_install` or `npm_install` rule, you'll have to declare a rule in your root `BUILD.bazel` file to execute rollup: @@ -36,20 +35,15 @@ nodejs_binary( ) ``` -[name]: https://bazel.build/docs/build-ref.html#name -[label]: https://bazel.build/docs/build-ref.html#labels -[labels]: https://bazel.build/docs/build-ref.html#labels - -## rollup_bundle +## Usage -Runs the Rollup.js CLI under Bazel. - -See https://rollupjs.org/guide/en/#command-line-reference +The `rollup_bundle` rule is used to invoke Rollup on some JavaScript inputs. +The API docs appear [below](#rollup_bundle). Typical example: ```python -load("//packages/rollup:index.bzl", "rollup_bundle") +load("@npm//@bazel/rollup:index.bzl", "rollup_bundle") rollup_bundle( name = "bundle", @@ -71,13 +65,18 @@ module.exports = { } ``` -You must determine ahead of time whether Rollup needs to produce a directory output. -This is the case if you have dynamic imports which cause code-splitting, or if you + +### Output types + +You must determine ahead of time whether Rollup will write a single file or a directory. +Rollup's CLI has the same behavior, forcing you to pick `--output.file` or `--output.dir`. + +Writing a directory is used when you have dynamic imports which cause code-splitting, or if you provide multiple entry points. Use the `output_dir` attribute to specify that you want a directory output. -Rollup's CLI has the same behavior, forcing you to pick `--output.file` or `--output.dir`. -To get multiple output formats, wrap the rule with a macro or list comprehension, e.g. +Each `rollup_bundle` rule produces only one output by running the rollup CLI a single time. +To get multiple output formats, you can wrap the rule with a macro or list comprehension, e.g. ```python [ @@ -96,46 +95,136 @@ To get multiple output formats, wrap the rule with a macro or list comprehension This will produce one output per requested format. +### Stamping -### Usage +You can stamp the current version control info into the output by writing some code in your rollup config. +See the [stamping documentation](stamping). +By passing the `--stamp` option to Bazel, two additional input files will be readable by Rollup. + +1. The variable `bazel_version_file` will point to `bazel-out/volatile-status.txt` which contains +statuses that change frequently; such changes do not cause a re-build of the rollup_bundle. +2. The variable `bazel_info_file` will point to `bazel-out/stable-status.txt` file which contains +statuses that stay the same; any changed values will cause rollup_bundle to rebuild. + +Both `bazel_version_file` and `bazel_info_file` will be `undefined` if the build is run without `--stamp`. + +> Note that under `--stamp`, only the bundle is re-built, but not the compilation steps that produced the inputs. +> This avoids a slow cascading re-build of a whole tree of actions. + +To use these files, you write JS code in your `rollup.config.js` to read from the status files and parse the lines. +Each line is a space-separated key/value pair. + +```javascript +// Parse the stamp file produced by Bazel from the version control system +let version = ''; +if (bazel_info_file) { + const versionTag = require('fs') + .readFileSync(bazel_info_file, {encoding: 'utf-8'}) + .split('\n') + .find(s => s.startsWith('STABLE_GIT_COMMIT')); + if (versionTag) { + version = 'v' + versionTag.split(' ')[1].trim(); + } +} ``` -rollup_bundle(name, args, config_file, deps, entry_point, entry_points, format, node_context_data, output_dir, rollup_bin, rollup_worker_bin, silent, sourcemap, srcs, supports_workers) + + +### Debug and Opt builds + +When you use `--compilation_mode=dbg`, Bazel produces a distinct output-tree in `bazel-out/[arch]-dbg/bin`. +Code in your `rollup.config.js` can look in the environment to detect if a debug build is being performed, +and include extra developer information in the bundle that you wouldn't normally ship to production. + +Similarly, `--compilation_mode=opt` is Bazel's signal to perform extra optimizations. +You could use this value to perform extra production-only optimizations. + +For example you could define a constant for enabling Debug: + +```javascript +const DEBUG = process.env['COMPILATION_MODE'] === 'dbg'; ``` +and configure Rollup differently when `DEBUG` is `true` or `false`. + + +### Increasing Heap memory for rollup +The `rollup_bin` attribute allows you to customize the rollup.js program we execute, +so you can use `nodejs_binary` to construct your own. -#### `name` -(*[name], mandatory*): A unique name for this target. +> You can always call `bazel query --output=build [default rollup_bin]` to see what +> the default definition looks like, then copy-paste from there to be sure yours +> matches. -#### `args` -(*List of strings*): Command line arguments to pass to rollup. Can be used to override config file settings. +```python +nodejs_binary( + name = "rollup_more_mem", + data = ["@npm//rollup:rollup"], + entry_point = "@npm//:node_modules/rollup/dist/bin/rollup", + templated_args = [ + "--nobazel_patch_module_resolver", + "--node_options=--max-old-space-size=", + ], +) -These argument passed on the command line before all arguments that are always added by the -rule such as `--output.dir` or `--output.file`, `--format`, `--config` and `--preserveSymlinks` and -also those that are optionally added by the rule such as `--sourcemap`. +rollup_bundle( + ... + rollup_bin = ":rollup_more_mem", +) +``` -See rollup CLI docs https://rollupjs.org/guide/en/#command-line-flags for complete list of supported arguments. + +## rollup_bundle + +**USAGE** + +
+rollup_bundle(name, args, config_file, deps, entry_point, entry_points, format, link_workspace_root,
+              node_context_data, output_dir, rollup_bin, rollup_worker_bin, silent, sourcemap, srcs,
+              supports_workers)
+
+ +Runs the rollup.js CLI under Bazel. + +**ATTRIBUTES** + + +

name

+ +(*Name, mandatory*): A unique name for this target. + + +

args

+ +(*List of strings*): Command line arguments to pass to Rollup. Can be used to override config file settings. + +These argument passed on the command line before arguments that are added by the rule. +Run `bazel` with `--subcommands` to see what Rollup CLI command line was invoked. + +See the Rollup CLI docs for a complete list of supported arguments. Defaults to `[]` -#### `config_file` -(*[label]*): A rollup.config.js file +

config_file

+ +(*Label*): A `rollup.config.js` file -Passed to the --config -See https://rollupjs.org/guide/en/#configuration-files +Passed to the `--config` option, see [the config doc](https://rollupjs.org/guide/en/#configuration-files) If not set, a default basic Rollup config is used. -Defaults to `//packages/rollup:rollup.config.js` +Defaults to `@npm//@bazel/rollup:rollup.config.js` -#### `deps` -(*[labels]*): Other libraries that are required by the code, or by the rollup.config.js +

deps

+ +(*List of labels*): Other libraries that are required by the code, or by the rollup.config.js Defaults to `[]` -#### `entry_point` -(*[label]*): The bundle's entry point (e.g. your main.js or app.js or index.js). +

entry_point

+ +(*Label*): The bundle's entry point (e.g. your main.js or app.js or index.js). This is just a shortcut for the `entry_points` attribute with a single output chunk named the same as the rule. @@ -180,7 +269,8 @@ rollup_bundle( Defaults to `None` -#### `entry_points` +

entry_points

+ (*Dictionary: Label -> String*): The bundle's entry points (e.g. your main.js or app.js or index.js). Passed to the [`--input` option](https://github.com/rollup/rollup/blob/master/docs/999-big-list-of-options.md#input) in Rollup. @@ -192,8 +282,9 @@ Either this attribute or `entry_point` must be specified, but not both. Defaults to `{}` -#### `format` -(*String*): "Specifies the format of the generated bundle. One of the following: +

format

+ +(*String*): Specifies the format of the generated bundle. One of the following: - `amd`: Asynchronous Module Definition, used with module loaders like RequireJS - `cjs`: CommonJS, suitable for Node and other bundlers @@ -204,12 +295,27 @@ Defaults to `{}` Defaults to `"esm"` -#### `node_context_data` -(*[label]*): Internal use only + + +(*Boolean*): Link the workspace root to the bin_dir to support absolute requires like 'my_wksp/path/to/file'. +If source files need to be required then they can be copied to the bin_dir with copy_to_bin. + +Defaults to `False` + +

node_context_data

+ +(*Label*): Provides info about the build context, such as stamping. + +By default it reads from the bazel command line, such as the `--stamp` argument. +Use this to override values for this target, such as enabling or disabling stamping. +You can use the `node_context_data` rule in `@build_bazel_rules_nodejs//internal/node:context.bzl` +to create a NodeContextInfo. The dependencies of this attribute must provide: NodeContextInfo + Defaults to `@build_bazel_rules_nodejs//internal:node_context_data` -#### `output_dir` +

output_dir

+ (*Boolean*): Whether to produce a directory output. We will use the [`--output.dir` option](https://github.com/rollup/rollup/blob/master/docs/999-big-list-of-options.md#outputdir) in rollup @@ -220,17 +326,20 @@ Otherwise, the outputs are assumed to be a single file. Defaults to `False` -#### `rollup_bin` -(*[label]*): Target that executes the rollup binary +

rollup_bin

+ +(*Label*): Target that executes the rollup binary Defaults to `@npm//rollup/bin:rollup` -#### `rollup_worker_bin` -(*[label]*): Internal use only +

rollup_worker_bin

+ +(*Label*): Internal use only + +Defaults to `@npm//@bazel/bin:rollup-worker` -Defaults to `//packages/rollup/bin:rollup-worker` +

silent

-#### `silent` (*Boolean*): Whether to execute the rollup binary with the --silent flag, defaults to False. Using --silent can cause rollup to [ignore errors/warnings](https://github.com/rollup/rollup/blob/master/docs/999-big-list-of-options.md#onwarn) @@ -239,21 +348,24 @@ is a more Bazel-idiomatic experience, however could cause rollup to drop importa Defaults to `False` -#### `sourcemap` +

sourcemap

+ (*String*): Whether to produce sourcemaps. Passed to the [`--sourcemap` option](https://github.com/rollup/rollup/blob/master/docs/999-big-list-of-options.md#outputsourcemap") in Rollup Defaults to `"inline"` -#### `srcs` -(*[labels]*): Non-entry point JavaScript source files from the workspace. +

srcs

+ +(*List of labels*): Non-entry point JavaScript source files from the workspace. You must not repeat file(s) passed to entry_point/entry_points. Defaults to `[]` -#### `supports_workers` +

supports_workers

+ (*Boolean*): Experimental! Use only with caution. Allows you to enable the Bazel Worker strategy for this library. @@ -262,3 +374,4 @@ worker aware binary rather than "rollup_bin". Defaults to `False` + diff --git a/docs/Terser.html b/docs/Terser.html new file mode 100755 index 0000000000..62c1ea7006 --- /dev/null +++ b/docs/Terser.html @@ -0,0 +1,400 @@ + + + + + + + + + + rules_nodejs - Terser + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+ + +
+
+ +

Terser rules for Bazel

+ +

The Terser rules run the Terser JS minifier with Bazel.

+ +

Wraps the Terser CLI documented at https://github.com/terser-js/terser#command-line-usage

+ +

Installation

+ +

Add the @bazel/terser npm package to your devDependencies in package.json.

+ +

Installing with self-managed dependencies

+ +

If you didn’t use the yarn_install or npm_install rule, you’ll have to declare a rule in your root BUILD.bazel file to execute terser:

+ +
# Create a terser rule to use in terser_minified#terser_bin
+# attribute when using self-managed dependencies
+nodejs_binary(
+    name = "terser_bin",
+    entry_point = "//:node_modules/terser/bin/uglifyjs",
+    # Point bazel to your node_modules to find the entry point
+    node_modules = ["//:node_modules"],
+)
+
+ +

terser_minified

+ +

USAGE

+ +
+terser_minified(name, args, config_file, debug, sourcemap, src, terser_bin)
+
+ +

Run the terser minifier.

+ +

Typical example:

+
load("@npm//@bazel/terser:index.bzl", "terser_minified")
+
+terser_minified(
+    name = "out.min",
+    src = "input.js",
+    config_file = "terser_config.json",
+)
+
+ +

Note that the name attribute determines what the resulting files will be called. +So the example above will output out.min.js and out.min.js.map (since sourcemap defaults to true). +If the input is a directory, then the output will also be a directory, named after the name attribute.

+ +

ATTRIBUTES

+ +

name

+ +

(Name, mandatory): A unique name for this target.

+ +

args

+ +

(List of strings): Additional command line arguments to pass to terser.

+ +

Terser only parses minify() args from the config file so additional arguments such as --comments may +be passed to the rule using this attribute. See https://github.com/terser/terser#command-line-usage for the +full list of terser CLI options.

+ +

Defaults to []

+ +

config_file

+ +

(Label): A JSON file containing Terser minify() options.

+ +

This is the file you would pass to the –config-file argument in terser’s CLI. +https://github.com/terser-js/terser#minify-options documents the content of the file.

+ +

Bazel will make a copy of your config file, treating it as a template.

+ +

Run bazel with --subcommands to see the path to the copied file.

+ +

If you use the magic strings "bazel_debug" or "bazel_no_debug", these will be +replaced with true and false respecting the value of the debug attribute +or the --compilation_mode=dbg bazel flag.

+ +

For example

+ +
{
+    "compress": {
+        "arrows": "bazel_no_debug"
+    }
+}
+
+ +

Will disable the arrows compression setting when debugging.

+ +

If config_file isn’t supplied, Bazel will use a default config file.

+ +

Defaults to @npm//@bazel/terser:terser_config.default.json

+ +

debug

+ +

(Boolean): Configure terser to produce more readable output.

+ +

Instead of setting this attribute, consider using debugging compilation mode instead +bazel build –compilation_mode=dbg //my/terser:target +so that it only affects the current build.

+ +

Defaults to False

+ +

sourcemap

+ +

(Boolean): Whether to produce a .js.map output

+ +

Defaults to True

+ +

src

+ +

(Label, mandatory): File(s) to minify.

+ +

Can be a .js file, a rule producing .js files as its default output, or a rule producing a directory of .js files.

+ +

Note that you can pass multiple files to terser, which it will bundle together. +If you want to do this, you can pass a filegroup here.

+ +

terser_bin

+ +

(Label): An executable target that runs Terser

+ +

Defaults to @npm//@bazel/bin:terser

+ + +
+
+ + +
+
+ +
+
+
+
+

© 2020 The rules_nodejs authors

+
+
+
+ +
+ + + + + + + + + + + + + + + diff --git a/docs/Terser.md b/docs/Terser.md index 474723e4a5..0d9165a53e 100755 --- a/docs/Terser.md +++ b/docs/Terser.md @@ -1,10 +1,11 @@ --- title: Terser layout: default -stylesheet: docs +toc: true +nav: rule --- + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+ + +
+
+ +

TypeScript rules for Bazel

+ +

The TypeScript rules integrate the TypeScript compiler with Bazel.

+ +

Alternatives

+ +

This package provides Bazel wrappers around the TypeScript compiler.

+ +

At a high level, there are two alternatives provided: ts_project and ts_library. +This section describes the trade-offs between these rules.

+ +

ts_project is recommended for all new uses, and we hope to migrate all users to it in the future. +It simply runs tsc --project.

+ +

The rule ensures that Bazel knows which outputs to expect based on the TypeScript compiler options, and provides interoperability with other TypeScript rules via a Bazel Provider (DeclarationInfo) that transmits the type information.

+ +

Advantages of ts_project include:

+
    +
  • it’s an easy on-boarding for existing TypeScript code and for developers already familiar with using the TypeScript compiler.
  • +
  • any behavior of ts_project should be reproducible outside of Bazel, with a couple of caveats noted in the rule documentation below.
  • +
  • It’s a compact implementation that we can afford to maintain.
  • +
+ +
+

We used to recommend using the tsc rule directly from the typescript project, like +load("@npm//typescript:index.bzl", "tsc") +However ts_project is strictly better and should be used instead.

+
+ +

ts_library will be deprecated as soon as ts_project has performance parity. Thus we do not recommend any new usages

+ +

ts_library is an open-sourced version of the rule we use to compile TS code at Google, however it is very complex, involving code generation of the tsconfig.json file, a custom compiler binary, and a lot of extra features.

+ +

It is also opinionated, and may not work with existing TypeScript code. For example:

+ +
    +
  • Your TS code must compile under the --declaration flag so that downstream libraries depend only on types, not implementation. This makes Bazel faster by avoiding cascading rebuilds in cases where the types aren’t changed.
  • +
  • You cannot use --noEmit compiler option to use TypeScript as a linter. We always expect to produce .js outputs.
  • +
  • We control the output format and module syntax so that downstream rules can rely on them.
  • +
+ +

On the other hand, ts_library is also fast and optimized. +We keep a running TypeScript compile running as a daemon, using Bazel workers. +This process avoids re-parse and re-JIT of the >1MB typescript.js and keeps cached bound ASTs for input files which saves time. +We also produce JS code which can be loaded faster (using named AMD module format) and which can be consumed by the Closure Compiler (via integration with tsickle).

+ +

Installation

+ +

Add a devDependency on @bazel/typescript

+ +
$ yarn add -D @bazel/typescript
+# or
+$ npm install --save-dev @bazel/typescript
+
+ +

Watch for any peerDependency warnings - we assume you have already installed the typescript package from npm.

+ +

Notes

+ +

If you’d like a “watch mode”, try ibazel.

+ +

At some point, we plan to release a tool similar to gazelle to generate the +BUILD files from your source code.

+ +

ts_config

+ +

USAGE

+ +
+ts_config(name, deps, src)
+
+ +

Allows a tsconfig.json file to extend another file.

+ +

Normally, you just give a single tsconfig.json file as the tsconfig attribute +of a ts_library or ts_project rule. However, if your tsconfig.json uses the extends +feature from TypeScript, then the Bazel implementation needs to know about that +extended configuration file as well, to pass them both to the TypeScript compiler.

+ +

ATTRIBUTES

+ +

name

+ +

(Name, mandatory): A unique name for this target.

+ +

deps

+ +

(List of labels): Additional tsconfig.json files referenced via extends

+ +

Defaults to []

+ +

src

+ +

(Label, mandatory): The tsconfig.json file passed to the TypeScript compiler

+ +

ts_devserver

+ +

USAGE

+ +
+ts_devserver(name, additional_root_paths, bootstrap, deps, devserver, devserver_host, entry_module,
+             port, scripts, serving_path, static_files)
+
+ +

ts_devserver is a simple development server intended for a quick “getting started” experience.

+ +

Additional documentation here

+ +

ATTRIBUTES

+ +

name

+ +

(Name, mandatory): A unique name for this target.

+ +

additional_root_paths

+ +

(List of strings): Additional root paths to serve static_files from. + Paths should include the workspace name such as ["__main__/resources"]

+ +

Defaults to []

+ +

bootstrap

+ +

(List of labels): Scripts to include in the JS bundle before the module loader (require.js)

+ +

Defaults to []

+ +

deps

+ +

(List of labels): Targets that produce JavaScript, such as ts_library

+ +

Defaults to []

+ +

devserver

+ +

(Label): Go based devserver executable.

+ +
        With cross-platform RBE for OSX & Windows ctx.executable.devserver will be linux as --cpu and
+        --host_cpu must be overridden to k8. However, we still want to be able to run the devserver on the host
+        machine so we need to include the host devserver binary, which is ctx.executable.devserver_host, in the
+        runfiles. For non-RBE and for RBE with a linux host, ctx.executable.devserver & ctx.executable.devserver_host
+        will be the same binary.
+
+        Defaults to precompiled go binary setup by @bazel/typescript npm package
+
+ +

Defaults to @npm//@bazel/devserver:devserver

+ +

devserver_host

+ +

(Label): Go based devserver executable for the host platform. + Defaults to precompiled go binary setup by @bazel/typescript npm package

+ +

Defaults to @npm//@bazel/devserver:devserver_darwin_amd64

+ +

entry_module

+ +

(String): The entry_module should be the AMD module name of the entry module such as "__main__/src/index". + ts_devserver concats the following snippet after the bundle to load the application: + require(["entry_module"]);

+ +

Defaults to ""

+ +

port

+ +

(Integer): The port that the devserver will listen on.

+ +

Defaults to 5432

+ +

scripts

+ +

(List of labels): User scripts to include in the JS bundle before the application sources

+ +

Defaults to []

+ +

serving_path

+ +

(String): The path you can request from the client HTML which serves the JavaScript bundle. + If you don’t specify one, the JavaScript can be loaded at /_/ts_scripts.js

+ +

Defaults to "/_/ts_scripts.js"

+ +

static_files

+ +

(List of labels): Arbitrary files which to be served, such as index.html. + They are served relative to the package where this rule is declared.

+ +

Defaults to []

+ +

ts_library

+ +

USAGE

+ +
+ts_library(name, angular_assets, compiler, data, deps, devmode_module, devmode_target,
+           expected_diagnostics, generate_externs, internal_testing_type_check_dependencies,
+           link_workspace_root, module_name, module_root, node_modules, prodmode_module,
+           prodmode_target, runtime, runtime_deps, srcs, supports_workers, tsconfig, tsickle_typed,
+           use_angular_plugin)
+
+ +

ts_library type-checks and compiles a set of TypeScript sources to JavaScript.

+ +

First read the Alternatives section above. +ts_project is recommended for new uses.

+ +

The ts_library rule invokes the TypeScript compiler on one compilation unit, +or “library” (generally one directory of source files). +It produces declarations files (.d.ts) which are used for compiling downstream +TypeScript targets and JavaScript for the browser and Closure compiler.

+ +

To start, create a BUILD file next to your sources:

+ +
package(default_visibility=["//visibility:public"])
+load("@npm//@bazel/typescript:index.bzl", "ts_library")
+
+ts_library(
+    name = "my_code",
+    srcs = glob(["*.ts"]),
+    deps = ["//path/to/other:library"],
+)
+
+ +

If your ts_library target has npm dependencies you can specify these +with fine grained npm dependency targets created by the yarn_install or +npm_install rules:

+ +
ts_library(
+    name = "my_code",
+    srcs = glob(["*.ts"]),
+    deps = [
+      "@npm//@types/node",
+      "@npm//@types/foo",
+      "@npm//foo",
+      "//path/to/other:library",
+    ],
+)
+
+ +

You can also use the @npm//@types target which will include all +packages in the @types scope as dependencies.

+ +

If you are using self-managed npm dependencies, you can use the +node_modules attribute in ts_library and point it to the +//:node_modules filegroup defined in your root BUILD.bazel file. +You’ll also need to override the compiler attribute if you do this +as the Bazel-managed deps and self-managed cannot be used together +in the same rule.

+ +
ts_library(
+    name = "my_code",
+    srcs = glob(["*.ts"]),
+    deps = ["//path/to/other:library"],
+    node_modules = "//:node_modules",
+    compiler = "//:@bazel/typescript/tsc_wrapped",
+)
+
+ +

To build a ts_library target run:

+ +

bazel build //path/to/package:target

+ +

The resulting .d.ts file paths will be printed. Additionally, the .js +outputs from TypeScript will be written to disk, next to the .d.ts files 1.

+ +

Note that the tsconfig.json file used for compilation should be the same one +your editor references, to keep consistent settings for the TypeScript compiler. +By default, ts_library uses the tsconfig.json file in the workspace root +directory. See the notes about the tsconfig attribute in the ts_library API docs.

+ +
+

1 The +declarationDir +compiler option will be silently overwritten if present.

+
+ +

Self-managed npm dependencies

+ +

We recommend you use Bazel managed dependencies, but if you would like +Bazel to also install a node_modules in your workspace you can also +point the node_repositories repository rule in your WORKSPACE file to +your package.json.

+ +
node_repositories(package_json = ["//:package.json"])
+
+ +

You can then run yarn in your workspace with:

+ +
$ bazel run @nodejs//:yarn_node_repositories
+
+ +

To use your workspace node_modules folder as a dependency in ts_library and +other rules, add the following to your root BUILD.bazel file:

+ +
filegroup(
+    name = "node_modules",
+    srcs = glob(
+        include = [
+          "node_modules/**/*.js",
+          "node_modules/**/*.d.ts",
+          "node_modules/**/*.json",
+          "node_modules/.bin/*",
+        ],
+        exclude = [
+          # Files under test & docs may contain file names that
+          # are not legal Bazel labels (e.g.,
+          # node_modules/ecstatic/test/public/中文/檔案.html)
+          "node_modules/**/test/**",
+          "node_modules/**/docs/**",
+          # Files with spaces in the name are not legal Bazel labels
+          "node_modules/**/* */**",
+          "node_modules/**/* *",
+        ],
+    ),
+)
+
+# Create a tsc_wrapped compiler rule to use in the ts_library
+# compiler attribute when using self-managed dependencies
+nodejs_binary(
+    name = "@bazel/typescript/tsc_wrapped",
+    entry_point = "@npm//:node_modules/@bazel/typescript/internal/tsc_wrapped/tsc_wrapped.js",
+    # Point bazel to your node_modules to find the entry point
+    node_modules = "//:node_modules",
+)
+
+ +

See https://github.com/bazelbuild/rules_nodejs#dependencies for more information on +managing npm dependencies with Bazel.

+ +

Customizing the TypeScript compiler binary

+ +

An example use case is needing to increase the NodeJS heap size used for compilations.

+ +

Similar to above, you declare your own binary for running tsc_wrapped, e.g.:

+ +
nodejs_binary(
+    name = "tsc_wrapped_bin",
+    entry_point = "@npm//:node_modules/@bazel/typescript/internal/tsc_wrapped/tsc_wrapped.js",
+    templated_args = [
+        "--node_options=--max-old-space-size=2048",
+    ],
+    data = [
+        "@npm//protobufjs",
+        "@npm//source-map-support",
+        "@npm//tsutils",
+        "@npm//typescript",
+        "@npm//@bazel/typescript",
+    ],
+)
+
+ +

then refer to that target in the compiler attribute of your ts_library rule.

+ +

Note that nodejs_binary targets generated by npm_install/yarn_install can include data dependencies +on packages which aren’t declared as dependencies. For example, if you use tsickle to generate Closure Compiler-compatible JS, +then it needs to be a data dependency of tsc_wrapped so that it can be loaded at runtime.

+ +

Accessing JavaScript outputs

+ +

The default output of the ts_library rule is the .d.ts files. +This is for a couple reasons:

+ +
    +
  • help ensure that downstream rules which access default outputs will not require +a cascading re-build when only the implementation changes but not the types
  • +
  • make you think about whether you want the devmode (named UMD) or prodmode outputs
  • +
+ +

You can access the JS output by adding a filegroup rule after the ts_library, +for example

+ +
ts_library(
+    name = "compile",
+    srcs = ["thing.ts"],
+)
+
+filegroup(
+    name = "thing.js",
+    srcs = ["compile"],
+    # Change to es6_sources to get the 'prodmode' JS
+    output_group = "es5_sources",
+)
+
+my_rule(
+    name = "uses_js",
+    deps = ["thing.js"],
+)
+
+ +

Serving TypeScript for development

+ +

There are two choices for development mode:

+ +
    +
  1. Use the ts_devserver rule to bring up our simple, fast development server. +This is intentionally very simple, to help you get started quickly. However, +since there are many development servers available, we do not want to mirror +their features in yet another server we maintain.
  2. +
  3. Teach your real frontend server to serve files from Bazel’s output directory. +This is not yet documented. Choose this option if you have an existing server +used in development mode, or if your requirements exceed what the +ts_devserver supports. Be careful that your development round-trip stays +fast (should be under two seconds).
  4. +
+ +

To use ts_devserver, you simply load the rule, and call it with deps that +point to your ts_library target(s):

+ +
load("@npm//@bazel/typescript:index.bzl", "ts_devserver", "ts_library")
+
+ts_library(
+    name = "app",
+    srcs = ["app.ts"],
+)
+
+ts_devserver(
+    name = "devserver",
+    # We'll collect all the devmode JS sources from these TypeScript libraries
+    deps = [":app"],
+    # This is the path we'll request from the browser, see index.html
+    serving_path = "/bundle.js",
+    # The devserver can serve our static files too
+    static_files = ["index.html"],
+)
+
+ +

The index.html should be the same one you use for production, and it should +load the JavaScript bundle from the path indicated in serving_path.

+ +

If you don’t have an index.html file, a simple one will be generated by the +ts_devserver.

+ +

See examples/app in this repository for a working example. To run the +devserver, we recommend you use ibazel:

+ +
$ ibazel run examples/app:devserver
+
+ +

ibazel will keep the devserver program running, and provides a LiveReload +server so the browser refreshes the application automatically when each build +finishes.

+ +

Writing TypeScript code for ts_library

+ +

The custom TypeScript compiler tsc_wrapped has your workspace path mapped, so you can import +from an absolute path starting from your workspace.

+ +

/WORKSPACE:

+
workspace(name = "myworkspace")
+
+ +

/some/long/path/to/deeply/nested/subdirectory.ts:

+
import {thing} from 'myworkspace/place';
+
+ +

will import from /place.ts.

+ +

Since this is an extension to the vanilla TypeScript compiler, editors which use the TypeScript language services to provide code completion and inline type checking will not be able to resolve the modules. In the above example, adding

+
"paths": {
+    "myworkspace/*": ["*"]
+}
+
+

to tsconfig.json will fix the imports for the common case of using absolute paths. +See path mapping for more details on the paths syntax.

+ +

Similarly, you can use path mapping to teach the editor how to resolve imports +from ts_library rules which set the module_name attribute.

+ +

ATTRIBUTES

+ +

name

+ +

(Name, mandatory): A unique name for this target.

+ +

angular_assets

+ +

(List of labels): Additional files the Angular compiler will need to read as inputs. + Includes .css and .html files

+ +

Defaults to []

+ +

compiler

+ +

(Label): Sets a different TypeScript compiler binary to use for this library. +For example, we use the vanilla TypeScript tsc.js for bootstrapping, +and Angular compilations can replace this with ngc.

+ +

The default ts_library compiler depends on the //@bazel/typescript +target which is setup for projects that use bazel managed npm deps and +install the @bazel/typescript npm package.

+ +

Defaults to @build_bazel_rules_typescript//internal:tsc_wrapped_bin

+ +

data

+ +

(List of labels)

+ +

Defaults to []

+ +

deps

+ +

(List of labels): Compile-time dependencies, typically other ts_library targets

+ +

Defaults to []

+ +

devmode_module

+ +

(String): Set the typescript module compiler option for devmode output.

+ +

This value will override the module option in the user supplied tsconfig.

+ +

Defaults to "umd"

+ +

devmode_target

+ +

(String): Set the typescript target compiler option for devmode output.

+ +

This value will override the target option in the user supplied tsconfig.

+ +

Defaults to "es2015"

+ +

expected_diagnostics

+ +

(List of strings)

+ +

Defaults to []

+ +

generate_externs

+ +

(Boolean)

+ +

Defaults to True

+ +

internal_testing_type_check_dependencies

+ +

(Boolean): Testing only, whether to type check inputs that aren’t srcs.

+ +

Defaults to False

+ + + +

(Boolean): Link the workspace root to the bin_dir to support absolute requires like ‘my_wksp/path/to/file’. + If source files need to be required then they can be copied to the bin_dir with copy_to_bin.

+ +

Defaults to False

+ +

module_name

+ +

(String)

+ +

Defaults to ""

+ +

module_root

+ +

(String)

+ +

Defaults to ""

+ +

node_modules

+ +

(Label): The npm packages which should be available during the compile.

+ +

The default value of //typescript:typescript__typings is setup +for projects that use bazel managed npm deps. This default is in place +since ts_library will always depend on at least the typescript +default libs which are provided by //typescript:typescript__typings.

+ +

This attribute is DEPRECATED. As of version 0.18.0 the recommended +approach to npm dependencies is to use fine grained npm dependencies +which are setup with the yarn_install or npm_install rules.

+ +

For example, in targets that used a //:node_modules filegroup,

+ +
ts_library(
+    name = "my_lib",
+    ...
+    node_modules = "//:node_modules",
+)
+
+ +

which specifies all files within the //:node_modules filegroup +to be inputs to the my_lib. Using fine grained npm dependencies, +my_lib is defined with only the npm dependencies that are +needed:

+ +
ts_library(
+    name = "my_lib",
+    ...
+    deps = [
+        "@npm//@types/foo",
+        "@npm//@types/bar",
+        "@npm//foo",
+        "@npm//bar",
+        ...
+    ],
+)
+
+ +

In this case, only the listed npm packages and their +transitive deps are includes as inputs to the my_lib target +which reduces the time required to setup the runfiles for this +target (see https://github.com/bazelbuild/bazel/issues/5153). +The default typescript libs are also available via the node_modules +default in this case.

+ +

The @npm external repository and the fine grained npm package +targets are setup using the yarn_install or npm_install rule +in your WORKSPACE file:

+ +
yarn_install(
+    name = "npm",
+    package_json = "//:package.json",
+    yarn_lock = "//:yarn.lock",
+)
+
+ +

Defaults to @npm//typescript:typescript__typings

+ +

prodmode_module

+ +

(String): Set the typescript module compiler option for prodmode output.

+ +

This value will override the module option in the user supplied tsconfig.

+ +

Defaults to "esnext"

+ +

prodmode_target

+ +

(String): Set the typescript target compiler option for prodmode output.

+ +

This value will override the target option in the user supplied tsconfig.

+ +

Defaults to "es2015"

+ +

runtime

+ +

(String)

+ +

Defaults to "browser"

+ +

runtime_deps

+ +

(List of labels) The dependencies of this attribute must provide: JsInfo

+ +

Defaults to []

+ +

srcs

+ +

(List of labels, mandatory): The TypeScript source files to compile.

+ +

supports_workers

+ +

(Boolean): Intended for internal use only.

+ +

Allows you to disable the Bazel Worker strategy for this library. +Typically used together with the “compiler” setting when using a +non-worker aware compiler binary.

+ +

Defaults to True

+ +

tsconfig

+ +

(Label): A tsconfig.json file containing settings for TypeScript compilation. +Note that some properties in the tsconfig are governed by Bazel and will be +overridden, such as target and module.

+ +

The default value is set to //:tsconfig.json by a macro. +To use the default, create a BUILD.bazel file in your workspace root. +If your tsconfig.json file is in the root, use

+ +
exports_files(["tsconfig.json"], visibility = ["//visibility:public"])
+
+ +

otherwise create an alias:

+ +
alias(
+    name = "tsconfig.json",
+    actual = "//path/to/my:tsconfig.json",
+)
+
+ +

Or, instead of the default you can give an explicit tsconfig attribute to all ts_library targets.

+ +

Defaults to None

+ +

tsickle_typed

+ +

(Boolean): If using tsickle, instruct it to translate types to ClosureJS format

+ +

Defaults to True

+ +

use_angular_plugin

+ +

(Boolean): Run the Angular ngtsc compiler under ts_library

+ +

Defaults to False

+ +

ts_project

+ +

USAGE

+ +
+ts_project(name, tsconfig, srcs, args, deps, extends, allow_js, declaration, source_map,
+           declaration_map, composite, incremental, emit_declaration_only, ts_build_info_file, tsc,
+           worker_tsc_bin, worker_typescript_module, validate, supports_workers, declaration_dir,
+           out_dir, root_dir, link_workspace_root, kwargs)
+
+ +

Compiles one TypeScript project using tsc --project

+ +

This is a drop-in replacement for the tsc rule automatically generated for the “typescript” +package, typically loaded from @npm//typescript:index.bzl. Unlike bare tsc, this rule understands +the Bazel interop mechanism (Providers) so that this rule works with others that produce or consume +TypeScript typings (.d.ts files).

+ +

Unlike ts_library, this rule is the thinnest possible layer of Bazel interoperability on top +of the TypeScript compiler. It shifts the burden of configuring TypeScript into the tsconfig.json file. +See https://github.com/bazelbuild/rules_nodejs/blob/master/docs/TypeScript.md#alternatives +for more details about the trade-offs between the two rules.

+ +

Some TypeScript options affect which files are emitted, and Bazel wants to know these ahead-of-time. +So several options from the tsconfig file must be mirrored as attributes to ts_project. +See https://www.typescriptlang.org/v2/en/tsconfig for a listing of the TypeScript options.

+ +

Any code that works with tsc should work with ts_project with a few caveats:

+ +
    +
  • Bazel requires that the outDir (and declarationDir) be set to +bazel-out/[target architecture]/bin/path/to/package +so we override whatever settings appear in your tsconfig.
  • +
  • Bazel expects that each output is produced by a single rule. +Thus if you have two ts_project rules with overlapping sources (the same .ts file +appears in more than one) then you get an error about conflicting .js output +files if you try to build both together. +Worse, if you build them separately then the output directory will contain whichever +one you happened to build most recently. This is highly discouraged.
  • +
+ +
+

Note: in order for TypeScript to resolve relative references to the bazel-out folder, +we recommend that the base tsconfig contain a rootDirs section that includes all +possible locations they may appear.

+ +

We hope this will not be needed in some future release of TypeScript. +Follow https://github.com/microsoft/TypeScript/issues/37257 for more info.

+ +

For example, if the base tsconfig file relative to the workspace root is +path/to/tsconfig.json then you should configure like:

+ +
"compilerOptions": {
+    "rootDirs": [
+        ".",
+        "../../bazel-out/darwin-fastbuild/bin/path/to",
+        "../../bazel-out/k8-fastbuild/bin/path/to",
+        "../../bazel-out/x64_windows-fastbuild/bin/path/to",
+        "../../bazel-out/darwin-dbg/bin/path/to",
+        "../../bazel-out/k8-dbg/bin/path/to",
+        "../../bazel-out/x64_windows-dbg/bin/path/to",
+    ]
+}
+
+
+ +

Issues when running non-sandboxed

+ +

When using a non-sandboxed spawn strategy (which is the default on Windows), you may +observe these problems which require workarounds:

+ +

1) Bazel deletes outputs from the previous execution before running tsc. + This causes a problem with TypeScript’s incremental mode: if the .tsbuildinfo file + is not known to be an output of the rule, then Bazel will leave it in the output + directory, and when tsc runs, it may see that the outputs written by the prior + invocation are up-to-date and skip the emit of these files. This will cause Bazel + to intermittently fail with an error that some outputs were not written. + This is why we depend on composite and/or incremental attributes to be provided, + so we can tell Bazel to expect a .tsbuildinfo output to ensure it is deleted before a + subsequent compilation. + At present, we don’t do anything useful with the .tsbuildinfo output, and this rule + does not actually have incremental behavior. Deleting the file is actually + counter-productive in terms of TypeScript compile performance. + Follow https://github.com/bazelbuild/rules_nodejs/issues/1726

+ +

2) When using Project References, TypeScript will expect to verify that the outputs of referenced + projects are up-to-date with respect to their inputs. + (This is true even without using the --build option). + When using a non-sandboxed spawn strategy, tsc can read the sources from other ts_project + rules in your project, and will expect that the tsconfig.json file for those references will + indicate where the outputs were written. However the outDir is determined by this Bazel rule so + it cannot be known from reading the tsconfig.json file. + This problem is manifested as a TypeScript diagnostic like + error TS6305: Output file '/path/to/execroot/a.d.ts' has not been built from source file '/path/to/execroot/a.ts'. + As a workaround, you can give the Windows “fastbuild” output directory as the outDir in your tsconfig file. + On other platforms, the value isn’t read so it does no harm. + See https://github.com/bazelbuild/rules_nodejs/tree/stable/packages/typescript/test/ts_project as an example. + We hope this will be fixed in a future release of TypeScript; + follow https://github.com/microsoft/TypeScript/issues/37378

+ +

3) When TypeScript encounters an import statement, it adds the source file resolved by that reference + to the program. However you may have included that source file in a different project, so this causes + the problem mentioned above where a source file is in multiple programs. + (Note, if you use Project References this is not the case, TS will know the referenced + file is part of the other program.) + This will result in duplicate emit for the same file, which produces an error + since the files written to the output tree are read-only. + Workarounds include using using Project References, or simply grouping the whole compilation + into one program (if this doesn’t exceed your time budget).

+ +

PARAMETERS

+ +

name

+ +

A name for the target.

+ +

We recommend you use the basename (no .json extension) of the tsconfig file that should be compiled.

+ +

Defaults to "tsconfig"

+ +

tsconfig

+ +

Label of the tsconfig.json file to use for the compilation

+ +

To support “chaining” of more than one extended config, this label could be a target that +provdes TsConfigInfo such as ts_config.

+ +

By default, we assume the tsconfig file is named by adding .json to the name attribute.

+ +

EXPERIMENTAL: generated tsconfig

+ +

Instead of a label, you can pass a dictionary of tsconfig keys.

+ +

In this case, a tsconfig.json file will be generated for this compilation, in the following way:

+
    +
  • all top-level keys will be copied by converting the dict to json. +So tsconfig = {"compilerOptions": {"declaration": True}} +will result in a generated tsconfig.json with {"compilerOptions": {"declaration": true}}
  • +
  • each file in srcs will be converted to a relative path in the files section.
  • +
  • the extends attribute will be converted to a relative path
  • +
+ +

Note that you can mix and match attributes and compilerOptions properties, so these are equivalent:

+ +
ts_project(
+    tsconfig = {
+        "compilerOptions": {
+            "declaration": True,
+        },
+    },
+)
+
+

and

+
ts_project(
+    declaration = True,
+)
+
+ +

Defaults to None

+ +

srcs

+ +

List of labels of TypeScript source files to be provided to the compiler.

+ +

If absent, defaults to **/*.ts[x] (all TypeScript files in the package).

+ +

Defaults to None

+ +

args

+ +

List of strings of additional command-line arguments to pass to tsc.

+ +

Defaults to []

+ +

deps

+ +

List of labels of other rules that produce TypeScript typings (.d.ts files)

+ +

Defaults to []

+ +

extends

+ +

Label of the tsconfig file referenced in the extends section of tsconfig

+ +

To support “chaining” of more than one extended config, this label could be a target that +provdes TsConfigInfo such as ts_config.

+ +

DEPRECATED, to be removed in 3.0: +For backwards compatibility, this accepts a list of Labels of the “chained” +tsconfig files. You should instead use a single Label of a ts_config target. +Follow this deprecation: https://github.com/bazelbuild/rules_nodejs/issues/2140

+ +

Defaults to None

+ +

allow_js

+ +

boolean; Specifies whether TypeScript will read .js and .jsx files. When used with declaration, +TypeScript will generate .d.ts files from .js files.

+ +

Defaults to False

+ +

declaration

+ +

if the declaration bit is set in the tsconfig. +Instructs Bazel to expect a .d.ts output for each .ts source.

+ +

Defaults to False

+ +

source_map

+ +

if the sourceMap bit is set in the tsconfig. +Instructs Bazel to expect a .js.map output for each .ts source.

+ +

Defaults to False

+ +

declaration_map

+ +

if the declarationMap bit is set in the tsconfig. +Instructs Bazel to expect a .d.ts.map output for each .ts source.

+ +

Defaults to False

+ +

composite

+ +

if the composite bit is set in the tsconfig. +Instructs Bazel to expect a .tsbuildinfo output and a .d.ts output for each .ts source.

+ +

Defaults to False

+ +

incremental

+ +

if the incremental bit is set in the tsconfig. +Instructs Bazel to expect a .tsbuildinfo output.

+ +

Defaults to False

+ +

emit_declaration_only

+ +

if the emitDeclarationOnly bit is set in the tsconfig. +Instructs Bazel not to expect .js or .js.map outputs for .ts sources.

+ +

Defaults to False

+ +

ts_build_info_file

+ +

the user-specified value of tsBuildInfoFile from the tsconfig. +Helps Bazel to predict the path where the .tsbuildinfo output is written.

+ +

Defaults to None

+ +

tsc

+ +

Label of the TypeScript compiler binary to run.

+ +

For example, tsc = "@my_deps//typescript/bin:tsc" +Or you can pass a custom compiler binary instead.

+ +

Defaults to None

+ +

worker_tsc_bin

+ +

Label of the TypeScript compiler binary to run when running in worker mode.

+ +

For example, tsc = "@my_deps//node_modules/typescript/bin/tsc" +Or you can pass a custom compiler binary instead.

+ +

Defaults to "@npm//:node_modules/typescript/bin/tsc"

+ +

worker_typescript_module

+ +

Label of the package containing all data deps of worker_tsc_bin.

+ +

For example, tsc = "@my_deps//typescript"

+ +

Defaults to "@npm//typescript"

+ +

validate

+ +

boolean; whether to check that the tsconfig settings match the attributes.

+ +

Defaults to True

+ +

supports_workers

+ +

Experimental! Use only with caution.

+ +

Allows you to enable the Bazel Persistent Workers strategy for this project. +See https://docs.bazel.build/versions/master/persistent-workers.html

+ +

This requires that the tsc binary support a --watch option.

+ +

NOTE: this does not work on Windows yet. +We will silently fallback to non-worker mode on Windows regardless of the value of this attribute. +Follow https://github.com/bazelbuild/rules_nodejs/issues/2277 for progress on this feature.

+ +

Defaults to False

+ +

declaration_dir

+ +

a string specifying a subdirectory under the bazel-out folder where generated declaration +outputs are written. Equivalent to the TypeScript –declarationDir option. +By default declarations are written to the out_dir.

+ +

Defaults to None

+ +

out_dir

+ +

a string specifying a subdirectory under the bazel-out folder where outputs are written. +Equivalent to the TypeScript –outDir option. +Note that Bazel always requires outputs be written under a subdirectory matching the input package, +so if your rule appears in path/to/my/package/BUILD.bazel and out_dir = “foo” then the .js files +will appear in bazel-out/[arch]/bin/path/to/my/package/foo/*.js. +By default the out_dir is ‘.’, meaning the packages folder in bazel-out.

+ +

Defaults to None

+ +

root_dir

+ +

a string specifying a subdirectory under the input package which should be consider the +root directory of all the input files. +Equivalent to the TypeScript –rootDir option. +By default it is ‘.’, meaning the source directory where the BUILD file lives.

+ +

Defaults to None

+ + + +

Link the workspace root to the bin_dir to support absolute requires like ‘my_wksp/path/to/file’. +If source files need to be required then they can be copied to the bin_dir with copy_to_bin.

+ +

Defaults to False

+ +

kwargs

+ +

passed through to underlying rule, allows eg. visibility, tags

+ + +
+
+ + +
+
+ +
+
+
+
+

© 2020 The rules_nodejs authors

+
+
+
+ +
+ + + + + + + + + + + + + + + diff --git a/docs/TypeScript.md b/docs/TypeScript.md index 4654d12226..b5d4d64c39 100755 --- a/docs/TypeScript.md +++ b/docs/TypeScript.md @@ -1,10 +1,11 @@ --- title: TypeScript layout: default -stylesheet: docs +toc: true +nav: rule --- + + + + + + + + + - - - \ No newline at end of file + // Highlight the current page on the sidebar nav. + highlightCurrentSidebarNav(); + }); + diff --git a/docs/_includes/head.html b/docs/_includes/head.html index 4171d3d696..09ef090dc2 100644 --- a/docs/_includes/head.html +++ b/docs/_includes/head.html @@ -1,29 +1,33 @@ - - - - {{ page.title }} - {{site.github.project_title}} + + + + + - + rules_nodejs - {{ page.title }} - + + - - - - - + + - + + - - - - + + + + + + + + + + + diff --git a/docs/_includes/header.html b/docs/_includes/header.html index 685111b6d3..17fa5edfa6 100644 --- a/docs/_includes/header.html +++ b/docs/_includes/header.html @@ -1,21 +1,30 @@ -
-
- {{ page.title }} -
- -
- -
- -
-
+
- {% include drawer.html %} \ No newline at end of file + + + + + diff --git a/docs/_includes/sidenav.html b/docs/_includes/sidenav.html new file mode 100644 index 0000000000..68647a4b6f --- /dev/null +++ b/docs/_includes/sidenav.html @@ -0,0 +1,39 @@ +
+ + + +
diff --git a/docs/_layouts/default.html b/docs/_layouts/default.html index c8dda860cb..cfa020852f 100644 --- a/docs/_layouts/default.html +++ b/docs/_layouts/default.html @@ -1,25 +1,42 @@ ---- -stylesheet: docs ---- - - {% include head.html %} - -
- {% include header.html %} + +{% include head.html %} + +{% include header.html %} -
-
- {% if page.title %} -

{{ page.title }}

- {% endif %} +
+
+ {% include sidenav.html %} + +
+
+ {{ content }} +
+
- {{ content }} -
-
- {% include footer.html %} -
+ - - \ No newline at end of file +
+ + +{% include footer.html %} + + + diff --git a/docs/_layouts/home.html b/docs/_layouts/home.html deleted file mode 100644 index 110b6375ec..0000000000 --- a/docs/_layouts/home.html +++ /dev/null @@ -1,23 +0,0 @@ ---- -stylesheet: docs -title: rules_nodejs ---- - - - {% include head.html %} - -
- {% include header.html %} - -
-
- - {{ content }} - -
-
- {% include footer.html %} -
-
- - \ No newline at end of file diff --git a/docs/_layouts/search.html b/docs/_layouts/search.html new file mode 100644 index 0000000000..390c582b01 --- /dev/null +++ b/docs/_layouts/search.html @@ -0,0 +1,21 @@ + + +{% include head.html %} + +{% include header.html %} + +
+ {{ content }} +
+
+ + {% include footer.html %} + + + + + + diff --git a/docs/changing-rules.html b/docs/changing-rules.html new file mode 100755 index 0000000000..ec64a40688 --- /dev/null +++ b/docs/changing-rules.html @@ -0,0 +1,313 @@ + + + + + + + + + + rules_nodejs - Making changes to rules_nodejs + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+ + +
+
+

Making changes to rules_nodejs

+ +

One advantage of open-source software is that you can make your own changes that suit your needs.

+ +

The packages published to npm and GitHub differ from the sources in this repo. The packages have only runtime bazel dependencies, but the sources depend on development dependencies. For example, the @bazel_skylib library is a development-time transitive dependency, while an npm package would have that dependency statically linked in.

+ +
+

This differs from much of the Bazel ecosystem, where you are expected to build the whole transitive toolchain from sources.

+
+ +

If you have a small change, it’s easiest to just patch the distributed artifacts rather than build from source. However if you’re doing active development in rules_nodejs or have a policy of not depending on release artifacts, it’s possible to depend directly on sources. This is not yet documented; file an issue on our repo if you think you need this.

+ +

Patching the npm packages

+ +

The pattern we use most commonly is to add a postinstall hook to your package.json that patches files after they’ve been fetched from npm.

+ +

See /tools/postinstall-patches.js in the Angular repo for an example.

+ +

Patching the built-in release

+ +

rules_nodejs has a distribution format which is a tgz published to GitHub, and this can make it tricky to make casual changes without forking the project and building your own release artifacts.

+ +

Bazel has a handy patching mechanism that lets you easily apply a local patch to the release artifact for built-in rules: the patches attribute to http_archive.

+ +

First, make your changes in a clone of the rules_nodejs repo. Export a patch file simply using git diff:

+ +
git diff > my.patch
+
+ +

Then copy the patch file somewhere in your repo and point to it from your WORKSPACE file:

+ +
http_archive(
+    name = "build_bazel_rules_nodejs",
+    patch_args = ["-p1"],
+    patches = ["//path/to/my.patch"],
+    sha256 = "6d4edbf28ff6720aedf5f97f9b9a7679401bf7fca9d14a0fff80f644a99992b4",
+    urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/0.32.2/rules_nodejs-0.32.2.tar.gz"],
+)
+
+ +
+
+ + +
+
+ +
+
+
+
+

© 2020 The rules_nodejs authors

+
+
+
+ +
+ + + + + + + + + + + + + + + diff --git a/docs/changing-rules.md b/docs/changing-rules.md new file mode 100644 index 0000000000..499a7a9ff3 --- /dev/null +++ b/docs/changing-rules.md @@ -0,0 +1,47 @@ +--- +title: Making changes to rules_nodejs +layout: default +toc: true +--- + +# Making changes to rules_nodejs + +One advantage of open-source software is that you can make your own changes that suit your needs. + +The packages published to npm and GitHub differ from the sources in this repo. The packages have only runtime bazel dependencies, but the sources depend on development dependencies. For example, the `@bazel_skylib` library is a development-time transitive dependency, while an npm package would have that dependency statically linked in. + +> This differs from much of the Bazel ecosystem, where you are expected to build the whole transitive toolchain from sources. + +If you have a small change, it's easiest to just patch the distributed artifacts rather than build from source. However if you're doing active development in rules_nodejs or have a policy of not depending on release artifacts, it's possible to depend directly on sources. This is not yet documented; file an issue on our repo if you think you need this. + +## Patching the npm packages + +The pattern we use most commonly is to add a `postinstall` hook to your `package.json` that patches files after they've been fetched from npm. + +See `/tools/postinstall-patches.js` in the [Angular repo] for an example. + +[Angular repo]: https://github.com/angular/angular/tree/master/tools/postinstall-patches.js + +## Patching the built-in release + +rules_nodejs has a distribution format which is a tgz published to GitHub, and this can make it tricky to make casual changes without forking the project and building your own release artifacts. + +Bazel has a handy patching mechanism that lets you easily apply a local patch to the release artifact for built-in rules: the `patches` attribute to `http_archive`. + +First, make your changes in a clone of the rules_nodejs repo. Export a patch file simply using `git diff`: + +```sh +git diff > my.patch +``` + +Then copy the patch file somewhere in your repo and point to it from your `WORKSPACE` file: + +```python +http_archive( + name = "build_bazel_rules_nodejs", + patch_args = ["-p1"], + patches = ["//path/to/my.patch"], + sha256 = "6d4edbf28ff6720aedf5f97f9b9a7679401bf7fca9d14a0fff80f644a99992b4", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/0.32.2/rules_nodejs-0.32.2.tar.gz"], +) +``` diff --git a/docs/css/BUILD.bazel b/docs/css/BUILD.bazel new file mode 100644 index 0000000000..89602d3b46 --- /dev/null +++ b/docs/css/BUILD.bazel @@ -0,0 +1,15 @@ +load("@io_bazel_rules_sass//:defs.bzl", "sass_binary", "sass_library") + +sass_library( + name = "scss", + srcs = glob(["_*.scss"]), +) + +sass_binary( + name = "css", + src = "main.scss", + visibility = ["//docs:__pkg__"], + deps = [ + ":scss", + ], +) diff --git a/docs/css/_be.scss b/docs/css/_be.scss new file mode 100644 index 0000000000..875c603ef2 --- /dev/null +++ b/docs/css/_be.scss @@ -0,0 +1,93 @@ +// Build Encyclopedia and Starlark Library + +pre.rule-signature { + white-space: normal; + word-wrap: break-word; + word-break: normal; +} + +colgroup { + .col-param { + width: 25%; + } + + .col-description { + width: 75%; + } +} + +$table-params-border-color: #81c784; +$table-params-head-color: #fff; +$table-params-body-bg-color: #e8f5e9; + +.table-params { + border: 1px solid $table-params-border-color; + + thead > tr > th { + color: $table-params-head-color; + border: 1px solid $table-params-border-color; + background-color: $table-params-border-color; + } + + tbody > tr > td { + background-color: $table-params-body-bg-color; + border: 1px solid $table-params-border-color; + } +} + +$table-implicit-border-color: #c0c0c0; +$table-implicit-head-color: #fff; +$table-implicit-body-bg-color: #f0f0f0; + +.table-implicit { + border: 1px solid $table-implicit-border-color; + + thead > tr > th { + color: $table-implicit-head-color; + border: 1px solid $table-implicit-border-color; + background-color: $table-implicit-border-color; + } + + tbody > tr > td { + background-color: $table-implicit-body-bg-color; + border: 1px solid $table-implicit-border-color; + } +} + + +$toc-border-color: #c8e6c9; +$toc-color: #757575; + +.toc { + border-left: 4px solid $toc-border-color; + padding-left: 18px; + margin-bottom: 20px; + + h1, + h2 { + font-size: 24px; + color: $toc-color; + margin-bottom: 12px; + } + + ul { + list-style: none; + padding-left: 0; + margin-top: 0; + + li { + line-height: 36px; + font-size: 16px; + font-weight: 400; + } + } +} + +// Command-line Reference +dt { + margin-top: .5em; +} + +dd { + margin-left: 2em; +} diff --git a/docs/css/_docs.scss b/docs/css/_docs.scss new file mode 100644 index 0000000000..ba92b4808f --- /dev/null +++ b/docs/css/_docs.scss @@ -0,0 +1,7 @@ +.gh-edit { + padding-top: 0px; +} + +.gh-edit.default-hidden { + visibility: hidden; +} diff --git a/docs/css/_footer.scss b/docs/css/_footer.scss new file mode 100644 index 0000000000..26e6319a8d --- /dev/null +++ b/docs/css/_footer.scss @@ -0,0 +1,25 @@ +// Footer styles + +$footer-background: #424242; +$footer-color: #fff; +$footer-link-color: #e0e0e0; + +.footer { + background-color: $footer-background; + color: $footer-color; + padding: 20px; + + .text-muted { + color: $footer-link-color; + } + + a { + color: $footer-link-color; + + &:hover, + &:focus { + color: $footer-color; + text-decoration: none; + } + } +} diff --git a/docs/css/_navbar.scss b/docs/css/_navbar.scss new file mode 100644 index 0000000000..42be12e0e1 --- /dev/null +++ b/docs/css/_navbar.scss @@ -0,0 +1,96 @@ +// Navbar styles +$navbar-bg-color: $bazel-green; +$navbar-hover-bg-color: $bazel-green-light; +$navbar-color: $color-on-bazel-green; +$navbar-hover-color: #444; +$navbar-input-bg-color: $bazel-green-light; +$navbar-input-focus-bg-color: $color-on-bazel-green; +$navbar-input-border-color: $bazel-green; + +.navbar-inverse { + margin-bottom: 0; + background-color: $navbar-bg-color; + border-bottom: 1px solid $navbar-bg-color; + + .navbar-brand { + .navbar-logo { + height: 22px; + } + } + + a.navbar-brand { + color: $navbar-color; + + &:focus, + &:hover { + color: $navbar-hover-color; + background-color: $navbar-bg-color; + } + } + + .navbar-nav > li > a { + color: $navbar-color; + + &:focus, + &:hover { + color: $navbar-hover-color; + background-color: $navbar-hover-bg-color; + } + + &.nav-icon { + font-size: 18px; + } + } + + .navbar-nav > li.active > a { + background-color: $navbar-hover-bg-color; + + &:focus, + &:hover { + background-color: $navbar-hover-bg-color; + } + } + + .navbar-form { + border-color: $navbar-bg-color; + + .input-sm { + margin-top: 2px; + } + + input[type="search"] { + background-color: $navbar-input-bg-color; + border-color: $navbar-input-border-color; + + &::placeholder { + color: $navbar-color; + } + + &:focus, + &:active { + background-color: $navbar-input-focus-bg-color; + } + } + } + + .navbar-toggle { + border: 1px solid $navbar-bg-color; + + &.active, + &:focus, + &:hover { + background-color: $navbar-hover-bg-color; + } + } + + .navbar-collapse { + border-color: $navbar-bg-color; + } +} + +@media (max-width: 768px) { + #cse-search-box { + margin-top: 0; + margin-bottom: 0; + } +} diff --git a/docs/css/_sidebar.scss b/docs/css/_sidebar.scss new file mode 100644 index 0000000000..cc863fd0be --- /dev/null +++ b/docs/css/_sidebar.scss @@ -0,0 +1,163 @@ +$sidebar-border-color: #dee2e6; + +$sidebar-hover-border-color: #66bb6a; + +.sidebar { + height: 99.9%; + border-right: 1px solid $sidebar-border-color; + background-color: rgba(67,160,71,.03); + padding-top: 40px; + padding-left: 1.5rem; + + // override parent row padding-left. bootstrap's default is 15px. + margin-left: -15px; + + li { + font-size: $font-size-base * .95; + } + + h4 { + padding-right: 1rem; + } + + ul.sidebar-nav { + list-style-type: none; + padding: 0; + + li { + &.sidebar-nav-heading { + padding: 10px 0; + margin: 0; + display: block; + font-size: 16px; + font-weight: $font-weight-light; + } + + ul { + li { + a { + color: #495057; + } + } + } + + a { + padding: 4px 1rem 4px 0; + display: block; + color: #222; + font-weight: $font-weight-normal; + + &:focus { + text-decoration: none; + } + + &:active, + &:hover { + border-right: 4px solid $sidebar-hover-border-color; + text-decoration: none; + } + + .caret { + float: right; + margin-top: 8px; + margin-right: 0px; + } + + } + + &.active { + a { + border-right: 4px solid $sidebar-hover-border-color; + font-weight: $font-weight-bold; + } + } + } + + ul.sidebar-nav { + padding-left: 10px; + } + } + + select { + padding: 3px 4px; + border: 2px solid $sidebar-border-color; + border-radius: 3px; + width: 80%; + } +} + +.sidebar-toggle { + margin-top: 50px; +} + +@media (max-width: 991px) { + .right-sidebar { + display: none; + } +} + +@media (min-width: 992px) { + .sidebar-toggle { + display: none; + } + + .sidebar { + &.collapse { + display: block; + } + } + + .sticky-sidebar { + @supports (position: sticky) { + position: sticky; + top: 50px; // equals height of navbar. + height: 100vh; + overflow-y: auto; + } + } +} + +.right-sidebar { + border-left: 1px solid $sidebar-border-color; + padding-top: 40px; + padding-bottom: 1rem; + + .gh-links { + padding-left: 22px; + list-style-type: none; + li { + padding-bottom: .4rem; + } + } + + a { + font-weight: $font-weight-normal; + } + + .toc-h2 { + padding-left: 0; + list-style-type: none; + + margin-top: .3rem; + line-height: 1.7; + font-size: $font-size-base * .95; + + a { + color: #444; + } + + ul { + padding-left: 0; + } + } + + .toc-h3 { + padding-left: 1em; + list-style-type: none; + line-height: 1.7; + + a { + color: #666; + } + } +} diff --git a/docs/css/_styles.scss b/docs/css/_styles.scss new file mode 100644 index 0000000000..47161b46fa --- /dev/null +++ b/docs/css/_styles.scss @@ -0,0 +1,254 @@ +// Base styles for all Bazel web assets. +// +// For consistency, this file should be identical across docs.bazel.build, +// blog.bazel.build and www.bazel.build. +// TODO(https://github.com/bazelbuild/bazel/issues/10793): Extract into single source of truth. + +// Heading sizes + +$font-size-base: 14px !default; + +$h1-font-size: $font-size-base * 2.25 !default; +$h2-font-size: $font-size-base * 2 !default; +$h3-font-size: $font-size-base * 1.5 !default; +$h4-font-size: $font-size-base * 1.35 !default; +$h5-font-size: $font-size-base * 1.15 !default; +$h6-font-size: $font-size-base !default; + +// Font weights + +$font-weight-light: 300 !default; +$font-weight-normal: 400 !default; +$font-weight-medium: 500 !default; +$font-weight-bold: 700 !default; + +$font-weight-body-text: $font-weight-normal !default; +$headings-font-weight: $font-weight-medium !default; + +// Bazel logo colors +$bazel-green: #43a047; +$bazel-green-light: #76d275; +$bazel-green-dark-left: #00701a; +$bazel-green-dark-right: #004300; +$color-on-bazel-green: #fff; + +$body-font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, +sans-serif; +$code-font-family: 'Monaco', 'Source Code Pro', monospace; + +$link-color: $bazel-green-dark-left; +$link-hover-color: lighten($link-color, 20%); +$well-color: #eee; +$code-color: #000; +$text-color: #000; + +$vpad: 0px; + +$table-bg: #fff; +$table-cell-padding: 5px; +$table-border-color: $bazel-green; +$text-muted: $color-on-bazel-green; +$line-height-base: 1.5; +$line-height-computed: 1.5; + +html { + position: relative; + min-height: 100%; + font-size: 100%; +} + +body { + padding-top: 50px; + color: $text-color; + font-family: $body-font-family; + line-height: $line-height-base; +} + +a { + color: $link-color; + font-weight: $font-weight-medium; + + &:hover, + &:focus { + color: $link-hover-color; + } + + code { + color: $link-color; + } +} + +h1, +h2, +h3, +h4, +h5, +h6 { + color: $text-color; + margin-top: 2rem; + margin-bottom: 1rem; +} + +h1 code, +h2 code, +h3 code, +h4 code, +h5 code, +h6 code { + color: $text-color; + background: transparent; +} + +h1 { + font-size: $h1-font-size; + font-weight: $font-weight-bold; +} + +h2 { + font-size: $h2-font-size; + + code { + font-size: 24px; + } +} + +h3 { + font-size: $h3-font-size; + + code { + font-size: 20px; + } +} + +h4 { + font-size: $h4-font-size; + + code { + font-size: 18px; + } +} + +h5 { + font-size: $h5-font-size; +} + +h6 { + font-size: $h6-font-size; +} + +p, +li { + font-size: $font-size-base; + line-height: $line-height-base; +} + +pre { + padding: 8px 16px; + margin: 8px 0; + font-family: $code-font-family; + background-color: $well-color; + border: 0; + font-size: 100%; + line-height: 20px; + color: $code-color; + border-radius: 6px; + box-shadow: 1px 1px 5px #aaa; +} + +code { + font-family: $code-font-family; + font-size: 13px; + background-color: $well-color; + color: $code-color; +} + + +// Imitate material design buttons +.btn-lg { + font-size: 14px; + text-transform: uppercase; +} + +$md-shadow-1: rgba(0, 0, 0, .14); +$md-shadow-2: rgba(0, 0, 0, .2); +$md-shadow-3: rgba(0, 0, 0, .12); + + +@media (min-width: 768px) { + .container { + width: 100%; + max-width: 100%; + } +} + +@media (min-width: 992px) { + .content { + max-width: 100%; + width: 100%; + } +} + +.content { + overflow: auto; + padding: 40px 10px; + p { + line-height: 22px; + margin-bottom: 1rem; + } +} + +.btn-success { + border-radius: 2px; + box-shadow: 0 2px 2px 0 $md-shadow-1, 0 3px 1px -2px $md-shadow-2, 0 1px 5px 0 $md-shadow-3; + border: 0; +} + +.well { + background-color: $well-color; + border-color: $well-color; + box-shadow: none; +} + +// Shared +.vpad { + padding-top: $vpad; +} + +.page-title-bar { + background-color: $bazel-green-light; + padding-top: 20px; + padding-bottom: 20px; + + h1, + h2, + h3, + h4, + h5, + h6 { + margin: 8px 0 4px; + color: $color-on-bazel-green; + } +} + +.gsc-control-cse { + *, + *::before, + *::after { + -webkit-box-sizing: content-box !important; + -moz-box-sizing: content-box !important; + box-sizing: content-box !important; + } +} + +// Used for the Command-line Reference flag anchors. Linkifying the flag name +// causes it to turn $link-color (green), but we turn it red here to be consistent +// with the rest of the code block. +dd > code > a, +dl > dt > code > a { + color: $code-color; +} + +dl > dt { + margin-top: 1.5rem; + margin-bottom: .5rem; +} diff --git a/docs/css/_syntax.scss b/docs/css/_syntax.scss new file mode 100644 index 0000000000..56f2c787a1 --- /dev/null +++ b/docs/css/_syntax.scss @@ -0,0 +1,89 @@ +// +// Copyright 2015 Google +// +// Generated using Base16 Builder +// (https://github.com/chriskempson/base16-builder) + +$base00: #212121; // ---- +$base01: #424242; // --- +$base02: #616161; // -- +$base03: #757575; // - +$base04: #9e9e9e; // + +$base05: #bdbdbd; // ++ +$base06: #e0e0e0; // +++ +$base07: #eee; // ++++ + +$base08: #f44336; // red +$base09: #ff9800; // orange +$base0A: #ffc107; // yellow +$base0B: #4caf50; // green +$base0C: #009688; // aqua +$base0D: #2196f3; // blue +$base0E: #9c27b0; // purple +$base0F: #795548; // brown + +.highlight .hll { background-color: $base06 } +.highlight { background: $base07; color: $base00 } +.highlight .c { color: $base04 } // Comment +.highlight .err { color: $base08 } // Error +.highlight .k { color: $base0E } // Keyword +.highlight .l { color: $base09 } // Literal +.highlight .n { color: $base00 } // Name +.highlight .o { color: $base0C } // Operator +.highlight .p { color: $base00 } // Punctuation +.highlight .cm { color: $base04 } // Comment.Multiline +.highlight .cp { color: $base04 } // Comment.Preproc +.highlight .c1 { color: $base04 } // Comment.Single +.highlight .cs { color: $base04 } // Comment.Special +.highlight .gd { color: $base08 } // Generic.Deleted +.highlight .ge { font-style: italic } // Generic.Emph +.highlight .gh { color: $base00; font-weight: bold } // Generic.Heading +.highlight .gi { color: $base0B } // Generic.Inserted +.highlight .gp { color: $base04; font-weight: bold } // Generic.Prompt +.highlight .gs { font-weight: bold } // Generic.Strong +.highlight .gu { color: $base0C; font-weight: bold } // Generic.Subheading +.highlight .kc { color: $base0E } // Keyword.Constant +.highlight .kd { color: $base0E } // Keyword.Declaration +.highlight .kn { color: $base0C } // Keyword.Namespace +.highlight .kp { color: $base0E } // Keyword.Pseudo +.highlight .kr { color: $base0E } // Keyword.Reserved +.highlight .kt { color: $base0A } // Keyword.Type +.highlight .ld { color: $base0B } // Literal.Date +.highlight .m { color: $base09 } // Literal.Number +.highlight .s { color: $base0B } // Literal.String +.highlight .na { color: $base0D } // Name.Attribute +.highlight .nb { color: $base00 } // Name.Builtin +.highlight .nc { color: $base0A } // Name.Class +.highlight .no { color: $base08 } // Name.Constant +.highlight .nd { color: $base0C } // Name.Decorator +.highlight .ni { color: $base00 } // Name.Entity +.highlight .ne { color: $base08 } // Name.Exception +.highlight .nf { color: $base0D } // Name.Function +.highlight .nl { color: $base00 } // Name.Label +.highlight .nn { color: $base0A } // Name.Namespace +.highlight .nx { color: $base0D } // Name.Other +.highlight .py { color: $base00 } // Name.Property +.highlight .nt { color: $base0C } // Name.Tag +.highlight .nv { color: $base08 } // Name.Variable +.highlight .ow { color: $base0C } // Operator.Word +.highlight .w { color: $base00 } // Text.Whitespace +.highlight .mf { color: $base09 } // Literal.Number.Float +.highlight .mh { color: $base09 } // Literal.Number.Hex +.highlight .mi { color: $base09 } // Literal.Number.Integer +.highlight .mo { color: $base09 } // Literal.Number.Oct +.highlight .sb { color: $base0B } // Literal.String.Backtick +.highlight .sc { color: $base00 } // Literal.String.Char +.highlight .sd { color: $base04 } // Literal.String.Doc +.highlight .s2 { color: $base0B } // Literal.String.Double +.highlight .se { color: $base09 } // Literal.String.Escape +.highlight .sh { color: $base0B } // Literal.String.Heredoc +.highlight .si { color: $base09 } // Literal.String.Interpol +.highlight .sx { color: $base0B } // Literal.String.Other +.highlight .sr { color: $base0B } // Literal.String.Regex +.highlight .s1 { color: $base0B } // Literal.String.Single +.highlight .ss { color: $base0B } // Literal.String.Symbol +.highlight .bp { color: $base00 } // Name.Builtin.Pseudo +.highlight .vc { color: $base08 } // Name.Variable.Class +.highlight .vg { color: $base08 } // Name.Variable.Global +.highlight .vi { color: $base08 } // Name.Variable.Instance +.highlight .il { color: $base09 } // Literal.Number.Integer.Long diff --git a/docs/css/_tables.scss b/docs/css/_tables.scss new file mode 100644 index 0000000000..fe4edd7cf0 --- /dev/null +++ b/docs/css/_tables.scss @@ -0,0 +1,63 @@ +// Bootstrap requires tables to carry a .table class in order for styling to +// be applied. However, redcarpet emits table elements without the class and +// it is not possible to customize it. +// +// Ideally, we would use a SASS directive to make the table element inherit +// the formatting defined by the bootstrap templates... but we cannot do so +// at the moment because we don't build bootstrap ourselves from its SASS +// sources. Therefore, this file just borrows the minimal amount of code +// from bootstrap 3.3.7 to render tables nicely. + +caption { + padding-top: $table-cell-padding; + padding-bottom: $table-cell-padding; + color: $text-muted; + text-align: left; +} + +th { + text-align: left; +} + +// Baseline styles + +table { + background-color: $table-bg; + width: 100%; + max-width: 100%; + margin-bottom: $line-height-computed; + // Cells + > thead, + > tbody, + > tfoot { + > tr { + > th, + > td { + padding: $table-cell-padding; + line-height: $line-height-base; + vertical-align: top; + border-top: 1px solid $table-border-color; + } + } + } + // Bottom align for column headings + > thead > tr > th { + vertical-align: bottom; + border-bottom: 2px solid $table-border-color; + } + // Remove top border from thead by default + > caption + thead, + > colgroup + thead, + > thead:first-child { + > tr:first-child { + > th, + > td { + border-top: 0; + } + } + } + // Account for multiple tbody instances + > tbody + tbody { + border-top: 2px solid $table-border-color; + } +} diff --git a/docs/css/docs.css b/docs/css/docs.css deleted file mode 100644 index ab15dce0f3..0000000000 --- a/docs/css/docs.css +++ /dev/null @@ -1,212 +0,0 @@ -body { background-color: #fafafa; } - -img.responsive { max-width: 100%; height: auto; border: 1px solid #f5f5f5; } - -a { text-decoration: none; } - -pre, code { font-family: 'Liberation Mono', Consolas, Monaco, 'Andale Mono', monospace; } - -pre, pre.term { background-color: #fff; padding: 20px; overflow-x: auto; word-wrap: normal; border: 1px solid #f5f5f5; } -pre code, pre.term code { overflow-wrap: normal; white-space: pre; } - -pre.term { background-color: #424242; color: #fff; font-size: 90%; } -pre.term span.info { color: #81C784; } - -/* Override material styles */ -blockquote::before { - content: ""; -} - -/* Override material styles */ -blockquote::after { - content: ""; - margin-left: 0; -} - -blockquote { - border-left: 0.2em solid #4caf50; - padding-left: 1em; - margin-inline: 0; -} - -code { display: inline-block; font-size: 90%; white-space: pre-wrap; } - -.mdl-layout__content { display: -webkit-flex; display: -ms-flexbox; display: flex; -webkit-flex-direction: column; -ms-flex-flow: column; flex-direction: column; } - -.mdl-layout__content > *:not(.mdl-layout-spacer) { -webkit-flex: none; -ms-flex: none; flex: none; } - -footer #scroll-to-top { color: #fff; } - -p.lead { font-size: 20px; line-height: 32px; } - -img { margin: 20px 0; max-width: 100%; height: auto; } - -table { border-collapse: collapse; border-spacing: 0; background-color: #fff; table-layout: auto; } -table thead th { background-color: #fafafa; border: 1px solid #eee; color: #757575; padding: 12px 12px 12px 24px; vertical-align: top; } -table tbody td { border: 1px solid #eee; padding: 12px 12px 12px 24px; vertical-align: top; } - -table.params-table { width: 100%; } -table.params-table col.col-param { width: 25%; } -table.params-table col.col-description { width: 75%; } - -hr { margin-top: 80px; margin-bottom: 80px; } - -nav.toc { border-left: 5px solid #4caf50; padding-left: 20px; margin-bottom: 48px; } -nav.toc h1, nav.toc h2 { font-size: 15px; line-height: 16px; padding-bottom: 12px; margin-bottom: 0; font-weight: 400; color: #757575; } -nav.toc ul { list-style: none; margin-top: 0; padding-left: 0; } -nav.toc ul li { font-size: 20px; line-height: 40px; } -nav.toc ul li a { color: #4caf50; } - -.page-content { margin-left: auto; margin-right: auto; padding-top: 60px; padding-bottom: 60px; width: 760px; } -.page-content h1.page-title { font-size: 34px; font-weight: 400; line-height: 40px; margin-bottom: 30px; color: #4caf50; } -.page-content h1 { font-size: 24px; font-weight: 400; line-height: 40px; margin-bottom: 20px; color: #4caf50; } -.page-content h2 { font-size: 20px; font-weight: 400; line-height: 32px; margin-bottom: 20px; color: #4caf50; } -.page-content h3 { font-size: 18px; font-weight: 400; line-height: 32px; margin-bottom: 20px; color: #757575; } -.page-content h4 { font-size: 14px; font-weight: 400; line-height: 32px; margin-bottom: 20px; color: #757575; } - -@media (max-width: 768px) { .page-content { width: 360px; } } -@media (min-width: 768px) { .page-content { width: 760px; } } -@media (min-width: 1476px) { .page-content { width: 1160px; } } -.mdl-mini-footer { padding-left: 40px; } - -.mdl-layout__drawer { background-color: #fff; } -.mdl-layout__drawer .mdl-layout-title { border-bottom: 1px solid #e0e0e0; padding-left: 24px; } -.mdl-layout__drawer .mdl-layout-title a { text-decoration: none; color: #757575; font-weight: normal; } - -.drawer-nav ul { list-style: none; padding-left: 0; } -.drawer-nav ul li { display: block; padding: 0; } -.drawer-nav ul li ul li a { padding-left: 44px; font-weight: 400; } -.drawer-nav ul li span.drawer-nav-title { display: block; flex-shrink: 0; padding: 15px 0 15px 22px; margin: 0; font-weight: 600; color: #757575; line-height: 1em; text-decoration: none; } -.drawer-nav ul li a { display: block; flex-shrink: 0; padding: 15px 0 15px 22px; margin: 0; font-weight: 600; color: #757575; line-height: 1em; text-decoration: none; cursor: pointer; } -.drawer-nav ul li a:active, .drawer-nav ul li a:hover { background-color: #f0f0f0; } -.drawer-nav ul li.active a { color: #4caf50; font-weight: 500; } - -.highlight .hll { background-color: #e0e0e0; } - -.highlight { background: #eee; color: #212121; } - -.highlight .c { color: #757575; } - -.highlight .err { color: #f44336; } - -.highlight .k { color: #9c27b0; } - -.highlight .l { color: #ff9800; } - -.highlight .n { color: #212121; } - -.highlight .o { color: #009688; } - -.highlight .p { color: #212121; } - -.highlight .cm { color: #757575; } - -.highlight .cp { color: #757575; } - -.highlight .c1 { color: #757575; } - -.highlight .cs { color: #757575; } - -.highlight .gd { color: #f44336; } - -.highlight .ge { font-style: italic; } - -.highlight .gh { color: #212121; font-weight: bold; } - -.highlight .gi { color: #4caf50; } - -.highlight .gp { color: #757575; font-weight: bold; } - -.highlight .gs { font-weight: bold; } - -.highlight .gu { color: #009688; font-weight: bold; } - -.highlight .kc { color: #9c27b0; } - -.highlight .kd { color: #9c27b0; } - -.highlight .kn { color: #009688; } - -.highlight .kp { color: #9c27b0; } - -.highlight .kr { color: #9c27b0; } - -.highlight .kt { color: #ffc107; } - -.highlight .ld { color: #4caf50; } - -.highlight .m { color: #ff9800; } - -.highlight .s { color: #4caf50; } - -.highlight .na { color: #2196f3; } - -.highlight .nb { color: #212121; } - -.highlight .nc { color: #ffc107; } - -.highlight .no { color: #f44336; } - -.highlight .nd { color: #009688; } - -.highlight .ni { color: #212121; } - -.highlight .ne { color: #f44336; } - -.highlight .nf { color: #2196f3; } - -.highlight .nl { color: #212121; } - -.highlight .nn { color: #ffc107; } - -.highlight .nx { color: #2196f3; } - -.highlight .py { color: #212121; } - -.highlight .nt { color: #009688; } - -.highlight .nv { color: #f44336; } - -.highlight .ow { color: #009688; } - -.highlight .w { color: #212121; } - -.highlight .mf { color: #ff9800; } - -.highlight .mh { color: #ff9800; } - -.highlight .mi { color: #ff9800; } - -.highlight .mo { color: #ff9800; } - -.highlight .sb { color: #4caf50; } - -.highlight .sc { color: #212121; } - -.highlight .sd { color: #757575; } - -.highlight .s2 { color: #4caf50; } - -.highlight .se { color: #ff9800; } - -.highlight .sh { color: #4caf50; } - -.highlight .si { color: #ff9800; } - -.highlight .sx { color: #4caf50; } - -.highlight .sr { color: #4caf50; } - -.highlight .s1 { color: #4caf50; } - -.highlight .ss { color: #4caf50; } - -.highlight .bp { color: #212121; } - -.highlight .vc { color: #f44336; } - -.highlight .vg { color: #f44336; } - -.highlight .vi { color: #f44336; } - -.highlight .il { color: #ff9800; } diff --git a/docs/css/home.css b/docs/css/home.css deleted file mode 100644 index 779b275c1b..0000000000 --- a/docs/css/home.css +++ /dev/null @@ -1,173 +0,0 @@ -body { background-color: #fafafa; } - -img.responsive { max-width: 100%; height: auto; border: 1px solid #f5f5f5; } - -a { text-decoration: none; } - -pre, code { font-family: 'Liberation Mono', Consolas, Monaco, 'Andale Mono', monospace; } - -pre, pre.term { background-color: #fff; padding: 20px; overflow-x: auto; word-wrap: normal; border: 1px solid #f5f5f5; } -pre code, pre.term code { overflow-wrap: normal; white-space: pre; } - -pre.term { background-color: #424242; color: #fff; font-size: 90%; } -pre.term span.info { color: #81C784; } - -code { display: inline-block; font-size: 90%; white-space: pre-wrap; } - -.mdl-layout__content { display: -webkit-flex; display: -ms-flexbox; display: flex; -webkit-flex-direction: column; -ms-flex-flow: column; flex-direction: column; } - -.mdl-layout__content > *:not(.mdl-layout-spacer) { -webkit-flex: none; -ms-flex: none; flex: none; } - -footer #scroll-to-top { color: #fff; } - -.hero { background-color: #4caf50; color: #fff; padding-top: 40px; padding-bottom: 20px; } -.hero .mdl-cell { text-align: center; } -.hero h1 { font-size: 32px; font-weight: 300; } -.hero p.lead { font-size: 18px; font-weight: 300; } -.hero .mdl-button { margin-top: 10px; background-color: #fafafa; } - -.feature .mdl-grid { max-width: 1230px; } -.feature .mdl-cell { padding: 10px; } -.feature h1 { font-size: 28px; font-weight: 300; } - -.mdl-layout__drawer { background-color: #fff; } -.mdl-layout__drawer .mdl-layout-title { border-bottom: 1px solid #e0e0e0; padding-left: 24px; } -.mdl-layout__drawer .mdl-layout-title a { text-decoration: none; color: #757575; font-weight: normal; } - -.drawer-nav ul { list-style: none; padding-left: 0; } -.drawer-nav ul li { display: block; padding: 0; } -.drawer-nav ul li ul li a { padding-left: 44px; font-weight: 400; } -.drawer-nav ul li span.drawer-nav-title { display: block; flex-shrink: 0; padding: 15px 0 15px 22px; margin: 0; font-weight: 600; color: #757575; line-height: 1em; text-decoration: none; } -.drawer-nav ul li a { display: block; flex-shrink: 0; padding: 15px 0 15px 22px; margin: 0; font-weight: 600; color: #757575; line-height: 1em; text-decoration: none; cursor: pointer; } -.drawer-nav ul li a:active, .drawer-nav ul li a:hover { background-color: #f0f0f0; } -.drawer-nav ul li.active a { color: #4caf50; font-weight: 500; } - -.highlight .hll { background-color: #e0e0e0; } - -.highlight { background: #eee; color: #212121; } - -.highlight .c { color: #757575; } - -.highlight .err { color: #f44336; } - -.highlight .k { color: #9c27b0; } - -.highlight .l { color: #ff9800; } - -.highlight .n { color: #212121; } - -.highlight .o { color: #009688; } - -.highlight .p { color: #212121; } - -.highlight .cm { color: #757575; } - -.highlight .cp { color: #757575; } - -.highlight .c1 { color: #757575; } - -.highlight .cs { color: #757575; } - -.highlight .gd { color: #f44336; } - -.highlight .ge { font-style: italic; } - -.highlight .gh { color: #212121; font-weight: bold; } - -.highlight .gi { color: #4caf50; } - -.highlight .gp { color: #757575; font-weight: bold; } - -.highlight .gs { font-weight: bold; } - -.highlight .gu { color: #009688; font-weight: bold; } - -.highlight .kc { color: #9c27b0; } - -.highlight .kd { color: #9c27b0; } - -.highlight .kn { color: #009688; } - -.highlight .kp { color: #9c27b0; } - -.highlight .kr { color: #9c27b0; } - -.highlight .kt { color: #ffc107; } - -.highlight .ld { color: #4caf50; } - -.highlight .m { color: #ff9800; } - -.highlight .s { color: #4caf50; } - -.highlight .na { color: #2196f3; } - -.highlight .nb { color: #212121; } - -.highlight .nc { color: #ffc107; } - -.highlight .no { color: #f44336; } - -.highlight .nd { color: #009688; } - -.highlight .ni { color: #212121; } - -.highlight .ne { color: #f44336; } - -.highlight .nf { color: #2196f3; } - -.highlight .nl { color: #212121; } - -.highlight .nn { color: #ffc107; } - -.highlight .nx { color: #2196f3; } - -.highlight .py { color: #212121; } - -.highlight .nt { color: #009688; } - -.highlight .nv { color: #f44336; } - -.highlight .ow { color: #009688; } - -.highlight .w { color: #212121; } - -.highlight .mf { color: #ff9800; } - -.highlight .mh { color: #ff9800; } - -.highlight .mi { color: #ff9800; } - -.highlight .mo { color: #ff9800; } - -.highlight .sb { color: #4caf50; } - -.highlight .sc { color: #212121; } - -.highlight .sd { color: #757575; } - -.highlight .s2 { color: #4caf50; } - -.highlight .se { color: #ff9800; } - -.highlight .sh { color: #4caf50; } - -.highlight .si { color: #ff9800; } - -.highlight .sx { color: #4caf50; } - -.highlight .sr { color: #4caf50; } - -.highlight .s1 { color: #4caf50; } - -.highlight .ss { color: #4caf50; } - -.highlight .bp { color: #212121; } - -.highlight .vc { color: #f44336; } - -.highlight .vg { color: #f44336; } - -.highlight .vi { color: #f44336; } - -.highlight .il { color: #ff9800; } diff --git a/docs/css/main.css b/docs/css/main.css new file mode 100755 index 0000000000..5398c8f6b0 --- /dev/null +++ b/docs/css/main.css @@ -0,0 +1 @@ +html{position:relative;min-height:100%;font-size:100%}body{padding-top:50px;color:#000;font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;line-height:1.5}a{color:#00701a;font-weight:500}a:hover,a:focus{color:#00d632}a code{color:#00701a}h1,h2,h3,h4,h5,h6{color:#000;margin-top:2rem;margin-bottom:1rem}h1 code,h2 code,h3 code,h4 code,h5 code,h6 code{color:#000;background:transparent}h1{font-size:31.5px;font-weight:700}h2{font-size:28px}h2 code{font-size:24px}h3{font-size:21px}h3 code{font-size:20px}h4{font-size:18.9px}h4 code{font-size:18px}h5{font-size:16.1px}h6{font-size:14px}p,li{font-size:14px;line-height:1.5}pre{padding:8px 16px;margin:8px 0;font-family:"Monaco","Source Code Pro",monospace;background-color:#eee;border:0;font-size:100%;line-height:20px;color:#000;border-radius:6px;box-shadow:1px 1px 5px #aaa}code{font-family:"Monaco","Source Code Pro",monospace;font-size:13px;background-color:#eee;color:#000}.btn-lg{font-size:14px;text-transform:uppercase}@media(min-width: 768px){.container{width:100%;max-width:100%}}@media(min-width: 992px){.content{max-width:100%;width:100%}}.content{overflow:auto;padding:40px 10px}.content p{line-height:22px;margin-bottom:1rem}.btn-success{border-radius:2px;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);border:0}.well{background-color:#eee;border-color:#eee;box-shadow:none}.vpad{padding-top:0px}.page-title-bar{background-color:#76d275;padding-top:20px;padding-bottom:20px}.page-title-bar h1,.page-title-bar h2,.page-title-bar h3,.page-title-bar h4,.page-title-bar h5,.page-title-bar h6{margin:8px 0 4px;color:#fff}.gsc-control-cse *,.gsc-control-cse *::before,.gsc-control-cse *::after{-webkit-box-sizing:content-box !important;-moz-box-sizing:content-box !important;box-sizing:content-box !important}dd>code>a,dl>dt>code>a{color:#000}dl>dt{margin-top:1.5rem;margin-bottom:.5rem}.footer{background-color:#424242;color:#fff;padding:20px}.footer .text-muted{color:#e0e0e0}.footer a{color:#e0e0e0}.footer a:hover,.footer a:focus{color:#fff;text-decoration:none}.navbar-inverse{margin-bottom:0;background-color:#43a047;border-bottom:1px solid #43a047}.navbar-inverse .navbar-brand .navbar-logo{height:22px}.navbar-inverse a.navbar-brand{color:#fff}.navbar-inverse a.navbar-brand:focus,.navbar-inverse a.navbar-brand:hover{color:#444;background-color:#43a047}.navbar-inverse .navbar-nav>li>a{color:#fff}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#444;background-color:#76d275}.navbar-inverse .navbar-nav>li>a.nav-icon{font-size:18px}.navbar-inverse .navbar-nav>li.active>a{background-color:#76d275}.navbar-inverse .navbar-nav>li.active>a:focus,.navbar-inverse .navbar-nav>li.active>a:hover{background-color:#76d275}.navbar-inverse .navbar-form{border-color:#43a047}.navbar-inverse .navbar-form .input-sm{margin-top:2px}.navbar-inverse .navbar-form input[type=search]{background-color:#76d275;border-color:#43a047}.navbar-inverse .navbar-form input[type=search]::placeholder{color:#fff}.navbar-inverse .navbar-form input[type=search]:focus,.navbar-inverse .navbar-form input[type=search]:active{background-color:#fff}.navbar-inverse .navbar-toggle{border:1px solid #43a047}.navbar-inverse .navbar-toggle.active,.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#76d275}.navbar-inverse .navbar-collapse{border-color:#43a047}@media(max-width: 768px){#cse-search-box{margin-top:0;margin-bottom:0}}.sidebar{height:99.9%;border-right:1px solid #dee2e6;background-color:rgba(67,160,71,.03);padding-top:40px;padding-left:1.5rem;margin-left:-15px}.sidebar li{font-size:13.3px}.sidebar h4{padding-right:1rem}.sidebar ul.sidebar-nav{list-style-type:none;padding:0}.sidebar ul.sidebar-nav li.sidebar-nav-heading{padding:10px 0;margin:0;display:block;font-size:16px;font-weight:300}.sidebar ul.sidebar-nav li ul li a{color:#495057}.sidebar ul.sidebar-nav li a{padding:4px 1rem 4px 0;display:block;color:#222;font-weight:400}.sidebar ul.sidebar-nav li a:focus{text-decoration:none}.sidebar ul.sidebar-nav li a:active,.sidebar ul.sidebar-nav li a:hover{border-right:4px solid #66bb6a;text-decoration:none}.sidebar ul.sidebar-nav li a .caret{float:right;margin-top:8px;margin-right:0px}.sidebar ul.sidebar-nav li.active a{border-right:4px solid #66bb6a;font-weight:700}.sidebar ul.sidebar-nav ul.sidebar-nav{padding-left:10px}.sidebar select{padding:3px 4px;border:2px solid #dee2e6;border-radius:3px;width:80%}.sidebar-toggle{margin-top:50px}@media(max-width: 991px){.right-sidebar{display:none}}@media(min-width: 992px){.sidebar-toggle{display:none}.sidebar.collapse{display:block}@supports(position: sticky){.sticky-sidebar{position:sticky;top:50px;height:100vh;overflow-y:auto}}}.right-sidebar{border-left:1px solid #dee2e6;padding-top:40px;padding-bottom:1rem}.right-sidebar .gh-links{padding-left:22px;list-style-type:none}.right-sidebar .gh-links li{padding-bottom:.4rem}.right-sidebar a{font-weight:400}.right-sidebar .toc-h2{padding-left:0;list-style-type:none;margin-top:.3rem;line-height:1.7;font-size:13.3px}.right-sidebar .toc-h2 a{color:#444}.right-sidebar .toc-h2 ul{padding-left:0}.right-sidebar .toc-h3{padding-left:1em;list-style-type:none;line-height:1.7}.right-sidebar .toc-h3 a{color:#666}.gh-edit{padding-top:0px}.gh-edit.default-hidden{visibility:hidden}caption{padding-top:5px;padding-bottom:5px;color:#fff;text-align:left}th{text-align:left}table{background-color:#fff;width:100%;max-width:100%;margin-bottom:1.5}table>thead>tr>th,table>thead>tr>td,table>tbody>tr>th,table>tbody>tr>td,table>tfoot>tr>th,table>tfoot>tr>td{padding:5px;line-height:1.5;vertical-align:top;border-top:1px solid #43a047}table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #43a047}table>caption+thead>tr:first-child>th,table>caption+thead>tr:first-child>td,table>colgroup+thead>tr:first-child>th,table>colgroup+thead>tr:first-child>td,table>thead:first-child>tr:first-child>th,table>thead:first-child>tr:first-child>td{border-top:0}table>tbody+tbody{border-top:2px solid #43a047}pre.rule-signature{white-space:normal;word-wrap:break-word;word-break:normal}colgroup .col-param{width:25%}colgroup .col-description{width:75%}.table-params{border:1px solid #81c784}.table-params thead>tr>th{color:#fff;border:1px solid #81c784;background-color:#81c784}.table-params tbody>tr>td{background-color:#e8f5e9;border:1px solid #81c784}.table-implicit{border:1px solid silver}.table-implicit thead>tr>th{color:#fff;border:1px solid silver;background-color:silver}.table-implicit tbody>tr>td{background-color:#f0f0f0;border:1px solid silver}.toc{border-left:4px solid #c8e6c9;padding-left:18px;margin-bottom:20px}.toc h1,.toc h2{font-size:24px;color:#757575;margin-bottom:12px}.toc ul{list-style:none;padding-left:0;margin-top:0}.toc ul li{line-height:36px;font-size:16px;font-weight:400}dt{margin-top:.5em}dd{margin-left:2em}.highlight .hll{background-color:#e0e0e0}.highlight{background:#eee;color:#212121}.highlight .c{color:#9e9e9e}.highlight .err{color:#f44336}.highlight .k{color:#9c27b0}.highlight .l{color:#ff9800}.highlight .n{color:#212121}.highlight .o{color:#009688}.highlight .p{color:#212121}.highlight .cm{color:#9e9e9e}.highlight .cp{color:#9e9e9e}.highlight .c1{color:#9e9e9e}.highlight .cs{color:#9e9e9e}.highlight .gd{color:#f44336}.highlight .ge{font-style:italic}.highlight .gh{color:#212121;font-weight:bold}.highlight .gi{color:#4caf50}.highlight .gp{color:#9e9e9e;font-weight:bold}.highlight .gs{font-weight:bold}.highlight .gu{color:#009688;font-weight:bold}.highlight .kc{color:#9c27b0}.highlight .kd{color:#9c27b0}.highlight .kn{color:#009688}.highlight .kp{color:#9c27b0}.highlight .kr{color:#9c27b0}.highlight .kt{color:#ffc107}.highlight .ld{color:#4caf50}.highlight .m{color:#ff9800}.highlight .s{color:#4caf50}.highlight .na{color:#2196f3}.highlight .nb{color:#212121}.highlight .nc{color:#ffc107}.highlight .no{color:#f44336}.highlight .nd{color:#009688}.highlight .ni{color:#212121}.highlight .ne{color:#f44336}.highlight .nf{color:#2196f3}.highlight .nl{color:#212121}.highlight .nn{color:#ffc107}.highlight .nx{color:#2196f3}.highlight .py{color:#212121}.highlight .nt{color:#009688}.highlight .nv{color:#f44336}.highlight .ow{color:#009688}.highlight .w{color:#212121}.highlight .mf{color:#ff9800}.highlight .mh{color:#ff9800}.highlight .mi{color:#ff9800}.highlight .mo{color:#ff9800}.highlight .sb{color:#4caf50}.highlight .sc{color:#212121}.highlight .sd{color:#9e9e9e}.highlight .s2{color:#4caf50}.highlight .se{color:#ff9800}.highlight .sh{color:#4caf50}.highlight .si{color:#ff9800}.highlight .sx{color:#4caf50}.highlight .sr{color:#4caf50}.highlight .s1{color:#4caf50}.highlight .ss{color:#4caf50}.highlight .bp{color:#212121}.highlight .vc{color:#f44336}.highlight .vg{color:#f44336}.highlight .vi{color:#f44336}.highlight .il{color:#ff9800}/*# sourceMappingURL=main.css.map */ diff --git a/docs/css/main.scss b/docs/css/main.scss new file mode 100644 index 0000000000..dbbbc40dcf --- /dev/null +++ b/docs/css/main.scss @@ -0,0 +1,11 @@ +// these styles are based on the main bazel.build site docs, with a few tweaks +// https://github.com/bazelbuild/bazel/tree/master/site/_sass + +@import "styles"; +@import "footer"; +@import "navbar"; +@import "sidebar"; +@import "docs"; +@import "tables"; +@import "be"; +@import "syntax"; diff --git a/docs/debugging.html b/docs/debugging.html new file mode 100755 index 0000000000..923850455d --- /dev/null +++ b/docs/debugging.html @@ -0,0 +1,329 @@ + + + + + + + + + + rules_nodejs - Debugging + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+ + +
+
+

Debugging

+ +

Add the options in the Support for debugging NodeJS tests section from https://github.com/bazelbuild/rules_nodejs/blob/master/common.bazelrc to your project’s .bazelrc file to add support for debugging NodeJS programs.

+ +

Using the --config=debug command line option with bazel will set a number of flags that are specified there are useful for debugging. See the comments under Support for debugging NodeJS tests for details on the flags that are set.

+ +

Use --config=debug with bazel test as follow,

+ +
bazel test --config=debug //test:...
+
+ +

or with bazel run,

+ +
bazel run --config=debug //test:test1
+
+ +

to also turn on the NodeJS inspector agent which will break before any user code starts. You should then see,

+ +
Executing tests from //test:test1
+-----------------------------------------------------------------------------
+Debugger listening on ws://127.0.0.1:9229/3f20777a-242c-4d18-b88b-5ed4b3fed61c
+For help, see: https://nodejs.org/en/docs/inspector
+
+ +

when the test is run.

+ +

To inspect with Chrome DevTools 55+, open chrome://inspect in a Chromium-based browser and attach to the waiting process. +A Chrome DevTools window should open and you should see Debugger attached. in the console.

+ +

See https://nodejs.org/en/docs/guides/debugging-getting-started/ for more details.

+ +

Debugging with VS Code

+ +

With the above configuration you can use VS Code as your debugger. +You will first need to configure your .vscode/launch.json:

+ +
{
+      "type": "node",
+      "request": "attach",
+      "name": "Attach nodejs_binary",
+      "internalConsoleOptions": "neverOpen",
+      "sourceMapPathOverrides": {
+        "../*": "${workspaceRoot}/*",
+        "../../*": "${workspaceRoot}/*",
+        "../../../*": "${workspaceRoot}/*",
+        "../../../../*": "${workspaceRoot}/*",
+        "../../../../../*": "${workspaceRoot}/*",
+        // do as many levels here as needed for your project
+      }
+
+

We use sourceMapPathOverrides here to rewrite the source maps produced by ts_library so that breakpoints line up with the source maps. +Once configured start your process with

+
bazel run --config=debug //test:test1
+
+

Then hit F5 which will start the VS Code debugger with the Attach nodejs_binary configuration. +VS Code will immediatenly hit a breakpoint to which you can continue and debug using all the normal debug features provided.

+ +
+
+ + +
+
+ +
+
+
+
+

© 2020 The rules_nodejs authors

+
+
+
+ +
+ + + + + + + + + + + + + + + diff --git a/docs/debugging.md b/docs/debugging.md new file mode 100644 index 0000000000..0cc6490ab2 --- /dev/null +++ b/docs/debugging.md @@ -0,0 +1,67 @@ +--- +title: Debugging +layout: default +toc: true +--- + +# Debugging + +Add the options in the `Support for debugging NodeJS tests` section from https://github.com/bazelbuild/rules_nodejs/blob/master/common.bazelrc to your project's `.bazelrc` file to add support for debugging NodeJS programs. + +Using the `--config=debug` command line option with bazel will set a number of flags that are specified there are useful for debugging. See the comments under `Support for debugging NodeJS tests` for details on the flags that are set. + +Use `--config=debug` with `bazel test` as follow, + +``` +bazel test --config=debug //test:... +``` + +or with `bazel run`, + +``` +bazel run --config=debug //test:test1 +``` + +to also turn on the NodeJS inspector agent which will break before any user code starts. You should then see, + +``` +Executing tests from //test:test1 +----------------------------------------------------------------------------- +Debugger listening on ws://127.0.0.1:9229/3f20777a-242c-4d18-b88b-5ed4b3fed61c +For help, see: https://nodejs.org/en/docs/inspector +``` + +when the test is run. + +To inspect with Chrome DevTools 55+, open `chrome://inspect` in a Chromium-based browser and attach to the waiting process. +A Chrome DevTools window should open and you should see `Debugger attached.` in the console. + +See https://nodejs.org/en/docs/guides/debugging-getting-started/ for more details. + +## Debugging with VS Code + +With the above configuration you can use VS Code as your debugger. +You will first need to configure your `.vscode/launch.json`: + +``` +{ + "type": "node", + "request": "attach", + "name": "Attach nodejs_binary", + "internalConsoleOptions": "neverOpen", + "sourceMapPathOverrides": { + "../*": "${workspaceRoot}/*", + "../../*": "${workspaceRoot}/*", + "../../../*": "${workspaceRoot}/*", + "../../../../*": "${workspaceRoot}/*", + "../../../../../*": "${workspaceRoot}/*", + // do as many levels here as needed for your project + } +``` +We use `sourceMapPathOverrides` here to rewrite the source maps produced by `ts_library` so that breakpoints line up with the source maps. +Once configured start your process with +``` +bazel run --config=debug //test:test1 +``` +Then hit `F5` which will start the VS Code debugger with the `Attach nodejs_binary` configuration. +VS Code will immediatenly hit a breakpoint to which you can continue and debug using all the normal debug features provided. diff --git a/docs/dependencies.html b/docs/dependencies.html new file mode 100755 index 0000000000..f511fbaeb2 --- /dev/null +++ b/docs/dependencies.html @@ -0,0 +1,547 @@ + + + + + + + + + + rules_nodejs - Dependencies + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+ + +
+
+

Dependencies

+ +

Bazel works alongside your existing package manager, either npm or yarn. +You manage your package.json file, editing by hand or by running commands like npm install or yarn add. +The package manager will also write a lock file, indicating exact versions for all transitive dependencies, which keeps your build hermetic and reproducible. +Bazel will run the package manager when the package.json or *lock.json files change, but you can also run the package manager yourself.

+ +

Bazel-managed vs self-managed dependencies

+ +

You have two options for managing your node_modules dependencies: Bazel-managed or self-managed.

+ +

With the Bazel-managed dependencies approach, Bazel is responsible for making sure that node_modules is +up to date with your package[-lock].json or yarn.lock files. This means Bazel will set it up when the +repository is first cloned, and rebuild it whenever it changes. With the yarn_install or npm_install +repository rules, Bazel will setup your node_modules for you in an external workspace named after the +repository rule. For example, a yarn_install(name = "npm", ...) will setup an external +workspace named @npm with the node_modules folder inside of it as well as generating targets for each +root npm package in node_modules for use as dependencies to other rules.

+ +

For Bazel to provide the strongest guarantees about reproducibility and the +fidelity of your build, it is recommended that you use Bazel-managed dependencies. +This approach also allows you to use the generated fine-grained npm package dependencies +which can significantly reduce the number of inputs to actions, making Bazel sand-boxing and +remote-execution faster if there are a large number of files under node_modules.

+ +
+

Note that as of Bazel 0.26, and with the recommended managed_directories attribute on the workspace rule in /WORKSPACE, +the Bazel-managed node_modules directory is placed in your workspace root in the standard location used by npm or yarn.

+
+ +

Using Bazel-managed dependencies

+ +

To have Bazel manage its own copy of node_modules, which is useful to avoid +juggling multiple toolchains, you can add one of the following to your WORKSPACE +file:

+ +

Using Yarn (preferred):

+ +
load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install")
+
+yarn_install(
+    name = "npm",
+    package_json = "//:package.json",
+    yarn_lock = "//:yarn.lock",
+)
+
+ +

Using NPM:

+ +
load("@build_bazel_rules_nodejs//:index.bzl", "npm_install")
+
+npm_install(
+    name = "npm",
+    package_json = "//:package.json",
+    package_lock_json = "//:package-lock.json",
+)
+
+ +
+

If you don’t need to pass any arguments to node_repositories, + you can skip calling that function. yarn_install and npm_install will do it by default.

+
+ +

You should now add the @npm workspace to the managed_directories option in the workspace rule at the top of the file. This tells Bazel that the node_modules directory is special and is managed by the package manager. +Add the workspace rule if it isn’t already in your /WORKSPACE file.

+ +
workspace(
+    name = "my_wksp",
+    managed_directories = {"@npm": ["node_modules"]},
+)
+
+ +

As of Bazel 0.26 this feature is still experimental, so also add this line to the .bazelrc to opt-in:

+ +
common --experimental_allow_incremental_repository_updates
+
+ +

yarn_install vs. npm_install

+ +

yarn_install is the preferred rule for setting up Bazel-managed dependencies for a number of reasons:

+ +
    +
  • yarn_install will use the global yarn cache by default which will improve your build performance (this can be turned off with the use_global_yarn_cache attribute)
  • +
  • npm has a known peer dependency hoisting issue that can lead to missing peer dependencies in some cases (see https://github.com/bazelbuild/rules_nodejs/issues/416)
  • +
+ +

Fine-grained npm package dependencies

+ +

You can then reference individual npm packages in your BUILD rules via:

+ +
load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary")
+
+nodejs_binary(
+    name = "bar",
+    data = [
+      "@npm//foo",
+      "@npm//baz",
+    ]
+    ...
+)
+
+ +

In this case, the bar nodejs_binary depends only the foo and baz npm packages +and all of their transitive deps.

+ +

For other rules such as jasmine_node_test, fine grained +npm dependencies are specified in the deps attribute:

+ +
jasmine_node_test(
+    name = "test",
+    ...
+    deps = [
+        "@npm//jasmine",
+        "@npm//foo",
+        "@npm//baz",
+        ...
+    ],
+)
+
+ +

Multiple sets of npm dependencies

+ +

If your workspace has multiple applications, each with their own package.json +and npm deps, yarn_install (or npm_install) can be called separately for +each.

+ +
workspace(
+    name = "my_wksp",
+    managed_directories = {
+        "@app1_npm": ["app1/node_modules"],
+        "@app2_npm": ["app2/node_modules"],
+    },
+)
+
+yarn_install(
+    name = "app1_npm",
+    package_json = "//app1:package.json",
+    yarn_lock = "//app1:yarn.lock",
+)
+
+yarn_install(
+    name = "app2_npm",
+    package_json = "//app2:package.json",
+    yarn_lock = "//app2:yarn.lock",
+)
+
+ +

Your application would then reference its deps as (for example) @app1_npm//lodash, or @app2_npm//jquery.

+ +

Fine-grained npm package nodejs_binary targets

+ +

If an npm package lists one or more bin entry points in its package.json, +nodejs_binary targets will be generated for these.

+ +

For example, the protractor package has two bin entries in its package.json:

+ +
  "bin": {
+    "protractor": "bin/protractor",
+    "webdriver-manager": "bin/webdriver-manager"
+  },
+
+ +

These will result in two generated nodejs_binary targets in the @npm//protractor/bin +package (if your npm deps workspace is @npm):

+ +
    +
  • @npm//protractor/bin:protractor
  • +
  • @npm//protractor/bin:webdriver-manager
  • +
+ +

These targets can be used as executables for actions in custom rules or can +be run by Bazel directly. For example, you can run protractor with the +following:

+ +
$ bazel run @npm//protractor/bin:protractor
+
+ +

Note: These targets are in the protractor/bin package so they don’t +conflict with the targets to use in deps[]. For example, @npm//protractor:protractor +is target to use in deps[] while @npm//protractor/bin:protractor is the binary target.

+ +

Coarse node_modules dependencies

+ +

Using fine grained npm dependencies is recommended to minimize +the number of inputs to your rules. However, for backward compatibility +there are also filegroups defined by yarn_install and npm_install +that include all packages under node_modules and which can be used +with the node_modules attribute of nodejs rules.

+ +
    +
  • @npm//:node_modules includes all packages under node_modules as well as the .bin folder
  • +
+ +
load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary")
+
+nodejs_binary(
+    name = "bar",
+    node_modules = "@npm//:node_modules",
+)
+
+ +

Using self-managed dependencies

+ +

If you’d like to have Bazel use the node_modules directory you are managing, +then next you will create a BUILD.bazel file in your project root containing:

+ +
package(default_visibility = ["//visibility:public"])
+
+filegroup(
+    name = "node_modules",
+    srcs = glob(
+        include = ["node_modules/**/*"],
+        exclude = [
+          # Files under test & docs may contain file names that
+          # are not legal Bazel labels (e.g.,
+          # node_modules/ecstatic/test/public/中文/檔案.html)
+          "node_modules/test/**",
+          "node_modules/docs/**",
+          # Files with spaces are not allowed in Bazel runfiles
+          # See https://github.com/bazelbuild/bazel/issues/4327
+          "node_modules/**/* */**",
+          "node_modules/**/* *",
+        ],
+    ),
+)
+
+ +

The example in examples/user_managed_deps uses self-managed dependencies.

+ +

To use the Yarn package manager, which we recommend for its built-in +verification command, you can run:

+ +
$ bazel run @nodejs//:yarn_node_repositories
+
+ +

If you use npm instead, run:

+ +
$ bazel run @nodejs//:npm_node_repositories install
+
+ +

The @nodejs//:yarn_node_repositories and @nodejs//:npm_node_repositories targets will run yarn/npm on all of the +package.json contexts listed package_json attribute of the node_repositories +repository rule in your WORKSPACE file (node_repositories(package_json = [...])).

+ +

If there are multiple package.json contexts in this rule but you would like to +run the bazel managed yarn or npm on a single context this can be done +using the following targets:

+ +
$ bazel run @nodejs//:yarn -- <arguments passed to yarn>
+
+ +

If you use npm instead, run:

+ +
$ bazel run @nodejs//:npm -- <arguments passed to npm>
+
+ +

This will run yarn/npm in the current working directory. To add a package with the yarn add command, +for example, you would use:

+ +
$ bazel run @nodejs//:yarn -- add <package>
+
+ +

Note: the arguments passed to bazel run after -- are forwarded to the executable being run.

+ + +
+
+ + +
+
+ +
+
+
+
+

© 2020 The rules_nodejs authors

+
+
+
+ +
+ + + + + + + + + + + + + + + diff --git a/docs/dependencies.md b/docs/dependencies.md new file mode 100644 index 0000000000..582e5cb3b3 --- /dev/null +++ b/docs/dependencies.md @@ -0,0 +1,277 @@ +--- +title: Dependencies +layout: default +toc: true +--- + +# Dependencies + +Bazel works alongside your existing package manager, either npm or yarn. +You manage your `package.json` file, editing by hand or by running commands like `npm install` or `yarn add`. +The package manager will also write a lock file, indicating exact versions for all transitive dependencies, which keeps your build hermetic and reproducible. +Bazel will run the package manager when the `package.json` or `*lock.json` files change, but you can also run the package manager yourself. + +## Bazel-managed vs self-managed dependencies + +You have two options for managing your `node_modules` dependencies: Bazel-managed or self-managed. + +With the Bazel-managed dependencies approach, Bazel is responsible for making sure that `node_modules` is +up to date with your `package[-lock].json` or `yarn.lock` files. This means Bazel will set it up when the +repository is first cloned, and rebuild it whenever it changes. With the `yarn_install` or `npm_install` +repository rules, Bazel will setup your `node_modules` for you in an external workspace named after the +repository rule. For example, a `yarn_install(name = "npm", ...)` will setup an external +workspace named `@npm` with the `node_modules` folder inside of it as well as generating targets for each +root npm package in `node_modules` for use as dependencies to other rules. + +For Bazel to provide the strongest guarantees about reproducibility and the +fidelity of your build, it is recommended that you use Bazel-managed dependencies. +This approach also allows you to use the generated fine-grained npm package dependencies +which can significantly reduce the number of inputs to actions, making Bazel sand-boxing and +remote-execution faster if there are a large number of files under `node_modules`. + +> Note that as of Bazel 0.26, and with the recommended `managed_directories` attribute on the `workspace` rule in `/WORKSPACE`, +> the Bazel-managed `node_modules` directory is placed in your workspace root in the standard location used by npm or yarn. + +## Using Bazel-managed dependencies + +To have Bazel manage its own copy of `node_modules`, which is useful to avoid +juggling multiple toolchains, you can add one of the following to your `WORKSPACE` +file: + +Using Yarn (preferred): + +```python +load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") + +yarn_install( + name = "npm", + package_json = "//:package.json", + yarn_lock = "//:yarn.lock", +) +``` + +Using NPM: + +```python +load("@build_bazel_rules_nodejs//:index.bzl", "npm_install") + +npm_install( + name = "npm", + package_json = "//:package.json", + package_lock_json = "//:package-lock.json", +) +``` + +> If you don't need to pass any arguments to `node_repositories`, + you can skip calling that function. `yarn_install` and `npm_install` will do it by default. + +You should now add the `@npm` workspace to the `managed_directories` option in the `workspace` rule at the top of the file. This tells Bazel that the `node_modules` directory is special and is managed by the package manager. +Add the `workspace` rule if it isn't already in your `/WORKSPACE` file. + +```python +workspace( + name = "my_wksp", + managed_directories = {"@npm": ["node_modules"]}, +) +``` + +As of Bazel 0.26 this feature is still experimental, so also add this line to the `.bazelrc` to opt-in: + +``` +common --experimental_allow_incremental_repository_updates +``` + +### yarn_install vs. npm_install + +`yarn_install` is the preferred rule for setting up Bazel-managed dependencies for a number of reasons: + +* `yarn_install` will use the global yarn cache by default which will improve your build performance (this can be turned off with the `use_global_yarn_cache` attribute) +* npm has a known peer dependency hoisting issue that can lead to missing peer dependencies in some cases (see https://github.com/bazelbuild/rules_nodejs/issues/416) + +### Fine-grained npm package dependencies + +You can then reference individual npm packages in your `BUILD` rules via: + +```python +load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary") + +nodejs_binary( + name = "bar", + data = [ + "@npm//foo", + "@npm//baz", + ] + ... +) +``` + +In this case, the `bar` nodejs_binary depends only the `foo` and `baz` npm packages +and all of their transitive deps. + +For other rules such as `jasmine_node_test`, fine grained +npm dependencies are specified in the `deps` attribute: + +```python +jasmine_node_test( + name = "test", + ... + deps = [ + "@npm//jasmine", + "@npm//foo", + "@npm//baz", + ... + ], +) +``` + +### Multiple sets of npm dependencies + +If your workspace has multiple applications, each with their own `package.json` +and npm deps, `yarn_install` (or `npm_install`) can be called separately for +each. + +```python +workspace( + name = "my_wksp", + managed_directories = { + "@app1_npm": ["app1/node_modules"], + "@app2_npm": ["app2/node_modules"], + }, +) + +yarn_install( + name = "app1_npm", + package_json = "//app1:package.json", + yarn_lock = "//app1:yarn.lock", +) + +yarn_install( + name = "app2_npm", + package_json = "//app2:package.json", + yarn_lock = "//app2:yarn.lock", +) +``` + +Your application would then reference its deps as (for example) `@app1_npm//lodash`, or `@app2_npm//jquery`. + +### Fine-grained npm package nodejs_binary targets + +If an npm package lists one or more `bin` entry points in its `package.json`, +`nodejs_binary` targets will be generated for these. + +For example, the `protractor` package has two bin entries in its `package.json`: + +```json + "bin": { + "protractor": "bin/protractor", + "webdriver-manager": "bin/webdriver-manager" + }, +``` + +These will result in two generated `nodejs_binary` targets in the `@npm//protractor/bin` +package (if your npm deps workspace is `@npm`): + +* `@npm//protractor/bin:protractor` +* `@npm//protractor/bin:webdriver-manager` + +These targets can be used as executables for actions in custom rules or can +be run by Bazel directly. For example, you can run protractor with the +following: + +```sh +$ bazel run @npm//protractor/bin:protractor +``` + +Note: These targets are in the `protractor/bin` package so they don't +conflict with the targets to use in deps[]. For example, `@npm//protractor:protractor` +is target to use in deps[] while `@npm//protractor/bin:protractor` is the binary target. + +### Coarse node_modules dependencies + +Using fine grained npm dependencies is recommended to minimize +the number of inputs to your rules. However, for backward compatibility +there are also filegroups defined by `yarn_install` and `npm_install` +that include all packages under `node_modules` and which can be used +with the `node_modules` attribute of nodejs rules. + +* `@npm//:node_modules` includes all packages under `node_modules` as well as the `.bin` folder + +```python +load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary") + +nodejs_binary( + name = "bar", + node_modules = "@npm//:node_modules", +) +``` + +## Using self-managed dependencies + +If you'd like to have Bazel use the `node_modules` directory you are managing, +then next you will create a `BUILD.bazel` file in your project root containing: + +```python +package(default_visibility = ["//visibility:public"]) + +filegroup( + name = "node_modules", + srcs = glob( + include = ["node_modules/**/*"], + exclude = [ + # Files under test & docs may contain file names that + # are not legal Bazel labels (e.g., + # node_modules/ecstatic/test/public/中文/檔案.html) + "node_modules/test/**", + "node_modules/docs/**", + # Files with spaces are not allowed in Bazel runfiles + # See https://github.com/bazelbuild/bazel/issues/4327 + "node_modules/**/* */**", + "node_modules/**/* *", + ], + ), +) +``` + +The example in `examples/user_managed_deps` uses self-managed dependencies. + +To use the Yarn package manager, which we recommend for its built-in +verification command, you can run: + +```sh +$ bazel run @nodejs//:yarn_node_repositories +``` + +If you use npm instead, run: + +```sh +$ bazel run @nodejs//:npm_node_repositories install +``` + +The `@nodejs//:yarn_node_repositories` and `@nodejs//:npm_node_repositories` targets will run yarn/npm on all of the +package.json contexts listed `package_json` attribute of the `node_repositories` +repository rule in your WORKSPACE file (`node_repositories(package_json = [...])`). + +If there are multiple package.json contexts in this rule but you would like to +run the bazel managed yarn or npm on a single context this can be done +using the following targets: + +```sh +$ bazel run @nodejs//:yarn -- +``` + +If you use npm instead, run: + +```sh +$ bazel run @nodejs//:npm -- +``` + +This will run yarn/npm in the current working directory. To add a package with the `yarn add` command, +for example, you would use: + +```sh +$ bazel run @nodejs//:yarn -- add +``` + +Note: the arguments passed to `bazel run` after `--` are forwarded to the executable being run. + +[bazel instructions]: https://docs.bazel.build/versions/master/install.html diff --git a/docs/examples.html b/docs/examples.html new file mode 100755 index 0000000000..ac8dab72eb --- /dev/null +++ b/docs/examples.html @@ -0,0 +1,444 @@ + + + + + + + + + + rules_nodejs - Examples + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+ + +
+
+

Examples

+ +

Frameworks

+ +

Angular

+ +

Bazel can run any toolchain you want, so there is more than one way to use it with Angular. +See Alex’s post Angular ❤️ Bazel update for a longer explanation.

+ +

Architect: The first approach is the simplest: use Architect (aka. Angular CLI Builders). This is the build tool inside of Angular CLI, so your existing application will continue to work the same way, and you can still get support from the Angular team. This may be a good choice if your goal is just to include an Angular app in a full-stack Bazel build that includes your backend, and making the Angular build&test faster is not important for you.

+ +

However, it has the worst performance because the level of incrementality is only as fine as how many libs your application is composed from. +Bazel can only make a build more parallel and incremental if you express a wider dependency graph to it.

+ +

Example: examples/angular_bazel_architect

+ +

Google: This toolchain is what we originally advertised as “Angular Buildtools Convergence” (ABC). It is based on Google’s internal toolchain for building Angular, and has good performance characteristics. However it is harder to migrate to, because it doesn’t have good compatibility for existing applications.

+ +

The example has its own guide: examples/angular

+ +

View Engine: If you’re stuck on the older Angular compiler/runtime before Ivy, called View Engine, then your options are more limited. We don’t support Angular 9 + View Engine + Bazel.

+ +

Example: examples/angular_view_engine

+ +

Custom: Bazel is excellent for advanced use cases where you need to customize your toolchain. +Take any off-the-shelf tools, follow their README’s to call their CLI, and assemble them together in a custom way. +This lets you take advantage of the latest JS ecosystem innovations without waiting for tooling vendors to +assemble it all together for you.

+ +

React

+ +

Similar to the explanation above for Angular, Bazel is agnostic to what tools you choose to run on your project. +However, the benefits of using Bazel are unlocked as you adopt it as your build system. +We think the following examples show a typical migration of adopting Bazel:

+ +

create-react-app: If you run create-react-app, it will install a build system called react-scripts. +As a first step into Bazel, you can simply ask Bazel to wrap the existing build system. +This guarantees compatibility with your current code, and if your objective is just to include a frontend app into +a bigger full-stack Bazel build, this might be the final step in the migration. +However it will run react-scripts as a single Bazel action, which means that you gain no incrementality benefit. +So we expect for most applications this is just a first step.

+ +

The create-react-app example +shows how this will look. We suggest reading the README in that example, and also look at the commit history to that +directory as an illustration of how we started from create-react-app and added Bazel bits.

+ +

react-scripts-like: As a next step to make our Build more incremental and performant, we can replace the react-scripts build system with Bazel, but preserve compatibility as much as possible by having Bazel run +mostly the same tools with mostly identical configuration. We continue to transpile TS to JS using Babel, for example, +but we do it in a build step before invoking Webpack, just using the Babel CLI.

+ +

This is a good middle ground to get some benefits from Bazel while staying on the same supported tools as react-scripts.

+ +

TODO(alexeagle): build an example illustrating how this looks

+ +

custom: If you really know your JS build tools, Bazel is the perfect way to assemble all the myriad individual tools +into a custom toolchain. This allows you to unlock any part of the JS ecosystem without waiting for it to be integrated +for you by maintainers of a project like create-react-app, who have a very high bar for adding features since the +maintenance and support burden falls on them. However you’ll need to understand both the tools as well as Bazel to +successfully build your own toolchain.

+ +

There is a basic example at examples/react_webpack but it needs a lot more work to show everything that is possible!

+ +

Vue

+ +

We don’t have a dedicated example yet, but Vue has been known to work. Follow https://github.com/bazelbuild/rules_nodejs/issues/1840 for an example.

+ +

Svelte

+ +

None yet, please file an issue if you need this.

+ +

Test Runners

+ +

Jest

+ +

There is a dedicated example for Jest: examples/jest

+ +

Cypress

+ +

We have done some early work to run Cypress under Bazel. Follow https://github.com/bazelbuild/rules_nodejs/issues/1904 for an example.

+ +

Mocha

+ +

Example at examples/webapp has a simple mocha_test

+ +

Karma and Protractor

+ +

See Protractor usage in examples/app

+ +

Bundlers

+ +

Webpack

+ +

See examples/react_webpack

+ +

Rollup

+ +

The example at examples/webapp uses Rollup, and produces an app with ES5 and ES2015 variants (“differential loading”) that gives faster loading in modern browsers without dropping support for legacy ones.

+ +

Parcel

+ +

The example in examples/parcel shows how to write a custom rule, it happens to use the parcel binary to build. It’s a very minimal example but might be enough to get you started.

+ +

Language tooling

+ +

LESS, Sass, Stylus

+ +

See styles directory inside the examples/app example.

+ +

TypeScript

+ +

Most of the examples show TypeScript usage. Also look in packages/typescript/test for lots of handling of edge cases.

+ +

Kotlin

+ +

The Kotlin language can compile to JS. The result has a very large stdlib JS payload, so we don’t recommend this for most uses.

+ +

Example at examples/kotlin

+ +

Google Closure Compiler

+ +

rules_closure is a whole-cloth approach to using Bazel if you’re fully bought-into the Closure ecosystem.

+ +

examples/closure shows a very simple way to call the closure compiler without jumping into that ecosystem.

+ +

Protocol Buffers and gRPC

+ +

Note: this is considered a “labs” feature in rules_nodejs, so support and stability are not great. gRPC is still a WIP.

+ +

See examples/protocol_buffers

+ +

Bazel-specific

+ +

Bazel Persistent Workers

+ +

If you want to speed up Bazel by keeping some tools running warm in the background as daemons, there’s a good readme in the examples/worker

+ +
+
+ + +
+
+ +
+
+
+
+

© 2020 The rules_nodejs authors

+
+
+
+ +
+ + + + + + + + + + + + + + + diff --git a/docs/examples.md b/docs/examples.md index f56e334d48..2e4fd2a1ef 100644 --- a/docs/examples.md +++ b/docs/examples.md @@ -1,12 +1,13 @@ --- title: Examples layout: default -stylesheet: docs +toc: true --- +# Examples -# Frameworks +## Frameworks -## Angular +### Angular Bazel can run any toolchain you want, so there is more than one way to use it with Angular. See Alex's post [Angular ❤️ Bazel update](https://dev.to/bazel/angular-bazel-leaving-angular-labs-51ja) for a longer explanation. @@ -31,7 +32,7 @@ Take any off-the-shelf tools, follow their README's to call their CLI, and assem This lets you take advantage of the latest JS ecosystem innovations without waiting for tooling vendors to assemble it all together for you. -## React +### React Similar to the explanation above for Angular, Bazel is agnostic to what tools you choose to run on your project. However, the benefits of using Bazel are unlocked as you adopt it as your build system. @@ -64,76 +65,76 @@ successfully build your own toolchain. There is a basic example at [examples/react_webpack](https://github.com/bazelbuild/rules_nodejs/tree/stable/examples/react_webpack) but it needs a lot more work to show everything that is possible! -## Vue +### Vue We don't have a dedicated example yet, but Vue has been known to work. Follow https://github.com/bazelbuild/rules_nodejs/issues/1840 for an example. -## Svelte +### Svelte None yet, please file an issue if you need this. -# Test Runners +## Test Runners -## Jest +### Jest There is a dedicated example for Jest: [examples/jest](https://github.com/bazelbuild/rules_nodejs/tree/stable/examples/jest) -## Cypress +### Cypress We have done some early work to run Cypress under Bazel. Follow https://github.com/bazelbuild/rules_nodejs/issues/1904 for an example. -## Mocha +### Mocha Example at [examples/webapp](https://github.com/bazelbuild/rules_nodejs/tree/stable/examples/webapp) has a simple `mocha_test` -## Karma and Protractor +### Karma and Protractor See Protractor usage in [examples/app](https://github.com/bazelbuild/rules_nodejs/blob/master/examples/app/) -# Bundlers +## Bundlers -## Webpack +### Webpack See [examples/react_webpack](https://github.com/bazelbuild/rules_nodejs/tree/stable/examples/react_webpack) -## Rollup +### Rollup The example at [examples/webapp](https://github.com/bazelbuild/rules_nodejs/tree/stable/examples/webapp) uses Rollup, and produces an app with ES5 and ES2015 variants ("differential loading") that gives faster loading in modern browsers without dropping support for legacy ones. -## Parcel +### Parcel The example in [examples/parcel](https://github.com/bazelbuild/rules_nodejs/tree/stable/examples/parcel) shows how to write a custom rule, it happens to use the parcel binary to build. It's a very minimal example but might be enough to get you started. -# Language tooling +## Language tooling -## LESS, Sass, Stylus +### LESS, Sass, Stylus See styles directory inside the [examples/app](https://github.com/bazelbuild/rules_nodejs/tree/stable/examples/app/styles) example. -## TypeScript +### TypeScript Most of the examples show TypeScript usage. Also look in [packages/typescript/test](https://github.com/bazelbuild/rules_nodejs/tree/stable/packages/typescript/test) for lots of handling of edge cases. -## Kotlin +### Kotlin The Kotlin language can compile to JS. The result has a very large stdlib JS payload, so we don't recommend this for most uses. Example at [examples/kotlin](https://github.com/bazelbuild/rules_nodejs/tree/stable/examples/kotlin) -## Google Closure Compiler +### Google Closure Compiler [rules_closure](https://github.com/bazelbuild/rules_closure) is a whole-cloth approach to using Bazel if you're fully bought-into the Closure ecosystem. [examples/closure](https://github.com/bazelbuild/rules_nodejs/tree/stable/examples/closure) shows a very simple way to call the closure compiler without jumping into that ecosystem. -## Protocol Buffers and gRPC +### Protocol Buffers and gRPC Note: this is considered a "labs" feature in rules_nodejs, so support and stability are not great. gRPC is still a WIP. See [examples/protocol_buffers](https://github.com/bazelbuild/rules_nodejs/tree/stable/examples/protocol_buffers) -# Bazel-specific +## Bazel-specific -## Bazel Persistent Workers +### Bazel Persistent Workers If you want to speed up Bazel by keeping some tools running warm in the background as daemons, there's a good readme in the [examples/worker](https://github.com/bazelbuild/rules_nodejs/tree/stable/examples/worker) diff --git a/docs/images/bazel-icon.png b/docs/images/bazel-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ac74e82c44669cf39254e6a6837a7d57d16f0aa7 GIT binary patch literal 4945 zcmdT|e^3|0m zf1vzoVy#s}!K76z)i@PH#;A9#^)78DN~4w$Jj7lmk)XiIuT##we!p*bnPk+-k2W)g zf9`JI_xt&^@4bD?w!{SqBSOcA5<*7Id&aVe5Ej0&gc|}MJ^2@I!^gN>YfA2Ow&l5b z8Lwm#^NY4$X6omy%E-!Gl$r73`qlr)oJ+{4?s*pT&-0tEyUis#*J_!MTw0J==i38rA-Iy8*ZMt-h6x^yQlC#dw2a8J6dNa z6{se7YA(OEq5szP=7k2*G%;{1qSAgb*)~RO9I9hn+CW*Oc(Lz#^VYOe{TG*2g+<4R z$x8Ok=B^@LNSrR@gaVJp5LZo_H9{DYbJZ(lGEX zif2#x5{Q$}u#mbq(O@F!ek<8jZs*iQ%WKF!;7}1~n#yzyuo=NSmQlw(xMkWv11Mw( zsE!h^S_I+%)ifKl1vc~~3gV){fjzXt5l;n&Wh%j&pu#fN;fsWJh&+JUnoY6zfg=UEs~X` zX_$LTE0!DrjNpw?WFrI!EtUZ37y<$Xx}$*d*w>L2D>*=%2zY3*}MIZD(^6k1*_ zX)ZO&FixGt^gLP?ydfI(7_^FQn}X3WmS@n^u`J~QC~GJLQ8lBPMEe3RoMT`rQ}1v*+#b1_^H+LWRPs|ktf(O5{Hm%oF%HY%&?)tB_AI* z&~f}qOm<^#tb1u{YI~_My3;w8jqezk^ujOx{%+6NvnL;$w)8|->X5QM_H&h$1Ic}T zePzaIG3oQY$BV08dxVMFJs~%*<8r%&M8BH2ytBLN^y!YjcIezw*@DRpU8$9}oZaMi zdv#+q*oTRMd@ zhz+r-96lF+kkPZ%XU!TWs>7T1Dk&y4YZ5J_G|wM0lxWD>u-Og}v8hKd21U#EBm(>?XI@Hba5RDd&$W9Empn-Y|uH ziRVgzqUyr9z$hqsIT2k6^-Da5ehVUnqE}KrYn;k>>t`U zp?;5;l>BBu(k;|aAr>L|b-1ftNe~`^JJ)(B6as>q<46sMoM{|TMZ!W2#I~6BSxC#D zAokgli^++_G&MDoUkmf2wOTI$Im~7WNGRGU1BC=bt}>7#wHN8ID!-P)oHue^NgAM| z0t`qe2`DBZXJ7^aI?>4J#Gs&C6m+PP(ACVKOr>0+p{|s2pb6Hr9-=g%21lw@awXJn zmtEPyWmhdzz}4)@diKO(mB786Xp;1{Rtumv7?m&p6bd00u>cefKq0{v^odG}F)%$l z;UUXlIU0uW5EMqk83a``KqJ`$8p$5U@^+*W(BG(Ky!KtcX?YdNppoPZ%G+dBgnl32 zFw2ux$Ymx?xFHoRCq`nBKgsPmLS+-N8^cG#s07p?w3^xFqE4199zqYsYi zmUa&$HFvkwy>|1{>YwCwyp-495flYGuFv%=%##@o)-!)#oJj=5b%gG{Po zI8H?bt_~NCL8BN0JZ_xED42$Ds<3-UjvyLrv-zJItZabWA(g=%3uQ1^#^d&-foGUU zNBIS>%eQriz^UOOHC^0Cb!hq0AAZ>L%9)#a>E^@V|Lg-WL-FelrcD7f-bnDvaZ1~ z>gR6FG8rTxli3v^sQxY?I_d|=DrhV+8Jrz41fZZHpdT6n`k^7neo(WXg~=Hs!d{1C zP95xiV2QfM>96H^J^04C3%;dMN{4QNE&;vCV{#^gQgDn)iTqkApkJ1f0Gl&Jd&L(C zj$jX@_ARha(nyHLlmeP)xq8g^TqbZ_3C=kUNP;~cCju!Jj$lkxb0@)@tE=tYcaVa|6xpkgU8c$Vr;Sb31+5NxO*w1J@w zENy^jV4JI8@EQW*61W>sPXWyou;@z)?gJ<(KsC5}_0RzCLZHCmD*^>5|0`^`{!sG0 z8>ID#_UP>TpRn#p?iq>XP93T(HKJM+g3C$|YEd~ZNKg)o0+hr08O-Va%A-VqHe;|3 zUl0Tf%^3Dq*|=}U#+6f2oY%nppnj0)htn=!JG?F;o+IDlFXvXW0I_C`c; + + + + + + + + + + + + diff --git a/docs/images/bazel-logo.png b/docs/images/bazel-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e43cfd0cea4e857f6fc11a5594593d6b1424358f GIT binary patch literal 12169 zcmeHtc|4Tw_xC;a?0gg|MvG5KmV~TBDy2dQDQ2WdmLb_=Mu-oILR1)~M6#6ZjhQTI z5h6wn#u6%wk!_eU_jBL0e7?`}dOgqY^?LsM`D3`vb)R#cbKckcoa4xUb4lyUkY};cn&ZBr;joXZ$2psG zu4hC2-<&f90QH@R_nX>Z!tG!3YF5Z~Bv zs%}b9kAekZ3#t1p*t4~@b>C+ZF5Azwgq+6|zTtvVmN&J-t zTpsKIUce&`rwAy{a(M^G&w zCtCvopan35hQnd!4A{wY(t!q&B|?6?F#B?JHrra?6Fs7!K@H8l|~$_uZEkPj8;mE}T)l|ik( z&iY`5>txT3n~OF9t?%FOsv!0GZ*RNA=$s~0mNqWTe_=9v4+{h1$bddy+{uX_w8;t5 zQa^T+BJeNdv>t2RzK~Qi8t9HGQ^K1~5azGsL2w_0{)KDdqtI z0l}Xs7OXqLj(~z2B9|xk0b^C+@%Y<_O;Z!}zP`RN)@~mm;Np4!QYE;iDk&3D_SulI zzU-a=fIrHMm&D(M*hN`)bRO-2e@<+P(mmvLrY(rho3FZj;gIKO9831tpx6X=gJ04YiDWK!{zeXQFbySg@V1@wX z{$pr}utLzfUOy!uH;>C?oylQ{ejuass&?z@2Dj7#|0&}`Vn0kw9Vh-J_robWF2E%2 zUzR~5asepqz?nvY9StoxDaauzYrePUf)mj?6U8+}2hxB_0Umsb;J@53@B?yXZ6olX zGbMJ{)YP1dLjd|JKpK!H1u?Avs1ddaii?maH?ZgZdA;2hx#msR_vDFy zU5X~mw;4&>BsjMVqen(YSZ*uBR6k-`WOz|Tzc+eje2cS^n^Z_&P?5u7ZyPG_?+VA$^~AVK#NOS8h~;I%J0T*jMjPt%P3M=f-@z! z>JR)HmV^(GqsNxYneAcAyY0uu#x|_%ff9}qgag>xjtB{HFW$?2M~h`sZl8qnecEa= ziow0M<1##AfSh}(L%#W+U!3CcUa;eOqQCsF(Mlv9$HS-AbHRat6^nCXaY{rUzb}Yi zx*A9fu_d31(#C7kizQ~Fe+J44yjI=7=Z*WvhbzEGq8g)VvKm~NXBlF1wp>m8ep(}^ z!h~VUg-{OXGH#=EfHkGgx;^0gMuOi2f(~4V2!JNI$c`_eQkW0Ee=He7emxu}h0*Pz z-sb)77jaIMypi|r_gsDje*4EVHTO*o4@*4csGH0%p=PrD7 z39V%xe$@exVX(bXoY7uMMt-9(Y#GdY(7z&$-ZJFf*ItIXE(Vut^-U9B63lJ=?|)(d zQ8_N4;5meFxDbfJ6Q`?^Y*h3)dv{18#swdhz5sx z?|T;@uaU<^UnW9;xz&l4rc&lG7rsH@cPyJZxxCUfH$KK>GRendKRELb&!T9CH05)< z1+uLuvE@yNLUt~G)TZP|sJoxt!j~7;{2~myT z95x9|GJwXK4Sg0AYOHPyJMlDkk4vrS=KPz3vv#6Ne5;d3!f<$zJCW$3EuC6u%IOqt z;2d~QV%JYmW>sVHnOhhIB3x>dDdSG!2wY7BF(9@KC!5;fA8I4|9R1FAp1= z9f#a(J*_Z*tn1i%0Bd|T)s%BlaL8;op}r)fxC-sXR+Xn2b-Z(Fe&BTpZ`VUi8bZ_He0yQxTCDMJ;gtCJ9G}v ze+gRNOBUGAB#q=5%NR^~Q7bTx=S)~DO^ZKHvck^Wui#s}4OA8ZcEP(cFQbb*?a9}*&He!4+?$!K?*-9cKF$qPShW3rlf8T+C3C`{{OO``fcl zjOzfNfs&qZ@AJJ{_1c4SfPD5K`Ia_U+q6?Ljk%Tq1wkojE$cy0juk%du$zbK;pXgF zZ)EKMXxj4O5YCAQFJ>#tRpGn?0$besSp#r3UH&SwUib5e-wq$2c&^;*l2DcK9Qug+ zUcuh(XAMZ9p=qbt!vS9* zF9fBIw=Lw|kjqfy=1`oDA;>fLzD$fq0Nt<@bc8b@3ux*yF&}k)(QGBn~$an zVD;!6q#P1Co&2@BX`6)RSKWdLVk|^}d!?kpB3@80k&M3gHqX>dd{E#u@rO`q-NP+WV}b+QZ&MEg}{*#s>@6YvI%ISRIIiC3bXeP>*%0{l zj9{50UK71(+lvxCNrz|md8~nJl@Lgki=mIGJqNTXSL~xnEJDKt!)dH$-6uyoE{$P` zy6m`=fD5}I3|YYY0)<#GEBe_>+6p!TraPF&74clT!@r!*A0`0C`7mknFLP;cyX9^H zqTCQsnjpxzN1zI?6Nd9w&*MeKQOMN5Xb$}d5DZ8_nMNDUF9mR`|I$(r>9;A7+U(rh zm*_OL8Hq#+Gpn2MxNg~-K8$Hct&bCU24Py?di1G1AYA>+hI`8|ePT-Lj&YRf(K*XB z`Hajv^>pDk7l=l5`3lS-O4R5pdt8mr#}K({`gr7wVU^cjK;Uy0 z_0F&%Pr13)IWn*T$7-d!0|eAUrRPE<_OmO-bpI5p@x}_B6V*YVd)J2g{VU zkD|9pLm_F`O1o8SjHI!FvbI0>klJ z^wfHjA#RxA<^J(fdAz|!h40oK*Ij1a&6b#7{L z1L5i2Z?iZp=ZUL9#Jiipa6uqU`M2*bDAes;|Kk=vL(!*#yJrP~EZu8q7P=uqa(U6+ zIrBk%hq*)6oy6|^8&*!;6mdUE+JIcwH**7DR7(F1r ztfnc5=lX3&+quY?c7=gVL9A}qVBmS0nJ^}pKXP*%qYo$iBbe$|kumbVQ?4nblz3@C z%=JUL0EQN*ytV4N+FS9roza)%dfP)q&ZF9(Ng0qY>{JZ@fX@ z_iEqiaHAJ1mp3xCt}&29dl&mbR?P zSdmkb>Mzo}u~BN#&hFrr-WD~rO^UczQUFvP{bY%b)W$sp{hJ!4siGXWm!*Bd89FVM zwSmi_1MR1|T6I^{4>^W2(ciXgo<3V2IXAe4iR~e0#%|4~#QP1B#68iLqd{Rt~Fe!lmt^>iW$!(W5T4md2aD z1!8vZR9Xz2tmMMqhN`MH`s%Qamw#{9lVRq=3hOYW1^HHu_!)d=(A?IQrMP>hpxEOB zB8qLr#n+$|r18e6Zs_dskCOHk)Ax8BEn<_n@bCT*;Yr~$ZttqY-DpL6`IQHwK5!OB z#+GL3<@K4qNk;5NN3ItmdAGFL<{H-xKs^dNGc8^(+Fy0|?b#Uu@rG(b*au04apA{X zJ$Mcv7~^V2{l6sR#v^;{Ii0R}l(4%kgQn)0Jhq3Z&G%h%n}R!E>;2wd&)K^RA)NNP=^yjL)6$e7 z;D}@Tzuhl%vsi%_otqov1xZoig!w}QUej+>|O0Ms!?>Vw5 zp6HswQZ@P^p3J|03nPE#vsL%t3lCAwQ3sXxaUIYS(Cq79l3@ea;a zD3rw2$Oo!i*oBwgfPj)7!h|W!an1cZ_=E9<#>VWMi|38q$~Lvny~-wrzyH*AJXmET zGdMyz*tqy;`(z_-GiAONTbHq+f6}akQLXiC*KrU3UGW6Z>(ey_EdcrxugSVx9;n7< z#ziGEaF05-4r&<5GYB?=gubbr96ETUQY+h|RfpXooZ~pBKAr%ctYU?KVPVi`?qP)YPVGgPcD+6xxuIO`bwxQx%mUg03xH4;VE@tf7gWA$-5W_ub0K8k zSXvk*I#LU8pNP(9OmXrbeiGHAZ=CMdnFpoxF%5IFhsVL3|5Pl0A;Hfnp-gk>I%Q zKf_1Pe%>u}ZbJXdZC<|$29ofyZzpGZfvDhqheH_gk2CW46i_JeX`1Pipu|&}y@-P2 zx%%!|oz9PLQh*?yy`?&Nin9>jN5?u{H)sy0b4bJGC8hj@eT8{Y@%?jnjC~p~YJn(t z7YO+3zs(Q?A#CcVbu-G3g2DO3i$=ZE%rNnTAY@Y_M=TB6M8!ajC~Gba1!uK6cRq4+ zBMwPjIq-ENppKM50!to&NT((6s56RBV|mK76g`HMQY7n=z+&dqj<%A2dgD9vTB_w(;KV(C9;<*pSXN50Tq{tUEn%(99elF=Y);rE%W z^9w3NTc8Lb$1-$}NHYywIAFrJC98bC(bTfYJtK7)&U~Z;9xbtLdB&A2>gL{l#%3Cc zYjB>|B;$-6ehIPOatYpc!u_Qoq{|MGl!Y#@o&84FcfCAQRKJu{|3nEPy6mEO8F0mE z@}@WE*PU@6da`v(I&WOzcIJx+Bl+_ZI@76_>9dbZp>XgADb=b0qOUd^Yq9GBE?LOx zc_qpwTy@<58LlEZf$C(p`e3$1JB>S||{iTB0#T0~D0o!;J&Ab3Hp zuhJvC-N?g)e|a*|Ul7b+V_ZZ!1g%eKXU>c}B87kw0)4o-!Bx+L`>4GN$-!DYaax(4 z-_n{Ond3|_+*fw@xMj5;qN96d zTNUW^$i6QGo0?wH2UuzGh7Fy=Ucpq#LEEv0K+QpyBSRkBy0Y!BN^{~WhjB<=U}e+% zyvJD8%{3SdA*=VV6R+FShy79NOT3k@k*vqWeKaJ{(eJJV&JYJYNs9&vc$ZPNyI18o zjaRy^eE%6-G?Tx?8fxrVb9rAgWKvWbaD7qrQ>m#do3G7c^=7G}K6Rw7OoVm22j=;x zn}=8`e4YT4i^fe!jHZvP&KzR=a@g5>3xhZ(36uI+zlTrzX(zom9VS9u8@MN=&gR~x zg7AIhaVKtL?Xd4eT+$T%D`?ni6nWEouiDyxzFTWE*ty0U(_^|ZxkqR*U}?7`l~ zK6Uh(=~vG>Qn7^hB7a_BakB1-UxrCuG!n~-NF>_nH>rR*+uW6gNDx_7zA76AWu=1Q zCL9dcA!KH{j!e^aKre_lu~^KZ2^`_XsJp%)ZRF8b4N4L{evKUru^nr7B5siu>}PwDyhP&}$qX^K zO4=pVfhGGESFegUq}t_koAVt`ODA`F?fz@z1#RNN(SLl(H`tP|p|O>vypLuvPjo9; z+<)R`CK)V5wXUK0<8zY7XX^xZe3PA+kCGqQTe2hh9ttS-~86}h=;v;OA(H%U=)?*v8(6|UZ>#Z8Y2 zY3h^o6nEjKcAX$M4YOPp1NjnH5yv2ne~pGZcJOkR=0wfD_8({1YmNBucYOr67%n1T z8uZxoZu%@WSvVzMWh2|s5;<291MYfT~Z!!~4_HJuYx^MiNU8#s&Tnz1+dh($7q|q(2e!gt> zq-e?`o-%{A_0l~rms#b(UL;ZiLXsGaex3c^$v)llnGeO$!7OSrHKTCEK@5!WHib}D zR5L1WeR(yM0-yj$_PQi@2HU#VuXrKkNziA&Xn8#)uli7M%Cz>joGXxg2qU}Ba-R5p zri;NnA&7h-|DEpXl87kQj36f0fvLqkl}DCewtSzN+G&AzMn((0Ble?H+g^4G-7O)Z zlIyLl{%G^ecn`f8(YHc~0nZRN`I4%3DUz4wpZC+;6{#zM&WF_WqYL3)Al$5q!C@ZU z+sQ|-sVcu418%&M;W;{PAjayYV;|k0;?x?8Vf7OWOa2Uwxk&RbR%Qp(uR@kuv3W$8 zP{r%9`^0M2fR5l8V%xFFUnVZ^m}Nycon)ea91rnfPD3?d;}xjL%Jz^0RkJ5P!bc$R z2BZPi(dw7Zx!&l|W)N(!An5U(J>gYHVx`OfC`r_v0IadU?Xo6nK1s-)z20wn%(f(4 z|CO6t9f}u7v;8f}&gTP#d8PQXCBCLcul)ca!dqt}b!9Z@;|#5Ia^D|0=c?amisv+A zj2!@K(Vmc+ZDGsfBSFv%jW5-U=XMIME(ZmOG|ZAN@{o3HThec|d^jFuaKH2_D8TW$ zO{>hG;vQJif$h!-(+__8F(SXnf@YLm+rf`sPEj)>tGkt82hB!Ryes$aKqZUy zF#&vZbIi8~Wu$`+kQm1ER_D0XE+*hj$9`0@B3RDFUKU|~x zIo+$@G{I$wrLOqst+WNM#G3=xFK-B2@@~pAE&4X=uPcA!sn@=TKlMRWS->BtnforV z$_sZ8m+aZupT(b;j*NDxWO<<*z~;-hhKx3J9Tn$b!t9T>0`ViW$HTMed+pc%ge;T| z^Mnok7srBLRbBp4U?9d9CcNBBSErw)RSko&qhWSu`t25_OC&sE*-9yHI^^IpQ`hcz z@SZN3xoiK^>oVzmQ69McE$#!M*6GHTtZ)T3`t;|VS%ofbOrr#9=FzyJi{=ppcitE1 z5q&|*1tSAEtw1{z{;TR60xtYeV^*S`m6bcb3H7ThygY=Wt|Zx%oCMxgSYfS9IrmR( zdxb+L^X-={b9#3)!AqN<1hK?w^rGcEn(;b|_73G)9MBG-Q69D8G)jnNZiZIy+0N_h z%%S9JR4jJ9sHpWyd<){fH^7K>rS_8wXE!ka53y!;_ zFUvQXu%q9igmxa|bPqslgLjmJG~dt5!HRS4xR zxCT*}3*2qpKCkrBAU20z;w*j7dekDpSg59vG{teBaDC-v8Z&61oes#giR*v5ptWmb zwM*yys8!BhW&L|1W6J^&?VTnO?z@c*h&G?`XePLlFjkWs1qo0sR(^JOW|y>=GNN;_ zH}K@-@9%wrW zoJa$V(qarCrNDaldIv-7l0nLmomq<&>D{f1wFrpoYn zKYH>0S;M#NoK#87Q*!&Ewq~o~BPuO_7FC4s;D$~GH7+zEai?4*cb(dF>!>Plunuti zJZ8zP>PJ7d!Lv=putv&=TY}8XP2NupZlkt2w~7CxKga|rq~8Wx23YWIu>_oMv}%dw zRF7oLme30FSMm`Nh7_2WKU=6kj$@5Z6?lo0vypyPth zgnRs6_O@B>P_~;=OCGd2i2>ywoHV5xMXvMrVQM(%#kokTL8z+?spg~9&4 znY(^4SdsjLGH_v__5)g75vrX!q6OZ8pIl#mKifQejhoZB;BmS4i@J$r<;!Zg;s_!&QqI6ETzGqg+JG0j$jD{q zf`#)Yv)@s-zWe@?wA!Q0gP$onaT0rcE26(MH_DHRMtW+Hvbb8VbWQWtRI$8la+fVx z0seFCm8q^*J088C-KEY_Z5*Dh{*WUy^XXayeUYVll~0mwwmG`k#>zJtIDMbzyrF1E z=(-e^|0+K`-q^eNlrS6FMGGLMc1TCF>pZ_>$4w27(VVTec$hJ9qs*p$nxgrAOXc%8 z{SE206*wgsceR(8lEL1i`YbC-gXI_%_&i>nY7L+`!eW0Wx1e$1z#+CJ-yu&N5C4RMf zeC5n+ryQ%$qsgrUB|9kQ!;nWiu)S%)ceKu&dKAIO?I(H+bg^Ev13fmrAx(}sjyA!J%X?=o;JlkQ( z{ay}rf2W?elyaH_S5s&NdR>YU+d(_=5QMUVe5j8O<;2H`{@g~_&q;&imMA0k8n#?4WfZOoQX_q0JsdFFa2#rbE%P18~-Nls+mM<;dU#@U~xC6fxI=mo_jBtv;9c=E1#1nJV z>AN#+p*b>YB^7pg*N&b){q~E5rj{~1SP~u_fMS12&Veorptmw`y7nK`ebzGzCCLr= z22@s1Qg4#N#76%uspd^-MS}PjkxN8pMU$(NgVP|Dwhokw0~h9#kXX=>$-gYX(Tteo z$Png9n00=oPY+;(d#2Zceq-7VXEL$%R}E!Y+s?qYVwDh)OR4C+;*i^X8KqmL9(}9V z{0mdnNeJc1Nwus*{Y187Q%*EOXQB#iOU@~|{JCgNJUKB&jFTZ-W z&SCb-G5_%kzP@UFWt*nF?%l+O?~tGNTW+i=kzh?}5BsyI)G4oS3B8&LQnq|Ld{_;2 zZe*$(3kRn|-;Z;%ql56c(kqBa_M~qAe4G$^+pv@DIoFs0ln?q{x_kn&%IzIV4xTc! zhbU{7qgTHJ3%+=;Job=jRtLy7rZkt!*gE=hV|wXd{wtR|Tz1?Nd|~;*lFfSR6OMv% zBD8PCWV%jki1f;DDsv9Oh`2!p6XiM3=M2E73UznZ){x|vP2uQ3{V~FS`CN# zW@rvPrdUeCLpwg9g7yZ0x+ud91Gbs)F;iQN7F6l{(W>0T`Vu5H z(aCp-DWKz52MCz(g-zhJHy-D80Z$9u;+Mt+zIi9*Ec3qNjIs014O%Yh`Er&-QK_r2 z9|a-*);5u;442rDN1?kO+?35%Tod{cP|v>a26O{t?FtlR;M%Ra$&_^tnS@c&uf|NdoI< + + + + + + + + + + diff --git a/docs/images/bazel-navbar.svg b/docs/images/bazel-navbar.svg new file mode 100644 index 0000000000..8a0f6db853 --- /dev/null +++ b/docs/images/bazel-navbar.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/images/bazel-og-image.png b/docs/images/bazel-og-image.png new file mode 100644 index 0000000000000000000000000000000000000000..25b634945dd32a489d112d484f8fcc24c16460d2 GIT binary patch literal 15253 zcmeIZXH=8j);5aRP()Oui>Rnbmo8mJP(VORNB}842O*)}U zM-Y%MCG;XShJ+GI0;KTWaqo8=$2jjd_TFcl_l)ny`Qb3Rv({X5&1eo zlYA$cn3&jf9^5l#Vmf?@@sEWWcw&0)od)n9ua6eQ$Hc?Y$M1=k1Jj+S9(E3wbljde zIT$-Uc^cr^>7dHQq@t*E?~bYe1Yw%})kSRZPhziCvF?&Zj>D*0X(jXIArVq&gXIG| z*SPcIBDQ=wH942WR*$-3AJn72qU7{}bLIOMjKzem&WA6^5i*>N*3R^s4JJ<~1HnQUO#fW{pNjvX(;v(IG3ZaT0aO3=pg$}EDE_~Z z^q&r5fcAeW{-;iVNcv+C1KIycDF64K^WUSyc>0G<|NWppY|DV`iB8;j363TyT z(4S`eAHn+%lmP7hT<*Vz@<@Uf)4yvA?d}5_F4lTCMWgzHjK(cW(*kmdsrg1giPp`Z zwfpNO2qLy=cf3D@xV5SnG|2qALV05!Jc#m0+Gk@u@?yaD2$The;o@2m{U-Rv{?Mh; z8`faGExR7PF5}DRkHziv=mhv2A1hO+R$eXNWcv#Jy*w8abCfYmK0F%J9fg4ae4>lN zK;+HVrA&TH0DZ!(V%55XK{c2!+*~x^iYqQ3_@NNPhYTHuG0zl6o}=EkGk*-9fu5E7 zTwM0?^=$R*h7K%V-i(Uq9`<;H$?>;yU;Fl&Lq5n3I$E5To*tv|&|~aO2r1`K=IYPT z!v(?L+e@9}nm<{?Kn3mj{m&91fT|(7xS%l5W-ejTDq~9 zo31;g%m7oqEE+S#cnq6s2~(@{<4(ND$5_Ep&TI(qEcsDD7ol?TtphiX*=;@$D`?_5w;lV_pn^U3~4MU96l7mw_#N)H=&CRE%~l z8~~gI^SEDq>y6Tb&|?85wS23!U1cJOSwyQa1~dX8QY1{8q|NxL+u>{~>y2=x*&Djg z)KgUh?A(jj#Uy&wGkSJ&n8~ItyXdu)MVs*Mz=N)*d+9L|xKv^3Bwe zW*UHSM9IG5g70?E(n(dTlM>n=``Vu!!7pm0D({dr%DUppHRu#t$X*j-ziKK7EFLLH z{Us$4aYw;yZVS!D#T6r<=EBR&Tp($EFllm@Ya~$oZ^-$kU2I6;PEQJ-7zQLB8M2QJ zDZ6nDmk}XoUFYkD?l>ua+t#^Ic?7gy-rlvc!oA}1b8rvB%z6gG2hCd1wa+WaNJ&bQ zP#`-)%XZ_0C2s#?I3`gsp*H_z%S(u`L2BtXzyW9%3$XnpWF`Olbz$Lh%1WVR>GHC; z8e{nW2!=-i7#?poWG5jm4)J->JP4^QEPZUCe@1GWkWOHPy_UiHwC3X*J0^3Qp0Lyy- z+j)c*6P39n{W-W3pepj}v`S)yMeWo1(H;V!&#LZ}(Xh>V%)8czi1)e9Ca(n})BI*v zzhp1~D=e4*AavPK$Nk7)W=~B@;%(k&PM@v=!&d?|PD&x%X389Z^$q?mDf(d6+Hfeq zwIEh)|Cd|!>_shile2(d1i(P803OjZ5}aegZGD-ufY^B@J&NKiN^)Prv z)bcU0aK2{TYemR-8GZj^o}tw>G_F0zxYZ3}Yc$)QZ)ky zG_5U^5NWjxa5tdyy&ZOk_3rj`o=H;_xxxI1J1SG;L%QyG>S;ox$5b53|c< zTMVAIwrBI4Qv^PhOZXN^GDEld3;JO4AAT=kzCn=fKMyA`R*}A=x&Lvtki$$ap>3uP z;C!e!141zPusZzB5k#fK_ zx*|%FXKvv3RIpZ7J7bW(j&r|(kbl8A7$8JsD2|Q4YIV$Lk0UB~c>C-}AN@wR!dY!w zlN0DXp3MuVIHJu)ARM6nI}_gk^P4Sszs)aL&cSp`HTW$4$dKvyIZ|u|?{6TRsVl*1 zzdl%!QtExFtftmLiWHlmi;~>h)*8mFg1(N?)~71FNh89?*)Mz!GSQjrdUYz|ysX3X>}u4~yqTjTi3(=k_SeI)>D&=fQg=T)0Pj!>7(Fa~e$W z))gd;kNccPNRio8r4{|=zrBXs0?J?+!%F^pU|06VhOl^2@{(9qi;~bM%wSZsu$kkAlxWdk z%`5$;#bMdqM6XWA?1G9+%2JhjJk0Y8TlEG^jcdO^H)>Fz%S9kxt0z^Q5=} z777M(v{>vy1H%nM@h35uTT$#IXcK~oRpn{Bgjb1U=Iv`mf}DdBp6Yu~lfY?`B0T8m zjGizL^kps0^ZdCY8o%niM~lba6ciQoEK69Bv_D9mX$aor#-1I`Um%wyK#rhS7*13L zQ@GO+fgqKiKBE221}9^(jdq`I4U9QlR0*u;QRPElj#nD9*cESh-zK}e4spEA9SWLl z=R?)5pwYt^|Ky}J{hFcC(1Mt=9Pk{#c|IZ4Jm*XTPDY)4bIn9tKe0B_=d{X**pK3q0&y(Mf#SK7`7yMFh!yLwuTwJ>9E6inSOp$?V|X8=@fX^+V&EXQVj8z_wT`j9b?6>m*`p@`pL&DM4k^pGL%Bythr0on|_^@|Nz6(ymiRkHHb` z`}jBw%iX#Irv+AzgX#W*{jjEDO)IxXxxY3qmL>DJ{F5pvKFUT95^ z!^>;J4&ODRnPc-Od&45rWPTmj2a>UYyn;QUtpjT8N~Al0FC!)-dek)Vz_xW&qJ8??DNE6^1i3nW^L%Co&_!lt5d&1c1DDXh-S{%p{_#@ zqw6e;z(>PXd&5CRnJ928i#ugiqUJ+xY!^ao?+Pa*06!O zKWpskm#;_6-u3z;tZh$-1H?ZJI{aP|k=;)=vS1`LcSV)Hf`Y<2^YWBaO)eC1z%zH% ztSw?ymSY0scyn^>O1L^Xo4{WHR4=yxLQCf-aMwy#YFzEhBi)=UHQb}?Hcf4v8G_rb z>ZgHN1O-x+`=&y6=%Y)W|eXkV%H5co%7{NH#~&y&i}I-MN~* z>}N-w7>9RHeEK1OsFJO)LZYaOkKgCX-$2*}Xu?ycRzQEa708FWFRVsJXwVnqUZ$pt z8ehr=H8l-TfxJ^pM$X!bP_O7Qt-NjiWk2J3oXjHUe~d*pw*N*uJLt zk(D$L?%Se_AGz-NT#K!wsOxkCwmGyPu`GLy-I4Q$^5@!HnKYoJl(oyX#ymAX=7ydM zce-ra!ZP9z?QlWQO8Vwxl}GHLXnkh%vj1K-a$hmnHw(0vnH2v($cbOk&84e?RZMa$ z`C(V-_Upa8RER3fSGkk9_!Zl zPlhWBB8R(qqfKaxl)4vKtZ-za66!Y-?1%2SsO0lG$SRngmpg^43URpwj69a0`S(9h zg06!5gsH3W1m)g}K$|^4NQaQW$cAdd4v_t;MI!%HT#hrH7e9u!57Q__)_jiU#P}MA zXZH_v-32@amR+npw7B>beW%dwK6x+zOe(A_Dga7NlC$wK9wv@x(gb7~NJURI1EK6> z>PaiYuE8*Sn#V|_+ulx@m;Hkg+3;SeAPsA==W z@`2ulrS1L?mJc(B#h8m*czG@EE3AL9cXZ5woXN@+C<(NqkcKUBGq<8I&ISVbcl8|N zhhZ!(oq9=G1nMGC6hj%wzcQN}13-s0K+`vr(^r69JO^c9^Z0Q~4!_k2%;@O{ z*_Cb`G4DGjj)|Ln1Hd%doii$Ma5pp$3bXcX%U2xE%X5o*8S~>^0Sl`_0+2~?()jdl zC}+cC4>o~fXlV$`YN(->Xq521w|_b$#KeFs8Suoha6bcx`rPD7md= zof;Y%YD*sMKmXfZ5^s3R44uK}(?1pK&U6QSiIX`GRe1>kOqE^yu~J1mhzV*-cEx?F zTDT^3Q$!P8ui`oXw;%&oW3b%ym;2lC-GtNYHRPELl%sV&@%?q+kQjxUOueza%uwQ! zbR?V1jN?8 z$!u-GEKP(IL^MO2U8Wa+#>H=4`7*`=el@(Y<>coF3jd;3Dhn(HS}_nO<74W2Z0ou~ zWh}r)tw5pI_JUKLJ-Dr#z?yqoz&(;%-lV$OWjpIs+F_`?B5R4;E?^+D!;FRf!=$t= ziMxF**3AmSVVGY!yrPds&#v*Y{x)`{FVK0it6S~t?4+|r4A1TUWVGeVleKM) z!oK<)I+FrjXr zQPD2~7C+UUj!oy^Xx5ZnS!oVUK4lXp2gygUqMdR&XodZCxR4dGq_3iXyFEKo=#7%?<+%Ryznnk|xUGWG9WS zr2SJdC&jgEe$T609Sh(__!Fw&QvzJ-hET{$h=cYU(UO99sUMywg&DTS>Sy<~KaK}V z&=N@NyO+eg<*&ytzPcgT%g~tyShMX6UR35&PiTCvWi^SSb9%{NH`oBlJEy~2Tj4)< zA=W{D>hSXd+P8Bs&S=i;rQc;bC(!t@gUqKjJhfsp+qM!U3MM?c_!D?GE}0F3^hv&% zY9gB4Kz#6+Ul9vR^m_76@meTmx4m`+i3c*l$R|qvKW``L4Za7~EMDnJ=k&-ePYv$Z z&`8`u4%IBm=M?~)cCSxizU=E#dQei0M))A)n$*2#&rY(6OF|1hf=Er63^Zapqz{u( zO#j7x@W3iMp2OQ4Xazjmi&_B829^(!H=36#d@mfiqaJxi<$H3^DRYEzIOD8mDh>k; z2dm||0f@t~gGdZ$uC>bu4EtjL^%bKB?|-nIOulbFy_4G%vgV}0J3j>3O+gjr-LayP zmP4R%JRCqrQ4Q$rf)1g9n1ZoRG;@4-h3&z%$Ajx!2839sS6axP4)3SpWUp~sr1qP? zq`c|ouCiNOTj(46(~<)qcsjhe#~~f4_BM`P132#2Bk;ndnQePP4kOM(Mo-jwdiuC- z!IXWk5bpn`h2(LH~~}VhdgC z0%CqZ16l^lzB*M|U=AGe*fz-MwGbD(CGFDogmO0u$z>fktn5XjZe5G`dm%TkhnM!7 zww^T%#5Skd=v_qU4mBcAB>Q+76GXZRQVUVvE-DV@yCdDRoj}WCr*@|@K>d zAo%3b9eoviE98@Af~T@%$$EWJb*9S3svq$DgJNZllrB}s zjtkIlip?(OS*_Kra+{qg!RK~Bhp0^vM#@}}pKH+gnF{UyLc(RTr|JULlq-@#-KPLX_n=|4*%7(cal(4VMZ9WI80FfP^sqOuikTHq z=rdi@_o~(~<^}l(Q6KMHZV9wtRt`*471*tFY5mHRp2Dl9ZmmSKc;5ykjO}MAeZ3#OPc*IO@ z|B?F(4rd@yIh|?79Q6)hTlrnTL2W|pP~6lPPy5MeSN!Z>xE}IL3b`Y_EF{ysK(_#g zbDjisVw4lz)Db{K_JWen4Zh%;ni)ia%!2UuW=9ngrIi-wYU}k|F~OjhR7}!nzDuFJ z2hG2CHXRK9VO1-%4s=$<>Ib|CxS_Ql@moSt(|t9DNf###UA2HdyX3j^km1kh{F8w7 z5+T4_DrrR|q74-lJmNt+8FMTK#j?%u#9fm9$d%IhNwn(Yu3BvuFPu3_S;6cY@RpCq z5U6HfO)oMUYER|}<4YtYa4w)FU#=ifsi|@hE$a_vP_bl`VTkn_DqEIYm@Bs2DMZ`W z2;VL$2pkh8Wf^ue6SiQ4IP56!77%bd;62}PC2;hCw@`rV056D*MuCG1yi5hM8fM@f zrWKF^9%6L!fyqa>U~a!BMv4C8>8GxLjQw2p4+;4|&jOJ9|LAAawcl3Fz8Owm>4Bnl zrJ5*r4F5LNhIIG!-xwluU~kYa!uuU#_W zH;%O%Xe$|8L;woEia|Rb3T*ezXK&keZoPH9%|Uwu zIViB%us^v-^GOGnjEZ-ZR%o-`hlb6S$NQ~Sv9lQ3Tm1_&O7x3D6#M+Z=@R7eo2obvokh4mnaBRr;Rgcw_r>iyUyvANnkHo9^4U zHN8>4xY+q{gz!V7kJeV*n6?iBl5`$V+@l8_#PAq+hsA2&@ly7f>Dy4-5)<|IgZjB} z`~tG*hNVwlv6;_8bjsit9DvKQDl7AHO}{m2Z27>QGmx9s*0-p3RqXV!1eNtNv$v-HE%0ve(;{2C{uD5Oab zsr0VE>$E4m$$Fy=CA-aIXVX;<7RH2pgNEnh+|(wkL+ESh@Lf&nLXZqsBmIB@8%e9I zMzrhID19IAk%LW59~+cKBuG}jZp$>qq1p}tmUatDnuv~6lv@)FJbCxKwJQ~s*@57R zwE`Sa0JVpY+B*9b0IYJf{vaF=w|PWt-c9gGvw8rkSPq76Mvw+KL-0j<$KAF<(ji_! zN|ebl>ap@PaHC^6=R5uFGbNt1eQ2P@JTLTWf|K}|ziS~LhA)1+%4d$r!H`n>Q3swu zVHX7x8^I(Kt`c;|I;IMQ>KC}vchHklq(*V#a4vh}V1R$f-h;TU+}KQb1na=O3yIS? zSk8xmliwc>)mqYIF#!(88gV%3qMs64Hp*|KDo$c>_fCCA2z9|vg51Z$t{O-#^^0>PD{Y$&w*;yINgqFBg(Rwk&7+q{d9v8{600?vB;& z^u>74#-Zj-^oiNMRl}@<$AJ^NRc8jH)Br!{KHZc^p|JagTpvG3O{-bT6s*al6ie5x z?#`dU=^ZG*{SkY@#I~)2y`Lfbu}G;EL8p{iCWTFxQP--c^YY7BMd#qC^(wQej;g8g zhPVWGEDqPkO<0<1Qz+`|S0XpZfPLDzc-Wm&`mfMsFP<}$k8DETaHgEl-#id@TirY0 zodk81|6HgPq;7d+X&gk%9*_l^;Nmmee3?lTTy2Bb-bzqkw@UdcNw81cy7z!x2!b!} znK>f1_g7JO371q$h+o#z;Gn`L1$cjC!(IBlg(@qrdMH*fah7u0){ttkHb{Ffe5(Wc zdir)1>zf8}eJbIZs|5@0-1jx}AL!zQH807Mg6@0#4*gdx1;%AxW8bb8DRjWN;S;<>!xlvG1L3|38pdX+l4s=-`jB-7`kh7xNM8td4kCSi(3!-0c z1;O+uyI%{Z+CXuf4hOv564vW`TUg;{7B0>=wpKy*MJv%|@`Lmuk6E9EpICJ6Rq z<)5os=(q=h5UB>?boI1V&I$E;$}9a_PW04Q~n9)~?t|V<*Mv z3hCOD#`-oIbp4=t8|C6SLC&a%Sszd3m%HAC(3wEID`90YGV#l;u=~`0*Po(h^BAxp zEN^2389e(U{A9jG`5x$k$WU@DJt4(}BdaZO#C4)YrSDPlfsZFXLgPHYw*n--=-u-T z{Oqq=tk5KVF?e8+eXn4X82^OM%MW^n;oaom$sY!!2D{7mRx4@Ze*SSu$z6t_3A2t9 zx-{CT4YDk6;Xe(u~?dG+~n(xMimi{BiZi?Me8r+9)RhhdON4R%j%< z-r_M%T|&21yj^`lRfDT)zyEq4sVoHT|KRfi@uS?d!(`+0JfAF)^o>F1p20WCxPG*X zv*jBiir6-^0SbCIo|LjxAa1Qi8msW@IasarGn}eXKd4OzhX*h3e16)y+$LG?wp10P zUDTvtS^n;<(N#C-RlU^L21x1l5Cbc<_$!w#C~wcNBV3#S_fnYQ;MYW8vUb;a)|_kF z$Sx`|7uaK0CD?}B`Zpuvk|ff%{8s1L=}D54J@?#eM@PWcn+`*JE;!cZb@yS{@fFAUcdhV6sb?21W^>fgCN{09IS8wATa;rPez+ zQZTacb6IttD^{&g>s^C9a&IG9BdKtn>Ki%hNSg5F7Mr;XT)737jozs>~%F#ys#iS zhX9h742+;vR=qiz5YkY@aW9bPNF?oX2MoEI?&Rohy@nnyvbC^5CcZ7Qm z9aqTq{K#o|uON4c%bBiQu~oA$;hg7q*x9NodaT!}=nau)90#+{h`usRwW zjyIbMXZ@ZQj#0lIKXYMI*kH-9(#1n1sviGv~m77vWgI96PK+< zrFY6WChH2*2y%JlHRhaUX(J${;PJvoghe~}t6GctvN;M-t`^l1*R;{tnxM2{|IW%l zDym7BvRf5<#$2LOpmqhqlc%yJsL6G{vyHy7uFI zK356781DoTnTKj#5QFW}i^s>xu8mZ^Ezcee9>^w^SIp1nHunadft>er_vA{gIGo|^r+Wu z0$`H8V&zkXvTfhsWWPoVjoL@ZZ|j~MoE-7eJS#Zqg;g9a?39#oNmHFncF%=X;cVAV zB9|Yh-H^7|TF(LH7llXM zbFiKJITPBYn;pluq;kpGetk+n+xH|8^{iRAVDZH_OGHaI!S8d8K2u+d5Tg_LBVUD- zSHhezIY0`P*kF`{Z)WWmsI9HuftKid%oE|t0YOL1eDG)HFeWg#nR$qxs#?^gG9@F5?i7Qyy9*>6u0J$qrXiL=-?>5E~%j--Q-#))et&;jU)7^TBoFT z!P5#64T&GNIUe8J6+STqsy0-2KhQyjB&DHKdcQ)73Wb&XIEUfaNzMu%zY1oF)i{cc zCvIiRSXD=Zk@Pb=&O=>>^be@bpZR)Q-TiD!X;-6iAABOHwp97WS5a0f(y}m~bAC2H zdo?!$>%+N2k9K!CZWTOzkLSF9-K?%$>OiSXzT+ous6%C1!99=KaNpWFEx)YRJbBY8 zMS%8|9Z7N88~BS%#(u%pwyE?M?LJHx$650+?MBfn9`N)`A`* zA9gj$;>Q=eoENS$yOfUcf)feF0vuMt(c-A{)aj2ZF_ll@c`WlYf+>PhIQ0~V zsx+VRNl@`(vc%+vC`Fh-2))m*X_R>U^7Lh4%X@Cv$oQ#>1ln1Z;6Pj~#2246GMxwi zvfy80`Cv^qYz{%q~~!5i=Mkhy|n4RxAAa`N+k!n9-yU_nT ziq;>jr}&;=Fn3h_h5loNQ+rIe5?mekkQ$?DGJeY>F!LAB6E`XB)VvjHQeoQvGEN~6 zCs=p(vX~d=Wwj$C^X4Yw(Q)0e$@RX(giG&C?#I$@&TtL!dro+NyWa{{7AVq-)eVVf zqhS4_^_L(K~rZu`I4+zr^#$M-Se4xUAcCCo! z8V!+h!setgAEA})ok@}tG16E&mlj;LF)69topwLO@$FVA@^SgKHifrU(c99O5)6~Y zG!lGOBdE)K@;^M$=VvPB1+#33Z{@r@=6gB&mLobQ%p6qF{(R1E?S|&m%ZSRHM>atv z->X8G);Jrc&V8RbWL)i_^kqA0(Suq)^}|$w9EeP57tRnxfj>(^eufV-^hW{ zr}n5mq&@B#2k4v1nzek`o>6hOeZsnBD&iB_fis>%gVOLgH4!x!T$7P^-r6G=Ki_b? zcvZpNqP~4sdE982T4$2r!`7g~{gRySHxtld{IL#83c^j<%}&Alb5-PY@u!Al$A8|7 zwecqI8bPnO`r8-?B0av)YYB3%2#GC&?Bh{RCNz6xYYs|c!H89oMzvqf?VxPfE9}ES zWUSvDP&j><-_@O?>k4&e$GFb(DErzKom~sOcWSxGH7EQgAU7 z>rM1pNhwi%CST7Bc0*q4J4Z*l=Pz}nj6Z#Yb9VRSizoUCrwqbyYSNoFBY*6_k) z$#O{BP}F+7Kyb|ZU==mfWAMj=PLRo9{)lUA!F6kkWDPYgBP6oQf39t+rcL-QLfazK zJZiE%AMq`4wxX=}x_%%M0SQdCmTa7cmNa?N=V_H?ZkI0F5D0&@wU#*z=8PrpyVK+a zQoKBEJ)U@qS&#yjNA+SgSc%g%@P*!8oma>>cbT&#^X((O5;=skXCS863*HjGPrRzM zCp=iI!w$7m@j_{eX}%b=%PAhF=!G+v#iIJ%L`v;YiYngS^YQ(oZ*Ds~Xv(kKIG=hG zs`C;VWv?2g$*tDEc=}T5v&3h41k({83c(`h| zwp->9qhklO{Yrr@p3znA_4}SnEcKt|{9^W8S3p})qhUoWPlaCad7b83zyp0nAzxiy z##IgQxy#Mr4)_;okA9vaQ wt>*n12-l(ifxCwPr)`r5dSLV75EFdp%X44%bMJtAwoE!&2KS2Z+Wz&w0Ok%?FaQ7m literal 0 HcmV?d00001 diff --git a/docs/images/favicon-16x16.png b/docs/images/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..587a8aa320d619ed3c95e534f4715a62d853de37 GIT binary patch literal 553 zcmV+^0@nSBP)A$U!L_udT*W{21{gb%D2b5J$pnWk4%$IS!zk>GCXUQbj=C9K7>v=SO&t_+ zkx5%xNugR|y-Ryn`tR#Gz@67ND)0Dv-{<+>@5=`x6}=iwjAj?<0kFKbw7HRAH?#$9 zakQr`Xp0;9bz^yLY15y}emM0w^>jj+2qjmOnaZciyJoFfb>aKZ?!660gX;XP`P+m3 zpm(%)l=TEI?8^L->BO|=!fxL$2_$Y@Uw!!e!5dkY#;#bQMtR7a6)mH0t3@#p&aV8yA0@yV$17H@6Txq-bL=tV$(6@HeX2Hk-n3jcJ`Zn|?qTfe<*f;0>FOtEH}xalSa_+kB|SJuG8RkJx#Tn^RmCd r|1KpEBXc>+O|rOj zE8^-REnexiq9-eFRkn>pUkh%ZQ4Ny9>G1oKDW8DvwSkMFug?E%hTea2cgFR;PrX0 zjZKZ++>7nMP@Ae^6_2h(Uil~dVE`DvF@BrKq>@YI-ZBI9@z$^)I^(UOA-VuYaTbJG z+zN39K#S85R&g4l4Pc2IA$Wmzvc%000{}32ck=$NhvE~K8|dfr``nuW0HfDOnd171 zJ=$2@e!jiN0RZQBh?3N>bpuV)Pdf&@M6Fh*#(~p=Nct`v_@;aj&dFcYFKXHelG#H@ zQUik1!3+R^{Ba)H^dVgC3telZt`zp3?cS4%@(~9BKRtP~nok7*c zIZ^#tK|J;jN~38QPpoc<DDWS6Q7x#Zae#6VwMP9S$MG^RLe>l)hglp6SjL$E0D!NGDZ(s{ zGA!fl09J&}xIKUsqKCMBfEl94cz-kE3}SI4j}Y>>gy7!`cOw2-{G8?&A$g$jz@2|S P00000NkvXXu0mjfr7lm< literal 0 HcmV?d00001 diff --git a/docs/images/favicon.ico b/docs/images/favicon.ico old mode 100644 new mode 100755 diff --git a/docs/index.html b/docs/index.html new file mode 100755 index 0000000000..3b897ddeaa --- /dev/null +++ b/docs/index.html @@ -0,0 +1,449 @@ + + + + + + + + + + rules_nodejs - Home + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+ + +
+
+

Bazel JavaScript rules

+ +

Bazel is Google’s build system. +It powers our development at large scale by caching intermediate build artifacts, +allowing build and test to be incremental and massively parallelizable. +Read more at https://bazel.build

+ +

This JavaScript support lets you build and test code that targets a JavaScript runtime, including NodeJS and browsers.

+ +

Scope of the project

+ +

This repository contains an orthogonal set of rules which covers an opinionated toolchain for JavaScript development. If you would like to request a new rule, please open a feature request, describe your use case, why it’s important, and why you can’t do it within the existing rules. Then the maintainers can decide if it is within the scope of the project and will have a large enough impact to warrant the time required to implement.

+ +

If you would like to write a rule outside the scope of the projects we recommend hosting them in your GitHub account or the one of your organization.

+ +

Design

+ +

Most bazel rules include package management. That is, the WORKSPACE file installs both your dependencies and toolchain at the same time. For example, in Java, Gradle and Maven they each install both a build tool and a packagae at the same time.

+ +

In nodejs, there are a variety of package managers and build tools which can interoperate. Also, there is a well-known package installation location (node_modules directory in your project). Command-line and other tools look in this directory to find packages. So we must either download packages twice (risking version skew between them) or point all tools to Bazel’s external directory with NODE_PATH which would be very inconvenient.

+ +

Instead, our philosophy is: in the NodeJS ecosystem, Bazel is only a build tool. It is up to the user to install packages into their node_modules directory, though the build tool can verify the contents.

+ +

Hermeticity and reproducibility

+ +

Bazel generally guarantees builds are correct with respect to their inputs. For example, this means that given the same source tree, you can re-build the same artifacts as an earlier release of your program. In the nodejs rules, Bazel is not the package manager, so some responsibility falls to the developer to avoid builds that use the wrong dependencies. This problem exists with any build system in the JavaScript ecosystem.

+ +

Both NPM and Yarn have a lockfile, which ensures that dependencies only change when the lockfile changes. Users are strongly encouraged to use the locking mechanism in their package manager.

+ +

References:

+ + + +

Note that https://github.com/bazelbuild/rules_nodejs/issues/1 will take the guarantee further: by using the lockfile as an input to Bazel, the nodejs rules can verify the integrity of the dependencies. This would make it impossible for a build to be non-reproducible, so long as you have the same lockfile.

+ +

Quickstart

+ +

First we create a new workspace, which will be in a new directory. +We can use the @bazel/create npm package to do this in one command. +This is the fastest way to get started for most use cases.

+ +
+

See the installation page for details and alternative methods.

+
+ +
$ npm init @bazel my_workspace
+$ cd my_workspace
+
+ +
+

You could do the same thing with yarn:

+
$ yarn create @bazel my_workspace
+$ cd my_workspace
+
+

Both of these commands are equivalent to npx @bazel/create which downloads the latest version of the @bazel/create package from npm and runs the program it contains. +Run the tool with no arguments for command-line options and next steps.

+
+ +

Next we install some development tools. +For this example, we’ll use Babel to transpile our JavaScript, Mocha for running tests, and http-server to serve our app. +These are arbitrary choices, you may use whatever are your favorites.

+ +
$ npm install @babel/core @babel/cli @babel/preset-env http-server mocha domino
+
+ +

Let’s run these tools with Bazel. There are two ways to run tools:

+ +
    +
  • Use an auto-generated Bazel rule by importing from an index.bzl file in the npm package
  • +
  • Use a custom rule in rules_nodejs or write one yourself
  • +
+ +

In this example we use the auto-generated rules. +First we need to import them, using a load statement. +So edit BUILD.bazel and add:

+ +
load("@npm//@babel/cli:index.bzl", "babel")
+load("@npm//mocha:index.bzl", "mocha_test")
+load("@npm//http-server:index.bzl", "http_server")
+
+ +
+

This shows us that rules_nodejs has told Bazel that a workspace named @npm is available +(think of the at-sign like a scoped package for Bazel). +rules_nodejs will add index.bzl files exposing all the binaries the package manager installed +(the same as the content of the node_modules/.bin folder). +The three tools we installed are in this @npm scope and each has an index file with a .bzl extension.

+
+ +

Next we teach Bazel how to transform our JavaScript inputs into transpiled outputs. +Here we assume that you have app.js and es5.babelrc in your project. See our example webapp for an example of what those files might look like. +Now we want Babel to produce app.es5.js so we add to BUILD.bazel:

+ +
babel(
+    name = "compile",
+    data = [
+        "app.js",
+        "es5.babelrc",
+        "@npm//@babel/preset-env",
+    ],
+    outs = ["app.es5.js"],
+    args = [
+        "app.js",
+        "--config-file",
+        "./$(execpath es5.babelrc)",
+        "--out-file",
+        "$(execpath app.es5.js)",
+    ],
+)
+
+ +
+

This just calls the Babel CLI, so you can see their documentation for what arguments to pass. +We use the $(execpath) helper in Bazel so we don’t need to hardcode paths to the inputs or outputs.

+
+ +

We can now build the application: npm run build

+ +

and we see the .js outputs from babel appear in the dist/bin folder.

+ +

Let’s serve the app to see how it looks, by adding to BUILD.bazel:

+ +
http_server(
+    name = "server",
+    data = [
+        "index.html",
+        "app.es5.js",
+    ],
+    args = ["."],
+)
+
+ +

Add a serve entry to the scripts in package.json:

+ +
{
+  "scripts": {
+    "serve": "ibazel run :server"
+  }
+}
+
+ +
+

ibazel is the watch mode for bazel.

+ +

Note that on Windows, you need to pass --enable_runfiles flag to Bazel. +That’s because Bazel creates a directory where inputs and outputs both conveniently appear together.

+
+ +

Now we can serve the app: npm run serve

+ +

Finally we’ll add a test using Mocha, and the domino package so we don’t need a browser. Add to BUILD.bazel:

+ +
mocha_test(
+    name = "unit_tests",
+    args = ["*.spec.js"],
+    data = glob(["*.spec.js"]) + [
+        "@npm//domino",
+        "app.es5.js",
+    ],
+)
+
+ +

Run the tests: npm test

+ +

Next steps

+ +

Look through the /examples directory in this repo for many examples of running tools under Bazel.

+ +

You might want to look through the API docs for custom rules such as TypeScript, Rollup, and Terser which add support beyond what you get from calling the CLI of those tools.

+ +
+
+ + +
+
+ +
+
+
+
+

© 2020 The rules_nodejs authors

+
+
+
+ +
+ + + + + + + + + + + + + + + diff --git a/docs/index.md b/docs/index.md index 163296e230..a708ec9833 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,7 +1,7 @@ --- title: Home layout: default -stylesheet: docs +toc: true --- # Bazel JavaScript rules @@ -13,6 +13,35 @@ Read more at [https://bazel.build](https://bazel.build) This JavaScript support lets you build and test code that targets a JavaScript runtime, including NodeJS and browsers. + +## Scope of the project + +This repository contains an orthogonal set of rules which covers an opinionated toolchain for JavaScript development. If you would like to request a new rule, please open a [feature request](https://github.com/bazelbuild/rules_nodejs/issues/new), describe your use case, why it's important, and why you can't do it within the existing rules. Then the maintainers can decide if it is within the scope of the project and will have a large enough impact to warrant the time required to implement. + +If you would like to write a rule outside the scope of the projects we recommend hosting them in your GitHub account or the one of your organization. + +## Design + +Most bazel rules include package management. That is, the `WORKSPACE` file installs both your dependencies and toolchain at the same time. For example, in Java, Gradle and Maven they each install both a build tool and a packagae at the same time. + +In nodejs, there are a variety of package managers and build tools which can interoperate. Also, there is a well-known package installation location (`node_modules` directory in your project). Command-line and other tools look in this directory to find packages. So we must either download packages twice (risking version skew between them) or point all tools to Bazel's `external` directory with `NODE_PATH` which would be very inconvenient. + +Instead, our philosophy is: in the NodeJS ecosystem, Bazel is only a build tool. It is up to the user to install packages into their `node_modules` directory, though the build tool can verify the contents. + +## Hermeticity and reproducibility + +Bazel generally guarantees builds are correct with respect to their inputs. For example, this means that given the same source tree, you can re-build the same artifacts as an earlier release of your program. In the nodejs rules, Bazel is not the package manager, so some responsibility falls to the developer to avoid builds that use the wrong dependencies. This problem exists with any build system in the JavaScript ecosystem. + +Both NPM and Yarn have a lockfile, which ensures that dependencies only change when the lockfile changes. Users are *strongly encouraged* to use the locking mechanism in their package manager. + +References: + +- npm: +- yarn: + +Note that will take the guarantee further: by using the lockfile as an input to Bazel, the nodejs rules can verify the integrity of the dependencies. This would make it impossible for a build to be non-reproducible, so long as you have the same lockfile. + + ## Quickstart First we create a new workspace, which will be in a new directory. @@ -36,7 +65,7 @@ $ cd my_workspace Next we install some development tools. For this example, we'll use Babel to transpile our JavaScript, Mocha for running tests, and http-server to serve our app. -This is just an arbitrary choice, you probably already have some tools you prefer. +These are arbitrary choices, you may use whatever are your favorites. ```sh $ npm install @babel/core @babel/cli @babel/preset-env http-server mocha domino @@ -49,7 +78,7 @@ Let's run these tools with Bazel. There are two ways to run tools: In this example we use the auto-generated rules. First we need to import them, using a load statement. -So edit BUILD.bazel and add: +So edit `BUILD.bazel` and add: ```python load("@npm//@babel/cli:index.bzl", "babel") @@ -59,8 +88,8 @@ load("@npm//http-server:index.bzl", "http_server") > This shows us that rules_nodejs has told Bazel that a workspace named @npm is available > (think of the at-sign like a scoped package for Bazel). -> rules_nodejs will add index.bzl files exposing all the binaries the package manager installed -> (the same as the content of the node_modules/.bin folder). +> rules_nodejs will add `index.bzl` files exposing all the binaries the package manager installed +> (the same as the content of the `node_modules/.bin folder`). > The three tools we installed are in this @npm scope and each has an index file with a .bzl extension. Next we teach Bazel how to transform our JavaScript inputs into transpiled outputs. @@ -79,7 +108,7 @@ babel( args = [ "app.js", "--config-file", - "$(execpath es5.babelrc)", + "./$(execpath es5.babelrc)", "--out-file", "$(execpath app.es5.js)", ], @@ -119,7 +148,7 @@ Add a `serve` entry to the scripts in `package.json`: > ibazel is the watch mode for bazel. > > Note that on Windows, you need to pass `--enable_runfiles` flag to Bazel. -> That's because Bazel creates a directory where inputs and outputs both appear together, for convenience. +> That's because Bazel creates a directory where inputs and outputs both conveniently appear together. Now we can serve the app: `npm run serve` @@ -143,202 +172,3 @@ Run the tests: `npm test` Look through the `/examples` directory in this repo for many examples of running tools under Bazel. You might want to look through the API docs for custom rules such as TypeScript, Rollup, and Terser which add support beyond what you get from calling the CLI of those tools. - -### Debugging - -Add the options in the `Support for debugging NodeJS tests` section from https://github.com/bazelbuild/rules_nodejs/blob/master/common.bazelrc to your project's `.bazelrc` file to add support for debugging NodeJS programs. - -Using the `--config=debug` command line option with bazel will set a number of flags that are specified there are useful for debugging. See the comments under `Support for debugging NodeJS tests` for details on the flags that are set. - -Use `--config=debug` with `bazel test` as follow, - -``` -bazel test --config=debug //test:... -``` - -or with `bazel run`, - -``` -bazel run --config=debug //test:test1 -``` - -to also turn on the NodeJS inspector agent which will break before any user code starts. You should then see, - -``` -Executing tests from //test:test1 ------------------------------------------------------------------------------ -Debugger listening on ws://127.0.0.1:9229/3f20777a-242c-4d18-b88b-5ed4b3fed61c -For help, see: https://nodejs.org/en/docs/inspector -``` - -when the test is run. - -To inspect with Chrome DevTools 55+, open `chrome://inspect` in a Chromium-based browser and attach to the waiting process. -A Chrome DevTools window should open and you should see `Debugger attached.` in the console. - -See https://nodejs.org/en/docs/guides/debugging-getting-started/ for more details. - -### Debugging with VS Code - -With the above configuration you can use VS Code as your debugger. -You will first need to configure your `.vscode/launch.json`: - -``` -{ - "type": "node", - "request": "attach", - "name": "Attach nodejs_binary", - "internalConsoleOptions": "neverOpen", - "sourceMapPathOverrides": { - "../*": "${workspaceRoot}/*", - "../../*": "${workspaceRoot}/*", - "../../../*": "${workspaceRoot}/*", - "../../../../*": "${workspaceRoot}/*", - "../../../../../*": "${workspaceRoot}/*", - // do as many levels here as needed for your project - } -``` -We use `sourceMapPathOverrides` here to rewrite the source maps produced by `ts_library` so that breakpoints line up with the source maps. -Once configured start your process with -``` -bazel run --config=debug //test:test1 -``` -Then hit `F5` which will start the VS Code debugger with the `Attach nodejs_binary` configuration. -VS Code will immediatenly hit a breakpoint to which you can continue and debug using all the normal debug features provided. - - -### Stamping - -Bazel is generally only a build tool, and is unaware of your version control system. -However, when publishing releases, you typically want to embed version information in the resulting distribution. -Bazel supports this natively, using the following approach: - -To stamp a build, you must pass the `--stamp` argument to Bazel. - -> Previous releases of rules_nodejs stamped builds always. -> However this caused stamp-aware actions to never be remotely cached, since the volatile -> status file is passed as an input and its checksum always changes. - -Also pass the `workspace_status_command` argument to `bazel build`. -We prefer to do these with an entry in `.bazelrc`: - -```sh -# This tells Bazel how to interact with the version control system -# Enable this with --config=release -build:release --stamp --workspace_status_command=./tools/bazel_stamp_vars.sh -``` - -Then create `tools/bazel_stamp_vars.sh`. - -This is a script that prints variable/value pairs. -Make sure you set the executable bit, eg. `chmod 755 tools/bazel_stamp_vars.sh`. -For example, we could run `git describe` to get the current tag: - -```bash -#!/usr/bin/env bash -echo BUILD_SCM_VERSION $(git describe --abbrev=7 --tags HEAD) -``` - -For a more full-featured script, take a look at the [bazel_stamp_vars in Angular] - -Finally, we recommend a release script around Bazel. We typically have more than one npm package published from one Bazel workspace, so we do a `bazel query` to find them, and publish in a loop. Here is a template to get you started: - -```sh -#!/usr/bin/env bash - -set -u -e -o pipefail - -# Call the script with argument "pack" or "publish" -readonly NPM_COMMAND=${1:-publish} -# Don't rely on $PATH to have the right version -readonly BAZEL_BIN=./node_modules/.bin/bazel -# Use a new output_base so we get a clean build -# Bazel can't know if the git metadata changed -readonly TMP=$(mktemp -d -t bazel-release.XXXXXXX) -readonly BAZEL="$BAZEL_BIN --output_base=$TMP" -# Find all the npm packages in the repo -readonly PKG_NPM_LABELS=`$BAZEL query --output=label 'kind("pkg_npm", //...)'` -# Build them in one command to maximize parallelism -$BAZEL build --config=release $PKG_NPM_LABELS -# publish one package at a time to make it easier to spot any errors or warnings -for pkg in $PKG_NPM_LABELS ; do - $BAZEL run --config=release -- ${pkg}.${NPM_COMMAND} --access public --tag latest -done -``` - -> WARNING: Bazel can't track changes to git tags. That means it won't rebuild a target if only the result of the workspace_status_command has changed. So changes to the version information may not be reflected if you re-build the package or bundle, and nothing in the package or bundle has changed. - -See https://www.kchodorow.com/blog/2017/03/27/stamping-your-builds/ for more background. - -[bazel_stamp_vars in Angular]: https://github.com/angular/angular/blob/master/tools/bazel_stamp_vars.sh - -# Making changes to rules_nodejs - -One advantage of open-source software is that you can make your own changes that suit your needs. - -The packages published to npm and GitHub differ from the sources in this repo. The packages have only runtime bazel dependencies, but the sources depend on development dependencies. For example, the `@bazel_skylib` library is a development-time transitive dependency, while an npm package would have that dependency statically linked in. - -> This differs from much of the Bazel ecosystem, where you are expected to build the whole transitive toolchain from sources. - -If you have a small change, it's easiest to just patch the distributed artifacts rather than build from source. However if you're doing active development in rules_nodejs or have a policy of not depending on release artifacts, it's possible to depend directly on sources. This is not yet documented; file an issue on our repo if you think you need this. - -## Patching the npm packages - -The pattern we use most commonly is to add a `postinstall` hook to your `package.json` that patches files after they've been fetched from npm. - -See `/tools/postinstall-patches.js` in the [Angular repo] for an example. - -[Angular repo]: https://github.com/angular/angular/tree/master/tools/postinstall-patches.js - -## Patching the built-in release - -rules_nodejs has a distribution format which is a tgz published to GitHub, and this can make it tricky to make casual changes without forking the project and building your own release artifacts. - -Bazel has a handy patching mechanism that lets you easily apply a local patch to the release artifact for built-in rules: the `patches` attribute to `http_archive`. - -First, make your changes in a clone of the rules_nodejs repo. Export a patch file simply using `git diff`: - -```sh -git diff > my.patch -``` - -Then copy the patch file somewhere in your repo and point to it from your `WORKSPACE` file: - -```python -http_archive( - name = "build_bazel_rules_nodejs", - patch_args = ["-p1"], - patches = ["//path/to/my.patch"], - sha256 = "6d4edbf28ff6720aedf5f97f9b9a7679401bf7fca9d14a0fff80f644a99992b4", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/0.32.2/rules_nodejs-0.32.2.tar.gz"], -) -``` - -# Scope of the project - -This repository contains an orthogonal set of rules which covers an opinionated toolchain for JavaScript development. When requesting a new rule, describe your use case, why it's important, and why you can't do it with the existing rules. This is because we have limited resources to maintain additional rules. - -The repository accepts contributions in terms of bug fixes or implementing new features in existing rules. If you're planning to implement a new rule, please strongly consider opening a [feature request](https://github.com/bazelbuild/rules_nodejs/issues/new) first so the project's maintainers can decide if it belongs to the scope of this project or not. - -For rules outside of the scope of the projects we recommend hosting them in your GitHub account or the one of your organization. - -# Design - -Most bazel rules include package management. That is, the `WORKSPACE` file installs your dependencies as well as the toolchain. In some environments, this is the normal workflow, for example in Java, Gradle and Maven are each both a build tool and a package manager. - -In nodejs, there are a variety of package managers and build tools which can interoperate. Also, there is a well-known package installation location (`node_modules` directory in your project). Command-line and other tools look in this directory to find packages. So we must either download packages twice (risking version skew between them) or point all tools to Bazel's `external` directory with `NODE_PATH` which would be very inconvenient. - -Instead, our philosophy is: in the NodeJS ecosystem, Bazel is only a build tool. It is up to the user to install packages into their `node_modules` directory, though the build tool can verify the contents. - -## Hermeticity and reproducibility - -Bazel generally guarantees builds are correct with respect to their inputs. For example, this means that given the same source tree, you can re-build the same artifacts as an earlier release of your program. In the nodejs rules, Bazel is not the package manager, so some responsibility falls to the developer to avoid builds that use the wrong dependencies. This problem exists with any build system in the JavaScript ecosystem. - -Both NPM and Yarn have a lockfile, which ensures that dependencies only change when the lockfile changes. Users are *strongly encouraged* to use the locking mechanism in their package manager. - -References: - -- npm: https://docs.npmjs.com/files/package-lock.json -- yarn: https://yarnpkg.com/lang/en/docs/yarn-lock/ - -Note that https://github.com/bazelbuild/rules_nodejs/issues/1 will take the guarantee further: by using the lockfile as an input to Bazel, the nodejs rules can verify the integrity of the dependencies. This would make it impossible for a build to be non-reproducible, so long as you have the same lockfile. diff --git a/docs/install.html b/docs/install.html new file mode 100755 index 0000000000..b91bf4d126 --- /dev/null +++ b/docs/install.html @@ -0,0 +1,434 @@ + + + + + + + + + + rules_nodejs - Installation + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+ + +
+
+

Custom installation

+ +

First, you need Bazel. +We recommend using Bazelisk, which is a version-selection wrapper, similar to +the nvm tool managing your version of Node. This is available on npm. +We also recommend installing ibazel which is the “watch mode” for Bazel.

+ +
$ yarn add -D @bazel/bazelisk @bazel/ibazel
+# or
+$ npm install --save-dev @bazel/bazelisk @bazel/ibazel
+
+ +

You could install a current bazel distribution, following the [bazel instructions].

+ +

If you use Bazelisk, see this workaround to get working command-line completion.

+ +

It’s reasonable to globally-install bazelisk so you get a bazel command in your $PATH. +We don’t recommend this with ibazel as the version is frequently changing.

+ +

Next, create a WORKSPACE file in your project root (or edit the existing one) +containing:

+ +
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+http_archive(
+    name = "build_bazel_rules_nodejs",
+    sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be",
+    urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"],
+)
+
+load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories")
+
+ +

Now you can choose from a few options to finish installation.

+ +

To choose a version of Node.js:

+ +
    +
  1. (Simplest) use the version of Node.js that comes with these rules by default
  2. +
  3. Choose from one of the versions we support natively
  4. +
  5. Tell Bazel where to download a specific version you require
  6. +
  7. Check Node.js into your repository and don’t download anything
  8. +
+ +

These are described in more detail in the following sections.

+ +

Simple usage

+ +

Add this to your WORKSPACE file. It only tells Bazel how to find your +package.json file. It will use default versions of Node.js and npm.

+ +
# NOTE: this rule installs nodejs, npm, and yarn, but does NOT install
+# your npm dependencies into your node_modules folder.
+# You must still run the package manager to do this.
+node_repositories(package_json = ["//:package.json"])
+
+

Installation with a specific supported version of Node.js and Yarn

+ +

You can choose a specific version of Node.js that’s built into these rules. +You can also choose a specific version of Yarn. +Note that some of our packages have started to use features from Node 12, so you may see warnings if you use an older version.

+ +
+

Now that Node 12 is LTS (Long-term support) we encourage you to upgrade, and don’t intend to fix bugs which are only observed in Node 10 or lower.

+
+ +

The available versions are documented on the node_repositories rule in the Built-ins.

+ +

Add to WORKSPACE:

+ +
# NOTE: this rule installs nodejs, npm, and yarn, but does NOT install
+# your npm dependencies into your node_modules folder.
+# You must still run the package manager to do this.
+node_repositories(
+    package_json = ["//:package.json"],
+    node_version = "8.11.1",
+    yarn_version = "1.5.1",
+)
+
+ +

Installation with a manually specified version of NodeJS and Yarn

+ +

If you’d like to use a version of NodeJS and/or Yarn that are not currently supported here, you can manually +specify those in your WORKSPACE:

+ +
load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories")
+
+# NOTE: this rule does NOT install your npm dependencies into your node_modules folder.
+# You must still run the package manager to do this.
+node_repositories(
+  node_version = "8.10.0",
+  yarn_version = "1.5.1",
+  node_repositories = {
+    "8.10.0-darwin_amd64": ("node-v8.10.0-darwin-x64.tar.gz", "node-v8.10.0-darwin-x64", "7d77bd35bc781f02ba7383779da30bd529f21849b86f14d87e097497671b0271"),
+    "8.10.0-linux_amd64": ("node-v8.10.0-linux-x64.tar.xz", "node-v8.10.0-linux-x64", "92220638d661a43bd0fee2bf478cb283ead6524f231aabccf14c549ebc2bc338"),
+    "8.10.0-windows_amd64": ("node-v8.10.0-win-x64.zip", "node-v8.10.0-win-x64", "936ada36cb6f09a5565571e15eb8006e45c5a513529c19e21d070acf0e50321b"),
+  },
+  yarn_repositories = {
+    "1.5.1": ("yarn-v1.5.1.tar.gz", "yarn-v1.5.1", "cd31657232cf48d57fdbff55f38bfa058d2fb4950450bd34af72dac796af4de1"),
+  },
+  node_urls = ["https://nodejs.org/dist/v{version}/{filename}"],
+  yarn_urls = ["https://github.com/yarnpkg/yarn/releases/download/v{version}/{filename}"],
+  package_json = ["//:package.json"])
+
+ +

Specifying node_urls and yarn_urls is optional. If omitted, the default values will be used. You may also use a custom NodeJS version and the default Yarn version or vice-versa.

+ +

Installation with local vendored versions of NodeJS and Yarn

+ +

Finally, you could check Node.js and Yarn into your repository, and not fetch +them from the internet. This is what we do internally at Google.

+ +
load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories")
+
+# Point node_repositories to use locally installed versions of Node.js and Yarn.
+# The vendored_node and vendored_yarn labels point to the extracted contents of
+# https://nodejs.org/dist/v10.12.0/node-v10.12.0-linux-x64.tar.xz and
+# https://github.com/yarnpkg/yarn/releases/download/v1.10.0/yarn-v1.10.0.tar.gz
+# respectively. NOTE: node-v10.12.0-linux-x64 will only work on Linux.
+node_repositories(
+  vendored_node = "@wksp//:third_party/node-v10.12.0-linux-x64",
+  vendored_yarn = "@wksp//:third_party/yarn-v1.10.0",
+  package_json = ["//:package.json"])
+
+ +

In this case, the locally installed Node.js and Yarn are located in the wksp workspace in +the third_party/node-v10.12.0-linux-x64 and third_party/yarn-v1.10.0 folders. When using +vendored_node, you will be restricted to a single platform. vendored_yarn on the other hand, +is platform independent. See /examples/vendored_node in this repository for an example of this +in use.

+ +

NOTE: Vendored Node.js and Yarn are not compatible with Remote Bazel Execution.

+ +

Toolchains

+ +

When you add node_repositories() to your WORKSPACE file it will setup a node toolchain for all currently supported platforms, Linux, macOS and Windows. Amongst other things this adds support for cross-compilations as well as Remote Build Execution support. For more detailed information also see Bazel Toolchains.

+ +

If you have an advanced use-case you can also register your own toolchains and call node_toolchain_configure directly to manually setup a toolchain.

+ +

Cross-compilation

+ +

Toolchains allow us to support cross-compilation, e.g. building a linux binary from mac or windows. To tell Bazel to provide a toolchain for a different platform you have to pass in the --platforms flag. Currently supported values are:

+ +
    +
  • @build_bazel_rules_nodejs//toolchains/node:linux_amd64
  • +
  • @build_bazel_rules_nodejs//toolchains/node:linux_arm64
  • +
  • @build_bazel_rules_nodejs//toolchains/node:linux_s390x
  • +
  • @build_bazel_rules_nodejs//toolchains/node:darwin_amd64
  • +
  • @build_bazel_rules_nodejs//toolchains/node:windows_amd64
  • +
+ +

So if for example you want to build a docker image from a non-linux platform you would run bazel build --platforms=@build_bazel_rules_nodejs//toolchains/node:linux_amd64 //app, which will ensure that the linux nodejs binary is downloaded and provided to the nodejs_binary target.

+ +

Note: The toolchain currently only provides a platform-specific nodejs binary. Any native modules will still be fetched/built, by npm/yarn, for your host platform, so they will not work on the target platform. Support for cross-compilation with native dependencies will follow.

+ +
+
+ + +
+
+ +
+
+
+
+

© 2020 The rules_nodejs authors

+
+
+
+ +
+ + + + + + + + + + + + + + + diff --git a/docs/install.md b/docs/install.md index 813b1fb0cf..59e47b68b0 100644 --- a/docs/install.md +++ b/docs/install.md @@ -1,10 +1,10 @@ --- title: Installation layout: default -stylesheet: docs +toc: true --- -## Custom installation +# Custom installation First, you need Bazel. We recommend using Bazelisk, which is a version-selection wrapper, similar to @@ -17,12 +17,12 @@ $ yarn add -D @bazel/bazelisk @bazel/ibazel $ npm install --save-dev @bazel/bazelisk @bazel/ibazel ``` -> You could install a current bazel distribution, following the [bazel instructions]. +You could install a current bazel distribution, following the [bazel instructions]. -> If you use Bazelisk, see [this workaround](https://github.com/bazelbuild/bazelisk/issues/29#issuecomment-478062147) to get working command-line completion. +If you use Bazelisk, see [this workaround](https://github.com/bazelbuild/bazelisk/issues/29#issuecomment-478062147) to get working command-line completion. -> It's reasonable to globally-install bazelisk so you get a `bazel` command in your $PATH. -> We don't recommend this with ibazel as the version is frequently changing. +It's reasonable to globally-install bazelisk so you get a `bazel` command in your $PATH. +We don't recommend this with ibazel as the version is frequently changing. Next, create a `WORKSPACE` file in your project root (or edit the existing one) containing: @@ -31,8 +31,8 @@ containing: load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_nodejs", - sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.1/rules_nodejs-2.0.1.tar.gz"], + sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"], ) load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories") @@ -49,7 +49,7 @@ To choose a version of Node.js: These are described in more detail in the following sections. -### Simple usage +## Simple usage Add this to your `WORKSPACE` file. It only tells Bazel how to find your `package.json` file. It will use default versions of Node.js and npm. @@ -60,7 +60,7 @@ Add this to your `WORKSPACE` file. It only tells Bazel how to find your # You must still run the package manager to do this. node_repositories(package_json = ["//:package.json"]) ``` -### Installation with a specific supported version of Node.js and Yarn +## Installation with a specific supported version of Node.js and Yarn You can choose a specific version of Node.js that's built into these rules. You can also choose a specific version of Yarn. @@ -68,7 +68,7 @@ Note that some of our packages have started to use features from Node 12, so you > Now that Node 12 is LTS (Long-term support) we encourage you to upgrade, and don't intend to fix bugs which are only observed in Node 10 or lower. -The available versions are documented on the `node_repositories` rule in the [Built-ins](Built-ins.md). +The available versions are documented on the `node_repositories` rule in the [Built-ins](Built-ins). Add to `WORKSPACE`: @@ -83,7 +83,7 @@ node_repositories( ) ``` -### Installation with a manually specified version of NodeJS and Yarn +## Installation with a manually specified version of NodeJS and Yarn If you'd like to use a version of NodeJS and/or Yarn that are not currently supported here, you can manually specify those in your `WORKSPACE`: @@ -111,7 +111,7 @@ node_repositories( Specifying `node_urls` and `yarn_urls` is optional. If omitted, the default values will be used. You may also use a custom NodeJS version and the default Yarn version or vice-versa. -### Installation with local vendored versions of NodeJS and Yarn +## Installation with local vendored versions of NodeJS and Yarn Finally, you could check Node.js and Yarn into your repository, and not fetch them from the internet. This is what we do internally at Google. @@ -138,290 +138,19 @@ in use. NOTE: Vendored Node.js and Yarn are not compatible with Remote Bazel Execution. -## Dependencies - -Bazel works alongside your existing package manager, either npm or yarn. -You manage your `package.json` file, editing by hand or by running commands like `npm install` or `yarn add`. -The package manager will also write a lock file, indicating exact versions for all transitive dependencies, which keeps your build hermetic and reproducible. -Bazel will run the package manager when the `package.json` or `*lock.json` files change, but you can also run the package manager yourself. - -### Bazel-managed vs self-managed dependencies - -You have two options for managing your `node_modules` dependencies: Bazel-managed or self-managed. - -With the Bazel-managed dependencies approach, Bazel is responsible for making sure that `node_modules` is -up to date with your `package[-lock].json` or `yarn.lock` files. This means Bazel will set it up when the -repository is first cloned, and rebuild it whenever it changes. With the `yarn_install` or `npm_install` -repository rules, Bazel will setup your `node_modules` for you in an external workspace named after the -repository rule. For example, a `yarn_install(name = "npm", ...)` will setup an external -workspace named `@npm` with the `node_modules` folder inside of it as well as generating targets for each -root npm package in `node_modules` for use as dependencies to other rules. - -For Bazel to provide the strongest guarantees about reproducibility and the -fidelity of your build, it is recommended that you use Bazel-managed dependencies. -This approach also allows you to use the generated fine-grained npm package dependencies -which can significantly reduce the number of inputs to actions, making Bazel sand-boxing and -remote-execution faster if there are a large number of files under `node_modules`. - -> Note that as of Bazel 0.26, and with the recommended `managed_directories` attribute on the `workspace` rule in `/WORKSPACE`, -> the Bazel-managed `node_modules` directory is placed in your workspace root in the standard location used by npm or yarn. - -### Using Bazel-managed dependencies - -To have Bazel manage its own copy of `node_modules`, which is useful to avoid -juggling multiple toolchains, you can add one of the following to your `WORKSPACE` -file: - -Using Yarn (preferred): - -```python -load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") - -yarn_install( - name = "npm", - package_json = "//:package.json", - yarn_lock = "//:yarn.lock", -) -``` - -Using NPM: - -```python -load("@build_bazel_rules_nodejs//:index.bzl", "npm_install") - -npm_install( - name = "npm", - package_json = "//:package.json", - package_lock_json = "//:package-lock.json", -) -``` - -> If you don't need to pass any arguments to `node_repositories`, - you can skip calling that function. `yarn_install` and `npm_install` will do it by default. - -You should now add the `@npm` workspace to the `managed_directories` option in the `workspace` rule at the top of the file. This tells Bazel that the `node_modules` directory is special and is managed by the package manager. -Add the `workspace` rule if it isn't already in your `/WORKSPACE` file. - -```python -workspace( - name = "my_wksp", - managed_directories = {"@npm": ["node_modules"]}, -) -``` - -As of Bazel 0.26 this feature is still experimental, so also add this line to the `.bazelrc` to opt-in: - -``` -common --experimental_allow_incremental_repository_updates -``` - -#### yarn_install vs. npm_install - -`yarn_install` is the preferred rule for setting up Bazel-managed dependencies for a number of reasons: - -* `yarn_install` will use the global yarn cache by default which will improve your build performance (this can be turned off with the `use_global_yarn_cache` attribute) -* npm has a known peer dependency hoisting issue that can lead to missing peer dependencies in some cases (see https://github.com/bazelbuild/rules_nodejs/issues/416) - -#### Fine-grained npm package dependencies - -You can then reference individual npm packages in your `BUILD` rules via: - -```python -load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary") - -nodejs_binary( - name = "bar", - data = [ - "@npm//foo", - "@npm//baz", - ] - ... -) -``` - -In this case, the `bar` nodejs_binary depends only the `foo` and `baz` npm packages -and all of their transitive deps. - -For other rules such as `jasmine_node_test`, fine grained -npm dependencies are specified in the `deps` attribute: - -```python -jasmine_node_test( - name = "test", - ... - deps = [ - "@npm//jasmine", - "@npm//foo", - "@npm//baz", - ... - ], -) -``` - -#### Multiple sets of npm dependencies - -If your workspace has multiple applications, each with their own `package.json` -and npm deps, `yarn_install` (or `npm_install`) can be called separately for -each. - -```python -workspace( - name = "my_wksp", - managed_directories = { - "@app1_npm": ["app1/node_modules"], - "@app2_npm": ["app2/node_modules"], - }, -) - -yarn_install( - name = "app1_npm", - package_json = "//app1:package.json", - yarn_lock = "//app1:yarn.lock", -) - -yarn_install( - name = "app2_npm", - package_json = "//app2:package.json", - yarn_lock = "//app2:yarn.lock", -) -``` - -Your application would then reference its deps as (for example) `@app1_npm//lodash`, or `@app2_npm//jquery`. - -#### Fine-grained npm package nodejs_binary targets - -If an npm package lists one or more `bin` entry points in its `package.json`, -`nodejs_binary` targets will be generated for these. - -For example, the `protractor` package has two bin entries in its `package.json`: - -```json - "bin": { - "protractor": "bin/protractor", - "webdriver-manager": "bin/webdriver-manager" - }, -``` - -These will result in two generated `nodejs_binary` targets in the `@npm//protractor/bin` -package (if your npm deps workspace is `@npm`): - -* `@npm//protractor/bin:protractor` -* `@npm//protractor/bin:webdriver-manager` - -These targets can be used as executables for actions in custom rules or can -be run by Bazel directly. For example, you can run protractor with the -following: - -```sh -$ bazel run @npm//protractor/bin:protractor -``` - -Note: These targets are in the `protractor/bin` package so they don't -conflict with the targets to use in deps[]. For example, `@npm//protractor:protractor` -is target to use in deps[] while `@npm//protractor/bin:protractor` is the binary target. - -#### Coarse node_modules dependencies - -Using fine grained npm dependencies is recommended to minimize -the number of inputs to your rules. However, for backward compatibility -there are also filegroups defined by `yarn_install` and `npm_install` -that include all packages under `node_modules` and which can be used -with the `node_modules` attribute of nodejs rules. - -* `@npm//:node_modules` includes all packages under `node_modules` as well as the `.bin` folder - -```python -load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary") - -nodejs_binary( - name = "bar", - node_modules = "@npm//:node_modules", -) -``` - -### Using self-managed dependencies - -If you'd like to have Bazel use the `node_modules` directory you are managing, -then next you will create a `BUILD.bazel` file in your project root containing: - -```python -package(default_visibility = ["//visibility:public"]) - -filegroup( - name = "node_modules", - srcs = glob( - include = ["node_modules/**/*"], - exclude = [ - # Files under test & docs may contain file names that - # are not legal Bazel labels (e.g., - # node_modules/ecstatic/test/public/中文/檔案.html) - "node_modules/test/**", - "node_modules/docs/**", - # Files with spaces are not allowed in Bazel runfiles - # See https://github.com/bazelbuild/bazel/issues/4327 - "node_modules/**/* */**", - "node_modules/**/* *", - ], - ), -) -``` - -The example in `examples/user_managed_deps` uses self-managed dependencies. - -To use the Yarn package manager, which we recommend for its built-in -verification command, you can run: - -```sh -$ bazel run @nodejs//:yarn_node_repositories -``` - -If you use npm instead, run: - -```sh -$ bazel run @nodejs//:npm_node_repositories install -``` - -The `@nodejs//:yarn_node_repositories` and `@nodejs//:npm_node_repositories` targets will run yarn/npm on all of the -package.json contexts listed `package_json` attribute of the `node_repositories` -repository rule in your WORKSPACE file (`node_repositories(package_json = [...])`). - -If there are multiple package.json contexts in this rule but you would like to -run the bazel managed yarn or npm on a single context this can be done -using the following targets: - -```sh -$ bazel run @nodejs//:yarn -- -``` - -If you use npm instead, run: - -```sh -$ bazel run @nodejs//:npm -- -``` - -This will run yarn/npm in the current working directory. To add a package with the `yarn add` command, -for example, you would use: - -```sh -$ bazel run @nodejs//:yarn -- add -``` - -Note: the arguments passed to `bazel run` after `--` are forwarded to the executable being run. - -[bazel instructions]: https://docs.bazel.build/versions/master/install.html - -### Toolchains +## Toolchains When you add `node_repositories()` to your `WORKSPACE` file it will setup a node toolchain for all currently supported platforms, Linux, macOS and Windows. Amongst other things this adds support for cross-compilations as well as Remote Build Execution support. For more detailed information also see [Bazel Toolchains](https://docs.bazel.build/versions/master/toolchains.html). If you have an advanced use-case you can also register your own toolchains and call `node_toolchain_configure` directly to manually setup a toolchain. -#### Cross-compilation +### Cross-compilation Toolchains allow us to support cross-compilation, e.g. building a linux binary from mac or windows. To tell Bazel to provide a toolchain for a different platform you have to pass in the `--platforms` flag. Currently supported values are: - `@build_bazel_rules_nodejs//toolchains/node:linux_amd64` - `@build_bazel_rules_nodejs//toolchains/node:linux_arm64` +- `@build_bazel_rules_nodejs//toolchains/node:linux_s390x` - `@build_bazel_rules_nodejs//toolchains/node:darwin_amd64` - `@build_bazel_rules_nodejs//toolchains/node:windows_amd64` diff --git a/docs/repositories.html b/docs/repositories.html new file mode 100755 index 0000000000..e67503b3fa --- /dev/null +++ b/docs/repositories.html @@ -0,0 +1,355 @@ + + + + + + + + + + rules_nodejs - Generated Repositories + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+ + +
+
+

Generated Repositories

+ +

rules_nodejs produces several repositories for you to reference. +Bazel represents your workspace as one repository, and code fetched or installed from outside your workspace lives in other repositories. +These are referenced with the @repo// syntax in your BUILD files.

+ +

@nodejs

+ +

This repository is created by calling the node_repositories function in your WORKSPACE file. +It contains the node, npm, and yarn programs.

+ +

As always, bazel query is useful for learning about what targets are available.

+ +
$ bazel query @nodejs//...
+@nodejs//:node
+...
+
+ +

You don’t typically need to reference the @nodejs repository from your BUILD files because it’s used behind the scenes +to run node and fetch dependencies.

+ +

Some ways you can use this:

+ +
    +
  • Run the Bazel-managed version of node: bazel run @nodejs//:node path/to/program.js
  • +
  • Run the Bazel-managed version of npm: bazel run @nodejs//:npm
  • +
  • Run the Bazel-managed version of yarn: bazel run @nodejs//:yarn
  • +
  • Install dependencies from nested package.json file(s) which were passed to node_repositories#package.json +
      +
    • using npm: bazel run @nodejs//:npm_node_repositories install
    • +
    • using yarn: bazel run @nodejs//:yarn_node_repositories
    • +
    +
  • +
+ +

@npm

+ +

This repository is created by calling the npm_install or yarn_install function in your WORKSPACE file.

+ +

The name @npm is recommended in the simple case that you install only a single package.json file. +If you have multiple, call the npm_install or yarn_install multiple times, and give each one a unique name. +This results in multiple repositories, named whatever you chose, rather than “npm”. +The following applies to any repository created by npm_install , or yarn_install, just replace @npm with the name you chose.

+ +

Again, use bazel query @npm//... to learn about all the targets declared in this repository.

+ +

Our philosophy is to mirror the installed npm dependencies in a way that’s idiomatic to reference them in Bazel.

+ +

Commonly used ones are:

+ +
    +
  • Every file that was installed from npm: @npm//:node_modules. This target can have a very large number of files and slow down your build, however it’s a simple way to skip having to declare more fine-grained inputs to your BUILD targets.
  • +
  • If you had a dependency on the foo package, you can reference @npm//foo to get all the files. We mirror the npm dependency graph, so if foo declares a dependency on another package dep, Bazel will include that dependency when foo is used.
  • +
  • If the foo package has an executable program bar, then @npm//foo/bin:bar is a nodejs_binary that you can call with bazel run or can pass as the executable to your own rules.
  • +
  • Sometimes you need a UMD bundle, but a package doesn’t ship one. For example, the ts_devserver rule depends on third-party libraries having a named UMD entry point. The @npm//foo:foo__umd target will automatically run Browserify to convert the package’s main entry into UMD.
  • +
  • DEPRECATED: A helper to install npm packages into their own Bazel repository: @npm//:install_bazel_dependencies.bzl provides a install_bazel_dependencies function. Some npm packages ship custom bazel rules, for example, the @angular/bazel package provides rules which you should load from @npm_angular_bazel//:index.bzl. However this causes the build to always fetch npm packages even when not needed, so we plan to remove this in a future release.
  • +
+ +
+

One convenient (maybe also confusing) way to understand what BUILD files are generated is to look at our integration test at https://github.com/bazelbuild/rules_nodejs/tree/stable/internal/npm_install/test/golden - this directory looks similar to the content of an @npm repository.

+
+ +

Generated macros for npm packages with bin entries

+ +

Any installed package that has one or more bin entries in the package.json get convenient macros generated. +These are the Bazel equivalent of the ./node_modules/.bin/* files in your project which the package manager created.

+ +

For a package foo with some bin entries, we will create a .bzl file where you can load rules, at @npm//foo:index.bzl

+ +

If the foo package contains a bin entry bar, the index.bzl file will contain bar and bar_test macros. You can load these two generated rules in your BUILD file:

+ +

load("@npm//foo:index.bzl", "bar", "bar_test")

+ +

The bar macro can be called in two ways. If you pass outs or output_dir, it produces an npm_package_bin rule that invokes the tool to transform some inputs to outputs, useful as a dependency of another rule, or with bazel build. If you don’t pass outs or output_dir, then it will produce a nodejs_binary rule intended for use with bazel run. (The latter is identical to the @npm//foo/bin:bar target, just giving you a convenient way to alias it with a different label and pass it arguments).

+ +

See examples in rules_nodejs. A typical tool to use with outs is Babel, while a typical rule with no outputs is http_server.

+ +

The bar_test macro produces a nodejs_test that assumes the tool is a test runner, and produces a zero or one exit code, useful as a target with bazel test. See the examples of mocha_test in rules_nodejs.

+ +

You can also read https://dev.to/bazel/layering-in-bazel-for-web-389h to see an end-to-end example of using the generated bin macros.

+ +
+
+ + +
+
+ +
+
+
+
+

© 2020 The rules_nodejs authors

+
+
+
+ +
+ + + + + + + + + + + + + + + diff --git a/docs/repositories.md b/docs/repositories.md index fca1b59863..fd10284db5 100644 --- a/docs/repositories.md +++ b/docs/repositories.md @@ -1,8 +1,9 @@ --- title: Generated Repositories layout: default -stylesheet: docs +toc: true --- +# Generated Repositories rules_nodejs produces several repositories for you to reference. Bazel represents your workspace as one repository, and code fetched or installed from outside your workspace lives in other repositories. @@ -56,7 +57,7 @@ Commonly used ones are: > One convenient (maybe also confusing) way to understand what BUILD files are generated is to look at our integration test at https://github.com/bazelbuild/rules_nodejs/tree/stable/internal/npm_install/test/golden - this directory looks similar to the content of an `@npm` repository. -### Generated macros for npm packages with `bin` entries +## Generated macros for npm packages with `bin` entries Any installed package that has one or more `bin` entries in the package.json get convenient macros generated. These are the Bazel equivalent of the `./node_modules/.bin/*` files in your project which the package manager created. diff --git a/docs/search.html b/docs/search.html new file mode 100755 index 0000000000..fbc161ffb8 --- /dev/null +++ b/docs/search.html @@ -0,0 +1,162 @@ + + + + + + + + + + rules_nodejs - Search + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+ +
+
+
+
+

© 2020 The rules_nodejs authors

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + diff --git a/docs/search.md b/docs/search.md new file mode 100644 index 0000000000..88defcbb68 --- /dev/null +++ b/docs/search.md @@ -0,0 +1,5 @@ +--- +title: Search +layout: search +toc: false +--- diff --git a/docs/stamping.html b/docs/stamping.html new file mode 100755 index 0000000000..f0b74810a4 --- /dev/null +++ b/docs/stamping.html @@ -0,0 +1,366 @@ + + + + + + + + + + rules_nodejs - Home + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+ + +
+
+

Stamping

+ +

Bazel is generally only a build tool, and is unaware of your version control system. +However, when publishing releases, you may want to embed version information in the resulting distribution. +Bazel supports this with the concept of a “Workspace status” which is evaluated before each build. +See the Bazel workspace status docs

+ +

To stamp a build, you must pass the --stamp argument to Bazel.

+ +

Stamping is typically performed on a later action in the graph, like on a packaging rule (pkg_*). This means that +a changed status variable only causes re-packaging, not re-compilation and thus does not cause cascading re-builds.

+ +

Bazel provides a couple of statuses by default, such as BUILD_EMBED_LABEL which is the value of the --embed_label +argument, as well as BUILD_HOST and BUILD_USER. You can supply more with the workspace status script, see below.

+ +

Some rules accept an attribute that uses the status variables.

+ +

Substitutions attribute

+ +

In a pkg_npm or pkg_web you can use the substitutions attribute like:

+ +
pkg_npm(
+    name = "npm_package",
+    substitutions = {"0.0.0-PLACEHOLDER": "{STABLE_GIT_COMMIT}"},
+)
+
+ +

In a --stamp build, this will replace the string “0.0.0-PLACEHOLDER” in any file included in the package with the current value of the STABLE_GIT_COMMIT variable. +However without stamping the placeholder will be left as-is.

+ +

Read the status files

+ +

The rollup_bundle rule just exposes the Bazel status files so that your custom rollup.config.js can read it. +See Rollup.

+ +

Stamping with a Workspace status script

+ +

To define additional statuses, pass the --workspace_status_command argument to bazel. +The value of this flag is a path to a script that prints space-separated key/value pairs, one per line, such as

+ +
#!/usr/bin/env bash
+echo STABLE_GIT_COMMIT $(git rev-parse HEAD)
+
+
+

For a more full-featured script, take a look at the bazel_stamp_vars in Angular

+
+ +

Make sure you set the executable bit, eg. chmod 755 tools/bazel_stamp_vars.sh.

+ +
+

NOTE keys start start with STABLE_ will cause a re-build when they change. +Other keys will NOT cause a re-build, so stale values can appear in your app. +Non-stable (volatile) keys should typically be things like timestamps that always vary between builds.

+
+ +

You might like to encode your setup using an entry in .bazelrc such as:

+ +
# This tells Bazel how to interact with the version control system
+# Enable this with --config=release
+build:release --stamp --workspace_status_command=./tools/bazel_stamp_vars.sh
+
+ +

Release script

+ +

If you publish more than one package from your workspace, you might want a release script around Bazel. +A nice pattern is to do a bazel query to find publishable targets, build them in parallel, then publish in a loop. +Here is a template to get you started:

+ +
#!/usr/bin/env bash
+
+set -u -e -o pipefail
+
+# Call the script with argument "pack" or "publish"
+readonly NPM_COMMAND=${1:-publish}
+# Don't rely on $PATH to have the right version
+readonly BAZEL=./node_modules/.bin/bazel
+# Find all the npm packages in the repo
+readonly PKG_NPM_LABELS=`$BAZEL query --output=label 'kind("pkg_npm", //...)'`
+# Build them in one command to maximize parallelism
+$BAZEL build --config=release $PKG_NPM_LABELS
+# publish one package at a time to make it easier to spot any errors or warnings
+for pkg in $PKG_NPM_LABELS ; do
+  $BAZEL run --config=release -- ${pkg}.${NPM_COMMAND} --access public --tag latest
+done
+
+ +

See https://www.kchodorow.com/blog/2017/03/27/stamping-your-builds/ for more background. +Make sure you use a “STABLE_” status key, or else Bazel may use a cached npm artifact rather than +building a new one with your current version info.

+ + +
+
+ + +
+
+ +
+
+
+
+

© 2020 The rules_nodejs authors

+
+
+
+ +
+ + + + + + + + + + + + + + + diff --git a/docs/stamping.md b/docs/stamping.md new file mode 100644 index 0000000000..605a8d9ed2 --- /dev/null +++ b/docs/stamping.md @@ -0,0 +1,97 @@ +--- +title: Home +layout: default +toc: true +--- + +# Stamping + +Bazel is generally only a build tool, and is unaware of your version control system. +However, when publishing releases, you may want to embed version information in the resulting distribution. +Bazel supports this with the concept of a "Workspace status" which is evaluated before each build. +See [the Bazel workspace status docs](https://docs.bazel.build/versions/master/user-manual.html#workspace_status) + +To stamp a build, you must pass the `--stamp` argument to Bazel. + +Stamping is typically performed on a later action in the graph, like on a packaging rule (`pkg_*`). This means that +a changed status variable only causes re-packaging, not re-compilation and thus does not cause cascading re-builds. + +Bazel provides a couple of statuses by default, such as `BUILD_EMBED_LABEL` which is the value of the `--embed_label` +argument, as well as `BUILD_HOST` and `BUILD_USER`. You can supply more with the workspace status script, see below. + +Some rules accept an attribute that uses the status variables. + +## Substitutions attribute + +In a `pkg_npm` or `pkg_web` you can use the `substitutions` attribute like: + +```python +pkg_npm( + name = "npm_package", + substitutions = {"0.0.0-PLACEHOLDER": "{STABLE_GIT_COMMIT}"}, +) +``` + +In a `--stamp` build, this will replace the string "0.0.0-PLACEHOLDER" in any file included in the package with the current value of the `STABLE_GIT_COMMIT` variable. +However without stamping the placeholder will be left as-is. + +## Read the status files + +The `rollup_bundle` rule just exposes the Bazel status files so that your custom `rollup.config.js` can read it. +See [Rollup](Rollup). + +## Stamping with a Workspace status script + +To define additional statuses, pass the `--workspace_status_command` argument to `bazel`. +The value of this flag is a path to a script that prints space-separated key/value pairs, one per line, such as + +```bash +#!/usr/bin/env bash +echo STABLE_GIT_COMMIT $(git rev-parse HEAD) +``` +> For a more full-featured script, take a look at the [bazel_stamp_vars in Angular] + +Make sure you set the executable bit, eg. `chmod 755 tools/bazel_stamp_vars.sh`. + +> **NOTE** keys start start with `STABLE_` will cause a re-build when they change. +> Other keys will NOT cause a re-build, so stale values can appear in your app. +> Non-stable (volatile) keys should typically be things like timestamps that always vary between builds. + +You might like to encode your setup using an entry in `.bazelrc` such as: + +```sh +# This tells Bazel how to interact with the version control system +# Enable this with --config=release +build:release --stamp --workspace_status_command=./tools/bazel_stamp_vars.sh +``` + +## Release script + +If you publish more than one package from your workspace, you might want a release script around Bazel. +A nice pattern is to do a `bazel query` to find publishable targets, build them in parallel, then publish in a loop. +Here is a template to get you started: + +```sh +#!/usr/bin/env bash + +set -u -e -o pipefail + +# Call the script with argument "pack" or "publish" +readonly NPM_COMMAND=${1:-publish} +# Don't rely on $PATH to have the right version +readonly BAZEL=./node_modules/.bin/bazel +# Find all the npm packages in the repo +readonly PKG_NPM_LABELS=`$BAZEL query --output=label 'kind("pkg_npm", //...)'` +# Build them in one command to maximize parallelism +$BAZEL build --config=release $PKG_NPM_LABELS +# publish one package at a time to make it easier to spot any errors or warnings +for pkg in $PKG_NPM_LABELS ; do + $BAZEL run --config=release -- ${pkg}.${NPM_COMMAND} --access public --tag latest +done +``` + +See https://www.kchodorow.com/blog/2017/03/27/stamping-your-builds/ for more background. +Make sure you use a "STABLE_" status key, or else Bazel may use a cached npm artifact rather than +building a new one with your current version info. + +[bazel_stamp_vars in Angular]: https://github.com/angular/angular/blob/master/tools/bazel_stamp_vars.sh diff --git a/e2e/BUILD.bazel b/e2e/BUILD.bazel index 4e1300a259..fedfbcefcf 100644 --- a/e2e/BUILD.bazel +++ b/e2e/BUILD.bazel @@ -21,6 +21,26 @@ e2e_integration_test( }, ) +e2e_integration_test( + name = "e2e_coverage", + bazel_commands = [ + "info", + "coverage ...", + ], + npm_packages = { + "//packages/jasmine:npm_package": "@bazel/jasmine", + "//packages/typescript:npm_package": "@bazel/typescript", + }, + # Coverage not working on Windows. Looks like a bazel issue. + # ==================== Test output for //:coverage_test: + # ERROR(tools/test/windows/tw.cc:1262) ERROR: src/main/native/windows/process.cc(199): CreateProcessW("C:\users\b\_bazel_b\tpt6yasm\execroot\e2e_coverage\bazel-out\x64_windows-fastbuild\bin\coverage_test.bat.runfiles\bazel_tools\tools\test\collect_coverage.sh" ./coverage_test.bat): The system cannot find the file specified. + # (error: 2) + # ERROR(tools/test/windows/tw.cc:1419) Failed to start test process (arg: C:\users\b\_bazel_b\tpt6yasm\execroot\e2e_coverage\bazel-out\x64_windows-fastbuild\bin\coverage_test.bat.runfiles\bazel_tools\tools\test\collect_coverage.sh) + tags = [ + "no-bazelci-windows", + ], +) + e2e_integration_test( name = "e2e_fine_grained_symlinks", ) diff --git a/e2e/bazel_managed_deps/WORKSPACE b/e2e/bazel_managed_deps/WORKSPACE index 48c80fe081..1128b70fc0 100644 --- a/e2e/bazel_managed_deps/WORKSPACE +++ b/e2e/bazel_managed_deps/WORKSPACE @@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_nodejs", - sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.1/rules_nodejs-2.0.1.tar.gz"], + sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"], ) load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/e2e/bazel_managed_deps/package.json b/e2e/bazel_managed_deps/package.json index 055e15580e..8c2d5496a2 100644 --- a/e2e/bazel_managed_deps/package.json +++ b/e2e/bazel_managed_deps/package.json @@ -1,7 +1,7 @@ { "description": "runtime dependencies for bazel_managed_deps example", "devDependencies": { - "@bazel/jasmine": "^2.0.0", + "@bazel/jasmine": "^2.3.1", "jasmine": "^3.5.0", "typescript": "^3.0.1" }, diff --git a/e2e/bazel_managed_deps/yarn.lock b/e2e/bazel_managed_deps/yarn.lock index 8e84de99a5..a7048dedba 100644 --- a/e2e/bazel_managed_deps/yarn.lock +++ b/e2e/bazel_managed_deps/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@bazel/jasmine@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-2.0.0.tgz#e466ba8eb386eb777f8c4e502b8760ee3d173d1d" - integrity sha512-9RLgNAy10PRkLLP0+8YJr1I8vsVE8rZIfz467/SxROZq7zmIx3lErX101t0KHLmukXT+GusrkXIlB/Vwa8DN9Q== +"@bazel/jasmine@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-2.3.1.tgz#e4df8dd2b8d906e41e4073b5c49c700a962fe853" + integrity sha512-6QYTfJfbwPxCvKu4rOhG1YZUm94MbG4K2Dq1q2A2OUiM0eqAZG8T1HJAswDh7L286r5x9nRX8h7Pb7CyJvSmbg== dependencies: c8 "~7.1.0" jasmine-reporters "~2.3.2" diff --git a/e2e/coverage/.bazelignore b/e2e/coverage/.bazelignore new file mode 100644 index 0000000000..6924375195 --- /dev/null +++ b/e2e/coverage/.bazelignore @@ -0,0 +1,3 @@ +node_modules +dist +bazel-out diff --git a/e2e/coverage/.bazelrc b/e2e/coverage/.bazelrc new file mode 100644 index 0000000000..3431057af6 --- /dev/null +++ b/e2e/coverage/.bazelrc @@ -0,0 +1 @@ +import %workspace%/../../common.bazelrc diff --git a/e2e/coverage/BUILD.bazel b/e2e/coverage/BUILD.bazel new file mode 100644 index 0000000000..29b6d6564d --- /dev/null +++ b/e2e/coverage/BUILD.bazel @@ -0,0 +1,23 @@ +load("@npm//@bazel/jasmine:index.bzl", "jasmine_node_test") +load("@npm//@bazel/typescript:index.bzl", "ts_library") + +ts_library( + name = "coverage_test_srcs", + srcs = ["coverage_source.ts"], +) + +jasmine_node_test( + name = "coverage_test", + srcs = [ + "coverage.spec.js", + ":coverage_test_srcs", + ], +) + +# Verify that the error code is propogated out from a failing spec +# when coverage is on +jasmine_node_test( + name = "fail_test", + srcs = ["fail.spec.js"], + expected_exit_code = 3, +) diff --git a/e2e/coverage/WORKSPACE b/e2e/coverage/WORKSPACE new file mode 100644 index 0000000000..3e88ab50b1 --- /dev/null +++ b/e2e/coverage/WORKSPACE @@ -0,0 +1,34 @@ +# Copyright 2017 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +workspace( + name = "e2e_coverage", + managed_directories = {"@npm": ["node_modules"]}, +) + +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") + +http_archive( + name = "build_bazel_rules_nodejs", + sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"], +) + +load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") + +yarn_install( + name = "npm", + package_json = "//:package.json", + yarn_lock = "//:yarn.lock", +) diff --git a/e2e/coverage/coverage.spec.js b/e2e/coverage/coverage.spec.js new file mode 100644 index 0000000000..a0151a1df6 --- /dev/null +++ b/e2e/coverage/coverage.spec.js @@ -0,0 +1,10 @@ +const {isString} = require('./coverage_source'); + +describe('coverage function', () => { + it('should cover one branch', () => { + expect(isString(2)).toBe(false); + }); + it('should cover the other branch', () => { + expect(isString('some string')).toBe(true); + }); +}); diff --git a/e2e/coverage/coverage_source.ts b/e2e/coverage/coverage_source.ts new file mode 100644 index 0000000000..45f569b949 --- /dev/null +++ b/e2e/coverage/coverage_source.ts @@ -0,0 +1,7 @@ +export function isString(input: string) { + if (typeof input === 'string') { + return true; + } else { + return false; + } +} diff --git a/e2e/coverage/fail.spec.js b/e2e/coverage/fail.spec.js new file mode 100644 index 0000000000..9405daee26 --- /dev/null +++ b/e2e/coverage/fail.spec.js @@ -0,0 +1,3 @@ +describe('jasmine_node_fail_test', () => { + it('should fail', () => {expect(0).toEqual(1)}); +}); diff --git a/e2e/coverage/package.json b/e2e/coverage/package.json new file mode 100644 index 0000000000..7ee4bccc50 --- /dev/null +++ b/e2e/coverage/package.json @@ -0,0 +1,12 @@ +{ + "name": "e2e-coverage", + "dependencies": { + "@bazel/jasmine": "^2.3.1", + "@bazel/typescript": "^2.3.1", + "jasmine": "3.6.1", + "typescript": "3.9.7" + }, + "scripts": { + "test": "bazel coverage ..." + } +} diff --git a/e2e/coverage/tsconfig.json b/e2e/coverage/tsconfig.json new file mode 100644 index 0000000000..0d66552006 --- /dev/null +++ b/e2e/coverage/tsconfig.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "lib": ["es2017", "dom"], + "strict": true, + "baseUrl": ".", + "target": "es2015", + } +} diff --git a/e2e/coverage/yarn.lock b/e2e/coverage/yarn.lock new file mode 100644 index 0000000000..0548517321 --- /dev/null +++ b/e2e/coverage/yarn.lock @@ -0,0 +1,1328 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@bazel/jasmine@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-2.3.1.tgz#e4df8dd2b8d906e41e4073b5c49c700a962fe853" + integrity sha512-6QYTfJfbwPxCvKu4rOhG1YZUm94MbG4K2Dq1q2A2OUiM0eqAZG8T1HJAswDh7L286r5x9nRX8h7Pb7CyJvSmbg== + dependencies: + c8 "~7.1.0" + jasmine-reporters "~2.3.2" + +"@bazel/typescript@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-2.3.1.tgz#f103c4a5230cabaffd8d574b7278265b5478f056" + integrity sha512-blgLpx+9Vh8DZWTVOYTWSk1HEU28FF+GwU1stFaemfY7/pUQfK/URb9FARRkw/v2UrPKCd9EBywFYQyPGSAb1A== + dependencies: + protobufjs "6.8.8" + semver "5.6.0" + source-map-support "0.5.9" + tsutils "2.27.2" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@istanbuljs/schema@^0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" + integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== + +"@mrmlnc/readdir-enhanced@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" + integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== + dependencies: + call-me-maybe "^1.0.1" + glob-to-regexp "^0.3.0" + +"@nodelib/fs.stat@^1.1.2": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" + integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== + +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + integrity sha1-m4sMxmPWaafY9vXQiToU00jzD78= + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + integrity sha1-NVy8mLr61ZePntCV85diHx0Ga3A= + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + integrity sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU= + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + integrity sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E= + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + integrity sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik= + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + integrity sha1-bMKyDFya1q0NzP0hynZz2Nf79o0= + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + integrity sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q= + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= + +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + +"@types/is-windows@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/is-windows/-/is-windows-1.0.0.tgz#1011fa129d87091e2f6faf9042d6704cdf2e7be0" + integrity sha512-tJ1rq04tGKuIJoWIH0Gyuwv4RQ3+tIu7wQrC0MV47raQ44kIzXSSFKfrxFUOWVRvesoF7mrTqigXmqoZJsXwTg== + +"@types/istanbul-lib-coverage@^2.0.1": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" + integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== + +"@types/long@^4.0.0": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" + integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== + +"@types/node@^10.1.0": + version "10.17.28" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.28.tgz#0e36d718a29355ee51cec83b42d921299200f6d9" + integrity sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +c8@~7.1.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/c8/-/c8-7.1.2.tgz#3fd785e8d264175ceffe92c74607f5cfb12f018d" + integrity sha512-lCEwL9lbvWOQLxoLw8RF7PM8Cdj+rKxRp/PyWC9S8xASvYHRwXQ2gxzsNTgLhQM1Utc1YDAjzQYPQIxVEyelGg== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@istanbuljs/schema" "^0.1.2" + find-up "^4.0.0" + foreground-child "^2.0.0" + furi "^2.0.0" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-report "^3.0.0" + istanbul-reports "^3.0.2" + rimraf "^3.0.0" + test-exclude "^6.0.0" + v8-to-istanbul "^4.1.2" + yargs "^15.0.0" + yargs-parser "^18.0.0" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +call-me-maybe@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" + integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= + +camelcase@^5.0.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +convert-source-map@^1.6.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +cross-spawn@^7.0.0: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +debug@^2.2.0, debug@^2.3.3: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +fast-glob@^2.2.6: + version "2.2.7" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" + integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== + dependencies: + "@mrmlnc/readdir-enhanced" "^2.2.1" + "@nodelib/fs.stat" "^1.1.2" + glob-parent "^3.1.0" + is-glob "^4.0.0" + merge2 "^1.2.3" + micromatch "^3.1.10" + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +foreground-child@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53" + integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^3.0.2" + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +furi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/furi/-/furi-2.0.0.tgz#13d85826a1af21acc691da6254b3888fc39f0b4a" + integrity sha512-uKuNsaU0WVaK/vmvj23wW1bicOFfyqSsAIH71bRZx8kA4Xj+YCHin7CJKJJjkIsmxYaPFLk9ljmjEyB7xF7WvQ== + dependencies: + "@types/is-windows" "^1.0.0" + is-windows "^1.0.2" + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-to-regexp@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" + integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= + +glob@^7.1.3: + version "7.1.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" + integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.1.4: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +isarray@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +istanbul-lib-coverage@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" + integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-reports@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" + integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +jasmine-core@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.6.0.tgz#491f3bb23941799c353ceb7a45b38a950ebc5a20" + integrity sha512-8uQYa7zJN8hq9z+g8z1bqCfdC8eoDAeVnM5sfqs7KHv9/ifoJ500m018fpFc7RDaO6SWCLCXwo/wPSNcdYTgcw== + +jasmine-reporters@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/jasmine-reporters/-/jasmine-reporters-2.3.2.tgz#898818ffc234eb8b3f635d693de4586f95548d43" + integrity sha512-u/7AT9SkuZsUfFBLLzbErohTGNsEUCKaQbsVYnLFW1gEuL2DzmBL4n8v90uZsqIqlWvWUgian8J6yOt5Fyk/+A== + dependencies: + mkdirp "^0.5.1" + xmldom "^0.1.22" + +jasmine@3.6.1: + version "3.6.1" + resolved "https://registry.yarnpkg.com/jasmine/-/jasmine-3.6.1.tgz#a20456b309a669b547a3c24bb2120f16f70cfc65" + integrity sha512-Jqp8P6ZWkTVFGmJwBK46p+kJNrZCdqkQ4GL+PGuBXZwK1fM4ST9BizkYgIwCFqYYqnTizAy6+XG2Ej5dFrej9Q== + dependencies: + fast-glob "^2.2.6" + jasmine-core "~3.6.0" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +long@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== + +make-dir@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +merge2@^1.2.3: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^3.1.10: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= + dependencies: + minimist "0.0.8" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +protobufjs@6.8.8: + version "6.8.8" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.8.8.tgz#c8b4f1282fd7a90e6f5b109ed11c84af82908e7c" + integrity sha512-AAmHtD5pXgZfi7GMpllpO3q1Xw1OYldr+dMUlAnffGTAhqkg72WdmSY71uKBF/JuyiKs8psYbtKrhi0ASCD8qw== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.0" + "@types/node" "^10.1.0" + long "^4.0.0" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +rimraf@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +semver@5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" + integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== + +semver@^6.0.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +signal-exit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +source-map-resolve@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@0.5.9: + version "0.5.9" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f" + integrity sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + +source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +supports-color@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + dependencies: + has-flag "^4.0.0" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +tslib@^1.8.1: + version "1.13.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" + integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== + +tsutils@2.27.2: + version "2.27.2" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.27.2.tgz#60ba88a23d6f785ec4b89c6e8179cac9b431f1c7" + integrity sha512-qf6rmT84TFMuxAKez2pIfR8UCai49iQsfB7YWVjV1bKpy/d0PWT5rEOSM6La9PiHZ0k1RRZQiwVdVJfQ3BPHgg== + dependencies: + tslib "^1.8.1" + +typescript@3.9.7: + version "3.9.7" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa" + integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +v8-to-istanbul@^4.1.2: + version "4.1.4" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-4.1.4.tgz#b97936f21c0e2d9996d4985e5c5156e9d4e49cd6" + integrity sha512-Rw6vJHj1mbdK8edjR7+zuJrpDtKIgNdAvTSAcpYfgMIw+u2dPDntD3dgN4XQFLU2/fvFQdzj+EeSGfd/jnY5fQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +xmldom@^0.1.22: + version "0.1.31" + resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.31.tgz#b76c9a1bd9f0a9737e5a72dc37231cf38375e2ff" + integrity sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ== + +y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + +yargs-parser@^18.0.0, yargs-parser@^18.1.1: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@^15.0.0: + version "15.3.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b" + integrity sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.1" diff --git a/e2e/fine_grained_symlinks/WORKSPACE b/e2e/fine_grained_symlinks/WORKSPACE index f6b4648361..700ddfc935 100644 --- a/e2e/fine_grained_symlinks/WORKSPACE +++ b/e2e/fine_grained_symlinks/WORKSPACE @@ -7,8 +7,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_nodejs", - sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.1/rules_nodejs-2.0.1.tar.gz"], + sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"], ) load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories", "yarn_install") diff --git a/e2e/fine_grained_symlinks/yarn.lock b/e2e/fine_grained_symlinks/yarn.lock index 371a0d350c..e7c8e64f9e 100644 --- a/e2e/fine_grained_symlinks/yarn.lock +++ b/e2e/fine_grained_symlinks/yarn.lock @@ -267,8 +267,8 @@ bluebird@^3.5.1: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7" bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + version "4.11.9" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" brace-expansion@^1.1.7: version "1.1.11" @@ -638,8 +638,8 @@ duplexify@^3.4.2, duplexify@^3.6.0: stream-shift "^1.0.0" elliptic@^6.0.0: - version "6.4.1" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" + version "6.5.3" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" dependencies: bn.js "^4.4.0" brorand "^1.0.1" @@ -902,8 +902,8 @@ hash-base@^3.0.0: safe-buffer "^5.0.1" hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.5" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.5.tgz#e38ab4b85dfb1e0c40fe9265c0e9b54854c23812" + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" dependencies: inherits "^2.0.3" minimalistic-assert "^1.0.1" @@ -955,14 +955,18 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" inherits@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + ini@~1.3.0: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" diff --git a/e2e/jasmine/WORKSPACE b/e2e/jasmine/WORKSPACE index 31d25b36ee..cf50deb220 100644 --- a/e2e/jasmine/WORKSPACE +++ b/e2e/jasmine/WORKSPACE @@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_nodejs", - sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.1/rules_nodejs-2.0.1.tar.gz"], + sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"], ) load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/e2e/jasmine/package.json b/e2e/jasmine/package.json index ccf7c35a3f..e4c3d30e08 100644 --- a/e2e/jasmine/package.json +++ b/e2e/jasmine/package.json @@ -1,7 +1,7 @@ { "name": "e2e-jasmine", "dependencies": { - "@bazel/jasmine": "^2.0.0", + "@bazel/jasmine": "^2.3.1", "zone.js": "0.8.29" }, "//": "Include an incompatible jasmine as a devDependency to verify that jasmine_node_test works regardless", diff --git a/e2e/jasmine/yarn.lock b/e2e/jasmine/yarn.lock index 777f950146..e54ea24ea3 100644 --- a/e2e/jasmine/yarn.lock +++ b/e2e/jasmine/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@bazel/jasmine@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-2.0.0.tgz#e466ba8eb386eb777f8c4e502b8760ee3d173d1d" - integrity sha512-9RLgNAy10PRkLLP0+8YJr1I8vsVE8rZIfz467/SxROZq7zmIx3lErX101t0KHLmukXT+GusrkXIlB/Vwa8DN9Q== +"@bazel/jasmine@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-2.3.1.tgz#e4df8dd2b8d906e41e4073b5c49c700a962fe853" + integrity sha512-6QYTfJfbwPxCvKu4rOhG1YZUm94MbG4K2Dq1q2A2OUiM0eqAZG8T1HJAswDh7L286r5x9nRX8h7Pb7CyJvSmbg== dependencies: c8 "~7.1.0" jasmine-reporters "~2.3.2" diff --git a/e2e/node_loader_no_preserve_symlinks/WORKSPACE b/e2e/node_loader_no_preserve_symlinks/WORKSPACE index 8b85296e66..a76d72c3d9 100644 --- a/e2e/node_loader_no_preserve_symlinks/WORKSPACE +++ b/e2e/node_loader_no_preserve_symlinks/WORKSPACE @@ -9,8 +9,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_nodejs", - sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.1/rules_nodejs-2.0.1.tar.gz"], + sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"], ) load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories", "yarn_install") diff --git a/e2e/node_loader_preserve_symlinks/WORKSPACE b/e2e/node_loader_preserve_symlinks/WORKSPACE index 729e1d1047..ebe9a58681 100644 --- a/e2e/node_loader_preserve_symlinks/WORKSPACE +++ b/e2e/node_loader_preserve_symlinks/WORKSPACE @@ -9,8 +9,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_nodejs", - sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.1/rules_nodejs-2.0.1.tar.gz"], + sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"], ) load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/e2e/nodejs_image/WORKSPACE b/e2e/nodejs_image/WORKSPACE index cf66c757f4..3074331ab0 100644 --- a/e2e/nodejs_image/WORKSPACE +++ b/e2e/nodejs_image/WORKSPACE @@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_nodejs", - sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.1/rules_nodejs-2.0.1.tar.gz"], + sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"], ) load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") @@ -35,15 +35,23 @@ yarn_install( http_archive( name = "io_bazel_rules_docker", - sha256 = "6287241e033d247e9da5ff705dd6ef526bac39ae82f3d17de1b69f8cb313f9cd", - strip_prefix = "rules_docker-0.14.3", - urls = ["https://github.com/bazelbuild/rules_docker/releases/download/v0.14.3/rules_docker-v0.14.3.tar.gz"], + sha256 = "4521794f0fba2e20f3bf15846ab5e01d5332e587e9ce81629c7f96c793bb7036", + strip_prefix = "rules_docker-0.14.4", + urls = ["https://github.com/bazelbuild/rules_docker/releases/download/v0.14.4/rules_docker-v0.14.4.tar.gz"], ) load("@io_bazel_rules_docker//repositories:repositories.bzl", container_repositories = "repositories") container_repositories() +load("@io_bazel_rules_docker//repositories:deps.bzl", container_deps = "deps") + +container_deps() + +load("@io_bazel_rules_docker//repositories:pip_repositories.bzl", "pip_deps") + +pip_deps() + load("@io_bazel_rules_docker//nodejs:image.bzl", nodejs_image_repositories = "repositories") nodejs_image_repositories() diff --git a/e2e/nodejs_image/foolib/BUILD.bazel b/e2e/nodejs_image/foolib/BUILD.bazel index d005051922..f6cf8c1b04 100644 --- a/e2e/nodejs_image/foolib/BUILD.bazel +++ b/e2e/nodejs_image/foolib/BUILD.bazel @@ -1,4 +1,4 @@ -load("@build_bazel_rules_nodejs//internal/js_library:js_library.bzl", "js_library") +load("@build_bazel_rules_nodejs//:index.bzl", "js_library") js_library( name = "foolib", diff --git a/e2e/packages/WORKSPACE b/e2e/packages/WORKSPACE index d63a0deb73..f3af968ac2 100644 --- a/e2e/packages/WORKSPACE +++ b/e2e/packages/WORKSPACE @@ -4,8 +4,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_nodejs", - sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.1/rules_nodejs-2.0.1.tar.gz"], + sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"], ) load("@build_bazel_rules_nodejs//:index.bzl", "check_rules_nodejs_version", "node_repositories", "npm_install", "yarn_install") diff --git a/e2e/ts_devserver/WORKSPACE b/e2e/ts_devserver/WORKSPACE index cd69b90daa..7282ca0e36 100644 --- a/e2e/ts_devserver/WORKSPACE +++ b/e2e/ts_devserver/WORKSPACE @@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_nodejs", - sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.1/rules_nodejs-2.0.1.tar.gz"], + sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"], ) load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/e2e/ts_devserver/package.json b/e2e/ts_devserver/package.json index 2f148a89c2..5bc21207d4 100644 --- a/e2e/ts_devserver/package.json +++ b/e2e/ts_devserver/package.json @@ -1,7 +1,7 @@ { "dependencies": { - "@bazel/protractor": "^2.0.0", - "@bazel/typescript": "^2.0.0", + "@bazel/protractor": "^2.3.1", + "@bazel/typescript": "^2.3.1", "@types/jasmine": "2.8.2", "@types/node": "7.0.18", "date-fns": "1.30.1", diff --git a/e2e/ts_devserver/yarn.lock b/e2e/ts_devserver/yarn.lock index 02bf3e1bd2..c59ad53283 100644 --- a/e2e/ts_devserver/yarn.lock +++ b/e2e/ts_devserver/yarn.lock @@ -2,15 +2,15 @@ # yarn lockfile v1 -"@bazel/protractor@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-2.0.0.tgz#1b67a2f61c7124a25ae4322b585f91a26592458b" - integrity sha512-mr+Jkg/Ta5cp1FQevbV9DqXidDmScX3vy82HjAIew1Y1aQMT9SJ5RVopSSQFe/pIx/zodpAiW1D6lynPiwS1Cw== +"@bazel/protractor@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-2.3.1.tgz#470c280841f5ec91b0a80d2ffb692841a125e240" + integrity sha512-1MF3JlGE6HyYzPFXJBFnv5eEOuTuXhsJT70g66+lMgPZ9g0uUPh6CPu/iUkT6/92sw+pHGUsaptxwNu89Z7Dag== -"@bazel/typescript@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-2.0.0.tgz#2ff5615f09c733cc681ba2ada92b11c356b694cd" - integrity sha512-5FPkxULWIjAKLG5J1XvpXpY1/4IK39dAoWA/Hhg+16gXTES32fT8w42k96pb6BTaNnyBuYgIHBpELEAJ40OOAQ== +"@bazel/typescript@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-2.3.1.tgz#f103c4a5230cabaffd8d574b7278265b5478f056" + integrity sha512-blgLpx+9Vh8DZWTVOYTWSk1HEU28FF+GwU1stFaemfY7/pUQfK/URb9FARRkw/v2UrPKCd9EBywFYQyPGSAb1A== dependencies: protobufjs "6.8.8" semver "5.6.0" @@ -1481,9 +1481,9 @@ yargonaut@^1.1.2: parent-require "^1.0.0" yargs-parser@^13.1.1: - version "13.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" - integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" diff --git a/e2e/typescript/WORKSPACE b/e2e/typescript/WORKSPACE index d583d0014b..d0dcde4c7d 100644 --- a/e2e/typescript/WORKSPACE +++ b/e2e/typescript/WORKSPACE @@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_nodejs", - sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.1/rules_nodejs-2.0.1.tar.gz"], + sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"], ) load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/e2e/typescript/package.json b/e2e/typescript/package.json index 6fd6624521..a4272d0689 100644 --- a/e2e/typescript/package.json +++ b/e2e/typescript/package.json @@ -1,7 +1,7 @@ { "dependencies": { - "@bazel/jasmine": "^2.0.0", - "@bazel/typescript": "^2.0.0", + "@bazel/jasmine": "^2.3.1", + "@bazel/typescript": "^2.3.1", "@types/jasmine": "2.8.2", "@types/node": "7.0.18", "date-fns": "^1.30.1", diff --git a/e2e/typescript/yarn.lock b/e2e/typescript/yarn.lock index 86ed87bb87..2e52fc3500 100644 --- a/e2e/typescript/yarn.lock +++ b/e2e/typescript/yarn.lock @@ -2,18 +2,18 @@ # yarn lockfile v1 -"@bazel/jasmine@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-2.0.0.tgz#e466ba8eb386eb777f8c4e502b8760ee3d173d1d" - integrity sha512-9RLgNAy10PRkLLP0+8YJr1I8vsVE8rZIfz467/SxROZq7zmIx3lErX101t0KHLmukXT+GusrkXIlB/Vwa8DN9Q== +"@bazel/jasmine@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-2.3.1.tgz#e4df8dd2b8d906e41e4073b5c49c700a962fe853" + integrity sha512-6QYTfJfbwPxCvKu4rOhG1YZUm94MbG4K2Dq1q2A2OUiM0eqAZG8T1HJAswDh7L286r5x9nRX8h7Pb7CyJvSmbg== dependencies: c8 "~7.1.0" jasmine-reporters "~2.3.2" -"@bazel/typescript@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-2.0.0.tgz#2ff5615f09c733cc681ba2ada92b11c356b694cd" - integrity sha512-5FPkxULWIjAKLG5J1XvpXpY1/4IK39dAoWA/Hhg+16gXTES32fT8w42k96pb6BTaNnyBuYgIHBpELEAJ40OOAQ== +"@bazel/typescript@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-2.3.1.tgz#f103c4a5230cabaffd8d574b7278265b5478f056" + integrity sha512-blgLpx+9Vh8DZWTVOYTWSk1HEU28FF+GwU1stFaemfY7/pUQfK/URb9FARRkw/v2UrPKCd9EBywFYQyPGSAb1A== dependencies: protobufjs "6.8.8" semver "5.6.0" diff --git a/e2e/webapp/WORKSPACE b/e2e/webapp/WORKSPACE index afdea2dcb1..0c9c91fc27 100644 --- a/e2e/webapp/WORKSPACE +++ b/e2e/webapp/WORKSPACE @@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_nodejs", - sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.1/rules_nodejs-2.0.1.tar.gz"], + sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"], ) load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/e2e/webapp/package.json b/e2e/webapp/package.json index a76c85aee5..0491796c7e 100644 --- a/e2e/webapp/package.json +++ b/e2e/webapp/package.json @@ -2,9 +2,9 @@ "name": "e2e-terser", "private": true, "devDependencies": { - "@bazel/rollup": "^2.0.0", - "@bazel/terser": "^2.0.0", - "rollup": "1.20.3", + "@bazel/rollup": "^2.3.1", + "@bazel/terser": "^2.3.1", + "rollup": "2.3.0", "terser": "4.3.1" }, "scripts": { diff --git a/e2e/webapp/yarn.lock b/e2e/webapp/yarn.lock index 5ac2ac003c..e828bc947c 100644 --- a/e2e/webapp/yarn.lock +++ b/e2e/webapp/yarn.lock @@ -2,30 +2,15 @@ # yarn lockfile v1 -"@bazel/rollup@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-2.0.0.tgz#1980cb3f6922227659260bfdca99c457889a5bc1" - integrity sha512-mifUfCZbD1RIhfowh4N8E4881ag3FChz7F4z35wxMOP52g1q3+6Bvh5wv9iysFQopxGmS5jNEj3Dq/CWtSoOnw== +"@bazel/rollup@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-2.3.1.tgz#30265ac682149e82f3a4a0cfda216f3d860e7373" + integrity sha512-KyMIYr8UV1MkwdW+2HUnwUNAddFhETM8OSaaOQK5I7hV4XKjBzc2EZstt4HRcNtsVF5Lnsi7Arb8xjbBdXTqvw== -"@bazel/terser@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-2.0.0.tgz#a841db8aefd7c51c216b34a26bc02a6c93d5e56a" - integrity sha512-6mBYcfzP6pWxycYZ8r4Lz5kgiWZ7n08bVHZBIRExFeqs7Yy92dD92LPeA9FZIzFiX00IuR9Q1Lqy23xH5q7FeQ== - -"@types/estree@0.0.39": - version "0.0.39" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" - integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== - -"@types/node@^12.7.2": - version "12.7.8" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.8.tgz#cb1bf6800238898bc2ff6ffa5702c3cadd350708" - integrity sha512-FMdVn84tJJdV+xe+53sYiZS4R5yn1mAIxfj+DVoNiQjTYz1+OYmjwEZr1ev9nU0axXwda0QDbYl06QHanRVH3A== - -acorn@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c" - integrity sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ== +"@bazel/terser@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-2.3.1.tgz#c1aa0e88988d913be61d601e581a60c3bf771e06" + integrity sha512-G0I7niJyQzDFx+Z4WlA19g8SQuWpfMKbMHi+e94NHVYYpoUF0nRhLfysvNx5Kx5J6/N2gErmtwYsTQpRUI/vCQ== buffer-from@^1.0.0: version "1.1.1" @@ -37,14 +22,17 @@ commander@^2.20.0: resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== -rollup@1.20.3: - version "1.20.3" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.20.3.tgz#6243f6c118ca05f56b2d9433112400cd834a1eb8" - integrity sha512-/OMCkY0c6E8tleeVm4vQVDz24CkVgvueK3r8zTYu2AQNpjrcaPwO9hE+pWj5LTFrvvkaxt4MYIp2zha4y0lRvg== - dependencies: - "@types/estree" "0.0.39" - "@types/node" "^12.7.2" - acorn "^7.0.0" +fsevents@~2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== + +rollup@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.3.0.tgz#0b9e1c19bea22464958854dae646b8b40d2d3ed5" + integrity sha512-nIq2Z9YwNbEfqTlAXe/tVl8CwUsjX/8Q5Jxlx+JRoYCu5keKLc6k0zyt11sM6WtCDxhmmJEIosFy9y26ZFRx6w== + optionalDependencies: + fsevents "~2.1.2" source-map-support@~0.5.12: version "0.5.13" diff --git a/examples/BUILD.bazel b/examples/BUILD.bazel index 60339daacd..6137255c23 100644 --- a/examples/BUILD.bazel +++ b/examples/BUILD.bazel @@ -113,6 +113,9 @@ example_integration_test( example_integration_test( name = "examples_jest", + npm_packages = { + "//packages/typescript:npm_package": "@bazel/typescript", + }, owners = ["@mrmeku"], ) @@ -235,6 +238,7 @@ example_integration_test( example_integration_test( name = "examples_angular_bazel_architect", + timeout = "long", bazel_commands = [ "test ...", ], diff --git a/examples/angular/BUILD.bazel b/examples/angular/BUILD.bazel index 2a1a039be2..6d239c07e2 100644 --- a/examples/angular/BUILD.bazel +++ b/examples/angular/BUILD.bazel @@ -2,6 +2,8 @@ load("@k8s_deploy//:defaults.bzl", "k8s_deploy") package(default_visibility = ["//:__subpackages__"]) +exports_files(["favicon.ico"]) + # ts_library uses the `//:tsconfig.json` target # by default. This alias allows omitting explicit tsconfig # attribute. diff --git a/examples/angular/README.md b/examples/angular/README.md index c811bfecbc..3ff844ee47 100644 --- a/examples/angular/README.md +++ b/examples/angular/README.md @@ -20,6 +20,7 @@ This example is a monorepo, meant to show many different features and integratio - **Differential loading**: in production mode, we load a pair of ` - + diff --git a/examples/angular/src/manifest.webmanifest b/examples/angular/src/manifest.webmanifest new file mode 100644 index 0000000000..91edd8fbe3 --- /dev/null +++ b/examples/angular/src/manifest.webmanifest @@ -0,0 +1,59 @@ +{ + "name": "Angular Bazel Example", + "short_name": "Angular Bazel", + "theme_color": "#43a047", + "background_color": "#fff", + "display": "standalone", + "scope": "./", + "start_url": "./", + "icons": [ + { + "src": "assets/icons/icon-72x72.png", + "sizes": "72x72", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-96x96.png", + "sizes": "96x96", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-128x128.png", + "sizes": "128x128", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-144x144.png", + "sizes": "144x144", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-152x152.png", + "sizes": "152x152", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-192x192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-384x384.png", + "sizes": "384x384", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-512x512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable any" + } + ] +} diff --git a/examples/angular/src/ngsw-config.json b/examples/angular/src/ngsw-config.json new file mode 100644 index 0000000000..0dc5320a64 --- /dev/null +++ b/examples/angular/src/ngsw-config.json @@ -0,0 +1,35 @@ +{ + "$schema": "../node_modules/@angular/service-worker/config/schema.json", + "index": "/index.html", + "assetGroups": [ + { + "name": "app", + "installMode": "prefetch", + "updateMode": "prefetch", + "resources": { + "files": [ + "favicon.ico", + "index.html", + "manifest.webmanifest", + "/**/*.css", + "/**/*.js" + ], + "urls": [ + "https://fonts.googleapis.com/**", + "https://fonts.gstatic.com/s/**" + ] + } + }, + { + "name": "assets", + "installMode": "lazy", + "updateMode": "prefetch", + "resources": { + "files": [ + "/assets/**", + "/*.(eot|svg|cur|jpg|png|webp|gif|otf|ttf|woff|woff2|ani)" + ] + } + } + ] +} diff --git a/examples/angular/src/robots.txt b/examples/angular/src/robots.txt new file mode 100644 index 0000000000..14267e9032 --- /dev/null +++ b/examples/angular/src/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Allow: / \ No newline at end of file diff --git a/examples/angular/src/rollup.config.js b/examples/angular/src/rollup.config.js index 6f6d3727c5..e97bbe39d5 100644 --- a/examples/angular/src/rollup.config.js +++ b/examples/angular/src/rollup.config.js @@ -1,9 +1,9 @@ -const node = require('rollup-plugin-node-resolve'); -const commonjs = require('rollup-plugin-commonjs'); +const {nodeResolve} = require('@rollup/plugin-node-resolve'); +const commonjs = require('@rollup/plugin-commonjs'); module.exports = { plugins: [ - node({ + nodeResolve({ mainFields: ['browser', 'es2015', 'module', 'jsnext:main', 'main'], }), commonjs(), diff --git a/examples/angular/src/server.ts b/examples/angular/src/server.ts index c512c184d1..35b5dd8d00 100644 --- a/examples/angular/src/server.ts +++ b/examples/angular/src/server.ts @@ -1,41 +1,20 @@ -/// -import "zone.js/dist/zone-node"; +/// +import 'zone.js/dist/zone-node'; -import { ngExpressEngine } from "@nguniversal/express-engine"; -import * as express from "express"; -import { join } from "path"; +import { ngExpressEngine } from '@nguniversal/express-engine'; +import * as express from 'express'; +import { join } from 'path'; -const app = express(); - -const PORT = process.env.PORT || 4000; -const DIST_FOLDER = join(process.cwd(), "src/prodapp"); - -import { AppServerModule } from "./app/app.server.module"; - -app.engine( - "html", - ngExpressEngine({ - bootstrap: AppServerModule, - providers: [ - // TODO add support for lazy loading with server side rendering - // provideModuleMap(LAZY_MODULE_MAP) - ] - }) as any -); +import { AppServerModule } from './app/app.server.module'; -app.set("view engine", "html"); -app.set("views", DIST_FOLDER); - -app.get("*.*", express.static(DIST_FOLDER, { maxAge: "1y" })); - -// catch /favicon.ico route to prevent the following server error: -// Error: Cannot match any routes. URL Segment: 'favicon.ico' -app.get("/favicon.ico", (req, res) => res.send("")); +const app = express(); +const port = process.env.PORT || 4000; +const DIST_FOLDER = join(process.cwd(), 'src/pwa'); -app.get("*", (req, res) => { - res.render("example/index", { req }); -}); +app.engine('html', ngExpressEngine({ bootstrap: AppServerModule }) as any); +app.set('view engine', 'html'); +app.set('views', DIST_FOLDER); -app.listen(PORT, () => { - console.log(`Node Express server listening on http://localhost:${PORT}`); -}); +app.get('*.*', express.static(DIST_FOLDER, { maxAge: '1y' })); +app.get('*', (req, res) => res.render('example/index', { req })); +app.listen(port, () => console.log(`Server listening http://localhost:${port}`)); diff --git a/examples/angular/tools/ngsw_config.bzl b/examples/angular/tools/ngsw_config.bzl new file mode 100644 index 0000000000..d63569b0de --- /dev/null +++ b/examples/angular/tools/ngsw_config.bzl @@ -0,0 +1,38 @@ +"Angular service worker support (credits: https://github.com/marcus-sa)" + +load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary") + +def ngsw_config(name, config, index_html, src, out = None, **kwargs): + "Creates ngsw.json with service worker configuration and hashes for all source files" + if not out: + out = name + + ngsw_config_name = "%s_bin" % name + + nodejs_binary( + name = ngsw_config_name, + data = ["@npm//@angular/service-worker", index_html, config, src], + visibility = ["//visibility:private"], + entry_point = "@npm//:node_modules/@angular/service-worker/ngsw-config.js", + ) + + cmd = """ +mkdir -p $@ +cp -R $(locations {TMPL_src})/. $@/ +cp $(location {TMPL_index}) $@/index.html +$(location :{TMPL_bin}) $@ $(location {TMPL_conf}) + """.format( + TMPL_src = src, + TMPL_bin = ngsw_config_name, + TMPL_index = index_html, + TMPL_conf = config, + ) + + native.genrule( + name = name, + outs = [out], + srcs = [src, config, index_html], + tools = [":" + ngsw_config_name], + cmd = cmd, + **kwargs + ) diff --git a/examples/angular/yarn.lock b/examples/angular/yarn.lock index 068eb532ba..1acd5bda49 100644 --- a/examples/angular/yarn.lock +++ b/examples/angular/yarn.lock @@ -175,6 +175,13 @@ dependencies: tslib "^2.0.0" +"@angular/service-worker@10.0.2": + version "10.0.2" + resolved "https://registry.yarnpkg.com/@angular/service-worker/-/service-worker-10.0.2.tgz#1414f4b7721a45c97c9a3efc6b7516453643d55d" + integrity sha512-PXbh5k7yba+X18o2nNqST92Mcsq+5CXDaYIwUcUkYhx1omAMHhYF9W+FFJSY/EhW2yx5x4aRoh9ZmOqldsQB9A== + dependencies: + tslib "^2.0.0" + "@babel/cli@^7.6.0": version "7.6.2" resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.6.2.tgz#4ce8b5b4b2e4b4c1b7bd841cec62085e2dfc4465" @@ -827,10 +834,10 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" -"@bazel/angular@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/angular/-/angular-2.0.0.tgz#fe010d546641accb3cde29730ff686ce04c1de6b" - integrity sha512-ZY8sDsfdl77CHuoJ2pMR4C1yuSvP66gc375EU0kSMZQOnStOksZ7g9ZxtGyBPyXH/kWCUE7uEncEZdj/+TZoAA== +"@bazel/angular@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/angular/-/angular-2.3.1.tgz#82d2027c9e51c9ee224765e91440a009e600257a" + integrity sha512-y2Tz6QDSx6784tHOotfVjcCrUbEL3vA1PwPX7dy5Fjk1eZ/NEGfvkPEbrmDRlW3t6DgAHMiVINK0Lo9BCMG8VA== dependencies: "@angular-devkit/architect" "^0.901.7" "@bazel/bazelisk" "^1.4.0" @@ -841,10 +848,10 @@ resolved "https://registry.yarnpkg.com/@bazel/bazelisk/-/bazelisk-1.4.0.tgz#401d7b89b8d89dd579d1e16cc24cd4d9281a4fbb" integrity sha512-VNI/jF7baQiBy4x+u8gmSDsFehqaAuzMyLuCj0j6/aZCZSw2OssytJVj73m8sFYbXgj67D8iYEQ0gbuoafDk6w== -"@bazel/bazelisk@^1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@bazel/bazelisk/-/bazelisk-1.5.0.tgz#61f583ed93be138b47be7180403938ea4057f54b" - integrity sha512-qhOGN1WmfZYNJXGrRL/0byii9hX5FBomMv3WWI2OEL2+Bxm4t/bR3zMxN3xwQX1C8meSSrAfKGSzxVOZfpJsOg== +"@bazel/bazelisk@^1.7.2": + version "1.7.2" + resolved "https://registry.yarnpkg.com/@bazel/bazelisk/-/bazelisk-1.7.2.tgz#80673d886ac46bf671f6b1908bf80a4eb84eb200" + integrity sha512-/cin20XIfSctNVh6veOVKFwUp6g6/oeEEvgPLSetgK6HFspReI3jI+2lO4haQX8yD2QFN20ndheXDuLYidoj6g== "@bazel/benchmark-runner@^0.1.0": version "0.1.0" @@ -856,10 +863,10 @@ puppeteer "^0.13.0" tempy "^0.2.1" -"@bazel/buildifier@^3.4.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@bazel/buildifier/-/buildifier-3.4.0.tgz#44ce98b33bf8057f5398a78f7d1c564760b43f6c" - integrity sha512-TdugkgxAIxSyXSBZcLlntQKJ/rGV3LSMjlYuvRr3YtQBn/2sIfpHX0dcNZ7zdCPkev9cK0kpEs42MkmKHY9peQ== +"@bazel/buildifier@^3.5.0": + version "3.5.0" + resolved "https://registry.yarnpkg.com/@bazel/buildifier/-/buildifier-3.5.0.tgz#afbee61d61543d0a0a28e2b29a5cbdb64c852953" + integrity sha512-cbUS0/GMg57g6NIg6JekgmqVtuobYzW4aGHk7KzMS/bFZvxg6WY19JJ5UZSzGyAGDu2152oUTFbh4WN74Fz1+Q== "@bazel/ibazel@0.3.1": version "0.3.1" @@ -871,32 +878,35 @@ resolved "https://registry.yarnpkg.com/@bazel/ibazel/-/ibazel-0.13.1.tgz#23788f67a6fbe83d96f2d055691df4917c10ac8d" integrity sha512-FO1hBKpzpeBL0adnFYF2Dwl/7gox6ccKM6bb+x26AXrQpLbinXPuTi4zeXRL/MW4383mF6i4RovLCmwUU/YW0w== -"@bazel/karma@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/karma/-/karma-2.0.0.tgz#a386ba334716e6d94c667c9b40423955a727c896" - integrity sha512-VR/qzsH9/G1eJ0xqicoT7ea6FdiQGW0gd6FzPNecJnqm7OQjhKn7htRWvTONTNXoWl4qCIHTtW+RJ9piH1zU3Q== - dependencies: - tmp "0.1.0" +"@bazel/ibazel@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@bazel/ibazel/-/ibazel-0.14.0.tgz#86fa0002bed2ce1123b7ad98d4dd4623a0d93244" + integrity sha512-s0gyec6lArcRDwVfIP6xpY8iEaFpzrSpyErSppd3r2O49pOEg7n6HGS/qJ8ncvme56vrDk6crl/kQ6VAdEO+rg== -"@bazel/protractor@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-2.0.0.tgz#1b67a2f61c7124a25ae4322b585f91a26592458b" - integrity sha512-mr+Jkg/Ta5cp1FQevbV9DqXidDmScX3vy82HjAIew1Y1aQMT9SJ5RVopSSQFe/pIx/zodpAiW1D6lynPiwS1Cw== +"@bazel/karma@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/karma/-/karma-2.3.1.tgz#9a52128cefc4e061fc4e934c4918d7a3e17b1007" + integrity sha512-4w1aS3qaKY8eekyDujAFD7xsM+z0rCsEofs8QliEmZaF+RCKw+QsxWEMrxIXkdoftcQS+MBatAoSDhHbl47VpQ== -"@bazel/rollup@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-2.0.0.tgz#1980cb3f6922227659260bfdca99c457889a5bc1" - integrity sha512-mifUfCZbD1RIhfowh4N8E4881ag3FChz7F4z35wxMOP52g1q3+6Bvh5wv9iysFQopxGmS5jNEj3Dq/CWtSoOnw== +"@bazel/protractor@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-2.3.1.tgz#470c280841f5ec91b0a80d2ffb692841a125e240" + integrity sha512-1MF3JlGE6HyYzPFXJBFnv5eEOuTuXhsJT70g66+lMgPZ9g0uUPh6CPu/iUkT6/92sw+pHGUsaptxwNu89Z7Dag== -"@bazel/terser@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-2.0.0.tgz#a841db8aefd7c51c216b34a26bc02a6c93d5e56a" - integrity sha512-6mBYcfzP6pWxycYZ8r4Lz5kgiWZ7n08bVHZBIRExFeqs7Yy92dD92LPeA9FZIzFiX00IuR9Q1Lqy23xH5q7FeQ== +"@bazel/rollup@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-2.3.1.tgz#30265ac682149e82f3a4a0cfda216f3d860e7373" + integrity sha512-KyMIYr8UV1MkwdW+2HUnwUNAddFhETM8OSaaOQK5I7hV4XKjBzc2EZstt4HRcNtsVF5Lnsi7Arb8xjbBdXTqvw== -"@bazel/typescript@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-2.0.0.tgz#2ff5615f09c733cc681ba2ada92b11c356b694cd" - integrity sha512-5FPkxULWIjAKLG5J1XvpXpY1/4IK39dAoWA/Hhg+16gXTES32fT8w42k96pb6BTaNnyBuYgIHBpELEAJ40OOAQ== +"@bazel/terser@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-2.3.1.tgz#c1aa0e88988d913be61d601e581a60c3bf771e06" + integrity sha512-G0I7niJyQzDFx+Z4WlA19g8SQuWpfMKbMHi+e94NHVYYpoUF0nRhLfysvNx5Kx5J6/N2gErmtwYsTQpRUI/vCQ== + +"@bazel/typescript@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-2.3.1.tgz#f103c4a5230cabaffd8d574b7278265b5478f056" + integrity sha512-blgLpx+9Vh8DZWTVOYTWSk1HEU28FF+GwU1stFaemfY7/pUQfK/URb9FARRkw/v2UrPKCd9EBywFYQyPGSAb1A== dependencies: protobufjs "6.8.8" semver "5.6.0" @@ -973,6 +983,41 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= +"@rollup/plugin-commonjs@^14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-14.0.0.tgz#4285f9ec2db686a31129e5a2b415c94aa1f836f0" + integrity sha512-+PSmD9ePwTAeU106i9FRdc+Zb3XUWyW26mo5Atr2mk82hor8+nPwkztEjFo8/B1fJKfaQDg9aM2bzQkjhi7zOw== + dependencies: + "@rollup/pluginutils" "^3.0.8" + commondir "^1.0.1" + estree-walker "^1.0.1" + glob "^7.1.2" + is-reference "^1.1.2" + magic-string "^0.25.2" + resolve "^1.11.0" + +"@rollup/plugin-node-resolve@^8.4.0": + version "8.4.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz#261d79a680e9dc3d86761c14462f24126ba83575" + integrity sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ== + dependencies: + "@rollup/pluginutils" "^3.1.0" + "@types/resolve" "1.17.1" + builtin-modules "^3.1.0" + deep-freeze "^0.0.1" + deepmerge "^4.2.2" + is-module "^1.0.0" + resolve "^1.17.0" + +"@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" + integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== + dependencies: + "@types/estree" "0.0.39" + estree-walker "^1.0.1" + picomatch "^2.2.2" + "@schematics/angular@10.0.0": version "10.0.0" resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-10.0.0.tgz#d74ec2207f1beb52c9e91c300495adb4413ed32a" @@ -1001,7 +1046,7 @@ resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== -"@types/estree@*", "@types/estree@0.0.39": +"@types/estree@0.0.39": version "0.0.39" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== @@ -1036,10 +1081,10 @@ resolved "https://registry.yarnpkg.com/@types/q/-/q-0.0.32.tgz#bd284e57c84f1325da702babfc82a5328190c0c5" integrity sha1-vShOV8hPEyXacCur/IKlMoGQwMU= -"@types/resolve@0.0.8": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194" - integrity sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ== +"@types/resolve@1.17.1": + version "1.17.1" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" + integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== dependencies: "@types/node" "*" @@ -1082,11 +1127,6 @@ accepts@~1.3.5: mime-types "~2.1.18" negotiator "0.6.1" -acorn@^7.1.0: - version "7.1.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf" - integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg== - adm-zip@^0.4.9: version "0.4.13" resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.13.tgz#597e2f8cc3672151e1307d3e95cddbc75672314a" @@ -1994,6 +2034,11 @@ commander@^2.8.1: resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + compare-semver@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/compare-semver/-/compare-semver-1.1.0.tgz#7c0a79a27bb80b6c6994445f82958259d3d02153" @@ -2355,6 +2400,16 @@ deep-extend@^0.6.0: resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== +deep-freeze@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84" + integrity sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ= + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + defaults@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" @@ -2671,10 +2726,10 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= -estree-walker@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" - integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== +estree-walker@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" + integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== esutils@^2.0.2: version "2.0.3" @@ -5414,6 +5469,11 @@ picomatch@^2.0.4, picomatch@^2.0.7: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.1.tgz#21bac888b6ed8601f831ce7816e335bc779f0a4a" integrity sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA== +picomatch@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -5883,13 +5943,20 @@ resolve@^1.10.0: dependencies: path-parse "^1.0.6" -resolve@^1.11.0, resolve@^1.11.1, resolve@^1.3.2: +resolve@^1.11.0, resolve@^1.3.2: version "1.12.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== dependencies: path-parse "^1.0.6" +resolve@^1.17.0: + version "1.17.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== + dependencies: + path-parse "^1.0.6" + restore-cursor@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" @@ -5958,43 +6025,12 @@ rimraf@^2.6.2: dependencies: glob "^7.1.3" -rollup-plugin-commonjs@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-commonjs/-/rollup-plugin-commonjs-10.1.0.tgz#417af3b54503878e084d127adf4d1caf8beb86fb" - integrity sha512-jlXbjZSQg8EIeAAvepNwhJj++qJWNJw1Cl0YnOqKtP5Djx+fFGkp3WRh+W0ASCaFG5w1jhmzDxgu3SJuVxPF4Q== - dependencies: - estree-walker "^0.6.1" - is-reference "^1.1.2" - magic-string "^0.25.2" - resolve "^1.11.0" - rollup-pluginutils "^2.8.1" - -rollup-plugin-node-resolve@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-5.2.0.tgz#730f93d10ed202473b1fb54a5997a7db8c6d8523" - integrity sha512-jUlyaDXts7TW2CqQ4GaO5VJ4PwwaV8VUGA7+km3n6k6xtOEacf61u0VXwN80phY/evMcaS+9eIeJ9MOyDxt5Zw== - dependencies: - "@types/resolve" "0.0.8" - builtin-modules "^3.1.0" - is-module "^1.0.0" - resolve "^1.11.1" - rollup-pluginutils "^2.8.1" - -rollup-pluginutils@^2.8.1: - version "2.8.2" - resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" - integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== - dependencies: - estree-walker "^0.6.1" - -rollup@^1.21.4: - version "1.22.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.22.0.tgz#a5b2672c0eebe9f2b6454220f785dbc09b64b4bc" - integrity sha512-x4l4ZrV/Mr/x/jvFTmwROdEAhbZjx16yDRTVSKWh/i4oJDuW2dVEbECT853mybYCz7BAitU8ElGlhx7dNjw3qQ== - dependencies: - "@types/estree" "*" - "@types/node" "*" - acorn "^7.1.0" +rollup@^2.3.4: + version "2.23.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.23.0.tgz#b7ab1fee0c0e60132fd0553c4df1e9cdacfada9d" + integrity sha512-vLNmZFUGVwrnqNAJ/BvuLk1MtWzu4IuoqsH9UWK5AIdO3rt8/CSiJNvPvCIvfzrbNsqKbNzPAG1V2O4eTe2XZg== + optionalDependencies: + fsevents "~2.1.2" router@^1.3.1: version "1.3.3" @@ -6805,13 +6841,6 @@ tmp@0.0.33, tmp@0.0.x, tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" -tmp@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" - integrity sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw== - dependencies: - rimraf "^2.6.3" - to-array@0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" diff --git a/examples/angular_bazel_architect/BUILD.bazel b/examples/angular_bazel_architect/BUILD.bazel index d030cf0efc..256d83a69a 100644 --- a/examples/angular_bazel_architect/BUILD.bazel +++ b/examples/angular_bazel_architect/BUILD.bazel @@ -10,6 +10,21 @@ filegroup( visibility = ["//:__subpackages__"], ) +APPLICATION_DEPS = [ + "//:common_deps", + "@npm//@angular/cli", + "@npm//@angular/core", + "@npm//@angular/router", + "@npm//@angular/platform-browser-dynamic", + "@npm//@angular-devkit/build-angular", + "@npm//rxjs", + "@npm//mime", + "@npm//zone.js", + "@npm//tslib", + "@npm//typescript", + "//projects/frontend-lib", +] + architect( name = "build", args = [ @@ -25,21 +40,29 @@ architect( "src/**/*.spec.ts", "src/test.ts", ], - ) + [ - "//:common_deps", - ".browserslistrc", + ) + APPLICATION_DEPS + [ + "tsconfig.app.json", + ], + output_dir = True, +) + +architect( + name = "build_prod", + args = [ + "frontend:build:production", + "--outputPath=$(@D)", + ], + configuration_env_vars = ["NG_BUILD_CACHE"], + data = glob( + [ + "src/**/*", + ], + exclude = [ + "src/**/*.spec.ts", + "src/test.ts", + ], + ) + APPLICATION_DEPS + [ "tsconfig.app.json", - "@npm//mime", - "@npm//zone.js", - "@npm//tslib", - "@npm//typescript", - "@npm//@angular/cli", - "@npm//@angular/core", - "@npm//@angular/router", - "@npm//@angular/platform-browser-dynamic", - "@npm//@angular-devkit/architect-cli", - "@npm//@angular-devkit/build-angular", - "//projects/frontend-lib", ], output_dir = True, ) @@ -50,24 +73,16 @@ architect_test( configuration_env_vars = ["NG_BUILD_CACHE"], data = glob([ "src/**/*", - ]) + [ - "//:common_deps", + ]) + APPLICATION_DEPS + [ "karma.conf.js", "tsconfig.spec.json", "@npm//@types/jasmine", "@npm//@types/node", - "@npm//@angular/cli", - "@npm//@angular/core", - "@npm//@angular/router", - "@npm//@angular/platform-browser-dynamic", - "@npm//@angular-devkit/build-angular", - "@npm//zone.js", "@npm//karma", "@npm//karma-chrome-launcher", "@npm//karma-coverage-istanbul-reporter", "@npm//karma-jasmine", "@npm//karma-jasmine-html-reporter", - "//projects/frontend-lib", ], tags = [ "browser:chromium-local", @@ -87,32 +102,24 @@ architect_test( architect_test( name = "e2e", - args = ["frontend:e2e"], + args = [ + "frontend:e2e", + "--no-webdriverUpdate", + ], configuration_env_vars = ["NG_BUILD_CACHE"], data = glob([ "src/*", "src/**", "e2e/*", "e2e/**", - ]) + [ - "//:common_deps", - ".browserslistrc", + ]) + APPLICATION_DEPS + [ "tsconfig.app.json", - "@npm//mime", - "@npm//@angular/cli", - "@npm//@angular/core", - "@npm//@angular/router", - "@npm//@angular/platform-browser-dynamic", - "@npm//@angular-devkit/build-angular", "@npm//protractor", "@npm//jasmine-spec-reporter", "@npm//ts-node", - "@npm//tslib", - "@npm//typescript", "@npm//@types/jasmine", "@npm//@types/jasminewd2", "@npm//@types/node", - "//projects/frontend-lib", ], tags = [ "browser:chromium-local", @@ -160,17 +167,29 @@ architect( "src/**/*.spec.ts", "src/test.ts", ], - ) + [ - "//:common_deps", - ".browserslistrc", + ) + APPLICATION_DEPS + [ + "tsconfig.app.json", + ], + tags = ["ibazel_notify_changes"], +) + +architect( + name = "serve_prod", + args = [ + "frontend:serve:production", + ], + configuration_env_vars = ["NG_BUILD_CACHE"], + data = glob( + [ + "src/*", + "src/**", + ], + exclude = [ + "src/**/*.spec.ts", + "src/test.ts", + ], + ) + APPLICATION_DEPS + [ "tsconfig.app.json", - "@npm//mime", - "@npm//@angular/cli", - "@npm//@angular/core", - "@npm//@angular/router", - "@npm//@angular/platform-browser-dynamic", - "@npm//@angular-devkit/build-angular", - "//projects/frontend-lib", ], tags = ["ibazel_notify_changes"], ) diff --git a/examples/angular_bazel_architect/README.md b/examples/angular_bazel_architect/README.md index 30d2fb666b..cc88f28a8e 100644 --- a/examples/angular_bazel_architect/README.md +++ b/examples/angular_bazel_architect/README.md @@ -5,5 +5,5 @@ There are a few ways to use Angular with Bazel. See https://bazelbuild.github.io This example showcases building and testing a project with the Angular CLI. Instead of using the Angular CLI directly we use Architect here, which is the lower level api for the Angular CLI. -This requies one patch, which can be found under ./patches. +This requires one patch, which can be found under [./patches](./patches). This patch adjusts how the architect-cli prints stdio so that when running under Bazel you don't lose your logs. diff --git a/examples/angular_bazel_architect/WORKSPACE b/examples/angular_bazel_architect/WORKSPACE index cacc8fd4a5..89b79ab3f4 100644 --- a/examples/angular_bazel_architect/WORKSPACE +++ b/examples/angular_bazel_architect/WORKSPACE @@ -12,8 +12,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_nodejs", - sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.1/rules_nodejs-2.0.1.tar.gz"], + sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"], ) # The yarn_install rule runs yarn anytime the package.json or yarn.lock file changes. diff --git a/examples/angular_bazel_architect/package.json b/examples/angular_bazel_architect/package.json index d63f6d77a5..a8b5c5994d 100644 --- a/examples/angular_bazel_architect/package.json +++ b/examples/angular_bazel_architect/package.json @@ -8,7 +8,8 @@ "test": "bazel test :test", "lint": "bazel run :lint", "e2e": "bazel test :e2e", - "postinstall": "patch-package && ngcc --properties es2015 browser module main --first-only" + "postinstall": "patch-package && yarn webdriver-update && ngcc --properties es2015 browser module main --first-only", + "webdriver-update": "webdriver-manager update --standalone false --gecko false --versions.chrome 85.0.4183.38" }, "private": true, "dependencies": { @@ -33,9 +34,9 @@ "@angular/cli": "10.0.3", "@angular/compiler-cli": "10.0.4", "@angular/language-service": "10.0.4", - "@bazel/bazelisk": "^1.5.0", - "@bazel/buildifier": "^3.4.0", - "@bazel/ibazel": "^0.13.1", + "@bazel/bazelisk": "^1.7.2", + "@bazel/buildifier": "^3.5.0", + "@bazel/ibazel": "^0.14.0", "@types/jasmine": "~3.3.8", "@types/jasminewd2": "~2.0.3", "@types/node": "12.12.6", diff --git a/examples/angular_bazel_architect/yarn.lock b/examples/angular_bazel_architect/yarn.lock index 1c8dd96675..9ee7ca2983 100644 --- a/examples/angular_bazel_architect/yarn.lock +++ b/examples/angular_bazel_architect/yarn.lock @@ -1200,20 +1200,20 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" -"@bazel/bazelisk@^1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@bazel/bazelisk/-/bazelisk-1.5.0.tgz#61f583ed93be138b47be7180403938ea4057f54b" - integrity sha512-qhOGN1WmfZYNJXGrRL/0byii9hX5FBomMv3WWI2OEL2+Bxm4t/bR3zMxN3xwQX1C8meSSrAfKGSzxVOZfpJsOg== +"@bazel/bazelisk@^1.7.2": + version "1.7.2" + resolved "https://registry.yarnpkg.com/@bazel/bazelisk/-/bazelisk-1.7.2.tgz#80673d886ac46bf671f6b1908bf80a4eb84eb200" + integrity sha512-/cin20XIfSctNVh6veOVKFwUp6g6/oeEEvgPLSetgK6HFspReI3jI+2lO4haQX8yD2QFN20ndheXDuLYidoj6g== -"@bazel/buildifier@^3.4.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@bazel/buildifier/-/buildifier-3.4.0.tgz#44ce98b33bf8057f5398a78f7d1c564760b43f6c" - integrity sha512-TdugkgxAIxSyXSBZcLlntQKJ/rGV3LSMjlYuvRr3YtQBn/2sIfpHX0dcNZ7zdCPkev9cK0kpEs42MkmKHY9peQ== +"@bazel/buildifier@^3.5.0": + version "3.5.0" + resolved "https://registry.yarnpkg.com/@bazel/buildifier/-/buildifier-3.5.0.tgz#afbee61d61543d0a0a28e2b29a5cbdb64c852953" + integrity sha512-cbUS0/GMg57g6NIg6JekgmqVtuobYzW4aGHk7KzMS/bFZvxg6WY19JJ5UZSzGyAGDu2152oUTFbh4WN74Fz1+Q== -"@bazel/ibazel@^0.13.1": - version "0.13.1" - resolved "https://registry.yarnpkg.com/@bazel/ibazel/-/ibazel-0.13.1.tgz#23788f67a6fbe83d96f2d055691df4917c10ac8d" - integrity sha512-FO1hBKpzpeBL0adnFYF2Dwl/7gox6ccKM6bb+x26AXrQpLbinXPuTi4zeXRL/MW4383mF6i4RovLCmwUU/YW0w== +"@bazel/ibazel@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@bazel/ibazel/-/ibazel-0.14.0.tgz#86fa0002bed2ce1123b7ad98d4dd4623a0d93244" + integrity sha512-s0gyec6lArcRDwVfIP6xpY8iEaFpzrSpyErSppd3r2O49pOEg7n6HGS/qJ8ncvme56vrDk6crl/kQ6VAdEO+rg== "@istanbuljs/schema@^0.1.2": version "0.1.2" diff --git a/examples/angular_view_engine/WORKSPACE b/examples/angular_view_engine/WORKSPACE index 1681177bf8..a9bd08cfb4 100644 --- a/examples/angular_view_engine/WORKSPACE +++ b/examples/angular_view_engine/WORKSPACE @@ -16,8 +16,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") # Fetch rules_nodejs so we can install our npm dependencies http_archive( name = "build_bazel_rules_nodejs", - sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.1/rules_nodejs-2.0.1.tar.gz"], + sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"], ) # Fetch sass rules for compiling sass files @@ -81,10 +81,10 @@ sass_repositories() http_archive( name = "bazel_toolchains", - sha256 = "db48eed61552e25d36fe051a65d2a329cc0fb08442627e8f13960c5ab087a44e", - strip_prefix = "bazel-toolchains-3.2.0", + sha256 = "8c9728dc1bb3e8356b344088dfd10038984be74e1c8d6e92dbb05f21cabbb8e4", + strip_prefix = "bazel-toolchains-3.7.1", urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/releases/download/3.2.0/bazel-toolchains-3.2.0.tar.gz", - "https://github.com/bazelbuild/bazel-toolchains/releases/download/3.2.0/bazel-toolchains-3.2.0.tar.gz", + "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/releases/download/3.7.1/bazel-toolchains-3.7.1.tar.gz", + "https://github.com/bazelbuild/bazel-toolchains/releases/download/3.7.1/bazel-toolchains-3.7.1.tar.gz", ], ) diff --git a/examples/angular_view_engine/package.json b/examples/angular_view_engine/package.json index caa1ee6da4..8b69284002 100644 --- a/examples/angular_view_engine/package.json +++ b/examples/angular_view_engine/package.json @@ -32,15 +32,17 @@ "@babel/cli": "^7.6.0", "@babel/core": "^7.6.0", "@babel/preset-env": "^7.6.0", - "@bazel/bazelisk": "^1.5.0", + "@bazel/bazelisk": "^1.7.2", "@bazel/benchmark-runner": "^0.1.0", - "@bazel/buildifier": "^3.4.0", - "@bazel/ibazel": "^0.13.1", - "@bazel/karma": "^2.0.0", - "@bazel/protractor": "^2.0.0", - "@bazel/rollup": "^2.0.0", - "@bazel/terser": "^2.0.0", - "@bazel/typescript": "^2.0.0", + "@bazel/buildifier": "^3.5.0", + "@bazel/ibazel": "^0.14.0", + "@bazel/karma": "^2.3.1", + "@bazel/protractor": "^2.3.1", + "@bazel/rollup": "^2.3.1", + "@bazel/terser": "^2.3.1", + "@bazel/typescript": "^2.3.1", + "@rollup/plugin-commonjs": "^14.0.0", + "@rollup/plugin-node-resolve": "^8.4.0", "@types/jasmine": "3.4.0", "@types/node": "6.14.6", "core-js": "2.6.9", @@ -56,10 +58,8 @@ "patch-package": "^6.2.0", "protractor": "^5.4.2", "requirejs": "2.3.6", - "rollup": "^1.21.4", + "rollup": "^2.3.4", "rollup-plugin-amd": "^4.0.0", - "rollup-plugin-commonjs": "^10.1.0", - "rollup-plugin-node-resolve": "^5.2.0", "rollup-plugin-re": "^1.0.7", "terser": "4.3.1", "typescript": "3.4.5" diff --git a/examples/angular_view_engine/src/BUILD.bazel b/examples/angular_view_engine/src/BUILD.bazel index cec783340c..4ce8c3c85f 100644 --- a/examples/angular_view_engine/src/BUILD.bazel +++ b/examples/angular_view_engine/src/BUILD.bazel @@ -145,9 +145,9 @@ rollup_bundle( deps = [ "//:examples_angular_view_engine", "//src", + "@npm//@rollup/plugin-commonjs", + "@npm//@rollup/plugin-node-resolve", "@npm//rollup-plugin-amd", - "@npm//rollup-plugin-commonjs", - "@npm//rollup-plugin-node-resolve", "@npm//rollup-plugin-re", ], ) diff --git a/examples/angular_view_engine/src/rollup.config.js b/examples/angular_view_engine/src/rollup.config.js index 276e6750fa..931fea23d3 100644 --- a/examples/angular_view_engine/src/rollup.config.js +++ b/examples/angular_view_engine/src/rollup.config.js @@ -1,5 +1,5 @@ -const node = require('rollup-plugin-node-resolve'); -const commonjs = require('rollup-plugin-commonjs'); +const {nodeResolve} = require('@rollup/plugin-node-resolve'); +const commonjs = require('@rollup/plugin-commonjs'); const amd = require('rollup-plugin-amd'); const replace = require('rollup-plugin-re'); @@ -14,7 +14,7 @@ module.exports = { replace: '', }] }), - node({ + nodeResolve({ mainFields: ['browser', 'es2015', 'module', 'jsnext:main', 'main'], }), amd({ diff --git a/examples/angular_view_engine/yarn.lock b/examples/angular_view_engine/yarn.lock index 80d384c393..bd45ebd96b 100644 --- a/examples/angular_view_engine/yarn.lock +++ b/examples/angular_view_engine/yarn.lock @@ -803,10 +803,10 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" -"@bazel/bazelisk@^1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@bazel/bazelisk/-/bazelisk-1.5.0.tgz#61f583ed93be138b47be7180403938ea4057f54b" - integrity sha512-qhOGN1WmfZYNJXGrRL/0byii9hX5FBomMv3WWI2OEL2+Bxm4t/bR3zMxN3xwQX1C8meSSrAfKGSzxVOZfpJsOg== +"@bazel/bazelisk@^1.7.2": + version "1.7.2" + resolved "https://registry.yarnpkg.com/@bazel/bazelisk/-/bazelisk-1.7.2.tgz#80673d886ac46bf671f6b1908bf80a4eb84eb200" + integrity sha512-/cin20XIfSctNVh6veOVKFwUp6g6/oeEEvgPLSetgK6HFspReI3jI+2lO4haQX8yD2QFN20ndheXDuLYidoj6g== "@bazel/benchmark-runner@^0.1.0": version "0.1.0" @@ -818,47 +818,45 @@ puppeteer "^0.13.0" tempy "^0.2.1" -"@bazel/buildifier@^3.4.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@bazel/buildifier/-/buildifier-3.4.0.tgz#44ce98b33bf8057f5398a78f7d1c564760b43f6c" - integrity sha512-TdugkgxAIxSyXSBZcLlntQKJ/rGV3LSMjlYuvRr3YtQBn/2sIfpHX0dcNZ7zdCPkev9cK0kpEs42MkmKHY9peQ== +"@bazel/buildifier@^3.5.0": + version "3.5.0" + resolved "https://registry.yarnpkg.com/@bazel/buildifier/-/buildifier-3.5.0.tgz#afbee61d61543d0a0a28e2b29a5cbdb64c852953" + integrity sha512-cbUS0/GMg57g6NIg6JekgmqVtuobYzW4aGHk7KzMS/bFZvxg6WY19JJ5UZSzGyAGDu2152oUTFbh4WN74Fz1+Q== "@bazel/ibazel@0.3.1": version "0.3.1" resolved "https://registry.yarnpkg.com/@bazel/ibazel/-/ibazel-0.3.1.tgz#5f02f208f138e581bbdb1534d5c013d7a0ac9799" integrity sha1-XwLyCPE45YG72xU01cAT16Csl5k= -"@bazel/ibazel@^0.13.1": - version "0.13.1" - resolved "https://registry.yarnpkg.com/@bazel/ibazel/-/ibazel-0.13.1.tgz#23788f67a6fbe83d96f2d055691df4917c10ac8d" - integrity sha512-FO1hBKpzpeBL0adnFYF2Dwl/7gox6ccKM6bb+x26AXrQpLbinXPuTi4zeXRL/MW4383mF6i4RovLCmwUU/YW0w== +"@bazel/ibazel@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@bazel/ibazel/-/ibazel-0.14.0.tgz#86fa0002bed2ce1123b7ad98d4dd4623a0d93244" + integrity sha512-s0gyec6lArcRDwVfIP6xpY8iEaFpzrSpyErSppd3r2O49pOEg7n6HGS/qJ8ncvme56vrDk6crl/kQ6VAdEO+rg== -"@bazel/karma@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/karma/-/karma-2.0.0.tgz#a386ba334716e6d94c667c9b40423955a727c896" - integrity sha512-VR/qzsH9/G1eJ0xqicoT7ea6FdiQGW0gd6FzPNecJnqm7OQjhKn7htRWvTONTNXoWl4qCIHTtW+RJ9piH1zU3Q== - dependencies: - tmp "0.1.0" +"@bazel/karma@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/karma/-/karma-2.3.1.tgz#9a52128cefc4e061fc4e934c4918d7a3e17b1007" + integrity sha512-4w1aS3qaKY8eekyDujAFD7xsM+z0rCsEofs8QliEmZaF+RCKw+QsxWEMrxIXkdoftcQS+MBatAoSDhHbl47VpQ== -"@bazel/protractor@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-2.0.0.tgz#1b67a2f61c7124a25ae4322b585f91a26592458b" - integrity sha512-mr+Jkg/Ta5cp1FQevbV9DqXidDmScX3vy82HjAIew1Y1aQMT9SJ5RVopSSQFe/pIx/zodpAiW1D6lynPiwS1Cw== +"@bazel/protractor@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-2.3.1.tgz#470c280841f5ec91b0a80d2ffb692841a125e240" + integrity sha512-1MF3JlGE6HyYzPFXJBFnv5eEOuTuXhsJT70g66+lMgPZ9g0uUPh6CPu/iUkT6/92sw+pHGUsaptxwNu89Z7Dag== -"@bazel/rollup@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-2.0.0.tgz#1980cb3f6922227659260bfdca99c457889a5bc1" - integrity sha512-mifUfCZbD1RIhfowh4N8E4881ag3FChz7F4z35wxMOP52g1q3+6Bvh5wv9iysFQopxGmS5jNEj3Dq/CWtSoOnw== +"@bazel/rollup@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-2.3.1.tgz#30265ac682149e82f3a4a0cfda216f3d860e7373" + integrity sha512-KyMIYr8UV1MkwdW+2HUnwUNAddFhETM8OSaaOQK5I7hV4XKjBzc2EZstt4HRcNtsVF5Lnsi7Arb8xjbBdXTqvw== -"@bazel/terser@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-2.0.0.tgz#a841db8aefd7c51c216b34a26bc02a6c93d5e56a" - integrity sha512-6mBYcfzP6pWxycYZ8r4Lz5kgiWZ7n08bVHZBIRExFeqs7Yy92dD92LPeA9FZIzFiX00IuR9Q1Lqy23xH5q7FeQ== +"@bazel/terser@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-2.3.1.tgz#c1aa0e88988d913be61d601e581a60c3bf771e06" + integrity sha512-G0I7niJyQzDFx+Z4WlA19g8SQuWpfMKbMHi+e94NHVYYpoUF0nRhLfysvNx5Kx5J6/N2gErmtwYsTQpRUI/vCQ== -"@bazel/typescript@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-2.0.0.tgz#2ff5615f09c733cc681ba2ada92b11c356b694cd" - integrity sha512-5FPkxULWIjAKLG5J1XvpXpY1/4IK39dAoWA/Hhg+16gXTES32fT8w42k96pb6BTaNnyBuYgIHBpELEAJ40OOAQ== +"@bazel/typescript@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-2.3.1.tgz#f103c4a5230cabaffd8d574b7278265b5478f056" + integrity sha512-blgLpx+9Vh8DZWTVOYTWSk1HEU28FF+GwU1stFaemfY7/pUQfK/URb9FARRkw/v2UrPKCd9EBywFYQyPGSAb1A== dependencies: protobufjs "6.8.8" semver "5.6.0" @@ -964,6 +962,41 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= +"@rollup/plugin-commonjs@^14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-14.0.0.tgz#4285f9ec2db686a31129e5a2b415c94aa1f836f0" + integrity sha512-+PSmD9ePwTAeU106i9FRdc+Zb3XUWyW26mo5Atr2mk82hor8+nPwkztEjFo8/B1fJKfaQDg9aM2bzQkjhi7zOw== + dependencies: + "@rollup/pluginutils" "^3.0.8" + commondir "^1.0.1" + estree-walker "^1.0.1" + glob "^7.1.2" + is-reference "^1.1.2" + magic-string "^0.25.2" + resolve "^1.11.0" + +"@rollup/plugin-node-resolve@^8.4.0": + version "8.4.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz#261d79a680e9dc3d86761c14462f24126ba83575" + integrity sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ== + dependencies: + "@rollup/pluginutils" "^3.1.0" + "@types/resolve" "1.17.1" + builtin-modules "^3.1.0" + deep-freeze "^0.0.1" + deepmerge "^4.2.2" + is-module "^1.0.0" + resolve "^1.17.0" + +"@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" + integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== + dependencies: + "@types/estree" "0.0.39" + estree-walker "^1.0.1" + picomatch "^2.2.2" + "@rushstack/node-core-library@3.25.0": version "3.25.0" resolved "https://registry.yarnpkg.com/@rushstack/node-core-library/-/node-core-library-3.25.0.tgz#ba40bc1b188ab5d31f5705999cd2b3b56b8a32cf" @@ -1013,7 +1046,7 @@ resolved "https://registry.yarnpkg.com/@types/argparse/-/argparse-1.0.38.tgz#a81fd8606d481f873a3800c6ebae4f1d768a56a9" integrity sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA== -"@types/estree@*", "@types/estree@0.0.39": +"@types/estree@0.0.39": version "0.0.39" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== @@ -1053,10 +1086,10 @@ resolved "https://registry.yarnpkg.com/@types/q/-/q-0.0.32.tgz#bd284e57c84f1325da702babfc82a5328190c0c5" integrity sha1-vShOV8hPEyXacCur/IKlMoGQwMU= -"@types/resolve@0.0.8": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194" - integrity sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ== +"@types/resolve@1.17.1": + version "1.17.1" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" + integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== dependencies: "@types/node" "*" @@ -1114,11 +1147,6 @@ accepts@~1.3.5: mime-types "~2.1.18" negotiator "0.6.1" -acorn@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c" - integrity sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ== - adm-zip@^0.4.9: version "0.4.13" resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.13.tgz#597e2f8cc3672151e1307d3e95cddbc75672314a" @@ -1974,6 +2002,11 @@ commander@^2.7.1, commander@^2.8.1: resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + compare-semver@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/compare-semver/-/compare-semver-1.1.0.tgz#7c0a79a27bb80b6c6994445f82958259d3d02153" @@ -2335,6 +2368,16 @@ deep-extend@^0.6.0: resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== +deep-freeze@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84" + integrity sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ= + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -2679,6 +2722,11 @@ estree-walker@^0.6.1: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== +estree-walker@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" + integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -3198,6 +3246,11 @@ fsevents@^1.2.7: nan "^2.12.1" node-pre-gyp "^0.12.0" +fsevents@~2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== + function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -5431,6 +5484,11 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= +picomatch@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -5917,14 +5975,14 @@ resolve@^1.10.0: dependencies: path-parse "^1.0.6" -resolve@^1.11.0, resolve@^1.11.1, resolve@^1.3.2: +resolve@^1.11.0, resolve@^1.3.2: version "1.12.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== dependencies: path-parse "^1.0.6" -resolve@~1.17.0: +resolve@^1.17.0, resolve@~1.17.0: version "1.17.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== @@ -5993,28 +6051,6 @@ rollup-plugin-amd@^4.0.0: "@buxlabs/amd-to-es6" "^0.13.3" rollup-pluginutils "^2.3.3" -rollup-plugin-commonjs@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-commonjs/-/rollup-plugin-commonjs-10.1.0.tgz#417af3b54503878e084d127adf4d1caf8beb86fb" - integrity sha512-jlXbjZSQg8EIeAAvepNwhJj++qJWNJw1Cl0YnOqKtP5Djx+fFGkp3WRh+W0ASCaFG5w1jhmzDxgu3SJuVxPF4Q== - dependencies: - estree-walker "^0.6.1" - is-reference "^1.1.2" - magic-string "^0.25.2" - resolve "^1.11.0" - rollup-pluginutils "^2.8.1" - -rollup-plugin-node-resolve@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-5.2.0.tgz#730f93d10ed202473b1fb54a5997a7db8c6d8523" - integrity sha512-jUlyaDXts7TW2CqQ4GaO5VJ4PwwaV8VUGA7+km3n6k6xtOEacf61u0VXwN80phY/evMcaS+9eIeJ9MOyDxt5Zw== - dependencies: - "@types/resolve" "0.0.8" - builtin-modules "^3.1.0" - is-module "^1.0.0" - resolve "^1.11.1" - rollup-pluginutils "^2.8.1" - rollup-plugin-re@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/rollup-plugin-re/-/rollup-plugin-re-1.0.7.tgz#fe174704ed59cda84caf02bd013b582e6fdaa4f6" @@ -6023,21 +6059,19 @@ rollup-plugin-re@^1.0.7: magic-string "^0.16.0" rollup-pluginutils "^2.0.1" -rollup-pluginutils@^2.0.1, rollup-pluginutils@^2.3.3, rollup-pluginutils@^2.8.1: +rollup-pluginutils@^2.0.1, rollup-pluginutils@^2.3.3: version "2.8.2" resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== dependencies: estree-walker "^0.6.1" -rollup@^1.21.4: - version "1.22.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.22.0.tgz#a5b2672c0eebe9f2b6454220f785dbc09b64b4bc" - integrity sha512-x4l4ZrV/Mr/x/jvFTmwROdEAhbZjx16yDRTVSKWh/i4oJDuW2dVEbECT853mybYCz7BAitU8ElGlhx7dNjw3qQ== - dependencies: - "@types/estree" "*" - "@types/node" "*" - acorn "^7.1.0" +rollup@^2.3.4: + version "2.23.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.23.0.tgz#b7ab1fee0c0e60132fd0553c4df1e9cdacfada9d" + integrity sha512-vLNmZFUGVwrnqNAJ/BvuLk1MtWzu4IuoqsH9UWK5AIdO3rt8/CSiJNvPvCIvfzrbNsqKbNzPAG1V2O4eTe2XZg== + optionalDependencies: + fsevents "~2.1.2" router@^1.3.1: version "1.3.3" @@ -6825,13 +6859,6 @@ tmp@0.0.33, tmp@0.0.x, tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" -tmp@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" - integrity sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw== - dependencies: - rimraf "^2.6.3" - to-array@0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" diff --git a/examples/app/WORKSPACE b/examples/app/WORKSPACE index 1692502a14..9e64b3323e 100644 --- a/examples/app/WORKSPACE +++ b/examples/app/WORKSPACE @@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_nodejs", - sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.1/rules_nodejs-2.0.1.tar.gz"], + sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"], ) load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/examples/app/package.json b/examples/app/package.json index 1a0b1743fc..e1d78f2386 100644 --- a/examples/app/package.json +++ b/examples/app/package.json @@ -1,9 +1,9 @@ { "devDependencies": { - "@bazel/protractor": "^2.0.0", - "@bazel/rollup": "^2.0.0", - "@bazel/terser": "^2.0.0", - "@bazel/typescript": "^2.0.0", + "@bazel/protractor": "^2.3.1", + "@bazel/rollup": "^2.3.1", + "@bazel/terser": "^2.3.1", + "@bazel/typescript": "^2.3.1", "@types/jasmine": "3.3.15", "html-insert-assets": "^0.6.0", "http-server": "^0.11.1", diff --git a/examples/app/yarn.lock b/examples/app/yarn.lock index 4018b07e33..2da7f89d8a 100644 --- a/examples/app/yarn.lock +++ b/examples/app/yarn.lock @@ -2,25 +2,25 @@ # yarn lockfile v1 -"@bazel/protractor@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-2.0.0.tgz#1b67a2f61c7124a25ae4322b585f91a26592458b" - integrity sha512-mr+Jkg/Ta5cp1FQevbV9DqXidDmScX3vy82HjAIew1Y1aQMT9SJ5RVopSSQFe/pIx/zodpAiW1D6lynPiwS1Cw== - -"@bazel/rollup@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-2.0.0.tgz#1980cb3f6922227659260bfdca99c457889a5bc1" - integrity sha512-mifUfCZbD1RIhfowh4N8E4881ag3FChz7F4z35wxMOP52g1q3+6Bvh5wv9iysFQopxGmS5jNEj3Dq/CWtSoOnw== - -"@bazel/terser@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-2.0.0.tgz#a841db8aefd7c51c216b34a26bc02a6c93d5e56a" - integrity sha512-6mBYcfzP6pWxycYZ8r4Lz5kgiWZ7n08bVHZBIRExFeqs7Yy92dD92LPeA9FZIzFiX00IuR9Q1Lqy23xH5q7FeQ== - -"@bazel/typescript@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-2.0.0.tgz#2ff5615f09c733cc681ba2ada92b11c356b694cd" - integrity sha512-5FPkxULWIjAKLG5J1XvpXpY1/4IK39dAoWA/Hhg+16gXTES32fT8w42k96pb6BTaNnyBuYgIHBpELEAJ40OOAQ== +"@bazel/protractor@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-2.3.1.tgz#470c280841f5ec91b0a80d2ffb692841a125e240" + integrity sha512-1MF3JlGE6HyYzPFXJBFnv5eEOuTuXhsJT70g66+lMgPZ9g0uUPh6CPu/iUkT6/92sw+pHGUsaptxwNu89Z7Dag== + +"@bazel/rollup@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-2.3.1.tgz#30265ac682149e82f3a4a0cfda216f3d860e7373" + integrity sha512-KyMIYr8UV1MkwdW+2HUnwUNAddFhETM8OSaaOQK5I7hV4XKjBzc2EZstt4HRcNtsVF5Lnsi7Arb8xjbBdXTqvw== + +"@bazel/terser@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-2.3.1.tgz#c1aa0e88988d913be61d601e581a60c3bf771e06" + integrity sha512-G0I7niJyQzDFx+Z4WlA19g8SQuWpfMKbMHi+e94NHVYYpoUF0nRhLfysvNx5Kx5J6/N2gErmtwYsTQpRUI/vCQ== + +"@bazel/typescript@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-2.3.1.tgz#f103c4a5230cabaffd8d574b7278265b5478f056" + integrity sha512-blgLpx+9Vh8DZWTVOYTWSk1HEU28FF+GwU1stFaemfY7/pUQfK/URb9FARRkw/v2UrPKCd9EBywFYQyPGSAb1A== dependencies: protobufjs "6.8.8" semver "5.6.0" diff --git a/examples/closure/WORKSPACE b/examples/closure/WORKSPACE index f778ed9446..c5faed0755 100644 --- a/examples/closure/WORKSPACE +++ b/examples/closure/WORKSPACE @@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_nodejs", - sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.1/rules_nodejs-2.0.1.tar.gz"], + sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"], ) load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/examples/create-react-app/BUILD.bazel b/examples/create-react-app/BUILD.bazel index 38167d0669..a1ca6cac08 100644 --- a/examples/create-react-app/BUILD.bazel +++ b/examples/create-react-app/BUILD.bazel @@ -8,7 +8,7 @@ _TESTS = [ "src/**/*.test.js*", "src/**/*.test.ts*", "src/**/*.spec.js*", - "src/**/*.test.ts*", + "src/**/*.spec.ts*", "src/**/__tests__/**/*.js*", "src/**/__tests__/**/*.ts*", ] @@ -100,4 +100,10 @@ react_scripts( "start", ], data = _RUNTIME_DEPS, + tags = [ + # This tag instructs ibazel to pipe into stdin a event describing actions. + # ibazel send EOF to stdin by default and `react-scripts start` will stop when getting EOF in stdin. + # So use this to prevent EOF. + "ibazel_notify_changes", + ], ) diff --git a/examples/create-react-app/WORKSPACE b/examples/create-react-app/WORKSPACE index 8db4f0e122..10dfc7a75f 100644 --- a/examples/create-react-app/WORKSPACE +++ b/examples/create-react-app/WORKSPACE @@ -7,8 +7,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_nodejs", - sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.1/rules_nodejs-2.0.1.tar.gz"], + sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"], ) http_archive( diff --git a/examples/create-react-app/package.json b/examples/create-react-app/package.json index fa923fe818..5ba0346e18 100644 --- a/examples/create-react-app/package.json +++ b/examples/create-react-app/package.json @@ -16,8 +16,8 @@ "typescript": "~3.7.2" }, "devDependencies": { - "@bazel/bazelisk": "^1.5.0", - "@bazel/ibazel": "^0.13.1", + "@bazel/bazelisk": "^1.7.2", + "@bazel/ibazel": "^0.14.0", "patch-package": "^6.2.2" }, "scripts": { diff --git a/examples/create-react-app/yarn.lock b/examples/create-react-app/yarn.lock index c82deae7f6..e30239f5b6 100644 --- a/examples/create-react-app/yarn.lock +++ b/examples/create-react-app/yarn.lock @@ -1078,15 +1078,15 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" -"@bazel/bazelisk@^1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@bazel/bazelisk/-/bazelisk-1.5.0.tgz#61f583ed93be138b47be7180403938ea4057f54b" - integrity sha512-qhOGN1WmfZYNJXGrRL/0byii9hX5FBomMv3WWI2OEL2+Bxm4t/bR3zMxN3xwQX1C8meSSrAfKGSzxVOZfpJsOg== +"@bazel/bazelisk@^1.7.2": + version "1.7.2" + resolved "https://registry.yarnpkg.com/@bazel/bazelisk/-/bazelisk-1.7.2.tgz#80673d886ac46bf671f6b1908bf80a4eb84eb200" + integrity sha512-/cin20XIfSctNVh6veOVKFwUp6g6/oeEEvgPLSetgK6HFspReI3jI+2lO4haQX8yD2QFN20ndheXDuLYidoj6g== -"@bazel/ibazel@^0.13.1": - version "0.13.1" - resolved "https://registry.yarnpkg.com/@bazel/ibazel/-/ibazel-0.13.1.tgz#23788f67a6fbe83d96f2d055691df4917c10ac8d" - integrity sha512-FO1hBKpzpeBL0adnFYF2Dwl/7gox6ccKM6bb+x26AXrQpLbinXPuTi4zeXRL/MW4383mF6i4RovLCmwUU/YW0w== +"@bazel/ibazel@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@bazel/ibazel/-/ibazel-0.14.0.tgz#86fa0002bed2ce1123b7ad98d4dd4623a0d93244" + integrity sha512-s0gyec6lArcRDwVfIP6xpY8iEaFpzrSpyErSppd3r2O49pOEg7n6HGS/qJ8ncvme56vrDk6crl/kQ6VAdEO+rg== "@cnakazawa/watch@^1.0.3": version "1.0.4" diff --git a/examples/cypress/WORKSPACE b/examples/cypress/WORKSPACE index a01a6e02ff..5f105fad29 100644 --- a/examples/cypress/WORKSPACE +++ b/examples/cypress/WORKSPACE @@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_nodejs", - sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.1/rules_nodejs-2.0.1.tar.gz"], + sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"], ) load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/examples/cypress/package.json b/examples/cypress/package.json index c9d5aa26c8..30e7062059 100644 --- a/examples/cypress/package.json +++ b/examples/cypress/package.json @@ -5,11 +5,10 @@ "express": "4.17.1" }, "devDependencies": { - "@bazel/bazelisk": "^1.5.0", - "@bazel/cypress": "^2.0.0", - "@bazel/ibazel": "^0.13.1", - "@bazel/typescript": "^2.0.0", - "@cypress/browserify-preprocessor": "^3.0.0", + "@bazel/bazelisk": "^1.7.2", + "@bazel/cypress": "^2.3.1", + "@bazel/ibazel": "^0.14.0", + "@bazel/typescript": "^2.3.1", "@types/node": "14.0.13", "cypress": "^4.8.0", "typescript": "3.9.5" diff --git a/examples/cypress/yarn.lock b/examples/cypress/yarn.lock index 4ddd5608bf..6d60b4aa9f 100644 --- a/examples/cypress/yarn.lock +++ b/examples/cypress/yarn.lock @@ -2,797 +2,33 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.1.tgz#d5481c5095daa1c57e16e54c6f9198443afb49ff" - integrity sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw== - dependencies: - "@babel/highlight" "^7.10.1" - -"@babel/core@7.4.5": - version "7.4.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.4.5.tgz#081f97e8ffca65a9b4b0fdc7e274e703f000c06a" - integrity sha512-OvjIh6aqXtlsA8ujtGKfC7LYWksYSX8yQcM8Ay3LuvVeQ63lcOKgoZWVqcpFwkd29aYU9rVx7jxhfhiEDV9MZA== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.4.4" - "@babel/helpers" "^7.4.4" - "@babel/parser" "^7.4.5" - "@babel/template" "^7.4.4" - "@babel/traverse" "^7.4.5" - "@babel/types" "^7.4.4" - convert-source-map "^1.1.0" - debug "^4.1.0" - json5 "^2.1.0" - lodash "^4.17.11" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/generator@^7.10.1", "@babel/generator@^7.4.4": - version "7.10.2" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.10.2.tgz#0fa5b5b2389db8bfdfcc3492b551ee20f5dd69a9" - integrity sha512-AxfBNHNu99DTMvlUPlt1h2+Hn7knPpH5ayJ8OqDWSeLld+Fi2AYBTC/IejWDM9Edcii4UzZRCsbUt0WlSDsDsA== - dependencies: - "@babel/types" "^7.10.2" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - -"@babel/helper-annotate-as-pure@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.1.tgz#f6d08acc6f70bbd59b436262553fb2e259a1a268" - integrity sha512-ewp3rvJEwLaHgyWGe4wQssC2vjks3E80WiUe2BpMb0KhreTjMROCbxXcEovTrbeGVdQct5VjQfrv9EgC+xMzCw== - dependencies: - "@babel/types" "^7.10.1" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.1.tgz#0ec7d9be8174934532661f87783eb18d72290059" - integrity sha512-cQpVq48EkYxUU0xozpGCLla3wlkdRRqLWu1ksFMXA9CM5KQmyyRpSEsYXbao7JUkOw/tAaYKCaYyZq6HOFYtyw== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.10.1" - "@babel/types" "^7.10.1" - -"@babel/helper-builder-react-jsx-experimental@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.1.tgz#9a7d58ad184d3ac3bafb1a452cec2bad7e4a0bc8" - integrity sha512-irQJ8kpQUV3JasXPSFQ+LCCtJSc5ceZrPFVj6TElR6XCHssi3jV8ch3odIrNtjJFRZZVbrOEfJMI79TPU/h1pQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.1" - "@babel/helper-module-imports" "^7.10.1" - "@babel/types" "^7.10.1" - -"@babel/helper-builder-react-jsx@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.1.tgz#a327f0cf983af5554701b1215de54a019f09b532" - integrity sha512-KXzzpyWhXgzjXIlJU1ZjIXzUPdej1suE6vzqgImZ/cpAsR/CC8gUcX4EWRmDfWz/cs6HOCPMBIJ3nKoXt3BFuw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.1" - "@babel/types" "^7.10.1" - -"@babel/helper-create-class-features-plugin@^7.3.0": - version "7.10.2" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.2.tgz#7474295770f217dbcf288bf7572eb213db46ee67" - integrity sha512-5C/QhkGFh1vqcziq1vAL6SI9ymzUp8BCYjFpvYVhWP4DlATIb3u5q3iUd35mvlyGs8fO7hckkW7i0tmH+5+bvQ== - dependencies: - "@babel/helper-function-name" "^7.10.1" - "@babel/helper-member-expression-to-functions" "^7.10.1" - "@babel/helper-optimise-call-expression" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/helper-replace-supers" "^7.10.1" - "@babel/helper-split-export-declaration" "^7.10.1" - -"@babel/helper-create-regexp-features-plugin@^7.10.1", "@babel/helper-create-regexp-features-plugin@^7.8.3": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.1.tgz#1b8feeab1594cbcfbf3ab5a3bbcabac0468efdbd" - integrity sha512-Rx4rHS0pVuJn5pJOqaqcZR4XSgeF9G/pO/79t+4r7380tXFJdzImFnxMU19f83wjSrmKHq6myrM10pFHTGzkUA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.1" - "@babel/helper-regex" "^7.10.1" - regexpu-core "^4.7.0" - -"@babel/helper-define-map@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.1.tgz#5e69ee8308648470dd7900d159c044c10285221d" - integrity sha512-+5odWpX+OnvkD0Zmq7panrMuAGQBu6aPUgvMzuMGo4R+jUOvealEj2hiqI6WhxgKrTpFoFj0+VdsuA8KDxHBDg== - dependencies: - "@babel/helper-function-name" "^7.10.1" - "@babel/types" "^7.10.1" - lodash "^4.17.13" - -"@babel/helper-explode-assignable-expression@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.1.tgz#e9d76305ee1162ca467357ae25df94f179af2b7e" - integrity sha512-vcUJ3cDjLjvkKzt6rHrl767FeE7pMEYfPanq5L16GRtrXIoznc0HykNW2aEYkcnP76P0isoqJ34dDMFZwzEpJg== - dependencies: - "@babel/traverse" "^7.10.1" - "@babel/types" "^7.10.1" - -"@babel/helper-function-name@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz#92bd63829bfc9215aca9d9defa85f56b539454f4" - integrity sha512-fcpumwhs3YyZ/ttd5Rz0xn0TpIwVkN7X0V38B9TWNfVF42KEkhkAAuPCQ3oXmtTRtiPJrmZ0TrfS0GKF0eMaRQ== - dependencies: - "@babel/helper-get-function-arity" "^7.10.1" - "@babel/template" "^7.10.1" - "@babel/types" "^7.10.1" - -"@babel/helper-get-function-arity@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz#7303390a81ba7cb59613895a192b93850e373f7d" - integrity sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw== - dependencies: - "@babel/types" "^7.10.1" - -"@babel/helper-hoist-variables@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.1.tgz#7e77c82e5dcae1ebf123174c385aaadbf787d077" - integrity sha512-vLm5srkU8rI6X3+aQ1rQJyfjvCBLXP8cAGeuw04zeAM2ItKb1e7pmVmLyHb4sDaAYnLL13RHOZPLEtcGZ5xvjg== - dependencies: - "@babel/types" "^7.10.1" - -"@babel/helper-member-expression-to-functions@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.1.tgz#432967fd7e12a4afef66c4687d4ca22bc0456f15" - integrity sha512-u7XLXeM2n50gb6PWJ9hoO5oO7JFPaZtrh35t8RqKLT1jFKj9IWeD1zrcrYp1q1qiZTdEarfDWfTIP8nGsu0h5g== - dependencies: - "@babel/types" "^7.10.1" - -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.1.tgz#dd331bd45bccc566ce77004e9d05fe17add13876" - integrity sha512-SFxgwYmZ3HZPyZwJRiVNLRHWuW2OgE5k2nrVs6D9Iv4PPnXVffuEHy83Sfx/l4SqF+5kyJXjAyUmrG7tNm+qVg== - dependencies: - "@babel/types" "^7.10.1" - -"@babel/helper-module-transforms@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.10.1.tgz#24e2f08ee6832c60b157bb0936c86bef7210c622" - integrity sha512-RLHRCAzyJe7Q7sF4oy2cB+kRnU4wDZY/H2xJFGof+M+SJEGhZsb+GFj5j1AD8NiSaVBJ+Pf0/WObiXu/zxWpFg== - dependencies: - "@babel/helper-module-imports" "^7.10.1" - "@babel/helper-replace-supers" "^7.10.1" - "@babel/helper-simple-access" "^7.10.1" - "@babel/helper-split-export-declaration" "^7.10.1" - "@babel/template" "^7.10.1" - "@babel/types" "^7.10.1" - lodash "^4.17.13" - -"@babel/helper-optimise-call-expression@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.1.tgz#b4a1f2561870ce1247ceddb02a3860fa96d72543" - integrity sha512-a0DjNS1prnBsoKx83dP2falChcs7p3i8VMzdrSbfLhuQra/2ENC4sbri34dz/rWmDADsmF1q5GbfaXydh0Jbjg== - dependencies: - "@babel/types" "^7.10.1" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.1", "@babel/helper-plugin-utils@^7.8.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz#ec5a5cf0eec925b66c60580328b122c01230a127" - integrity sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA== - -"@babel/helper-regex@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.1.tgz#021cf1a7ba99822f993222a001cc3fec83255b96" - integrity sha512-7isHr19RsIJWWLLFn21ubFt223PjQyg1HY7CZEMRr820HttHPpVvrsIN3bUOo44DEfFV4kBXO7Abbn9KTUZV7g== - dependencies: - lodash "^4.17.13" - -"@babel/helper-remap-async-to-generator@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.1.tgz#bad6aaa4ff39ce8d4b82ccaae0bfe0f7dbb5f432" - integrity sha512-RfX1P8HqsfgmJ6CwaXGKMAqbYdlleqglvVtht0HGPMSsy2V6MqLlOJVF/0Qyb/m2ZCi2z3q3+s6Pv7R/dQuZ6A== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.1" - "@babel/helper-wrap-function" "^7.10.1" - "@babel/template" "^7.10.1" - "@babel/traverse" "^7.10.1" - "@babel/types" "^7.10.1" - -"@babel/helper-replace-supers@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.1.tgz#ec6859d20c5d8087f6a2dc4e014db7228975f13d" - integrity sha512-SOwJzEfpuQwInzzQJGjGaiG578UYmyi2Xw668klPWV5n07B73S0a9btjLk/52Mlcxa+5AdIYqws1KyXRfMoB7A== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.10.1" - "@babel/helper-optimise-call-expression" "^7.10.1" - "@babel/traverse" "^7.10.1" - "@babel/types" "^7.10.1" - -"@babel/helper-simple-access@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.1.tgz#08fb7e22ace9eb8326f7e3920a1c2052f13d851e" - integrity sha512-VSWpWzRzn9VtgMJBIWTZ+GP107kZdQ4YplJlCmIrjoLVSi/0upixezHCDG8kpPVTBJpKfxTH01wDhh+jS2zKbw== - dependencies: - "@babel/template" "^7.10.1" - "@babel/types" "^7.10.1" - -"@babel/helper-split-export-declaration@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz#c6f4be1cbc15e3a868e4c64a17d5d31d754da35f" - integrity sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g== - dependencies: - "@babel/types" "^7.10.1" - -"@babel/helper-validator-identifier@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz#5770b0c1a826c4f53f5ede5e153163e0318e94b5" - integrity sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw== - -"@babel/helper-wrap-function@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.10.1.tgz#956d1310d6696257a7afd47e4c42dfda5dfcedc9" - integrity sha512-C0MzRGteVDn+H32/ZgbAv5r56f2o1fZSA/rj/TYo8JEJNHg+9BdSmKBUND0shxWRztWhjlT2cvHYuynpPsVJwQ== - dependencies: - "@babel/helper-function-name" "^7.10.1" - "@babel/template" "^7.10.1" - "@babel/traverse" "^7.10.1" - "@babel/types" "^7.10.1" - -"@babel/helpers@^7.4.4": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.1.tgz#a6827b7cb975c9d9cef5fd61d919f60d8844a973" - integrity sha512-muQNHF+IdU6wGgkaJyhhEmI54MOZBKsFfsXFhboz1ybwJ1Kl7IHlbm2a++4jwrmY5UYsgitt5lfqo1wMFcHmyw== - dependencies: - "@babel/template" "^7.10.1" - "@babel/traverse" "^7.10.1" - "@babel/types" "^7.10.1" - -"@babel/highlight@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.1.tgz#841d098ba613ba1a427a2b383d79e35552c38ae0" - integrity sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg== - dependencies: - "@babel/helper-validator-identifier" "^7.10.1" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.10.1", "@babel/parser@^7.4.5": - version "7.10.2" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.2.tgz#871807f10442b92ff97e4783b9b54f6a0ca812d0" - integrity sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ== - -"@babel/plugin-proposal-async-generator-functions@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.1.tgz#6911af5ba2e615c4ff3c497fe2f47b35bf6d7e55" - integrity sha512-vzZE12ZTdB336POZjmpblWfNNRpMSua45EYnRigE2XsZxcXcIyly2ixnTJasJE4Zq3U7t2d8rRF7XRUuzHxbOw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/helper-remap-async-to-generator" "^7.10.1" - "@babel/plugin-syntax-async-generators" "^7.8.0" - -"@babel/plugin-proposal-class-properties@7.3.0": - version "7.3.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.3.0.tgz#272636bc0fa19a0bc46e601ec78136a173ea36cd" - integrity sha512-wNHxLkEKTQ2ay0tnsam2z7fGZUi+05ziDJflEt3AZTP3oXLKHJp9HqhfroB/vdMvt3sda9fAbq7FsG8QPDrZBg== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.3.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-proposal-json-strings@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.1.tgz#b1e691ee24c651b5a5e32213222b2379734aff09" - integrity sha512-m8r5BmV+ZLpWPtMY2mOKN7wre6HIO4gfIiV+eOmsnZABNenrt/kzYBwrh+KOfgumSWpnlGs5F70J8afYMSJMBg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/plugin-syntax-json-strings" "^7.8.0" - -"@babel/plugin-proposal-object-rest-spread@7.3.2": - version "7.3.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.3.2.tgz#6d1859882d4d778578e41f82cc5d7bf3d5daf6c1" - integrity sha512-DjeMS+J2+lpANkYLLO+m6GjoTMygYglKmRe6cDTbFv3L9i6mmiE8fe6B8MtCSLZpVXscD5kn7s6SgtHrDoBWoA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.2.0" - -"@babel/plugin-proposal-object-rest-spread@^7.4.4": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.1.tgz#cba44908ac9f142650b4a65b8aa06bf3478d5fb6" - integrity sha512-Z+Qri55KiQkHh7Fc4BW6o+QBuTagbOp9txE+4U1i79u9oWlf2npkiDx+Rf3iK3lbcHBuNy9UOkwuR5wOMH3LIQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-transform-parameters" "^7.10.1" - -"@babel/plugin-proposal-optional-catch-binding@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.1.tgz#c9f86d99305f9fa531b568ff5ab8c964b8b223d2" - integrity sha512-VqExgeE62YBqI3ogkGoOJp1R6u12DFZjqwJhqtKc2o5m1YTUuUWnos7bZQFBhwkxIFpWYJ7uB75U7VAPPiKETA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - -"@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.1.tgz#dc04feb25e2dd70c12b05d680190e138fa2c0c6f" - integrity sha512-JjfngYRvwmPwmnbRZyNiPFI8zxCZb8euzbCG/LxyKdeTb59tVciKo9GK9bi6JYKInk1H11Dq9j/zRqIH4KigfQ== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-syntax-async-generators@^7.2.0", "@babel/plugin-syntax-async-generators@^7.8.0": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-json-strings@^7.2.0", "@babel/plugin-syntax-json-strings@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.1.tgz#0ae371134a42b91d5418feb3c8c8d43e1565d2da" - integrity sha512-+OxyOArpVFXQeXKLO9o+r2I4dIoVoy6+Uu0vKELrlweDM3QJADZj+Z+5ERansZqIZBcLj42vHnDI8Rz9BnRIuQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-syntax-object-rest-spread@^7.2.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.2.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-transform-arrow-functions@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.1.tgz#cb5ee3a36f0863c06ead0b409b4cc43a889b295b" - integrity sha512-6AZHgFJKP3DJX0eCNJj01RpytUa3SOGawIxweHkNX2L6PYikOZmoh5B0d7hIHaIgveMjX990IAa/xK7jRTN8OA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-async-to-generator@^7.4.4": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.1.tgz#e5153eb1a3e028f79194ed8a7a4bf55f862b2062" - integrity sha512-XCgYjJ8TY2slj6SReBUyamJn3k2JLUIiiR5b6t1mNCMSvv7yx+jJpaewakikp0uWFQSF7ChPPoe3dHmXLpISkg== - dependencies: - "@babel/helper-module-imports" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/helper-remap-async-to-generator" "^7.10.1" - -"@babel/plugin-transform-block-scoped-functions@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.1.tgz#146856e756d54b20fff14b819456b3e01820b85d" - integrity sha512-B7K15Xp8lv0sOJrdVAoukKlxP9N59HS48V1J3U/JGj+Ad+MHq+am6xJVs85AgXrQn4LV8vaYFOB+pr/yIuzW8Q== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-block-scoping@^7.4.4": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.1.tgz#47092d89ca345811451cd0dc5d91605982705d5e" - integrity sha512-8bpWG6TtF5akdhIm/uWTyjHqENpy13Fx8chg7pFH875aNLwX8JxIxqm08gmAT+Whe6AOmaTeLPe7dpLbXt+xUw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - lodash "^4.17.13" - -"@babel/plugin-transform-classes@^7.4.4": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.1.tgz#6e11dd6c4dfae70f540480a4702477ed766d733f" - integrity sha512-P9V0YIh+ln/B3RStPoXpEQ/CoAxQIhRSUn7aXqQ+FZJ2u8+oCtjIXR3+X0vsSD8zv+mb56K7wZW1XiDTDGiDRQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.1" - "@babel/helper-define-map" "^7.10.1" - "@babel/helper-function-name" "^7.10.1" - "@babel/helper-optimise-call-expression" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/helper-replace-supers" "^7.10.1" - "@babel/helper-split-export-declaration" "^7.10.1" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.1.tgz#59aa399064429d64dce5cf76ef9b90b7245ebd07" - integrity sha512-mqSrGjp3IefMsXIenBfGcPXxJxweQe2hEIwMQvjtiDQ9b1IBvDUjkAtV/HMXX47/vXf14qDNedXsIiNd1FmkaQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-destructuring@^7.4.4": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.1.tgz#abd58e51337815ca3a22a336b85f62b998e71907" - integrity sha512-V/nUc4yGWG71OhaTH705pU8ZSdM6c1KmmLP8ys59oOYbT7RpMYAR3MsVOt6OHL0WzG7BlTU076va9fjJyYzJMA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.1.tgz#920b9fec2d78bb57ebb64a644d5c2ba67cc104ee" - integrity sha512-19VIMsD1dp02RvduFUmfzj8uknaO3uiHHF0s3E1OHnVsNj8oge8EQ5RzHRbJjGSetRnkEuBYO7TG1M5kKjGLOA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-duplicate-keys@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.1.tgz#c900a793beb096bc9d4d0a9d0cde19518ffc83b9" - integrity sha512-wIEpkX4QvX8Mo9W6XF3EdGttrIPZWozHfEaDTU0WJD/TDnXMvdDh30mzUl/9qWhnf7naicYartcEfUghTCSNpA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-exponentiation-operator@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.1.tgz#279c3116756a60dd6e6f5e488ba7957db9c59eb3" - integrity sha512-lr/przdAbpEA2BUzRvjXdEDLrArGRRPwbaF9rvayuHRvdQ7lUTTkZnhZrJ4LE2jvgMRFF4f0YuPQ20vhiPYxtA== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-for-of@^7.4.4": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.1.tgz#ff01119784eb0ee32258e8646157ba2501fcfda5" - integrity sha512-US8KCuxfQcn0LwSCMWMma8M2R5mAjJGsmoCBVwlMygvmDUMkTCykc84IqN1M7t+agSfOmLYTInLCHJM+RUoz+w== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-function-name@^7.4.4": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.1.tgz#4ed46fd6e1d8fde2a2ec7b03c66d853d2c92427d" - integrity sha512-//bsKsKFBJfGd65qSNNh1exBy5Y9gD9ZN+DvrJ8f7HXr4avE5POW6zB7Rj6VnqHV33+0vXWUwJT0wSHubiAQkw== - dependencies: - "@babel/helper-function-name" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-literals@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.1.tgz#5794f8da82846b22e4e6631ea1658bce708eb46a" - integrity sha512-qi0+5qgevz1NHLZroObRm5A+8JJtibb7vdcPQF1KQE12+Y/xxl8coJ+TpPW9iRq+Mhw/NKLjm+5SHtAHCC7lAw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-member-expression-literals@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.1.tgz#90347cba31bca6f394b3f7bd95d2bbfd9fce2f39" - integrity sha512-UmaWhDokOFT2GcgU6MkHC11i0NQcL63iqeufXWfRy6pUOGYeCGEKhvfFO6Vz70UfYJYHwveg62GS83Rvpxn+NA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-modules-amd@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.1.tgz#65950e8e05797ebd2fe532b96e19fc5482a1d52a" - integrity sha512-31+hnWSFRI4/ACFr1qkboBbrTxoBIzj7qA69qlq8HY8p7+YCzkCT6/TvQ1a4B0z27VeWtAeJd6pr5G04dc1iHw== - dependencies: - "@babel/helper-module-transforms" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-commonjs@^7.4.4": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.1.tgz#d5ff4b4413ed97ffded99961056e1fb980fb9301" - integrity sha512-AQG4fc3KOah0vdITwt7Gi6hD9BtQP/8bhem7OjbaMoRNCH5Djx42O2vYMfau7QnAzQCa+RJnhJBmFFMGpQEzrg== - dependencies: - "@babel/helper-module-transforms" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/helper-simple-access" "^7.10.1" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-systemjs@^7.4.4": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.1.tgz#9962e4b0ac6aaf2e20431ada3d8ec72082cbffb6" - integrity sha512-ewNKcj1TQZDL3YnO85qh9zo1YF1CHgmSTlRQgHqe63oTrMI85cthKtZjAiZSsSNjPQ5NCaYo5QkbYqEw1ZBgZA== - dependencies: - "@babel/helper-hoist-variables" "^7.10.1" - "@babel/helper-module-transforms" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-umd@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.1.tgz#ea080911ffc6eb21840a5197a39ede4ee67b1595" - integrity sha512-EIuiRNMd6GB6ulcYlETnYYfgv4AxqrswghmBRQbWLHZxN4s7mupxzglnHqk9ZiUpDI4eRWewedJJNj67PWOXKA== - dependencies: - "@babel/helper-module-transforms" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.4.5": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz#a2a72bffa202ac0e2d0506afd0939c5ecbc48c6c" - integrity sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - -"@babel/plugin-transform-new-target@^7.4.4": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.1.tgz#6ee41a5e648da7632e22b6fb54012e87f612f324" - integrity sha512-MBlzPc1nJvbmO9rPr1fQwXOM2iGut+JC92ku6PbiJMMK7SnQc1rytgpopveE3Evn47gzvGYeCdgfCDbZo0ecUw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-object-super@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.1.tgz#2e3016b0adbf262983bf0d5121d676a5ed9c4fde" - integrity sha512-WnnStUDN5GL+wGQrJylrnnVlFhFmeArINIR9gjhSeYyvroGhBrSAXYg/RHsnfzmsa+onJrTJrEClPzgNmmQ4Gw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/helper-replace-supers" "^7.10.1" - -"@babel/plugin-transform-parameters@^7.10.1", "@babel/plugin-transform-parameters@^7.4.4": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.1.tgz#b25938a3c5fae0354144a720b07b32766f683ddd" - integrity sha512-tJ1T0n6g4dXMsL45YsSzzSDZCxiHXAQp/qHrucOq5gEHncTA3xDxnd5+sZcoQp+N1ZbieAaB8r/VUCG0gqseOg== - dependencies: - "@babel/helper-get-function-arity" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-property-literals@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.1.tgz#cffc7315219230ed81dc53e4625bf86815b6050d" - integrity sha512-Kr6+mgag8auNrgEpbfIWzdXYOvqDHZOF0+Bx2xh4H2EDNwcbRb9lY6nkZg8oSjsX+DH9Ebxm9hOqtKW+gRDeNA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-react-display-name@^7.0.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.1.tgz#e6a33f6d48dfb213dda5e007d0c7ff82b6a3d8ef" - integrity sha512-rBjKcVwjk26H3VX8pavMxGf33LNlbocMHdSeldIEswtQ/hrjyTG8fKKILW1cSkODyRovckN/uZlGb2+sAV9JUQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-react-jsx-self@^7.0.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.1.tgz#22143e14388d72eb88649606bb9e46f421bc3821" - integrity sha512-4p+RBw9d1qV4S749J42ZooeQaBomFPrSxa9JONLHJ1TxCBo3TzJ79vtmG2S2erUT8PDDrPdw4ZbXGr2/1+dILA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/plugin-syntax-jsx" "^7.10.1" - -"@babel/plugin-transform-react-jsx-source@^7.0.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.1.tgz#30db3d4ee3cdebbb26a82a9703673714777a4273" - integrity sha512-neAbaKkoiL+LXYbGDvh6PjPG+YeA67OsZlE78u50xbWh2L1/C81uHiNP5d1fw+uqUIoiNdCC8ZB+G4Zh3hShJA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/plugin-syntax-jsx" "^7.10.1" - -"@babel/plugin-transform-react-jsx@^7.0.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.1.tgz#91f544248ba131486decb5d9806da6a6e19a2896" - integrity sha512-MBVworWiSRBap3Vs39eHt+6pJuLUAaK4oxGc8g+wY+vuSJvLiEQjW1LSTqKb8OUPtDvHCkdPhk7d6sjC19xyFw== - dependencies: - "@babel/helper-builder-react-jsx" "^7.10.1" - "@babel/helper-builder-react-jsx-experimental" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/plugin-syntax-jsx" "^7.10.1" - -"@babel/plugin-transform-regenerator@^7.4.5": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.1.tgz#10e175cbe7bdb63cc9b39f9b3f823c5c7c5c5490" - integrity sha512-B3+Y2prScgJ2Bh/2l9LJxKbb8C8kRfsG4AdPT+n7ixBHIxJaIG8bi8tgjxUMege1+WqSJ+7gu1YeoMVO3gPWzw== - dependencies: - regenerator-transform "^0.14.2" - -"@babel/plugin-transform-reserved-words@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.1.tgz#0fc1027312b4d1c3276a57890c8ae3bcc0b64a86" - integrity sha512-qN1OMoE2nuqSPmpTqEM7OvJ1FkMEV+BjVeZZm9V9mq/x1JLKQ4pcv8riZJMNN3u2AUGl0ouOMjRr2siecvHqUQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-runtime@7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.2.0.tgz#566bc43f7d0aedc880eaddbd29168d0f248966ea" - integrity sha512-jIgkljDdq4RYDnJyQsiWbdvGeei/0MOTtSHKO/rfbd/mXBxNpdlulMx49L0HQ4pug1fXannxoqCI+fYSle9eSw== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - resolve "^1.8.1" - semver "^5.5.1" - -"@babel/plugin-transform-shorthand-properties@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.1.tgz#e8b54f238a1ccbae482c4dce946180ae7b3143f3" - integrity sha512-AR0E/lZMfLstScFwztApGeyTHJ5u3JUKMjneqRItWeEqDdHWZwAOKycvQNCasCK/3r5YXsuNG25funcJDu7Y2g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-spread@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.1.tgz#0c6d618a0c4461a274418460a28c9ccf5239a7c8" - integrity sha512-8wTPym6edIrClW8FI2IoaePB91ETOtg36dOkj3bYcNe7aDMN2FXEoUa+WrmPc4xa1u2PQK46fUX2aCb+zo9rfw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-sticky-regex@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.1.tgz#90fc89b7526228bed9842cff3588270a7a393b00" - integrity sha512-j17ojftKjrL7ufX8ajKvwRilwqTok4q+BjkknmQw9VNHnItTyMP5anPFzxFJdCQs7clLcWpCV3ma+6qZWLnGMA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/helper-regex" "^7.10.1" - -"@babel/plugin-transform-template-literals@^7.4.4": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.1.tgz#914c7b7f4752c570ea00553b4284dad8070e8628" - integrity sha512-t7B/3MQf5M1T9hPCRG28DNGZUuxAuDqLYS03rJrIk2prj/UV7Z6FOneijhQhnv/Xa039vidXeVbvjK2SK5f7Gg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-typeof-symbol@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.1.tgz#60c0239b69965d166b80a84de7315c1bc7e0bb0e" - integrity sha512-qX8KZcmbvA23zDi+lk9s6hC1FM7jgLHYIjuLgULgc8QtYnmB3tAVIYkNoKRQ75qWBeyzcoMoK8ZQmogGtC/w0g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-unicode-regex@^7.4.4": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.1.tgz#6b58f2aea7b68df37ac5025d9c88752443a6b43f" - integrity sha512-Y/2a2W299k0VIUdbqYm9X2qS6fE0CUBhhiPpimK6byy7OJ/kORLlIX+J6UrjgNu5awvs62k+6RSslxhcvVw2Tw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/preset-env@7.4.5": - version "7.4.5" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.4.5.tgz#2fad7f62983d5af563b5f3139242755884998a58" - integrity sha512-f2yNVXM+FsR5V8UwcFeIHzHWgnhXg3NpRmy0ADvALpnhB0SLbCvrCRr4BLOUYbQNLS+Z0Yer46x9dJXpXewI7w== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-async-generator-functions" "^7.2.0" - "@babel/plugin-proposal-json-strings" "^7.2.0" - "@babel/plugin-proposal-object-rest-spread" "^7.4.4" - "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-syntax-async-generators" "^7.2.0" - "@babel/plugin-syntax-json-strings" "^7.2.0" - "@babel/plugin-syntax-object-rest-spread" "^7.2.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" - "@babel/plugin-transform-arrow-functions" "^7.2.0" - "@babel/plugin-transform-async-to-generator" "^7.4.4" - "@babel/plugin-transform-block-scoped-functions" "^7.2.0" - "@babel/plugin-transform-block-scoping" "^7.4.4" - "@babel/plugin-transform-classes" "^7.4.4" - "@babel/plugin-transform-computed-properties" "^7.2.0" - "@babel/plugin-transform-destructuring" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/plugin-transform-duplicate-keys" "^7.2.0" - "@babel/plugin-transform-exponentiation-operator" "^7.2.0" - "@babel/plugin-transform-for-of" "^7.4.4" - "@babel/plugin-transform-function-name" "^7.4.4" - "@babel/plugin-transform-literals" "^7.2.0" - "@babel/plugin-transform-member-expression-literals" "^7.2.0" - "@babel/plugin-transform-modules-amd" "^7.2.0" - "@babel/plugin-transform-modules-commonjs" "^7.4.4" - "@babel/plugin-transform-modules-systemjs" "^7.4.4" - "@babel/plugin-transform-modules-umd" "^7.2.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.4.5" - "@babel/plugin-transform-new-target" "^7.4.4" - "@babel/plugin-transform-object-super" "^7.2.0" - "@babel/plugin-transform-parameters" "^7.4.4" - "@babel/plugin-transform-property-literals" "^7.2.0" - "@babel/plugin-transform-regenerator" "^7.4.5" - "@babel/plugin-transform-reserved-words" "^7.2.0" - "@babel/plugin-transform-shorthand-properties" "^7.2.0" - "@babel/plugin-transform-spread" "^7.2.0" - "@babel/plugin-transform-sticky-regex" "^7.2.0" - "@babel/plugin-transform-template-literals" "^7.4.4" - "@babel/plugin-transform-typeof-symbol" "^7.2.0" - "@babel/plugin-transform-unicode-regex" "^7.4.4" - "@babel/types" "^7.4.4" - browserslist "^4.6.0" - core-js-compat "^3.1.1" - invariant "^2.2.2" - js-levenshtein "^1.1.3" - semver "^5.5.0" - -"@babel/preset-react@7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.0.0.tgz#e86b4b3d99433c7b3e9e91747e2653958bc6b3c0" - integrity sha512-oayxyPS4Zj+hF6Et11BwuBkmpgT/zMxyuZgFrMeZID6Hdh3dGlk4sHCAhdBCpuCKW2ppBfl2uCCetlrUIJRY3w== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.0.0" - "@babel/plugin-transform-react-jsx-self" "^7.0.0" - "@babel/plugin-transform-react-jsx-source" "^7.0.0" - -"@babel/runtime@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.3.1.tgz#574b03e8e8a9898eaf4a872a92ea20b7846f6f2a" - integrity sha512-7jGW8ppV0ant637pIqAcFfQDDH1orEPGJb8aXfUozuCU3QqX7rX4DA8iwrbPrR1hcH0FTTHz47yQnk+bl5xHQA== - dependencies: - regenerator-runtime "^0.12.0" - -"@babel/runtime@^7.8.4": - version "7.10.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.10.2.tgz#d103f21f2602497d38348a32e008637d506db839" - integrity sha512-6sF3uQw2ivImfVIl62RZ7MXhO2tap69WeWK57vAaimT6AZbE4FbqjdEJIN1UqoD6wI6B+1n9UiagafH1sxjOtg== - dependencies: - regenerator-runtime "^0.13.4" +"@bazel/bazelisk@^1.7.2": + version "1.7.2" + resolved "https://registry.yarnpkg.com/@bazel/bazelisk/-/bazelisk-1.7.2.tgz#80673d886ac46bf671f6b1908bf80a4eb84eb200" + integrity sha512-/cin20XIfSctNVh6veOVKFwUp6g6/oeEEvgPLSetgK6HFspReI3jI+2lO4haQX8yD2QFN20ndheXDuLYidoj6g== -"@babel/template@^7.10.1", "@babel/template@^7.4.4": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.1.tgz#e167154a94cb5f14b28dc58f5356d2162f539811" - integrity sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig== - dependencies: - "@babel/code-frame" "^7.10.1" - "@babel/parser" "^7.10.1" - "@babel/types" "^7.10.1" - -"@babel/traverse@^7.10.1", "@babel/traverse@^7.4.5": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.10.1.tgz#bbcef3031e4152a6c0b50147f4958df54ca0dd27" - integrity sha512-C/cTuXeKt85K+p08jN6vMDz8vSV0vZcI0wmQ36o6mjbuo++kPMdpOYw23W2XH04dbRt9/nMEfA4W3eR21CD+TQ== - dependencies: - "@babel/code-frame" "^7.10.1" - "@babel/generator" "^7.10.1" - "@babel/helper-function-name" "^7.10.1" - "@babel/helper-split-export-declaration" "^7.10.1" - "@babel/parser" "^7.10.1" - "@babel/types" "^7.10.1" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/types@^7.10.1", "@babel/types@^7.10.2", "@babel/types@^7.4.4": - version "7.10.2" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.10.2.tgz#30283be31cad0dbf6fb00bd40641ca0ea675172d" - integrity sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng== +"@bazel/cypress@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/cypress/-/cypress-2.3.1.tgz#0dc39cf161440183ace6cbfb4b0b865919607bf1" + integrity sha512-vdwQ2HU0HifbiTNVs6devD7eGW8D9ExaXg8q3LFqHDMwB1WGegk3/mk+J2RklBbVBzaiazoDJ7AVww2MK2xzLQ== dependencies: - "@babel/helper-validator-identifier" "^7.10.1" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@bazel/bazelisk@^1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@bazel/bazelisk/-/bazelisk-1.5.0.tgz#61f583ed93be138b47be7180403938ea4057f54b" - integrity sha512-qhOGN1WmfZYNJXGrRL/0byii9hX5FBomMv3WWI2OEL2+Bxm4t/bR3zMxN3xwQX1C8meSSrAfKGSzxVOZfpJsOg== - -"@bazel/cypress@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/cypress/-/cypress-2.0.0.tgz#b93a811d2d692212c6de79993727f8a955011f1e" - integrity sha512-CrJu1WCfaQX1V6T8sGcpxGsP0U0ip8LPwWye70OrXOS/0R1p6Lk68Z22unDiPScBTTiXygDhTKLbRHREvkcdRA== + tar "6.0.5" -"@bazel/ibazel@^0.13.1": - version "0.13.1" - resolved "https://registry.yarnpkg.com/@bazel/ibazel/-/ibazel-0.13.1.tgz#23788f67a6fbe83d96f2d055691df4917c10ac8d" - integrity sha512-FO1hBKpzpeBL0adnFYF2Dwl/7gox6ccKM6bb+x26AXrQpLbinXPuTi4zeXRL/MW4383mF6i4RovLCmwUU/YW0w== +"@bazel/ibazel@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@bazel/ibazel/-/ibazel-0.14.0.tgz#86fa0002bed2ce1123b7ad98d4dd4623a0d93244" + integrity sha512-s0gyec6lArcRDwVfIP6xpY8iEaFpzrSpyErSppd3r2O49pOEg7n6HGS/qJ8ncvme56vrDk6crl/kQ6VAdEO+rg== -"@bazel/typescript@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-2.0.0.tgz#2ff5615f09c733cc681ba2ada92b11c356b694cd" - integrity sha512-5FPkxULWIjAKLG5J1XvpXpY1/4IK39dAoWA/Hhg+16gXTES32fT8w42k96pb6BTaNnyBuYgIHBpELEAJ40OOAQ== +"@bazel/typescript@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-2.3.1.tgz#f103c4a5230cabaffd8d574b7278265b5478f056" + integrity sha512-blgLpx+9Vh8DZWTVOYTWSk1HEU28FF+GwU1stFaemfY7/pUQfK/URb9FARRkw/v2UrPKCd9EBywFYQyPGSAb1A== dependencies: protobufjs "6.8.8" semver "5.6.0" source-map-support "0.5.9" tsutils "2.27.2" -"@cypress/browserify-preprocessor@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@cypress/browserify-preprocessor/-/browserify-preprocessor-3.0.0.tgz#2d1fa6a96ed7130a1b172c540448a5955cbc1264" - integrity sha512-8CXLCKlXVUnad5TjwVswq4nwwWVyt5Z+HMgrFaD2yF7A62AA6OYDrShTQnG6M6+hr1cq1X4zYbo7VT4oxex5hA== - dependencies: - "@babel/core" "7.4.5" - "@babel/plugin-proposal-class-properties" "7.3.0" - "@babel/plugin-proposal-object-rest-spread" "7.3.2" - "@babel/plugin-transform-runtime" "7.2.0" - "@babel/preset-env" "7.4.5" - "@babel/preset-react" "7.0.0" - "@babel/runtime" "7.3.1" - babel-plugin-add-module-exports "1.0.2" - babelify "10.0.0" - bluebird "3.5.3" - browserify "16.2.3" - coffeeify "3.0.1" - coffeescript "1.12.7" - debug "4.1.1" - fs-extra "9.0.0" - lodash.clonedeep "4.5.0" - through2 "^2.0.0" - watchify "3.11.1" - "@cypress/listr-verbose-renderer@0.4.1": version "0.4.1" resolved "https://registry.yarnpkg.com/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz#a77492f4b11dcc7c446a34b3e28721afd33c642a" @@ -922,14 +158,6 @@ resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.2.tgz#a811b8c18e2babab7d542b3365887ae2e4d9de47" integrity sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg== -JSONStream@^1.0.3: - version "1.3.5" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" - integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - accepts@~1.3.7: version "1.3.7" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" @@ -938,25 +166,6 @@ accepts@~1.3.7: mime-types "~2.1.24" negotiator "0.6.2" -acorn-node@^1.2.0, acorn-node@^1.3.0, acorn-node@^1.5.2, acorn-node@^1.6.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" - integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== - dependencies: - acorn "^7.0.0" - acorn-walk "^7.0.0" - xtend "^4.0.2" - -acorn-walk@^7.0.0: - version "7.1.1" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.1.1.tgz#345f0dffad5c735e7373d2fec9a1023e6a44b83e" - integrity sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ== - -acorn@^7.0.0: - version "7.3.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.3.1.tgz#85010754db53c3fbaf3b9ea3e083aa5c5d147ffd" - integrity sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA== - ajv@^6.5.5: version "6.12.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" @@ -999,53 +208,16 @@ any-observable@^0.3.0: resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - arch@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/arch/-/arch-2.1.1.tgz#8f5c2731aa35a30929221bb0640eed65175ec84e" integrity sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg== -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -asn1.js@^4.0.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - asn1@~0.2.3: version "0.2.4" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" @@ -1058,24 +230,6 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= -assert@^1.4.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - async@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" @@ -1086,16 +240,6 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" @@ -1106,48 +250,11 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.0.tgz#a17b3a8ea811060e74d47d306122400ad4497ae2" integrity sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA== -babel-plugin-add-module-exports@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-1.0.2.tgz#96cd610d089af664f016467fc4567c099cce2d9c" - integrity sha512-4paN7RivvU3Rzju1vGSHWPjO8Y0rI6droWvSFKI6dvEQ4mvoV0zGojnlzVRfI6N8zISo6VERXt3coIuVmzuvNg== - optionalDependencies: - chokidar "^2.0.4" - -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - -babelify@10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/babelify/-/babelify-10.0.0.tgz#fe73b1a22583f06680d8d072e25a1e0d1d1d7fb5" - integrity sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg== - balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= -base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" @@ -1155,38 +262,11 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bluebird@3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7" - integrity sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw== - bluebird@3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: - version "4.11.9" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" - integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== - -bn.js@^5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0" - integrity sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA== - body-parser@1.19.0: version "1.19.0" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" @@ -1211,225 +291,6 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browser-pack@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.1.0.tgz#c34ba10d0b9ce162b5af227c7131c92c2ecd5774" - integrity sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA== - dependencies: - JSONStream "^1.0.3" - combine-source-map "~0.8.0" - defined "^1.0.0" - safe-buffer "^5.1.1" - through2 "^2.0.0" - umd "^3.0.0" - -browser-resolve@^1.11.0, browser-resolve@^1.7.0: - version "1.11.3" - resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" - integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== - dependencies: - resolve "1.1.7" - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= - dependencies: - bn.js "^4.1.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.0.tgz#545d0b1b07e6b2c99211082bf1b12cce7a0b0e11" - integrity sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.2" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserify-zlib@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserify@16.2.3: - version "16.2.3" - resolved "https://registry.yarnpkg.com/browserify/-/browserify-16.2.3.tgz#7ee6e654ba4f92bce6ab3599c3485b1cc7a0ad0b" - integrity sha512-zQt/Gd1+W+IY+h/xX2NYMW4orQWhqSwyV+xsblycTtpOuB27h1fZhhNQuipJ4t79ohw4P4mMem0jp/ZkISQtjQ== - dependencies: - JSONStream "^1.0.3" - assert "^1.4.0" - browser-pack "^6.0.1" - browser-resolve "^1.11.0" - browserify-zlib "~0.2.0" - buffer "^5.0.2" - cached-path-relative "^1.0.0" - concat-stream "^1.6.0" - console-browserify "^1.1.0" - constants-browserify "~1.0.0" - crypto-browserify "^3.0.0" - defined "^1.0.0" - deps-sort "^2.0.0" - domain-browser "^1.2.0" - duplexer2 "~0.1.2" - events "^2.0.0" - glob "^7.1.0" - has "^1.0.0" - htmlescape "^1.1.0" - https-browserify "^1.0.0" - inherits "~2.0.1" - insert-module-globals "^7.0.0" - labeled-stream-splicer "^2.0.0" - mkdirp "^0.5.0" - module-deps "^6.0.0" - os-browserify "~0.3.0" - parents "^1.0.1" - path-browserify "~0.0.0" - process "~0.11.0" - punycode "^1.3.2" - querystring-es3 "~0.2.0" - read-only-stream "^2.0.0" - readable-stream "^2.0.2" - resolve "^1.1.4" - shasum "^1.0.0" - shell-quote "^1.6.1" - stream-browserify "^2.0.0" - stream-http "^2.0.0" - string_decoder "^1.1.1" - subarg "^1.0.0" - syntax-error "^1.1.1" - through2 "^2.0.0" - timers-browserify "^1.0.1" - tty-browserify "0.0.1" - url "~0.11.0" - util "~0.10.1" - vm-browserify "^1.0.0" - xtend "^4.0.0" - -browserify@^16.1.0: - version "16.5.1" - resolved "https://registry.yarnpkg.com/browserify/-/browserify-16.5.1.tgz#3c13c97436802930d5c3ae28658ddc33bfd37dc2" - integrity sha512-EQX0h59Pp+0GtSRb5rL6OTfrttlzv+uyaUVlK6GX3w11SQ0jKPKyjC/54RhPR2ib2KmfcELM06e8FxcI5XNU2A== - dependencies: - JSONStream "^1.0.3" - assert "^1.4.0" - browser-pack "^6.0.1" - browser-resolve "^1.11.0" - browserify-zlib "~0.2.0" - buffer "~5.2.1" - cached-path-relative "^1.0.0" - concat-stream "^1.6.0" - console-browserify "^1.1.0" - constants-browserify "~1.0.0" - crypto-browserify "^3.0.0" - defined "^1.0.0" - deps-sort "^2.0.0" - domain-browser "^1.2.0" - duplexer2 "~0.1.2" - events "^2.0.0" - glob "^7.1.0" - has "^1.0.0" - htmlescape "^1.1.0" - https-browserify "^1.0.0" - inherits "~2.0.1" - insert-module-globals "^7.0.0" - labeled-stream-splicer "^2.0.0" - mkdirp-classic "^0.5.2" - module-deps "^6.0.0" - os-browserify "~0.3.0" - parents "^1.0.1" - path-browserify "~0.0.0" - process "~0.11.0" - punycode "^1.3.2" - querystring-es3 "~0.2.0" - read-only-stream "^2.0.0" - readable-stream "^2.0.2" - resolve "^1.1.4" - shasum "^1.0.0" - shell-quote "^1.6.1" - stream-browserify "^2.0.0" - stream-http "^3.0.0" - string_decoder "^1.1.1" - subarg "^1.0.0" - syntax-error "^1.1.1" - through2 "^2.0.0" - timers-browserify "^1.0.1" - tty-browserify "0.0.1" - url "~0.11.0" - util "~0.10.1" - vm-browserify "^1.0.0" - xtend "^4.0.0" - -browserslist@^4.6.0, browserslist@^4.8.5: - version "4.12.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.12.0.tgz#06c6d5715a1ede6c51fc39ff67fd647f740b656d" - integrity sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg== - dependencies: - caniuse-lite "^1.0.30001043" - electron-to-chromium "^1.3.413" - node-releases "^1.1.53" - pkg-up "^2.0.0" - buffer-crc32@~0.2.3: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" @@ -1440,73 +301,22 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^5.0.2: - version "5.6.0" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" - integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - -buffer@~5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6" - integrity sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - bytes@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -cached-path-relative@^1.0.0, cached-path-relative@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.2.tgz#a13df4196d26776220cc3356eb147a52dba2c6db" - integrity sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg== - cachedir@2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== -caniuse-lite@^1.0.30001043: - version "1.0.30001083" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001083.tgz#52410c20c6f029f604f0d45eca0439a82e712442" - integrity sha512-CnYJ27awX4h7yj5glfK7r1TOI13LBytpLzEgfj0s4mY75/F8pnQcYjL+oVpmS38FB59+vU0gscQ9D8tc+lIXvA== - caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chalk@2.4.2, chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: +chalk@2.4.2, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -1531,48 +341,16 @@ check-more-types@2.24.0: resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" integrity sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA= -chokidar@^2.0.4, chokidar@^2.1.1: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== ci-info@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - cli-cursor@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" @@ -1610,27 +388,6 @@ code-point-at@^1.0.0: resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= -coffeeify@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/coffeeify/-/coffeeify-3.0.1.tgz#5e2753000c50bd24c693115f33864248dd11136c" - integrity sha512-Qjnr7UX6ldK1PHV7wCnv7AuCd4q19KTUtwJnu/6JRJB4rfm12zvcXtKdacUoePOKr1I4ka/ydKiwWpNAdsQb0g== - dependencies: - convert-source-map "^1.3.0" - through2 "^2.0.0" - -coffeescript@1.12.7: - version "1.12.7" - resolved "https://registry.yarnpkg.com/coffeescript/-/coffeescript-1.12.7.tgz#e57ee4c4867cf7f606bfc4a0f2d550c0981ddd27" - integrity sha512-pLXHFxQMPklVoEekowk8b3erNynC+DVJzChxS/LCBBgR6/8AJkHivkm//zbowcfc7BTCAjryuhx6gPqPRfsFoA== - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -1648,16 +405,6 @@ colors@^1.1.2: resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== -combine-source-map@^0.8.0, combine-source-map@~0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.8.0.tgz#a58d0df042c186fcf822a8e8015f5450d2d79a8b" - integrity sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos= - dependencies: - convert-source-map "~1.1.0" - inline-source-map "~0.6.0" - lodash.memoize "~3.0.3" - source-map "~0.5.3" - combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -1675,17 +422,12 @@ common-tags@1.8.0: resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@^1.6.2, concat-stream@~1.6.0: +concat-stream@^1.6.2: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -1695,16 +437,6 @@ concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@^1.6.2, concat-stream@ readable-stream "^2.2.2" typedarray "^0.0.6" -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - -constants-browserify@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= - content-disposition@0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" @@ -1717,18 +449,6 @@ content-type@~1.0.4: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== -convert-source-map@^1.1.0, convert-source-map@^1.3.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -convert-source-map@~1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860" - integrity sha1-SCnId+n+SbMWHzvzZziI4gRpmGA= - cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" @@ -1739,55 +459,11 @@ cookie@0.4.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -core-js-compat@^3.1.1: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c" - integrity sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng== - dependencies: - browserslist "^4.8.5" - semver "7.0.0" - core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -create-ecdh@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" - integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== - dependencies: - bn.js "^4.1.0" - elliptic "^6.0.0" - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - cross-spawn@^6.0.0: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -1799,23 +475,6 @@ cross-spawn@^6.0.0: shebang-command "^1.2.0" which "^1.2.9" -crypto-browserify@^3.0.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - cypress@^4.8.0: version "4.8.0" resolved "https://registry.yarnpkg.com/cypress/-/cypress-4.8.0.tgz#8fe731db77f39310511d83e81439d06ae3388554" @@ -1859,11 +518,6 @@ cypress@^4.8.0: url "0.11.0" yauzl "2.10.0" -dash-ast@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dash-ast/-/dash-ast-1.0.0.tgz#12029ba5fb2f8aa6f0a861795b23c1b4b6c27d37" - integrity sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA== - dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" @@ -1876,14 +530,14 @@ date-fns@^1.27.2: resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: +debug@2.6.9, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@4.1.1, debug@^4.1.0: +debug@4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== @@ -1897,45 +551,6 @@ debug@^3.1.0: dependencies: ms "^2.1.1" -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -define-properties@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -defined@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= - delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -1946,59 +561,11 @@ depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= -deps-sort@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.1.tgz#9dfdc876d2bcec3386b6829ac52162cda9fa208d" - integrity sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw== - dependencies: - JSONStream "^1.0.3" - shasum-object "^1.0.0" - subarg "^1.0.0" - through2 "^2.0.0" - -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - destroy@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= -detective@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b" - integrity sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg== - dependencies: - acorn-node "^1.6.1" - defined "^1.0.0" - minimist "^1.1.1" - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -domain-browser@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -duplexer2@^0.1.2, duplexer2@~0.1.0, duplexer2@~0.1.2: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" - integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME= - dependencies: - readable-stream "^2.0.2" - ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -2012,29 +579,11 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.413: - version "1.3.473" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.473.tgz#d0cd5fe391046fb70674ec98149f0f97609d29b8" - integrity sha512-smevlzzMNz3vMz6OLeeCq5HRWEj2AcgccNPYnAx4Usx0IOciq9DU36RJcICcS09hXoY7t7deRfVYKD14IrGb9A== - elegant-spinner@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4= -elliptic@^6.0.0, elliptic@^6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" - integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw== - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -2067,19 +616,6 @@ eventemitter2@4.1.2: resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-4.1.2.tgz#0e1a8477af821a6ef3995b311bf74c23a5247f15" integrity sha1-DhqEd6+CGm7zmVsxG/dMI6UkfxU= -events@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/events/-/events-2.1.0.tgz#2a9a1e18e6106e0e812aa9ebd4a819b3c29c0ba5" - integrity sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg== - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - execa@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -2105,19 +641,6 @@ exit-hook@^1.0.0: resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" integrity sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g= -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - express@4.17.1: version "4.17.1" resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" @@ -2154,40 +677,11 @@ express@4.17.1: utils-merge "1.0.1" vary "~1.1.2" -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - extract-zip@1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" @@ -2218,11 +712,6 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-safe-stringify@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743" - integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA== - fd-slicer@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" @@ -2245,21 +734,6 @@ figures@^2.0.0: dependencies: escape-string-regexp "^1.0.5" -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - finalhandler@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" @@ -2273,18 +747,6 @@ finalhandler@~1.1.2: statuses "~1.5.0" unpipe "~1.0.0" -find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" @@ -2304,13 +766,6 @@ forwarded@~0.1.2: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" @@ -2325,39 +780,18 @@ fs-extra@8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.0.tgz#b6afc31036e247b2466dc99c29ae797d5d4580a3" - integrity sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g== +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^1.0.0" + minipass "^3.0.0" fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -get-assigned-identifiers@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1" - integrity sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ== - get-stream@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" @@ -2365,11 +799,6 @@ get-stream@^4.0.0: dependencies: pump "^3.0.0" -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - getos@3.1.4: version "3.1.4" resolved "https://registry.yarnpkg.com/getos/-/getos-3.1.4.tgz#29cdf240ed10a70c049add7b6f8cb08c81876faf" @@ -2384,15 +813,7 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob@^7.1.0, glob@^7.1.3: +glob@^7.1.3: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -2411,12 +832,7 @@ global-dirs@^0.1.0: dependencies: ini "^1.3.4" -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -graceful-fs@^4.1.11, graceful-fs@^4.1.6, graceful-fs@^4.2.0: +graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.4" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== @@ -2451,80 +867,6 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -htmlescape@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" - integrity sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E= - http-errors@1.7.2: version "1.7.2" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" @@ -2556,11 +898,6 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -2568,11 +905,6 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - indent-string@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" @@ -2586,16 +918,11 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - inherits@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" @@ -2606,67 +933,11 @@ ini@^1.3.4: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== -inline-source-map@~0.6.0: - version "0.6.2" - resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5" - integrity sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU= - dependencies: - source-map "~0.5.3" - -insert-module-globals@^7.0.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.2.0.tgz#ec87e5b42728479e327bd5c5c71611ddfb4752ba" - integrity sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw== - dependencies: - JSONStream "^1.0.3" - acorn-node "^1.5.2" - combine-source-map "^0.8.0" - concat-stream "^1.6.1" - is-buffer "^1.1.0" - path-is-absolute "^1.0.1" - process "~0.11.0" - through2 "^2.0.0" - undeclared-identifiers "^1.1.2" - xtend "^4.0.0" - -invariant@^2.2.2: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - ipaddr.js@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - -is-buffer@^1.1.0, is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - is-ci@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" @@ -2674,55 +945,6 @@ is-ci@2.0.0: dependencies: ci-info "^2.0.0" -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - is-fullwidth-code-point@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" @@ -2735,20 +957,6 @@ is-fullwidth-code-point@^2.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - is-installed-globally@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" @@ -2757,13 +965,6 @@ is-installed-globally@0.1.0: global-dirs "^0.1.0" is-path-inside "^1.0.0" -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - is-observable@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" @@ -2778,13 +979,6 @@ is-path-inside@^1.0.0: dependencies: path-is-inside "^1.0.1" -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - is-promise@^2.1.0: version "2.2.2" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" @@ -2800,12 +994,7 @@ is-typedarray@~1.0.0: resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -isarray@1.0.0, isarray@~1.0.0: +isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= @@ -2815,48 +1004,16 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -js-levenshtein@^1.1.3: - version "1.1.6" - resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" - integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -2867,25 +1024,11 @@ json-schema@0.2.3: resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= -json-stable-stringify@~0.0.0: - version "0.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz#611c23e814db375527df851193db59dd2af27f45" - integrity sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U= - dependencies: - jsonify "~0.0.0" - json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json5@^2.1.0: - version "2.1.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" - integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== - dependencies: - minimist "^1.2.5" - jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -2893,25 +1036,6 @@ jsonfile@^4.0.0: optionalDependencies: graceful-fs "^4.1.6" -jsonfile@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179" - integrity sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg== - dependencies: - universalify "^1.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= - -jsonparse@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" - integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= - jsprim@^1.2.2: version "1.4.1" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" @@ -2920,39 +1044,7 @@ jsprim@^1.2.2: assert-plus "1.0.0" extsprintf "1.3.0" json-schema "0.2.3" - verror "1.10.0" - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -labeled-stream-splicer@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz#42a41a16abcd46fd046306cf4f2c3576fffb1c21" - integrity sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw== - dependencies: - inherits "^2.0.1" - stream-splicer "^2.0.0" + verror "1.10.0" lazy-ass@1.6.0: version "1.6.0" @@ -3003,30 +1095,12 @@ listr@0.14.3: p-map "^2.0.0" rxjs "^6.3.3" -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -lodash.clonedeep@4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" - integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= - -lodash.memoize@~3.0.3: - version "3.0.4" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" - integrity sha1-LcvSwofLwKVcxCMovQxzYVDVPj8= - lodash.once@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= -lodash@4.17.15, lodash@^4.17.11, lodash@^4.17.13: +lodash@4.17.15: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== @@ -3059,34 +1133,6 @@ long@^4.0.0: resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== -loose-envify@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -3102,33 +1148,6 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= -micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - mime-db@1.44.0: version "1.44.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" @@ -3151,16 +1170,6 @@ mimic-fn@^1.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" @@ -3168,51 +1177,37 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimist@1.2.5, minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.5: +minimist@1.2.5, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== +minipass@^3.0.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" + integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" + yallist "^4.0.0" -mkdirp-classic@^0.5.2: - version "0.5.3" - resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" - integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" -mkdirp@^0.5.0, mkdirp@^0.5.4: +mkdirp@^0.5.4: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== dependencies: minimist "^1.2.5" -module-deps@^6.0.0: - version "6.2.2" - resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.2.2.tgz#d8a15c2265dfc119153c29bb47386987d0ee423b" - integrity sha512-a9y6yDv5u5I4A+IPHTnqFxcaKr4p50/zxTjcQJaX2ws9tN/W6J6YXnEKhqRyPhl494dkcxx951onSKVezmI+3w== - dependencies: - JSONStream "^1.0.3" - browser-resolve "^1.7.0" - cached-path-relative "^1.0.2" - concat-stream "~1.6.0" - defined "^1.0.0" - detective "^5.2.0" - duplexer2 "^0.1.2" - inherits "^2.0.1" - parents "^1.0.0" - readable-stream "^2.0.2" - resolve "^1.4.0" - stream-combiner2 "^1.1.1" - subarg "^1.0.0" - through2 "^2.0.0" - xtend "^4.0.0" +mkdirp@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== moment@2.24.0: version "2.24.0" @@ -3234,28 +1229,6 @@ ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -nan@^2.12.1: - version "2.14.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" - integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - negotiator@0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" @@ -3266,23 +1239,6 @@ nice-try@^1.0.4: resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== -node-releases@^1.1.53: - version "1.1.58" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.58.tgz#8ee20eef30fa60e52755fcc0942def5a734fe935" - integrity sha512-NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg== - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -3300,49 +1256,11 @@ oauth-sign@~0.9.0: resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-keys@^1.0.11, object-keys@^1.0.12: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" @@ -3369,102 +1287,27 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" -os-browserify@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= - ospath@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" integrity sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs= -outpipe@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/outpipe/-/outpipe-1.1.1.tgz#50cf8616365e87e031e29a5ec9339a3da4725fa2" - integrity sha1-UM+GFjZeh+Ax4ppeyTOaPaRyX6I= - dependencies: - shell-quote "^1.4.2" - p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - p-map@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -parents@^1.0.0, parents@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751" - integrity sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E= - dependencies: - path-platform "~0.11.15" - -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.5" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" - integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== - dependencies: - asn1.js "^4.0.0" - browserify-aes "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-browserify@~0.0.0: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: +path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= @@ -3479,32 +1322,11 @@ path-key@^2.0.0, path-key@^2.0.1: resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= -path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== - -path-platform@~0.11.15: - version "0.11.15" - resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2" - integrity sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I= - path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= -pbkdf2@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" - integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - pend@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" @@ -3520,38 +1342,16 @@ pify@^2.2.0: resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= -pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" - integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= - dependencies: - find-up "^2.1.0" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - pretty-bytes@5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.3.0.tgz#f2849e27db79fb4d6cfe24764fc4134f165989f2" integrity sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg== -private@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -process@~0.11.0: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= - protobufjs@6.8.8: version "6.8.8" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.8.8.tgz#c8b4f1282fd7a90e6f5b109ed11c84af82908e7c" @@ -3584,18 +1384,6 @@ psl@^1.1.28: resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -3609,11 +1397,6 @@ punycode@1.3.2: resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= -punycode@^1.3.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" @@ -3629,11 +1412,6 @@ qs@~6.5.2: resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== -querystring-es3@~0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - querystring@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" @@ -3644,21 +1422,6 @@ ramda@0.26.1: resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06" integrity sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ== -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" @@ -3674,14 +1437,7 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" -read-only-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0" - integrity sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A= - dependencies: - readable-stream "^2.0.2" - -readable-stream@^2.0.2, readable-stream@^2.2.2, readable-stream@^2.3.6, readable-stream@~2.3.6: +readable-stream@^2.2.2: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -3694,101 +1450,6 @@ readable-stream@^2.0.2, readable-stream@^2.2.2, readable-stream@^2.3.6, readable string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -regenerate-unicode-properties@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" - integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== - dependencies: - regenerate "^1.4.0" - -regenerate@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.1.tgz#cad92ad8e6b591773485fbe05a485caf4f457e6f" - integrity sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A== - -regenerator-runtime@^0.12.0: - version "0.12.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" - integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg== - -regenerator-runtime@^0.13.4: - version "0.13.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" - integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== - -regenerator-transform@^0.14.2: - version "0.14.4" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" - integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== - dependencies: - "@babel/runtime" "^7.8.4" - private "^0.1.8" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexpu-core@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" - integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.2.0" - regjsgen "^0.5.1" - regjsparser "^0.6.4" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.2.0" - -regjsgen@^0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" - integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== - -regjsparser@^0.6.4: - version "0.6.4" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" - integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== - dependencies: - jsesc "~0.5.0" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - request-progress@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe" @@ -3796,23 +1457,6 @@ request-progress@3.0.0: dependencies: throttleit "^1.0.0" -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= - -resolve@^1.1.4, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.8.1: - version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== - dependencies: - path-parse "^1.0.6" - restore-cursor@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" @@ -3829,11 +1473,6 @@ restore-cursor@^2.0.0: onetime "^2.0.0" signal-exit "^3.0.2" -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" @@ -3841,14 +1480,6 @@ rimraf@^2.6.3: dependencies: glob "^7.1.3" -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - rxjs@^6.3.3: version "6.5.5" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec" @@ -3861,18 +1492,11 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: +safe-buffer@^5.0.1, safe-buffer@^5.1.2: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -3883,12 +1507,7 @@ semver@5.6.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== -semver@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@^5.4.1, semver@^5.5.0, semver@^5.5.1: +semver@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -3922,44 +1541,11 @@ serve-static@1.14.1: parseurl "~1.3.3" send "0.17.1" -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - setprototypeof@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== -sha.js@^2.4.0, sha.js@^2.4.8, sha.js@~2.4.4: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shasum-object@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shasum-object/-/shasum-object-1.0.0.tgz#0b7b74ff5b66ecf9035475522fa05090ac47e29e" - integrity sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg== - dependencies: - fast-safe-stringify "^2.0.7" - -shasum@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz#e7012310d8f417f4deb5712150e5678b87ae565f" - integrity sha1-5wEjENj0F/TetXEhUOVni4euVl8= - dependencies: - json-stable-stringify "~0.0.0" - sha.js "~2.4.4" - shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -3972,67 +1558,16 @@ shebang-regex@^1.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= -shell-quote@^1.4.2, shell-quote@^1.6.1: - version "1.7.2" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" - integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== - signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== -simple-concat@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6" - integrity sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY= - slice-ansi@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU= -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - source-map-support@0.5.9: version "0.5.9" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f" @@ -4041,28 +1576,11 @@ source-map-support@0.5.9: buffer-from "^1.0.0" source-map "^0.6.0" -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= - -source-map@^0.5.0, source-map@^0.5.6, source-map@~0.5.3: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - source-map@^0.6.0: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - sshpk@^1.7.0: version "1.16.1" resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" @@ -4078,64 +1596,11 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - "statuses@>= 1.5.0 < 2", statuses@~1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= -stream-browserify@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-combiner2@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" - integrity sha1-+02KFCDqNidk4hrUeAOXvry0HL4= - dependencies: - duplexer2 "~0.1.0" - readable-stream "^2.0.2" - -stream-http@^2.0.0: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-http@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-3.1.1.tgz#0370a8017cf8d050b9a8554afe608f043eaff564" - integrity sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.4" - readable-stream "^3.6.0" - xtend "^4.0.2" - -stream-splicer@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.1.tgz#0b13b7ee2b5ac7e0609a7463d83899589a363fcd" - integrity sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg== - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.2" - string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -4153,13 +1618,6 @@ string-width@^2.1.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -4186,13 +1644,6 @@ strip-eof@^1.0.0: resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= -subarg@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" - integrity sha1-9izxdYHplrSPyWVpn1TAauJouNI= - dependencies: - minimist "^1.1.0" - supports-color@7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" @@ -4217,38 +1668,23 @@ symbol-observable@^1.1.0: resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== -syntax-error@^1.1.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.4.0.tgz#2d9d4ff5c064acb711594a3e3b95054ad51d907c" - integrity sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w== +tar@6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.5.tgz#bde815086e10b39f1dcd298e89d596e1535e200f" + integrity sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg== dependencies: - acorn-node "^1.2.0" + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" throttleit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw= -through2@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -"through@>=2.2.7 <3": - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -timers-browserify@^1.0.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" - integrity sha1-ycWLV1voQHN1y14kYtrO50NZ9B0= - dependencies: - process "~0.11.0" - tmp@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" @@ -4256,41 +1692,6 @@ tmp@0.1.0: dependencies: rimraf "^2.6.3" -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - toidentifier@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" @@ -4316,11 +1717,6 @@ tsutils@2.27.2: dependencies: tslib "^1.8.1" -tty-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811" - integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw== - tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" @@ -4351,88 +1747,21 @@ typescript@3.9.5: resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.5.tgz#586f0dba300cde8be52dd1ac4f7e1009c1b13f36" integrity sha512-hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ== -umd@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.3.tgz#aa9fe653c42b9097678489c01000acb69f0b26cf" - integrity sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow== - -undeclared-identifiers@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz#9254c1d37bdac0ac2b52de4b6722792d2a91e30f" - integrity sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw== - dependencies: - acorn-node "^1.3.0" - dash-ast "^1.0.0" - get-assigned-identifiers "^1.2.0" - simple-concat "^1.0.0" - xtend "^4.0.1" - -unicode-canonical-property-names-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== - -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== - dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" - -unicode-match-property-value-ecmascript@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" - integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== - -unicode-property-aliases-ecmascript@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" - integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== -universalify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" - integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== - unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - untildify@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - uri-js@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" @@ -4440,12 +1769,7 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url@0.11.0, url@~0.11.0: +url@0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= @@ -4453,30 +1777,11 @@ url@0.11.0, url@~0.11.0: punycode "1.3.2" querystring "0.2.0" -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: +util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@~0.10.1: - version "0.10.4" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" - integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== - dependencies: - inherits "2.0.3" - utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" @@ -4501,24 +1806,6 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -vm-browserify@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - -watchify@3.11.1: - version "3.11.1" - resolved "https://registry.yarnpkg.com/watchify/-/watchify-3.11.1.tgz#8e4665871fff1ef64c0430d1a2c9d084d9721881" - integrity sha512-WwnUClyFNRMB2NIiHgJU9RQPQNqVeFk7OmZaWf5dC5EnNa0Mgr7imBydbaJ7tGTuPM2hz1Cb4uiBvK9NVxMfog== - dependencies: - anymatch "^2.0.0" - browserify "^16.1.0" - chokidar "^2.1.1" - defined "^1.0.0" - outpipe "^1.1.0" - through2 "^2.0.0" - xtend "^4.0.0" - which@^1.2.9: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -4539,10 +1826,10 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yauzl@2.10.0, yauzl@^2.10.0: version "2.10.0" diff --git a/examples/from_source/WORKSPACE b/examples/from_source/WORKSPACE index 3b4501d7ac..4479b84d72 100644 --- a/examples/from_source/WORKSPACE +++ b/examples/from_source/WORKSPACE @@ -40,5 +40,6 @@ node_repositories( yarn_install( name = "npm", package_json = "//:package.json", + strict_visibility = True, yarn_lock = "//:yarn.lock", ) diff --git a/examples/from_source/package.json b/examples/from_source/package.json index bfb9bd8a32..25e37d173b 100644 --- a/examples/from_source/package.json +++ b/examples/from_source/package.json @@ -4,9 +4,9 @@ "devDependencies": { "@types/node": "12.12.50", "protobufjs": "6.10.1", - "rollup": "2.22.1", - "rollup-plugin-commonjs": "10.1.0", - "rollup-plugin-node-resolve": "5.2.0", + "rollup": "2.3.4", + "@rollup/plugin-commonjs": "^14.0.0", + "@rollup/plugin-node-resolve": "8.4.0", "source-map-support": "0.5.19", "tsickle": "0.39.1", "tsutils": "3.17.1", diff --git a/examples/from_source/yarn.lock b/examples/from_source/yarn.lock index 72bb0a9eaa..7b6ce3eda7 100644 --- a/examples/from_source/yarn.lock +++ b/examples/from_source/yarn.lock @@ -55,11 +55,51 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= +"@rollup/plugin-commonjs@^14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-14.0.0.tgz#4285f9ec2db686a31129e5a2b415c94aa1f836f0" + integrity sha512-+PSmD9ePwTAeU106i9FRdc+Zb3XUWyW26mo5Atr2mk82hor8+nPwkztEjFo8/B1fJKfaQDg9aM2bzQkjhi7zOw== + dependencies: + "@rollup/pluginutils" "^3.0.8" + commondir "^1.0.1" + estree-walker "^1.0.1" + glob "^7.1.2" + is-reference "^1.1.2" + magic-string "^0.25.2" + resolve "^1.11.0" + +"@rollup/plugin-node-resolve@8.4.0": + version "8.4.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz#261d79a680e9dc3d86761c14462f24126ba83575" + integrity sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ== + dependencies: + "@rollup/pluginutils" "^3.1.0" + "@types/resolve" "1.17.1" + builtin-modules "^3.1.0" + deep-freeze "^0.0.1" + deepmerge "^4.2.2" + is-module "^1.0.0" + resolve "^1.17.0" + +"@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" + integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== + dependencies: + "@types/estree" "0.0.39" + estree-walker "^1.0.1" + picomatch "^2.2.2" + "@types/estree@*": version "0.0.45" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.45.tgz#e9387572998e5ecdac221950dab3e8c3b16af884" integrity sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g== +"@types/estree@0.0.39": + version "0.0.39" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" + integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== + "@types/long@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" @@ -80,13 +120,26 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.14.tgz#20cd7d2a98f0c3b08d379f4ea9e6b315d2019529" integrity sha512-Az3QsOt1U/K1pbCQ0TXGELTuTkPLOiFIQf3ILzbOyo0FqgV9SxRnxbxM5QlAveERZMHpZY+7u3Jz2tKyl+yg6g== -"@types/resolve@0.0.8": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194" - integrity sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ== +"@types/resolve@1.17.1": + version "1.17.1" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" + integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== dependencies: "@types/node" "*" +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" @@ -97,21 +150,71 @@ builtin-modules@^3.1.0: resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.1.0.tgz#aad97c15131eb76b65b50ef208e7584cd76a7484" integrity sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw== +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +deep-freeze@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84" + integrity sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ= + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + diff@^2.2.2: version "2.2.3" resolved "https://registry.yarnpkg.com/diff/-/diff-2.2.3.tgz#60eafd0d28ee906e4e8ff0a52c1229521033bf99" integrity sha1-YOr9DSjukG5Oj/ClLBIpUhAzv5k= -estree-walker@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" - integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== +estree-walker@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" + integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@~2.1.2: version "2.1.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== +glob@^7.1.2: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + is-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" @@ -136,11 +239,35 @@ magic-string@^0.25.2: dependencies: sourcemap-codec "^1.4.4" +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + path-parse@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== +picomatch@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + protobufjs@6.10.1: version "6.10.1" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.10.1.tgz#e6a484dd8f04b29629e9053344e3970cccf13cd2" @@ -160,46 +287,17 @@ protobufjs@6.10.1: "@types/node" "^13.7.0" long "^4.0.0" -resolve@^1.11.0, resolve@^1.11.1: +resolve@^1.11.0, resolve@^1.17.0: version "1.17.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== dependencies: path-parse "^1.0.6" -rollup-plugin-commonjs@10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-commonjs/-/rollup-plugin-commonjs-10.1.0.tgz#417af3b54503878e084d127adf4d1caf8beb86fb" - integrity sha512-jlXbjZSQg8EIeAAvepNwhJj++qJWNJw1Cl0YnOqKtP5Djx+fFGkp3WRh+W0ASCaFG5w1jhmzDxgu3SJuVxPF4Q== - dependencies: - estree-walker "^0.6.1" - is-reference "^1.1.2" - magic-string "^0.25.2" - resolve "^1.11.0" - rollup-pluginutils "^2.8.1" - -rollup-plugin-node-resolve@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-5.2.0.tgz#730f93d10ed202473b1fb54a5997a7db8c6d8523" - integrity sha512-jUlyaDXts7TW2CqQ4GaO5VJ4PwwaV8VUGA7+km3n6k6xtOEacf61u0VXwN80phY/evMcaS+9eIeJ9MOyDxt5Zw== - dependencies: - "@types/resolve" "0.0.8" - builtin-modules "^3.1.0" - is-module "^1.0.0" - resolve "^1.11.1" - rollup-pluginutils "^2.8.1" - -rollup-pluginutils@^2.8.1: - version "2.8.2" - resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" - integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== - dependencies: - estree-walker "^0.6.1" - -rollup@2.22.1: - version "2.22.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.22.1.tgz#8700522aa5feb12c6bd51810df8a276699d136b1" - integrity sha512-K9AUQUCJkVqC+A7uUDacfhmpEeAjc2uOmSpvGI5xaYsm8pXgy4ZWEM8wHPfKj11xvCwFZppkRDo8a0RESJXCnw== +rollup@2.3.4: + version "2.3.4" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.3.4.tgz#979e461f8cab1a71aec2d37ce2a434052ae70223" + integrity sha512-8U9x54RCVhrUEV1zon4Pp8kokg1HM0fwzf5vkwe2/rOfyTClarx5e27kFlaoZ7ofJiazWkNQ+dgdG4HuZxkQ9A== optionalDependencies: fsevents "~2.1.2" @@ -249,3 +347,8 @@ unidiff@1.0.2: integrity sha512-2sbEzki5fBmjgAqoafwxRenfMcumMlmVAoJDwYJa3CI4ZVugkdR6qjTw5sVsl29/4JfBBXhWEAd5ars8nRdqXg== dependencies: diff "^2.2.2" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= diff --git a/examples/jest/.bazelrc b/examples/jest/.bazelrc index 3431057af6..dd47141064 100644 --- a/examples/jest/.bazelrc +++ b/examples/jest/.bazelrc @@ -1 +1,7 @@ import %workspace%/../../common.bazelrc + +# jest relies on the runfiles generation to find the correct files. +# To work on windows we have to specify this flags. +build --enable_runfiles +run --enable_runfiles +test --enable_runfiles \ No newline at end of file diff --git a/examples/jest/BUILD.bazel b/examples/jest/BUILD.bazel index 95bf5050b5..4192246a18 100644 --- a/examples/jest/BUILD.bazel +++ b/examples/jest/BUILD.bazel @@ -1,5 +1,13 @@ load(":jest.bzl", "jest_test") +exports_files( + [ + "jest.ts.config.js", + "tsconfig.json", + ], + visibility = ["//visibility:public"], +) + jest_test( name = "test", srcs = [ @@ -11,10 +19,6 @@ jest_test( ] + glob(["__snapshots__/*.snap"]), jest_config = ":jest.config.js", tags = [ - # Need to set the pwd to avoid jest needing a runfiles helper - # Windows users with permissions can use --enable_runfiles - # to make this test work - "no-bazelci-windows", # TODO: why does this fail almost all the time, but pass on local Mac? "no-bazelci-mac", ], diff --git a/examples/jest/README.md b/examples/jest/README.md index 385baf772d..f35106b108 100644 --- a/examples/jest/README.md +++ b/examples/jest/README.md @@ -3,3 +3,18 @@ This example shows how you might use the Jest testing framework It has a utility macro in `jest.bzl` which makes a more ergonomic API for calling the `jest_test` rule in `@npm//jest-cli:index.bzl`. We suggest copying that to your repo. + +## Running on Windows + +To make the tests running on windows as well you have to add the `--enable_runfiles` flag to your `.bazelrc`. +This requires running under elevated privileges (Admin rights), Windows 10 Creators Update (1703) or later system version, and enabling developer mode. + +``` +build --enable_runfiles +run --enable_runfiles +test --enable_runfiles +``` + +# Jest typescript example + +Under `ts/` there's an example of using jest with typescript directly with generated rule from `@npm//jest-cli:index.bzl` \ No newline at end of file diff --git a/examples/jest/WORKSPACE b/examples/jest/WORKSPACE index 1a37927f56..a74c8d7f64 100644 --- a/examples/jest/WORKSPACE +++ b/examples/jest/WORKSPACE @@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_nodejs", - sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.1/rules_nodejs-2.0.1.tar.gz"], + sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"], ) load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/examples/jest/jest.ts.config.js b/examples/jest/jest.ts.config.js new file mode 100644 index 0000000000..12353746bf --- /dev/null +++ b/examples/jest/jest.ts.config.js @@ -0,0 +1,8 @@ +module.exports = { + testEnvironment: 'node', + reporters: ['default'], + testMatch: ['**/*.test.js'], + moduleNameMapper: { + 'examples_jest/(.*)': '/$1', + }, +}; diff --git a/examples/jest/package.json b/examples/jest/package.json index 36c25319f1..45530c0731 100644 --- a/examples/jest/package.json +++ b/examples/jest/package.json @@ -5,12 +5,15 @@ "@babel/cli": "^7.6.0", "@babel/core": "^7.6.0", "@babel/preset-env": "^7.6.0", + "@bazel/typescript": "^2.3.1", "@jest/core": "24.7.1", "@jest/transform": "24.7.1", + "@types/jest": "^26.0.15", "babel-jest": "24.7.1", "babel-plugin-istanbul": "5.1.2", "jest-cli": "24.9.0", - "patch-package": "^6.2.0" + "patch-package": "^6.2.0", + "typescript": "^3.8.3" }, "scripts": { "postinstall": "patch-package", diff --git a/examples/jest/ts/BUILD.bazel b/examples/jest/ts/BUILD.bazel new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/jest/ts/src/BUILD.bazel b/examples/jest/ts/src/BUILD.bazel new file mode 100644 index 0000000000..5b6de5cd6f --- /dev/null +++ b/examples/jest/ts/src/BUILD.bazel @@ -0,0 +1,9 @@ +load("@npm//@bazel/typescript:index.bzl", "ts_library") + +package(default_visibility = ["//visibility:public"]) + +ts_library( + name = "src", + srcs = glob(["*.ts"]), + deps = [], +) diff --git a/examples/jest/ts/src/extra.ts b/examples/jest/ts/src/extra.ts new file mode 100644 index 0000000000..2ea084092a --- /dev/null +++ b/examples/jest/ts/src/extra.ts @@ -0,0 +1 @@ +export default 'test'; diff --git a/examples/jest/ts/src/index.ts b/examples/jest/ts/src/index.ts new file mode 100644 index 0000000000..8eeb6b5666 --- /dev/null +++ b/examples/jest/ts/src/index.ts @@ -0,0 +1,3 @@ +import extra from './extra'; + +export default extra; \ No newline at end of file diff --git a/examples/jest/ts/test/BUILD.bazel b/examples/jest/ts/test/BUILD.bazel new file mode 100644 index 0000000000..f0d1fa5df9 --- /dev/null +++ b/examples/jest/ts/test/BUILD.bazel @@ -0,0 +1,37 @@ +load("@npm//@bazel/typescript:index.bzl", "ts_library") +load("@npm//jest-cli:index.bzl", "jest_test") + +ts_library( + name = "test_lib", + srcs = glob([ + "**/*.ts", + ]), + deps = [ + "//ts/src", + "@npm//@types", + ], +) + +jest_test( + name = "test", + args = [ + "--no-cache", + "--no-watchman", + "--ci", + "--colors", + "--config", + "jest.ts.config.js", + ], + data = [ + ":test_lib", + "//:jest.ts.config.js", + ], + tags = [ + # Need to set the pwd to avoid jest needing a runfiles helper + # Windows users with permissions can use --enable_runfiles + # to make this test work + "no-bazelci-windows", + # TODO: why does this fail almost all the time, but pass on local Mac? + "no-bazelci-mac", + ], +) diff --git a/examples/jest/ts/test/index.test.ts b/examples/jest/ts/test/index.test.ts new file mode 100644 index 0000000000..958897a7dc --- /dev/null +++ b/examples/jest/ts/test/index.test.ts @@ -0,0 +1,5 @@ +import indexfile from '../src/index'; + +test('it should work', () => { + expect(indexfile).toBe('test'); +}); diff --git a/examples/jest/tsconfig.json b/examples/jest/tsconfig.json new file mode 100644 index 0000000000..7f648f0a97 --- /dev/null +++ b/examples/jest/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "target": "es5", + "module": "commonjs", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true + } + } + \ No newline at end of file diff --git a/examples/jest/yarn.lock b/examples/jest/yarn.lock index 6e0f7b2f02..90edc6143f 100644 --- a/examples/jest/yarn.lock +++ b/examples/jest/yarn.lock @@ -3,673 +3,849 @@ "@babel/cli@^7.6.0": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.7.7.tgz#56849acbf81d1a970dd3d1b3097c8ebf5da3f534" - integrity sha512-XQw5KyCZyu/M8/0rYiZyuwbgIQNzOrJzs9dDLX+MieSgBwTLvTj4QVbLmxJACAIvQIDT7PtyHN2sC48EOWTgaA== + version "7.12.8" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.12.8.tgz#3b24ed2fd5da353ee6f19e8935ff8c93b5fe8430" + integrity sha512-/6nQj11oaGhLmZiuRUfxsujiPDc9BBReemiXgIbxc+M5W+MIiFKYwvNDJvBfnGKNsJTKbUfEheKc9cwoPHAVQA== dependencies: commander "^4.0.1" convert-source-map "^1.1.0" fs-readdir-recursive "^1.1.0" glob "^7.0.0" - lodash "^4.17.13" + lodash "^4.17.19" make-dir "^2.1.0" slash "^2.0.0" source-map "^0.5.0" optionalDependencies: - chokidar "^2.1.8" + "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents" + chokidar "^3.4.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" - integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" + integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== dependencies: - "@babel/highlight" "^7.0.0" + "@babel/highlight" "^7.10.4" + +"@babel/compat-data@^7.12.5", "@babel/compat-data@^7.12.7": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.7.tgz#9329b4782a7d6bbd7eef57e11addf91ee3ef1e41" + integrity sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw== "@babel/core@^7.1.0", "@babel/core@^7.6.0": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.7.tgz#ee155d2e12300bcc0cff6a8ad46f2af5063803e9" - integrity sha512-jlSjuj/7z138NLZALxVgrx13AOtqip42ATZP7+kYl53GvDV6+4dCek1mVUo8z8c8Xnw/mx2q3d9HWh3griuesQ== - dependencies: - "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.7.7" - "@babel/helpers" "^7.7.4" - "@babel/parser" "^7.7.7" - "@babel/template" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" + version "7.12.9" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8" + integrity sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.12.5" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helpers" "^7.12.5" + "@babel/parser" "^7.12.7" + "@babel/template" "^7.12.7" + "@babel/traverse" "^7.12.9" + "@babel/types" "^7.12.7" convert-source-map "^1.7.0" debug "^4.1.0" - json5 "^2.1.0" - lodash "^4.17.13" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" + lodash "^4.17.19" resolve "^1.3.2" semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.4.0", "@babel/generator@^7.7.4", "@babel/generator@^7.7.7": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.7.tgz#859ac733c44c74148e1a72980a64ec84b85f4f45" - integrity sha512-/AOIBpHh/JU1l0ZFS4kiRCBnLi6OTHzh0RPk3h9isBxkkqELtQNFi1Vr/tiG9p1yfoUdKVwISuXWQR+hwwM4VQ== +"@babel/generator@^7.12.5", "@babel/generator@^7.4.0": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.5.tgz#a2c50de5c8b6d708ab95be5e6053936c1884a4de" + integrity sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A== dependencies: - "@babel/types" "^7.7.4" + "@babel/types" "^7.12.5" jsesc "^2.5.1" - lodash "^4.17.13" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.4.tgz#bb3faf1e74b74bd547e867e48f551fa6b098b6ce" - integrity sha512-2BQmQgECKzYKFPpiycoF9tlb5HA4lrVyAmLLVK177EcQAqjVLciUb2/R+n1boQ9y5ENV3uz2ZqiNw7QMBBw1Og== +"@babel/helper-annotate-as-pure@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" + integrity sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA== dependencies: - "@babel/types" "^7.7.4" + "@babel/types" "^7.10.4" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.7.4.tgz#5f73f2b28580e224b5b9bd03146a4015d6217f5f" - integrity sha512-Biq/d/WtvfftWZ9Uf39hbPBYDUo986m5Bb4zhkeYDGUllF43D+nUe5M6Vuo6/8JDK/0YX/uBdeoQpyaNhNugZQ== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz#bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3" + integrity sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg== dependencies: - "@babel/helper-explode-assignable-expression" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/helper-explode-assignable-expression" "^7.10.4" + "@babel/types" "^7.10.4" -"@babel/helper-call-delegate@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.7.4.tgz#621b83e596722b50c0066f9dc37d3232e461b801" - integrity sha512-8JH9/B7J7tCYJ2PpWVpw9JhPuEVHztagNVuQAFBVFYluRMlpG7F1CgKEgGeL6KFqcsIa92ZYVj6DSc0XwmN1ZA== +"@babel/helper-compilation-targets@^7.12.5": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz#cb470c76198db6a24e9dbc8987275631e5d29831" + integrity sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw== dependencies: - "@babel/helper-hoist-variables" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/compat-data" "^7.12.5" + "@babel/helper-validator-option" "^7.12.1" + browserslist "^4.14.5" + semver "^5.5.0" + +"@babel/helper-create-class-features-plugin@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz#3c45998f431edd4a9214c5f1d3ad1448a6137f6e" + integrity sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w== + dependencies: + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-member-expression-to-functions" "^7.12.1" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/helper-replace-supers" "^7.12.1" + "@babel/helper-split-export-declaration" "^7.10.4" + +"@babel/helper-create-regexp-features-plugin@^7.12.1": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz#2084172e95443fa0a09214ba1bb328f9aea1278f" + integrity sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + regexpu-core "^4.7.1" + +"@babel/helper-define-map@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz#b53c10db78a640800152692b13393147acb9bb30" + integrity sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ== + dependencies: + "@babel/helper-function-name" "^7.10.4" + "@babel/types" "^7.10.5" + lodash "^4.17.19" + +"@babel/helper-explode-assignable-expression@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz#8006a466695c4ad86a2a5f2fb15b5f2c31ad5633" + integrity sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA== + dependencies: + "@babel/types" "^7.12.1" + +"@babel/helper-function-name@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a" + integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ== + dependencies: + "@babel/helper-get-function-arity" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-get-function-arity@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2" + integrity sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A== + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-hoist-variables@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e" + integrity sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA== + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-member-expression-to-functions@^7.12.1": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz#aa77bd0396ec8114e5e30787efa78599d874a855" + integrity sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw== + dependencies: + "@babel/types" "^7.12.7" + +"@babel/helper-module-imports@^7.12.1", "@babel/helper-module-imports@^7.12.5": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb" + integrity sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA== + dependencies: + "@babel/types" "^7.12.5" + +"@babel/helper-module-transforms@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz#7954fec71f5b32c48e4b303b437c34453fd7247c" + integrity sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w== + dependencies: + "@babel/helper-module-imports" "^7.12.1" + "@babel/helper-replace-supers" "^7.12.1" + "@babel/helper-simple-access" "^7.12.1" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/helper-validator-identifier" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.12.1" + "@babel/types" "^7.12.1" + lodash "^4.17.19" + +"@babel/helper-optimise-call-expression@^7.10.4": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.7.tgz#7f94ae5e08721a49467346aa04fd22f750033b9c" + integrity sha512-I5xc9oSJ2h59OwyUqjv95HRyzxj53DAubUERgQMrpcCEYQyToeHA+NEcUEsVWB4j53RDeskeBJ0SgRAYHDBckw== + dependencies: + "@babel/types" "^7.12.7" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" + integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== + +"@babel/helper-remap-async-to-generator@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz#8c4dbbf916314f6047dc05e6a2217074238347fd" + integrity sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-wrap-function" "^7.10.4" + "@babel/types" "^7.12.1" + +"@babel/helper-replace-supers@^7.12.1": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz#f009a17543bbbbce16b06206ae73b63d3fca68d9" + integrity sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.12.1" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/traverse" "^7.12.5" + "@babel/types" "^7.12.5" + +"@babel/helper-simple-access@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz#32427e5aa61547d38eb1e6eaf5fd1426fdad9136" + integrity sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA== + dependencies: + "@babel/types" "^7.12.1" + +"@babel/helper-skip-transparent-expression-wrappers@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf" + integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA== + dependencies: + "@babel/types" "^7.12.1" + +"@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f" + integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg== + dependencies: + "@babel/types" "^7.11.0" + +"@babel/helper-validator-identifier@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" + integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== + +"@babel/helper-validator-option@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz#175567380c3e77d60ff98a54bb015fe78f2178d9" + integrity sha512-YpJabsXlJVWP0USHjnC/AQDTLlZERbON577YUVO/wLpqyj6HAtVYnWaQaN0iUN+1/tWn3c+uKKXjRut5115Y2A== + +"@babel/helper-wrap-function@^7.10.4": + version "7.12.3" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz#3332339fc4d1fbbf1c27d7958c27d34708e990d9" + integrity sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow== + dependencies: + "@babel/helper-function-name" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helpers@^7.12.5": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.5.tgz#1a1ba4a768d9b58310eda516c449913fe647116e" + integrity sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA== + dependencies: + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.12.5" + "@babel/types" "^7.12.5" + +"@babel/highlight@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" + integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + chalk "^2.0.0" + js-tokens "^4.0.0" -"@babel/helper-create-regexp-features-plugin@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.4.tgz#6d5762359fd34f4da1500e4cff9955b5299aaf59" - integrity sha512-Mt+jBKaxL0zfOIWrfQpnfYCN7/rS6GKx6CCCfuoqVVd+17R8zNDlzVYmIi9qyb2wOk002NsmSTDymkIygDUH7A== +"@babel/parser@^7.1.0", "@babel/parser@^7.12.7", "@babel/parser@^7.4.3": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.7.tgz#fee7b39fe809d0e73e5b25eecaf5780ef3d73056" + integrity sha512-oWR02Ubp4xTLCAqPRiNIuMVgNO5Aif/xpXtabhzW2HWUD47XJsAB4Zd/Rg30+XeQA3juXigV7hlquOTmwqLiwg== + +"@babel/plugin-proposal-async-generator-functions@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz#dc6c1170e27d8aca99ff65f4925bd06b1c90550e" + integrity sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A== dependencies: - "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.6.0" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-remap-async-to-generator" "^7.12.1" + "@babel/plugin-syntax-async-generators" "^7.8.0" -"@babel/helper-define-map@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.7.4.tgz#2841bf92eb8bd9c906851546fe6b9d45e162f176" - integrity sha512-v5LorqOa0nVQUvAUTUF3KPastvUt/HzByXNamKQ6RdJRTV7j8rLL+WB5C/MzzWAwOomxDhYFb1wLLxHqox86lg== +"@babel/plugin-proposal-class-properties@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz#a082ff541f2a29a4821065b8add9346c0c16e5de" + integrity sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w== dependencies: - "@babel/helper-function-name" "^7.7.4" - "@babel/types" "^7.7.4" - lodash "^4.17.13" + "@babel/helper-create-class-features-plugin" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/helper-explode-assignable-expression@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.7.4.tgz#fa700878e008d85dc51ba43e9fb835cddfe05c84" - integrity sha512-2/SicuFrNSXsZNBxe5UGdLr+HZg+raWBLE9vC98bdYOKX/U6PY0mdGlYUJdtTDPSU0Lw0PNbKKDpwYHJLn2jLg== +"@babel/plugin-proposal-dynamic-import@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz#43eb5c2a3487ecd98c5c8ea8b5fdb69a2749b2dc" + integrity sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ== dependencies: - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" -"@babel/helper-function-name@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz#ab6e041e7135d436d8f0a3eca15de5b67a341a2e" - integrity sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ== +"@babel/plugin-proposal-export-namespace-from@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz#8b9b8f376b2d88f5dd774e4d24a5cc2e3679b6d4" + integrity sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw== dependencies: - "@babel/helper-get-function-arity" "^7.7.4" - "@babel/template" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/helper-get-function-arity@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz#cb46348d2f8808e632f0ab048172130e636005f0" - integrity sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA== +"@babel/plugin-proposal-json-strings@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz#d45423b517714eedd5621a9dfdc03fa9f4eb241c" + integrity sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw== dependencies: - "@babel/types" "^7.7.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.0" -"@babel/helper-hoist-variables@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.4.tgz#612384e3d823fdfaaf9fce31550fe5d4db0f3d12" - integrity sha512-wQC4xyvc1Jo/FnLirL6CEgPgPCa8M74tOdjWpRhQYapz5JC7u3NYU1zCVoVAGCE3EaIP9T1A3iW0WLJ+reZlpQ== +"@babel/plugin-proposal-logical-assignment-operators@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz#f2c490d36e1b3c9659241034a5d2cd50263a2751" + integrity sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA== dependencies: - "@babel/types" "^7.7.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/helper-member-expression-to-functions@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.4.tgz#356438e2569df7321a8326644d4b790d2122cb74" - integrity sha512-9KcA1X2E3OjXl/ykfMMInBK+uVdfIVakVe7W7Lg3wfXUNyS3Q1HWLFRwZIjhqiCGbslummPDnmb7vIekS0C1vw== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz#3ed4fff31c015e7f3f1467f190dbe545cd7b046c" + integrity sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg== dependencies: - "@babel/types" "^7.7.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" -"@babel/helper-module-imports@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz#e5a92529f8888bf319a6376abfbd1cebc491ad91" - integrity sha512-dGcrX6K9l8258WFjyDLJwuVKxR4XZfU0/vTUgOQYWEnRD8mgr+p4d6fCUMq/ys0h4CCt/S5JhbvtyErjWouAUQ== +"@babel/plugin-proposal-numeric-separator@^7.12.7": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz#8bf253de8139099fea193b297d23a9d406ef056b" + integrity sha512-8c+uy0qmnRTeukiGsjLGy6uVs/TFjJchGXUeBqlG4VWYOdJWkhhVPdQ3uHwbmalfJwv2JsV0qffXP4asRfL2SQ== dependencies: - "@babel/types" "^7.7.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/helper-module-transforms@^7.7.4", "@babel/helper-module-transforms@^7.7.5": - version "7.7.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.7.5.tgz#d044da7ffd91ec967db25cd6748f704b6b244835" - integrity sha512-A7pSxyJf1gN5qXVcidwLWydjftUN878VkalhXX5iQDuGyiGK3sOrrKKHF4/A4fwHtnsotv/NipwAeLzY4KQPvw== +"@babel/plugin-proposal-object-rest-spread@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069" + integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA== dependencies: - "@babel/helper-module-imports" "^7.7.4" - "@babel/helper-simple-access" "^7.7.4" - "@babel/helper-split-export-declaration" "^7.7.4" - "@babel/template" "^7.7.4" - "@babel/types" "^7.7.4" - lodash "^4.17.13" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-transform-parameters" "^7.12.1" -"@babel/helper-optimise-call-expression@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.4.tgz#034af31370d2995242aa4df402c3b7794b2dcdf2" - integrity sha512-VB7gWZ2fDkSuqW6b1AKXkJWO5NyNI3bFL/kK79/30moK57blr6NbH8xcl2XcKCwOmJosftWunZqfO84IGq3ZZg== +"@babel/plugin-proposal-optional-catch-binding@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz#ccc2421af64d3aae50b558a71cede929a5ab2942" + integrity sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g== dependencies: - "@babel/types" "^7.7.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" -"@babel/helper-plugin-utils@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" - integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== - -"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351" - integrity sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw== - dependencies: - lodash "^4.17.13" - -"@babel/helper-remap-async-to-generator@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.4.tgz#c68c2407350d9af0e061ed6726afb4fff16d0234" - integrity sha512-Sk4xmtVdM9sA/jCI80f+KS+Md+ZHIpjuqmYPk1M7F/upHou5e4ReYmExAiu6PVe65BhJPZA2CY9x9k4BqE5klw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.7.4" - "@babel/helper-wrap-function" "^7.7.4" - "@babel/template" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" - -"@babel/helper-replace-supers@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.7.4.tgz#3c881a6a6a7571275a72d82e6107126ec9e2cdd2" - integrity sha512-pP0tfgg9hsZWo5ZboYGuBn/bbYT/hdLPVSS4NMmiRJdwWhP0IznPwN9AE1JwyGsjSPLC364I0Qh5p+EPkGPNpg== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.7.4" - "@babel/helper-optimise-call-expression" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" - -"@babel/helper-simple-access@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.7.4.tgz#a169a0adb1b5f418cfc19f22586b2ebf58a9a294" - integrity sha512-zK7THeEXfan7UlWsG2A6CI/L9jVnI5+xxKZOdej39Y0YtDYKx9raHk5F2EtK9K8DHRTihYwg20ADt9S36GR78A== - dependencies: - "@babel/template" "^7.7.4" - "@babel/types" "^7.7.4" - -"@babel/helper-split-export-declaration@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz#57292af60443c4a3622cf74040ddc28e68336fd8" - integrity sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug== - dependencies: - "@babel/types" "^7.7.4" - -"@babel/helper-wrap-function@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.7.4.tgz#37ab7fed5150e22d9d7266e830072c0cdd8baace" - integrity sha512-VsfzZt6wmsocOaVU0OokwrIytHND55yvyT4BPB9AIIgwr8+x7617hetdJTsuGwygN5RC6mxA9EJztTjuwm2ofg== - dependencies: - "@babel/helper-function-name" "^7.7.4" - "@babel/template" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" - -"@babel/helpers@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.7.4.tgz#62c215b9e6c712dadc15a9a0dcab76c92a940302" - integrity sha512-ak5NGZGJ6LV85Q1Zc9gn2n+ayXOizryhjSUBTdu5ih1tlVCJeuQENzc4ItyCVhINVXvIT/ZQ4mheGIsfBkpskg== - dependencies: - "@babel/template" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" - -"@babel/highlight@^7.0.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" - integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ== +"@babel/plugin-proposal-optional-chaining@^7.12.7": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz#e02f0ea1b5dc59d401ec16fb824679f683d3303c" + integrity sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA== dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^4.0.0" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.7.4", "@babel/parser@^7.7.7": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.7.tgz#1b886595419cf92d811316d5b715a53ff38b4937" - integrity sha512-WtTZMZAZLbeymhkd/sEaPD8IQyGAhmuTuvTzLiCFM7iXiVdY0gc0IaI+cW0fh1BnSMbJSzXX6/fHllgHKwHhXw== +"@babel/plugin-proposal-private-methods@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz#86814f6e7a21374c980c10d38b4493e703f4a389" + integrity sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-proposal-async-generator-functions@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.4.tgz#0351c5ac0a9e927845fffd5b82af476947b7ce6d" - integrity sha512-1ypyZvGRXriY/QP668+s8sFr2mqinhkRDMPSQLNghCQE+GAkFtp+wkHVvg2+Hdki8gwP+NFzJBJ/N1BfzCCDEw== +"@babel/plugin-proposal-unicode-property-regex@^7.12.1", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz#2a183958d417765b9eae334f47758e5d6a82e072" + integrity sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.7.4" - "@babel/plugin-syntax-async-generators" "^7.7.4" + "@babel/helper-create-regexp-features-plugin" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-proposal-dynamic-import@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.7.4.tgz#dde64a7f127691758cbfed6cf70de0fa5879d52d" - integrity sha512-StH+nGAdO6qDB1l8sZ5UBV8AC3F2VW2I8Vfld73TMKyptMU9DY5YsJAS8U81+vEtxcH3Y/La0wG0btDrhpnhjQ== +"@babel/plugin-syntax-async-generators@^7.8.0": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-dynamic-import" "^7.7.4" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-proposal-json-strings@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.7.4.tgz#7700a6bfda771d8dc81973249eac416c6b4c697d" - integrity sha512-wQvt3akcBTfLU/wYoqm/ws7YOAQKu8EVJEvHip/mzkNtjaclQoCCIqKXFP5/eyfnfbQCDV3OLRIK3mIVyXuZlw== +"@babel/plugin-syntax-class-properties@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz#bcb297c5366e79bebadef509549cd93b04f19978" + integrity sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-json-strings" "^7.7.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.7.7": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.7.tgz#9f27075004ab99be08c5c1bd653a2985813cb370" - integrity sha512-3qp9I8lelgzNedI3hrhkvhaEYree6+WHnyA/q4Dza9z7iEIs1eyhWyJnetk3jJ69RT0AT4G0UhEGwyGFJ7GUuQ== +"@babel/plugin-syntax-dynamic-import@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.7.4" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-proposal-optional-catch-binding@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.7.4.tgz#ec21e8aeb09ec6711bc0a39ca49520abee1de379" - integrity sha512-DyM7U2bnsQerCQ+sejcTNZh8KQEUuC3ufzdnVnSiUv/qoGJp2Z3hanKL18KDhsBT5Wj6a7CMT5mdyCNJsEaA9w== +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.7.4" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-proposal-unicode-property-regex@^7.7.7": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.7.tgz#433fa9dac64f953c12578b29633f456b68831c4e" - integrity sha512-80PbkKyORBUVm1fbTLrHpYdJxMThzM1UqFGh0ALEhO9TYbG86Ah9zQYAB/84axz2vcxefDLdZwWwZNlYARlu9w== +"@babel/plugin-syntax-json-strings@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-async-generators@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.7.4.tgz#331aaf310a10c80c44a66b238b6e49132bd3c889" - integrity sha512-Li4+EjSpBgxcsmeEF8IFcfV/+yJGxHXDirDkEoyFjumuwbmfCVHUt0HuowD/iGM7OhIRyXJH9YXxqiH6N815+g== +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-dynamic-import@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.7.4.tgz#29ca3b4415abfe4a5ec381e903862ad1a54c3aec" - integrity sha512-jHQW0vbRGvwQNgyVxwDh4yuXu4bH1f5/EICJLAhl1SblLs2CDhrsmCk+v5XLdE9wxtAFRyxx+P//Iw+a5L/tTg== +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-json-strings@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.7.4.tgz#86e63f7d2e22f9e27129ac4e83ea989a382e86cc" - integrity sha512-QpGupahTQW1mHRXddMG5srgpHWqRLwJnJZKXTigB9RPFCCGbDGCgBeM/iC82ICXp414WeYx/tD54w7M2qRqTMg== +"@babel/plugin-syntax-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.7.4.tgz#47cf220d19d6d0d7b154304701f468fc1cc6ff46" - integrity sha512-mObR+r+KZq0XhRVS2BrBKBpr5jqrqzlPvS9C9vuOf5ilSwzloAl7RPWLrgKdWS6IreaVrjHxTjtyqFiOisaCwg== +"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-catch-binding@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.7.4.tgz#a3e38f59f4b6233867b4a92dcb0ee05b2c334aa6" - integrity sha512-4ZSuzWgFxqHRE31Glu+fEr/MirNZOMYmD/0BhBWyLyOOQz/gTAl7QmWm2hX1QxEIXsr2vkdlwxIzTyiYRC4xcQ== +"@babel/plugin-syntax-optional-catch-binding@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-top-level-await@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.7.4.tgz#bd7d8fa7b9fee793a36e4027fd6dd1aa32f946da" - integrity sha512-wdsOw0MvkL1UIgiQ/IFr3ETcfv1xb8RMM0H9wbiDyLaJFyiDg5oZvDLCXosIXmFeIlweML5iOBXAkqddkYNizg== +"@babel/plugin-syntax-optional-chaining@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-transform-arrow-functions@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.7.4.tgz#76309bd578addd8aee3b379d809c802305a98a12" - integrity sha512-zUXy3e8jBNPiffmqkHRNDdZM2r8DWhCB7HhcoyZjiK1TxYEluLHAvQuYnTT+ARqRpabWqy/NHkO6e3MsYB5YfA== +"@babel/plugin-syntax-top-level-await@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz#dd6c0b357ac1bb142d98537450a319625d13d2a0" + integrity sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-async-to-generator@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.4.tgz#694cbeae6d613a34ef0292713fa42fb45c4470ba" - integrity sha512-zpUTZphp5nHokuy8yLlyafxCJ0rSlFoSHypTUWgpdwoDXWQcseaect7cJ8Ppk6nunOM6+5rPMkod4OYKPR5MUg== +"@babel/plugin-transform-arrow-functions@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz#8083ffc86ac8e777fbe24b5967c4b2521f3cb2b3" + integrity sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A== dependencies: - "@babel/helper-module-imports" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.7.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-block-scoped-functions@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.7.4.tgz#d0d9d5c269c78eaea76227ace214b8d01e4d837b" - integrity sha512-kqtQzwtKcpPclHYjLK//3lH8OFsCDuDJBaFhVwf8kqdnF6MN4l618UDlcA7TfRs3FayrHj+svYnSX8MC9zmUyQ== +"@babel/plugin-transform-async-to-generator@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz#3849a49cc2a22e9743cbd6b52926d30337229af1" + integrity sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-module-imports" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-remap-async-to-generator" "^7.12.1" -"@babel/plugin-transform-block-scoping@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.7.4.tgz#200aad0dcd6bb80372f94d9e628ea062c58bf224" - integrity sha512-2VBe9u0G+fDt9B5OV5DQH4KBf5DoiNkwFKOz0TCvBWvdAN2rOykCTkrL+jTLxfCAm76l9Qo5OqL7HBOx2dWggg== +"@babel/plugin-transform-block-scoped-functions@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz#f2a1a365bde2b7112e0a6ded9067fdd7c07905d9" + integrity sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - lodash "^4.17.13" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-classes@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.7.4.tgz#c92c14be0a1399e15df72667067a8f510c9400ec" - integrity sha512-sK1mjWat7K+buWRuImEzjNf68qrKcrddtpQo3swi9j7dUcG6y6R6+Di039QN2bD1dykeswlagupEmpOatFHHUg== +"@babel/plugin-transform-block-scoping@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz#f0ee727874b42a208a48a586b84c3d222c2bbef1" + integrity sha512-zJyAC9sZdE60r1nVQHblcfCj29Dh2Y0DOvlMkcqSo0ckqjiCwNiUezUKw+RjOCwGfpLRwnAeQ2XlLpsnGkvv9w== dependencies: - "@babel/helper-annotate-as-pure" "^7.7.4" - "@babel/helper-define-map" "^7.7.4" - "@babel/helper-function-name" "^7.7.4" - "@babel/helper-optimise-call-expression" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.7.4" - "@babel/helper-split-export-declaration" "^7.7.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-classes@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz#65e650fcaddd3d88ddce67c0f834a3d436a32db6" + integrity sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-define-map" "^7.10.4" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-replace-supers" "^7.12.1" + "@babel/helper-split-export-declaration" "^7.10.4" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.7.4.tgz#e856c1628d3238ffe12d668eb42559f79a81910d" - integrity sha512-bSNsOsZnlpLLyQew35rl4Fma3yKWqK3ImWMSC/Nc+6nGjC9s5NFWAer1YQ899/6s9HxO2zQC1WoFNfkOqRkqRQ== +"@babel/plugin-transform-computed-properties@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz#d68cf6c9b7f838a8a4144badbe97541ea0904852" + integrity sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-destructuring@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.7.4.tgz#2b713729e5054a1135097b6a67da1b6fe8789267" - integrity sha512-4jFMXI1Cu2aXbcXXl8Lr6YubCn6Oc7k9lLsu8v61TZh+1jny2BWmdtvY9zSUlLdGUvcy9DMAWyZEOqjsbeg/wA== +"@babel/plugin-transform-destructuring@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz#b9a570fe0d0a8d460116413cb4f97e8e08b2f847" + integrity sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-dotall-regex@^7.7.7": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.7.tgz#3e9713f1b69f339e87fa796b097d73ded16b937b" - integrity sha512-b4in+YlTeE/QmTgrllnb3bHA0HntYvjz8O3Mcbx75UBPJA2xhb5A8nle498VhxSXJHQefjtQxpnLPehDJ4TRlg== +"@babel/plugin-transform-dotall-regex@^7.12.1", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz#a1d16c14862817b6409c0a678d6f9373ca9cd975" + integrity sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-create-regexp-features-plugin" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-duplicate-keys@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.7.4.tgz#3d21731a42e3f598a73835299dd0169c3b90ac91" - integrity sha512-g1y4/G6xGWMD85Tlft5XedGaZBCIVN+/P0bs6eabmcPP9egFleMAo65OOjlhcz1njpwagyY3t0nsQC9oTFegJA== +"@babel/plugin-transform-duplicate-keys@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz#745661baba295ac06e686822797a69fbaa2ca228" + integrity sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-exponentiation-operator@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.7.4.tgz#dd30c0191e3a1ba19bcc7e389bdfddc0729d5db9" - integrity sha512-MCqiLfCKm6KEA1dglf6Uqq1ElDIZwFuzz1WH5mTf8k2uQSxEJMbOIEh7IZv7uichr7PMfi5YVSrr1vz+ipp7AQ== +"@babel/plugin-transform-exponentiation-operator@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz#b0f2ed356ba1be1428ecaf128ff8a24f02830ae0" + integrity sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-for-of@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.7.4.tgz#248800e3a5e507b1f103d8b4ca998e77c63932bc" - integrity sha512-zZ1fD1B8keYtEcKF+M1TROfeHTKnijcVQm0yO/Yu1f7qoDoxEIc/+GX6Go430Bg84eM/xwPFp0+h4EbZg7epAA== +"@babel/plugin-transform-for-of@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz#07640f28867ed16f9511c99c888291f560921cfa" + integrity sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-function-name@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.7.4.tgz#75a6d3303d50db638ff8b5385d12451c865025b1" - integrity sha512-E/x09TvjHNhsULs2IusN+aJNRV5zKwxu1cpirZyRPw+FyyIKEHPXTsadj48bVpc1R5Qq1B5ZkzumuFLytnbT6g== +"@babel/plugin-transform-function-name@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz#2ec76258c70fe08c6d7da154003a480620eba667" + integrity sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw== dependencies: - "@babel/helper-function-name" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-literals@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.7.4.tgz#27fe87d2b5017a2a5a34d1c41a6b9f6a6262643e" - integrity sha512-X2MSV7LfJFm4aZfxd0yLVFrEXAgPqYoDG53Br/tCKiKYfX0MjVjQeWPIhPHHsCqzwQANq+FLN786fF5rgLS+gw== +"@babel/plugin-transform-literals@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz#d73b803a26b37017ddf9d3bb8f4dc58bfb806f57" + integrity sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-member-expression-literals@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.7.4.tgz#aee127f2f3339fc34ce5e3055d7ffbf7aa26f19a" - integrity sha512-9VMwMO7i69LHTesL0RdGy93JU6a+qOPuvB4F4d0kR0zyVjJRVJRaoaGjhtki6SzQUu8yen/vxPKN6CWnCUw6bA== +"@babel/plugin-transform-member-expression-literals@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz#496038602daf1514a64d43d8e17cbb2755e0c3ad" + integrity sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-modules-amd@^7.7.5": - version "7.7.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.7.5.tgz#39e0fb717224b59475b306402bb8eedab01e729c" - integrity sha512-CT57FG4A2ZUNU1v+HdvDSDrjNWBrtCmSH6YbbgN3Lrf0Di/q/lWRxZrE72p3+HCCz9UjfZOEBdphgC0nzOS6DQ== +"@babel/plugin-transform-modules-amd@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz#3154300b026185666eebb0c0ed7f8415fefcf6f9" + integrity sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ== dependencies: - "@babel/helper-module-transforms" "^7.7.5" - "@babel/helper-plugin-utils" "^7.0.0" - babel-plugin-dynamic-import-node "^2.3.0" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.7.5": - version "7.7.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.5.tgz#1d27f5eb0bcf7543e774950e5b2fa782e637b345" - integrity sha512-9Cq4zTFExwFhQI6MT1aFxgqhIsMWQWDVwOgLzl7PTWJHsNaqFvklAU+Oz6AQLAS0dJKTwZSOCo20INwktxpi3Q== +"@babel/plugin-transform-modules-commonjs@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz#fa403124542636c786cf9b460a0ffbb48a86e648" + integrity sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag== dependencies: - "@babel/helper-module-transforms" "^7.7.5" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-simple-access" "^7.7.4" - babel-plugin-dynamic-import-node "^2.3.0" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-simple-access" "^7.12.1" + babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.7.4.tgz#cd98152339d3e763dfe838b7d4273edaf520bb30" - integrity sha512-y2c96hmcsUi6LrMqvmNDPBBiGCiQu0aYqpHatVVu6kD4mFEXKjyNxd/drc18XXAf9dv7UXjrZwBVmTTGaGP8iw== +"@babel/plugin-transform-modules-systemjs@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz#663fea620d593c93f214a464cd399bf6dc683086" + integrity sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q== dependencies: - "@babel/helper-hoist-variables" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - babel-plugin-dynamic-import-node "^2.3.0" + "@babel/helper-hoist-variables" "^7.10.4" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-validator-identifier" "^7.10.4" + babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.7.4.tgz#1027c355a118de0aae9fee00ad7813c584d9061f" - integrity sha512-u2B8TIi0qZI4j8q4C51ktfO7E3cQ0qnaXFI1/OXITordD40tt17g/sXqgNNCcMTcBFKrUPcGDx+TBJuZxLx7tw== +"@babel/plugin-transform-modules-umd@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz#eb5a218d6b1c68f3d6217b8fa2cc82fec6547902" + integrity sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q== dependencies: - "@babel/helper-module-transforms" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-named-capturing-groups-regex@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.7.4.tgz#fb3bcc4ee4198e7385805007373d6b6f42c98220" - integrity sha512-jBUkiqLKvUWpv9GLSuHUFYdmHg0ujC1JEYoZUfeOOfNydZXp1sXObgyPatpcwjWgsdBGsagWW0cdJpX/DO2jMw== +"@babel/plugin-transform-named-capturing-groups-regex@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz#b407f5c96be0d9f5f88467497fa82b30ac3e8753" + integrity sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.4" + "@babel/helper-create-regexp-features-plugin" "^7.12.1" -"@babel/plugin-transform-new-target@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.7.4.tgz#4a0753d2d60639437be07b592a9e58ee00720167" - integrity sha512-CnPRiNtOG1vRodnsyGX37bHQleHE14B9dnnlgSeEs3ek3fHN1A1SScglTCg1sfbe7sRQ2BUcpgpTpWSfMKz3gg== +"@babel/plugin-transform-new-target@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz#80073f02ee1bb2d365c3416490e085c95759dec0" + integrity sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-object-super@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.7.4.tgz#48488937a2d586c0148451bf51af9d7dda567262" - integrity sha512-ho+dAEhC2aRnff2JCA0SAK7V2R62zJd/7dmtoe7MHcso4C2mS+vZjn1Pb1pCVZvJs1mgsvv5+7sT+m3Bysb6eg== +"@babel/plugin-transform-object-super@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz#4ea08696b8d2e65841d0c7706482b048bed1066e" + integrity sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.7.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-replace-supers" "^7.12.1" -"@babel/plugin-transform-parameters@^7.7.7": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.7.tgz#7a884b2460164dc5f194f668332736584c760007" - integrity sha512-OhGSrf9ZBrr1fw84oFXj5hgi8Nmg+E2w5L7NhnG0lPvpDtqd7dbyilM2/vR8CKbJ907RyxPh2kj6sBCSSfI9Ew== +"@babel/plugin-transform-parameters@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz#d2e963b038771650c922eff593799c96d853255d" + integrity sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg== dependencies: - "@babel/helper-call-delegate" "^7.7.4" - "@babel/helper-get-function-arity" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-property-literals@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.7.4.tgz#2388d6505ef89b266103f450f9167e6bd73f98c2" - integrity sha512-MatJhlC4iHsIskWYyawl53KuHrt+kALSADLQQ/HkhTjX954fkxIEh4q5slL4oRAnsm/eDoZ4q0CIZpcqBuxhJQ== +"@babel/plugin-transform-property-literals@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz#41bc81200d730abb4456ab8b3fbd5537b59adecd" + integrity sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-regenerator@^7.7.5": - version "7.7.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.5.tgz#3a8757ee1a2780f390e89f246065ecf59c26fce9" - integrity sha512-/8I8tPvX2FkuEyWbjRCt4qTAgZK0DVy8QRguhA524UH48RfGJy94On2ri+dCuwOpcerPRl9O4ebQkRcVzIaGBw== +"@babel/plugin-transform-regenerator@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz#5f0a28d842f6462281f06a964e88ba8d7ab49753" + integrity sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng== dependencies: - regenerator-transform "^0.14.0" + regenerator-transform "^0.14.2" -"@babel/plugin-transform-reserved-words@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.7.4.tgz#6a7cf123ad175bb5c69aec8f6f0770387ed3f1eb" - integrity sha512-OrPiUB5s5XvkCO1lS7D8ZtHcswIC57j62acAnJZKqGGnHP+TIc/ljQSrgdX/QyOTdEK5COAhuc820Hi1q2UgLQ== +"@babel/plugin-transform-reserved-words@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz#6fdfc8cc7edcc42b36a7c12188c6787c873adcd8" + integrity sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-shorthand-properties@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.7.4.tgz#74a0a9b2f6d67a684c6fbfd5f0458eb7ba99891e" - integrity sha512-q+suddWRfIcnyG5YiDP58sT65AJDZSUhXQDZE3r04AuqD6d/XLaQPPXSBzP2zGerkgBivqtQm9XKGLuHqBID6Q== +"@babel/plugin-transform-shorthand-properties@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz#0bf9cac5550fce0cfdf043420f661d645fdc75e3" + integrity sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-spread@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.7.4.tgz#aa673b356fe6b7e70d69b6e33a17fef641008578" - integrity sha512-8OSs0FLe5/80cndziPlg4R0K6HcWSM0zyNhHhLsmw/Nc5MaA49cAsnoJ/t/YZf8qkG7fD+UjTRaApVDB526d7Q== +"@babel/plugin-transform-spread@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz#527f9f311be4ec7fdc2b79bb89f7bf884b3e1e1e" + integrity sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" -"@babel/plugin-transform-sticky-regex@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.7.4.tgz#ffb68c05090c30732076b1285dc1401b404a123c" - integrity sha512-Ls2NASyL6qtVe1H1hXts9yuEeONV2TJZmplLONkMPUG158CtmnrzW5Q5teibM5UVOFjG0D3IC5mzXR6pPpUY7A== +"@babel/plugin-transform-sticky-regex@^7.12.7": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz#560224613ab23987453948ed21d0b0b193fa7fad" + integrity sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-template-literals@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.7.4.tgz#1eb6411736dd3fe87dbd20cc6668e5121c17d604" - integrity sha512-sA+KxLwF3QwGj5abMHkHgshp9+rRz+oY9uoRil4CyLtgEuE/88dpkeWgNk5qKVsJE9iSfly3nvHapdRiIS2wnQ== +"@babel/plugin-transform-template-literals@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz#b43ece6ed9a79c0c71119f576d299ef09d942843" + integrity sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw== dependencies: - "@babel/helper-annotate-as-pure" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-typeof-symbol@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.7.4.tgz#3174626214f2d6de322882e498a38e8371b2140e" - integrity sha512-KQPUQ/7mqe2m0B8VecdyaW5XcQYaePyl9R7IsKd+irzj6jvbhoGnRE+M0aNkyAzI07VfUQ9266L5xMARitV3wg== +"@babel/plugin-transform-typeof-symbol@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.1.tgz#9ca6be343d42512fbc2e68236a82ae64bc7af78a" + integrity sha512-EPGgpGy+O5Kg5pJFNDKuxt9RdmTgj5sgrus2XVeMp/ZIbOESadgILUbm50SNpghOh3/6yrbsH+NB5+WJTmsA7Q== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-unicode-regex@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.4.tgz#a3c0f65b117c4c81c5b6484f2a5e7b95346b83ae" - integrity sha512-N77UUIV+WCvE+5yHw+oks3m18/umd7y392Zv7mYTpFqHtkpcc+QUz+gLJNTWVlWROIWeLqY0f3OjZxV5TcXnRw== +"@babel/plugin-transform-unicode-escapes@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz#5232b9f81ccb07070b7c3c36c67a1b78f1845709" + integrity sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/preset-env@^7.6.0": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.7.tgz#c294167b91e53e7e36d820e943ece8d0c7fe46ac" - integrity sha512-pCu0hrSSDVI7kCVUOdcMNQEbOPJ52E+LrQ14sN8uL2ALfSqePZQlKrOy+tM4uhEdYlCHi4imr8Zz2cZe9oSdIg== +"@babel/plugin-transform-unicode-regex@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz#cc9661f61390db5c65e3febaccefd5c6ac3faecb" + integrity sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg== dependencies: - "@babel/helper-module-imports" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-async-generator-functions" "^7.7.4" - "@babel/plugin-proposal-dynamic-import" "^7.7.4" - "@babel/plugin-proposal-json-strings" "^7.7.4" - "@babel/plugin-proposal-object-rest-spread" "^7.7.7" - "@babel/plugin-proposal-optional-catch-binding" "^7.7.4" - "@babel/plugin-proposal-unicode-property-regex" "^7.7.7" - "@babel/plugin-syntax-async-generators" "^7.7.4" - "@babel/plugin-syntax-dynamic-import" "^7.7.4" - "@babel/plugin-syntax-json-strings" "^7.7.4" - "@babel/plugin-syntax-object-rest-spread" "^7.7.4" - "@babel/plugin-syntax-optional-catch-binding" "^7.7.4" - "@babel/plugin-syntax-top-level-await" "^7.7.4" - "@babel/plugin-transform-arrow-functions" "^7.7.4" - "@babel/plugin-transform-async-to-generator" "^7.7.4" - "@babel/plugin-transform-block-scoped-functions" "^7.7.4" - "@babel/plugin-transform-block-scoping" "^7.7.4" - "@babel/plugin-transform-classes" "^7.7.4" - "@babel/plugin-transform-computed-properties" "^7.7.4" - "@babel/plugin-transform-destructuring" "^7.7.4" - "@babel/plugin-transform-dotall-regex" "^7.7.7" - "@babel/plugin-transform-duplicate-keys" "^7.7.4" - "@babel/plugin-transform-exponentiation-operator" "^7.7.4" - "@babel/plugin-transform-for-of" "^7.7.4" - "@babel/plugin-transform-function-name" "^7.7.4" - "@babel/plugin-transform-literals" "^7.7.4" - "@babel/plugin-transform-member-expression-literals" "^7.7.4" - "@babel/plugin-transform-modules-amd" "^7.7.5" - "@babel/plugin-transform-modules-commonjs" "^7.7.5" - "@babel/plugin-transform-modules-systemjs" "^7.7.4" - "@babel/plugin-transform-modules-umd" "^7.7.4" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.7.4" - "@babel/plugin-transform-new-target" "^7.7.4" - "@babel/plugin-transform-object-super" "^7.7.4" - "@babel/plugin-transform-parameters" "^7.7.7" - "@babel/plugin-transform-property-literals" "^7.7.4" - "@babel/plugin-transform-regenerator" "^7.7.5" - "@babel/plugin-transform-reserved-words" "^7.7.4" - "@babel/plugin-transform-shorthand-properties" "^7.7.4" - "@babel/plugin-transform-spread" "^7.7.4" - "@babel/plugin-transform-sticky-regex" "^7.7.4" - "@babel/plugin-transform-template-literals" "^7.7.4" - "@babel/plugin-transform-typeof-symbol" "^7.7.4" - "@babel/plugin-transform-unicode-regex" "^7.7.4" - "@babel/types" "^7.7.4" - browserslist "^4.6.0" - core-js-compat "^3.6.0" - invariant "^2.2.2" - js-levenshtein "^1.1.3" + "@babel/helper-create-regexp-features-plugin" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/preset-env@^7.6.0": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.7.tgz#54ea21dbe92caf6f10cb1a0a576adc4ebf094b55" + integrity sha512-OnNdfAr1FUQg7ksb7bmbKoby4qFOHw6DKWWUNB9KqnnCldxhxJlP+21dpyaWFmf2h0rTbOkXJtAGevY3XW1eew== + dependencies: + "@babel/compat-data" "^7.12.7" + "@babel/helper-compilation-targets" "^7.12.5" + "@babel/helper-module-imports" "^7.12.5" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-validator-option" "^7.12.1" + "@babel/plugin-proposal-async-generator-functions" "^7.12.1" + "@babel/plugin-proposal-class-properties" "^7.12.1" + "@babel/plugin-proposal-dynamic-import" "^7.12.1" + "@babel/plugin-proposal-export-namespace-from" "^7.12.1" + "@babel/plugin-proposal-json-strings" "^7.12.1" + "@babel/plugin-proposal-logical-assignment-operators" "^7.12.1" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" + "@babel/plugin-proposal-numeric-separator" "^7.12.7" + "@babel/plugin-proposal-object-rest-spread" "^7.12.1" + "@babel/plugin-proposal-optional-catch-binding" "^7.12.1" + "@babel/plugin-proposal-optional-chaining" "^7.12.7" + "@babel/plugin-proposal-private-methods" "^7.12.1" + "@babel/plugin-proposal-unicode-property-regex" "^7.12.1" + "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/plugin-syntax-class-properties" "^7.12.1" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + "@babel/plugin-syntax-top-level-await" "^7.12.1" + "@babel/plugin-transform-arrow-functions" "^7.12.1" + "@babel/plugin-transform-async-to-generator" "^7.12.1" + "@babel/plugin-transform-block-scoped-functions" "^7.12.1" + "@babel/plugin-transform-block-scoping" "^7.12.1" + "@babel/plugin-transform-classes" "^7.12.1" + "@babel/plugin-transform-computed-properties" "^7.12.1" + "@babel/plugin-transform-destructuring" "^7.12.1" + "@babel/plugin-transform-dotall-regex" "^7.12.1" + "@babel/plugin-transform-duplicate-keys" "^7.12.1" + "@babel/plugin-transform-exponentiation-operator" "^7.12.1" + "@babel/plugin-transform-for-of" "^7.12.1" + "@babel/plugin-transform-function-name" "^7.12.1" + "@babel/plugin-transform-literals" "^7.12.1" + "@babel/plugin-transform-member-expression-literals" "^7.12.1" + "@babel/plugin-transform-modules-amd" "^7.12.1" + "@babel/plugin-transform-modules-commonjs" "^7.12.1" + "@babel/plugin-transform-modules-systemjs" "^7.12.1" + "@babel/plugin-transform-modules-umd" "^7.12.1" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.1" + "@babel/plugin-transform-new-target" "^7.12.1" + "@babel/plugin-transform-object-super" "^7.12.1" + "@babel/plugin-transform-parameters" "^7.12.1" + "@babel/plugin-transform-property-literals" "^7.12.1" + "@babel/plugin-transform-regenerator" "^7.12.1" + "@babel/plugin-transform-reserved-words" "^7.12.1" + "@babel/plugin-transform-shorthand-properties" "^7.12.1" + "@babel/plugin-transform-spread" "^7.12.1" + "@babel/plugin-transform-sticky-regex" "^7.12.7" + "@babel/plugin-transform-template-literals" "^7.12.1" + "@babel/plugin-transform-typeof-symbol" "^7.12.1" + "@babel/plugin-transform-unicode-escapes" "^7.12.1" + "@babel/plugin-transform-unicode-regex" "^7.12.1" + "@babel/preset-modules" "^0.1.3" + "@babel/types" "^7.12.7" + core-js-compat "^3.7.0" semver "^5.5.0" -"@babel/template@^7.4.0", "@babel/template@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.7.4.tgz#428a7d9eecffe27deac0a98e23bf8e3675d2a77b" - integrity sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw== +"@babel/preset-modules@^0.1.3": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" + integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.7.4" - "@babel/types" "^7.7.4" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.7.4.tgz#9c1e7c60fb679fe4fcfaa42500833333c2058558" - integrity sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw== - dependencies: - "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.7.4" - "@babel/helper-function-name" "^7.7.4" - "@babel/helper-split-export-declaration" "^7.7.4" - "@babel/parser" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/runtime@^7.8.4": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" + integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.10.4", "@babel/template@^7.12.7", "@babel/template@^7.4.0": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.7.tgz#c817233696018e39fbb6c491d2fb684e05ed43bc" + integrity sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/parser" "^7.12.7" + "@babel/types" "^7.12.7" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.5", "@babel/traverse@^7.12.9", "@babel/traverse@^7.4.3": + version "7.12.9" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.9.tgz#fad26c972eabbc11350e0b695978de6cc8e8596f" + integrity sha512-iX9ajqnLdoU1s1nHt36JDI9KG4k+vmI8WgjK5d+aDTwQbL2fUnzedNedssA645Ede3PM2ma1n8Q4h2ohwXgMXw== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.12.5" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/parser" "^7.12.7" + "@babel/types" "^7.12.7" debug "^4.1.0" globals "^11.1.0" - lodash "^4.17.13" + lodash "^4.17.19" -"@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.7.4.tgz#516570d539e44ddf308c07569c258ff94fde9193" - integrity sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA== +"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.12.1", "@babel/types@^7.12.5", "@babel/types@^7.12.7", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.7.tgz#6039ff1e242640a29452c9ae572162ec9a8f5d13" + integrity sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ== dependencies: - esutils "^2.0.2" - lodash "^4.17.13" + "@babel/helper-validator-identifier" "^7.10.4" + lodash "^4.17.19" to-fast-properties "^2.0.0" +"@bazel/typescript@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-2.3.1.tgz#f103c4a5230cabaffd8d574b7278265b5478f056" + integrity sha512-blgLpx+9Vh8DZWTVOYTWSk1HEU28FF+GwU1stFaemfY7/pUQfK/URb9FARRkw/v2UrPKCd9EBywFYQyPGSAb1A== + dependencies: + protobufjs "6.8.8" + semver "5.6.0" + source-map-support "0.5.9" + tsutils "2.27.2" + "@cnakazawa/watch@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.3.tgz#099139eaec7ebf07a27c1786a3ff64f39464d2ef" - integrity sha512-r5160ogAvGyHsal38Kux7YYtodEKOj89RGb28ht1jh3SJb08VwRwAKKJL0bGb04Zd/3r9FL3BFIc3bBidYffCA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" + integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== dependencies: exec-sh "^0.3.2" minimist "^1.2.0" @@ -750,7 +926,7 @@ slash "^2.0.0" strip-ansi "^5.0.0" -"@jest/environment@^24.7.1", "@jest/environment@^24.9.0": +"@jest/environment@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.9.0.tgz#21e3afa2d65c0586cbd6cbefe208bafade44ab18" integrity sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ== @@ -814,7 +990,7 @@ "@jest/types" "^24.9.0" "@types/istanbul-lib-coverage" "^2.0.0" -"@jest/test-sequencer@^24.7.1", "@jest/test-sequencer@^24.9.0": +"@jest/test-sequencer@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz#f8f334f35b625a4f2f355f2fe7e6036dad2e6b31" integrity sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A== @@ -876,10 +1052,91 @@ "@types/istanbul-reports" "^1.1.1" "@types/yargs" "^13.0.0" +"@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + +"@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents": + version "2.1.8-no-fsevents" + resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.tgz#da7c3996b8e6e19ebd14d82eaced2313e7769f9b" + integrity sha512-+nb9vWloHNNMFHjGofEam3wopE3m1yuambrrd/fnPc+lFOMB9ROTqQlche9ByFWNkdNqfSgR/kkQtQ8DzEWt2w== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + integrity sha1-m4sMxmPWaafY9vXQiToU00jzD78= + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + integrity sha1-NVy8mLr61ZePntCV85diHx0Ga3A= + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + integrity sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU= + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + integrity sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E= + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + integrity sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik= + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + integrity sha1-bMKyDFya1q0NzP0hynZz2Nf79o0= + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + integrity sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q= + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= + "@types/babel__core@^7.1.0": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.3.tgz#e441ea7df63cd080dfcd02ab199e6d16a735fc30" - integrity sha512-8fBo0UR2CcwWxeX7WIIgJ7lXjasFxoYgRnFHUj+hRvKkpiBJbxhdAPTCY6/ZKM0uxANFVzt4yObSLuTiTnazDA== + version "7.1.12" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.12.tgz#4d8e9e51eb265552a7e4f1ff2219ab6133bdfb2d" + integrity sha512-wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -888,66 +1145,98 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.1" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.1.tgz#4901767b397e8711aeb99df8d396d7ba7b7f0e04" - integrity sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew== + version "7.6.2" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.2.tgz#f3d71178e187858f7c45e30380f8f1b7415a12d8" + integrity sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ== dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": - version "7.0.2" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.2.tgz#4ff63d6b52eddac1de7b975a5223ed32ecea9307" - integrity sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg== + version "7.4.0" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.0.tgz#0c888dd70b3ee9eebb6e4f200e809da0076262be" + integrity sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.0.8" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.8.tgz#479a4ee3e291a403a1096106013ec22cf9b64012" - integrity sha512-yGeB2dHEdvxjP0y4UbRtQaSkXJ9649fYCmIdRoul5kfAoGCwxuCbMhag0k3RPfnuh9kPGm8x89btcfDEXdVWGw== + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.15.tgz#db9e4238931eb69ef8aab0ad6523d4d4caa39d03" + integrity sha512-Pzh9O3sTK8V6I1olsXpCfj2k/ygO2q1X0vhhnDrEQyYLHZesWz+zMZMVcwXLCYf0U36EtmyYaFGPfXlTtDHe3A== dependencies: "@babel/types" "^7.3.0" "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff" - integrity sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg== + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" + integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== "@types/istanbul-lib-report@*": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz#e5471e7fa33c61358dd38426189c037a58433b8c" - integrity sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg== + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== dependencies: "@types/istanbul-lib-coverage" "*" "@types/istanbul-reports@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz#7a8cbf6a406f36c8add871625b278eaf0b0d255a" - integrity sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA== + version "1.1.2" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2" + integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw== dependencies: "@types/istanbul-lib-coverage" "*" "@types/istanbul-lib-report" "*" +"@types/istanbul-reports@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821" + integrity sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@^26.0.15": + version "26.0.15" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.15.tgz#12e02c0372ad0548e07b9f4e19132b834cb1effe" + integrity sha512-s2VMReFXRg9XXxV+CW9e5Nz8fH2K1aEhwgjUqPPbQd7g95T0laAcvLv032EhFHIa5GHsZ8W7iJEQVaJq6k3Gog== + dependencies: + jest-diff "^26.0.0" + pretty-format "^26.0.0" + +"@types/long@^4.0.0": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" + integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== + +"@types/node@*": + version "14.14.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.9.tgz#04afc9a25c6ff93da14deabd65dc44485b53c8d6" + integrity sha512-JsoLXFppG62tWTklIoO4knA+oDTYsmqWxHRvd4lpmfQRNhX6osheUOWETP2jMoV/2bEHuMra8Pp3Dmo/stBFcw== + +"@types/node@^10.1.0": + version "10.17.46" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.46.tgz#1cd867ebfe9957ab45951f2f715f8de5f3dab7a3" + integrity sha512-Tice8a+sJtlP9C1EUo0DYyjq52T37b3LexVu3p871+kfIBIN+OQ7PKPei1oF3MgF39olEpUfxaLtD+QFc1k69Q== + "@types/stack-utils@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== "@types/yargs-parser@*": - version "13.1.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-13.1.0.tgz#c563aa192f39350a1d18da36c5a8da382bbd8228" - integrity sha512-gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg== - -"@types/yargs@^12.0.2": - version "12.0.14" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-12.0.14.tgz#917b57cb50c7421842a38de24fec10a55673b7f0" - integrity sha512-AoVBCxg1PQpEE4HUnHpagMFrGzogywNJElZVg+aFmvOYUiz7y74CKS9/8G9J8hrYM4xu+rJR69ulmoTMKgWSWQ== + version "15.0.0" + 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.4" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.4.tgz#53d231cebe1a540e7e13727fc1f0d13ad4a9ba3b" - integrity sha512-Ke1WmBbIkVM8bpvsNEcGgQM70XcEh/nbpxQhW7FhrsbCsXSY9BmLB1+LHtD7r9zrsOcFlLiF+a/UeJsdfw3C5A== + version "13.0.11" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.11.tgz#def2f0c93e4bdf2c61d7e34899b17e34be28d3b1" + integrity sha512-NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ== + dependencies: + "@types/yargs-parser" "*" + +"@types/yargs@^15.0.0": + version "15.0.10" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.10.tgz#0fe3c8173a0d5c3e780b389050140c3f5ea6ea74" + integrity sha512-z8PNtlhrj7eJNLmrAivM7rjBESG6JwC5xP3RVk12i/8HVP7Xnx/sEmERnRImyEuUaJfO942X0qMOYsoupaJbZQ== dependencies: "@types/yargs-parser" "*" @@ -957,9 +1246,9 @@ integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== abab@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a" - integrity sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg== + version "2.0.5" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" + integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== acorn-globals@^4.1.0: version "4.3.4" @@ -975,42 +1264,30 @@ acorn-walk@^6.0.1: integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== acorn@^5.5.3: - version "5.7.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" - integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== + version "5.7.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" + integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== acorn@^6.0.1: - version "6.4.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.0.tgz#b659d2ffbafa24baf5db1cdbb2c94a983ecd2784" - integrity sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw== + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== -ajv@^6.5.5: - version "6.10.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" - integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== +ajv@^6.12.3: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: - fast-deep-equal "^2.0.1" + fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ansi-align@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" - integrity sha1-w2rsy6VjuJzrVW82kPCx2eNUf38= - dependencies: - string-width "^2.0.0" - ansi-escapes@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - ansi-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" @@ -1021,6 +1298,11 @@ ansi-regex@^4.0.0, ansi-regex@^4.1.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -1028,6 +1310,13 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -1036,6 +1325,14 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" +anymatch@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" + integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" @@ -1098,7 +1395,7 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= -atob@^2.1.1: +atob@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== @@ -1109,9 +1406,9 @@ aws-sign2@~0.7.0: integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.8.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.0.tgz#24390e6ad61386b0a747265754d2a17219de862c" - integrity sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A== + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== babel-jest@24.7.1: version "24.7.1" @@ -1126,7 +1423,7 @@ babel-jest@24.7.1: chalk "^2.4.2" slash "^2.0.0" -babel-jest@^24.7.1, babel-jest@^24.9.0: +babel-jest@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.9.0.tgz#3fc327cb8467b89d14d7bc70e315104a783ccd54" integrity sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw== @@ -1139,10 +1436,10 @@ babel-jest@^24.7.1, babel-jest@^24.9.0: chalk "^2.4.2" slash "^2.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" - integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== dependencies: object.assign "^4.1.0" @@ -1210,6 +1507,11 @@ binary-extensions@^1.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== +binary-extensions@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" + integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== + bindings@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" @@ -1217,19 +1519,6 @@ bindings@^1.5.0: dependencies: file-uri-to-path "1.0.0" -boxen@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" - integrity sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw== - dependencies: - ansi-align "^2.0.0" - camelcase "^4.0.0" - chalk "^2.0.1" - cli-boxes "^1.0.0" - string-width "^2.0.0" - term-size "^1.2.0" - widest-line "^2.0.0" - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -1254,10 +1543,17 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -browser-process-hrtime@^0.1.2: - version "0.1.3" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4" - integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw== +braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== browser-resolve@^1.11.3: version "1.11.3" @@ -1266,14 +1562,16 @@ browser-resolve@^1.11.3: dependencies: resolve "1.1.7" -browserslist@^4.6.0, browserslist@^4.8.2: - version "4.8.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.2.tgz#b45720ad5fbc8713b7253c20766f701c9a694289" - integrity sha512-+M4oeaTplPm/f1pXDw84YohEv7B1i/2Aisei8s4s6k3QsoSHa7i5sz8u/cGQkkatCPxMASKxPualR4wwYgVboA== +browserslist@^4.14.5, browserslist@^4.14.6: + version "4.14.7" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.7.tgz#c071c1b3622c1c2e790799a37bb09473a4351cb6" + integrity sha512-BSVRLCeG3Xt/j/1cCGj1019Wbty0H+Yvu2AOuZSuoaUWn3RatbL33Cxk+Q4jRMRAbOm0p7SLravLjpnT6s0vzQ== dependencies: - caniuse-lite "^1.0.30001015" - electron-to-chromium "^1.3.322" - node-releases "^1.1.42" + caniuse-lite "^1.0.30001157" + colorette "^1.2.1" + electron-to-chromium "^1.3.591" + escalade "^3.1.1" + node-releases "^1.1.66" bser@2.1.1: version "2.1.1" @@ -1302,25 +1600,28 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" +call-bind@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.0.tgz#24127054bb3f9bdcb4b1fb82418186072f77b8ce" + integrity sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.0" + callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camelcase@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= - camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -caniuse-lite@^1.0.30001015: - version "1.0.30001016" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001016.tgz#16ea48d7d6e8caf3cad3295c2d746fe38c4e7f66" - integrity sha512-yYQ2QfotceRiH4U+h1Us86WJXtVHDmy3nEKIdYPsZCYnOV5/tMgGbmoIlrMzmh2VXlproqYtVaKeGDBkMZifFA== +caniuse-lite@^1.0.30001157: + version "1.0.30001161" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001161.tgz#64f7ffe79ee780b8c92843ff34feb36cea4651e0" + integrity sha512-JharrCDxOqPLBULF9/SPa6yMcBRTjZARJ6sc3cuKrPfyIk64JN6kuMINWqA99Xc8uElMFcROliwtz0n9pYej+g== capture-exit@^2.0.0: version "2.0.0" @@ -1329,11 +1630,6 @@ capture-exit@^2.0.0: dependencies: rsvp "^4.8.4" -capture-stack-trace@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" - integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw== - caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" @@ -1348,29 +1644,28 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" +chalk@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chokidar@^3.4.0: + version "3.4.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b" + integrity sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.5.0" optionalDependencies: - fsevents "^1.2.7" - -ci-info@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" - integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== + fsevents "~2.1.2" ci-info@^2.0.0: version "2.0.0" @@ -1387,20 +1682,6 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -cli-boxes@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" - integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= - -cliui@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" - integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== - dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" - wrap-ansi "^2.0.0" - cliui@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" @@ -1415,11 +1696,6 @@ co@^4.6.0: resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= - collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" @@ -1435,11 +1711,28 @@ color-convert@^1.9.0: dependencies: color-name "1.1.3" +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colorette@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" + integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== + combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -1448,14 +1741,9 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: delayed-stream "~1.0.0" commander@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-4.0.1.tgz#b67622721785993182e807f4883633e6401ba53c" - integrity sha512-IPF4ouhCP+qdlcmCedhxX4xiGBPyigb8v5NeUp+0LyhwLgxMqyp3S0vl7TAPfS/hiP7FC3caI/PB9lTmP8r1NA== - -commander@~2.20.3: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== component-emitter@^1.2.1: version "1.3.0" @@ -1467,18 +1755,6 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -configstore@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" - integrity sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw== - dependencies: - dot-prop "^4.1.0" - graceful-fs "^4.1.2" - make-dir "^1.0.0" - unique-string "^1.0.0" - write-file-atomic "^2.0.0" - xdg-basedir "^3.0.0" - convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" @@ -1491,12 +1767,12 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -core-js-compat@^3.6.0: - version "3.6.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.1.tgz#39638c935c83c93a793abb628b252ec43e85783a" - integrity sha512-2Tl1EuxZo94QS2VeH28Ebf5g3xbPZG/hj/N5HDDy4XMP/ImR0JIer/nggQRiMN91Q54JVkGbytf42wO29oXVHg== +core-js-compat@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.7.0.tgz#8479c5d3d672d83f1f5ab94cf353e57113e065ed" + integrity sha512-V8yBI3+ZLDVomoWICO6kq/CD28Y4r1M7CWeO4AGpMdMfseu8bkSubBmUPySMGKRTS+su4XQ07zUkAsiu9FCWTg== dependencies: - browserslist "^4.8.2" + browserslist "^4.14.6" semver "7.0.0" core-util-is@1.0.2, core-util-is@~1.0.0: @@ -1504,22 +1780,6 @@ core-util-is@1.0.2, core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -create-error-class@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" - integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y= - dependencies: - capture-stack-trace "^1.0.0" - -cross-spawn@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -1531,11 +1791,6 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -crypto-random-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" - integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= - cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": version "0.3.8" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" @@ -1572,11 +1827,11 @@ debug@^2.2.0, debug@^2.3.3: ms "2.0.0" debug@^4.1.0, debug@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== dependencies: - ms "^2.1.1" + ms "2.1.2" decamelize@^1.2.0: version "1.2.0" @@ -1588,17 +1843,12 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= -define-properties@^1.1.2, define-properties@^1.1.3: +define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== @@ -1642,6 +1892,11 @@ diff-sequences@^24.9.0: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== +diff-sequences@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" + integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== + domexception@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" @@ -1649,18 +1904,6 @@ domexception@^1.0.1: dependencies: webidl-conversions "^4.0.2" -dot-prop@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" - integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== - dependencies: - is-obj "^1.0.0" - -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= - ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -1669,10 +1912,10 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" -electron-to-chromium@^1.3.322: - version "1.3.322" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz#a6f7e1c79025c2b05838e8e344f6e89eb83213a8" - integrity sha512-Tc8JQEfGQ1MzfSzI/bTlSr7btJv/FFO7Yh6tanqVmIWOuNCu6/D1MilIEgLtmWqIrsv+o4IjpLAhgMBr/ncNAA== +electron-to-chromium@^1.3.591: + version "1.3.607" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.607.tgz#1bff13f1cf89f2fee0d244b8c64a7138f80f3a3b" + integrity sha512-h2SYNaBnlplGS0YyXl8oJWokfcNxVjJANQfMCsQefG6OSuAuNIeW+A8yGT/ci+xRoBb3k2zq1FrOvkgoKBol8g== emoji-regex@^7.0.1: version "7.0.3" @@ -1693,22 +1936,22 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.17.0-next.1: - version "1.17.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.0.tgz#f42a517d0036a5591dbb2c463591dc8bb50309b1" - integrity sha512-yYkE07YF+6SIBmg1MsJ9dlub5L48Ek7X0qz+c/CPCHS9EBXfESorzng4cJQjJW5/pB6vDF41u7F8vUhLVDqIug== +es-abstract@^1.17.0-next.1, es-abstract@^1.17.2: + version "1.17.7" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c" + integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g== dependencies: es-to-primitive "^1.2.1" function-bind "^1.1.1" has "^1.0.3" has-symbols "^1.0.1" - is-callable "^1.1.5" - is-regex "^1.0.5" - object-inspect "^1.7.0" + is-callable "^1.2.2" + is-regex "^1.1.1" + object-inspect "^1.8.0" object-keys "^1.1.1" - object.assign "^4.1.0" - string.prototype.trimleft "^2.1.1" - string.prototype.trimright "^2.1.1" + object.assign "^4.1.1" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" es-to-primitive@^1.2.1: version "1.2.1" @@ -1719,27 +1962,37 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + escodegen@^1.9.1: - version "1.12.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.12.0.tgz#f763daf840af172bb3a2b6dd7219c0e17f7ff541" - integrity sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg== + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== dependencies: - esprima "^3.1.3" + esprima "^4.0.1" estraverse "^4.2.0" esutils "^2.0.2" optionator "^0.8.1" optionalDependencies: source-map "~0.6.1" -esprima@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" - integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= +esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== estraverse@^4.2.0: version "4.3.0" @@ -1756,19 +2009,6 @@ exec-sh@^0.3.2: resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A== -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - execa@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -1856,10 +2096,10 @@ extsprintf@^1.2.0: resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= -fast-deep-equal@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" - integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-json-stable-stringify@^2.0.0: version "2.1.0" @@ -1893,6 +2133,13 @@ fill-range@^4.0.0: repeat-string "^1.6.1" to-regex-range "^2.1.0" +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -1963,32 +2210,41 @@ fs.realpath@^1.0.0: integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.2.7: - version "1.2.11" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.11.tgz#67bf57f4758f02ede88fb2a1712fef4d15358be3" - integrity sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw== + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== dependencies: bindings "^1.5.0" nan "^2.12.1" +fsevents@~2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== + function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -get-caller-file@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" - integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== +gensync@^1.0.0-beta.1: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== get-caller-file@^2.0.1: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= +get-intrinsic@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.1.tgz#94a9768fcbdd0595a1c9273aacf4c89d075631be" + integrity sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" get-stream@^4.0.0: version "4.1.0" @@ -2017,6 +2273,13 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" +glob-parent@~5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + dependencies: + is-glob "^4.0.1" + glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" @@ -2029,67 +2292,32 @@ glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" -global-dirs@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" - integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= - dependencies: - ini "^1.3.4" - globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -got@^6.7.1: - version "6.7.1" - resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" - integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA= - dependencies: - create-error-class "^3.0.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - is-redirect "^1.0.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - lowercase-keys "^1.0.0" - safe-buffer "^5.0.1" - timed-out "^4.0.0" - unzip-response "^2.0.1" - url-parse-lax "^1.0.0" - graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6: - version "4.2.3" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" - integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== + 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" integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= -handlebars@^4.1.2: - version "4.5.3" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.5.3.tgz#5cf75bd8714f7605713511a56be7c349becb0482" - integrity sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA== - dependencies: - neo-async "^2.6.0" - optimist "^0.6.1" - source-map "^0.6.1" - optionalDependencies: - uglify-js "^3.1.4" - har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= -har-validator@~5.1.0: - version "5.1.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" - integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== dependencies: - ajv "^6.5.5" + ajv "^6.12.3" har-schema "^2.0.0" has-flag@^3.0.0: @@ -2097,7 +2325,12 @@ has-flag@^3.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= -has-symbols@^1.0.0, has-symbols@^1.0.1: +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbols@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== @@ -2141,9 +2374,9 @@ has@^1.0.3: function-bind "^1.1.1" hosted-git-info@^2.1.4: - version "2.8.5" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c" - integrity sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg== + version "2.8.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" + integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== html-encoding-sniffer@^1.0.2: version "1.0.2" @@ -2152,6 +2385,11 @@ html-encoding-sniffer@^1.0.2: dependencies: whatwg-encoding "^1.0.1" +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" @@ -2168,11 +2406,6 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -import-lazy@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" - integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= - import-local@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" @@ -2199,23 +2432,13 @@ inherits@2, inherits@^2.0.3, inherits@~2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -ini@^1.3.4, ini@~1.3.0: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== - -invariant@^2.2.2, invariant@^2.2.4: +invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== dependencies: loose-envify "^1.0.0" -invert-kv@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" - integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== - is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" @@ -2242,22 +2465,22 @@ is-binary-path@^1.0.0: dependencies: binary-extensions "^1.0.0" +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-callable@^1.1.4, is-callable@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" - integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== - -is-ci@^1.0.10: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" - integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== - dependencies: - ci-info "^1.5.0" +is-callable@^1.1.4, is-callable@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" + integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA== is-ci@^2.0.0: version "2.0.0" @@ -2266,6 +2489,13 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" +is-core-module@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.1.0.tgz#a4cc031d9b1aca63eecbd18a650e13cb4eeab946" + integrity sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -2320,13 +2550,6 @@ is-extglob@^2.1.0, is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" - is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" @@ -2344,26 +2567,13 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" -is-glob@^4.0.0: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== dependencies: is-extglob "^2.1.1" -is-installed-globally@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" - integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= - dependencies: - global-dirs "^0.1.0" - is-path-inside "^1.0.0" - -is-npm@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" - integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ= - is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" @@ -2371,17 +2581,10 @@ is-number@^3.0.0: dependencies: kind-of "^3.0.2" -is-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= - -is-path-inside@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= - dependencies: - path-is-inside "^1.0.1" +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" @@ -2390,24 +2593,14 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-redirect@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" - integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= - -is-regex@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" - integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== +is-regex@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" + integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== dependencies: - has "^1.0.3" - -is-retry-allowed@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" - integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== + has-symbols "^1.0.1" -is-stream@^1.0.0, is-stream@^1.1.0: +is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= @@ -2500,11 +2693,11 @@ istanbul-lib-source-maps@^3.0.1: source-map "^0.6.1" istanbul-reports@^2.2.6: - version "2.2.6" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.6.tgz#7b4f2660d82b29303a8fe6091f8ca4bf058da1af" - integrity sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA== + version "2.2.7" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.7.tgz#5d939f6237d7b48393cc0959eab40cd4fd056931" + integrity sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg== dependencies: - handlebars "^4.1.2" + html-escaper "^2.0.0" jest-changed-files@^24.7.0, jest-changed-files@^24.9.0: version "24.9.0" @@ -2526,38 +2719,15 @@ jest-cli@24.9.0: chalk "^2.0.1" exit "^0.1.2" import-local "^2.0.0" - is-ci "^2.0.0" - jest-config "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - prompts "^2.0.1" - realpath-native "^1.1.0" - yargs "^13.3.0" - -jest-config@^24.7.1: - version "24.7.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.7.1.tgz#6c1dd4db82a89710a3cf66bdba97827c9a1cf052" - integrity sha512-8FlJNLI+X+MU37j7j8RE4DnJkvAghXmBWdArVzypW6WxfGuxiL/CCkzBg0gHtXhD2rxla3IMOSUAHylSKYJ83g== - dependencies: - "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^24.7.1" - "@jest/types" "^24.7.0" - babel-jest "^24.7.1" - chalk "^2.0.1" - glob "^7.1.1" - jest-environment-jsdom "^24.7.1" - jest-environment-node "^24.7.1" - jest-get-type "^24.3.0" - jest-jasmine2 "^24.7.1" - jest-regex-util "^24.3.0" - jest-resolve "^24.7.1" - jest-util "^24.7.1" - jest-validate "^24.7.0" - micromatch "^3.1.10" - pretty-format "^24.7.0" + is-ci "^2.0.0" + jest-config "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" + prompts "^2.0.1" realpath-native "^1.1.0" + yargs "^13.3.0" -jest-config@^24.9.0: +jest-config@^24.7.1, jest-config@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.9.0.tgz#fb1bbc60c73a46af03590719efa4825e6e4dd1b5" integrity sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ== @@ -2590,6 +2760,16 @@ jest-diff@^24.9.0: jest-get-type "^24.9.0" pretty-format "^24.9.0" +jest-diff@^26.0.0: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" + integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== + dependencies: + chalk "^4.0.0" + diff-sequences "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + jest-docblock@^24.3.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.9.0.tgz#7970201802ba560e1c4092cc25cbedf5af5a8ce2" @@ -2608,7 +2788,7 @@ jest-each@^24.9.0: jest-util "^24.9.0" pretty-format "^24.9.0" -jest-environment-jsdom@^24.7.1, jest-environment-jsdom@^24.9.0: +jest-environment-jsdom@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz#4b0806c7fc94f95edb369a69cc2778eec2b7375b" integrity sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA== @@ -2620,7 +2800,7 @@ jest-environment-jsdom@^24.7.1, jest-environment-jsdom@^24.9.0: jest-util "^24.9.0" jsdom "^11.5.1" -jest-environment-node@^24.7.1, jest-environment-node@^24.9.0: +jest-environment-node@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.9.0.tgz#333d2d2796f9687f2aeebf0742b519f33c1cbfd3" integrity sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA== @@ -2631,31 +2811,17 @@ jest-environment-node@^24.7.1, jest-environment-node@^24.9.0: jest-mock "^24.9.0" jest-util "^24.9.0" -jest-get-type@^24.3.0, jest-get-type@^24.9.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-haste-map@^24.7.1: - version "24.7.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.7.1.tgz#772e215cd84080d4bbcb759cfb668ad649a21471" - integrity sha512-g0tWkzjpHD2qa03mTKhlydbmmYiA2KdcJe762SbfFo/7NIMgBWAA0XqQlApPwkWOF7Cxoi/gUqL0i6DIoLpMBw== - dependencies: - "@jest/types" "^24.7.0" - anymatch "^2.0.0" - fb-watchman "^2.0.0" - graceful-fs "^4.1.15" - invariant "^2.2.4" - jest-serializer "^24.4.0" - jest-util "^24.7.1" - jest-worker "^24.6.0" - micromatch "^3.1.10" - sane "^4.0.3" - walker "^1.0.7" - optionalDependencies: - fsevents "^1.2.7" +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" + integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== -jest-haste-map@^24.9.0: +jest-haste-map@^24.7.1, jest-haste-map@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d" integrity sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ== @@ -2674,7 +2840,7 @@ jest-haste-map@^24.9.0: optionalDependencies: fsevents "^1.2.7" -jest-jasmine2@^24.7.1, jest-jasmine2@^24.9.0: +jest-jasmine2@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz#1f7b1bd3242c1774e62acabb3646d96afc3be6a0" integrity sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw== @@ -2728,7 +2894,7 @@ jest-message-util@^24.7.1, jest-message-util@^24.9.0: slash "^2.0.0" stack-utils "^1.0.1" -jest-mock@^24.7.0, jest-mock@^24.9.0: +jest-mock@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" integrity sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w== @@ -2736,9 +2902,9 @@ jest-mock@^24.7.0, jest-mock@^24.9.0: "@jest/types" "^24.9.0" jest-pnp-resolver@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a" - integrity sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ== + version "1.2.2" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" + integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== jest-regex-util@^24.3.0, jest-regex-util@^24.9.0: version "24.9.0" @@ -2754,17 +2920,6 @@ jest-resolve-dependencies@^24.7.1, jest-resolve-dependencies@^24.9.0: jest-regex-util "^24.3.0" jest-snapshot "^24.9.0" -jest-resolve@^24.7.1: - version "24.7.1" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.7.1.tgz#e4150198299298380a75a9fd55043fa3b9b17fde" - integrity sha512-Bgrc+/UUZpGJ4323sQyj85hV9d+ANyPNu6XfRDUcyFNX1QrZpSoM0kE4Mb2vZMAYTJZsBFzYe8X1UaOkOELSbw== - dependencies: - "@jest/types" "^24.7.0" - browser-resolve "^1.11.3" - chalk "^2.0.1" - jest-pnp-resolver "^1.2.1" - realpath-native "^1.1.0" - jest-resolve@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.9.0.tgz#dff04c7687af34c4dd7e524892d9cf77e5d17321" @@ -2801,36 +2956,7 @@ jest-runner@^24.7.1, jest-runner@^24.9.0: source-map-support "^0.5.6" throat "^4.0.0" -jest-runtime@^24.7.1: - version "24.7.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.7.1.tgz#2ffd70b22dd03a5988c0ab9465c85cdf5d25c597" - integrity sha512-0VAbyBy7tll3R+82IPJpf6QZkokzXPIS71aDeqh+WzPRXRCNz6StQ45otFariPdJ4FmXpDiArdhZrzNAC3sj6A== - dependencies: - "@jest/console" "^24.7.1" - "@jest/environment" "^24.7.1" - "@jest/source-map" "^24.3.0" - "@jest/transform" "^24.7.1" - "@jest/types" "^24.7.0" - "@types/yargs" "^12.0.2" - chalk "^2.0.1" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.1.15" - jest-config "^24.7.1" - jest-haste-map "^24.7.1" - jest-message-util "^24.7.1" - jest-mock "^24.7.0" - jest-regex-util "^24.3.0" - jest-resolve "^24.7.1" - jest-snapshot "^24.7.1" - jest-util "^24.7.1" - jest-validate "^24.7.0" - realpath-native "^1.1.0" - slash "^2.0.0" - strip-bom "^3.0.0" - yargs "^12.0.2" - -jest-runtime@^24.9.0: +jest-runtime@^24.7.1, jest-runtime@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.9.0.tgz#9f14583af6a4f7314a6a9d9f0226e1a781c8e4ac" integrity sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw== @@ -2859,7 +2985,7 @@ jest-runtime@^24.9.0: strip-bom "^3.0.0" yargs "^13.3.0" -jest-serializer@^24.4.0, jest-serializer@^24.9.0: +jest-serializer@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73" integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ== @@ -2934,11 +3060,6 @@ jest-worker@^24.6.0, jest-worker@^24.9.0: merge-stream "^2.0.0" supports-color "^6.1.0" -js-levenshtein@^1.1.3: - version "1.1.6" - resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" - integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== - "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -3011,12 +3132,12 @@ json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json5@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6" - integrity sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ== +json5@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" + integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== dependencies: - minimist "^1.2.0" + minimist "^1.2.5" jsonfile@^4.0.0: version "4.0.0" @@ -3055,9 +3176,9 @@ kind-of@^5.0.0: integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" - integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== klaw-sync@^6.0.0: version "6.0.0" @@ -3071,20 +3192,6 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== -latest-version@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" - integrity sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU= - dependencies: - package-json "^4.0.0" - -lcid@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" - integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== - dependencies: - invert-kv "^2.0.0" - left-pad@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" @@ -3126,10 +3233,15 @@ lodash.sortby@^4.7.0: resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= -lodash@^4.17.13, lodash@^4.17.15: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== +lodash@^4.17.19: + version "4.17.20" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== + +long@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== loose-envify@^1.0.0: version "1.4.0" @@ -3138,26 +3250,6 @@ loose-envify@^1.0.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" -lowercase-keys@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lru-cache@^4.0.1: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -make-dir@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" - integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== - dependencies: - pify "^3.0.0" - make-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" @@ -3173,13 +3265,6 @@ makeerror@1.0.x: dependencies: tmpl "1.0.x" -map-age-cleaner@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" - integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== - dependencies: - p-defer "^1.0.0" - map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -3192,15 +3277,6 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -mem@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" - integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== - dependencies: - map-age-cleaner "^0.1.1" - mimic-fn "^2.0.0" - p-is-promise "^2.0.0" - merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -3225,22 +3301,17 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -mime-db@1.42.0: - version "1.42.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.42.0.tgz#3e252907b4c7adb906597b4b65636272cf9e7bac" - integrity sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ== +mime-db@1.44.0: + version "1.44.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" + integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== mime-types@^2.1.12, mime-types@~2.1.19: - version "2.1.25" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.25.tgz#39772d46621f93e2a80a856c53b86a62156a6437" - integrity sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg== + version "2.1.27" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" + integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== dependencies: - mime-db "1.42.0" - -mimic-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + mime-db "1.44.0" minimatch@^3.0.4: version "3.0.4" @@ -3249,20 +3320,10 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= - -minimist@^1.1.1, minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= - -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= +minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== mixin-deep@^1.2.0: version "1.3.2" @@ -3273,26 +3334,26 @@ mixin-deep@^1.2.0: is-extendable "^1.0.1" mkdirp@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== dependencies: - minimist "0.0.8" + minimist "^1.2.5" ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= -ms@^2.1.1: +ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== nan@^2.12.1: - version "2.14.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" - integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== + version "2.14.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" + integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== nanomatch@^1.2.9: version "1.2.13" @@ -3316,11 +3377,6 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -neo-async@^2.6.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" - integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== - nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -3347,12 +3403,10 @@ node-notifier@^5.4.2: shellwords "^0.1.1" which "^1.3.0" -node-releases@^1.1.42: - version "1.1.44" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.44.tgz#cd66438a6eb875e3eb012b6a12e48d9f4326ffd7" - integrity sha512-NwbdvJyR7nrcGrXvKAvzc5raj/NkoJudkarh2yIpJ4t0NH4aqjUDz/486P+ynIW5eokKOfzGNRdYoLfBlomruw== - dependencies: - semver "^6.3.0" +node-releases@^1.1.66: + version "1.1.67" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.67.tgz#28ebfcccd0baa6aad8e8d4d8fe4cbc49ae239c12" + integrity sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg== normalize-package-data@^2.3.2: version "2.5.0" @@ -3371,7 +3425,7 @@ normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" -normalize-path@^3.0.0: +normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== @@ -3383,11 +3437,6 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - nwsapi@^2.0.7: version "2.2.0" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" @@ -3407,12 +3456,12 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" - integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== +object-inspect@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" + integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== -object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: +object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== @@ -3424,17 +3473,17 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== +object.assign@^4.1.0, object.assign@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" -object.getownpropertydescriptors@^2.0.3: +object.getownpropertydescriptors@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== @@ -3456,14 +3505,6 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -optimist@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= - dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" - optionator@^0.8.1: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" @@ -3476,25 +3517,11 @@ optionator@^0.8.1: type-check "~0.3.2" word-wrap "~1.2.3" -os-locale@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" - integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== - dependencies: - execa "^1.0.0" - lcid "^2.0.0" - mem "^4.0.0" - os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= -p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= - p-each-series@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-1.0.0.tgz#930f3d12dd1f50e7434457a22cd6f04ac6ad7f71" @@ -3507,15 +3534,10 @@ p-finally@^1.0.0: resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= -p-is-promise@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" - integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== - p-limit@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537" - integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg== + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" @@ -3536,16 +3558,6 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -package-json@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" - integrity sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0= - dependencies: - got "^6.7.1" - registry-auth-token "^3.0.1" - registry-url "^3.0.3" - semver "^5.1.0" - parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" @@ -3565,9 +3577,9 @@ pascalcase@^0.1.1: integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= patch-package@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-6.2.0.tgz#677de858e352b6ca4e6cb48a6efde2cec9fde566" - integrity sha512-HWlQflaBBMjLBfOWomfolF8aqsFDeNbSNro1JDUgYqnVvPM5OILJ9DQdwIRiKmGaOsmHvhkl1FYkvv1I9r2ZJw== + version "6.2.2" + resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-6.2.2.tgz#71d170d650c65c26556f0d0fbbb48d92b6cc5f39" + integrity sha512-YqScVYkVcClUY0v8fF0kWOjDYopzIM8e3bj/RU1DPeEF14+dCGm6UeOYm4jvCyxqIEQ5/eJzmbWfDWnUleFNMg== dependencies: "@yarnpkg/lockfile" "^1.1.0" chalk "^2.4.2" @@ -3581,7 +3593,6 @@ patch-package@^6.2.0: semver "^5.6.0" slash "^2.0.0" tmp "^0.0.33" - update-notifier "^2.5.0" path-dirname@^1.0.0: version "1.0.2" @@ -3598,11 +3609,6 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-is-inside@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= - path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" @@ -3625,6 +3631,11 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + pify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" @@ -3664,12 +3675,7 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -prepend-http@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= - -pretty-format@^24.7.0, pretty-format@^24.9.0: +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== @@ -3679,10 +3685,15 @@ pretty-format@^24.7.0, pretty-format@^24.9.0: ansi-styles "^3.2.0" react-is "^16.8.4" -private@^0.1.6: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== +pretty-format@^26.0.0, pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== + dependencies: + "@jest/types" "^26.6.2" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^17.0.1" process-nextick-args@~2.0.0: version "2.0.1" @@ -3690,22 +3701,36 @@ process-nextick-args@~2.0.0: integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== prompts@^2.0.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.0.tgz#a444e968fa4cc7e86689a74050685ac8006c4cc4" - integrity sha512-NfbbPPg/74fT7wk2XYQ7hAIp9zJyZp5Fu19iRbORqqy1BhtrkZ0fPafBU+7bmn8ie69DpT0R6QpJIN2oisYjJg== + version "2.4.0" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.0.tgz#4aa5de0723a231d1ee9121c40fdf663df73f61d7" + integrity sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ== dependencies: kleur "^3.0.3" - sisteransi "^1.0.3" - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - -psl@^1.1.24, psl@^1.1.28: - version "1.6.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.6.0.tgz#60557582ee23b6c43719d9890fb4170ecd91e110" - integrity sha512-SYKKmVel98NCOYXpkwUqZqh0ahZeeKfmisiLIcEZdsb+WbLv02g/dI5BUmZnIyOe7RzZtLax81nnb2HbvC2tzA== + sisteransi "^1.0.5" + +protobufjs@6.8.8: + version "6.8.8" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.8.8.tgz#c8b4f1282fd7a90e6f5b109ed11c84af82908e7c" + integrity sha512-AAmHtD5pXgZfi7GMpllpO3q1Xw1OYldr+dMUlAnffGTAhqkg72WdmSY71uKBF/JuyiKs8psYbtKrhi0ASCD8qw== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.0" + "@types/node" "^10.1.0" + long "^4.0.0" + +psl@^1.1.28: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== pump@^3.0.0: version "3.0.0" @@ -3715,11 +3740,6 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" @@ -3730,20 +3750,15 @@ qs@~6.5.2: resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== -rc@^1.0.1, rc@^1.1.6: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - react-is@^16.8.4: - version "16.12.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.12.0.tgz#2cc0fe0fba742d97fd527c42a13bec4eeb06241c" - integrity sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q== + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.1.tgz#5b3531bd76a645a4c9fb6e693ed36419e3301339" + integrity sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA== read-pkg-up@^4.0.0: version "4.0.0" @@ -3763,9 +3778,9 @@ read-pkg@^3.0.0: path-type "^3.0.0" readable-stream@^2.0.2: - version "2.3.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" @@ -3784,6 +3799,13 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== + dependencies: + picomatch "^2.2.1" + realpath-native@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" @@ -3791,24 +3813,29 @@ realpath-native@^1.1.0: dependencies: util.promisify "^1.0.0" -regenerate-unicode-properties@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" - integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== +regenerate-unicode-properties@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" + integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== dependencies: regenerate "^1.4.0" regenerate@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.13.4: + version "0.13.7" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== -regenerator-transform@^0.14.0: - version "0.14.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" - integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ== +regenerator-transform@^0.14.2: + version "0.14.5" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" + integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== dependencies: - private "^0.1.6" + "@babel/runtime" "^7.8.4" regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" @@ -3818,42 +3845,27 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexpu-core@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" - integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg== +regexpu-core@^4.7.1: + version "4.7.1" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" + integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== dependencies: regenerate "^1.4.0" - regenerate-unicode-properties "^8.1.0" - regjsgen "^0.5.0" - regjsparser "^0.6.0" + regenerate-unicode-properties "^8.2.0" + regjsgen "^0.5.1" + regjsparser "^0.6.4" unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.1.0" - -registry-auth-token@^3.0.1: - version "3.4.0" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" - integrity sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A== - dependencies: - rc "^1.1.6" - safe-buffer "^5.0.1" + unicode-match-property-value-ecmascript "^1.2.0" -registry-url@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" - integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI= - dependencies: - rc "^1.0.1" - -regjsgen@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" - integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== +regjsgen@^0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" + integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== -regjsparser@^0.6.0: - version "0.6.2" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.2.tgz#fd62c753991467d9d1ffe0a9f67f27a529024b96" - integrity sha512-E9ghzUtoLwDekPT0DYCp+c4h+bvuUpe6rRHCTYn6eGoqj1LgKXxT6I0Il4WbjhQkOghzi/V+y03bPKvbllL93Q== +regjsparser@^0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" + integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== dependencies: jsesc "~0.5.0" @@ -3872,26 +3884,26 @@ repeat-string@^1.6.1: resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= -request-promise-core@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9" - integrity sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ== +request-promise-core@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" + integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== dependencies: - lodash "^4.17.15" + lodash "^4.17.19" request-promise-native@^1.0.5: - version "1.0.8" - resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.8.tgz#a455b960b826e44e2bf8999af64dff2bfe58cb36" - integrity sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ== + version "1.0.9" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" + integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== dependencies: - request-promise-core "1.1.3" + request-promise-core "1.1.4" stealthy-require "^1.1.1" tough-cookie "^2.3.3" request@^2.87.0: - version "2.88.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" - integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== dependencies: aws-sign2 "~0.7.0" aws4 "^1.8.0" @@ -3900,7 +3912,7 @@ request@^2.87.0: extend "~3.0.2" forever-agent "~0.6.1" form-data "~2.3.2" - har-validator "~5.1.0" + har-validator "~5.1.3" http-signature "~1.2.0" is-typedarray "~1.0.0" isstream "~0.1.2" @@ -3910,7 +3922,7 @@ request@^2.87.0: performance-now "^2.1.0" qs "~6.5.2" safe-buffer "^5.1.2" - tough-cookie "~2.4.3" + tough-cookie "~2.5.0" tunnel-agent "^0.6.0" uuid "^3.3.2" @@ -3919,11 +3931,6 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= - require-main-filename@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" @@ -3952,10 +3959,11 @@ resolve@1.1.7: integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= resolve@^1.10.0, resolve@^1.3.2: - version "1.14.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.14.1.tgz#9e018c540fcf0c427d678b9931cbf45e984bcaff" - integrity sha512-fn5Wobh4cxbLzuHaE+nphztHy43/b++4M6SsGFC2gB8uYwf0C8LcarfCz1un7UTW8OFQg9iNjZ4xpcFVGebDPg== + version "1.19.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" + integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== dependencies: + is-core-module "^2.1.0" path-parse "^1.0.6" ret@~0.1.10: @@ -3976,9 +3984,9 @@ rsvp@^4.8.4: integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== safe-buffer@^5.0.1, safe-buffer@^5.1.2: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" @@ -4017,24 +4025,22 @@ sax@^1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -semver-diff@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" - integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= - dependencies: - semver "^5.0.3" - -"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== +semver@5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" + integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== + semver@7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.2.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -4072,14 +4078,14 @@ shellwords@^0.1.1: integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== -sisteransi@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.4.tgz#386713f1ef688c7c0304dc4c0632898941cad2e3" - integrity sha512-/ekMoM4NJ59ivGSfKapeG+FWtrmWvA1p6FBZwXrqojw90vJu8lBmrTxCMuBCydKtkaUe2zt4PlxeTKpjwMbyig== +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== slash@^2.0.0: version "2.0.0" @@ -4117,20 +4123,28 @@ snapdragon@^0.8.1: use "^3.1.0" source-map-resolve@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" - integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== dependencies: - atob "^2.1.1" + atob "^2.1.2" decode-uri-component "^0.2.0" resolve-url "^0.2.1" source-map-url "^0.4.0" urix "^0.1.0" +source-map-support@0.5.9: + version "0.5.9" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f" + integrity sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + source-map-support@^0.5.6: - version "0.5.16" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" - integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" @@ -4151,30 +4165,30 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== spdx-correct@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" - integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== dependencies: spdx-expression-parse "^3.0.0" spdx-license-ids "^3.0.0" spdx-exceptions@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" - integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== spdx-expression-parse@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" - integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== dependencies: spdx-exceptions "^2.1.0" spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.5" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" - integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== + version "3.0.6" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz#c80757383c28abf7296744998cbc106ae8b854ce" + integrity sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw== split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" @@ -4199,9 +4213,11 @@ sshpk@^1.7.0: tweetnacl "~0.14.0" stack-utils@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8" - integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA== + version "1.0.3" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.3.tgz#db7a475733b5b8bf6521907b18891d29006f7751" + integrity sha512-WldO+YmqhEpjp23eHZRhOT1NQF51STsbxZ+/AdpFD+EhheFxAe5d0WoK4DQVJkSHacPrJJX3OqRAl9CgHf78pg== + dependencies: + escape-string-regexp "^2.0.0" static-extend@^0.1.1: version "0.1.2" @@ -4224,23 +4240,6 @@ string-length@^2.0.0: astral-regex "^1.0.0" strip-ansi "^4.0.0" -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -string-width@^2.0.0, string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - string-width@^3.0.0, string-width@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" @@ -4250,21 +4249,21 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string.prototype.trimleft@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74" - integrity sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag== +string.prototype.trimend@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz#a22bd53cca5c7cf44d7c9d5c732118873d6cd18b" + integrity sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - function-bind "^1.1.1" -string.prototype.trimright@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz#440314b15996c866ce8a0341894d45186200c5d9" - integrity sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g== +string.prototype.trimstart@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz#9b4cb590e123bb36564401d59824298de50fd5aa" + integrity sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - function-bind "^1.1.1" string_decoder@~1.1.1: version "1.1.1" @@ -4273,13 +4272,6 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - strip-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" @@ -4304,11 +4296,6 @@ strip-eof@^1.0.0: resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -4323,18 +4310,18 @@ supports-color@^6.1.0: dependencies: has-flag "^3.0.0" +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + symbol-tree@^3.2.2: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== -term-size@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" - integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= - dependencies: - execa "^0.7.0" - test-exclude@^5.2.2, test-exclude@^5.2.3: version "5.2.3" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" @@ -4350,11 +4337,6 @@ throat@^4.0.0: resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= -timed-out@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= - tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -4387,6 +4369,13 @@ to-regex-range@^2.1.0: is-number "^3.0.0" repeat-string "^1.6.1" +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + to-regex@^3.0.1, to-regex@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" @@ -4397,7 +4386,7 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" -tough-cookie@^2.3.3, tough-cookie@^2.3.4: +tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== @@ -4405,14 +4394,6 @@ tough-cookie@^2.3.3, tough-cookie@^2.3.4: psl "^1.1.28" punycode "^2.1.1" -tough-cookie@~2.4.3: - version "2.4.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" - integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== - dependencies: - psl "^1.1.24" - punycode "^1.4.1" - tr46@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" @@ -4420,6 +4401,18 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" +tslib@^1.8.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tsutils@2.27.2: + version "2.27.2" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.27.2.tgz#60ba88a23d6f785ec4b89c6e8179cac9b431f1c7" + integrity sha512-qf6rmT84TFMuxAKez2pIfR8UCai49iQsfB7YWVjV1bKpy/d0PWT5rEOSM6La9PiHZ0k1RRZQiwVdVJfQ3BPHgg== + dependencies: + tslib "^1.8.1" + tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" @@ -4439,13 +4432,10 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -uglify-js@^3.1.4: - version "3.7.2" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.7.2.tgz#cb1a601e67536e9ed094a92dd1e333459643d3f9" - integrity sha512-uhRwZcANNWVLrxLfNFEdltoPNhECUR3lc+UdJoG9CBpMcSnKyWA94tc3eAujB1GcMY5Uwq8ZMp4qWpxWYDQmaA== - dependencies: - commander "~2.20.3" - source-map "~0.6.1" +typescript@^3.8.3: + version "3.9.7" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa" + integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" @@ -4460,15 +4450,15 @@ unicode-match-property-ecmascript@^1.0.4: unicode-canonical-property-names-ecmascript "^1.0.4" unicode-property-aliases-ecmascript "^1.0.4" -unicode-match-property-value-ecmascript@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" - integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g== +unicode-match-property-value-ecmascript@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" + integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== unicode-property-aliases-ecmascript@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" - integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== + version "1.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" + integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== union-value@^1.0.0: version "1.0.1" @@ -4480,13 +4470,6 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^2.0.1" -unique-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" - integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= - dependencies: - crypto-random-string "^1.0.0" - universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -4500,36 +4483,15 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" -unzip-response@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" - integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= - upath@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== -update-notifier@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" - integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw== - dependencies: - boxen "^1.2.1" - chalk "^2.0.1" - configstore "^3.0.0" - import-lazy "^2.1.0" - is-ci "^1.0.10" - is-installed-globally "^0.1.0" - is-npm "^1.0.0" - latest-version "^3.0.0" - semver-diff "^2.0.0" - xdg-basedir "^3.0.0" - uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + version "4.4.0" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602" + integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g== dependencies: punycode "^2.1.0" @@ -4538,13 +4500,6 @@ urix@^0.1.0: resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= -url-parse-lax@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" - integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= - dependencies: - prepend-http "^1.0.1" - use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" @@ -4556,17 +4511,19 @@ util-deprecate@~1.0.1: integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= util.promisify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" - integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== + version "1.0.1" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" + integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== dependencies: - define-properties "^1.1.2" - object.getownpropertydescriptors "^2.0.3" + define-properties "^1.1.3" + es-abstract "^1.17.2" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.0" uuid@^3.3.2: - version "3.3.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" - integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== validate-npm-package-license@^3.0.1: version "3.0.4" @@ -4586,11 +4543,11 @@ verror@1.10.0: extsprintf "^1.2.0" w3c-hr-time@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" - integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU= + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== dependencies: - browser-process-hrtime "^0.1.2" + browser-process-hrtime "^1.0.0" walker@^1.0.7, walker@~1.0.5: version "1.0.7" @@ -4646,31 +4603,11 @@ which@^1.2.9, which@^1.3.0: dependencies: isexe "^2.0.0" -widest-line@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" - integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== - dependencies: - string-width "^2.1.1" - word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= - -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" @@ -4694,15 +4631,6 @@ write-file-atomic@2.4.1: imurmurhash "^0.1.4" signal-exit "^3.0.2" -write-file-atomic@^2.0.0: - version "2.4.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" - integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - ws@^5.2.0: version "5.2.2" resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" @@ -4710,64 +4638,28 @@ ws@^5.2.0: dependencies: async-limiter "~1.0.0" -xdg-basedir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" - integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= - xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== -"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: +y18n@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - -yargs-parser@^11.1.1: - version "11.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" - integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^13.1.1: - version "13.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" - integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== +yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" -yargs@^12.0.2: - version "12.0.5" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" - integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== - dependencies: - cliui "^4.0.0" - decamelize "^1.2.0" - find-up "^3.0.0" - get-caller-file "^1.0.1" - os-locale "^3.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1 || ^4.0.0" - yargs-parser "^11.1.1" - yargs@^13.3.0: - version "13.3.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" - integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== dependencies: cliui "^5.0.0" find-up "^3.0.0" @@ -4778,4 +4670,4 @@ yargs@^13.3.0: string-width "^3.0.0" which-module "^2.0.0" y18n "^4.0.0" - yargs-parser "^13.1.1" + yargs-parser "^13.1.2" diff --git a/examples/kotlin/BUILD.bazel b/examples/kotlin/BUILD.bazel index b7ef60ebf3..db45b11943 100644 --- a/examples/kotlin/BUILD.bazel +++ b/examples/kotlin/BUILD.bazel @@ -39,10 +39,10 @@ rollup_bundle( format = "cjs", output_dir = True, deps = [ + "@npm//@rollup/plugin-commonjs", + "@npm//@rollup/plugin-node-resolve", "@npm//kotlin", "@npm//kotlinx-html-js", - "@npm//rollup-plugin-commonjs", - "@npm//rollup-plugin-node-resolve", ], ) diff --git a/examples/kotlin/WORKSPACE b/examples/kotlin/WORKSPACE index 72e48847de..6882eb61df 100644 --- a/examples/kotlin/WORKSPACE +++ b/examples/kotlin/WORKSPACE @@ -7,8 +7,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_nodejs", - sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.1/rules_nodejs-2.0.1.tar.gz"], + sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"], ) # Install external npm dependencies diff --git a/examples/kotlin/package-lock.json b/examples/kotlin/package-lock.json index d1c844792a..50720e03ee 100644 --- a/examples/kotlin/package-lock.json +++ b/examples/kotlin/package-lock.json @@ -4,9 +4,9 @@ "lockfileVersion": 1, "dependencies": { "@bazel/jasmine": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@bazel/jasmine/-/jasmine-2.0.0.tgz", - "integrity": "sha512-9RLgNAy10PRkLLP0+8YJr1I8vsVE8rZIfz467/SxROZq7zmIx3lErX101t0KHLmukXT+GusrkXIlB/Vwa8DN9Q==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@bazel/jasmine/-/jasmine-2.3.1.tgz", + "integrity": "sha512-6QYTfJfbwPxCvKu4rOhG1YZUm94MbG4K2Dq1q2A2OUiM0eqAZG8T1HJAswDh7L286r5x9nRX8h7Pb7CyJvSmbg==", "dev": true, "requires": { "c8": "~7.1.0", @@ -14,15 +14,15 @@ } }, "@bazel/rollup": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@bazel/rollup/-/rollup-2.0.0.tgz", - "integrity": "sha512-mifUfCZbD1RIhfowh4N8E4881ag3FChz7F4z35wxMOP52g1q3+6Bvh5wv9iysFQopxGmS5jNEj3Dq/CWtSoOnw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@bazel/rollup/-/rollup-2.3.1.tgz", + "integrity": "sha512-KyMIYr8UV1MkwdW+2HUnwUNAddFhETM8OSaaOQK5I7hV4XKjBzc2EZstt4HRcNtsVF5Lnsi7Arb8xjbBdXTqvw==", "dev": true }, "@bazel/terser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@bazel/terser/-/terser-2.0.0.tgz", - "integrity": "sha512-6mBYcfzP6pWxycYZ8r4Lz5kgiWZ7n08bVHZBIRExFeqs7Yy92dD92LPeA9FZIzFiX00IuR9Q1Lqy23xH5q7FeQ==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@bazel/terser/-/terser-2.3.1.tgz", + "integrity": "sha512-G0I7niJyQzDFx+Z4WlA19g8SQuWpfMKbMHi+e94NHVYYpoUF0nRhLfysvNx5Kx5J6/N2gErmtwYsTQpRUI/vCQ==", "dev": true }, "@bcoe/v8-coverage": { @@ -37,11 +37,82 @@ "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", "dev": true }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true + "@rollup/plugin-commonjs": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-14.0.0.tgz", + "integrity": "sha512-+PSmD9ePwTAeU106i9FRdc+Zb3XUWyW26mo5Atr2mk82hor8+nPwkztEjFo8/B1fJKfaQDg9aM2bzQkjhi7zOw==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.0.8", + "commondir": "^1.0.1", + "estree-walker": "^1.0.1", + "glob": "^7.1.2", + "is-reference": "^1.1.2", + "magic-string": "^0.25.2", + "resolve": "^1.11.0" + }, + "dependencies": { + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + } + } + }, + "@rollup/plugin-node-resolve": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz", + "integrity": "sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deep-freeze": "^0.0.1", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.17.0" + }, + "dependencies": { + "@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + } + } + }, + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "dependencies": { + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + } + } }, "@types/estree": { "version": "0.0.39", @@ -62,24 +133,9 @@ "dev": true }, "@types/node": { - "version": "12.7.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.8.tgz", - "integrity": "sha512-FMdVn84tJJdV+xe+53sYiZS4R5yn1mAIxfj+DVoNiQjTYz1+OYmjwEZr1ev9nU0axXwda0QDbYl06QHanRVH3A==", - "dev": true - }, - "@types/resolve": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", - "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "acorn": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz", - "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==", + "version": "14.0.26", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.26.tgz", + "integrity": "sha512-W+fpe5s91FBGE0pEa0lnqGLL4USgpLgs4nokw16SrBBco/gQxuua7KnArSEOd5iaMqbbSHV10vUDkJYJJqpXKA==", "dev": true }, "ansi-regex": { @@ -89,12 +145,11 @@ "dev": true }, "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, @@ -197,6 +252,12 @@ "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", "dev": true }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -244,6 +305,18 @@ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, + "deep-freeze": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz", + "integrity": "sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ=", + "dev": true + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, "domino": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/domino/-/domino-2.1.3.tgz", @@ -276,12 +349,6 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - }, "eventemitter3": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz", @@ -323,6 +390,13 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + }, "furi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/furi/-/furi-2.0.0.tgz", @@ -648,6 +722,12 @@ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", "dev": true }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true + }, "portfinder": { "version": "1.0.24", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.24.tgz", @@ -719,49 +799,12 @@ } }, "rollup": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.20.3.tgz", - "integrity": "sha512-/OMCkY0c6E8tleeVm4vQVDz24CkVgvueK3r8zTYu2AQNpjrcaPwO9hE+pWj5LTFrvvkaxt4MYIp2zha4y0lRvg==", - "dev": true, - "requires": { - "@types/estree": "0.0.39", - "@types/node": "^12.7.2", - "acorn": "^7.0.0" - } - }, - "rollup-plugin-commonjs": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-10.1.0.tgz", - "integrity": "sha512-jlXbjZSQg8EIeAAvepNwhJj++qJWNJw1Cl0YnOqKtP5Djx+fFGkp3WRh+W0ASCaFG5w1jhmzDxgu3SJuVxPF4Q==", - "dev": true, - "requires": { - "estree-walker": "^0.6.1", - "is-reference": "^1.1.2", - "magic-string": "^0.25.2", - "resolve": "^1.11.0", - "rollup-pluginutils": "^2.8.1" - } - }, - "rollup-plugin-node-resolve": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-5.2.0.tgz", - "integrity": "sha512-jUlyaDXts7TW2CqQ4GaO5VJ4PwwaV8VUGA7+km3n6k6xtOEacf61u0VXwN80phY/evMcaS+9eIeJ9MOyDxt5Zw==", - "dev": true, - "requires": { - "@types/resolve": "0.0.8", - "builtin-modules": "^3.1.0", - "is-module": "^1.0.0", - "resolve": "^1.11.1", - "rollup-pluginutils": "^2.8.1" - } - }, - "rollup-pluginutils": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", - "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.3.4.tgz", + "integrity": "sha512-8U9x54RCVhrUEV1zon4Pp8kokg1HM0fwzf5vkwe2/rOfyTClarx5e27kFlaoZ7ofJiazWkNQ+dgdG4HuZxkQ9A==", "dev": true, "requires": { - "estree-walker": "^0.6.1" + "fsevents": "~2.1.2" } }, "safe-buffer": { @@ -846,9 +889,9 @@ } }, "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" diff --git a/examples/kotlin/package.json b/examples/kotlin/package.json index c9c7fac4f2..f7cac39829 100644 --- a/examples/kotlin/package.json +++ b/examples/kotlin/package.json @@ -2,17 +2,17 @@ "name": "kotlin_example", "private": true, "devDependencies": { - "@bazel/jasmine": "^2.0.0", - "@bazel/rollup": "^2.0.0", - "@bazel/terser": "^2.0.0", + "@bazel/jasmine": "^2.3.1", + "@bazel/rollup": "^2.3.1", + "@bazel/terser": "^2.3.1", + "@rollup/plugin-commonjs": "14.0.0", + "@rollup/plugin-node-resolve": "8.4.0", "domino": "^2.1.3", "http-server": "^0.11.1", "jasmine": "^3.5.0", "kotlin": "^1.3.41", "kotlinx-html-js": "^0.6.4", - "rollup": "1.20.3", - "rollup-plugin-commonjs": "10.1.0", - "rollup-plugin-node-resolve": "5.2.0", + "rollup": "2.3.4", "terser": "4.3.1" }, "scripts": { diff --git a/examples/kotlin/rollup.config.js b/examples/kotlin/rollup.config.js index 6f6d3727c5..e97bbe39d5 100644 --- a/examples/kotlin/rollup.config.js +++ b/examples/kotlin/rollup.config.js @@ -1,9 +1,9 @@ -const node = require('rollup-plugin-node-resolve'); -const commonjs = require('rollup-plugin-commonjs'); +const {nodeResolve} = require('@rollup/plugin-node-resolve'); +const commonjs = require('@rollup/plugin-commonjs'); module.exports = { plugins: [ - node({ + nodeResolve({ mainFields: ['browser', 'es2015', 'module', 'jsnext:main', 'main'], }), commonjs(), diff --git a/examples/nestjs/WORKSPACE b/examples/nestjs/WORKSPACE index 9670d269b6..48ef3fbd56 100644 --- a/examples/nestjs/WORKSPACE +++ b/examples/nestjs/WORKSPACE @@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_nodejs", - sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.1/rules_nodejs-2.0.1.tar.gz"], + sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"], ) load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") @@ -35,9 +35,9 @@ yarn_install( http_archive( name = "io_bazel_rules_docker", - sha256 = "6287241e033d247e9da5ff705dd6ef526bac39ae82f3d17de1b69f8cb313f9cd", - strip_prefix = "rules_docker-0.14.3", - urls = ["https://github.com/bazelbuild/rules_docker/releases/download/v0.14.3/rules_docker-v0.14.3.tar.gz"], + sha256 = "4521794f0fba2e20f3bf15846ab5e01d5332e587e9ce81629c7f96c793bb7036", + strip_prefix = "rules_docker-0.14.4", + urls = ["https://github.com/bazelbuild/rules_docker/releases/download/v0.14.4/rules_docker-v0.14.4.tar.gz"], ) load( @@ -47,6 +47,14 @@ load( container_repositories() +load("@io_bazel_rules_docker//repositories:deps.bzl", container_deps = "deps") + +container_deps() + +load("@io_bazel_rules_docker//repositories:pip_repositories.bzl", "pip_deps") + +pip_deps() + load( "@io_bazel_rules_docker//nodejs:image.bzl", nodejs_image_repositories = "repositories", diff --git a/examples/nestjs/package.json b/examples/nestjs/package.json index d6e327a333..3e26e2bc36 100644 --- a/examples/nestjs/package.json +++ b/examples/nestjs/package.json @@ -1,9 +1,9 @@ { "private": true, "dependencies": { - "@bazel/bazelisk": "^1.5.0", - "@bazel/ibazel": "^0.13.1", - "@bazel/jasmine": "^2.0.0", + "@bazel/bazelisk": "^1.7.2", + "@bazel/ibazel": "^0.14.0", + "@bazel/jasmine": "^2.3.1", "@nestjs/common": "6.5.2", "@nestjs/core": "6.5.2", "@nestjs/platform-express": "6.5.2", @@ -17,7 +17,7 @@ "supertest": "^4.0.2" }, "devDependencies": { - "@bazel/typescript": "^2.0.0", + "@bazel/typescript": "^2.3.1", "@types/node": "12.6.3", "typescript": "3.5.3" }, diff --git a/examples/nestjs/src/BUILD.bazel b/examples/nestjs/src/BUILD.bazel index 1f385e725a..28e27272a8 100644 --- a/examples/nestjs/src/BUILD.bazel +++ b/examples/nestjs/src/BUILD.bazel @@ -25,6 +25,7 @@ ts_library( ["*.ts"], exclude = ["*.spec.ts"], ), + module_name = "examples_nestjs", deps = [ "@npm//@nestjs/common", "@npm//@nestjs/core", @@ -59,7 +60,7 @@ nodejs_binary( "@npm//@nestjs/core", "@npm//minimist", ], - entry_point = ":main", + entry_point = ":main.ts", templated_args = ["--nobazel_patch_module_resolver"], ) diff --git a/examples/nestjs/yarn.lock b/examples/nestjs/yarn.lock index f35a1baefa..0ba9d1d0dc 100644 --- a/examples/nestjs/yarn.lock +++ b/examples/nestjs/yarn.lock @@ -2,28 +2,28 @@ # yarn lockfile v1 -"@bazel/bazelisk@^1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@bazel/bazelisk/-/bazelisk-1.5.0.tgz#61f583ed93be138b47be7180403938ea4057f54b" - integrity sha512-qhOGN1WmfZYNJXGrRL/0byii9hX5FBomMv3WWI2OEL2+Bxm4t/bR3zMxN3xwQX1C8meSSrAfKGSzxVOZfpJsOg== +"@bazel/bazelisk@^1.7.2": + version "1.7.2" + resolved "https://registry.yarnpkg.com/@bazel/bazelisk/-/bazelisk-1.7.2.tgz#80673d886ac46bf671f6b1908bf80a4eb84eb200" + integrity sha512-/cin20XIfSctNVh6veOVKFwUp6g6/oeEEvgPLSetgK6HFspReI3jI+2lO4haQX8yD2QFN20ndheXDuLYidoj6g== -"@bazel/ibazel@^0.13.1": - version "0.13.1" - resolved "https://registry.yarnpkg.com/@bazel/ibazel/-/ibazel-0.13.1.tgz#23788f67a6fbe83d96f2d055691df4917c10ac8d" - integrity sha512-FO1hBKpzpeBL0adnFYF2Dwl/7gox6ccKM6bb+x26AXrQpLbinXPuTi4zeXRL/MW4383mF6i4RovLCmwUU/YW0w== +"@bazel/ibazel@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@bazel/ibazel/-/ibazel-0.14.0.tgz#86fa0002bed2ce1123b7ad98d4dd4623a0d93244" + integrity sha512-s0gyec6lArcRDwVfIP6xpY8iEaFpzrSpyErSppd3r2O49pOEg7n6HGS/qJ8ncvme56vrDk6crl/kQ6VAdEO+rg== -"@bazel/jasmine@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-2.0.0.tgz#e466ba8eb386eb777f8c4e502b8760ee3d173d1d" - integrity sha512-9RLgNAy10PRkLLP0+8YJr1I8vsVE8rZIfz467/SxROZq7zmIx3lErX101t0KHLmukXT+GusrkXIlB/Vwa8DN9Q== +"@bazel/jasmine@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-2.3.1.tgz#e4df8dd2b8d906e41e4073b5c49c700a962fe853" + integrity sha512-6QYTfJfbwPxCvKu4rOhG1YZUm94MbG4K2Dq1q2A2OUiM0eqAZG8T1HJAswDh7L286r5x9nRX8h7Pb7CyJvSmbg== dependencies: c8 "~7.1.0" jasmine-reporters "~2.3.2" -"@bazel/typescript@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-2.0.0.tgz#2ff5615f09c733cc681ba2ada92b11c356b694cd" - integrity sha512-5FPkxULWIjAKLG5J1XvpXpY1/4IK39dAoWA/Hhg+16gXTES32fT8w42k96pb6BTaNnyBuYgIHBpELEAJ40OOAQ== +"@bazel/typescript@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-2.3.1.tgz#f103c4a5230cabaffd8d574b7278265b5478f056" + integrity sha512-blgLpx+9Vh8DZWTVOYTWSk1HEU28FF+GwU1stFaemfY7/pUQfK/URb9FARRkw/v2UrPKCd9EBywFYQyPGSAb1A== dependencies: protobufjs "6.8.8" semver "5.6.0" diff --git a/examples/parcel/WORKSPACE b/examples/parcel/WORKSPACE index 2206ce074a..f74591f311 100644 --- a/examples/parcel/WORKSPACE +++ b/examples/parcel/WORKSPACE @@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_nodejs", - sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.1/rules_nodejs-2.0.1.tar.gz"], + sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"], ) load("@build_bazel_rules_nodejs//:index.bzl", "npm_install") diff --git a/examples/protocol_buffers/BUILD.bazel b/examples/protocol_buffers/BUILD.bazel index 86470b8771..3753ca574e 100644 --- a/examples/protocol_buffers/BUILD.bazel +++ b/examples/protocol_buffers/BUILD.bazel @@ -88,8 +88,8 @@ rollup_bundle( deps = [ ":app", "@npm//:node_modules", - "@npm//rollup-plugin-commonjs", - "@npm//rollup-plugin-node-resolve", + "@npm//@rollup/plugin-commonjs", + "@npm//@rollup/plugin-node-resolve", ], ) diff --git a/examples/protocol_buffers/WORKSPACE b/examples/protocol_buffers/WORKSPACE index dfea5012d4..cba5887def 100644 --- a/examples/protocol_buffers/WORKSPACE +++ b/examples/protocol_buffers/WORKSPACE @@ -21,15 +21,15 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_nodejs", - sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.1/rules_nodejs-2.0.1.tar.gz"], + sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"], ) http_archive( name = "com_google_protobuf", - sha256 = "71030a04aedf9f612d2991c1c552317038c3c5a2b578ac4745267a45e7037c29", - strip_prefix = "protobuf-3.12.3", - urls = ["https://github.com/protocolbuffers/protobuf/archive/v3.12.3.tar.gz"], + sha256 = "d0f5f605d0d656007ce6c8b5a82df3037e1d8fe8b121ed42e536f569dec16113", + strip_prefix = "protobuf-3.14.0", + urls = ["https://github.com/protocolbuffers/protobuf/archive/v3.14.0.tar.gz"], ) http_archive( diff --git a/examples/protocol_buffers/package.json b/examples/protocol_buffers/package.json index b71604ad12..32065b3f88 100644 --- a/examples/protocol_buffers/package.json +++ b/examples/protocol_buffers/package.json @@ -1,11 +1,13 @@ { "devDependencies": { - "@bazel/karma": "^2.0.0", - "@bazel/labs": "^2.0.0", - "@bazel/protractor": "^2.0.0", - "@bazel/rollup": "^2.0.0", - "@bazel/terser": "^2.0.0", - "@bazel/typescript": "^2.0.0", + "@bazel/karma": "^2.3.1", + "@bazel/labs": "^2.3.1", + "@bazel/protractor": "^2.3.1", + "@bazel/rollup": "^2.3.1", + "@bazel/terser": "^2.3.1", + "@bazel/typescript": "^2.3.1", + "@rollup/plugin-commonjs": "14.0.0", + "@rollup/plugin-node-resolve": "8.4.0", "@types/jasmine": "2.8.2", "@types/long": "^4.0.0", "@types/node": "11.11.1", @@ -22,9 +24,7 @@ "protobufjs": "5.0.3", "protractor": "^5.4.2", "requirejs": "2.3.6", - "rollup": "1.20.3", - "rollup-plugin-commonjs": "10.1.0", - "rollup-plugin-node-resolve": "5.2.0", + "rollup": "2.3.4", "terser": "4.3.1", "typescript": "^3.3.1" }, diff --git a/examples/protocol_buffers/rollup.config.js b/examples/protocol_buffers/rollup.config.js index acd72720ea..02201d44c4 100644 --- a/examples/protocol_buffers/rollup.config.js +++ b/examples/protocol_buffers/rollup.config.js @@ -1,9 +1,9 @@ -const commonjs = require('rollup-plugin-commonjs'); -const nodeRequire = require('rollup-plugin-node-resolve'); +const commonjs = require('@rollup/plugin-commonjs'); +const {nodeResolve} = require('@rollup/plugin-node-resolve'); module.exports = { plugins: [ - nodeRequire(), + nodeResolve(), commonjs(), ], }; \ No newline at end of file diff --git a/examples/protocol_buffers/yarn.lock b/examples/protocol_buffers/yarn.lock index fad1885275..2ef3357722 100644 --- a/examples/protocol_buffers/yarn.lock +++ b/examples/protocol_buffers/yarn.lock @@ -2,37 +2,35 @@ # yarn lockfile v1 -"@bazel/karma@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/karma/-/karma-2.0.0.tgz#a386ba334716e6d94c667c9b40423955a727c896" - integrity sha512-VR/qzsH9/G1eJ0xqicoT7ea6FdiQGW0gd6FzPNecJnqm7OQjhKn7htRWvTONTNXoWl4qCIHTtW+RJ9piH1zU3Q== - dependencies: - tmp "0.1.0" - -"@bazel/labs@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/labs/-/labs-2.0.0.tgz#e03d0967be6eb21e3b70f64dc14e5cb78b7c2e9f" - integrity sha512-gyP/vRDzuiZIxlXS1yMZ3yfGSG8BqF8XwMQLZi94nXRGY0zEISnrf0Ztf2yVPA8LWyvU5NugS1QRi1AF6xZqqA== - -"@bazel/protractor@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-2.0.0.tgz#1b67a2f61c7124a25ae4322b585f91a26592458b" - integrity sha512-mr+Jkg/Ta5cp1FQevbV9DqXidDmScX3vy82HjAIew1Y1aQMT9SJ5RVopSSQFe/pIx/zodpAiW1D6lynPiwS1Cw== - -"@bazel/rollup@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-2.0.0.tgz#1980cb3f6922227659260bfdca99c457889a5bc1" - integrity sha512-mifUfCZbD1RIhfowh4N8E4881ag3FChz7F4z35wxMOP52g1q3+6Bvh5wv9iysFQopxGmS5jNEj3Dq/CWtSoOnw== - -"@bazel/terser@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-2.0.0.tgz#a841db8aefd7c51c216b34a26bc02a6c93d5e56a" - integrity sha512-6mBYcfzP6pWxycYZ8r4Lz5kgiWZ7n08bVHZBIRExFeqs7Yy92dD92LPeA9FZIzFiX00IuR9Q1Lqy23xH5q7FeQ== - -"@bazel/typescript@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-2.0.0.tgz#2ff5615f09c733cc681ba2ada92b11c356b694cd" - integrity sha512-5FPkxULWIjAKLG5J1XvpXpY1/4IK39dAoWA/Hhg+16gXTES32fT8w42k96pb6BTaNnyBuYgIHBpELEAJ40OOAQ== +"@bazel/karma@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/karma/-/karma-2.3.1.tgz#9a52128cefc4e061fc4e934c4918d7a3e17b1007" + integrity sha512-4w1aS3qaKY8eekyDujAFD7xsM+z0rCsEofs8QliEmZaF+RCKw+QsxWEMrxIXkdoftcQS+MBatAoSDhHbl47VpQ== + +"@bazel/labs@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/labs/-/labs-2.3.1.tgz#ac3750398d64912f4a886951fb471db6dc39a630" + integrity sha512-AZvy+YsCP5sUDMvfB5ksuTyvZ8Xw5/1TMYruTvH0pS6fmCWfoANc9Z1j6FB9ijRZwLjgGR0hjipabHnLP8eqUA== + +"@bazel/protractor@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-2.3.1.tgz#470c280841f5ec91b0a80d2ffb692841a125e240" + integrity sha512-1MF3JlGE6HyYzPFXJBFnv5eEOuTuXhsJT70g66+lMgPZ9g0uUPh6CPu/iUkT6/92sw+pHGUsaptxwNu89Z7Dag== + +"@bazel/rollup@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-2.3.1.tgz#30265ac682149e82f3a4a0cfda216f3d860e7373" + integrity sha512-KyMIYr8UV1MkwdW+2HUnwUNAddFhETM8OSaaOQK5I7hV4XKjBzc2EZstt4HRcNtsVF5Lnsi7Arb8xjbBdXTqvw== + +"@bazel/terser@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-2.3.1.tgz#c1aa0e88988d913be61d601e581a60c3bf771e06" + integrity sha512-G0I7niJyQzDFx+Z4WlA19g8SQuWpfMKbMHi+e94NHVYYpoUF0nRhLfysvNx5Kx5J6/N2gErmtwYsTQpRUI/vCQ== + +"@bazel/typescript@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-2.3.1.tgz#f103c4a5230cabaffd8d574b7278265b5478f056" + integrity sha512-blgLpx+9Vh8DZWTVOYTWSk1HEU28FF+GwU1stFaemfY7/pUQfK/URb9FARRkw/v2UrPKCd9EBywFYQyPGSAb1A== dependencies: protobufjs "6.8.8" semver "5.6.0" @@ -92,6 +90,41 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= +"@rollup/plugin-commonjs@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-14.0.0.tgz#4285f9ec2db686a31129e5a2b415c94aa1f836f0" + integrity sha512-+PSmD9ePwTAeU106i9FRdc+Zb3XUWyW26mo5Atr2mk82hor8+nPwkztEjFo8/B1fJKfaQDg9aM2bzQkjhi7zOw== + dependencies: + "@rollup/pluginutils" "^3.0.8" + commondir "^1.0.1" + estree-walker "^1.0.1" + glob "^7.1.2" + is-reference "^1.1.2" + magic-string "^0.25.2" + resolve "^1.11.0" + +"@rollup/plugin-node-resolve@8.4.0": + version "8.4.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz#261d79a680e9dc3d86761c14462f24126ba83575" + integrity sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ== + dependencies: + "@rollup/pluginutils" "^3.1.0" + "@types/resolve" "1.17.1" + builtin-modules "^3.1.0" + deep-freeze "^0.0.1" + deepmerge "^4.2.2" + is-module "^1.0.0" + resolve "^1.17.0" + +"@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" + integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== + dependencies: + "@types/estree" "0.0.39" + estree-walker "^1.0.1" + picomatch "^2.2.2" + "@types/estree@0.0.39": version "0.0.39" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" @@ -122,20 +155,15 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.21.tgz#4a9db7ef1d1671c0015e632c5fa3d46c86c58c1e" integrity sha512-nuFlRdBiqbF+PJIEVxm2jLFcQWN7q7iWEJGsBV4n7v1dbI9qXB8im2pMMKMCUZe092sQb5SQft2DHfuQGK5hqQ== -"@types/node@^12.7.2": - version "12.7.8" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.8.tgz#cb1bf6800238898bc2ff6ffa5702c3cadd350708" - integrity sha512-FMdVn84tJJdV+xe+53sYiZS4R5yn1mAIxfj+DVoNiQjTYz1+OYmjwEZr1ev9nU0axXwda0QDbYl06QHanRVH3A== - "@types/q@^0.0.32": version "0.0.32" resolved "https://registry.yarnpkg.com/@types/q/-/q-0.0.32.tgz#bd284e57c84f1325da702babfc82a5328190c0c5" integrity sha1-vShOV8hPEyXacCur/IKlMoGQwMU= -"@types/resolve@0.0.8": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194" - integrity sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ== +"@types/resolve@1.17.1": + version "1.17.1" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" + integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== dependencies: "@types/node" "*" @@ -157,11 +185,6 @@ accepts@~1.3.4: mime-types "~2.1.24" negotiator "0.6.2" -acorn@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c" - integrity sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ== - adm-zip@^0.4.9: version "0.4.13" resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.13.tgz#597e2f8cc3672151e1307d3e95cddbc75672314a" @@ -614,6 +637,11 @@ commander@^2.20.0: resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + component-bind@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" @@ -708,7 +736,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3: dependencies: ms "2.0.0" -debug@^3.0.0, debug@^3.1.0, debug@^3.2.6: +debug@^3.1.0, debug@^3.2.6: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== @@ -744,6 +772,16 @@ deep-extend@^0.6.0: resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== +deep-freeze@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84" + integrity sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ= + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -941,15 +979,15 @@ escape-string-regexp@^1.0.2: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= -estree-walker@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" - integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== +estree-walker@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" + integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== eventemitter3@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb" - integrity sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg== + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== exit@^0.1.2: version "0.1.2" @@ -1052,11 +1090,9 @@ flatted@^2.0.0: integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== follow-redirects@^1.0.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.9.0.tgz#8d5bcdc65b7108fe1508649c79c12d732dcedb4f" - integrity sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A== - dependencies: - debug "^3.0.0" + version "1.13.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.0.tgz#b42e8d93a2a7eea5ed88633676d6597bc8e384db" + integrity sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA== for-in@^1.0.2: version "1.0.2" @@ -1120,6 +1156,11 @@ fsevents@^1.2.7: nan "^2.12.1" node-pre-gyp "^0.12.0" +fsevents@~2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== + function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -1171,6 +1212,18 @@ glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1, glob@^7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^7.1.2: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + globby@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" @@ -1295,9 +1348,9 @@ http-errors@1.7.2: toidentifier "1.0.0" http-proxy@^1.13.0, http-proxy@^1.8.1: - version "1.18.0" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.0.tgz#dbe55f63e75a347db7f3d99974f2692a314a6a3a" - integrity sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ== + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== dependencies: eventemitter3 "^4.0.0" follow-redirects "^1.0.0" @@ -2212,6 +2265,11 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= +picomatch@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -2459,13 +2517,20 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.11.0, resolve@^1.11.1: +resolve@^1.11.0: version "1.15.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== dependencies: path-parse "^1.0.6" +resolve@^1.17.0: + version "1.17.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== + dependencies: + path-parse "^1.0.6" + ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" @@ -2476,50 +2541,19 @@ rfdc@^1.1.4: resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.1.4.tgz#ba72cc1367a0ccd9cf81a870b3b58bd3ad07f8c2" integrity sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug== -rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1, rimraf@^2.6.3: +rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" -rollup-plugin-commonjs@10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-commonjs/-/rollup-plugin-commonjs-10.1.0.tgz#417af3b54503878e084d127adf4d1caf8beb86fb" - integrity sha512-jlXbjZSQg8EIeAAvepNwhJj++qJWNJw1Cl0YnOqKtP5Djx+fFGkp3WRh+W0ASCaFG5w1jhmzDxgu3SJuVxPF4Q== - dependencies: - estree-walker "^0.6.1" - is-reference "^1.1.2" - magic-string "^0.25.2" - resolve "^1.11.0" - rollup-pluginutils "^2.8.1" - -rollup-plugin-node-resolve@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-5.2.0.tgz#730f93d10ed202473b1fb54a5997a7db8c6d8523" - integrity sha512-jUlyaDXts7TW2CqQ4GaO5VJ4PwwaV8VUGA7+km3n6k6xtOEacf61u0VXwN80phY/evMcaS+9eIeJ9MOyDxt5Zw== - dependencies: - "@types/resolve" "0.0.8" - builtin-modules "^3.1.0" - is-module "^1.0.0" - resolve "^1.11.1" - rollup-pluginutils "^2.8.1" - -rollup-pluginutils@^2.8.1: - version "2.8.2" - resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" - integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== - dependencies: - estree-walker "^0.6.1" - -rollup@1.20.3: - version "1.20.3" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.20.3.tgz#6243f6c118ca05f56b2d9433112400cd834a1eb8" - integrity sha512-/OMCkY0c6E8tleeVm4vQVDz24CkVgvueK3r8zTYu2AQNpjrcaPwO9hE+pWj5LTFrvvkaxt4MYIp2zha4y0lRvg== - dependencies: - "@types/estree" "0.0.39" - "@types/node" "^12.7.2" - acorn "^7.0.0" +rollup@2.3.4: + version "2.3.4" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.3.4.tgz#979e461f8cab1a71aec2d37ce2a434052ae70223" + integrity sha512-8U9x54RCVhrUEV1zon4Pp8kokg1HM0fwzf5vkwe2/rOfyTClarx5e27kFlaoZ7ofJiazWkNQ+dgdG4HuZxkQ9A== + optionalDependencies: + fsevents "~2.1.2" safe-buffer@^5.0.1, safe-buffer@^5.1.2: version "5.2.0" @@ -2881,13 +2915,6 @@ tmp@0.0.33, tmp@0.0.x: dependencies: os-tmpdir "~1.0.2" -tmp@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" - integrity sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw== - dependencies: - rimraf "^2.6.3" - to-array@0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" diff --git a/examples/react_webpack/BUILD.bazel b/examples/react_webpack/BUILD.bazel index b65b59ceda..25fcecc6d7 100644 --- a/examples/react_webpack/BUILD.bazel +++ b/examples/react_webpack/BUILD.bazel @@ -14,6 +14,8 @@ sass( ) ts_project( + # Experimental: Start a tsc daemon to watch for changes to make recompiles faster. + supports_workers = True, deps = [ "@npm//@types", "@npm//csstype", diff --git a/examples/react_webpack/WORKSPACE b/examples/react_webpack/WORKSPACE index 8867148902..5541de689c 100644 --- a/examples/react_webpack/WORKSPACE +++ b/examples/react_webpack/WORKSPACE @@ -7,8 +7,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_nodejs", - sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.1/rules_nodejs-2.0.1.tar.gz"], + sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"], ) load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/examples/react_webpack/package.json b/examples/react_webpack/package.json index b0957e0b45..1e8d8fac5f 100644 --- a/examples/react_webpack/package.json +++ b/examples/react_webpack/package.json @@ -1,10 +1,10 @@ { "private": true, "devDependencies": { - "@bazel/bazelisk": "^1.5.0", - "@bazel/buildifier": "^3.4.0", - "@bazel/ibazel": "^0.13.1", - "@bazel/typescript": "^2.0.0", + "@bazel/bazelisk": "^1.7.2", + "@bazel/buildifier": "^3.5.0", + "@bazel/ibazel": "^0.14.0", + "@bazel/typescript": "^2.3.1", "@types/react": "^16.9.5", "@types/react-dom": "^16.9.1", "css-loader": "^3.2.0", diff --git a/examples/react_webpack/tsconfig.json b/examples/react_webpack/tsconfig.json index 0ece51d45f..7ea5cf1299 100644 --- a/examples/react_webpack/tsconfig.json +++ b/examples/react_webpack/tsconfig.json @@ -1,6 +1,15 @@ { "compilerOptions": { "jsx": "react", - "lib": ["ES2015", "DOM"] - } -} \ No newline at end of file + "lib": [ + "ES2015", + "DOM" + ] + }, + // When using ts_project in worker mode, we run outside the Bazel sandbox (unless using --worker_sandboxing). + // We list the files that should be part of this particular compilation to avoid TypeScript discovering others. + "include": [ + "*.tsx", + "*.ts" + ] +} diff --git a/examples/react_webpack/yarn.lock b/examples/react_webpack/yarn.lock index 0afef6ceca..41aa5e9904 100644 --- a/examples/react_webpack/yarn.lock +++ b/examples/react_webpack/yarn.lock @@ -2,25 +2,25 @@ # yarn lockfile v1 -"@bazel/bazelisk@^1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@bazel/bazelisk/-/bazelisk-1.5.0.tgz#61f583ed93be138b47be7180403938ea4057f54b" - integrity sha512-qhOGN1WmfZYNJXGrRL/0byii9hX5FBomMv3WWI2OEL2+Bxm4t/bR3zMxN3xwQX1C8meSSrAfKGSzxVOZfpJsOg== - -"@bazel/buildifier@^3.4.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@bazel/buildifier/-/buildifier-3.4.0.tgz#44ce98b33bf8057f5398a78f7d1c564760b43f6c" - integrity sha512-TdugkgxAIxSyXSBZcLlntQKJ/rGV3LSMjlYuvRr3YtQBn/2sIfpHX0dcNZ7zdCPkev9cK0kpEs42MkmKHY9peQ== - -"@bazel/ibazel@^0.13.1": - version "0.13.1" - resolved "https://registry.yarnpkg.com/@bazel/ibazel/-/ibazel-0.13.1.tgz#23788f67a6fbe83d96f2d055691df4917c10ac8d" - integrity sha512-FO1hBKpzpeBL0adnFYF2Dwl/7gox6ccKM6bb+x26AXrQpLbinXPuTi4zeXRL/MW4383mF6i4RovLCmwUU/YW0w== +"@bazel/bazelisk@^1.7.2": + version "1.7.2" + resolved "https://registry.yarnpkg.com/@bazel/bazelisk/-/bazelisk-1.7.2.tgz#80673d886ac46bf671f6b1908bf80a4eb84eb200" + integrity sha512-/cin20XIfSctNVh6veOVKFwUp6g6/oeEEvgPLSetgK6HFspReI3jI+2lO4haQX8yD2QFN20ndheXDuLYidoj6g== -"@bazel/typescript@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-2.0.0.tgz#2ff5615f09c733cc681ba2ada92b11c356b694cd" - integrity sha512-5FPkxULWIjAKLG5J1XvpXpY1/4IK39dAoWA/Hhg+16gXTES32fT8w42k96pb6BTaNnyBuYgIHBpELEAJ40OOAQ== +"@bazel/buildifier@^3.5.0": + version "3.5.0" + resolved "https://registry.yarnpkg.com/@bazel/buildifier/-/buildifier-3.5.0.tgz#afbee61d61543d0a0a28e2b29a5cbdb64c852953" + integrity sha512-cbUS0/GMg57g6NIg6JekgmqVtuobYzW4aGHk7KzMS/bFZvxg6WY19JJ5UZSzGyAGDu2152oUTFbh4WN74Fz1+Q== + +"@bazel/ibazel@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@bazel/ibazel/-/ibazel-0.14.0.tgz#86fa0002bed2ce1123b7ad98d4dd4623a0d93244" + integrity sha512-s0gyec6lArcRDwVfIP6xpY8iEaFpzrSpyErSppd3r2O49pOEg7n6HGS/qJ8ncvme56vrDk6crl/kQ6VAdEO+rg== + +"@bazel/typescript@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-2.3.1.tgz#f103c4a5230cabaffd8d574b7278265b5478f056" + integrity sha512-blgLpx+9Vh8DZWTVOYTWSk1HEU28FF+GwU1stFaemfY7/pUQfK/URb9FARRkw/v2UrPKCd9EBywFYQyPGSAb1A== dependencies: protobufjs "6.8.8" semver "5.6.0" diff --git a/examples/vendored_node/WORKSPACE b/examples/vendored_node/WORKSPACE index 2e2ec98a97..cb087be16d 100644 --- a/examples/vendored_node/WORKSPACE +++ b/examples/vendored_node/WORKSPACE @@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_nodejs", - sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.1/rules_nodejs-2.0.1.tar.gz"], + sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"], ) http_archive( diff --git a/examples/vendored_node/package-lock.json b/examples/vendored_node/package-lock.json index 8573863141..85756fd822 100644 --- a/examples/vendored_node/package-lock.json +++ b/examples/vendored_node/package-lock.json @@ -3,9 +3,9 @@ "lockfileVersion": 1, "dependencies": { "@bazel/jasmine": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@bazel/jasmine/-/jasmine-2.0.0.tgz", - "integrity": "sha512-9RLgNAy10PRkLLP0+8YJr1I8vsVE8rZIfz467/SxROZq7zmIx3lErX101t0KHLmukXT+GusrkXIlB/Vwa8DN9Q==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@bazel/jasmine/-/jasmine-2.3.1.tgz", + "integrity": "sha512-6QYTfJfbwPxCvKu4rOhG1YZUm94MbG4K2Dq1q2A2OUiM0eqAZG8T1HJAswDh7L286r5x9nRX8h7Pb7CyJvSmbg==", "dev": true, "requires": { "c8": "~7.1.0", @@ -24,12 +24,6 @@ "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", "dev": true }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true - }, "@types/is-windows": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@types/is-windows/-/is-windows-1.0.0.tgz", @@ -49,12 +43,11 @@ "dev": true }, "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, @@ -500,9 +493,9 @@ } }, "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" diff --git a/examples/vendored_node/package.json b/examples/vendored_node/package.json index ab1403c486..f3d58456e1 100644 --- a/examples/vendored_node/package.json +++ b/examples/vendored_node/package.json @@ -1,7 +1,7 @@ { "private": true, "devDependencies": { - "@bazel/jasmine": "^2.0.0", + "@bazel/jasmine": "^2.3.1", "jasmine": "^3.5.0" }, "scripts": { diff --git a/examples/vendored_node_and_yarn/.bazelrc b/examples/vendored_node_and_yarn/.bazelrc index 3431057af6..11da49bc73 100644 --- a/examples/vendored_node_and_yarn/.bazelrc +++ b/examples/vendored_node_and_yarn/.bazelrc @@ -1 +1,5 @@ import %workspace%/../../common.bazelrc + +# ensure that the globs that are used in node_repositories are removed when +# using vendored node or yarn +build --incompatible_disallow_empty_glob diff --git a/examples/vendored_node_and_yarn/WORKSPACE b/examples/vendored_node_and_yarn/WORKSPACE index fce18a7b2e..36f88a9fff 100644 --- a/examples/vendored_node_and_yarn/WORKSPACE +++ b/examples/vendored_node_and_yarn/WORKSPACE @@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_nodejs", - sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.1/rules_nodejs-2.0.1.tar.gz"], + sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"], ) http_archive( diff --git a/examples/vendored_node_and_yarn/package.json b/examples/vendored_node_and_yarn/package.json index ab1403c486..f3d58456e1 100644 --- a/examples/vendored_node_and_yarn/package.json +++ b/examples/vendored_node_and_yarn/package.json @@ -1,7 +1,7 @@ { "private": true, "devDependencies": { - "@bazel/jasmine": "^2.0.0", + "@bazel/jasmine": "^2.3.1", "jasmine": "^3.5.0" }, "scripts": { diff --git a/examples/vendored_node_and_yarn/yarn.lock b/examples/vendored_node_and_yarn/yarn.lock index 058f96bf8c..eb21ac5388 100644 --- a/examples/vendored_node_and_yarn/yarn.lock +++ b/examples/vendored_node_and_yarn/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@bazel/jasmine@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-2.0.0.tgz#e466ba8eb386eb777f8c4e502b8760ee3d173d1d" - integrity sha512-9RLgNAy10PRkLLP0+8YJr1I8vsVE8rZIfz467/SxROZq7zmIx3lErX101t0KHLmukXT+GusrkXIlB/Vwa8DN9Q== +"@bazel/jasmine@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-2.3.1.tgz#e4df8dd2b8d906e41e4073b5c49c700a962fe853" + integrity sha512-6QYTfJfbwPxCvKu4rOhG1YZUm94MbG4K2Dq1q2A2OUiM0eqAZG8T1HJAswDh7L286r5x9nRX8h7Pb7CyJvSmbg== dependencies: c8 "~7.1.0" jasmine-reporters "~2.3.2" diff --git a/examples/vue/WORKSPACE b/examples/vue/WORKSPACE index cfa5e26f4e..ddb09063c2 100644 --- a/examples/vue/WORKSPACE +++ b/examples/vue/WORKSPACE @@ -7,8 +7,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_nodejs", - sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.1/rules_nodejs-2.0.1.tar.gz"], + sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"], ) load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories", "npm_install") diff --git a/examples/vue/package-lock.json b/examples/vue/package-lock.json index 7a1e85a08a..35d5a5d069 100644 --- a/examples/vue/package-lock.json +++ b/examples/vue/package-lock.json @@ -1022,15 +1022,15 @@ } }, "@bazel/bazelisk": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@bazel/bazelisk/-/bazelisk-1.5.0.tgz", - "integrity": "sha512-qhOGN1WmfZYNJXGrRL/0byii9hX5FBomMv3WWI2OEL2+Bxm4t/bR3zMxN3xwQX1C8meSSrAfKGSzxVOZfpJsOg==", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@bazel/bazelisk/-/bazelisk-1.7.2.tgz", + "integrity": "sha512-/cin20XIfSctNVh6veOVKFwUp6g6/oeEEvgPLSetgK6HFspReI3jI+2lO4haQX8yD2QFN20ndheXDuLYidoj6g==", "dev": true }, "@bazel/ibazel": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/@bazel/ibazel/-/ibazel-0.13.1.tgz", - "integrity": "sha512-FO1hBKpzpeBL0adnFYF2Dwl/7gox6ccKM6bb+x26AXrQpLbinXPuTi4zeXRL/MW4383mF6i4RovLCmwUU/YW0w==", + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@bazel/ibazel/-/ibazel-0.14.0.tgz", + "integrity": "sha512-s0gyec6lArcRDwVfIP6xpY8iEaFpzrSpyErSppd3r2O49pOEg7n6HGS/qJ8ncvme56vrDk6crl/kQ6VAdEO+rg==", "dev": true }, "@hapi/address": { diff --git a/examples/vue/package.json b/examples/vue/package.json index 130e6c2813..d46dc7b9ef 100644 --- a/examples/vue/package.json +++ b/examples/vue/package.json @@ -13,8 +13,8 @@ "vue": "^2.6.11" }, "devDependencies": { - "@bazel/bazelisk": "^1.5.0", - "@bazel/ibazel": "^0.13.1", + "@bazel/bazelisk": "^1.7.2", + "@bazel/ibazel": "^0.14.0", "@vue/cli-plugin-babel": "~4.4.0", "@vue/cli-plugin-eslint": "~4.4.0", "@vue/cli-service": "~4.4.0", diff --git a/examples/web_testing/WORKSPACE b/examples/web_testing/WORKSPACE index 671bd0b3a9..ebe9347c2f 100644 --- a/examples/web_testing/WORKSPACE +++ b/examples/web_testing/WORKSPACE @@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_nodejs", - sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.1/rules_nodejs-2.0.1.tar.gz"], + sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"], ) load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/examples/web_testing/package.json b/examples/web_testing/package.json index 605c6b276d..70308eb6d3 100644 --- a/examples/web_testing/package.json +++ b/examples/web_testing/package.json @@ -1,7 +1,7 @@ { "devDependencies": { - "@bazel/karma": "^2.0.0", - "@bazel/typescript": "^2.0.0", + "@bazel/karma": "^2.3.1", + "@bazel/typescript": "^2.3.1", "@types/jasmine": "2.8.2", "@types/node": "11.11.1", "karma": "~4.1.0", diff --git a/examples/web_testing/yarn.lock b/examples/web_testing/yarn.lock index e132b5103c..8ce3a9b20c 100644 --- a/examples/web_testing/yarn.lock +++ b/examples/web_testing/yarn.lock @@ -2,17 +2,15 @@ # yarn lockfile v1 -"@bazel/karma@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/karma/-/karma-2.0.0.tgz#a386ba334716e6d94c667c9b40423955a727c896" - integrity sha512-VR/qzsH9/G1eJ0xqicoT7ea6FdiQGW0gd6FzPNecJnqm7OQjhKn7htRWvTONTNXoWl4qCIHTtW+RJ9piH1zU3Q== - dependencies: - tmp "0.1.0" +"@bazel/karma@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/karma/-/karma-2.3.1.tgz#9a52128cefc4e061fc4e934c4918d7a3e17b1007" + integrity sha512-4w1aS3qaKY8eekyDujAFD7xsM+z0rCsEofs8QliEmZaF+RCKw+QsxWEMrxIXkdoftcQS+MBatAoSDhHbl47VpQ== -"@bazel/typescript@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-2.0.0.tgz#2ff5615f09c733cc681ba2ada92b11c356b694cd" - integrity sha512-5FPkxULWIjAKLG5J1XvpXpY1/4IK39dAoWA/Hhg+16gXTES32fT8w42k96pb6BTaNnyBuYgIHBpELEAJ40OOAQ== +"@bazel/typescript@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-2.3.1.tgz#f103c4a5230cabaffd8d574b7278265b5478f056" + integrity sha512-blgLpx+9Vh8DZWTVOYTWSk1HEU28FF+GwU1stFaemfY7/pUQfK/URb9FARRkw/v2UrPKCd9EBywFYQyPGSAb1A== dependencies: protobufjs "6.8.8" semver "5.6.0" @@ -470,7 +468,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3: dependencies: ms "2.0.0" -debug@^3.0.0, debug@^3.2.6: +debug@^3.2.6: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== @@ -614,9 +612,9 @@ escape-html@~1.0.3: integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= eventemitter3@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb" - integrity sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg== + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== expand-brackets@^2.1.4: version "2.1.4" @@ -694,11 +692,9 @@ flatted@^2.0.0: integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== follow-redirects@^1.0.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.9.0.tgz#8d5bcdc65b7108fe1508649c79c12d732dcedb4f" - integrity sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A== - dependencies: - debug "^3.0.0" + version "1.13.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.0.tgz#b42e8d93a2a7eea5ed88633676d6597bc8e384db" + integrity sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA== for-in@^1.0.2: version "1.0.2" @@ -857,9 +853,9 @@ http-errors@1.7.2: toidentifier "1.0.0" http-proxy@^1.13.0: - version "1.18.0" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.0.tgz#dbe55f63e75a347db7f3d99974f2692a314a6a3a" - integrity sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ== + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== dependencies: eventemitter3 "^4.0.0" follow-redirects "^1.0.0" @@ -1664,7 +1660,7 @@ rfdc@^1.1.4: resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.1.4.tgz#ba72cc1367a0ccd9cf81a870b3b58bd3ad07f8c2" integrity sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug== -rimraf@^2.6.0, rimraf@^2.6.1, rimraf@^2.6.3: +rimraf@^2.6.0, rimraf@^2.6.1: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -1937,13 +1933,6 @@ tmp@0.0.33, tmp@0.0.x: dependencies: os-tmpdir "~1.0.2" -tmp@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" - integrity sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw== - dependencies: - rimraf "^2.6.3" - to-array@0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" diff --git a/examples/webapp/WORKSPACE b/examples/webapp/WORKSPACE index 8a501752bc..ce31ae44c5 100644 --- a/examples/webapp/WORKSPACE +++ b/examples/webapp/WORKSPACE @@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_nodejs", - sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.1/rules_nodejs-2.0.1.tar.gz"], + sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"], ) load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/examples/webapp/differential_loading.bzl b/examples/webapp/differential_loading.bzl index 7268bb8874..c387dc207c 100644 --- a/examples/webapp/differential_loading.bzl +++ b/examples/webapp/differential_loading.bzl @@ -36,7 +36,7 @@ def differential_loading(name, entry_point, srcs): args = [ "$(execpath %s_chunks)" % name, "--config-file", - "$(execpath es5.babelrc)", + "./$(execpath es5.babelrc)", "--out-dir", "$(@D)", ], diff --git a/examples/webapp/package.json b/examples/webapp/package.json index 46dd8143b9..45de090496 100644 --- a/examples/webapp/package.json +++ b/examples/webapp/package.json @@ -4,14 +4,14 @@ "@babel/cli": "^7.6.0", "@babel/core": "^7.6.0", "@babel/preset-env": "^7.6.0", - "@bazel/protractor": "^2.0.0", - "@bazel/rollup": "^2.0.0", - "@bazel/terser": "^2.0.0", - "@bazel/typescript": "^2.0.0", + "@bazel/protractor": "^2.3.1", + "@bazel/rollup": "^2.3.1", + "@bazel/terser": "^2.3.1", + "@bazel/typescript": "^2.3.1", "http-server": "^0.11.1", "mocha": "^6.2.1", "protractor": "^5.4.2", - "rollup": "1.21.4", + "rollup": "2.3.0", "source-map": "^0.7.3", "terser": "^4.3.1", "typescript": "^3.1.6" diff --git a/examples/webapp/yarn.lock b/examples/webapp/yarn.lock index f4a164e0f8..e2c3ac5b83 100644 --- a/examples/webapp/yarn.lock +++ b/examples/webapp/yarn.lock @@ -655,25 +655,25 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" -"@bazel/protractor@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-2.0.0.tgz#1b67a2f61c7124a25ae4322b585f91a26592458b" - integrity sha512-mr+Jkg/Ta5cp1FQevbV9DqXidDmScX3vy82HjAIew1Y1aQMT9SJ5RVopSSQFe/pIx/zodpAiW1D6lynPiwS1Cw== - -"@bazel/rollup@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-2.0.0.tgz#1980cb3f6922227659260bfdca99c457889a5bc1" - integrity sha512-mifUfCZbD1RIhfowh4N8E4881ag3FChz7F4z35wxMOP52g1q3+6Bvh5wv9iysFQopxGmS5jNEj3Dq/CWtSoOnw== - -"@bazel/terser@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-2.0.0.tgz#a841db8aefd7c51c216b34a26bc02a6c93d5e56a" - integrity sha512-6mBYcfzP6pWxycYZ8r4Lz5kgiWZ7n08bVHZBIRExFeqs7Yy92dD92LPeA9FZIzFiX00IuR9Q1Lqy23xH5q7FeQ== - -"@bazel/typescript@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-2.0.0.tgz#2ff5615f09c733cc681ba2ada92b11c356b694cd" - integrity sha512-5FPkxULWIjAKLG5J1XvpXpY1/4IK39dAoWA/Hhg+16gXTES32fT8w42k96pb6BTaNnyBuYgIHBpELEAJ40OOAQ== +"@bazel/protractor@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-2.3.1.tgz#470c280841f5ec91b0a80d2ffb692841a125e240" + integrity sha512-1MF3JlGE6HyYzPFXJBFnv5eEOuTuXhsJT70g66+lMgPZ9g0uUPh6CPu/iUkT6/92sw+pHGUsaptxwNu89Z7Dag== + +"@bazel/rollup@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-2.3.1.tgz#30265ac682149e82f3a4a0cfda216f3d860e7373" + integrity sha512-KyMIYr8UV1MkwdW+2HUnwUNAddFhETM8OSaaOQK5I7hV4XKjBzc2EZstt4HRcNtsVF5Lnsi7Arb8xjbBdXTqvw== + +"@bazel/terser@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-2.3.1.tgz#c1aa0e88988d913be61d601e581a60c3bf771e06" + integrity sha512-G0I7niJyQzDFx+Z4WlA19g8SQuWpfMKbMHi+e94NHVYYpoUF0nRhLfysvNx5Kx5J6/N2gErmtwYsTQpRUI/vCQ== + +"@bazel/typescript@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-2.3.1.tgz#f103c4a5230cabaffd8d574b7278265b5478f056" + integrity sha512-blgLpx+9Vh8DZWTVOYTWSk1HEU28FF+GwU1stFaemfY7/pUQfK/URb9FARRkw/v2UrPKCd9EBywFYQyPGSAb1A== dependencies: protobufjs "6.8.8" semver "5.6.0" @@ -733,11 +733,6 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= -"@types/estree@0.0.39": - version "0.0.39" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" - integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== - "@types/long@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.0.tgz#719551d2352d301ac8b81db732acb6bdc28dbdef" @@ -748,11 +743,6 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.21.tgz#4a9db7ef1d1671c0015e632c5fa3d46c86c58c1e" integrity sha512-nuFlRdBiqbF+PJIEVxm2jLFcQWN7q7iWEJGsBV4n7v1dbI9qXB8im2pMMKMCUZe092sQb5SQft2DHfuQGK5hqQ== -"@types/node@^12.7.5": - version "12.7.8" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.8.tgz#cb1bf6800238898bc2ff6ffa5702c3cadd350708" - integrity sha512-FMdVn84tJJdV+xe+53sYiZS4R5yn1mAIxfj+DVoNiQjTYz1+OYmjwEZr1ev9nU0axXwda0QDbYl06QHanRVH3A== - "@types/q@^0.0.32": version "0.0.32" resolved "https://registry.yarnpkg.com/@types/q/-/q-0.0.32.tgz#bd284e57c84f1325da702babfc82a5328190c0c5" @@ -768,11 +758,6 @@ abbrev@1: resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== -acorn@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c" - integrity sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ== - adm-zip@^0.4.9: version "0.4.13" resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.13.tgz#597e2f8cc3672151e1307d3e95cddbc75672314a" @@ -1557,6 +1542,11 @@ fsevents@^1.2.7: nan "^2.12.1" node-pre-gyp "^0.12.0" +fsevents@~2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== + function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -2881,14 +2871,12 @@ rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1: dependencies: glob "^7.1.3" -rollup@1.21.4: - version "1.21.4" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.21.4.tgz#00a41a30f90095db890301b226cbe2918e4cf54d" - integrity sha512-Pl512XVCmVzgcBz5h/3Li4oTaoDcmpuFZ+kdhS/wLreALz//WuDAMfomD3QEYl84NkDu6Z6wV9twlcREb4qQsw== - dependencies: - "@types/estree" "0.0.39" - "@types/node" "^12.7.5" - acorn "^7.0.0" +rollup@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.3.0.tgz#0b9e1c19bea22464958854dae646b8b40d2d3ed5" + integrity sha512-nIq2Z9YwNbEfqTlAXe/tVl8CwUsjX/8Q5Jxlx+JRoYCu5keKLc6k0zyt11sM6WtCDxhmmJEIosFy9y26ZFRx6w== + optionalDependencies: + fsevents "~2.1.2" safe-buffer@^5.0.1, safe-buffer@^5.1.2: version "5.2.0" diff --git a/examples/worker/WORKSPACE b/examples/worker/WORKSPACE index 17cb138b0b..5c63c01d52 100644 --- a/examples/worker/WORKSPACE +++ b/examples/worker/WORKSPACE @@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_nodejs", - sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.1/rules_nodejs-2.0.1.tar.gz"], + sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"], ) load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/examples/worker/package.json b/examples/worker/package.json index 8cacd64432..4437b6ae2b 100644 --- a/examples/worker/package.json +++ b/examples/worker/package.json @@ -1,6 +1,6 @@ { "private": true, "devDependencies": { - "@bazel/worker": "^2.0.0" + "@bazel/worker": "^2.3.1" } } diff --git a/examples/worker/yarn.lock b/examples/worker/yarn.lock index 2e8d12e500..a720b1a909 100644 --- a/examples/worker/yarn.lock +++ b/examples/worker/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@bazel/worker@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bazel/worker/-/worker-2.0.0.tgz#904de1708198b68cf90f088b43d1a7eb0a9cc252" - integrity sha512-YKlEbKOZ51QIngN5FKZAsT9xRoZfeQGsb1ZDUqn8G7GnfzMuqlqzKEXFU8D3RwEO5rwJ8d7zhYqEKBjA9XfA8Q== +"@bazel/worker@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@bazel/worker/-/worker-2.3.1.tgz#da0e02c1c9239788a1cb2be99224d0cdae226760" + integrity sha512-4iN6bWrZivT2U5x63t8XJrIQlizkGnxldFdCX5B1YKBrkPUmMq7ffG00Yi+Ahg4WWpCt2TwLoToZMPxz/6tCtw== dependencies: protobufjs "6.8.8" diff --git a/index.bzl b/index.bzl index f0d456c558..f3c312482d 100644 --- a/index.bzl +++ b/index.bzl @@ -23,6 +23,7 @@ load("//internal/common:check_version.bzl", "check_version") load("//internal/common:copy_to_bin.bzl", _copy_to_bin = "copy_to_bin") load("//internal/common:params_file.bzl", _params_file = "params_file") load("//internal/generated_file_test:generated_file_test.bzl", _generated_file_test = "generated_file_test") +load("//internal/js_library:js_library.bzl", _js_library = "js_library") load( "//internal/node:node.bzl", _nodejs_binary = "nodejs_binary", @@ -31,7 +32,7 @@ load( load("//internal/node:node_repositories.bzl", _node_repositories = "node_repositories") load("//internal/node:npm_package_bin.bzl", _npm_bin = "npm_package_bin") load("//internal/npm_install:npm_install.bzl", _npm_install = "npm_install", _yarn_install = "yarn_install") -load("//internal/pkg_npm:pkg_npm.bzl", _pkg_npm = "pkg_npm") +load("//internal/pkg_npm:pkg_npm.bzl", _pkg_npm = "pkg_npm_macro") load("//internal/pkg_web:pkg_web.bzl", _pkg_web = "pkg_web") check_bazel_version = _check_bazel_version @@ -44,6 +45,7 @@ pkg_web = _pkg_web copy_to_bin = _copy_to_bin params_file = _params_file generated_file_test = _generated_file_test +js_library = _js_library # ANY RULES ADDED HERE SHOULD BE DOCUMENTED, see index.for_docs.bzl # Allows us to avoid a transitive dependency on bazel_skylib from leaking to users diff --git a/index.for_docs.bzl b/index.for_docs.bzl index 9b4a7dd21e..37930e652e 100644 --- a/index.for_docs.bzl +++ b/index.for_docs.bzl @@ -20,6 +20,7 @@ load("//internal/common:check_bazel_version.bzl", _check_bazel_version = "check_ load("//internal/common:copy_to_bin.bzl", _copy_to_bin = "copy_to_bin") load("//internal/common:params_file.bzl", _params_file = "params_file") load("//internal/generated_file_test:generated_file_test.bzl", _generated_file_test = "generated_file_test") +load("//internal/js_library:js_library.bzl", _js_library = "js_library") load("//internal/node:node.bzl", _nodejs_binary = "nodejs_binary", _nodejs_test = "nodejs_test") load("//internal/node:node_repositories.bzl", _node_repositories = "node_repositories_rule") load("//internal/node:npm_package_bin.bzl", _npm_bin = "npm_package_bin") @@ -39,4 +40,5 @@ yarn_install = _yarn_install npm_package_bin = _npm_bin pkg_web = _pkg_web generated_file_test = _generated_file_test +js_library = _js_library # ANY RULES ADDED HERE SHOULD BE DOCUMENTED, run yarn stardoc to verify diff --git a/internal/common/copy_to_bin.bzl b/internal/common/copy_to_bin.bzl index 88243eb8d7..88ce33e541 100644 --- a/internal/common/copy_to_bin.bzl +++ b/internal/common/copy_to_bin.bzl @@ -38,7 +38,7 @@ _copy_to_bin = rule( ) def copy_to_bin(name, srcs, **kwargs): - """Copies a source file to bazel-bin at the same workspace-relative path path. + """Copies a source file to bazel-bin at the same workspace-relative path. e.g. `/foo/bar/a.txt -> /foo/bar/a.txt` diff --git a/internal/common/os_name.bzl b/internal/common/os_name.bzl index f45cfe5532..586d98b397 100644 --- a/internal/common/os_name.bzl +++ b/internal/common/os_name.bzl @@ -20,6 +20,7 @@ OS_ARCH_NAMES = [ ("windows", "amd64"), ("linux", "amd64"), ("linux", "arm64"), + ("linux", "s390x"), ] OS_NAMES = ["_".join(os_arch_name) for os_arch_name in OS_ARCH_NAMES] @@ -43,7 +44,10 @@ def os_name(rctx): arch = rctx.execute(["uname", "-m"]).stdout.strip() if arch == "aarch64": return OS_NAMES[3] - return OS_NAMES[2] + elif arch == "s390x": + return OS_NAMES[4] + else: + return OS_NAMES[2] else: fail("Unsupported operating system: " + os_name) @@ -55,4 +59,4 @@ def is_windows_os(rctx): def is_linux_os(rctx): name = os_name(rctx) - return name == OS_NAMES[2] or name == OS_NAMES[3] + return name == OS_NAMES[2] or name == OS_NAMES[3] or name == OS_NAMES[4] diff --git a/internal/common/windows_utils.bzl b/internal/common/windows_utils.bzl index 1ae88c2021..e984ddd256 100644 --- a/internal/common/windows_utils.bzl +++ b/internal/common/windows_utils.bzl @@ -35,6 +35,9 @@ if "%RUNFILES_MANIFEST_ONLY%" neq "1" ( set %~2=%~1 exit /b 0 ) +if exist "%RUNFILES_DIR%" ( + set RUNFILES_MANIFEST_FILE=%RUNFILES_DIR%_manifest +) if "%RUNFILES_MANIFEST_FILE%" equ "" ( set RUNFILES_MANIFEST_FILE=%~f0.runfiles\MANIFEST ) diff --git a/internal/generated_file_test/BUILD.bazel b/internal/generated_file_test/BUILD.bazel index 22e0cc2f9a..43af53771c 100644 --- a/internal/generated_file_test/BUILD.bazel +++ b/internal/generated_file_test/BUILD.bazel @@ -31,8 +31,8 @@ rollup_bundle( entry_point = "bin.js", sourcemap = "hidden", deps = [ - "@npm//rollup-plugin-commonjs", - "@npm//rollup-plugin-node-resolve", + "@npm//@rollup/plugin-commonjs", + "@npm//@rollup/plugin-node-resolve", "@npm//unidiff", ], ) diff --git a/internal/generated_file_test/bin.js b/internal/generated_file_test/bin.js index 8385ab5e1d..0a132589dc 100644 --- a/internal/generated_file_test/bin.js +++ b/internal/generated_file_test/bin.js @@ -4,6 +4,23 @@ const path = require('path'); import * as unidiff from 'unidiff/unidiff'; const runfiles = require(process.env['BAZEL_NODE_RUNFILES_HELPER']); +function findGoldenInGenerated(golden, actual) { + const goldenLines = golden.split(/[\r\n]+/g).map(l => l.trim()); + const actualLines = actual.split(/[\r\n]+/g).map(l => l.trim()); + // Note: this is not the fastest subsequence algorithm. + nextActualLine: for (let i = 0; i < actualLines.length; i++) { + for (let j = 0; j < goldenLines.length; j++) { + if (actualLines[i + j] !== goldenLines[j]) { + continue nextActualLine; + } + } + // A match! + return true; + } + // No match. + return false; +} + function main(args) { const [mode, golden_no_debug, golden_debug, actual] = args; const actualPath = runfiles.resolveWorkspaceRelative(actual); @@ -23,7 +40,7 @@ function main(args) { return 0; } if (mode === '--verify') { - // Generated does not match golden + // Compare the generated file to the golden file. const diff = unidiff.diffLines(goldenContents, actualContents); let prettyDiff = unidiff.formatLines(diff, {aname: `[workspace]/${golden}`, bname: `[bazel-out]/${actual}`}); @@ -41,6 +58,19 @@ If the bazel-out content is correct, you can update the workspace file by runnin `); return 1; } + if (mode === '--substring') { + // Verify that the golden file is contained _somewhere_ in the generated + // file. + const diff = findGoldenInGenerated(goldenContents, actualContents); + if (diff) { + console.error(`Unable to find golden contents inside of the the generated file: + +${goldenContents} +`) + return 1; + } + return 0; + } throw new Error('unknown mode', mode); } diff --git a/internal/generated_file_test/generated_file_test.bzl b/internal/generated_file_test/generated_file_test.bzl index 6264a8c372..ba3f8fe237 100644 --- a/internal/generated_file_test/generated_file_test.bzl +++ b/internal/generated_file_test/generated_file_test.bzl @@ -2,7 +2,7 @@ load("@build_bazel_rules_nodejs//internal/node:node.bzl", "nodejs_binary", "nodejs_test") -def generated_file_test(name, generated, src, src_dbg = None, **kwargs): +def generated_file_test(name, generated, src, substring_search = False, src_dbg = None, **kwargs): """Tests that a file generated by Bazel has identical content to a file in the workspace. This is useful for testing, where a "snapshot" or "golden" file is checked in, @@ -12,6 +12,8 @@ def generated_file_test(name, generated, src, src_dbg = None, **kwargs): name: Name of the rule. generated: a Label of the output file generated by another rule src: Label of the source file in the workspace + substring_search: When true, creates a test that will fail only if the golden file is not found + anywhere within the generated file. Note that the .update rule is not generated in substring mode. src_dbg: if the build uses `--compilation_mode dbg` then some rules will produce different output. In this case you can specify what the dbg version of the output should look like **kwargs: extra arguments passed to the underlying nodejs_test or nodejs_binary @@ -27,16 +29,22 @@ def generated_file_test(name, generated, src, src_dbg = None, **kwargs): nodejs_test( name = name, entry_point = "@build_bazel_rules_nodejs//internal/generated_file_test:bundle.js", - templated_args = ["--verify", loc % src, loc % src_dbg, loc % generated], + templated_args = [ + "--substring" if substring_search else "--verify", + loc % src, + loc % src_dbg, + loc % generated, + ], data = data, **kwargs ) - nodejs_binary( - name = name + ".update", - testonly = True, - entry_point = "@build_bazel_rules_nodejs//internal/generated_file_test:bundle.js", - templated_args = ["--out", loc % src, loc % src_dbg, loc % generated], - data = data, - **kwargs - ) + if not substring_search: + nodejs_binary( + name = name + ".update", + testonly = True, + entry_point = "@build_bazel_rules_nodejs//internal/generated_file_test:bundle.js", + templated_args = ["--out", loc % src, loc % src_dbg, loc % generated], + data = data, + **kwargs + ) diff --git a/internal/generated_file_test/rollup.config.js b/internal/generated_file_test/rollup.config.js index 91086703b3..9e782fcec9 100644 --- a/internal/generated_file_test/rollup.config.js +++ b/internal/generated_file_test/rollup.config.js @@ -1,9 +1,9 @@ -const commonjs = require('rollup-plugin-commonjs'); -const nodeRequire = require('rollup-plugin-node-resolve'); +const commonjs = require('@rollup/plugin-commonjs'); +const {nodeResolve} = require('@rollup/plugin-node-resolve'); module.exports = { plugins: [ - nodeRequire(), + nodeResolve(), commonjs(), ], }; diff --git a/internal/js_library/js_library.bzl b/internal/js_library/js_library.bzl index e8054658dc..8525bd6b43 100644 --- a/internal/js_library/js_library.bzl +++ b/internal/js_library/js_library.bzl @@ -12,20 +12,56 @@ # See the License for the specific language governing permissions and # limitations under the License. -"""js_library allows defining a set of javascript sources and assigning a package_name. +"js_library can be used to expose and share any library package." -DO NOT USE - this is not fully designed, and exists only to enable testing within this repo. -""" - -load("//:providers.bzl", "LinkablePackageInfo", "declaration_info", "js_module_info") -load("//third_party/github.com/bazelbuild/bazel-skylib:rules/private/copy_file_private.bzl", "copy_bash", "copy_cmd") +load( + "//:providers.bzl", + "DeclarationInfo", + "JSModuleInfo", + "JSNamedModuleInfo", + "LinkablePackageInfo", + "NpmPackageInfo", + "declaration_info", + "js_module_info", + "js_named_module_info", +) +load( + "//third_party/github.com/bazelbuild/bazel-skylib:rules/private/copy_file_private.bzl", + "copy_bash", + "copy_cmd", +) -_AMD_NAMES_DOC = """Mapping from require module names to global variables. -This allows devmode JS sources to load unnamed UMD bundles from third-party libraries.""" +_ATTRS = { + "amd_names": attr.string_dict( + doc = """Non-public legacy API, not recommended to make new usages. + See documentation on AmdNamesInfo""", + ), + "deps": attr.label_list(), + "is_windows": attr.bool( + doc = "Internal use only. Automatically set by macro", + mandatory = True, + ), + # module_name for legacy ts_library module_mapping support + # which is still being used in a couple of tests + # TODO: remove once legacy module_mapping is removed + "module_name": attr.string( + doc = "Internal use only. It will be removed soon.", + ), + "named_module_srcs": attr.label_list( + doc = """Non-public legacy API, not recommended to make new usages. + A subset of srcs that are javascript named-UMD or + named-AMD for use in rules such as ts_devserver. + They will be copied into the package bin folder if needed.""", + allow_files = True, + ), + "package_name": attr.string(), + "srcs": attr.label_list(allow_files = True), +} AmdNamesInfo = provider( - doc = "provide access to the amd_names attribute of js_library", - fields = {"names": _AMD_NAMES_DOC}, + doc = "Non-public API. Provides access to the amd_names attribute of js_library", + fields = {"names": """Mapping from require module names to global variables. + This allows devmode JS sources to load unnamed UMD bundles from third-party libraries."""}, ) def write_amd_names_shim(actions, amd_names_shim, targets): @@ -34,7 +70,7 @@ def write_amd_names_shim(actions, amd_names_shim, targets): These are collected from our bootstrap deps (the only place global scripts should appear) Args: - actions: skylark rule execution context.actions + actions: starlark rule execution context.actions amd_names_shim: File where the shim is written targets: dependencies to be scanned for AmdNamesInfo providers """ @@ -50,39 +86,111 @@ def write_amd_names_shim(actions, amd_names_shim, targets): actions.write(amd_names_shim, amd_names_shim_content) def _impl(ctx): - files = [] + input_files = ctx.files.srcs + ctx.files.named_module_srcs + all_files = [] typings = [] js_files = [] + named_module_files = [] + include_npm_package_info = False + + for idx, f in enumerate(input_files): + file = f - for src in ctx.files.srcs: - if src.is_source and not src.path.startswith("external/"): - dst = ctx.actions.declare_file(src.basename, sibling = src) + # copy files into bin if needed + if file.is_source and not file.path.startswith("external/"): + dst = ctx.actions.declare_file(file.basename, sibling = file) if ctx.attr.is_windows: - copy_cmd(ctx, src, dst) - else: - copy_bash(ctx, src, dst) - if dst.basename.endswith(".d.ts"): - typings.append(dst) + copy_cmd(ctx, file, dst) else: - files.append(dst) - elif src.basename.endswith(".d.ts"): - typings.append(src) - else: - files.append(src) + copy_bash(ctx, file, dst) + + # re-assign file to the one now copied into the bin folder + file = dst + + # register js files + if file.basename.endswith(".js") or file.basename.endswith(".js.map") or file.basename.endswith(".json"): + js_files.append(file) + + # register typings + if ( + ( + file.path.endswith(".d.ts") or + file.path.endswith(".d.ts.map") or + # package.json may be required to resolve "typings" key + file.path.endswith("/package.json") + ) and + # exclude eg. external/npm/node_modules/protobufjs/node_modules/@types/node/index.d.ts + # these would be duplicates of the typings provided directly in another dependency. + # also exclude all /node_modules/typescript/lib/lib.*.d.ts files as these are determined by + # the tsconfig "lib" attribute + len(file.path.split("/node_modules/")) < 3 and file.path.find("/node_modules/typescript/lib/lib.") == -1 + ): + typings.append(file) + + # auto detect if it entirely an npm package + # + # NOTE: it probably can be removed once we support node_modules from more than + # a single workspace + if file.is_source and file.path.startswith("external/"): + # We cannot always expose the NpmPackageInfo as the linker + # only allow us to reference node modules from a single workspace at a time. + # Here we are automatically decide if we should or not including that provider + # by running through the sources and check if we have a src coming from an external + # workspace which indicates we should include the provider. + include_npm_package_info = True + + # ctx.files.named_module_srcs are merged after ctx.files.srcs + if idx >= len(ctx.files.srcs): + named_module_files.append(file) - for p in files: - if p.basename.endswith(".js") or p.basename.endswith(".js.map") or p.basename.endswith(".json"): - js_files.append(p) + # every single file on bin should be added here + all_files.append(file) - files_depset = depset(files) + files_depset = depset(all_files) + js_files_depset = depset(js_files) + named_module_files_depset = depset(named_module_files) + typings_depset = depset(typings) + + files_depsets = [files_depset] + npm_sources_depsets = [files_depset] + direct_sources_depsets = [files_depset] + direct_named_module_sources_depsets = [named_module_files_depset] + typings_depsets = [typings_depset] + js_files_depsets = [js_files_depset] + + for dep in ctx.attr.deps: + if NpmPackageInfo in dep: + npm_sources_depsets.append(dep[NpmPackageInfo].sources) + else: + if JSModuleInfo in dep: + js_files_depsets.append(dep[JSModuleInfo].direct_sources) + direct_sources_depsets.append(dep[JSModuleInfo].direct_sources) + if JSNamedModuleInfo in dep: + direct_named_module_sources_depsets.append(dep[JSNamedModuleInfo].direct_sources) + direct_sources_depsets.append(dep[JSNamedModuleInfo].direct_sources) + if DeclarationInfo in dep: + typings_depsets.append(dep[DeclarationInfo].declarations) + direct_sources_depsets.append(dep[DeclarationInfo].declarations) + if DefaultInfo in dep: + files_depsets.append(dep[DefaultInfo].files) providers = [ DefaultInfo( - files = files_depset, - runfiles = ctx.runfiles(files = ctx.files.srcs), + files = depset(transitive = files_depsets), + runfiles = ctx.runfiles( + files = all_files, + transitive_files = depset(transitive = files_depsets), + ), ), AmdNamesInfo(names = ctx.attr.amd_names), - js_module_info(depset(js_files)), + js_module_info( + sources = depset(transitive = js_files_depsets), + deps = ctx.attr.deps, + ), + js_named_module_info( + sources = depset(transitive = direct_named_module_sources_depsets), + deps = ctx.attr.deps, + ), ] if ctx.attr.package_name: @@ -90,50 +198,139 @@ def _impl(ctx): providers.append(LinkablePackageInfo( package_name = ctx.attr.package_name, path = path, - files = files_depset, + files = depset(transitive = direct_sources_depsets), + )) + + if include_npm_package_info: + workspace_name = ctx.label.workspace_name if ctx.label.workspace_name else ctx.workspace_name + providers.append(NpmPackageInfo( + direct_sources = depset(transitive = direct_sources_depsets), + sources = depset(transitive = npm_sources_depsets), + workspace = workspace_name, )) # Don't provide DeclarationInfo if there are no typings to provide. # Improves error messaging downstream if DeclarationInfo is required. - if len(typings): - providers.append(declaration_info(depset(typings))) + if len(typings) or len(typings_depsets) > 1: + decls = depset(transitive = typings_depsets) + providers.append(declaration_info( + declarations = decls, + deps = ctx.attr.deps, + )) + providers.append(OutputGroupInfo(types = decls)) return providers _js_library = rule( implementation = _impl, - attrs = { - "amd_names": attr.string_dict(doc = _AMD_NAMES_DOC), - "is_windows": attr.bool(mandatory = True, doc = "Automatically set by macro"), - # module_name for legacy ts_library module_mapping support - # TODO: remove once legacy module_mapping is removed - "module_name": attr.string(), - "package_name": attr.string(), - "srcs": attr.label_list( - allow_files = True, - mandatory = True, - ), - }, + attrs = _ATTRS, ) def js_library( name, - srcs, - amd_names = {}, + srcs = [], package_name = None, + deps = [], **kwargs): - """Internal use only. May be published to the public API in a future release.""" + """Groups JavaScript code so that it can be depended on like an npm package. + + `js_library` is intended to be used internally within Bazel, such as between two libraries in your monorepo. + This rule doesn't perform any build steps ("actions") so it is similar to a `filegroup`. + However it provides several Bazel "Providers" for interop with other rules. + + > Compare this to `pkg_npm` which just produces a directory output, and therefore can't expose individual + > files to downstream targets and causes a cascading re-build of all transitive dependencies when any file + > changes. Also `pkg_npm` is intended to publish your code for external usage outside of Bazel, like + > by publishing to npm or artifactory, while `js_library` is for internal dependencies within your repo. + + `js_library` also copies any source files into the bazel-out folder. + This is the same behavior as the `copy_to_bin` rule. + By copying the complete package to the output tree, we ensure that the linker (our `npm link` equivalent) + will make your source files available in the node_modules tree where resolvers expect them. + It also means you can have relative imports between the files + rather than being forced to use Bazel's "Runfiles" semantics where any program might need a helper library + to resolve files between the logical union of the source tree and the output tree. + + ### Example + + A typical example usage of `js_library` is to expose some sources with a package name: + + ```python + ts_project( + name = "compile_ts", + srcs = glob(["*.ts"]), + ) + + js_library( + name = "my_pkg", + # Code that depends on this target can import from "@myco/mypkg" + package_name = "@myco/mypkg", + # Consumers might need fields like "main" or "typings" + srcs = ["package.json"], + # The .js and .d.ts outputs from above will be part of the package + deps = [":compile_ts"], + ) + ``` + + > To help work with "named AMD" modules as required by `ts_devserver` and other Google-style "concatjs" rules, + > `js_library` has some undocumented advanced features you can find in the source code or in our examples. + > These should not be considered a public API and aren't subject to our usual support and semver guarantees. + + ### Outputs + + Like all Bazel rules it produces a default output by providing [DefaultInfo]. + You'll get these outputs if you include this in the `srcs` of a typical rule like `filegroup`, + and these will be the printed result when you `bazel build //some:js_library_target`. + The default outputs are all of: + - [DefaultInfo] produced by targets in `deps` + - A copy of all sources (InputArtifacts from your source tree) in the bazel-out directory + + When there are TypeScript typings files, `js_library` provides [DeclarationInfo](#declarationinfo) + so this target can be a dependency of a TypeScript rule. This includes any `.d.ts` files in `srcs` as well + as transitive ones from `deps`. + It will also provide [OutputGroupInfo] with a "types" field, so you can select the typings outputs with + `bazel build //some:js_library_target --output_groups=types` or with a `filegroup` rule using the + [output_group] attribute. + + In order to work with the linker (similar to `npm link` for first-party monorepo deps), `js_library` provides + [LinkablePackageInfo](#linkablepackageinfo) for use with our "linker" that makes this package importable. + + It also provides: + - [NpmPackageInfo](#npmpackageinfo) to interop with rules that expect third-party npm packages. + - [JsModuleInfo](#jsmoduleinfo) so rules like bundlers can collect the transitive set of .js files + - [JsNamedModuleInfo](#jsnamedmoduleinfo) for rules that expect named AMD or `goog.module` format JS + + [OutputGroupInfo]: https://docs.bazel.build/versions/master/skylark/lib/OutputGroupInfo.html + [DefaultInfo]: https://docs.bazel.build/versions/master/skylark/lib/DefaultInfo.html + [output_group]: https://docs.bazel.build/versions/master/be/general.html#filegroup.output_group + + Args: + name: a name for the target + srcs: the list of files that comprise the package + package_name: the name it will be imported by. Should match the "name" field in the package.json file. + deps: other targets that provide JavaScript code + **kwargs: used for undocumented legacy features + """ + + # Undocumented features + amd_names = kwargs.pop("amd_names", {}) module_name = kwargs.pop("module_name", None) + named_module_srcs = kwargs.pop("named_module_srcs", []) + if module_name: fail("use package_name instead of module_name in target //%s:%s" % (native.package_name(), name)) if kwargs.pop("is_windows", None): - fail("is_windows is set by the js_library macro and should not be set explicitely") + fail("is_windows is set by the js_library macro and should not be set explicitly") + _js_library( name = name, - srcs = srcs, amd_names = amd_names, + srcs = srcs, + named_module_srcs = named_module_srcs, + deps = deps, package_name = package_name, # module_name for legacy ts_library module_mapping support + # which is still being used in a couple of tests # TODO: remove once legacy module_mapping is removed module_name = package_name, is_windows = select({ diff --git a/internal/js_library/test/BUILD.bazel b/internal/js_library/test/BUILD.bazel new file mode 100644 index 0000000000..e69de29bb2 diff --git a/internal/js_library/test/transitive/BUILD.bazel b/internal/js_library/test/transitive/BUILD.bazel new file mode 100644 index 0000000000..917a518163 --- /dev/null +++ b/internal/js_library/test/transitive/BUILD.bazel @@ -0,0 +1,14 @@ +load("//:index.bzl", "js_library") +load(":transitive_declarations_test.bzl", "transitive_declarations_test_suite") + +js_library( + name = "a", + srcs = ["a.d.ts"], +) + +js_library( + name = "b", + deps = ["a"], +) + +transitive_declarations_test_suite() diff --git a/internal/js_library/test/transitive/a.d.ts b/internal/js_library/test/transitive/a.d.ts new file mode 100644 index 0000000000..106d610ab9 --- /dev/null +++ b/internal/js_library/test/transitive/a.d.ts @@ -0,0 +1 @@ +export declare const a: string; diff --git a/internal/js_library/test/transitive/transitive_declarations_test.bzl b/internal/js_library/test/transitive/transitive_declarations_test.bzl new file mode 100644 index 0000000000..eea4d944ae --- /dev/null +++ b/internal/js_library/test/transitive/transitive_declarations_test.bzl @@ -0,0 +1,20 @@ +"Unit tests for js_library rule" + +load("@bazel_skylib//lib:unittest.bzl", "asserts", "unittest") +load("//:providers.bzl", "DeclarationInfo") + +def _impl(ctx): + env = unittest.begin(ctx) + decls = [] + for decl in ctx.attr.lib[DeclarationInfo].declarations.to_list(): + decls.append(decl.basename) + asserts.equals(env, ctx.attr.declarations, decls) + return unittest.end(env) + +transitive_declarations_test = unittest.make(_impl, attrs = { + "declarations": attr.string_list(default = ["a.d.ts"]), + "lib": attr.label(default = ":b"), +}) + +def transitive_declarations_test_suite(): + unittest.suite("transitive_declarations_tests", transitive_declarations_test) diff --git a/internal/linker/index.js b/internal/linker/index.js index 0adba74cde..eef8710225 100644 --- a/internal/linker/index.js +++ b/internal/linker/index.js @@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const fs = require("fs"); const path = require("path"); const VERBOSE_LOGS = !!process.env['VERBOSE_LOGS']; +const BAZEL_OUT_REGEX = /(\/bazel-out\/|\/bazel-~1\/x64_wi~1\/)/; function log_verbose(...m) { if (VERBOSE_LOGS) console.error('[link_node_modules.js]', ...m); @@ -124,7 +125,7 @@ function resolveRoot(root, startCwd, isExecroot, runfiles) { if (isExecroot) { return root ? `${startCwd}/external/${root}` : `${startCwd}/node_modules`; } - const match = startCwd.match(/(\/bazel-out\/|\/bazel-~1\/x64_wi~1\/)/); + const match = startCwd.match(BAZEL_OUT_REGEX); if (!match) { if (!root) { return `${startCwd}/node_modules`; @@ -176,14 +177,22 @@ class Runfiles { lookupDirectory(dir) { if (!this.manifest) return undefined; + let result; for (const [k, v] of this.manifest) { if (k.startsWith(`${dir}/external`)) continue; if (k.startsWith(dir)) { const l = k.length - dir.length; - return v.substring(0, v.length - l); + const maybe = v.substring(0, v.length - l); + if (maybe.match(BAZEL_OUT_REGEX)) { + return maybe; + } + else { + result = maybe; + } } } + return result; } loadRunfilesManifest(manifestPath) { log_verbose(`using runfiles manifest ${manifestPath}`); @@ -470,6 +479,13 @@ function main(args, runfiles) { } try { target = runfiles.resolve(runfilesPath); + if (runfiles.manifest && root == 'execroot' && modulePath.startsWith(`${bin}/`)) { + if (!target.includes(`/${bin}/`)) { + const e = new Error(`could not resolve modulePath ${modulePath}`); + e.code = 'MODULE_NOT_FOUND'; + throw e; + } + } } catch (_a) { target = ''; @@ -503,6 +519,12 @@ function main(args, runfiles) { exports.main = main; exports.runfiles = new Runfiles(process.env); if (require.main === module) { + if (Number(process.versions.node.split('.')[0]) < 10) { + console.error(`ERROR: rules_nodejs linker requires Node v10 or greater, but is running on ${process.versions.node}`); + console.error('Note that earlier Node versions are no longer in long-term-support, see'); + console.error('https://nodejs.org/en/about/releases/'); + process.exit(1); + } (() => __awaiter(void 0, void 0, void 0, function* () { try { process.exitCode = yield main(process.argv.slice(2), exports.runfiles); diff --git a/internal/linker/link_node_modules.bzl b/internal/linker/link_node_modules.bzl index 0f9db7ae71..ea106304c9 100644 --- a/internal/linker/link_node_modules.bzl +++ b/internal/linker/link_node_modules.bzl @@ -19,7 +19,7 @@ def _debug(vars, *args): print("[link_node_modules.bzl]", *args) # Arbitrary name; must be chosen to globally avoid conflicts with any other aspect -_ASPECT_RESULT_NAME = "link_node_modules__aspect_result" +ASPECT_RESULT_NAME = "link_node_modules__aspect_result" # Traverse 'srcs' in addition so that we can go across a genrule _MODULE_MAPPINGS_DEPS_NAMES = ["data", "deps", "srcs"] @@ -56,16 +56,18 @@ def _link_mapping(label, mappings, k, v): else: return True -def write_node_modules_manifest(ctx, extra_data = [], mnemonic = None): +def write_node_modules_manifest(ctx, extra_data = [], mnemonic = None, link_workspace_root = False): """Writes a manifest file read by the linker, containing info about resolving runtime dependencies Args: ctx: starlark rule execution context extra_data: labels to search for npm packages that need to be linked (ctx.attr.deps and ctx.attr.data will always be searched) mnemonic: optional action mnemonic, used to differentiate module mapping files from the same rule context + link_workspace_root: Link the workspace root to the bin_dir to support absolute requires like 'my_wksp/path/to/file'. + If source files need to be required then they can be copied to the bin_dir with copy_to_bin. """ - mappings = {} + mappings = {ctx.workspace_name: ["execroot", ctx.bin_dir.path]} if link_workspace_root else {} node_modules_root = "" # Look through data/deps attributes to find... @@ -79,7 +81,7 @@ def write_node_modules_manifest(ctx, extra_data = [], mnemonic = None): fail("All npm dependencies need to come from a single workspace. Found '%s' and '%s'." % (node_modules_root, possible_root)) # ...first-party packages to be linked into the node_modules tree - for k, v in getattr(dep, _ASPECT_RESULT_NAME, {}).items(): + for k, v in getattr(dep, ASPECT_RESULT_NAME, {}).items(): if _link_mapping(dep.label, mappings, k, v): # Special case for ts_library module_name for legacy behavior and for AMD name # work-around. Do not propagate tslibrary root type to runtime as it is not @@ -124,7 +126,7 @@ def _get_module_mappings(target, ctx): # Propogate transitive mappings for name in _MODULE_MAPPINGS_DEPS_NAMES: for dep in getattr(ctx.rule.attr, name, []): - for k, v in getattr(dep, _ASPECT_RESULT_NAME, {}).items(): + for k, v in getattr(dep, ASPECT_RESULT_NAME, {}).items(): # A package which was reachable transitively via a *_binary or *_test # rule is assumed to be in the runfiles of that binary, # so we switch the linker target root. @@ -170,9 +172,9 @@ def _get_module_mappings(target, ctx): def _module_mappings_aspect_impl(target, ctx): # Use a dictionary to construct the result struct - # so that we can reference the _ASPECT_RESULT_NAME variable + # so that we can reference the ASPECT_RESULT_NAME variable return struct(**{ - _ASPECT_RESULT_NAME: _get_module_mappings(target, ctx), + ASPECT_RESULT_NAME: _get_module_mappings(target, ctx), }) module_mappings_aspect = aspect( diff --git a/internal/linker/link_node_modules.ts b/internal/linker/link_node_modules.ts index e4e7f92f89..72f0dcd645 100644 --- a/internal/linker/link_node_modules.ts +++ b/internal/linker/link_node_modules.ts @@ -9,6 +9,10 @@ import * as path from 'path'; // Run Bazel with --define=VERBOSE_LOGS=1 to enable this logging const VERBOSE_LOGS = !!process.env['VERBOSE_LOGS']; +// NB: on windows thanks to legacy 8-character path segments it might be like +// c:/b/ojvxx6nx/execroot/build_~1/bazel-~1/x64_wi~1/bin/internal/npm_in~1/test +const BAZEL_OUT_REGEX = /(\/bazel-out\/|\/bazel-~1\/x64_wi~1\/)/; + function log_verbose(...m: string[]) { if (VERBOSE_LOGS) console.error('[link_node_modules.js]', ...m); } @@ -175,9 +179,7 @@ async function resolveRoot( // runfiles on rbe, bazel runs the process in a directory such as // `/b/f/w/bazel-out/k8-fastbuild/bin/path/to/pkg/some_test.sh.runfiles/my_wksp`. From here we can // determine the execroot `b/f/w` by finding the first instance of bazel-out. - // NB: on windows thanks to legacy 8-character path segments it might be like - // c:/b/ojvxx6nx/execroot/build_~1/bazel-~1/x64_wi~1/bin/internal/npm_in~1/test - const match = startCwd.match(/(\/bazel-out\/|\/bazel-~1\/x64_wi~1\/)/); + const match = startCwd.match(BAZEL_OUT_REGEX); if (!match) { // No execroot found. This can happen if we are inside a nodejs_image or a nodejs_binary is // run manually. @@ -278,6 +280,7 @@ export class Runfiles { lookupDirectory(dir: string): string|undefined { if (!this.manifest) return undefined; + let result: string|undefined; for (const [k, v] of this.manifest) { // Account for Bazel --legacy_external_runfiles // which pollutes the workspace with 'my_wksp/external/...' @@ -289,9 +292,15 @@ export class Runfiles { // calculate l = length(`/semver/LICENSE`) if (k.startsWith(dir)) { const l = k.length - dir.length; - return v.substring(0, v.length - l); + const maybe = v.substring(0, v.length - l); + if (maybe.match(BAZEL_OUT_REGEX)) { + return maybe; + } else { + result = maybe; + } } } + return result; } @@ -731,6 +740,15 @@ export async function main(args: string[], runfiles: Runfiles) { } try { target = runfiles.resolve(runfilesPath); + // if we're resolving from a manifest then make sure we don't resolve + // into the source tree when we are expecting the output tree + if (runfiles.manifest && root == 'execroot' && modulePath.startsWith(`${bin}/`)) { + if (!target.includes(`/${bin}/`)) { + const e = new Error(`could not resolve modulePath ${modulePath}`); + (e as any).code = 'MODULE_NOT_FOUND'; + throw e; + } + } } catch { target = ''; } @@ -777,6 +795,13 @@ export async function main(args: string[], runfiles: Runfiles) { export const runfiles = new Runfiles(process.env); if (require.main === module) { + if (Number(process.versions.node.split('.')[0]) < 10) { + console.error(`ERROR: rules_nodejs linker requires Node v10 or greater, but is running on ${ + process.versions.node}`); + console.error('Note that earlier Node versions are no longer in long-term-support, see'); + console.error('https://nodejs.org/en/about/releases/'); + process.exit(1); + } (async () => { try { process.exitCode = await main(process.argv.slice(2), runfiles); diff --git a/internal/linker/test/integration/dynamic_linked_pkg/BUILD.bazel b/internal/linker/test/integration/dynamic_linked_pkg/BUILD.bazel index 593f1f3d52..e2a0663e1f 100644 --- a/internal/linker/test/integration/dynamic_linked_pkg/BUILD.bazel +++ b/internal/linker/test/integration/dynamic_linked_pkg/BUILD.bazel @@ -1,4 +1,4 @@ -load("//internal/js_library:js_library.bzl", "js_library") +load("//:index.bzl", "js_library") package(default_visibility = ["//internal/linker/test:__subpackages__"]) diff --git a/internal/linker/test/integration/dynamic_linked_scoped_pkg/BUILD.bazel b/internal/linker/test/integration/dynamic_linked_scoped_pkg/BUILD.bazel index d1c2df517a..dbc3be1d99 100644 --- a/internal/linker/test/integration/dynamic_linked_scoped_pkg/BUILD.bazel +++ b/internal/linker/test/integration/dynamic_linked_scoped_pkg/BUILD.bazel @@ -1,4 +1,4 @@ -load("//internal/js_library:js_library.bzl", "js_library") +load("//:index.bzl", "js_library") package(default_visibility = ["//internal/linker/test:__subpackages__"]) diff --git a/internal/linker/test/integration/static_linked_pkg/BUILD.bazel b/internal/linker/test/integration/static_linked_pkg/BUILD.bazel index 4872e50a56..49db812a32 100644 --- a/internal/linker/test/integration/static_linked_pkg/BUILD.bazel +++ b/internal/linker/test/integration/static_linked_pkg/BUILD.bazel @@ -1,5 +1,5 @@ load("@build_bazel_rules_nodejs//:index.bzl", "copy_to_bin") -load("//internal/js_library:js_library.bzl", "js_library") +load("//:index.bzl", "js_library") package(default_visibility = ["//internal/linker/test:__subpackages__"]) diff --git a/internal/linker/test/integration/static_linked_scoped_pkg/BUILD.bazel b/internal/linker/test/integration/static_linked_scoped_pkg/BUILD.bazel index 894a1d632d..8b34fd2202 100644 --- a/internal/linker/test/integration/static_linked_scoped_pkg/BUILD.bazel +++ b/internal/linker/test/integration/static_linked_scoped_pkg/BUILD.bazel @@ -1,4 +1,4 @@ -load("//internal/js_library:js_library.bzl", "js_library") +load("//:index.bzl", "js_library") package(default_visibility = ["//internal/linker/test:__subpackages__"]) diff --git a/internal/linker/test/integration/transitive_static_linked_pkg/BUILD.bazel b/internal/linker/test/integration/transitive_static_linked_pkg/BUILD.bazel index 51e4a7df9c..28b85b1ebd 100644 --- a/internal/linker/test/integration/transitive_static_linked_pkg/BUILD.bazel +++ b/internal/linker/test/integration/transitive_static_linked_pkg/BUILD.bazel @@ -1,4 +1,4 @@ -load("//internal/js_library:js_library.bzl", "js_library") +load("//:index.bzl", "js_library") package(default_visibility = ["//internal/linker/test:__subpackages__"]) diff --git a/internal/linker/test/workspace_link/BUILD.bazel b/internal/linker/test/workspace_link/BUILD.bazel new file mode 100644 index 0000000000..3dd30cd4e5 --- /dev/null +++ b/internal/linker/test/workspace_link/BUILD.bazel @@ -0,0 +1,12 @@ +load("//packages/jasmine:index.bzl", "jasmine_node_test") + +jasmine_node_test( + name = "test", + srcs = ["test.js"], + link_workspace_root = True, + templated_args = ["--nobazel_patch_module_resolver"], + deps = [ + "//internal/linker/test/workspace_link/bar", + "//internal/linker/test/workspace_link/foo", + ], +) diff --git a/internal/linker/test/workspace_link/bar/BUILD.bazel b/internal/linker/test/workspace_link/bar/BUILD.bazel new file mode 100644 index 0000000000..14a1576186 --- /dev/null +++ b/internal/linker/test/workspace_link/bar/BUILD.bazel @@ -0,0 +1,10 @@ +load("@build_bazel_rules_nodejs//:index.bzl", "copy_to_bin") + +copy_to_bin( + name = "bar", + srcs = [ + "main.js", + "package.json", + ], + visibility = ["//internal/linker/test/workspace_link:__pkg__"], +) diff --git a/internal/linker/test/workspace_link/bar/main.js b/internal/linker/test/workspace_link/bar/main.js new file mode 100644 index 0000000000..282afcefd5 --- /dev/null +++ b/internal/linker/test/workspace_link/bar/main.js @@ -0,0 +1,3 @@ +module.exports = { + bar: 'bar', +} diff --git a/internal/linker/test/workspace_link/bar/package.json b/internal/linker/test/workspace_link/bar/package.json new file mode 100644 index 0000000000..fdc36a9edb --- /dev/null +++ b/internal/linker/test/workspace_link/bar/package.json @@ -0,0 +1,5 @@ +{ + "name": "bar", + "main": "main.js", + "typings": "main.d.ts" +} diff --git a/internal/linker/test/workspace_link/foo/BUILD.bazel b/internal/linker/test/workspace_link/foo/BUILD.bazel new file mode 100644 index 0000000000..27ecf978f1 --- /dev/null +++ b/internal/linker/test/workspace_link/foo/BUILD.bazel @@ -0,0 +1,35 @@ +load("@build_bazel_rules_nodejs//:index.bzl", "copy_to_bin") +load("@npm//typescript:index.bzl", "tsc") + +tsc( + name = "foo_lib", + outs = [ + "main.d.ts", + "main.js", + ], + args = [ + "-p", + "$(execpath tsconfig.json)", + "--outDir", + # $(RULEDIR) is a shorthand for the dist/bin directory where Bazel requires we write outputs + "$(RULEDIR)", + ], + data = [ + "main.ts", + "tsconfig.json", + ], +) + +copy_to_bin( + name = "foo_files", + srcs = ["package.json"], +) + +filegroup( + name = "foo", + srcs = [ + ":foo_files", + ":foo_lib", + ], + visibility = ["//internal/linker/test/workspace_link:__pkg__"], +) diff --git a/internal/linker/test/workspace_link/foo/main.ts b/internal/linker/test/workspace_link/foo/main.ts new file mode 100644 index 0000000000..e6f163ae0f --- /dev/null +++ b/internal/linker/test/workspace_link/foo/main.ts @@ -0,0 +1 @@ +export const foo: string = 'foo'; diff --git a/internal/linker/test/workspace_link/foo/package.json b/internal/linker/test/workspace_link/foo/package.json new file mode 100644 index 0000000000..9f06a3c4a7 --- /dev/null +++ b/internal/linker/test/workspace_link/foo/package.json @@ -0,0 +1,5 @@ +{ + "name": "foo", + "main": "main.js", + "typings": "main.d.ts" +} diff --git a/internal/linker/test/workspace_link/foo/tsconfig.json b/internal/linker/test/workspace_link/foo/tsconfig.json new file mode 100644 index 0000000000..67dcdc9d6a --- /dev/null +++ b/internal/linker/test/workspace_link/foo/tsconfig.json @@ -0,0 +1,6 @@ +{ + "compilerOptions": { + "declaration": true, + "types": [] + } +} \ No newline at end of file diff --git a/internal/linker/test/workspace_link/test.js b/internal/linker/test/workspace_link/test.js new file mode 100644 index 0000000000..9a44d4668d --- /dev/null +++ b/internal/linker/test/workspace_link/test.js @@ -0,0 +1,8 @@ +describe('linker', () => { + it('should be able to require by absolute path when link_workspace_root is True', () => { + const foo = require('build_bazel_rules_nodejs/internal/linker/test/workspace_link/foo'); + expect(foo.foo).toBe('foo'); + const bar = require('build_bazel_rules_nodejs/internal/linker/test/workspace_link/bar'); + expect(bar.bar).toBe('bar'); + }); +}); diff --git a/internal/node/context.bzl b/internal/node/context.bzl index dfde3ac760..fba03a19d8 100644 --- a/internal/node/context.bzl +++ b/internal/node/context.bzl @@ -4,7 +4,7 @@ load("@build_bazel_rules_nodejs//:providers.bzl", "NodeContextInfo") _DOC = """node_context_data gathers information about the build configuration. It is a common dependency of all targets that are sensitive to configuration. -(currently pkg_npm and rollup_bundle)""" +(currently pkg_npm, pkg_web, and rollup_bundle)""" def _impl(ctx): return [NodeContextInfo(stamp = ctx.attr.stamp)] diff --git a/internal/node/launcher.sh b/internal/node/launcher.sh index 4baa55ecac..10efb6c4e6 100644 --- a/internal/node/launcher.sh +++ b/internal/node/launcher.sh @@ -130,6 +130,7 @@ else *) case "${unameArch}" in aarch64*) readonly node_toolchain="nodejs_linux_arm64/bin/nodejs/bin/node" ;; + s390x*) readonly node_toolchain="nodejs_linux_s390x/bin/nodejs/bin/node" ;; *) readonly node_toolchain="nodejs_linux_amd64/bin/nodejs/bin/node" ;; esac ;; @@ -148,14 +149,18 @@ fi # Export the location of the runfiles helpers script export BAZEL_NODE_RUNFILES_HELPER=$(rlocation "TEMPLATED_runfiles_helper_script") -if [[ "${BAZEL_NODE_RUNFILES_HELPER}" != /* ]] && [[ ! "${BAZEL_NODE_RUNFILES_HELPER}" =~ ^[A-Z]:[\\/] ]]; then +# Paths can be with lower and upper case on windows because of the msys64 package in the powershell +# https://regex101.com/r/c0Gjn8/1/ +if [[ "${BAZEL_NODE_RUNFILES_HELPER}" != /* ]] && [[ ! "${BAZEL_NODE_RUNFILES_HELPER}" =~ ^[A-Za-z]:[\/\\] ]]; then export BAZEL_NODE_RUNFILES_HELPER=$(pwd)/${BAZEL_NODE_RUNFILES_HELPER} fi # Export the location of the require patch script as it can be used to bootstrap # node require patch if needed export BAZEL_NODE_PATCH_REQUIRE=$(rlocation "TEMPLATED_require_patch_script") -if [[ "${BAZEL_NODE_PATCH_REQUIRE}" != /* ]] && [[ ! "${BAZEL_NODE_PATCH_REQUIRE}" =~ ^[A-Z]:[\\/] ]]; then +# Paths can be with lower and upper case on windows because of the msys64 package in the powershell +# https://regex101.com/r/c0Gjn8/1/ +if [[ "${BAZEL_NODE_PATCH_REQUIRE}" != /* ]] && [[ ! "${BAZEL_NODE_PATCH_REQUIRE}" =~ ^[A-Za-z]:[\/\\] ]]; then export BAZEL_NODE_PATCH_REQUIRE=$(pwd)/${BAZEL_NODE_PATCH_REQUIRE} fi @@ -331,6 +336,12 @@ readonly child=$! trap _term SIGTERM trap _int SIGINT wait "${child}" +# Remove trap after first signal has been receieved and wait for child to exit +# (first wait returns immediatel if SIGTERM is received while waiting). Second +# wait is a no-op if child has already terminated. +trap - SIGTERM SIGINT +wait "${child}" + RESULT="$?" set -e @@ -352,6 +363,15 @@ if [ "${EXPECTED_EXIT_CODE}" != "0" ]; then fi fi +# Do not collect coverage for failed tests +if [ ${RESULT} -ne 0 ]; then + if [[ -n "${EXIT_CODE_CAPTURE}" ]]; then + exit 0 + else + exit ${RESULT} + fi +fi + # Post process the coverage information after the process has exited if [[ -n "${COVERAGE_DIR:-}" ]]; then if [[ -n "${VERBOSE_LOGS:-}" ]]; then @@ -362,12 +382,12 @@ if [[ -n "${COVERAGE_DIR:-}" ]]; then fi set +e - "${node}" "${lcov_merger_script}" --coverage_dir="${COVERAGE_DIR}" --output_file="${COVERAGE_OUTPUT_FILE}" --source_file_manifest="${COVERAGE_MANIFEST}" + "${node}" ${LAUNCHER_NODE_OPTIONS[@]+"${LAUNCHER_NODE_OPTIONS[@]}"} "${lcov_merger_script}" --coverage_dir="${COVERAGE_DIR}" --output_file="${COVERAGE_OUTPUT_FILE}" --source_file_manifest="${COVERAGE_MANIFEST}" RESULT="$?" set -e - if [ ${RESULT} -ne 0 ]; then - exit ${RESULT} + if [[ -n "${EXIT_CODE_CAPTURE}" ]]; then + echo "${RESULT}" > "${EXIT_CODE_CAPTURE}" fi fi diff --git a/internal/node/node.bzl b/internal/node/node.bzl index 56c6d3dd71..b614f9b27c 100644 --- a/internal/node/node.bzl +++ b/internal/node/node.bzl @@ -37,7 +37,7 @@ def _trim_package_node_modules(package_name): for n in package_name.split("/"): if n == "node_modules": break - segments += [n] + segments.append(n) return "/".join(segments) def _compute_node_modules_root(ctx): @@ -150,8 +150,11 @@ def _to_execroot_path(ctx, file): return file.path +def _join(*elements): + return "/".join([f for f in elements if f]) + def _nodejs_binary_impl(ctx): - node_modules_manifest = write_node_modules_manifest(ctx) + node_modules_manifest = write_node_modules_manifest(ctx, link_workspace_root = ctx.attr.link_workspace_root) node_modules_depsets = [] node_modules_depsets.append(depset(ctx.files.node_modules)) if NpmPackageInfo in ctx.attr.node_modules: @@ -250,7 +253,12 @@ fi expanded_args = [expand_location_into_runfiles(ctx, a, ctx.attr.data) for a in expanded_args] # Next expand predefined variables & custom variables - expanded_args = [ctx.expand_make_variables("templated_args", e, {}) for e in expanded_args] + rule_dir = _join(ctx.bin_dir.path, ctx.label.workspace_root, ctx.label.package) + additional_substitutions = { + "@D": rule_dir, + "RULEDIR": rule_dir, + } + expanded_args = [ctx.expand_make_variables("templated_args", e, additional_substitutions) for e in expanded_args] substitutions = { # TODO: Split up results of multifile expansions into separate args and qoute them with @@ -368,7 +376,7 @@ The set of default environment variables is: If the entry JavaScript file belongs to the same package (as the BUILD file), you can simply reference it by its relative name to the package directory: -``` +```python nodejs_binary( name = "my_binary", ... @@ -379,7 +387,7 @@ nodejs_binary( You can specify the entry point as a typescript file so long as you also include the ts_library target in data: -``` +```python ts_library( name = "main", srcs = ["main.ts"], @@ -397,7 +405,7 @@ The rule will use the corresponding `.js` output of the ts_library rule as the e If the entry point target is a rule, it should produce a single JavaScript entry file that will be passed to the nodejs_binary rule. For example: -``` +```python filegroup( name = "entry_file", srcs = ["main.js"], @@ -411,7 +419,7 @@ nodejs_binary( The entry_point can also be a label in another workspace: -``` +```python nodejs_binary( name = "history-server", entry_point = "@npm//:node_modules/history-server/modules/cli.js", @@ -422,6 +430,10 @@ nodejs_binary( mandatory = True, allow_single_file = True, ), + "link_workspace_root": attr.bool( + doc = """Link the workspace root to the bin_dir to support absolute requires like 'my_wksp/path/to/file'. +If source files need to be required then they can be copied to the bin_dir with copy_to_bin.""", + ), "node_modules": attr.label( doc = """The npm packages which should be available to `require()` during execution. @@ -431,7 +443,7 @@ to npm dependencies is to use fine grained npm dependencies which are setup with the `yarn_install` or `npm_install` rules. For example, in targets that used a `//:node_modules` filegroup, -``` +```python nodejs_binary( name = "my_binary", ... @@ -444,7 +456,7 @@ to be inputs to the `my_binary`. Using fine grained npm dependencies, `my_binary` is defined with only the npm dependencies that are needed: -``` +```python nodejs_binary( name = "my_binary", ... @@ -474,7 +486,7 @@ yarn_install( For other rules such as `jasmine_node_test`, fine grained npm dependencies are specified in the `deps` attribute: -``` +```python jasmine_node_test( name = "my_test", ... @@ -514,7 +526,7 @@ To get from a `$(rootpath)` to the absolute path that `$$(rlocation $(location)) `$$(rlocation $(rootpath))` if you are in the `templated_args` of a `nodejs_binary` or `nodejs_test`: BUILD.bazel: -``` +```python nodejs_test( name = "my_test", data = [":bootstrap.js"], @@ -526,7 +538,7 @@ or if you're in the context of a .js script you can pass the $(rootpath) as an a and use the javascript runfiles helper to resolve to the absolute path: BUILD.bazel: -``` +```python nodejs_test( name = "my_test", data = [":some_file"], @@ -536,7 +548,7 @@ nodejs_test( ``` my_test.js -``` +```python const runfiles = require(process.env['BAZEL_NODE_RUNFILES_HELPER']); const args = process.argv.slice(2); const some_file = runfiles.resolveWorkspaceRelative(args[0]); @@ -672,7 +684,7 @@ See rules_nodejs/internal/node/test/chdir for an example. To debug a Node.js test, we recommend saving a group of flags together in a "config". Put this in your `tools/bazel.rc` so it's shared with your team: -``` +```python # Enable debugging tests with --config=debug test:debug --test_arg=--node_options=--inspect-brk --test_output=streamed --test_strategy=exclusive --test_timeout=9999 --nocache_test_results ``` diff --git a/internal/node/node_patches.js b/internal/node/node_patches.js index ad98f2ecec..860076e31f 100644 --- a/internal/node/node_patches.js +++ b/internal/node/node_patches.js @@ -9,12 +9,18 @@ var fs$1 = _interopDefault(require('fs')); var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; -function unwrapExports (x) { - return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; +function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(path, (base === undefined || base === null) ? module.path : base); + } + }, fn(module, module.exports), module.exports; } -function createCommonjsModule(fn, module) { - return module = { exports: {} }, fn(module, module.exports), module.exports; +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); } var fs = createCommonjsModule(function (module, exports) { @@ -541,10 +547,6 @@ function once(fn) { } }); -unwrapExports(fs); -var fs_1 = fs.patcher; -var fs_2 = fs.escapeFunction; - var subprocess = createCommonjsModule(function (module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); // this does not actually patch child_process @@ -610,9 +612,6 @@ fi }; }); -unwrapExports(subprocess); -var subprocess_1 = subprocess.patcher; - var src = createCommonjsModule(function (module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); /** @@ -637,10 +636,6 @@ exports.fs = fs.patcher; exports.subprocess = subprocess.patcher; }); -unwrapExports(src); -var src_1 = src.fs; -var src_2 = src.subprocess; - /** * @license * Copyright 2019 The Bazel Authors. All rights reserved. @@ -673,9 +668,3 @@ else if (VERBOSE_LOGS) { console.error(`bazel node patches disabled. set environment BAZEL_PATCH_ROOT`); } src.subprocess(__filename, NP_SUBPROCESS_NODE_DIR); - -var register = { - -}; - -module.exports = register; diff --git a/internal/node/node_repositories.bzl b/internal/node/node_repositories.bzl index 7a700a8298..b83d469be8 100644 --- a/internal/node/node_repositories.bzl +++ b/internal/node/node_repositories.bzl @@ -19,27 +19,104 @@ See https://docs.bazel.build/versions/master/skylark/repository_rules.html """ load("//internal/common:check_bazel_version.bzl", "check_bazel_version") -load("//internal/common:check_version.bzl", "check_version") load("//internal/common:os_name.bzl", "OS_ARCH_NAMES", "os_name") +load("//internal/node:node_versions.bzl", "NODE_VERSIONS") load("//third_party/github.com/bazelbuild/bazel-skylib:lib/paths.bzl", "paths") load("//toolchains/node:node_toolchain_configure.bzl", "node_toolchain_configure") +# @unsorted-dict-items +_YARN_VERSIONS = { + "1.3.2": ("yarn-v1.3.2.tar.gz", "yarn-v1.3.2", "6cfe82e530ef0837212f13e45c1565ba53f5199eec2527b85ecbcd88bf26821d"), + "1.5.1": ("yarn-v1.5.1.tar.gz", "yarn-v1.5.1", "cd31657232cf48d57fdbff55f38bfa058d2fb4950450bd34af72dac796af4de1"), + "1.6.0": ("yarn-v1.6.0.tar.gz", "yarn-v1.6.0", "a57b2fdb2bfeeb083d45a883bc29af94d5e83a21c25f3fc001c295938e988509"), + "1.9.2": ("yarn-v1.9.2.tar.gz", "yarn-v1.9.2", "3ad69cc7f68159a562c676e21998eb21b44138cae7e8fe0749a7d620cf940204"), + "1.9.4": ("yarn-v1.9.4.tar.gz", "yarn-v1.9.4", "7667eb715077b4bad8e2a832e7084e0e6f1ba54d7280dc573c8f7031a7fb093e"), + "1.12.1": ("yarn-v1.12.1.tar.gz", "yarn-v1.12.1", "09bea8f4ec41e9079fa03093d3b2db7ac5c5331852236d63815f8df42b3ba88d"), + "1.12.3": ("yarn-v1.12.3.tar.gz", "yarn-v1.12.3", "02cd4b589ec22c4bdbd2bc5ebbfd99c5e99b07242ad68a539cb37896b93a24f2"), + "1.13.0": ("yarn-v1.13.0.tar.gz", "yarn-v1.13.0", "125d40ebf621ebb08e3f66a618bd2cc5cd77fa317a312900a1ab4360ed38bf14"), + "1.19.1": ("yarn-v1.19.1.tar.gz", "yarn-v1.19.1", "34293da6266f2aae9690d59c2d764056053ff7eebc56b80b8df05010c3da9343"), + "1.22.4": ("yarn-v1.22.4.tar.gz", "yarn-v1.22.4", "bc5316aa110b2f564a71a3d6e235be55b98714660870c5b6b2d2d3f12587fb58"), + # When adding a new version. please update /docs/install.md +} + _DOC = """To be run in user's WORKSPACE to install rules_nodejs dependencies. -This rule sets up node, npm, and yarn. +This rule sets up node, npm, and yarn. The versions of these tools can be specified in one of three ways + +### Simplest Usage -The versions of these tools can be specified in one of three ways: -- Simplest Usage: Specify no explicit versions. This will download and use the latest NodeJS & Yarn that were available when the version of rules_nodejs you're using was released. Note that you can skip calling `node_repositories` in your WORKSPACE file - if you later try to `yarn_install` or `npm_install`, we'll automatically select this simple usage for you. -- Forced version(s): + +### Forced version(s) + You can select the version of NodeJS and/or Yarn to download & use by specifying it when you call node_repositories, using a value that matches a known version (see the default values) -- Using a custom version: + +### Using a custom version + You can pass in a custom list of NodeJS and/or Yarn repositories and URLs for node_resositories to use. -- Using a local version: + +#### Custom NodeJS versions + +To specify custom NodeJS versions, use the `node_repositories` attribute + +```python +node_repositories( + node_repositories = { + "10.10.0-darwin_amd64": ("node-v10.10.0-darwin-x64.tar.gz", "node-v10.10.0-darwin-x64", "00b7a8426e076e9bf9d12ba2d571312e833fe962c70afafd10ad3682fdeeaa5e"), + "10.10.0-linux_amd64": ("node-v10.10.0-linux-x64.tar.xz", "node-v10.10.0-linux-x64", "686d2c7b7698097e67bcd68edc3d6b5d28d81f62436c7cf9e7779d134ec262a9"), + "10.10.0-windows_amd64": ("node-v10.10.0-win-x64.zip", "node-v10.10.0-win-x64", "70c46e6451798be9d052b700ce5dadccb75cf917f6bf0d6ed54344c856830cfb"), + }, +) +``` + +These can be mapped to a custom download URL, using `node_urls` + +```python +node_repositories( + node_version = "10.10.0", + node_repositories = {"10.10.0-darwin_amd64": ("node-v10.10.0-darwin-x64.tar.gz", "node-v10.10.0-darwin-x64", "00b7a8426e076e9bf9d12ba2d571312e833fe962c70afafd10ad3682fdeeaa5e")}, + node_urls = ["https://mycorpproxy/mirror/node/v{version}/{filename}"], +) +``` + +A Mac client will try to download node from `https://mycorpproxy/mirror/node/v10.10.0/node-v10.10.0-darwin-x64.tar.gz` +and expect that file to have sha256sum `00b7a8426e076e9bf9d12ba2d571312e833fe962c70afafd10ad3682fdeeaa5e` + +#### Custom Yarn versions + +To specify custom Yarn versions, use the `yarn_repositories` attribute + +```python +node_repositories( + yarn_repositories = { + "1.12.1": ("yarn-v1.12.1.tar.gz", "yarn-v1.12.1", "09bea8f4ec41e9079fa03093d3b2db7ac5c5331852236d63815f8df42b3ba88d"), + }, +) +``` + +Like `node_urls`, the `yarn_urls` attribute can be used to provide a list of custom URLs to use to download yarn + +```python +node_repositories( + yarn_repositories = { + "1.12.1": ("yarn-v1.12.1.tar.gz", "yarn-v1.12.1", "09bea8f4ec41e9079fa03093d3b2db7ac5c5331852236d63815f8df42b3ba88d"), + }, + yarn_version = "1.12.1", + yarn_urls = [ + "https://github.com/yarnpkg/yarn/releases/download/v{version}/{filename}", + ], +) +``` + +Will download yarn from https://github.com/yarnpkg/yarn/releases/download/v1.2.1/yarn-v1.12.1.tar.gz +and expect the file to have sha256sum `09bea8f4ec41e9079fa03093d3b2db7ac5c5331852236d63815f8df42b3ba88d`. + +### Using a local version + To avoid downloads, you can check in vendored copies of NodeJS and/or Yarn and set vendored_node and or vendored_yarn to point to those before calling node_repositories. You can also point to a location where node is installed on your computer, but we don't recommend this because it leads to version skew between you, your coworkers, and your Continuous Integration environment. @@ -47,13 +124,11 @@ It also ties your build to a single platform, preventing you from cross-compilin See the [the repositories documentation](repositories.html) for how to use the resulting repositories. -## Creating dependency installation scripts for manually-managed dependencies +### Manual install You can optionally pass a `package_json` array to node_repositories. This lets you use Bazel's version of yarn or npm, yet always run the package manager yourself. This is an advanced scenario you can use in place of the `npm_install` or `yarn_install` rules, but we don't recommend it, and might remove it in the future. -Example: - ``` load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories") node_repositories(package_json = ["//:package.json", "//subpkg:package.json"]) @@ -66,68 +141,19 @@ Note that the dependency installation scripts will run in each subpackage indica # TODO(kgreenek): Add arm64 versions for all of these. _ATTRS = { + "node_download_auth": attr.string_dict( + default = {}, + doc = """auth to use for all url requests +Example: {\"type\": \"basic\", \"login\": \"\", \"password\": \"\" } +""", + ), "node_repositories": attr.string_list_dict( - # @unsorted-dict-items - default = { - # 8.9.1 - "8.9.1-darwin_amd64": ("node-v8.9.1-darwin-x64.tar.gz", "node-v8.9.1-darwin-x64", "05c992a6621d28d564b92bf3051a5dc0adf83839237c0d4653a8cdb8a1c73b94"), - "8.9.1-linux_amd64": ("node-v8.9.1-linux-x64.tar.xz", "node-v8.9.1-linux-x64", "8be82805f7c1ab3e64d4569fb9a90ded2de78dd27cadbb91bad1bf975dae1e2d"), - "8.9.1-windows_amd64": ("node-v8.9.1-win-x64.zip", "node-v8.9.1-win-x64", "db89c6e041da359561fbe7da075bb4f9881a0f7d3e98c203e83732cfb283fa4a"), - # 8.11.1 - "8.11.1-darwin_amd64": ("node-v8.11.1-darwin-x64.tar.gz", "node-v8.11.1-darwin-x64", "5c7b05899ff56910a2b8180f139d48612f349ac2c5d20f08dbbeffbed9e3a089"), - "8.11.1-linux_amd64": ("node-v8.11.1-linux-x64.tar.xz", "node-v8.11.1-linux-x64", "6617e245fa0f7fbe0e373e71d543fea878315324ab31dc64b4eba10e42d04c11"), - "8.11.1-windows_amd64": ("node-v8.11.1-win-x64.zip", "node-v8.11.1-win-x64", "7d49b59c2b5d73a14c138e8a215d558a64a5241cd5035d9824f608e7bba097b1"), - # 8.12.0 - "8.12.0-darwin_amd64": ("node-v8.12.0-darwin-x64.tar.gz", "node-v8.12.0-darwin-x64", "ca131b84dfcf2b6f653a6521d31f7a108ad7d83f4d7e781945b2eca8172064aa"), - "8.12.0-linux_amd64": ("node-v8.12.0-linux-x64.tar.xz", "node-v8.12.0-linux-x64", "29a20479cd1e3a03396a4e74a1784ccdd1cf2f96928b56f6ffa4c8dae40c88f2"), - "8.12.0-windows_amd64": ("node-v8.12.0-win-x64.zip", "node-v8.12.0-win-x64", "9b22c9b23148b61ea0052826b3ac0255b8a3a542c125272b8f014f15bf11b091"), - # 9.11.1 - "9.11.1-darwin_amd64": ("node-v9.11.1-darwin-x64.tar.gz", "node-v9.11.1-darwin-x64", "7b1fb394aa41a62b477e36df16644bd383cc9084808511f6cd318b835a06aac6"), - "9.11.1-linux_amd64": ("node-v9.11.1-linux-x64.tar.xz", "node-v9.11.1-linux-x64", "4d27a95d5c2f1c8ef99118794c9c4903e63963418d3e16ca7576760cff39879b"), - "9.11.1-windows_amd64": ("node-v9.11.1-win-x64.zip", "node-v9.11.1-win-x64", "0a3566d57ccb7fed95d18fc6c3bc1552a1b1e4753f9bc6c5d45e04f325e1ee53"), - # 10.3.0 - "10.3.0-darwin_amd64": ("node-v10.3.0-darwin-x64.tar.gz", "node-v10.3.0-darwin-x64", "0bb5b7e3fe8cccda2abda958d1eb0408f1518a8b0cb58b75ade5d507cd5d6053"), - "10.3.0-linux_amd64": ("node-v10.3.0-linux-x64.tar.xz", "node-v10.3.0-linux-x64", "eb3c3e2585494699716ad3197c8eedf4003d3f110829b30c5a0dc34414c47423"), - "10.3.0-windows_amd64": ("node-v10.3.0-win-x64.zip", "node-v10.3.0-win-x64", "65d586afb087406a2800d8e51f664c88b26d510f077b85a3b177a1bb79f73677"), - # 10.9.0 - "10.9.0-darwin_amd64": ("node-v10.9.0-darwin-x64.tar.gz", "node-v10.9.0-darwin-x64", "3c4fe75dacfcc495a432a7ba2dec9045cff359af2a5d7d0429c84a424ef686fc"), - "10.9.0-linux_amd64": ("node-v10.9.0-linux-x64.tar.xz", "node-v10.9.0-linux-x64", "c5acb8b7055ee0b6ac653dc4e458c5db45348cecc564b388f4ed1def84a329ff"), - "10.9.0-windows_amd64": ("node-v10.9.0-win-x64.zip", "node-v10.9.0-win-x64", "6a75cdbb69d62ed242d6cbf0238a470bcbf628567ee339d4d098a5efcda2401e"), - # 10.10.0 - "10.10.0-darwin_amd64": ("node-v10.10.0-darwin-x64.tar.gz", "node-v10.10.0-darwin-x64", "00b7a8426e076e9bf9d12ba2d571312e833fe962c70afafd10ad3682fdeeaa5e"), - "10.10.0-linux_amd64": ("node-v10.10.0-linux-x64.tar.xz", "node-v10.10.0-linux-x64", "686d2c7b7698097e67bcd68edc3d6b5d28d81f62436c7cf9e7779d134ec262a9"), - "10.10.0-windows_amd64": ("node-v10.10.0-win-x64.zip", "node-v10.10.0-win-x64", "70c46e6451798be9d052b700ce5dadccb75cf917f6bf0d6ed54344c856830cfb"), - # 10.13.0 - "10.13.0-darwin_amd64": ("node-v10.13.0-darwin-x64.tar.gz", "node-v10.13.0-darwin-x64", "815a5d18516934a3963ace9f0574f7d41f0c0ce9186a19be3d89e039e57598c5"), - "10.13.0-linux_amd64": ("node-v10.13.0-linux-x64.tar.xz", "node-v10.13.0-linux-x64", "0dc6dba645550b66f8f00541a428c29da7c3cde32fb7eda2eb626a9db3bbf08d"), - "10.13.0-windows_amd64": ("node-v10.13.0-win-x64.zip", "node-v10.13.0-win-x64", "eb09c9e9677f1919ec1ca78623c09b2a718ec5388b72b7662d5c41e5f628a52c"), - # 10.16.0 - "10.16.0-darwin_amd64": ("node-v10.16.0-darwin-x64.tar.gz", "node-v10.16.0-darwin-x64", "6c009df1b724026d84ae9a838c5b382662e30f6c5563a0995532f2bece39fa9c"), - "10.16.0-linux_amd64": ("node-v10.16.0-linux-x64.tar.xz", "node-v10.16.0-linux-x64", "1827f5b99084740234de0c506f4dd2202a696ed60f76059696747c34339b9d48"), - "10.16.0-windows_amd64": ("node-v10.16.0-win-x64.zip", "node-v10.16.0-win-x64", "aa22cb357f0fb54ccbc06b19b60e37eefea5d7dd9940912675d3ed988bf9a059"), - # 12.13.0 - "12.13.0-darwin_amd64": ("node-v12.13.0-darwin-x64.tar.gz", "node-v12.13.0-darwin-x64", "49a7374670a111b033ce16611b20fd1aafd3296bbc662b184fe8fb26a29c22cc"), - "12.13.0-linux_amd64": ("node-v12.13.0-linux-x64.tar.xz", "node-v12.13.0-linux-x64", "7a57ef2cb3036d7eacd50ae7ba07245a28336a93652641c065f747adb2a356d9"), - "12.13.0-linux_arm64": ("node-v12.13.0-linux-arm64.tar.xz", "node-v12.13.0-linux-arm64", "d65b3ce27639f15ae22941e3ff98a1c900aa9049fcc15518038615b0676037d5"), - "12.13.0-windows_amd64": ("node-v12.13.0-win-x64.zip", "node-v12.13.0-win-x64", "6f920cebeecb4957b4ef0def6d9b04c49d4582864f8d1a207ce8d0665865781a"), - # When adding a new version. please update /docs/install.md - }, doc = """Custom list of node repositories to use A dictionary mapping NodeJS versions to sets of hosts and their corresponding (filename, strip_prefix, sha256) tuples. You should list a node binary for every platform users have, likely Mac, Windows, and Linux. -For example, - -```python -node_repositories( - node_repositories = { - "10.10.0-darwin_amd64": ("node-v10.10.0-darwin-x64.tar.gz", "node-v10.10.0-darwin-x64", "00b7a8426e076e9bf9d12ba2d571312e833fe962c70afafd10ad3682fdeeaa5e"), - "10.10.0-linux_amd64": ("node-v10.10.0-linux-x64.tar.xz", "node-v10.10.0-linux-x64", "686d2c7b7698097e67bcd68edc3d6b5d28d81f62436c7cf9e7779d134ec262a9"), - "10.10.0-windows_amd64": ("node-v10.10.0-win-x64.zip", "node-v10.10.0-win-x64", "70c46e6451798be9d052b700ce5dadccb75cf917f6bf0d6ed54344c856830cfb"), - }, -) -``` +By default, if this attribute has no items, we'll use a list of all public NodeJS releases. """, ), "node_urls": attr.string_list( @@ -141,19 +167,6 @@ Each entry is a template for downloading a node distribution. The `{version}` parameter is substituted with the `node_version` attribute, and `{filename}` with the matching entry from the `node_repositories` attribute. - -For example, given - -```python -node_repositories( - node_version = "10.10.0", - node_repositories = {"10.10.0-darwin_amd64": ("node-v10.10.0-darwin-x64.tar.gz", "node-v10.10.0-darwin-x64", "00b7a8426e076e9bf9d12ba2d571312e833fe962c70afafd10ad3682fdeeaa5e")}, - node_urls = ["https://mycorpproxy/mirror/node/v{version}/{filename}"], -) -``` - -A Mac client will try to download node from `https://mycorpproxy/mirror/node/v10.10.0/node-v10.10.0-darwin-x64.tar.gz` -and expect that file to have sha256sum `00b7a8426e076e9bf9d12ba2d571312e833fe962c70afafd10ad3682fdeeaa5e` """, ), "node_version": attr.string( @@ -181,42 +194,24 @@ a stronger guarantee of hermeticity which is required for remote execution.""", allow_single_file = True, doc = """the local path to a pre-installed NodeJS runtime. -If set then also set node_version to the version that of node that is vendored. -Bazel will automatically turn on features such as --preserve-symlinks-main if they -are supported by the node version being used.""", +If set then also set node_version to the version that of node that is vendored.""", ), "vendored_yarn": attr.label( allow_single_file = True, doc = "the local path to a pre-installed yarn tool", ), + "yarn_download_auth": attr.string_dict( + default = {}, + doc = """auth to use for all url requests +Example: {\"type\": \"basic\", \"login\": \"\", \"password\": \"\" } +""", + ), "yarn_repositories": attr.string_list_dict( - # @unsorted-dict-items - default = { - "1.3.2": ("yarn-v1.3.2.tar.gz", "yarn-v1.3.2", "6cfe82e530ef0837212f13e45c1565ba53f5199eec2527b85ecbcd88bf26821d"), - "1.5.1": ("yarn-v1.5.1.tar.gz", "yarn-v1.5.1", "cd31657232cf48d57fdbff55f38bfa058d2fb4950450bd34af72dac796af4de1"), - "1.6.0": ("yarn-v1.6.0.tar.gz", "yarn-v1.6.0", "a57b2fdb2bfeeb083d45a883bc29af94d5e83a21c25f3fc001c295938e988509"), - "1.9.2": ("yarn-v1.9.2.tar.gz", "yarn-v1.9.2", "3ad69cc7f68159a562c676e21998eb21b44138cae7e8fe0749a7d620cf940204"), - "1.9.4": ("yarn-v1.9.4.tar.gz", "yarn-v1.9.4", "7667eb715077b4bad8e2a832e7084e0e6f1ba54d7280dc573c8f7031a7fb093e"), - "1.12.1": ("yarn-v1.12.1.tar.gz", "yarn-v1.12.1", "09bea8f4ec41e9079fa03093d3b2db7ac5c5331852236d63815f8df42b3ba88d"), - "1.12.3": ("yarn-v1.12.3.tar.gz", "yarn-v1.12.3", "02cd4b589ec22c4bdbd2bc5ebbfd99c5e99b07242ad68a539cb37896b93a24f2"), - "1.13.0": ("yarn-v1.13.0.tar.gz", "yarn-v1.13.0", "125d40ebf621ebb08e3f66a618bd2cc5cd77fa317a312900a1ab4360ed38bf14"), - "1.19.1": ("yarn-v1.19.1.tar.gz", "yarn-v1.19.1", "34293da6266f2aae9690d59c2d764056053ff7eebc56b80b8df05010c3da9343"), - "1.22.4": ("yarn-v1.22.4.tar.gz", "yarn-v1.22.4", "bc5316aa110b2f564a71a3d6e235be55b98714660870c5b6b2d2d3f12587fb58"), - # When adding a new version. please update /docs/install.md - }, doc = """Custom list of yarn repositories to use. Dictionary mapping Yarn versions to their corresponding (filename, strip_prefix, sha256) tuples. -For example, - -```python -node_repositories( - yarn_repositories = { - "1.12.1": ("yarn-v1.12.1.tar.gz", "yarn-v1.12.1", "09bea8f4ec41e9079fa03093d3b2db7ac5c5331852236d63815f8df42b3ba88d"), - }, -) -``` +By default, if this attribute has no items, we'll use a list of all public NodeJS releases. """, ), "yarn_urls": attr.string_list( @@ -227,23 +222,6 @@ node_repositories( doc = """custom list of URLs to use to download Yarn Each entry is a template, similar to the `node_urls` attribute, using `yarn_version` and `yarn_repositories` in the substitutions. - -For example, - -```python -node_repositories( - yarn_repositories = { - "1.12.1": ("yarn-v1.12.1.tar.gz", "yarn-v1.12.1", "09bea8f4ec41e9079fa03093d3b2db7ac5c5331852236d63815f8df42b3ba88d"), - }, - yarn_version = "1.12.1", - yarn_urls = [ - "https://github.com/yarnpkg/yarn/releases/download/v{version}/{filename}", - ], -) -``` - -Will download yarn from https://github.com/yarnpkg/yarn/releases/download/v1.2.1/yarn-v1.12.1.tar.gz` -and expect the file to have sha256sum `09bea8f4ec41e9079fa03093d3b2db7ac5c5331852236d63815f8df42b3ba88d`. """, ), "yarn_version": attr.string( @@ -257,6 +235,7 @@ BUILT_IN_NODE_PLATFORMS = [ "linux_amd64", "linux_arm64", "windows_amd64", + "linux_s390x", ] NODE_EXTRACT_DIR = "bin/nodejs" @@ -295,6 +274,11 @@ def _download_node(repository_ctx): node_version = repository_ctx.attr.node_version node_repositories = repository_ctx.attr.node_repositories + + # We insert our default value here, not on the attribute's default, so it isn't documented. + # The size of NODE_VERSIONS constant is huge and not useful to document. + if not node_repositories.items(): + node_repositories = NODE_VERSIONS node_urls = repository_ctx.attr.node_urls # Download node & npm @@ -303,8 +287,14 @@ def _download_node(repository_ctx): fail("Unknown NodeJS version-host %s" % version_host_os) filename, strip_prefix, sha256 = node_repositories[version_host_os] + urls = [url.format(version = node_version, filename = filename) for url in node_urls] + auth = {} + for url in urls: + auth[url] = repository_ctx.attr.node_download_auth + repository_ctx.download_and_extract( - url = [url.format(version = node_version, filename = filename) for url in node_urls], + auth = auth, + url = urls, output = NODE_EXTRACT_DIR, stripPrefix = strip_prefix, sha256 = sha256, @@ -333,6 +323,11 @@ def _download_yarn(repository_ctx): yarn_version = repository_ctx.attr.yarn_version yarn_repositories = repository_ctx.attr.yarn_repositories + + # We insert our default value here, not on the attribute's default, so it isn't documented. + # The size of _YARN_VERSIONS constant is huge and not useful to document. + if not yarn_repositories.items(): + yarn_repositories = _YARN_VERSIONS yarn_urls = repository_ctx.attr.yarn_urls if yarn_version in yarn_repositories: @@ -340,8 +335,15 @@ def _download_yarn(repository_ctx): else: fail("Unknown Yarn version %s" % yarn_version) + urls = [url.format(version = yarn_version, filename = filename) for url in yarn_urls] + + auth = {} + for url in urls: + auth[url] = repository_ctx.attr.yarn_download_auth + repository_ctx.download_and_extract( - url = [url.format(version = yarn_version, filename = filename) for url in yarn_urls], + auth = auth, + url = urls, output = YARN_EXTRACT_DIR, stripPrefix = strip_prefix, sha256 = sha256, @@ -434,13 +436,7 @@ def _prepare_node(repository_ctx): yarn_script_relative = yarn_script if repository_ctx.attr.vendored_yarn else paths.relativize(yarn_script, "bin") if repository_ctx.attr.preserve_symlinks: - # --preserve-symlinks-main flag added in node 10.2.0 - # See https://nodejs.org/api/cli.html#cli_preserve_symlinks_main - preserve_symlinks_main_support = check_version(repository_ctx.attr.node_version, "10.2.0") - if preserve_symlinks_main_support: - node_args = "--preserve-symlinks --preserve-symlinks-main" - else: - node_args = "--preserve-symlinks" + node_args = "--preserve-symlinks" else: node_args = "" @@ -556,6 +552,13 @@ if %errorlevel% neq 0 exit /b %errorlevel% script = repository_ctx.path(npm_script), )) + repository_ctx.file("run_npm.bat.template", content = """ +"{node}" "{script}" TMPL_args %* +""".format( + node = repository_ctx.path(node_entry), + script = repository_ctx.path(npm_script), + )) + # The entry points for yarn for osx/linux and windows. # Runs yarn using appropriate node entry point. # Unset YARN_IGNORE_PATH before calling yarn incase it is set so that @@ -638,6 +641,7 @@ if %errorlevel% neq 0 exit /b %errorlevel% package(default_visibility = ["//visibility:public"]) exports_files([ "run_npm.sh.template", + "run_npm.bat.template", "bin/node_repo_args.sh",{node_bin_export}{npm_bin_export}{npx_bin_export}{yarn_bin_export} "{node_entry}", "{npm_entry}", @@ -660,17 +664,19 @@ filegroup( ) filegroup( name = "yarn_files", - srcs = glob(["bin/yarnpkg/**"]) + [":node_files"], + srcs = {yarn_files_glob}[":node_files"], ) filegroup( name = "npm_files", - srcs = glob(["bin/nodejs/**"]) + [":node_files"], + srcs = {npm_files_glob}[":node_files"], ) """.format( node_bin_export = "" if repository_ctx.attr.vendored_node else ("\n \"%s\"," % node_bin), npm_bin_export = "" if repository_ctx.attr.vendored_node else ("\n \"%s\"," % npm_bin), npx_bin_export = "" if repository_ctx.attr.vendored_node else ("\n \"%s\"," % npx_bin), + npm_files_glob = "" if repository_ctx.attr.vendored_node else "glob([\"bin/nodejs/**\"]) + ", yarn_bin_export = "" if repository_ctx.attr.vendored_yarn else ("\n \"%s\"," % yarn_bin), + yarn_files_glob = "" if repository_ctx.attr.vendored_yarn else "glob([\"bin/yarnpkg/**\"]) + ", node_bin_label = node_bin_label, npm_bin_label = npm_bin_label, npx_bin_label = npx_bin_label, @@ -701,6 +707,7 @@ def _nodejs_host_os_alias_impl(repository_ctx): package(default_visibility = ["//visibility:public"]) # aliases for exports_files alias(name = "run_npm.sh.template", actual = "{node_repository}//:run_npm.sh.template") +alias(name = "run_npm.bat.template", actual = "{node_repository}//:run_npm.bat.template") alias(name = "bin/node_repo_args.sh", actual = "{node_repository}//:bin/node_repo_args.sh") # aliases for other aliases alias(name = "node_bin", actual = "{node_repository}//:node_bin") diff --git a/internal/node/node_versions.bzl b/internal/node/node_versions.bzl new file mode 100644 index 0000000000..818fb03e5f --- /dev/null +++ b/internal/node/node_versions.bzl @@ -0,0 +1,1063 @@ +""" Generated code; do not edit +Update by running yarn update-nodejs-versions +""" + +# @unsorted-dict-items +NODE_VERSIONS = { + # 8.0.0 + "8.0.0-darwin_amd64": ("node-v8.0.0-darwin-x64.tar.gz", "node-v8.0.0-darwin-x64", "6e4a66917e2c11d5adc537c899941c973ae586293352b8172a4f32be0b7f0300"), + "8.0.0-linux_arm64": ("node-v8.0.0-linux-arm64.tar.xz", "node-v8.0.0-linux-arm64", "8d6eaefcc252055de54a666d4e00eec78caf2143cd7a13b63f109e9eb78a795e"), + "8.0.0-linux_s390x": ("node-v8.0.0-linux-s390x.tar.xz", "node-v8.0.0-linux-s390x", "feb15265c8d8887f267dedbe2d84a80a60f3680e6424cc49d67bcca60bb66794"), + "8.0.0-linux_amd64": ("node-v8.0.0-linux-x64.tar.xz", "node-v8.0.0-linux-x64", "0a536bb83eeccca23626e5e5ead52563a641e4331c35e367662892921dc7e8a4"), + "8.0.0-windows_amd64": ("node-v8.0.0-win-x64.zip", "node-v8.0.0-win-x64", "84410377118857674e0fb6e7bc7627ffb8cc67a72f162a050276b076e328a9bb"), + # 8.1.0 + "8.1.0-darwin_amd64": ("node-v8.1.0-darwin-x64.tar.gz", "node-v8.1.0-darwin-x64", "08af5f1a7441728cabf9b11af25da28ee1725903524968dd9621b885b13303c7"), + "8.1.0-linux_arm64": ("node-v8.1.0-linux-arm64.tar.xz", "node-v8.1.0-linux-arm64", "adf2f517c9847cbb5904b282c0819526b5264c256477ed5e4b258584daa1a2ea"), + "8.1.0-linux_s390x": ("node-v8.1.0-linux-s390x.tar.xz", "node-v8.1.0-linux-s390x", "8fb1e8335349324048236eafebd3c089791c183ef539fa6a5314ca7c77b5f056"), + "8.1.0-linux_amd64": ("node-v8.1.0-linux-x64.tar.xz", "node-v8.1.0-linux-x64", "1638a0083c6eee122cbbefdf39cb8bcc43cf19fedff331a0317b05fd38dcb6df"), + "8.1.0-windows_amd64": ("node-v8.1.0-win-x64.zip", "node-v8.1.0-win-x64", "cee1fd1c828e8996824a2d9f9056dfae771b77c05b15ad015bc7f8800409215c"), + # 8.1.1 + "8.1.1-darwin_amd64": ("node-v8.1.1-darwin-x64.tar.gz", "node-v8.1.1-darwin-x64", "2f67890a5a46564672cfd4522cc00c7ac04d307e6a942ae1ad38b6aee94c29e2"), + "8.1.1-linux_arm64": ("node-v8.1.1-linux-arm64.tar.xz", "node-v8.1.1-linux-arm64", "3971543f9d29f77ddb8f47a54e4b99422a822173599748ab7fcd9c35c8e25124"), + "8.1.1-linux_s390x": ("node-v8.1.1-linux-s390x.tar.xz", "node-v8.1.1-linux-s390x", "e972942b7b916456ce7339f6b7cbf0a5efffe486bc9a6e6fe853a046b4a3beda"), + "8.1.1-linux_amd64": ("node-v8.1.1-linux-x64.tar.xz", "node-v8.1.1-linux-x64", "6a735e77bdd21c92fe85ea5f9f567d0d6930fa33e0e111946b17cdb7efefb8d5"), + "8.1.1-windows_amd64": ("node-v8.1.1-win-x64.zip", "node-v8.1.1-win-x64", "459f3b62e58f4fac3b9b5e49694855f338f3dcf2fcf955299ee2a47f7687625a"), + # 8.1.2 + "8.1.2-darwin_amd64": ("node-v8.1.2-darwin-x64.tar.gz", "node-v8.1.2-darwin-x64", "70f353449b19d6d36262f5e38f9cc23e80b2034c21ae48623a6a4890f513eb53"), + "8.1.2-linux_arm64": ("node-v8.1.2-linux-arm64.tar.xz", "node-v8.1.2-linux-arm64", "d468ac671047a5a5edb6edd34a9a625645505551c35ef73e2102c504535a09d4"), + "8.1.2-linux_s390x": ("node-v8.1.2-linux-s390x.tar.xz", "node-v8.1.2-linux-s390x", "565efacce07bad77823252d6b1883e717d15dec1db3504528a7ad3f3b5c25f65"), + "8.1.2-linux_amd64": ("node-v8.1.2-linux-x64.tar.xz", "node-v8.1.2-linux-x64", "f5dc173d3005fbcfd107c83a15d4dbff9a28ff53ab42c23344a572d84814ecfe"), + "8.1.2-windows_amd64": ("node-v8.1.2-win-x64.zip", "node-v8.1.2-win-x64", "5463c812afeb498ad8ab9c396246e455d9353ab48ae409c82a2a45193e161f66"), + # 8.1.3 + "8.1.3-darwin_amd64": ("node-v8.1.3-darwin-x64.tar.gz", "node-v8.1.3-darwin-x64", "ae588038480a6acc57b6b04802fa876e0b602231e9846944dd1b4437e8c1205f"), + "8.1.3-linux_arm64": ("node-v8.1.3-linux-arm64.tar.xz", "node-v8.1.3-linux-arm64", "cebc2edd89f20613a530509a2435ecc42757ce16032559ef174ebe84875a1536"), + "8.1.3-linux_s390x": ("node-v8.1.3-linux-s390x.tar.xz", "node-v8.1.3-linux-s390x", "ab54cde2b649002a6f322a460690438d20997a4ff2b3c294b66afc075df24fb6"), + "8.1.3-linux_amd64": ("node-v8.1.3-linux-x64.tar.xz", "node-v8.1.3-linux-x64", "d41dc375ea7e33fadf0fb1bf89d9dfd222a2fb85633fba3d2cf48ac03522ba71"), + "8.1.3-windows_amd64": ("node-v8.1.3-win-x64.zip", "node-v8.1.3-win-x64", "be582920c723124ebad48c968f539ef66b1f628d8b6f2338dc68a32f95104856"), + # 8.1.4 + "8.1.4-darwin_amd64": ("node-v8.1.4-darwin-x64.tar.gz", "node-v8.1.4-darwin-x64", "a24858a10dd4ca8ad55fd61a7472b4fe9140eb3fa347c41717360c3f29438748"), + "8.1.4-linux_arm64": ("node-v8.1.4-linux-arm64.tar.xz", "node-v8.1.4-linux-arm64", "3553c617f594286fea7052678d04aec9e167adddf702b70431d88ce42573c339"), + "8.1.4-linux_s390x": ("node-v8.1.4-linux-s390x.tar.xz", "node-v8.1.4-linux-s390x", "283f144c12d018e43a9612245b40961a37c3a2b92e9c603e7e31dd62691cbecf"), + "8.1.4-linux_amd64": ("node-v8.1.4-linux-x64.tar.xz", "node-v8.1.4-linux-x64", "d82fe7ef7e0f8ca1c343f00e3e490996553507ec7d42034f5df034cc7908caaf"), + "8.1.4-windows_amd64": ("node-v8.1.4-win-x64.zip", "node-v8.1.4-win-x64", "cc3689ffefc738f6256aab1713343c3c64c24ec997600c0a48243fb26f5e0bce"), + # 8.2.0 + "8.2.0-darwin_amd64": ("node-v8.2.0-darwin-x64.tar.gz", "node-v8.2.0-darwin-x64", "da5cca37ae0afdbff3a269bb3dc71ff0d86e282920286f71ae5eb6757cfa5356"), + "8.2.0-linux_arm64": ("node-v8.2.0-linux-arm64.tar.xz", "node-v8.2.0-linux-arm64", "3298ae4ae67c4ad714bed23383fd08db5711b164a077a25fb6b282533e65cf77"), + "8.2.0-linux_s390x": ("node-v8.2.0-linux-s390x.tar.xz", "node-v8.2.0-linux-s390x", "1b963af31bf545e2c14313946b9196ba898b080be364a731ac6c342a3f60f45b"), + "8.2.0-linux_amd64": ("node-v8.2.0-linux-x64.tar.xz", "node-v8.2.0-linux-x64", "e8ceaac3ee4385d53bcebc552a7a6b545b09b9652f5ca1b254aae698fd9a25f9"), + "8.2.0-windows_amd64": ("node-v8.2.0-win-x64.zip", "node-v8.2.0-win-x64", "6bc3cc580f0e8190e6a03d6a5967c861c29d6a6eb50f995b3afb7d60b8cee4e1"), + # 8.2.1 + "8.2.1-darwin_amd64": ("node-v8.2.1-darwin-x64.tar.gz", "node-v8.2.1-darwin-x64", "32d0923c147470d57f18f055014f5a9fe8a3919406010a2e80ba85952d3c9923"), + "8.2.1-linux_arm64": ("node-v8.2.1-linux-arm64.tar.xz", "node-v8.2.1-linux-arm64", "9ed01737f37d410067beeb42066e51f6d0385677c7d0daeeaf2e32cb2aca854a"), + "8.2.1-linux_s390x": ("node-v8.2.1-linux-s390x.tar.xz", "node-v8.2.1-linux-s390x", "7af75022ec9a37fd59890add4a8165a7b6d6f9300bc94abab32a97de3fd0e7a8"), + "8.2.1-linux_amd64": ("node-v8.2.1-linux-x64.tar.xz", "node-v8.2.1-linux-x64", "abcddeb95cc4465953b1edb0922d20e9b0b3de83688fc8150b863117032a978a"), + "8.2.1-windows_amd64": ("node-v8.2.1-win-x64.zip", "node-v8.2.1-win-x64", "37e84e54c67e3d1e52d657c04835b211c94631a0b358f4e7dc351618fdb6c083"), + # 8.3.0 + "8.3.0-darwin_amd64": ("node-v8.3.0-darwin-x64.tar.gz", "node-v8.3.0-darwin-x64", "a627354982a514e77e5c37ed5952edc81a7dd9c4f661fd919f192c21ae548654"), + "8.3.0-linux_arm64": ("node-v8.3.0-linux-arm64.tar.xz", "node-v8.3.0-linux-arm64", "9e0dab4913585a1b8117bda03c4b5581d9140aec67bb4be0e0b6a4999b41b4ab"), + "8.3.0-linux_s390x": ("node-v8.3.0-linux-s390x.tar.xz", "node-v8.3.0-linux-s390x", "b6b69de4645e47bd645db202096f92494d05c2de125f7331c30d4e552e8d478b"), + "8.3.0-linux_amd64": ("node-v8.3.0-linux-x64.tar.xz", "node-v8.3.0-linux-x64", "ae377995c6e1af8e2a60c4a929f77562ebed9a2c6897cbd311a2c331f76b4e0f"), + "8.3.0-windows_amd64": ("node-v8.3.0-win-x64.zip", "node-v8.3.0-win-x64", "e762fa218465e5aa0952336eee2c3e42e5b48390b36838ca7b6a243812e0b7e5"), + # 8.4.0 + "8.4.0-darwin_amd64": ("node-v8.4.0-darwin-x64.tar.gz", "node-v8.4.0-darwin-x64", "cc10ffbd11586bd27a7cc5e6e2d03fd3e0b341368387a03ee9a0117a0288599d"), + "8.4.0-linux_arm64": ("node-v8.4.0-linux-arm64.tar.xz", "node-v8.4.0-linux-arm64", "0a811bbe4905fc879f3cbfc976e5a37cca05bbd609774abe4332b29fea75f073"), + "8.4.0-linux_s390x": ("node-v8.4.0-linux-s390x.tar.xz", "node-v8.4.0-linux-s390x", "5bb1a98dbd9376b7b605450f478de32027afa10e591d0384ba8bab6603ff12f5"), + "8.4.0-linux_amd64": ("node-v8.4.0-linux-x64.tar.xz", "node-v8.4.0-linux-x64", "7fd86abad06f96cb2f889c2a0e25686a3de3e9a078ad946ded91ee4f28d8218a"), + "8.4.0-windows_amd64": ("node-v8.4.0-win-x64.zip", "node-v8.4.0-win-x64", "0f60c99479f74d75c7239795c90698826ba8252019d4c23e82ed0d72ceb8974f"), + # 8.5.0 + "8.5.0-darwin_amd64": ("node-v8.5.0-darwin-x64.tar.gz", "node-v8.5.0-darwin-x64", "0c8d4c4d90f858a19a29fe1ae7f42b2b7f1a4d3caaa25bea2e08479c00ebbd5f"), + "8.5.0-linux_arm64": ("node-v8.5.0-linux-arm64.tar.xz", "node-v8.5.0-linux-arm64", "e0decdebe73dba516d6c72401e337cee6277c6e00f817b0bf1c592360adfd4e6"), + "8.5.0-linux_s390x": ("node-v8.5.0-linux-s390x.tar.xz", "node-v8.5.0-linux-s390x", "b75d06cadaa1611b0ee10ebc5a3127f529afc1e19d3ee1299ba05f31c9f969fa"), + "8.5.0-linux_amd64": ("node-v8.5.0-linux-x64.tar.xz", "node-v8.5.0-linux-x64", "a9651fcc6259b4a944ebb72e6dd116602c7b26ddf939599b060d1d3e6ead8c36"), + "8.5.0-windows_amd64": ("node-v8.5.0-win-x64.zip", "node-v8.5.0-win-x64", "c385d162c15a7a85d42755ee8c78c1c73bd251e2f7cbf82e5e20c824564aa9df"), + # 8.6.0 + "8.6.0-darwin_amd64": ("node-v8.6.0-darwin-x64.tar.gz", "node-v8.6.0-darwin-x64", "2c95f3194a92e8b37aab8895fbaeb1f5fabef3494600ef78a7b7e078dba9a7c9"), + "8.6.0-linux_arm64": ("node-v8.6.0-linux-arm64.tar.xz", "node-v8.6.0-linux-arm64", "6848567ab32d04694120e18c20ef47d0f4163229634f236e4bdbb8d135f3204e"), + "8.6.0-linux_s390x": ("node-v8.6.0-linux-s390x.tar.xz", "node-v8.6.0-linux-s390x", "92ba7e75d57479db855cb6f3b831a9add2651a6a3de9fea585c66acecf2eb571"), + "8.6.0-linux_amd64": ("node-v8.6.0-linux-x64.tar.xz", "node-v8.6.0-linux-x64", "e6f52c3ed7e2cc34ebddbc563434fdf043feb449a60f028101eb45227aec3444"), + "8.6.0-windows_amd64": ("node-v8.6.0-win-x64.zip", "node-v8.6.0-win-x64", "08e9b29c47567517ca95ca01d5cdb255279be5463952f92da5c372a99d620b23"), + # 8.7.0 + "8.7.0-darwin_amd64": ("node-v8.7.0-darwin-x64.tar.gz", "node-v8.7.0-darwin-x64", "5e59798c1deafd671a35ef4dcdb9b97ce98f9255a056832dc98d454613e9ea08"), + "8.7.0-linux_arm64": ("node-v8.7.0-linux-arm64.tar.xz", "node-v8.7.0-linux-arm64", "5a1a1907fbb6d90667ce70ad42602534f6cc6eda873d1c50a3259349aee73418"), + "8.7.0-linux_s390x": ("node-v8.7.0-linux-s390x.tar.xz", "node-v8.7.0-linux-s390x", "a8569f4293467da1b2b0cadb71cc256e84359dbcba194469d8fc0215c902b5d9"), + "8.7.0-linux_amd64": ("node-v8.7.0-linux-x64.tar.xz", "node-v8.7.0-linux-x64", "9d6f649576cac74ef0b6634af8265156370cf8fdf3676f03e867347d3207675d"), + "8.7.0-windows_amd64": ("node-v8.7.0-win-x64.zip", "node-v8.7.0-win-x64", "e95be435674e82ea7133c3268cb70044eabde2d0aef28b2a3df5c7d8d23cadcc"), + # 8.8.0 + "8.8.0-darwin_amd64": ("node-v8.8.0-darwin-x64.tar.gz", "node-v8.8.0-darwin-x64", "69a37e240fac48289a2a5bb75ab96091f8d6457eeaf23c0a5125250abe418176"), + "8.8.0-linux_arm64": ("node-v8.8.0-linux-arm64.tar.xz", "node-v8.8.0-linux-arm64", "454617ff94882d9a81dca0840065fb5a928ff68e8e8efe7c1748d996ab757b2e"), + "8.8.0-linux_s390x": ("node-v8.8.0-linux-s390x.tar.xz", "node-v8.8.0-linux-s390x", "5405e9f28db36d798253e74d6a52764a91170bf8578fc793620b598c958c5522"), + "8.8.0-linux_amd64": ("node-v8.8.0-linux-x64.tar.xz", "node-v8.8.0-linux-x64", "4304c297f41085ac1f7a6a8e68496d9fd5aa3b92590e7c3c6015a23939767e72"), + "8.8.0-windows_amd64": ("node-v8.8.0-win-x64.zip", "node-v8.8.0-win-x64", "a7a1fd2c5f5c967d7df70fdec1a8b2d2d2b1b411fcdd4f23bcf8c9c837a7c3cb"), + # 8.8.1 + "8.8.1-darwin_amd64": ("node-v8.8.1-darwin-x64.tar.gz", "node-v8.8.1-darwin-x64", "bf208e29418fb3efc836d3d32b62b9162f0f0b36a0665abc0990f4e292cfc84b"), + "8.8.1-linux_arm64": ("node-v8.8.1-linux-arm64.tar.xz", "node-v8.8.1-linux-arm64", "ea8ad0286a31e7519e979fcf99e503845a95da640cd140be5cff418a68fa6263"), + "8.8.1-linux_s390x": ("node-v8.8.1-linux-s390x.tar.xz", "node-v8.8.1-linux-s390x", "afa4f725973c956ea7975cce43bd608f078b0c8a25b25d57d76cdefd0a3b6560"), + "8.8.1-linux_amd64": ("node-v8.8.1-linux-x64.tar.xz", "node-v8.8.1-linux-x64", "004bc95267ef5d5b928f560582f681a679bada2201bf221735a02f4956f67b09"), + "8.8.1-windows_amd64": ("node-v8.8.1-win-x64.zip", "node-v8.8.1-win-x64", "a7e60a1a5f46ef309cbe74e423c17e69dd0a573f0c92c9e325caade3388d192a"), + # 8.9.0 + "8.9.0-darwin_amd64": ("node-v8.9.0-darwin-x64.tar.gz", "node-v8.9.0-darwin-x64", "aaf165348bc6d20012b048a88a8f3a35cba6799496e8f4c1246d85c524a84dbc"), + "8.9.0-linux_arm64": ("node-v8.9.0-linux-arm64.tar.xz", "node-v8.9.0-linux-arm64", "30cb00ac1cf6b466b1f27e7ce41363a67a66dbb64227c2dc5e33d221b09fc579"), + "8.9.0-linux_s390x": ("node-v8.9.0-linux-s390x.tar.xz", "node-v8.9.0-linux-s390x", "30df7e252e9030bf4575d39774fd9a24d7418814ef4025d0b18f1034d5484cb0"), + "8.9.0-linux_amd64": ("node-v8.9.0-linux-x64.tar.xz", "node-v8.9.0-linux-x64", "e92b91fa473f9ad805a1241907b6f1bd3f8ceac8426a8b4cb05428e62e243bdd"), + "8.9.0-windows_amd64": ("node-v8.9.0-win-x64.zip", "node-v8.9.0-win-x64", "dd971e43ff003213b0be31c1a8ce3421f72e0db2a703bc254ac685be4f7f609e"), + # 8.9.1 + "8.9.1-darwin_amd64": ("node-v8.9.1-darwin-x64.tar.gz", "node-v8.9.1-darwin-x64", "05c992a6621d28d564b92bf3051a5dc0adf83839237c0d4653a8cdb8a1c73b94"), + "8.9.1-linux_arm64": ("node-v8.9.1-linux-arm64.tar.xz", "node-v8.9.1-linux-arm64", "f774660980dcf931bf29847a5f26317823a063fa4a56f85f37c3222d77cce7c1"), + "8.9.1-linux_s390x": ("node-v8.9.1-linux-s390x.tar.xz", "node-v8.9.1-linux-s390x", "bf9c37cc33b524724c2e474c2745c2ba34843a8b8bf8051c8e40ab0d934965cd"), + "8.9.1-linux_amd64": ("node-v8.9.1-linux-x64.tar.xz", "node-v8.9.1-linux-x64", "8be82805f7c1ab3e64d4569fb9a90ded2de78dd27cadbb91bad1bf975dae1e2d"), + "8.9.1-windows_amd64": ("node-v8.9.1-win-x64.zip", "node-v8.9.1-win-x64", "db89c6e041da359561fbe7da075bb4f9881a0f7d3e98c203e83732cfb283fa4a"), + # 8.9.2 + "8.9.2-darwin_amd64": ("node-v8.9.2-darwin-x64.tar.gz", "node-v8.9.2-darwin-x64", "ba03ae4c0ebd33e8661b5b241211ddb9f7e3b5b959d8cbd68f5941cb1ed5784d"), + "8.9.2-linux_arm64": ("node-v8.9.2-linux-arm64.tar.xz", "node-v8.9.2-linux-arm64", "cc222b4f910ff27ff66ccc96d5c7e2117942bcd161ec253d83cf430146b79bdf"), + "8.9.2-linux_s390x": ("node-v8.9.2-linux-s390x.tar.xz", "node-v8.9.2-linux-s390x", "57178c23a555209b8b84475f24fa16338deb938baf6ca4b633d080f2dc57263f"), + "8.9.2-linux_amd64": ("node-v8.9.2-linux-x64.tar.xz", "node-v8.9.2-linux-x64", "d4065724e7f5f11e999f78de50fb0faac74341799cb0c0dafcbe87e0ecb0be86"), + "8.9.2-windows_amd64": ("node-v8.9.2-win-x64.zip", "node-v8.9.2-win-x64", "2afa8b899c0dddea50dcf5dda66ae7b0ca32326dbf66c52f947c082e7c95d090"), + # 8.9.3 + "8.9.3-darwin_amd64": ("node-v8.9.3-darwin-x64.tar.gz", "node-v8.9.3-darwin-x64", "fa7962f25db420a374e9e60d8a410188bd690a2f0ce8d403aa9b09d9b7ae8c1f"), + "8.9.3-linux_arm64": ("node-v8.9.3-linux-arm64.tar.xz", "node-v8.9.3-linux-arm64", "8860678ad0c24059380af254574e5a12371a2d5c92ca5e1ac7267314af7df04f"), + "8.9.3-linux_s390x": ("node-v8.9.3-linux-s390x.tar.xz", "node-v8.9.3-linux-s390x", "ca854e0f21bfbc86182134a1dc6197cf09ad4a5e0f640923d51674cc36aad9e2"), + "8.9.3-linux_amd64": ("node-v8.9.3-linux-x64.tar.xz", "node-v8.9.3-linux-x64", "86f3aa593315f0503d069e3f4805019583ab8d86c0244a83c795d1942e3f99b7"), + "8.9.3-windows_amd64": ("node-v8.9.3-win-x64.zip", "node-v8.9.3-win-x64", "17dee0c06d088269123a27db3905a39a17a51cc0ea65435ae942c718f0f94403"), + # 8.9.4 + "8.9.4-darwin_amd64": ("node-v8.9.4-darwin-x64.tar.gz", "node-v8.9.4-darwin-x64", "ca50f7d2035eb805306e303b644bb1cde170ce2615e0a2c6e95fb80881c48c24"), + "8.9.4-linux_arm64": ("node-v8.9.4-linux-arm64.tar.xz", "node-v8.9.4-linux-arm64", "7c0369a5dbc98d0989c208ca3ee1b6db4cba576343014fdbf7d36fd2659f7089"), + "8.9.4-linux_s390x": ("node-v8.9.4-linux-s390x.tar.xz", "node-v8.9.4-linux-s390x", "90c6c284db9482a478dd5110e2171435156d56a013aeda2f636b6240eba156bd"), + "8.9.4-linux_amd64": ("node-v8.9.4-linux-x64.tar.xz", "node-v8.9.4-linux-x64", "68b94aac38cd5d87ab79c5b38306e34a20575f31a3ea788d117c20fffcca3370"), + "8.9.4-windows_amd64": ("node-v8.9.4-win-x64.zip", "node-v8.9.4-win-x64", "48946e99ac4484e071df25741d2300f3a656f476c5ff3f8116a4746c07ebe3b7"), + # 8.10.0 + "8.10.0-darwin_amd64": ("node-v8.10.0-darwin-x64.tar.gz", "node-v8.10.0-darwin-x64", "7d77bd35bc781f02ba7383779da30bd529f21849b86f14d87e097497671b0271"), + "8.10.0-linux_arm64": ("node-v8.10.0-linux-arm64.tar.xz", "node-v8.10.0-linux-arm64", "cbec410109664f75d3c988a43483576fc56f745e05e3884891df9c509fbb1b12"), + "8.10.0-linux_s390x": ("node-v8.10.0-linux-s390x.tar.xz", "node-v8.10.0-linux-s390x", "0744f2b519c3c7f4a73b1b66bc7532ed854eced6a6eab2510b00b8bd74b670f8"), + "8.10.0-linux_amd64": ("node-v8.10.0-linux-x64.tar.xz", "node-v8.10.0-linux-x64", "92220638d661a43bd0fee2bf478cb283ead6524f231aabccf14c549ebc2bc338"), + "8.10.0-windows_amd64": ("node-v8.10.0-win-x64.zip", "node-v8.10.0-win-x64", "936ada36cb6f09a5565571e15eb8006e45c5a513529c19e21d070acf0e50321b"), + # 8.11.0 + "8.11.0-darwin_amd64": ("node-v8.11.0-darwin-x64.tar.gz", "node-v8.11.0-darwin-x64", "408323335b8c691d75397c76ddd7b00490852652c78c813c586ba7eccc5c382b"), + "8.11.0-linux_arm64": ("node-v8.11.0-linux-arm64.tar.xz", "node-v8.11.0-linux-arm64", "a28f599a14ca9ef4062fa1e605b69cd046f81d3fc9a7d6dde1856fb593004b3a"), + "8.11.0-linux_s390x": ("node-v8.11.0-linux-s390x.tar.xz", "node-v8.11.0-linux-s390x", "d2349f0354bdbf38f1be791e6ca0b4f8625984f686be05b38a3dd2d6252eacc3"), + "8.11.0-linux_amd64": ("node-v8.11.0-linux-x64.tar.xz", "node-v8.11.0-linux-x64", "180ef8c2a39c1696b9a05832883ed981ba11475ffa44ca77781a8d1c1954f944"), + "8.11.0-windows_amd64": ("node-v8.11.0-win-x64.zip", "node-v8.11.0-win-x64", "55b9c8d48b59569117a63fdb26e1de05e792c37f563feb7d44b4cd59be96aff8"), + # 8.11.1 + "8.11.1-darwin_amd64": ("node-v8.11.1-darwin-x64.tar.gz", "node-v8.11.1-darwin-x64", "5c7b05899ff56910a2b8180f139d48612f349ac2c5d20f08dbbeffbed9e3a089"), + "8.11.1-linux_arm64": ("node-v8.11.1-linux-arm64.tar.xz", "node-v8.11.1-linux-arm64", "ff518f33751baa8ea4f18853d446357c2edecd930a1526ac9b2eaa79baddc1bf"), + "8.11.1-linux_s390x": ("node-v8.11.1-linux-s390x.tar.xz", "node-v8.11.1-linux-s390x", "d9e892c7222b8c93f4e57f476a031c047345db1ad6785a5c85f9db41c6f8db23"), + "8.11.1-linux_amd64": ("node-v8.11.1-linux-x64.tar.xz", "node-v8.11.1-linux-x64", "6617e245fa0f7fbe0e373e71d543fea878315324ab31dc64b4eba10e42d04c11"), + "8.11.1-windows_amd64": ("node-v8.11.1-win-x64.zip", "node-v8.11.1-win-x64", "7d49b59c2b5d73a14c138e8a215d558a64a5241cd5035d9824f608e7bba097b1"), + # 8.11.2 + "8.11.2-darwin_amd64": ("node-v8.11.2-darwin-x64.tar.gz", "node-v8.11.2-darwin-x64", "6bd619ab577a1256531e50e31924d99a094eb920de8b5bd060a056a2608282b9"), + "8.11.2-linux_arm64": ("node-v8.11.2-linux-arm64.tar.xz", "node-v8.11.2-linux-arm64", "c8e9833402277c1a5a31b41cc31c9cedad68ba87c2ef78aed6a3ced81af9da7f"), + "8.11.2-linux_s390x": ("node-v8.11.2-linux-s390x.tar.xz", "node-v8.11.2-linux-s390x", "ed8069f679b1bbd911c11ad193ebfeddfac0d33724c359e8f2d88f02aba6c235"), + "8.11.2-linux_amd64": ("node-v8.11.2-linux-x64.tar.xz", "node-v8.11.2-linux-x64", "213599127d24496cbf1cbb2a7c51060a3506d6b11132c59bb7f9f8a0edd210a7"), + "8.11.2-windows_amd64": ("node-v8.11.2-win-x64.zip", "node-v8.11.2-win-x64", "bbac1f56e8001a093acb2942f8a43c3bf22aec58216f446b7bf01f6f822dfe3f"), + # 8.11.3 + "8.11.3-darwin_amd64": ("node-v8.11.3-darwin-x64.tar.gz", "node-v8.11.3-darwin-x64", "77fa26b4c2fc34bdf5a5dd1cd39c93b12087fbd25148c6f04bf409698ee48b86"), + "8.11.3-linux_arm64": ("node-v8.11.3-linux-arm64.tar.xz", "node-v8.11.3-linux-arm64", "b8fddec18f20533929a07bc1d38ae63b1999a0252740094f0974b2cbea76eaa4"), + "8.11.3-linux_s390x": ("node-v8.11.3-linux-s390x.tar.xz", "node-v8.11.3-linux-s390x", "4ba85841c7c31e2846bfaf4346e3c6419e30318bc42677f60bb0d1d5dedebcfd"), + "8.11.3-linux_amd64": ("node-v8.11.3-linux-x64.tar.xz", "node-v8.11.3-linux-x64", "08e2fcfea66746bd966ea3a89f26851f1238d96f86c33eaf6274f67fce58421a"), + "8.11.3-windows_amd64": ("node-v8.11.3-win-x64.zip", "node-v8.11.3-win-x64", "91b779def1b21dcd1def7fc9671a869a1e2f989952e76fdc08a5d73570075f31"), + # 8.11.4 + "8.11.4-darwin_amd64": ("node-v8.11.4-darwin-x64.tar.gz", "node-v8.11.4-darwin-x64", "aa1de83b388581d0d9ec3276f4526ee67e17e0f1bc0deb5133f960ce5dc9f1ef"), + "8.11.4-linux_arm64": ("node-v8.11.4-linux-arm64.tar.xz", "node-v8.11.4-linux-arm64", "46e90dd916ddbf88c866de300c1b2a26f9216b19abd92b29e89439f62fb6fc1c"), + "8.11.4-linux_s390x": ("node-v8.11.4-linux-s390x.tar.xz", "node-v8.11.4-linux-s390x", "9d3304bc008da18b26493baa243033393cc9f4616f549ac3a0b03478747e6259"), + "8.11.4-linux_amd64": ("node-v8.11.4-linux-x64.tar.xz", "node-v8.11.4-linux-x64", "85ea7cbb5bf624e130585bfe3946e99c85ce5cb84c2aee474038bdbe912f908c"), + "8.11.4-windows_amd64": ("node-v8.11.4-win-x64.zip", "node-v8.11.4-win-x64", "72a21e2fcd3703994f57cf707b92e7f939df99c3e0298102e7436849e4948536"), + # 8.12.0 + "8.12.0-darwin_amd64": ("node-v8.12.0-darwin-x64.tar.gz", "node-v8.12.0-darwin-x64", "ca131b84dfcf2b6f653a6521d31f7a108ad7d83f4d7e781945b2eca8172064aa"), + "8.12.0-linux_arm64": ("node-v8.12.0-linux-arm64.tar.xz", "node-v8.12.0-linux-arm64", "0fbdcfd8cf0cb5e8f5beff84ba091fd47126ba44c628e3a351501419b211aa1a"), + "8.12.0-linux_s390x": ("node-v8.12.0-linux-s390x.tar.xz", "node-v8.12.0-linux-s390x", "ac5d0645af733d5f9eb49caf27d2cb72f9ed0858806af2c967aff23c7ad40ede"), + "8.12.0-linux_amd64": ("node-v8.12.0-linux-x64.tar.xz", "node-v8.12.0-linux-x64", "29a20479cd1e3a03396a4e74a1784ccdd1cf2f96928b56f6ffa4c8dae40c88f2"), + "8.12.0-windows_amd64": ("node-v8.12.0-win-x64.zip", "node-v8.12.0-win-x64", "9b22c9b23148b61ea0052826b3ac0255b8a3a542c125272b8f014f15bf11b091"), + # 8.13.0 + "8.13.0-darwin_amd64": ("node-v8.13.0-darwin-x64.tar.gz", "node-v8.13.0-darwin-x64", "f6261c7a09a2c8bd77a8760a0e110410f508e5641ca132511b4883600f2d65f0"), + "8.13.0-linux_arm64": ("node-v8.13.0-linux-arm64.tar.xz", "node-v8.13.0-linux-arm64", "e8e0daab515dfd0c2323b8e1274475f61c8ca1cf582dcc254583cbf8593425e3"), + "8.13.0-linux_s390x": ("node-v8.13.0-linux-s390x.tar.xz", "node-v8.13.0-linux-s390x", "c70d92b143d242902890be76fbbf27e83cdbeb75cec71090d3242552fe62dcd4"), + "8.13.0-linux_amd64": ("node-v8.13.0-linux-x64.tar.xz", "node-v8.13.0-linux-x64", "8fa1227b28113e25a8960d7fa6779a8c18bf20cfaafc9c5d0e46a3ee88373669"), + "8.13.0-windows_amd64": ("node-v8.13.0-win-x64.zip", "node-v8.13.0-win-x64", "46293121d207350bd8d334efb67303337933c4dac886a840f88ff6059bff9443"), + # 8.14.0 + "8.14.0-darwin_amd64": ("node-v8.14.0-darwin-x64.tar.gz", "node-v8.14.0-darwin-x64", "1e9bb233bb3c3b01826f9d7e1b3ecf1047840ce96a3a7d1921ddcb569c467329"), + "8.14.0-linux_arm64": ("node-v8.14.0-linux-arm64.tar.xz", "node-v8.14.0-linux-arm64", "fbcef89a60f1f40699589850f861fc84354a6f240610e2726c3743455dd82525"), + "8.14.0-linux_s390x": ("node-v8.14.0-linux-s390x.tar.xz", "node-v8.14.0-linux-s390x", "e24e9b98fd98b081f511dd465835650fda338a1a08b42f2e81e2e3fd1864bac3"), + "8.14.0-linux_amd64": ("node-v8.14.0-linux-x64.tar.xz", "node-v8.14.0-linux-x64", "a56d1af4d7da81504338b09809cf10b3144808d47d4117b9bd9a5a4ec4d5d9b9"), + "8.14.0-windows_amd64": ("node-v8.14.0-win-x64.zip", "node-v8.14.0-win-x64", "d0be7c96a25c5d2b69f8a3510e9f4414643d5fe361b4509d455249e57f9a50af"), + # 8.14.1 + "8.14.1-darwin_amd64": ("node-v8.14.1-darwin-x64.tar.gz", "node-v8.14.1-darwin-x64", "d180a9b70de569e4c3d10c0c4a0af74e40dbca3e845df43ce1ec522bb4252eda"), + "8.14.1-linux_arm64": ("node-v8.14.1-linux-arm64.tar.xz", "node-v8.14.1-linux-arm64", "488a66288052c6497133179e4546efb7fbaf105e432cd0d9aab3471901ab5e58"), + "8.14.1-linux_s390x": ("node-v8.14.1-linux-s390x.tar.xz", "node-v8.14.1-linux-s390x", "c3d543878f1a5e0f824a9c4e440baa3e4f539615daabbadabf4456617d3d2d9c"), + "8.14.1-linux_amd64": ("node-v8.14.1-linux-x64.tar.xz", "node-v8.14.1-linux-x64", "1fec92a0110f692c68f7bdbec41b340c474bd77063323520786a7b9b00473daf"), + "8.14.1-windows_amd64": ("node-v8.14.1-win-x64.zip", "node-v8.14.1-win-x64", "41793b873f98ceed632b24120ef44b2df89625f3dfa90eb9298dad698249167c"), + # 8.15.0 + "8.15.0-darwin_amd64": ("node-v8.15.0-darwin-x64.tar.gz", "node-v8.15.0-darwin-x64", "a393971136408f837fbc0f7d71a63754f91cfb1851d48bd612d8219eb61956f1"), + "8.15.0-linux_arm64": ("node-v8.15.0-linux-arm64.tar.xz", "node-v8.15.0-linux-arm64", "5985c6dce65b1161ff41253da5aa4e64b8f10eb010a5d2712ea9b659f70179d7"), + "8.15.0-linux_s390x": ("node-v8.15.0-linux-s390x.tar.xz", "node-v8.15.0-linux-s390x", "560620a4e061b94f2ff28bcc42582c15b23f1796ae5892f24daf32003f555740"), + "8.15.0-linux_amd64": ("node-v8.15.0-linux-x64.tar.xz", "node-v8.15.0-linux-x64", "c1f0c5facdba78b5dec5136aec40dcb00b5c7cf404d9236a99c955994f91d969"), + "8.15.0-windows_amd64": ("node-v8.15.0-win-x64.zip", "node-v8.15.0-win-x64", "13d8eab29c191bd16c69a70a556178a5adc988b243a036aaf3d5158861b60d8e"), + # 8.15.1 + "8.15.1-darwin_amd64": ("node-v8.15.1-darwin-x64.tar.gz", "node-v8.15.1-darwin-x64", "f3da0b4397150226c008a86c99d77dbb835dc62219d863654913a78332ab19a5"), + "8.15.1-linux_arm64": ("node-v8.15.1-linux-arm64.tar.xz", "node-v8.15.1-linux-arm64", "69e000d78342c3d39583922c57947a906ad723789d6294951deb10cbe8709605"), + "8.15.1-linux_s390x": ("node-v8.15.1-linux-s390x.tar.xz", "node-v8.15.1-linux-s390x", "11e78c00c62e588947eff4a658ff9d1a8ad5c3540d387b9a3b28ef11838a8748"), + "8.15.1-linux_amd64": ("node-v8.15.1-linux-x64.tar.xz", "node-v8.15.1-linux-x64", "5643b54c583eebaa40c1623b16cba4e3955ff5dfdd44036f6bafd761160c993d"), + "8.15.1-windows_amd64": ("node-v8.15.1-win-x64.zip", "node-v8.15.1-win-x64", "f636fa578dc079bacc6c4bef13284ddb893c99f7640b96701c2690bd9c1431f5"), + # 8.16.0 + "8.16.0-darwin_amd64": ("node-v8.16.0-darwin-x64.tar.gz", "node-v8.16.0-darwin-x64", "a6710b8af0862fab0ccdba0549dbcdad76b5f99070652e64f6a85158038fc9a6"), + "8.16.0-linux_arm64": ("node-v8.16.0-linux-arm64.tar.xz", "node-v8.16.0-linux-arm64", "4583d1cb44ff8b51cbf0402a78f2fe086c13a6c900c20c8be14e3b0e28e34335"), + "8.16.0-linux_s390x": ("node-v8.16.0-linux-s390x.tar.xz", "node-v8.16.0-linux-s390x", "521c02098b23bf86958bc8ba428ebc52ecf5e0fd1f69d88562f2700e3b9df164"), + "8.16.0-linux_amd64": ("node-v8.16.0-linux-x64.tar.xz", "node-v8.16.0-linux-x64", "e538ffaaf2f808c084e70f1a1d2ff5559cff892cfd56e0bb67d00b0a95fc3a7a"), + "8.16.0-windows_amd64": ("node-v8.16.0-win-x64.zip", "node-v8.16.0-win-x64", "d6baa929bacb78b347b29ebb0263220ea649ce82f3cdfd3f0b41ac725d1bbba5"), + # 8.16.1 + "8.16.1-darwin_amd64": ("node-v8.16.1-darwin-x64.tar.gz", "node-v8.16.1-darwin-x64", "ef1cb93f03bca4b9528e5d3226bdf8efa135e4b12285eee1e4760da06bac631a"), + "8.16.1-linux_arm64": ("node-v8.16.1-linux-arm64.tar.xz", "node-v8.16.1-linux-arm64", "0c61c6ae8a70d96ab19848a09b2010d29b806f2dd79177da22c743fd5e352a98"), + "8.16.1-linux_s390x": ("node-v8.16.1-linux-s390x.tar.xz", "node-v8.16.1-linux-s390x", "efaf43ddcf0f84d0ca6295fd35c1029b99150d94ce17f23764a5c2840afe4384"), + "8.16.1-linux_amd64": ("node-v8.16.1-linux-x64.tar.xz", "node-v8.16.1-linux-x64", "22a2580569c787ea83960bda0eae5dfaf1fe79382a52ad5fa5cd3accb93a1818"), + "8.16.1-windows_amd64": ("node-v8.16.1-win-x64.zip", "node-v8.16.1-win-x64", "396dc41740bca0355d11865780e2af8e88eb17581cd2c445ccaf29b862901ab8"), + # 8.16.2 + "8.16.2-darwin_amd64": ("node-v8.16.2-darwin-x64.tar.gz", "node-v8.16.2-darwin-x64", "359331120e83f0707219398fc543b05eee9476446ecce549c20c4d9c7c103d29"), + "8.16.2-linux_arm64": ("node-v8.16.2-linux-arm64.tar.xz", "node-v8.16.2-linux-arm64", "5afe366affb05136d25e99ec97a7a1ee1b690cc26df43567af0509f36b45e682"), + "8.16.2-linux_s390x": ("node-v8.16.2-linux-s390x.tar.xz", "node-v8.16.2-linux-s390x", "7c40b92a0466ffcade181f750d7fa659fd335a10bf156179c0d4b5bc0b40f10e"), + "8.16.2-linux_amd64": ("node-v8.16.2-linux-x64.tar.xz", "node-v8.16.2-linux-x64", "88617a293f5828cc94ee99c94a43fbea12b989e34fe643fc14885a14748a8da6"), + "8.16.2-windows_amd64": ("node-v8.16.2-win-x64.zip", "node-v8.16.2-win-x64", "98c615221500434155a8a5aff5fe96cd000400f3e76858ca97e6624f1d15eb73"), + # 8.17.0 + "8.17.0-darwin_amd64": ("node-v8.17.0-darwin-x64.tar.gz", "node-v8.17.0-darwin-x64", "3117430fc93e9865e4a1842616cc98767b5d6987fd9d727c8be4068714570e16"), + "8.17.0-linux_arm64": ("node-v8.17.0-linux-arm64.tar.xz", "node-v8.17.0-linux-arm64", "8318d1ee0265d84025ecbea76aaecd732974a6f4ac8492ddd84231cee77ba948"), + "8.17.0-linux_s390x": ("node-v8.17.0-linux-s390x.tar.xz", "node-v8.17.0-linux-s390x", "86a11035948459401304229ad45c00274120afd999b84c0d7116cfe209ca57dc"), + "8.17.0-linux_amd64": ("node-v8.17.0-linux-x64.tar.xz", "node-v8.17.0-linux-x64", "b7f6dd77fb173c8c7c30d61d0702eefc236bba74398538aa77bfa2bb47bddce6"), + "8.17.0-windows_amd64": ("node-v8.17.0-win-x64.zip", "node-v8.17.0-win-x64", "e95a63e81b27e78872c0efb9dd5809403014dbf9896035cc17adf51a350f88fa"), + # 9.0.0 + "9.0.0-darwin_amd64": ("node-v9.0.0-darwin-x64.tar.gz", "node-v9.0.0-darwin-x64", "40fe905e492deadbf84c46baba413294e516fa844ed8e68adb4117f8acabe9a9"), + "9.0.0-linux_arm64": ("node-v9.0.0-linux-arm64.tar.xz", "node-v9.0.0-linux-arm64", "0250e13705259dcf736ac4216833c2ade459e3ade94d89af68bd98ded1783cb6"), + "9.0.0-linux_s390x": ("node-v9.0.0-linux-s390x.tar.xz", "node-v9.0.0-linux-s390x", "0201874562e163d80a6b492f9e3af59d9e597414fc7f8aeda64aae2cec0eb263"), + "9.0.0-linux_amd64": ("node-v9.0.0-linux-x64.tar.xz", "node-v9.0.0-linux-x64", "8313d2f6d69dbea4cb860803a156f093041cbe352a843c06f9f05cab1f30e9cc"), + "9.0.0-windows_amd64": ("node-v9.0.0-win-x64.zip", "node-v9.0.0-win-x64", "d25901007e7c48da3af162bc1917d5bdd78c7e3b9cb64f16f90c38b59ef7b412"), + # 9.1.0 + "9.1.0-darwin_amd64": ("node-v9.1.0-darwin-x64.tar.gz", "node-v9.1.0-darwin-x64", "8e180de9b3f6a79f09a391c89de54920bbf5375337d3e13c5bfcbce85af711ab"), + "9.1.0-linux_arm64": ("node-v9.1.0-linux-arm64.tar.xz", "node-v9.1.0-linux-arm64", "37d329fa06b22e30243c503b64d9666d56abb6c0ce903251d4b43e7ad0833fb3"), + "9.1.0-linux_s390x": ("node-v9.1.0-linux-s390x.tar.xz", "node-v9.1.0-linux-s390x", "424def53f7839c5289e1122dcd62266ba59f0aaa15125ca5b4fb02c5b7ca17d7"), + "9.1.0-linux_amd64": ("node-v9.1.0-linux-x64.tar.xz", "node-v9.1.0-linux-x64", "b796ed115c97acd23211c294129b0a834ff3a6a0f583111443b89d2b24e0d4d9"), + "9.1.0-windows_amd64": ("node-v9.1.0-win-x64.zip", "node-v9.1.0-win-x64", "f2e76f536ff4fedd9884684f0b1979e04d0fd1c2a65d7d1a5a013de885dd07b3"), + # 9.2.0 + "9.2.0-darwin_amd64": ("node-v9.2.0-darwin-x64.tar.gz", "node-v9.2.0-darwin-x64", "42f78982b8614f099bc70819db40074ff7c1c49d4bac71eca5ffe4120452f289"), + "9.2.0-linux_arm64": ("node-v9.2.0-linux-arm64.tar.xz", "node-v9.2.0-linux-arm64", "1b5c44160b7bfc9e5d63697d63c82330ae3e6094ab48449bd958ebe0baef73f0"), + "9.2.0-linux_s390x": ("node-v9.2.0-linux-s390x.tar.xz", "node-v9.2.0-linux-s390x", "e49c0bb33b23ef306dbe586f0f00b18156a86d946b898bab00910b19213cfd1b"), + "9.2.0-linux_amd64": ("node-v9.2.0-linux-x64.tar.xz", "node-v9.2.0-linux-x64", "ded9cef0243bbe8ac5a417be0c6471bed6ed82367714ccb23f79a5be0ba2bd5d"), + "9.2.0-windows_amd64": ("node-v9.2.0-win-x64.zip", "node-v9.2.0-win-x64", "5e7feb536547c715155d772f90857239b37897c1a1a664809fd84a7aeae1a724"), + # 9.2.1 + "9.2.1-darwin_amd64": ("node-v9.2.1-darwin-x64.tar.gz", "node-v9.2.1-darwin-x64", "4263f3da0280e2decd3a2ab97672e6f718acdf704664a3f1251e4ea267ccc971"), + "9.2.1-linux_arm64": ("node-v9.2.1-linux-arm64.tar.xz", "node-v9.2.1-linux-arm64", "09d362e2ed5f4af5e5dc2253bb4523d7bcb92135bcc11d9eb89ad8336229b756"), + "9.2.1-linux_s390x": ("node-v9.2.1-linux-s390x.tar.xz", "node-v9.2.1-linux-s390x", "e5833f9a0a1d3e3a5f70848d0ee9c86d81562cde347033673d2bbe294ef63a2c"), + "9.2.1-linux_amd64": ("node-v9.2.1-linux-x64.tar.xz", "node-v9.2.1-linux-x64", "548d2959939235ca56c98740f64b64058e43d1499d760603b7941b7c37ad10fe"), + "9.2.1-windows_amd64": ("node-v9.2.1-win-x64.zip", "node-v9.2.1-win-x64", "7b48ef7c718fe5748844f93101f9276a88ae1cf3c4c228f85306a6a266471b5b"), + # 9.3.0 + "9.3.0-darwin_amd64": ("node-v9.3.0-darwin-x64.tar.gz", "node-v9.3.0-darwin-x64", "0539601e67e9be6995d4ba4abe565a748e25699060631369f59166d5de43d21a"), + "9.3.0-linux_arm64": ("node-v9.3.0-linux-arm64.tar.xz", "node-v9.3.0-linux-arm64", "11300e878220962adade33238dd6e55928ad6d1362e0daa1f12e272137e68c0b"), + "9.3.0-linux_s390x": ("node-v9.3.0-linux-s390x.tar.xz", "node-v9.3.0-linux-s390x", "defddf58190537f8814e29e2e7c23f462920f95a259247a6d898550474c429f4"), + "9.3.0-linux_amd64": ("node-v9.3.0-linux-x64.tar.xz", "node-v9.3.0-linux-x64", "0424dd6fa059fc32e0b73f460cb587b92b13c7b0af56331bbdc53a52e43f24ea"), + "9.3.0-windows_amd64": ("node-v9.3.0-win-x64.zip", "node-v9.3.0-win-x64", "53bceda79c8d5dd8a185221a5ea2fc8f2b24ed7e0c9c91d18f6016b3624ff096"), + # 9.4.0 + "9.4.0-darwin_amd64": ("node-v9.4.0-darwin-x64.tar.gz", "node-v9.4.0-darwin-x64", "fa271c6012d517851603829af2131b92dc7b03d6f167dcd197cb83468a4971e8"), + "9.4.0-linux_arm64": ("node-v9.4.0-linux-arm64.tar.xz", "node-v9.4.0-linux-arm64", "ceed69e91723cb902fcf70e790d34147a91241509257c77a62327871dfad04fa"), + "9.4.0-linux_s390x": ("node-v9.4.0-linux-s390x.tar.xz", "node-v9.4.0-linux-s390x", "5a26890ad3e8a6d1ccfaa645c0e268984feb60d91244404a691bc96c9ad3de8a"), + "9.4.0-linux_amd64": ("node-v9.4.0-linux-x64.tar.xz", "node-v9.4.0-linux-x64", "6d331d75a39fc5292dd128ad83f6dd14bbbdcb84ba0dfe793fade833be5de95a"), + "9.4.0-windows_amd64": ("node-v9.4.0-win-x64.zip", "node-v9.4.0-win-x64", "89d49d73eb92483af0133c97e57a5b521c523960c130c76727daa3412af7d5d8"), + # 9.5.0 + "9.5.0-darwin_amd64": ("node-v9.5.0-darwin-x64.tar.gz", "node-v9.5.0-darwin-x64", "bc5c6eb21a90dbcaf90479838416c90524fe6d47e92c928ef57d7e96a54eb5fe"), + "9.5.0-linux_arm64": ("node-v9.5.0-linux-arm64.tar.xz", "node-v9.5.0-linux-arm64", "d6a98a51c032963014f606acc80babb456f3dc4c041534ca565f573a2382b253"), + "9.5.0-linux_s390x": ("node-v9.5.0-linux-s390x.tar.xz", "node-v9.5.0-linux-s390x", "affe4ec41b5a55f1c417168a6f68783bad6927247a1a3325ce9129284714330e"), + "9.5.0-linux_amd64": ("node-v9.5.0-linux-x64.tar.xz", "node-v9.5.0-linux-x64", "76dd38bb5a16a610894353228ef020653f81209a2e509d38aee78ace4410599e"), + "9.5.0-windows_amd64": ("node-v9.5.0-win-x64.zip", "node-v9.5.0-win-x64", "2fd1c3865a34827af6b5d799aee68e011a16a637276cbf71e923c8bedd010ee8"), + # 9.6.0 + "9.6.0-darwin_amd64": ("node-v9.6.0-darwin-x64.tar.gz", "node-v9.6.0-darwin-x64", "4f2001075b724791bf652b5432073aaaaec03cb00b17cda054ab0a05126035fe"), + "9.6.0-linux_arm64": ("node-v9.6.0-linux-arm64.tar.xz", "node-v9.6.0-linux-arm64", "eb10815b1d21e8f5111b90c15b19050279b44666d08a12f26906271e9f6b02dd"), + "9.6.0-linux_s390x": ("node-v9.6.0-linux-s390x.tar.xz", "node-v9.6.0-linux-s390x", "6b11e570a334034d1f6d293707ff8e955b3fc6791db7db6542eb33bcd17fab51"), + "9.6.0-linux_amd64": ("node-v9.6.0-linux-x64.tar.xz", "node-v9.6.0-linux-x64", "24b8670c819278135b4b8851d880615dee8458fdb5f5390ed0c88c383377f5d3"), + "9.6.0-windows_amd64": ("node-v9.6.0-win-x64.zip", "node-v9.6.0-win-x64", "5f1da1ef6ba776449900c931e7acc3b60e47f3080425bf0e6a1c0c5a07dbd6fd"), + # 9.6.1 + "9.6.1-darwin_amd64": ("node-v9.6.1-darwin-x64.tar.gz", "node-v9.6.1-darwin-x64", "de486bc479817df2df1f91468e85e5da228a19101422c0c9a27153c1d0013c6d"), + "9.6.1-linux_arm64": ("node-v9.6.1-linux-arm64.tar.xz", "node-v9.6.1-linux-arm64", "6246c85acab2dd92463fa1c456db31a24cd7b50b3fa556c4976c5a91473b8c8f"), + "9.6.1-linux_s390x": ("node-v9.6.1-linux-s390x.tar.xz", "node-v9.6.1-linux-s390x", "e235a5853c70643216113ef31ee01debe266bcbc1a609429576233cec7646790"), + "9.6.1-linux_amd64": ("node-v9.6.1-linux-x64.tar.xz", "node-v9.6.1-linux-x64", "d38f1707faccc54fae3cb201c25b02c4a3474d2c409c64f2a1d08925b238f8ad"), + "9.6.1-windows_amd64": ("node-v9.6.1-win-x64.zip", "node-v9.6.1-win-x64", "c8176d317945ce6221473d70999ec7e725f1c9a7477e991bd7c729026c46dffb"), + # 9.7.0 + "9.7.0-darwin_amd64": ("node-v9.7.0-darwin-x64.tar.gz", "node-v9.7.0-darwin-x64", "9730cf3c4c5e228d4855c3362b63dbe59041202d89ae30d7f5ca42f60f742c5d"), + "9.7.0-linux_arm64": ("node-v9.7.0-linux-arm64.tar.xz", "node-v9.7.0-linux-arm64", "18bec2bec5e2496f33b4d9d7f3bea7411cdb5d108f390b5c1949ddeda0e61125"), + "9.7.0-linux_s390x": ("node-v9.7.0-linux-s390x.tar.xz", "node-v9.7.0-linux-s390x", "fe3eb7b0a0e46055fb35e764f01746e127ab3c0bb1c48e8c88916fa78bcc5bb9"), + "9.7.0-linux_amd64": ("node-v9.7.0-linux-x64.tar.xz", "node-v9.7.0-linux-x64", "5c7549ceeebdc7ac5acdcae5fffbeb9585e3b9e2003e70e116d9f19c768f73d1"), + "9.7.0-windows_amd64": ("node-v9.7.0-win-x64.zip", "node-v9.7.0-win-x64", "a17796c9c888e88a9a086dc1a22cdd872d8e948fbf1e988a8132fef716990530"), + # 9.7.1 + "9.7.1-darwin_amd64": ("node-v9.7.1-darwin-x64.tar.gz", "node-v9.7.1-darwin-x64", "9ee0fa891787865b1eccc63ef56134e7de8bbf67b660a1dde9e309305a1dc3b0"), + "9.7.1-linux_arm64": ("node-v9.7.1-linux-arm64.tar.xz", "node-v9.7.1-linux-arm64", "d9143c23f7aa171449229abd456c8a9e07dc1033a1e791132b3387d439e2475d"), + "9.7.1-linux_s390x": ("node-v9.7.1-linux-s390x.tar.xz", "node-v9.7.1-linux-s390x", "46a8dacdbd8b1818f6c3089b75f6b0693b16c507a6f8d9cca56c6c7ded5f651e"), + "9.7.1-linux_amd64": ("node-v9.7.1-linux-x64.tar.xz", "node-v9.7.1-linux-x64", "33b3ecd0a1de891a4a2f3586f1c6498c95c1ecc15864a6e3f4f7826792850d99"), + "9.7.1-windows_amd64": ("node-v9.7.1-win-x64.zip", "node-v9.7.1-win-x64", "8590ff193e645d7f719e25d9519633376c72cfa1b36192031705e0065b7d69b2"), + # 9.8.0 + "9.8.0-darwin_amd64": ("node-v9.8.0-darwin-x64.tar.gz", "node-v9.8.0-darwin-x64", "c95326d6d8d01e5d4fbf0ca1b1e4fc0d800d00516f38532cc887e17c78f2af07"), + "9.8.0-linux_arm64": ("node-v9.8.0-linux-arm64.tar.xz", "node-v9.8.0-linux-arm64", "f3537d06f010e77739be073003fca0b477efec8a72d503dc5a1d942a19973b07"), + "9.8.0-linux_s390x": ("node-v9.8.0-linux-s390x.tar.xz", "node-v9.8.0-linux-s390x", "13554cfc8cec68da011e3666a9e19caebe9d7f9389d843fa38578f0fdde92b73"), + "9.8.0-linux_amd64": ("node-v9.8.0-linux-x64.tar.xz", "node-v9.8.0-linux-x64", "9f631739b0a9b96b8760c42869e88592db9c3fda2425202bd8b2d09e6371133a"), + "9.8.0-windows_amd64": ("node-v9.8.0-win-x64.zip", "node-v9.8.0-win-x64", "dd3971c126907a033f2bc93fdd29327af3ff5b9d151b3b90eb5db1832fe6df9e"), + # 9.9.0 + "9.9.0-darwin_amd64": ("node-v9.9.0-darwin-x64.tar.gz", "node-v9.9.0-darwin-x64", "15e71817fe172119d6f9e0166ab869f12c67bdb7371d27a78b0621c408239692"), + "9.9.0-linux_arm64": ("node-v9.9.0-linux-arm64.tar.xz", "node-v9.9.0-linux-arm64", "06feb32656c91c3963270de18d4a7befe52d2d8c0fd78fbbb7792a881ffeec7a"), + "9.9.0-linux_s390x": ("node-v9.9.0-linux-s390x.tar.xz", "node-v9.9.0-linux-s390x", "8730779ae582fb03d0176b175df33669570242d9df55d6d261eb10b9fa29e97c"), + "9.9.0-linux_amd64": ("node-v9.9.0-linux-x64.tar.xz", "node-v9.9.0-linux-x64", "457151b4e6f27222232742ce44de1df73768a251309dddbfca2b385052ee977f"), + "9.9.0-windows_amd64": ("node-v9.9.0-win-x64.zip", "node-v9.9.0-win-x64", "5186747c7cab6ff153e725c42446727e460d54e6c62353d5dc550046f5c05653"), + # 9.10.0 + "9.10.0-darwin_amd64": ("node-v9.10.0-darwin-x64.tar.gz", "node-v9.10.0-darwin-x64", "c4b98cc2f3c00b770f24549de112902b56d57be7963a1047cd116b357bc61569"), + "9.10.0-linux_arm64": ("node-v9.10.0-linux-arm64.tar.xz", "node-v9.10.0-linux-arm64", "ba1d682aa1d5a12eeb39e7f51e4c67c6122b24482869ca2547c6f094eae90658"), + "9.10.0-linux_s390x": ("node-v9.10.0-linux-s390x.tar.xz", "node-v9.10.0-linux-s390x", "e0887c4605d2f796c5e95fd9096672b77bd1d43c01f11450f1f8019a9b0d816d"), + "9.10.0-linux_amd64": ("node-v9.10.0-linux-x64.tar.xz", "node-v9.10.0-linux-x64", "b9bfffc03ef0e2c97d463619911552c7f5b1b8699de07bb913990a8b33800cb9"), + "9.10.0-windows_amd64": ("node-v9.10.0-win-x64.zip", "node-v9.10.0-win-x64", "3f159de87fd987e7bf30bbffce722e2e5133c44fc847883053359e9b08d6fa88"), + # 9.10.1 + "9.10.1-darwin_amd64": ("node-v9.10.1-darwin-x64.tar.gz", "node-v9.10.1-darwin-x64", "ae2d9dfdd3fdb6a6fe588e5479a768ee502968f6544ac8ad6133cb2e05726793"), + "9.10.1-linux_arm64": ("node-v9.10.1-linux-arm64.tar.xz", "node-v9.10.1-linux-arm64", "9b084b30e48a3a145fcc6cb282a1b46145b703c13a5eaee40afc7f9d82ad697b"), + "9.10.1-linux_s390x": ("node-v9.10.1-linux-s390x.tar.xz", "node-v9.10.1-linux-s390x", "ccafcb8cf7a2aa7f8bbb9239d656a64e3ec38a2b5acc544ec2355aed6a102b09"), + "9.10.1-linux_amd64": ("node-v9.10.1-linux-x64.tar.xz", "node-v9.10.1-linux-x64", "fc810056be2a0665d0f67b42d25e1b8442bd885d4893b3256a7cfe676bd973de"), + "9.10.1-windows_amd64": ("node-v9.10.1-win-x64.zip", "node-v9.10.1-win-x64", "43bf882dec1550e00a039f77190a3e2a778354577e542563be4b5c205de17df1"), + # 9.11.0 + "9.11.0-darwin_amd64": ("node-v9.11.0-darwin-x64.tar.gz", "node-v9.11.0-darwin-x64", "e562cfc01a4d8e62c1d86f59cef4f00439b4ad279c97f95f76a39f4b3530b8e5"), + "9.11.0-linux_arm64": ("node-v9.11.0-linux-arm64.tar.xz", "node-v9.11.0-linux-arm64", "8df1dd7a1ec298900cf699a7ee8e5f0f478075d0e4c4fd3fb6e3a4ad3527545c"), + "9.11.0-linux_s390x": ("node-v9.11.0-linux-s390x.tar.xz", "node-v9.11.0-linux-s390x", "2369093bf724b476a5a0e3f202cf35f37118838b9693766ce3c860677f1c6135"), + "9.11.0-linux_amd64": ("node-v9.11.0-linux-x64.tar.xz", "node-v9.11.0-linux-x64", "a4349420b74804b3404a4eea27341297968f61998b01f6504dbbad603700e944"), + "9.11.0-windows_amd64": ("node-v9.11.0-win-x64.zip", "node-v9.11.0-win-x64", "6e7f586ece923fd71e36d5db80b6a6d731a2b156464058cb2304f6c0192637cb"), + # 9.11.1 + "9.11.1-darwin_amd64": ("node-v9.11.1-darwin-x64.tar.gz", "node-v9.11.1-darwin-x64", "7b1fb394aa41a62b477e36df16644bd383cc9084808511f6cd318b835a06aac6"), + "9.11.1-linux_arm64": ("node-v9.11.1-linux-arm64.tar.xz", "node-v9.11.1-linux-arm64", "dba2de106fbde2013a204ca9fafdfe67c0426b4e63d186f888e59432ad2dbb03"), + "9.11.1-linux_s390x": ("node-v9.11.1-linux-s390x.tar.xz", "node-v9.11.1-linux-s390x", "dceac2332b99515110500d135ba54d3d00453eb71fdc1807a5e5897dd6a10107"), + "9.11.1-linux_amd64": ("node-v9.11.1-linux-x64.tar.xz", "node-v9.11.1-linux-x64", "4d27a95d5c2f1c8ef99118794c9c4903e63963418d3e16ca7576760cff39879b"), + "9.11.1-windows_amd64": ("node-v9.11.1-win-x64.zip", "node-v9.11.1-win-x64", "0a3566d57ccb7fed95d18fc6c3bc1552a1b1e4753f9bc6c5d45e04f325e1ee53"), + # 9.11.2 + "9.11.2-darwin_amd64": ("node-v9.11.2-darwin-x64.tar.gz", "node-v9.11.2-darwin-x64", "340993096108d1dc0e0b598560d87ec645fc94b0fc83a423c36343f2da45f4b8"), + "9.11.2-linux_arm64": ("node-v9.11.2-linux-arm64.tar.xz", "node-v9.11.2-linux-arm64", "9a713a6f4473425b83bf67e13e4b3c9f1f683c996b913f1f6854d208996367b6"), + "9.11.2-linux_s390x": ("node-v9.11.2-linux-s390x.tar.xz", "node-v9.11.2-linux-s390x", "7e7c7b88615bd6df3c8846a6034f595e7c367d30985596cbbfedafeb436e9a92"), + "9.11.2-linux_amd64": ("node-v9.11.2-linux-x64.tar.xz", "node-v9.11.2-linux-x64", "a2e7fe4ee3c4e3f31e00dff241c92c2ed779a9f36735578603d2be966f938a4b"), + "9.11.2-windows_amd64": ("node-v9.11.2-win-x64.zip", "node-v9.11.2-win-x64", "051db8f4d3c0503e3082173f16b25e2362de8f9a5e509c403992b2069d826c25"), + # 10.0.0 + "10.0.0-darwin_amd64": ("node-v10.0.0-darwin-x64.tar.gz", "node-v10.0.0-darwin-x64", "37447fdb5f5cbcf1307ca1661ed67e6e911e0e988c0cb6d15f92eebb211dce88"), + "10.0.0-linux_arm64": ("node-v10.0.0-linux-arm64.tar.xz", "node-v10.0.0-linux-arm64", "18f626a967d72294d969bdf000ca80ef483a8bb75482a2c4d14f5e0141626611"), + "10.0.0-linux_s390x": ("node-v10.0.0-linux-s390x.tar.xz", "node-v10.0.0-linux-s390x", "51ade51e758cbf83d4ed2bed7094ba1a6e92e12094a0b51d9901539662facf9f"), + "10.0.0-linux_amd64": ("node-v10.0.0-linux-x64.tar.xz", "node-v10.0.0-linux-x64", "d57c391daef40e706ca71abeaf9d53271c9d0fdb9cd18a80f6296b04dbaf2d5a"), + "10.0.0-windows_amd64": ("node-v10.0.0-win-x64.zip", "node-v10.0.0-win-x64", "a95d88e2c28cbcbadb1fa431ec0b686f196dda00d4a25b0829450dc8f5214ec3"), + # 10.1.0 + "10.1.0-darwin_amd64": ("node-v10.1.0-darwin-x64.tar.gz", "node-v10.1.0-darwin-x64", "383ef526e27b92113f8dc0dad406b771f6ecaf9e3fddd4f5357590a3cf543d7b"), + "10.1.0-linux_arm64": ("node-v10.1.0-linux-arm64.tar.xz", "node-v10.1.0-linux-arm64", "01e252589cf1ce61d2aaa316895001eb24c90a48b04a0e4896de252d2840ffe9"), + "10.1.0-linux_s390x": ("node-v10.1.0-linux-s390x.tar.xz", "node-v10.1.0-linux-s390x", "89b6e0e097d6daad64aacf8a5fc478c695b1c59474b007730c37db760c57dad2"), + "10.1.0-linux_amd64": ("node-v10.1.0-linux-x64.tar.xz", "node-v10.1.0-linux-x64", "cb5860c0d3249330d882fb8c6619c082cf3cda177536d4ed979388dde0034f22"), + "10.1.0-windows_amd64": ("node-v10.1.0-win-x64.zip", "node-v10.1.0-win-x64", "8448bbd50731e98a4ed8bb4f3f3964170ff3a26418e9bcb3caf770faa9fb06d7"), + # 10.2.0 + "10.2.0-darwin_amd64": ("node-v10.2.0-darwin-x64.tar.gz", "node-v10.2.0-darwin-x64", "35fcc482d07218119ce5fde62620994324f03f8c4426dd680886c6844b62232a"), + "10.2.0-linux_arm64": ("node-v10.2.0-linux-arm64.tar.xz", "node-v10.2.0-linux-arm64", "8f970be59a6a11f511a04ae1bd303746f0c5409498e062fb1d263d3c3c1093bd"), + "10.2.0-linux_s390x": ("node-v10.2.0-linux-s390x.tar.xz", "node-v10.2.0-linux-s390x", "580884f650c3b2008aa5962b5d30a3076c58bc9a51aac559e3acf2ae612bb3e7"), + "10.2.0-linux_amd64": ("node-v10.2.0-linux-x64.tar.xz", "node-v10.2.0-linux-x64", "a6ef9adc824db795b36f81ad0856adc5c878395c4ce2af20f5ba7b76a1ca9982"), + "10.2.0-windows_amd64": ("node-v10.2.0-win-x64.zip", "node-v10.2.0-win-x64", "7d7144d57b1b910d10f51d5445ae4306f10d3d9f45ca08b49e8777472993db51"), + # 10.2.1 + "10.2.1-darwin_amd64": ("node-v10.2.1-darwin-x64.tar.gz", "node-v10.2.1-darwin-x64", "6ffa149f67e8bd68d291d62591b6573146a65682affd99eefe2835a9c048d3ef"), + "10.2.1-linux_arm64": ("node-v10.2.1-linux-arm64.tar.xz", "node-v10.2.1-linux-arm64", "6899cab91fd01af6b73183d23693120ff0de547601d01822b53647d0f5d934ee"), + "10.2.1-linux_s390x": ("node-v10.2.1-linux-s390x.tar.xz", "node-v10.2.1-linux-s390x", "03c06fbee4d125351d8a04ad099145baad357906c107870e1d5ce28a1f6461ee"), + "10.2.1-linux_amd64": ("node-v10.2.1-linux-x64.tar.xz", "node-v10.2.1-linux-x64", "59ffaba5f54ea6a62ada1013a0cc1741c6e6fa790ab9ab2302a98932e7fb85d5"), + "10.2.1-windows_amd64": ("node-v10.2.1-win-x64.zip", "node-v10.2.1-win-x64", "ebe78920d72b7a226a345653f3f718f99dc531add35157d37d229050f3685705"), + # 10.3.0 + "10.3.0-darwin_amd64": ("node-v10.3.0-darwin-x64.tar.gz", "node-v10.3.0-darwin-x64", "0bb5b7e3fe8cccda2abda958d1eb0408f1518a8b0cb58b75ade5d507cd5d6053"), + "10.3.0-linux_arm64": ("node-v10.3.0-linux-arm64.tar.xz", "node-v10.3.0-linux-arm64", "6811b7b9807135902990508143605c0c758d07f7726092ed1b2e27cc60111bd0"), + "10.3.0-linux_s390x": ("node-v10.3.0-linux-s390x.tar.xz", "node-v10.3.0-linux-s390x", "21dddf20b7348d291e0569b8942de1dd1b879c33ae8ca93a9c8906c8bfb78f01"), + "10.3.0-linux_amd64": ("node-v10.3.0-linux-x64.tar.xz", "node-v10.3.0-linux-x64", "eb3c3e2585494699716ad3197c8eedf4003d3f110829b30c5a0dc34414c47423"), + "10.3.0-windows_amd64": ("node-v10.3.0-win-x64.zip", "node-v10.3.0-win-x64", "65d586afb087406a2800d8e51f664c88b26d510f077b85a3b177a1bb79f73677"), + # 10.4.0 + "10.4.0-darwin_amd64": ("node-v10.4.0-darwin-x64.tar.gz", "node-v10.4.0-darwin-x64", "82b27983c990a6860e8d729e0b15acf9643ffca0eff282a926268849dfd2c3d2"), + "10.4.0-linux_arm64": ("node-v10.4.0-linux-arm64.tar.xz", "node-v10.4.0-linux-arm64", "18d01e0937cdd05386f59f792613aac7b6614a37312ede0c299bd589584976e9"), + "10.4.0-linux_s390x": ("node-v10.4.0-linux-s390x.tar.xz", "node-v10.4.0-linux-s390x", "5ea47bfac54106a2ed80ad830efa35c241a2c5f0eea8a0768c8bc6651108ab71"), + "10.4.0-linux_amd64": ("node-v10.4.0-linux-x64.tar.xz", "node-v10.4.0-linux-x64", "ce2232578408f7d6bdc7d8bbb49d3416225fe68c52540ac23f4a6e0294d947f6"), + "10.4.0-windows_amd64": ("node-v10.4.0-win-x64.zip", "node-v10.4.0-win-x64", "315fc4099902a71b634fee15e4e160a0780703c59a66e7e4542045f6f2b91451"), + # 10.4.1 + "10.4.1-darwin_amd64": ("node-v10.4.1-darwin-x64.tar.gz", "node-v10.4.1-darwin-x64", "c232241c97e1f4659186205d50b44132e62b61cdc517f1fb86905a21d03e9189"), + "10.4.1-linux_arm64": ("node-v10.4.1-linux-arm64.tar.xz", "node-v10.4.1-linux-arm64", "c00b75a28eb69e4238c9d560f50da3652395ba7bfa6e325d5a2b0cd0926070f7"), + "10.4.1-linux_s390x": ("node-v10.4.1-linux-s390x.tar.xz", "node-v10.4.1-linux-s390x", "4d3f689fe22ca247cfdca4c73ac3eff87cccf1d88d5d6549fc391d90a94992f9"), + "10.4.1-linux_amd64": ("node-v10.4.1-linux-x64.tar.xz", "node-v10.4.1-linux-x64", "6196daea2b291cdb865b3597e6b819b13068cb2c9dbf27cb150256c557a81082"), + "10.4.1-windows_amd64": ("node-v10.4.1-win-x64.zip", "node-v10.4.1-win-x64", "70e0b9f0036f878884fdfc585c1001a439508d1d4e6448c4aced60274a2dc191"), + # 10.5.0 + "10.5.0-darwin_amd64": ("node-v10.5.0-darwin-x64.tar.gz", "node-v10.5.0-darwin-x64", "a85bda6ab91da8595e71736944cbd77c61afe05092217defd0fb74d9f77109f0"), + "10.5.0-linux_arm64": ("node-v10.5.0-linux-arm64.tar.xz", "node-v10.5.0-linux-arm64", "28e6baa2a4ac5b0f0f5adf85489574038d0a4ca48efe76a4e5831b6b222652ba"), + "10.5.0-linux_s390x": ("node-v10.5.0-linux-s390x.tar.xz", "node-v10.5.0-linux-s390x", "a9614bbba6a210253cb23cf7f64fa34de9c4c130a16e27ead3c26a69a6d18be1"), + "10.5.0-linux_amd64": ("node-v10.5.0-linux-x64.tar.xz", "node-v10.5.0-linux-x64", "8b12be967f5962a8173dca235e1a6f642ee29dcf5fc27697004af898ffeca187"), + "10.5.0-windows_amd64": ("node-v10.5.0-win-x64.zip", "node-v10.5.0-win-x64", "ce2b1f9976de64bcc0a5ce877edee0d29c4db1ebab5a7fd713afffd661e99e08"), + # 10.6.0 + "10.6.0-darwin_amd64": ("node-v10.6.0-darwin-x64.tar.gz", "node-v10.6.0-darwin-x64", "537efef0c6fd998502fa10baf82ee21edf513256cc73575991354e19442d0b69"), + "10.6.0-linux_arm64": ("node-v10.6.0-linux-arm64.tar.xz", "node-v10.6.0-linux-arm64", "be37aade1c085093e276b5822a05233a1057bcafe77f5b9526dbdf622330c4bb"), + "10.6.0-linux_s390x": ("node-v10.6.0-linux-s390x.tar.xz", "node-v10.6.0-linux-s390x", "97c7f5186e91d07e5e97b1a30be7f63d57b9c0170aca99185ff907de6f61de10"), + "10.6.0-linux_amd64": ("node-v10.6.0-linux-x64.tar.xz", "node-v10.6.0-linux-x64", "cfd47380729f2451169b8900b3bd65e4b9db669d1d540613758cd2ededf7b5e6"), + "10.6.0-windows_amd64": ("node-v10.6.0-win-x64.zip", "node-v10.6.0-win-x64", "0b58e0414d76e48432588910ea682f002ba69d7be88deb3355ceffb2fe472f6d"), + # 10.7.0 + "10.7.0-darwin_amd64": ("node-v10.7.0-darwin-x64.tar.gz", "node-v10.7.0-darwin-x64", "913473055605c8ae92f46923e6ac400133895aafe7766574fd46899bc6b0c5a4"), + "10.7.0-linux_arm64": ("node-v10.7.0-linux-arm64.tar.xz", "node-v10.7.0-linux-arm64", "c23856b3123f9e2cfae3f8b0668019f83e9450ee78dede02a8d43031255b7ba0"), + "10.7.0-linux_s390x": ("node-v10.7.0-linux-s390x.tar.xz", "node-v10.7.0-linux-s390x", "709dcc2636720ab856b89fa301810ec0a53296ce5aa1c3539995e1e709d19b69"), + "10.7.0-linux_amd64": ("node-v10.7.0-linux-x64.tar.xz", "node-v10.7.0-linux-x64", "ad1d44cbe64ef44db5d8d42690a76dd186d6a6f71a3c3d38449757fe73135329"), + "10.7.0-windows_amd64": ("node-v10.7.0-win-x64.zip", "node-v10.7.0-win-x64", "a0914d4c1fb82f51a03a4f57c66c9ce6a65ccd4f3237706042c55799843f4b14"), + # 10.8.0 + "10.8.0-darwin_amd64": ("node-v10.8.0-darwin-x64.tar.gz", "node-v10.8.0-darwin-x64", "b800d8b55c234b1f7d972e9464b00328a1caea5f86f94fdb5fc88ebbed7852b7"), + "10.8.0-linux_arm64": ("node-v10.8.0-linux-arm64.tar.xz", "node-v10.8.0-linux-arm64", "0333da24d1fe54abac26b0a06437d3336c0fb4816b280507a9851ab3742ef2e4"), + "10.8.0-linux_s390x": ("node-v10.8.0-linux-s390x.tar.xz", "node-v10.8.0-linux-s390x", "1a6e3949a6ab971be208c8becfda2c08565d1650270ce8a8161989c469c78586"), + "10.8.0-linux_amd64": ("node-v10.8.0-linux-x64.tar.xz", "node-v10.8.0-linux-x64", "497f3b243d7374ee0fe9ab200b175868b172c3a22282cedc6d7fb0cad82471f0"), + "10.8.0-windows_amd64": ("node-v10.8.0-win-x64.zip", "node-v10.8.0-win-x64", "f98575fb551d78691a6f74ca4f9c254bbd9fb62135e9ec0ab7ec8c40a03648b0"), + # 10.9.0 + "10.9.0-darwin_amd64": ("node-v10.9.0-darwin-x64.tar.gz", "node-v10.9.0-darwin-x64", "3c4fe75dacfcc495a432a7ba2dec9045cff359af2a5d7d0429c84a424ef686fc"), + "10.9.0-linux_arm64": ("node-v10.9.0-linux-arm64.tar.xz", "node-v10.9.0-linux-arm64", "3d6aa717d98bbf901c5325a02a81048eb47212bdc44963ef8d59c6e52e987b7c"), + "10.9.0-linux_s390x": ("node-v10.9.0-linux-s390x.tar.xz", "node-v10.9.0-linux-s390x", "844f20a6f9acfe3a0c5d8df74871d13481dc6001b1cdc06bd1e4a0fa478eac55"), + "10.9.0-linux_amd64": ("node-v10.9.0-linux-x64.tar.xz", "node-v10.9.0-linux-x64", "c5acb8b7055ee0b6ac653dc4e458c5db45348cecc564b388f4ed1def84a329ff"), + "10.9.0-windows_amd64": ("node-v10.9.0-win-x64.zip", "node-v10.9.0-win-x64", "6a75cdbb69d62ed242d6cbf0238a470bcbf628567ee339d4d098a5efcda2401e"), + # 10.10.0 + "10.10.0-darwin_amd64": ("node-v10.10.0-darwin-x64.tar.gz", "node-v10.10.0-darwin-x64", "00b7a8426e076e9bf9d12ba2d571312e833fe962c70afafd10ad3682fdeeaa5e"), + "10.10.0-linux_arm64": ("node-v10.10.0-linux-arm64.tar.xz", "node-v10.10.0-linux-arm64", "7d57961d18ea70b4e99906d87f9de1a2defc45a36fcd8cd84295e9ae5c4281da"), + "10.10.0-linux_s390x": ("node-v10.10.0-linux-s390x.tar.xz", "node-v10.10.0-linux-s390x", "0fbeec8a29daf2452efca29a828ec0106c3d43cc57d904de9c1056ec4764572f"), + "10.10.0-linux_amd64": ("node-v10.10.0-linux-x64.tar.xz", "node-v10.10.0-linux-x64", "686d2c7b7698097e67bcd68edc3d6b5d28d81f62436c7cf9e7779d134ec262a9"), + "10.10.0-windows_amd64": ("node-v10.10.0-win-x64.zip", "node-v10.10.0-win-x64", "70c46e6451798be9d052b700ce5dadccb75cf917f6bf0d6ed54344c856830cfb"), + # 10.11.0 + "10.11.0-darwin_amd64": ("node-v10.11.0-darwin-x64.tar.gz", "node-v10.11.0-darwin-x64", "32ad850a0e5cfdefc32d4267707abad05bd5c9eabb047e8ed9bf97faeffc52b6"), + "10.11.0-linux_arm64": ("node-v10.11.0-linux-arm64.tar.xz", "node-v10.11.0-linux-arm64", "289302470520fd63e2a92a878869061dda557fe1aabfea2bd5ff88f7af76d98d"), + "10.11.0-linux_s390x": ("node-v10.11.0-linux-s390x.tar.xz", "node-v10.11.0-linux-s390x", "d85db9fd57c9d801ba6524dc689433aac258f3329ede61a07ac55253fe7203bc"), + "10.11.0-linux_amd64": ("node-v10.11.0-linux-x64.tar.xz", "node-v10.11.0-linux-x64", "c2eab149e7f0712a6a3eb672a76d657b049a3b3ae0c2edc2e0571df5049fe82c"), + "10.11.0-windows_amd64": ("node-v10.11.0-win-x64.zip", "node-v10.11.0-win-x64", "78b2a7a4305aa108b9a82ac7586d7200ab51428c2b882d1318fb44ca300a8609"), + # 10.12.0 + "10.12.0-darwin_amd64": ("node-v10.12.0-darwin-x64.tar.gz", "node-v10.12.0-darwin-x64", "f275c901b9aeaacea2bf22648329c2e9ade5e1ff63a446b83446d5d4e19464cc"), + "10.12.0-linux_arm64": ("node-v10.12.0-linux-arm64.tar.xz", "node-v10.12.0-linux-arm64", "b327deca4e380559c8c1fbacb9e668b49127ea998de4c8fe83912838cf786786"), + "10.12.0-linux_s390x": ("node-v10.12.0-linux-s390x.tar.xz", "node-v10.12.0-linux-s390x", "39bcdc9a46245bfdf651714a49e840ed5505aedc5f1f9cc80e4d2afecd3ac9b3"), + "10.12.0-linux_amd64": ("node-v10.12.0-linux-x64.tar.xz", "node-v10.12.0-linux-x64", "4eba2e9a6db95745b769915d58e57df6ca6724ec1f023f76556fce30ceca2367"), + "10.12.0-windows_amd64": ("node-v10.12.0-win-x64.zip", "node-v10.12.0-win-x64", "44c938cf1409562d25d23b7c6bce110b53cd2a73774bed573b2979f0d88f51f8"), + # 10.13.0 + "10.13.0-darwin_amd64": ("node-v10.13.0-darwin-x64.tar.gz", "node-v10.13.0-darwin-x64", "815a5d18516934a3963ace9f0574f7d41f0c0ce9186a19be3d89e039e57598c5"), + "10.13.0-linux_arm64": ("node-v10.13.0-linux-arm64.tar.xz", "node-v10.13.0-linux-arm64", "1537ebe64dc34a2a9b8ab6254213079789e9d59ed0ed26987afb1da37b6a8f87"), + "10.13.0-linux_s390x": ("node-v10.13.0-linux-s390x.tar.xz", "node-v10.13.0-linux-s390x", "5b7c867ab5ec11f4e038ec381bcba9f346da8b8ec2bb099541e6a22a7602c763"), + "10.13.0-linux_amd64": ("node-v10.13.0-linux-x64.tar.xz", "node-v10.13.0-linux-x64", "0dc6dba645550b66f8f00541a428c29da7c3cde32fb7eda2eb626a9db3bbf08d"), + "10.13.0-windows_amd64": ("node-v10.13.0-win-x64.zip", "node-v10.13.0-win-x64", "eb09c9e9677f1919ec1ca78623c09b2a718ec5388b72b7662d5c41e5f628a52c"), + # 10.14.0 + "10.14.0-darwin_amd64": ("node-v10.14.0-darwin-x64.tar.gz", "node-v10.14.0-darwin-x64", "dd044aa0ddeb5e32fefa80a13b33bafe3f7e0536e15fe93c1e81b052c2f1965c"), + "10.14.0-linux_arm64": ("node-v10.14.0-linux-arm64.tar.xz", "node-v10.14.0-linux-arm64", "4d80efe675c40d6d3af697e17e33cad8af1caf50655276ca99d0c4ca8e2f2cf2"), + "10.14.0-linux_s390x": ("node-v10.14.0-linux-s390x.tar.xz", "node-v10.14.0-linux-s390x", "fa6ecbd6e688cd8389ae6db6a5c47061b81c63e97baa54ef6f89097de2b8df94"), + "10.14.0-linux_amd64": ("node-v10.14.0-linux-x64.tar.xz", "node-v10.14.0-linux-x64", "5f576f9893e0335f0c1b071a42fdf8b3e302577ad6ea38237aaef08ad0ca898e"), + "10.14.0-windows_amd64": ("node-v10.14.0-win-x64.zip", "node-v10.14.0-win-x64", "a3acbbdbbdb6ff6d5ae6e6f5ccea55aef83cfa54f52c080538edc3ac6326797b"), + # 10.14.1 + "10.14.1-darwin_amd64": ("node-v10.14.1-darwin-x64.tar.gz", "node-v10.14.1-darwin-x64", "91ebe7d6da8a40c72618ac9d0b0a8e224ae01febd3f5595b43b1a58190dcacb1"), + "10.14.1-linux_arm64": ("node-v10.14.1-linux-arm64.tar.xz", "node-v10.14.1-linux-arm64", "c1ca91356b007cc7624c7a9e00f3b7bed8dd10aba959be5f55e4ff13da334828"), + "10.14.1-linux_s390x": ("node-v10.14.1-linux-s390x.tar.xz", "node-v10.14.1-linux-s390x", "f1ac606494274a70dd9f1d759e61a2a305d77d8b69c8ede7935f9758668c9633"), + "10.14.1-linux_amd64": ("node-v10.14.1-linux-x64.tar.xz", "node-v10.14.1-linux-x64", "b65e735cdf61fb80f114c498c8955efe8e096e4b3e173281d68aa9d2c05b0f97"), + "10.14.1-windows_amd64": ("node-v10.14.1-win-x64.zip", "node-v10.14.1-win-x64", "7d51aa233ad290eb916a4c3134815204eb34ecb0a001dcecc5ea57333030f303"), + # 10.14.2 + "10.14.2-darwin_amd64": ("node-v10.14.2-darwin-x64.tar.gz", "node-v10.14.2-darwin-x64", "5306da5db576d9c984167b4693600a2e3074cc5a701961279837753fa2139baa"), + "10.14.2-linux_arm64": ("node-v10.14.2-linux-arm64.tar.xz", "node-v10.14.2-linux-arm64", "8493b30c99d697b24fbaa5bfb3b43108ab3e334ab674188b7b7982fef903aa04"), + "10.14.2-linux_s390x": ("node-v10.14.2-linux-s390x.tar.xz", "node-v10.14.2-linux-s390x", "8276357c908ded66bd4d5aa4f338febe43f97d1b46afd2ecf8e0181be51304f2"), + "10.14.2-linux_amd64": ("node-v10.14.2-linux-x64.tar.xz", "node-v10.14.2-linux-x64", "e43de13bf7bee440a106a844c1bc3a2adb8829fd58b857702c8f1838fdd02a2a"), + "10.14.2-windows_amd64": ("node-v10.14.2-win-x64.zip", "node-v10.14.2-win-x64", "45841fe5ffe87378c748dcb9799507f6192c34117409b2c6c18480d112a337de"), + # 10.15.0 + "10.15.0-darwin_amd64": ("node-v10.15.0-darwin-x64.tar.gz", "node-v10.15.0-darwin-x64", "353402461c898c569658d0a963790476f4d9828cc6c9286d81617ee8afcba4e8"), + "10.15.0-linux_arm64": ("node-v10.15.0-linux-arm64.tar.xz", "node-v10.15.0-linux-arm64", "77aa4a02c5471b6eb7ba935cbc6829889a27115353cff7226a208c08b654e972"), + "10.15.0-linux_s390x": ("node-v10.15.0-linux-s390x.tar.xz", "node-v10.15.0-linux-s390x", "934263cd756983f734964ec3b5923ac4e257221a029dee95e2bb851c459338e3"), + "10.15.0-linux_amd64": ("node-v10.15.0-linux-x64.tar.xz", "node-v10.15.0-linux-x64", "4ee8503c1133797777880ebf75dcf6ae3f9b894c66fd2d5da507e407064c13b5"), + "10.15.0-windows_amd64": ("node-v10.15.0-win-x64.zip", "node-v10.15.0-win-x64", "c1dbc9372ad789cd21727cb5f63b4a44ed3eae216763959cff8e68e68c6fcfe1"), + # 10.15.1 + "10.15.1-darwin_amd64": ("node-v10.15.1-darwin-x64.tar.gz", "node-v10.15.1-darwin-x64", "327dcef4b61dead1ae04d2743d3390a2b7e6cc6c389c62cfcfeb0486c5a9f181"), + "10.15.1-linux_arm64": ("node-v10.15.1-linux-arm64.tar.xz", "node-v10.15.1-linux-arm64", "0fb6d24972fd991f476a942b1b21aca5059f93b9302318c5883120445ee6cd54"), + "10.15.1-linux_s390x": ("node-v10.15.1-linux-s390x.tar.xz", "node-v10.15.1-linux-s390x", "e7f76cc08b57eb499fb4b064bbe3821bcfe36cf342520c25f0f1dc9605bf018c"), + "10.15.1-linux_amd64": ("node-v10.15.1-linux-x64.tar.xz", "node-v10.15.1-linux-x64", "77db68544c7812e925b82ccc41cd4669fdeb191cea8e20053e3f0e86889c4fce"), + "10.15.1-windows_amd64": ("node-v10.15.1-win-x64.zip", "node-v10.15.1-win-x64", "bb5bdc9363e4050c94b3f82888141b81630230f86e520abb7dde49081f1292b9"), + # 10.15.2 + "10.15.2-darwin_amd64": ("node-v10.15.2-darwin-x64.tar.gz", "node-v10.15.2-darwin-x64", "8bbb6c15a0572f493d33ef044d06ccd0ff7ead8daa67f9a32df3e863277568e8"), + "10.15.2-linux_arm64": ("node-v10.15.2-linux-arm64.tar.xz", "node-v10.15.2-linux-arm64", "2978e82d85654505d732b40dfa58f21276d99712d5d001101eaf87100d350139"), + "10.15.2-linux_s390x": ("node-v10.15.2-linux-s390x.tar.xz", "node-v10.15.2-linux-s390x", "ca643febb3d91c796a7c76f0bfe669e5295a3bfb4373d3b4509a295f5030ca60"), + "10.15.2-linux_amd64": ("node-v10.15.2-linux-x64.tar.xz", "node-v10.15.2-linux-x64", "c10eece562cfeef1627f0d2bde7dc0be810948f6bf9a932e30a8c3b425652015"), + "10.15.2-windows_amd64": ("node-v10.15.2-win-x64.zip", "node-v10.15.2-win-x64", "d97cf4788ccea6deef037ce27c91cc1a814644b878311b71811ab04d0bb8c47f"), + # 10.15.3 + "10.15.3-darwin_amd64": ("node-v10.15.3-darwin-x64.tar.gz", "node-v10.15.3-darwin-x64", "7a5eaa1f69614375a695ccb62017248e5dcc15b0b8edffa7db5b52997cf992ba"), + "10.15.3-linux_arm64": ("node-v10.15.3-linux-arm64.tar.xz", "node-v10.15.3-linux-arm64", "3d7abbf64bffb07c55168ca0f1c17be12b0d93affe9b6cadd39724649215fab9"), + "10.15.3-linux_s390x": ("node-v10.15.3-linux-s390x.tar.xz", "node-v10.15.3-linux-s390x", "545caa31bf06b150861ca3a2b1f5112aa92bb855de20fd98f8b7bc3f4c4311d7"), + "10.15.3-linux_amd64": ("node-v10.15.3-linux-x64.tar.xz", "node-v10.15.3-linux-x64", "faddbe418064baf2226c2fcbd038c3ef4ae6f936eb952a1138c7ff8cfe862438"), + "10.15.3-windows_amd64": ("node-v10.15.3-win-x64.zip", "node-v10.15.3-win-x64", "93c881fdc0455a932dd5b506a7a03df27d9fe36155c1d3f351ebfa4e20bf1c0d"), + # 10.16.0 + "10.16.0-darwin_amd64": ("node-v10.16.0-darwin-x64.tar.gz", "node-v10.16.0-darwin-x64", "6c009df1b724026d84ae9a838c5b382662e30f6c5563a0995532f2bece39fa9c"), + "10.16.0-linux_arm64": ("node-v10.16.0-linux-arm64.tar.xz", "node-v10.16.0-linux-arm64", "ae2e74ab2f5dbff96bf0b7d8457004bf3538233916f8834740bbe2d5a35442e5"), + "10.16.0-linux_s390x": ("node-v10.16.0-linux-s390x.tar.xz", "node-v10.16.0-linux-s390x", "e8202e285a88be9b53bbf50cfae2f08fff2b1ae3597893e4049c9dff3e4b9b14"), + "10.16.0-linux_amd64": ("node-v10.16.0-linux-x64.tar.xz", "node-v10.16.0-linux-x64", "1827f5b99084740234de0c506f4dd2202a696ed60f76059696747c34339b9d48"), + "10.16.0-windows_amd64": ("node-v10.16.0-win-x64.zip", "node-v10.16.0-win-x64", "aa22cb357f0fb54ccbc06b19b60e37eefea5d7dd9940912675d3ed988bf9a059"), + # 10.16.1 + "10.16.1-darwin_amd64": ("node-v10.16.1-darwin-x64.tar.gz", "node-v10.16.1-darwin-x64", "328e61fdacfe2f6f1a049d57e248b3eafc0345747831323a14fe1edf98d9b3bb"), + "10.16.1-linux_arm64": ("node-v10.16.1-linux-arm64.tar.xz", "node-v10.16.1-linux-arm64", "c46ba1a8e9b9c0490ae81f8b2b13d332ed6f5c86d172fa817f749042ab329b93"), + "10.16.1-linux_s390x": ("node-v10.16.1-linux-s390x.tar.xz", "node-v10.16.1-linux-s390x", "fc8193c8f72ce4ccd6af9cff7d073455dc200ef183964abd50ba63a6a0b69f9e"), + "10.16.1-linux_amd64": ("node-v10.16.1-linux-x64.tar.xz", "node-v10.16.1-linux-x64", "127d9b2f485523805208f867fc513842570b29b4d6831773eeb6dd403a22ba9d"), + "10.16.1-windows_amd64": ("node-v10.16.1-win-x64.zip", "node-v10.16.1-win-x64", "1ff8b26670e1b935b51f4b795728f29845c31a3c38b3220b4fe71fb139bc5623"), + # 10.16.2 + "10.16.2-darwin_amd64": ("node-v10.16.2-darwin-x64.tar.gz", "node-v10.16.2-darwin-x64", "21ee8bdb04909f553e97af7c6e41009e15d06b886dd3e2ca8a92ce3e0a148a09"), + "10.16.2-linux_arm64": ("node-v10.16.2-linux-arm64.tar.xz", "node-v10.16.2-linux-arm64", "5fb2b7d3c2b6b40e237cdc172eabfac2e485ee309ac2bcfbff413de1ed79a59e"), + "10.16.2-linux_s390x": ("node-v10.16.2-linux-s390x.tar.xz", "node-v10.16.2-linux-s390x", "ed78ca6f70c1347712046ed0789cc90c1ddb692ba2c702074e68f94b02940d15"), + "10.16.2-linux_amd64": ("node-v10.16.2-linux-x64.tar.xz", "node-v10.16.2-linux-x64", "406718dc2f3164b3d1981c36b68b70ea448fbbac29cefbe23ff286b3cd55f264"), + "10.16.2-windows_amd64": ("node-v10.16.2-win-x64.zip", "node-v10.16.2-win-x64", "01654dc79d82e9f3c89d01c8cf1cdce68d3a9118dbe968ee86a3ffd6ee153567"), + # 10.16.3 + "10.16.3-darwin_amd64": ("node-v10.16.3-darwin-x64.tar.gz", "node-v10.16.3-darwin-x64", "6febc571e1543c2845fa919c6d06b36a24e4e142c91aedbe28b6ff7d296119e4"), + "10.16.3-linux_arm64": ("node-v10.16.3-linux-arm64.tar.xz", "node-v10.16.3-linux-arm64", "8ee77bad022bd460bf2867a97bf56ce7ddc4aa2ace067e45995fb1721a958428"), + "10.16.3-linux_s390x": ("node-v10.16.3-linux-s390x.tar.xz", "node-v10.16.3-linux-s390x", "90cc57506c98cd5561f5dda9e103fa70083242fff2b1a39a5351fc15ff63db46"), + "10.16.3-linux_amd64": ("node-v10.16.3-linux-x64.tar.xz", "node-v10.16.3-linux-x64", "d2271fd8cf997fa7447d638dfa92749ff18ca4b0d796bf89f2a82bf7800d5506"), + "10.16.3-windows_amd64": ("node-v10.16.3-win-x64.zip", "node-v10.16.3-win-x64", "19aa47de7c5950d7bd71a1e878013b98d93871cc311d7185f5472e6d3f633146"), + # 10.17.0 + "10.17.0-darwin_amd64": ("node-v10.17.0-darwin-x64.tar.gz", "node-v10.17.0-darwin-x64", "9b96140ad74b217f216c83ddf50d1f70a4296576f6edbbbfb65d0f478015d9df"), + "10.17.0-linux_arm64": ("node-v10.17.0-linux-arm64.tar.xz", "node-v10.17.0-linux-arm64", "3ab8ee2b5c9aa4d060c68667ddef70cc2960e12bcfe4a0f2de7ebc0f008bf13d"), + "10.17.0-linux_s390x": ("node-v10.17.0-linux-s390x.tar.xz", "node-v10.17.0-linux-s390x", "76db3a9b7d2afda32b4267004e4c8f2530e6e95572e68a31ce639e263db9bdc4"), + "10.17.0-linux_amd64": ("node-v10.17.0-linux-x64.tar.xz", "node-v10.17.0-linux-x64", "2b49cd296f969ef0ffb7922719ffa6542bedb89d6c959a47c023d11ce222f5d6"), + "10.17.0-windows_amd64": ("node-v10.17.0-win-x64.zip", "node-v10.17.0-win-x64", "e84a1f3685219811bb4662eb3e3b55abd0c764c24cd2b224ba31b3f9f162baf6"), + # 10.18.0 + "10.18.0-darwin_amd64": ("node-v10.18.0-darwin-x64.tar.gz", "node-v10.18.0-darwin-x64", "a7af53e3363e8ab654b97387bc7cf352dddb324562404c1d35fe10cba3f27e0f"), + "10.18.0-linux_arm64": ("node-v10.18.0-linux-arm64.tar.xz", "node-v10.18.0-linux-arm64", "b2b34dd43ea3979890663afa270e09e09c219f046e39e8e439eeda2821cc9643"), + "10.18.0-linux_s390x": ("node-v10.18.0-linux-s390x.tar.xz", "node-v10.18.0-linux-s390x", "4a66ff1212c64645971497c76df6a359bdb041095284a5b46044d663a9a31e68"), + "10.18.0-linux_amd64": ("node-v10.18.0-linux-x64.tar.xz", "node-v10.18.0-linux-x64", "eac160acfc2c5b6fca021baa9943341fea50859f19c7ccbd56669b1fe04e691e"), + "10.18.0-windows_amd64": ("node-v10.18.0-win-x64.zip", "node-v10.18.0-win-x64", "56afcc9c191dfc99017725be92ac1331e23afb1930913446eb91852cb02a8687"), + # 10.18.1 + "10.18.1-darwin_amd64": ("node-v10.18.1-darwin-x64.tar.gz", "node-v10.18.1-darwin-x64", "2b2d3379420e626eee393cabf1c90bc55957ff5bb067b82a74eb2f92147d6757"), + "10.18.1-linux_arm64": ("node-v10.18.1-linux-arm64.tar.xz", "node-v10.18.1-linux-arm64", "9a6203697e0087a1c909961481d579c76777df1df622921e4ce16198851f30fe"), + "10.18.1-linux_s390x": ("node-v10.18.1-linux-s390x.tar.xz", "node-v10.18.1-linux-s390x", "ad2c4e65667e470aac69d54ef0261cc878fbe7d58b73f273492566f6aaab5e54"), + "10.18.1-linux_amd64": ("node-v10.18.1-linux-x64.tar.xz", "node-v10.18.1-linux-x64", "8cc40f45c2c62529b15e83a6bbe0ac1febf57af3c5720df68067c96c0fddbbdf"), + "10.18.1-windows_amd64": ("node-v10.18.1-win-x64.zip", "node-v10.18.1-win-x64", "fb27bb95c27c72f2e25d0c41309b606b2ae48ba0d6094a19f206ad1df9dc5e19"), + # 10.19.0 + "10.19.0-darwin_amd64": ("node-v10.19.0-darwin-x64.tar.gz", "node-v10.19.0-darwin-x64", "b16328570651be44213a2303c1f9515fc506e0a96a273806f71ed000e3ca3cb3"), + "10.19.0-linux_arm64": ("node-v10.19.0-linux-arm64.tar.xz", "node-v10.19.0-linux-arm64", "77bdbf859fc38e6e860efd479b0a7b7b6bd3e7cb05337e5cc5638251eb5d3a59"), + "10.19.0-linux_s390x": ("node-v10.19.0-linux-s390x.tar.xz", "node-v10.19.0-linux-s390x", "014c3fac92b0e3546a4d3de3b05bb00f3d6839f529455419cccc554f4c40409e"), + "10.19.0-linux_amd64": ("node-v10.19.0-linux-x64.tar.xz", "node-v10.19.0-linux-x64", "34127c7c6b1ba02d6d4dc3a926f38a5fb88bb37fc7f051349005ce331c7a53c6"), + "10.19.0-windows_amd64": ("node-v10.19.0-win-x64.zip", "node-v10.19.0-win-x64", "210efd45a7f79cf4c350d8f575f990becdd3833cd922796a4c83b27996f5679e"), + # 10.20.0 + "10.20.0-darwin_amd64": ("node-v10.20.0-darwin-x64.tar.gz", "node-v10.20.0-darwin-x64", "c153832774afcae89a82efb55ed80557d1a41e1880638ad57128a9a3762d212f"), + "10.20.0-linux_arm64": ("node-v10.20.0-linux-arm64.tar.xz", "node-v10.20.0-linux-arm64", "f3567924d6b7f0fa55c4ee0a7330ec0dcaeec557982794796d6b312e7053c674"), + "10.20.0-linux_s390x": ("node-v10.20.0-linux-s390x.tar.xz", "node-v10.20.0-linux-s390x", "4051f510299d2f90b203420435bdbb9486052ea6d1e2b4ac7605b3d8c1c2dd9c"), + "10.20.0-linux_amd64": ("node-v10.20.0-linux-x64.tar.xz", "node-v10.20.0-linux-x64", "c5721a89feecc0e98d42386e171cb763c077f782033ddc998819edcf9d93b691"), + "10.20.0-windows_amd64": ("node-v10.20.0-win-x64.zip", "node-v10.20.0-win-x64", "d266313fa22885a6ec76eea521fb8a1131b4d9fb3a57afb045a98301aeb7d24e"), + # 10.20.1 + "10.20.1-darwin_amd64": ("node-v10.20.1-darwin-x64.tar.gz", "node-v10.20.1-darwin-x64", "6437e364cd93be246ffb67dd40775cbb467bb8d28d8af4413123f478bb6234b9"), + "10.20.1-linux_arm64": ("node-v10.20.1-linux-arm64.tar.xz", "node-v10.20.1-linux-arm64", "e33cafff94a6308916530b4b724bbc138399484d96f71b1c23677596bec268d0"), + "10.20.1-linux_s390x": ("node-v10.20.1-linux-s390x.tar.xz", "node-v10.20.1-linux-s390x", "05e7577c8bf00f4a1b1118c80bb1ce5e014242fe62e84b189c176f3ee37b3c1c"), + "10.20.1-linux_amd64": ("node-v10.20.1-linux-x64.tar.xz", "node-v10.20.1-linux-x64", "5e0b1fbc6cf8c2c34dc33d880670ee1bc1c1e931099de3796a96143a962c92ee"), + "10.20.1-windows_amd64": ("node-v10.20.1-win-x64.zip", "node-v10.20.1-win-x64", "5e4ec0936c51047c218c0c164cc80283cd36ecd40e0a6979281d395c1be8ee10"), + # 10.21.0 + "10.21.0-darwin_amd64": ("node-v10.21.0-darwin-x64.tar.gz", "node-v10.21.0-darwin-x64", "596900700c4a0de0303bb4c378a1abcd63f31efc848704c5fbc1230de628577a"), + "10.21.0-linux_arm64": ("node-v10.21.0-linux-arm64.tar.xz", "node-v10.21.0-linux-arm64", "3af40706ff0da7fe0baa4683ead6c74445405a2553e7373e627f24d19d4ac100"), + "10.21.0-linux_s390x": ("node-v10.21.0-linux-s390x.tar.xz", "node-v10.21.0-linux-s390x", "ff5d3aa06bae5caacdcedaf75c9d835de80d899f36a4e93933c6b06effb4481e"), + "10.21.0-linux_amd64": ("node-v10.21.0-linux-x64.tar.xz", "node-v10.21.0-linux-x64", "1d3296763e46540047099e4910812e81c4899c0595f2d82474e2099c1e1603e2"), + "10.21.0-windows_amd64": ("node-v10.21.0-win-x64.zip", "node-v10.21.0-win-x64", "03dddcdaccdb40978ddf15d189acdc20409d9a666636db2595118690ff83ce82"), + # 10.22.0 + "10.22.0-darwin_amd64": ("node-v10.22.0-darwin-x64.tar.gz", "node-v10.22.0-darwin-x64", "c7583a297ba9c6cfc03688a32776155d02fabf9ff45847c63b12a68d400f1dc1"), + "10.22.0-linux_arm64": ("node-v10.22.0-linux-arm64.tar.xz", "node-v10.22.0-linux-arm64", "abacc6f37e8dfbe398843c7dc7b9bb7153ff6e653ad50e85d73d86088da48372"), + "10.22.0-linux_s390x": ("node-v10.22.0-linux-s390x.tar.xz", "node-v10.22.0-linux-s390x", "d28d22c560deeae02a196f87affbec99702df2e170de83d53bfbafb75f502973"), + "10.22.0-linux_amd64": ("node-v10.22.0-linux-x64.tar.xz", "node-v10.22.0-linux-x64", "ddf33e038c593d6df36b1dd4b25c1b6fa8230c615e6312ad33e80ef863e4a74f"), + "10.22.0-windows_amd64": ("node-v10.22.0-win-x64.zip", "node-v10.22.0-win-x64", "931c2907450790f89aa178fa84c1adbd1f7cb7ab0a34f8bfb4af25640e8d4e06"), + # 10.22.1 + "10.22.1-darwin_amd64": ("node-v10.22.1-darwin-x64.tar.gz", "node-v10.22.1-darwin-x64", "c87251c952e791d37b289947bea9f450a9beb541078cd47f77c0c4ef1cad9675"), + "10.22.1-linux_arm64": ("node-v10.22.1-linux-arm64.tar.xz", "node-v10.22.1-linux-arm64", "ee8df4f8b8297f4d844da7ee00770983a7ef39a4153b6e9038748c2dd2855619"), + "10.22.1-linux_s390x": ("node-v10.22.1-linux-s390x.tar.xz", "node-v10.22.1-linux-s390x", "4184c92caec877da1001c5f6d03a5f096805c2c203be8b087fef6370119ab210"), + "10.22.1-linux_amd64": ("node-v10.22.1-linux-x64.tar.xz", "node-v10.22.1-linux-x64", "079d6329c7ba5da3e3fa0949b543e24e605daf985381b32ebd86df8d38f9afa6"), + "10.22.1-windows_amd64": ("node-v10.22.1-win-x64.zip", "node-v10.22.1-win-x64", "2cc8c0080cf3c8e91b9c66845e369cedd29dd4afc027bdba775eadb6d7e2beda"), + # 10.23.0 + "10.23.0-darwin_amd64": ("node-v10.23.0-darwin-x64.tar.gz", "node-v10.23.0-darwin-x64", "c4dcaee7806b1fa1a2e832abd817bdd9b31a9c84181e7686067fd4eb5e3b12c3"), + "10.23.0-linux_arm64": ("node-v10.23.0-linux-arm64.tar.xz", "node-v10.23.0-linux-arm64", "611bc364ac089718ed8bc94226c3fce76446caeb3b57a8c8ebb8f1753ca9cad6"), + "10.23.0-linux_s390x": ("node-v10.23.0-linux-s390x.tar.xz", "node-v10.23.0-linux-s390x", "421216ff143357a6ef27a293ac1aa1a3ad0eb4ca26f5b62d8301048cf5a2d63a"), + "10.23.0-linux_amd64": ("node-v10.23.0-linux-x64.tar.xz", "node-v10.23.0-linux-x64", "3293b1ea9b9e08d9dbc5bb8717a80084e24cadfe3b030a8ebfdadea5f963dfc9"), + "10.23.0-windows_amd64": ("node-v10.23.0-win-x64.zip", "node-v10.23.0-win-x64", "efafacc17f72ed96b4a08eda185b61e98f7aeb8a26a6776312055b8c0c492313"), + # 11.0.0 + "11.0.0-darwin_amd64": ("node-v11.0.0-darwin-x64.tar.gz", "node-v11.0.0-darwin-x64", "f70e12d246ba35e88c5c08a195215c5c913ce66c9d95d0bd21cc1d3e69904279"), + "11.0.0-linux_arm64": ("node-v11.0.0-linux-arm64.tar.xz", "node-v11.0.0-linux-arm64", "0d0c7013fd00a8e713c36aa96bcc268eeadbad2ce48d87e19849d66f4c618cad"), + "11.0.0-linux_s390x": ("node-v11.0.0-linux-s390x.tar.xz", "node-v11.0.0-linux-s390x", "ce2c05931bdaf3ed14c6a24ea2bc7e881d205af433e6bf2b3297b5c5e6877589"), + "11.0.0-linux_amd64": ("node-v11.0.0-linux-x64.tar.xz", "node-v11.0.0-linux-x64", "418b1a73bcafbf5dd3bc787f0440c2b4123dfecc2b239f5651f0256cb5ab606d"), + "11.0.0-windows_amd64": ("node-v11.0.0-win-x64.zip", "node-v11.0.0-win-x64", "4dd3ef7f5c8181be39cd45476b22ed34b6da2bf77377b699384d426702f8c969"), + # 11.1.0 + "11.1.0-darwin_amd64": ("node-v11.1.0-darwin-x64.tar.gz", "node-v11.1.0-darwin-x64", "5d6b84d2b0fd6afee07c371bc815a9e4b6671b85bedcb38815310bd0f884d3c8"), + "11.1.0-linux_arm64": ("node-v11.1.0-linux-arm64.tar.xz", "node-v11.1.0-linux-arm64", "cbba27e1c90701fbb9db66cc2c6cc3049aaf08adb16cabd0cad970b74cdaf6d3"), + "11.1.0-linux_s390x": ("node-v11.1.0-linux-s390x.tar.xz", "node-v11.1.0-linux-s390x", "e17d9551edbed725ea405d74bf442b020e0ed43e1c4f4752f9699afd2e8d4a40"), + "11.1.0-linux_amd64": ("node-v11.1.0-linux-x64.tar.xz", "node-v11.1.0-linux-x64", "c70419674d932452017556080264de2b6d1105c112647dd1dd495b739456dd91"), + "11.1.0-windows_amd64": ("node-v11.1.0-win-x64.zip", "node-v11.1.0-win-x64", "985e4edc758cb5f77f85cddda0155616b92f163b8d3842c542b1c8a395068418"), + # 11.2.0 + "11.2.0-darwin_amd64": ("node-v11.2.0-darwin-x64.tar.gz", "node-v11.2.0-darwin-x64", "cd17fafcdb21ae80fb94e455e63567c70b3bceedf982b93ae9e4aea411f6a6ea"), + "11.2.0-linux_arm64": ("node-v11.2.0-linux-arm64.tar.xz", "node-v11.2.0-linux-arm64", "3e6c47a29b85030b4305bdc2e15cbe37e1b54a2338ce1790637384ce349ed1fd"), + "11.2.0-linux_s390x": ("node-v11.2.0-linux-s390x.tar.xz", "node-v11.2.0-linux-s390x", "844d45d346aa53fbd5d61392cededb82e923f50c20904ef172c6783a05ef541d"), + "11.2.0-linux_amd64": ("node-v11.2.0-linux-x64.tar.xz", "node-v11.2.0-linux-x64", "629a603443c275f8ecd851994b81a9c02a36343dbcbafc279cbecb9ccd9cf906"), + "11.2.0-windows_amd64": ("node-v11.2.0-win-x64.zip", "node-v11.2.0-win-x64", "3440b2880b4e3b78c9c18865df263317e7d3c3e179dad960d526004dc7e6ba9a"), + # 11.3.0 + "11.3.0-darwin_amd64": ("node-v11.3.0-darwin-x64.tar.gz", "node-v11.3.0-darwin-x64", "54acc7bdeffae79fdd73f959712305aee1d8d487d56813b43cae96d151ec79db"), + "11.3.0-linux_arm64": ("node-v11.3.0-linux-arm64.tar.xz", "node-v11.3.0-linux-arm64", "642cc3fc94a856ad6d09e76eaf869672bef925308afdad398a58f18eeaf4e4b8"), + "11.3.0-linux_s390x": ("node-v11.3.0-linux-s390x.tar.xz", "node-v11.3.0-linux-s390x", "bc623c56da1fe9eea8b65571e6d451c70639f592da9191cd9263fca639e6443b"), + "11.3.0-linux_amd64": ("node-v11.3.0-linux-x64.tar.xz", "node-v11.3.0-linux-x64", "d37fb7fae8a185409bccf106e91d8ffa3450115852795512fc62e6da0b5e3dbb"), + "11.3.0-windows_amd64": ("node-v11.3.0-win-x64.zip", "node-v11.3.0-win-x64", "b801e908ec36a07f06df388845e22e0b7f3cede7a4030896712c8ee28cdb3f05"), + # 11.4.0 + "11.4.0-darwin_amd64": ("node-v11.4.0-darwin-x64.tar.gz", "node-v11.4.0-darwin-x64", "05a515146d5bc397625f442a6ecbbc7f0d071a2a7efbf1e2b2ed46d728bc7b30"), + "11.4.0-linux_arm64": ("node-v11.4.0-linux-arm64.tar.xz", "node-v11.4.0-linux-arm64", "c32e752e74794a4254ae4caa892b7beb3be60dba6851e8e5d637febfb659ee3a"), + "11.4.0-linux_s390x": ("node-v11.4.0-linux-s390x.tar.xz", "node-v11.4.0-linux-s390x", "ee279bc284c97c5fe609028e4a867345baf7d4447b016bc908fd4523fbd87e90"), + "11.4.0-linux_amd64": ("node-v11.4.0-linux-x64.tar.xz", "node-v11.4.0-linux-x64", "24d9be161e7fb28e761801639cb452ff223269ed53d967e5745b5c6391eb3fbd"), + "11.4.0-windows_amd64": ("node-v11.4.0-win-x64.zip", "node-v11.4.0-win-x64", "30b84ab0101c8916694e6cd6c0ccb5182e4555da5e06deb080e906ef5b3893df"), + # 11.5.0 + "11.5.0-darwin_amd64": ("node-v11.5.0-darwin-x64.tar.gz", "node-v11.5.0-darwin-x64", "741abd58ac67b4bf8d2ef991a7487ea17e421b2248688b93be0d2f34886c6aa2"), + "11.5.0-linux_arm64": ("node-v11.5.0-linux-arm64.tar.xz", "node-v11.5.0-linux-arm64", "3f1436c1de70b2e34f7a63a5af7e6b106a8ebe9289b3f7d045ac4a4856570164"), + "11.5.0-linux_s390x": ("node-v11.5.0-linux-s390x.tar.xz", "node-v11.5.0-linux-s390x", "4b80c04e8e49052ef866fcbf9dd699f0fd12b706fe493ce5e295d20a2df4aba6"), + "11.5.0-linux_amd64": ("node-v11.5.0-linux-x64.tar.xz", "node-v11.5.0-linux-x64", "ada54407b505b7e6f516c753f0e49220917dd11efa5ee892d3252bdd65d4a54c"), + "11.5.0-windows_amd64": ("node-v11.5.0-win-x64.zip", "node-v11.5.0-win-x64", "3692939b1bbd7ee8b0a967429eef6b1d45078c2f4fc289aae261ca5bde5a0607"), + # 11.6.0 + "11.6.0-darwin_amd64": ("node-v11.6.0-darwin-x64.tar.gz", "node-v11.6.0-darwin-x64", "c880063b112c48130dba8f7b058de61959ae46fddcfa363715571b22c1cbeb26"), + "11.6.0-linux_arm64": ("node-v11.6.0-linux-arm64.tar.xz", "node-v11.6.0-linux-arm64", "956016db41f4f96f8e005d36c738d7c833442d09a970462552eb214027e0268a"), + "11.6.0-linux_s390x": ("node-v11.6.0-linux-s390x.tar.xz", "node-v11.6.0-linux-s390x", "4eb5cb5823d324819f32872be41e66d676c7792e05c0c4d4411b297a87cb6cab"), + "11.6.0-linux_amd64": ("node-v11.6.0-linux-x64.tar.xz", "node-v11.6.0-linux-x64", "2251a6c5b332e7ea69bbefba11950cb6c27ba50fa700468711f729da6a6f5324"), + "11.6.0-windows_amd64": ("node-v11.6.0-win-x64.zip", "node-v11.6.0-win-x64", "d230828c1cc9863c9768106ffee0320ba42049b594bd2689e430b872e8f0b2dd"), + # 11.7.0 + "11.7.0-darwin_amd64": ("node-v11.7.0-darwin-x64.tar.gz", "node-v11.7.0-darwin-x64", "873b47e6fc97aef2f73b0e8dde641967b2a84a3b63d1697b9d8813e14fb3b01c"), + "11.7.0-linux_arm64": ("node-v11.7.0-linux-arm64.tar.xz", "node-v11.7.0-linux-arm64", "82b9726c6b367a43530f868f61b1b2a05c942d3decdf9d2e18b4a9bdf353c223"), + "11.7.0-linux_s390x": ("node-v11.7.0-linux-s390x.tar.xz", "node-v11.7.0-linux-s390x", "f13565ab58e8cc308fcbc941af67a17e842dbe6f6bc6d6d1799bbca904edf997"), + "11.7.0-linux_amd64": ("node-v11.7.0-linux-x64.tar.xz", "node-v11.7.0-linux-x64", "b2a0a7dde17fe0da5f86ce5fea3da2861d652a5e702e2177ee62813ff86451c0"), + "11.7.0-windows_amd64": ("node-v11.7.0-win-x64.zip", "node-v11.7.0-win-x64", "00834d16532f24583bf56d2baab03904b0220154cc712344be95e4d05c6234dd"), + # 11.8.0 + "11.8.0-darwin_amd64": ("node-v11.8.0-darwin-x64.tar.gz", "node-v11.8.0-darwin-x64", "fbb26b38f408c2f2324a5821062c16103f54de16d24f9f24c4e270a3a41f4832"), + "11.8.0-linux_arm64": ("node-v11.8.0-linux-arm64.tar.xz", "node-v11.8.0-linux-arm64", "42b190c686cb8bafbdbf418a6c20c6785a23ba0f1a1a85af44595057a3d5e25e"), + "11.8.0-linux_s390x": ("node-v11.8.0-linux-s390x.tar.xz", "node-v11.8.0-linux-s390x", "fc37d058851b240e26b926d0b76c17f24ef3bd9624ae84b60c2719064b9753c2"), + "11.8.0-linux_amd64": ("node-v11.8.0-linux-x64.tar.xz", "node-v11.8.0-linux-x64", "85ca19c495d5cac6acf6ee4a3c8dfb4489fb67fefc184c61eb4513eb5ef99a88"), + "11.8.0-windows_amd64": ("node-v11.8.0-win-x64.zip", "node-v11.8.0-win-x64", "cd4db1b9e7ac29ed81d433f2de85582902670a121961aa3f350533d5b2fd44c6"), + # 11.9.0 + "11.9.0-darwin_amd64": ("node-v11.9.0-darwin-x64.tar.gz", "node-v11.9.0-darwin-x64", "1df3dd99d174bb8cb61cc8e2aa419a4998c7ada9454123c34991ce30632f1ef8"), + "11.9.0-linux_arm64": ("node-v11.9.0-linux-arm64.tar.xz", "node-v11.9.0-linux-arm64", "f39baa8d212e9676bfa7f1601f94d789c6dc6b35caf440df6ec815d238978457"), + "11.9.0-linux_s390x": ("node-v11.9.0-linux-s390x.tar.xz", "node-v11.9.0-linux-s390x", "8d82242ac223d17844c030ace8aaa8cae95efc9e16f7cc640466a539f6a0fc6d"), + "11.9.0-linux_amd64": ("node-v11.9.0-linux-x64.tar.xz", "node-v11.9.0-linux-x64", "9bc461fb7f5fd3344301abfda834160d5397a4e289f9749ab03ba0b7e9a4c853"), + "11.9.0-windows_amd64": ("node-v11.9.0-win-x64.zip", "node-v11.9.0-win-x64", "c62c01436f632858fea0194d4168b483e1aa485c3fc72247add4899a103c2677"), + # 11.10.0 + "11.10.0-darwin_amd64": ("node-v11.10.0-darwin-x64.tar.gz", "node-v11.10.0-darwin-x64", "1956528c6f3934a97508e36a4855c154f40f1923ccd61e296d5a85679103e3a1"), + "11.10.0-linux_arm64": ("node-v11.10.0-linux-arm64.tar.xz", "node-v11.10.0-linux-arm64", "60ed6caa90d8188a55f0dbc63f4aef263fb4863e036d32989b820a2e40582c66"), + "11.10.0-linux_s390x": ("node-v11.10.0-linux-s390x.tar.xz", "node-v11.10.0-linux-s390x", "f5015866e659d00746bedddd29707a56c8b14f3869ef1f4a1b8e98d085547f80"), + "11.10.0-linux_amd64": ("node-v11.10.0-linux-x64.tar.xz", "node-v11.10.0-linux-x64", "fe4c617aaf88b5228bce0341d1c77bbae2622d69eaa17a15b7d4bcc60c4777c5"), + "11.10.0-windows_amd64": ("node-v11.10.0-win-x64.zip", "node-v11.10.0-win-x64", "c39e711aebe678455fa74edf6d8f6184d6d93e20f160197799040a0c17005dba"), + # 11.10.1 + "11.10.1-darwin_amd64": ("node-v11.10.1-darwin-x64.tar.gz", "node-v11.10.1-darwin-x64", "dea52b86f6875efae26fbb6d0269d9769da7ca69408b74b6ab724d4b64004b07"), + "11.10.1-linux_arm64": ("node-v11.10.1-linux-arm64.tar.xz", "node-v11.10.1-linux-arm64", "b116e57906ed73c970d64e7518b08c6de236575c5cd8bf09f4c1bd668524a014"), + "11.10.1-linux_s390x": ("node-v11.10.1-linux-s390x.tar.xz", "node-v11.10.1-linux-s390x", "dcfcc18d5fbe2cbc737df0c21db093c17f737a8db854963dbf3c2e8c9e4d86f8"), + "11.10.1-linux_amd64": ("node-v11.10.1-linux-x64.tar.xz", "node-v11.10.1-linux-x64", "414216a7e47dbfb77141dce7a4452901ae2cdb4cd0deef3ab3ab49e0b2111f82"), + "11.10.1-windows_amd64": ("node-v11.10.1-win-x64.zip", "node-v11.10.1-win-x64", "80cf14abacbc6b636bc192f4eee49421f082f21cdaa9c1ea5995c38f8c1375e5"), + # 11.11.0 + "11.11.0-darwin_amd64": ("node-v11.11.0-darwin-x64.tar.gz", "node-v11.11.0-darwin-x64", "6b7c8d93096bf065de0d0a42e8f027c424172c82df6f015d3149a5dbfa03c1cc"), + "11.11.0-linux_arm64": ("node-v11.11.0-linux-arm64.tar.xz", "node-v11.11.0-linux-arm64", "febb698e74264ec0ecc738c86347e6bfb5d27e33ed492a031626df988a5fb4f3"), + "11.11.0-linux_s390x": ("node-v11.11.0-linux-s390x.tar.xz", "node-v11.11.0-linux-s390x", "65aee43ca942e334c12166f9978e3ec73c7ecf6425f5f2d969299acc4e05bbde"), + "11.11.0-linux_amd64": ("node-v11.11.0-linux-x64.tar.xz", "node-v11.11.0-linux-x64", "ee09c7712e741f84948f76a72b651bf088e516c3f38569b9e6f30c38c026c262"), + "11.11.0-windows_amd64": ("node-v11.11.0-win-x64.zip", "node-v11.11.0-win-x64", "154a5b7ca7033382743c4752fa465a5d9902f4abed4263a38ea3f41ffa113910"), + # 11.12.0 + "11.12.0-darwin_amd64": ("node-v11.12.0-darwin-x64.tar.gz", "node-v11.12.0-darwin-x64", "93d68c1af41d02b262b3383d69b46eb326707ec010b321ad5655b91c4956e783"), + "11.12.0-linux_arm64": ("node-v11.12.0-linux-arm64.tar.xz", "node-v11.12.0-linux-arm64", "9e89838e290c9bb478351bd403707d0b741ec56021c379c9f6da515a4cd1064a"), + "11.12.0-linux_s390x": ("node-v11.12.0-linux-s390x.tar.xz", "node-v11.12.0-linux-s390x", "5004703427870df0e56b1892ec17a210fa8f91c5add88e2a62ab1832e9cb25a4"), + "11.12.0-linux_amd64": ("node-v11.12.0-linux-x64.tar.xz", "node-v11.12.0-linux-x64", "1c6bb93a24eda832708c1c10ec20316e1e4f30b3cfca9c5ee5d446762414b116"), + "11.12.0-windows_amd64": ("node-v11.12.0-win-x64.zip", "node-v11.12.0-win-x64", "68e5bca1d6dd6b3de20870e7c593f9a890c48d2c9c83e15034baad6f7c0da426"), + # 11.13.0 + "11.13.0-darwin_amd64": ("node-v11.13.0-darwin-x64.tar.gz", "node-v11.13.0-darwin-x64", "c1a8f94b4778dad2d9f513cfdf9091810dc733a2daf4fa7e03d49ad133415b5d"), + "11.13.0-linux_arm64": ("node-v11.13.0-linux-arm64.tar.xz", "node-v11.13.0-linux-arm64", "0edb29004fdbb5808331e765b4adde8b025a13d6619f49fec60a14582aba9ed7"), + "11.13.0-linux_s390x": ("node-v11.13.0-linux-s390x.tar.xz", "node-v11.13.0-linux-s390x", "1e48381ce2916e28ed60553ad3afef60136fb247c1ab09887bae1b39d3c3966f"), + "11.13.0-linux_amd64": ("node-v11.13.0-linux-x64.tar.xz", "node-v11.13.0-linux-x64", "c2ae3caced5f181df282a6974ab3f5e232b5decb821aa8ea8fe758b0e0528223"), + "11.13.0-windows_amd64": ("node-v11.13.0-win-x64.zip", "node-v11.13.0-win-x64", "f3dafd1f19841244f8f12952f9919c0a2857f6920b11f2a89554b061cd5a4525"), + # 11.14.0 + "11.14.0-darwin_amd64": ("node-v11.14.0-darwin-x64.tar.gz", "node-v11.14.0-darwin-x64", "37b8db4f6700a4b5aa3b6d4283538753953f6293aff99866aa9a81038848a4d9"), + "11.14.0-linux_arm64": ("node-v11.14.0-linux-arm64.tar.xz", "node-v11.14.0-linux-arm64", "3d463f3b48e1060027f8a552657de6f3ee4724d718d546aa4ea5c301ee4ed083"), + "11.14.0-linux_s390x": ("node-v11.14.0-linux-s390x.tar.xz", "node-v11.14.0-linux-s390x", "efc61e9943c978484a89223384dec8f4f97ecfa7d6a23717a5606b64b8a4e3bf"), + "11.14.0-linux_amd64": ("node-v11.14.0-linux-x64.tar.xz", "node-v11.14.0-linux-x64", "89e2cb0effa9bf075ee8bb6d92a6a50f7ccfdad03dd687f52ecdfab91230f9a1"), + "11.14.0-windows_amd64": ("node-v11.14.0-win-x64.zip", "node-v11.14.0-win-x64", "58a5d3316c04335ff3da2ce66b89f3cce86b1d1ca878d1d6d68478160c66dc12"), + # 11.15.0 + "11.15.0-darwin_amd64": ("node-v11.15.0-darwin-x64.tar.gz", "node-v11.15.0-darwin-x64", "e953b657b1049e1de509a3fd0700cfeecd175f75a0d141d71393aa0d71fa29a9"), + "11.15.0-linux_arm64": ("node-v11.15.0-linux-arm64.tar.xz", "node-v11.15.0-linux-arm64", "e458aa4c69da9ca2ae566c8eb56dc8b36d573b415bfd8eebca4ff2229fc4983d"), + "11.15.0-linux_s390x": ("node-v11.15.0-linux-s390x.tar.xz", "node-v11.15.0-linux-s390x", "d1587187251be765415ea5a9cf7c7aeba034fe3d45093d2de2add53802f02a87"), + "11.15.0-linux_amd64": ("node-v11.15.0-linux-x64.tar.xz", "node-v11.15.0-linux-x64", "17424aef198fa322b93c79217ce7e8cdd264fed40383abbbd3e63c305ce1d7d8"), + "11.15.0-windows_amd64": ("node-v11.15.0-win-x64.zip", "node-v11.15.0-win-x64", "f3cef50acf566724a5ec5df7697fb527d7339cafdae6c7c406a39358aee6cdf8"), + # 12.0.0 + "12.0.0-darwin_amd64": ("node-v12.0.0-darwin-x64.tar.gz", "node-v12.0.0-darwin-x64", "92c81a284e909424b50dd01e175260b75bbbdb487fdfe1885229817187ea76bc"), + "12.0.0-linux_arm64": ("node-v12.0.0-linux-arm64.tar.xz", "node-v12.0.0-linux-arm64", "2ac36aa51f76654a8914d41a32bd5c3d3213cba14eea84abd9919d022b5694b4"), + "12.0.0-linux_s390x": ("node-v12.0.0-linux-s390x.tar.xz", "node-v12.0.0-linux-s390x", "b0db545607686e61bf2e86322b30d394746bdb2b86c42797369aa06157b1f066"), + "12.0.0-linux_amd64": ("node-v12.0.0-linux-x64.tar.xz", "node-v12.0.0-linux-x64", "7a5609167265954cfb912e4dc8f36e5469335b6be1bb11d60d8427f92c03f5f9"), + "12.0.0-windows_amd64": ("node-v12.0.0-win-x64.zip", "node-v12.0.0-win-x64", "96ab5f9f61d75daf3fb1072930b6e9249f15b77bc3b3dca516ae8439dc1500fb"), + # 12.1.0 + "12.1.0-darwin_amd64": ("node-v12.1.0-darwin-x64.tar.gz", "node-v12.1.0-darwin-x64", "57c592b13940aa44611aec08e7b425f35565a2c95c51736f433cb36eb65105b7"), + "12.1.0-linux_arm64": ("node-v12.1.0-linux-arm64.tar.xz", "node-v12.1.0-linux-arm64", "67805a7976bef30d0e12211f18a99c6de405931e493fd32f451512473661ee10"), + "12.1.0-linux_s390x": ("node-v12.1.0-linux-s390x.tar.xz", "node-v12.1.0-linux-s390x", "4c960f0000acdeda5d1d934271770b0c2a472d2c25a5b9f5153fd39bf94d2f3b"), + "12.1.0-linux_amd64": ("node-v12.1.0-linux-x64.tar.xz", "node-v12.1.0-linux-x64", "331c43176a20e705c6f4fdb61c69fee44dd3c2c93a20410be2c13b4f8515ef7b"), + "12.1.0-windows_amd64": ("node-v12.1.0-win-x64.zip", "node-v12.1.0-win-x64", "6dc3ef4a6b4ce527f187270a1b0c5560771126df487ab9ddc4c3cd3b37d57eb6"), + # 12.2.0 + "12.2.0-darwin_amd64": ("node-v12.2.0-darwin-x64.tar.gz", "node-v12.2.0-darwin-x64", "c72ae8a2b989138c6e6e9b393812502df8c28546a016cf24e7a82dd27e3838af"), + "12.2.0-linux_arm64": ("node-v12.2.0-linux-arm64.tar.xz", "node-v12.2.0-linux-arm64", "42e4a5c6ad0b402e281daf46a27a269249bdb8b4e31ff8869701aaddac2cc8c4"), + "12.2.0-linux_s390x": ("node-v12.2.0-linux-s390x.tar.xz", "node-v12.2.0-linux-s390x", "1cdab471441cfaca2f58c2349d85ba376cac6878edfbe3ece0586342c47f5d20"), + "12.2.0-linux_amd64": ("node-v12.2.0-linux-x64.tar.xz", "node-v12.2.0-linux-x64", "89059969861606e2a435ff2619c4df6f41c040120e507d9c4f03374353357307"), + "12.2.0-windows_amd64": ("node-v12.2.0-win-x64.zip", "node-v12.2.0-win-x64", "c1e7fb3c1c15d8f2ab5c1db9c9662097f9c682164b3f7397955ccce946442c97"), + # 12.3.0 + "12.3.0-darwin_amd64": ("node-v12.3.0-darwin-x64.tar.gz", "node-v12.3.0-darwin-x64", "4a9faa038fb4e6e930a0fecd9818a4820b4ca91d1c45a1c1279fe49cdbd28160"), + "12.3.0-linux_arm64": ("node-v12.3.0-linux-arm64.tar.xz", "node-v12.3.0-linux-arm64", "3d6e7046b938ff1f2535bdcc892a82abf44d875d1e96779cc3ea9a074ccfa200"), + "12.3.0-linux_s390x": ("node-v12.3.0-linux-s390x.tar.xz", "node-v12.3.0-linux-s390x", "a6ae7ed30851b15c74f5da0dbacb876de26b79db23c73e6915a27df695a3bdef"), + "12.3.0-linux_amd64": ("node-v12.3.0-linux-x64.tar.xz", "node-v12.3.0-linux-x64", "2ce2c7a4d7fe3c560415e8dcbc5905a66a8bf28e2a2b2cff7e7a4eeb5753015d"), + "12.3.0-windows_amd64": ("node-v12.3.0-win-x64.zip", "node-v12.3.0-win-x64", "b36c9f9809c90ce704465f066861314d6e33176a5d45da14c1519c3e4f35063e"), + # 12.3.1 + "12.3.1-darwin_amd64": ("node-v12.3.1-darwin-x64.tar.gz", "node-v12.3.1-darwin-x64", "b9c979f63a356090d8ff88ed141fd856ad853165c73633794a9d3a060334378e"), + "12.3.1-linux_arm64": ("node-v12.3.1-linux-arm64.tar.xz", "node-v12.3.1-linux-arm64", "88df7f2e0c4a58661bb79b637daa417929efc6c4d6a77bba42a5127c5c383257"), + "12.3.1-linux_s390x": ("node-v12.3.1-linux-s390x.tar.xz", "node-v12.3.1-linux-s390x", "30416b899c48aef989a8671f247c961f5b74a6550812c9176560c92d63d134b0"), + "12.3.1-linux_amd64": ("node-v12.3.1-linux-x64.tar.xz", "node-v12.3.1-linux-x64", "46f52868c0643fe0d167ce24c3c873880c8e1494276c89c07114fb099da4f75a"), + "12.3.1-windows_amd64": ("node-v12.3.1-win-x64.zip", "node-v12.3.1-win-x64", "aac3c4543f846c7ebf63e1498dec7955119dffffe65722bd8c6d2124ed4ecbd7"), + # 12.4.0 + "12.4.0-darwin_amd64": ("node-v12.4.0-darwin-x64.tar.gz", "node-v12.4.0-darwin-x64", "aaff97d59cda775165ef966ae74e70f55f3267e86d735ed3740ae9bf1d40531e"), + "12.4.0-linux_arm64": ("node-v12.4.0-linux-arm64.tar.xz", "node-v12.4.0-linux-arm64", "bb2e7eabebdceb52424516dabce94cb37f55419e6ed19493916843a323c423cd"), + "12.4.0-linux_s390x": ("node-v12.4.0-linux-s390x.tar.xz", "node-v12.4.0-linux-s390x", "8dfa841d83e47db766d0ac6f7866d233276138691f3a56ff2f6e2a5c7f00d9d0"), + "12.4.0-linux_amd64": ("node-v12.4.0-linux-x64.tar.xz", "node-v12.4.0-linux-x64", "9aec6a2a50c1791704a6069cbda6da62781361e44814d024e8bbaaf0deb41c5e"), + "12.4.0-windows_amd64": ("node-v12.4.0-win-x64.zip", "node-v12.4.0-win-x64", "ec8623e2528a35d3219200308e7ed41e24d4f7cd96530a4e6ac2513e44f7fad1"), + # 12.5.0 + "12.5.0-darwin_amd64": ("node-v12.5.0-darwin-x64.tar.gz", "node-v12.5.0-darwin-x64", "a9ba9f584f015f1705063c10dd8d84d43f5b09dc7ecf4ee3968ab1ff1fe5d2b5"), + "12.5.0-linux_arm64": ("node-v12.5.0-linux-arm64.tar.xz", "node-v12.5.0-linux-arm64", "d43b71a97f5484d13b655a8a0c1b1c0fc7e83b3719063cc362fe557d6e26bd69"), + "12.5.0-linux_s390x": ("node-v12.5.0-linux-s390x.tar.xz", "node-v12.5.0-linux-s390x", "4267d50dbbd3458aa179a64ab360eda03709c3de88c0b07d0cd148691a305ac7"), + "12.5.0-linux_amd64": ("node-v12.5.0-linux-x64.tar.xz", "node-v12.5.0-linux-x64", "37c0c539aae69370f3c014cc4947748ce45ac5fa560f9b085724f22029834b27"), + "12.5.0-windows_amd64": ("node-v12.5.0-win-x64.zip", "node-v12.5.0-win-x64", "f1b426fcd39ffdfec5d8ba60c6842cc11e9f49269cd49bc34c4fcee0517ddf66"), + # 12.6.0 + "12.6.0-darwin_amd64": ("node-v12.6.0-darwin-x64.tar.gz", "node-v12.6.0-darwin-x64", "004b7992a2621eb35a47c94d258510ca5744b5a8072364f235dc7e3d4bff7457"), + "12.6.0-linux_arm64": ("node-v12.6.0-linux-arm64.tar.xz", "node-v12.6.0-linux-arm64", "b7a6580f0c5406b990b3c9f0d91297b103e38e2752b8b745c4d15310a9dd79d1"), + "12.6.0-linux_s390x": ("node-v12.6.0-linux-s390x.tar.xz", "node-v12.6.0-linux-s390x", "e29af49118468aad053ee4872fad80e2631a7db331d5214d9f7baf4601194a6c"), + "12.6.0-linux_amd64": ("node-v12.6.0-linux-x64.tar.xz", "node-v12.6.0-linux-x64", "1ac14567e2be5562df209900e28430bd11575d985a85e8a6df2743428570de33"), + "12.6.0-windows_amd64": ("node-v12.6.0-win-x64.zip", "node-v12.6.0-win-x64", "0c5ac670c5bb0ea0d389bb7269cb84104702826f791a1d057eae02cdb9eed717"), + # 12.7.0 + "12.7.0-darwin_amd64": ("node-v12.7.0-darwin-x64.tar.gz", "node-v12.7.0-darwin-x64", "1a76bea7f7ed8c5c921852269ddd1300c9baba2f1e3f0377200a22c22cdea177"), + "12.7.0-linux_arm64": ("node-v12.7.0-linux-arm64.tar.xz", "node-v12.7.0-linux-arm64", "abc4500eff8437503d475726b8ac2ed3463d2982bd66925a782f91b7d96e31de"), + "12.7.0-linux_s390x": ("node-v12.7.0-linux-s390x.tar.xz", "node-v12.7.0-linux-s390x", "8fbcc85dc5823d1e8f65204a3c2ddebdbacb142daaf52f32f33140ca8a939067"), + "12.7.0-linux_amd64": ("node-v12.7.0-linux-x64.tar.xz", "node-v12.7.0-linux-x64", "95867fdcfd4f821d84b3dd9fab5803fb29e093e911f2ab3c7111bcaf8bd5b9da"), + "12.7.0-windows_amd64": ("node-v12.7.0-win-x64.zip", "node-v12.7.0-win-x64", "68802316ca4eb4d72ec5f9ff837752a6ec8cd73537ad7c346f30899ee523f4b7"), + # 12.8.0 + "12.8.0-darwin_amd64": ("node-v12.8.0-darwin-x64.tar.gz", "node-v12.8.0-darwin-x64", "5229571a1736befd6426dc0a6907be416e9f5c24695e3ef275ed2ba70f496499"), + "12.8.0-linux_arm64": ("node-v12.8.0-linux-arm64.tar.xz", "node-v12.8.0-linux-arm64", "9f22aff38a8622b05821129f69dbe90695e01166f55c8d2a39b6c6a5aef8c6a8"), + "12.8.0-linux_s390x": ("node-v12.8.0-linux-s390x.tar.xz", "node-v12.8.0-linux-s390x", "fda613f0521e24e8259af139558b006158aaef1bc2658d628228b1020f355008"), + "12.8.0-linux_amd64": ("node-v12.8.0-linux-x64.tar.xz", "node-v12.8.0-linux-x64", "b6a9ab2e6e872375e0e27eda0698820a64495b31b1beab36cc54f9876b3a2052"), + "12.8.0-windows_amd64": ("node-v12.8.0-win-x64.zip", "node-v12.8.0-win-x64", "b295aedebde069c4148534a9dfb2394ceba28cf367ddd8204a27d69c095a9e00"), + # 12.8.1 + "12.8.1-darwin_amd64": ("node-v12.8.1-darwin-x64.tar.gz", "node-v12.8.1-darwin-x64", "caccf8b409af342e35672cc766430587664f88d01dab622a5de44c8be1336e44"), + "12.8.1-linux_arm64": ("node-v12.8.1-linux-arm64.tar.xz", "node-v12.8.1-linux-arm64", "3707240c402aae0b5879ce1ba17b32ebd224d47f5147639c6881a1b71ce65383"), + "12.8.1-linux_s390x": ("node-v12.8.1-linux-s390x.tar.xz", "node-v12.8.1-linux-s390x", "f8712268de942b2c05a58eb7291b8ed7cdd9b6413f82bc1aa99e23fae42375f9"), + "12.8.1-linux_amd64": ("node-v12.8.1-linux-x64.tar.xz", "node-v12.8.1-linux-x64", "1c7cf61cb8fa98a76d92445823d6dd1649e985899e16900b39eacdd8cd4094f3"), + "12.8.1-windows_amd64": ("node-v12.8.1-win-x64.zip", "node-v12.8.1-win-x64", "c81ecaa03dc882dde36087c854e4831c13d3eb237f262f9ce74ccc6f156684da"), + # 12.9.0 + "12.9.0-darwin_amd64": ("node-v12.9.0-darwin-x64.tar.gz", "node-v12.9.0-darwin-x64", "24c1f0c93e485961446814662db942f1b309d843fb4ecbe50466d9857a51b343"), + "12.9.0-linux_arm64": ("node-v12.9.0-linux-arm64.tar.xz", "node-v12.9.0-linux-arm64", "f7f6f102d097d64eba26f84f2760597f9831886ef7d0db3cba88459847f2743d"), + "12.9.0-linux_s390x": ("node-v12.9.0-linux-s390x.tar.xz", "node-v12.9.0-linux-s390x", "0c4b933cbce5f7153effed002e7aa58abde650256aae05ae951b1e6cfde1c4e6"), + "12.9.0-linux_amd64": ("node-v12.9.0-linux-x64.tar.xz", "node-v12.9.0-linux-x64", "7110bdd16e397870142ff0e8d92d4a4502d43ec047d970c843a9a4e5f9e79283"), + "12.9.0-windows_amd64": ("node-v12.9.0-win-x64.zip", "node-v12.9.0-win-x64", "b5f05deb31ac04b9c3a487542daf151e01c05017403a56ba443da623f36b153b"), + # 12.9.1 + "12.9.1-darwin_amd64": ("node-v12.9.1-darwin-x64.tar.gz", "node-v12.9.1-darwin-x64", "9aaf29d30056e2233fd15dfac56eec12e8342d91bb6c13d54fb5e599383dddb9"), + "12.9.1-linux_arm64": ("node-v12.9.1-linux-arm64.tar.xz", "node-v12.9.1-linux-arm64", "b6d986faf3a77b6c353c344645c93f2a0e0436c43865e6c215a24301a076a11f"), + "12.9.1-linux_s390x": ("node-v12.9.1-linux-s390x.tar.xz", "node-v12.9.1-linux-s390x", "77bb8e58ed7d196f934159e952d1598984b900094f5948e0a5a4a67489a9e711"), + "12.9.1-linux_amd64": ("node-v12.9.1-linux-x64.tar.xz", "node-v12.9.1-linux-x64", "680a1263c9f5f91adadcada549f0a9c29f1b26d09658d2b501c334c3f63719e5"), + "12.9.1-windows_amd64": ("node-v12.9.1-win-x64.zip", "node-v12.9.1-win-x64", "6a4e54bda091bd02dbd8ff1b9f6671e036297da012a53891e3834d4bf4bed297"), + # 12.10.0 + "12.10.0-darwin_amd64": ("node-v12.10.0-darwin-x64.tar.gz", "node-v12.10.0-darwin-x64", "4c16d1f6454f5dc3977ad00cea123792b8d4e1d6d1bf42bbc82a4202039a5971"), + "12.10.0-linux_arm64": ("node-v12.10.0-linux-arm64.tar.xz", "node-v12.10.0-linux-arm64", "fa1afb9e8cfd964867351b6dac6cd918784ff309291612251c4745aeb0b10e02"), + "12.10.0-linux_s390x": ("node-v12.10.0-linux-s390x.tar.xz", "node-v12.10.0-linux-s390x", "ecfb6fdd6ea8de7381261a2769bcb9539fb69a799d0fddccc0a0793b63d557e4"), + "12.10.0-linux_amd64": ("node-v12.10.0-linux-x64.tar.xz", "node-v12.10.0-linux-x64", "e8d2e6b62dd8183dc59a139a9ca3edc7c419a0d3d92e90fea9cb0ad52489843a"), + "12.10.0-windows_amd64": ("node-v12.10.0-win-x64.zip", "node-v12.10.0-win-x64", "de341476711c71f82d06fabcc9874c1ff9e865fd7274334d64a67b1e31a53fd0"), + # 12.11.0 + "12.11.0-darwin_amd64": ("node-v12.11.0-darwin-x64.tar.gz", "node-v12.11.0-darwin-x64", "a0fd5c1c9e67099f52b73c732aa52a878c6ff67f50ff0e94c2c5628a87455130"), + "12.11.0-linux_arm64": ("node-v12.11.0-linux-arm64.tar.xz", "node-v12.11.0-linux-arm64", "d1126439ff6d079b682a7cd6308cb226afd247e5cb0f7cc60cfb0e609a096622"), + "12.11.0-linux_s390x": ("node-v12.11.0-linux-s390x.tar.xz", "node-v12.11.0-linux-s390x", "d995a611e644e98145814e0507f0cf4ff199ab0ae3726909ecaf7b177de4f424"), + "12.11.0-linux_amd64": ("node-v12.11.0-linux-x64.tar.xz", "node-v12.11.0-linux-x64", "c0dc88110ac3ee095e3d09077545435b72d4cd52e35c43cd3fa666cff7446d46"), + "12.11.0-windows_amd64": ("node-v12.11.0-win-x64.zip", "node-v12.11.0-win-x64", "457157358bd029196d47865dee66f8c263a3a4a5a8cdd1c0a8cf43ac45e9eda3"), + # 12.11.1 + "12.11.1-darwin_amd64": ("node-v12.11.1-darwin-x64.tar.gz", "node-v12.11.1-darwin-x64", "7dd24ee6d81668e65ce1b77b4bb4cdaf517d8f80bb19740d286606028506970b"), + "12.11.1-linux_arm64": ("node-v12.11.1-linux-arm64.tar.xz", "node-v12.11.1-linux-arm64", "12777294258da80410fd7d5cbed46ead5d3cabacf376ee10ddb9e1a335b114e7"), + "12.11.1-linux_s390x": ("node-v12.11.1-linux-s390x.tar.xz", "node-v12.11.1-linux-s390x", "1315f896d8095e4dbf2bc438974df7018428d52011abd20439c9264fccda13cf"), + "12.11.1-linux_amd64": ("node-v12.11.1-linux-x64.tar.xz", "node-v12.11.1-linux-x64", "00f7a0b59ff38c1c74d81732df925aa5ac5788b58412437327421f796878793d"), + "12.11.1-windows_amd64": ("node-v12.11.1-win-x64.zip", "node-v12.11.1-win-x64", "0bab4473cd2ba03511b8859ddf2202bb012d5c541f9d57b555a5bbbf101fcb35"), + # 12.12.0 + "12.12.0-darwin_amd64": ("node-v12.12.0-darwin-x64.tar.gz", "node-v12.12.0-darwin-x64", "14a98237e8859bc22695719dbc2e9db5529a33ada0c6c377df4dc27b5622ffbb"), + "12.12.0-linux_arm64": ("node-v12.12.0-linux-arm64.tar.xz", "node-v12.12.0-linux-arm64", "ad536aba218df64d8e901b28985f4c5f72f634bf903c449b0c84929f6940853c"), + "12.12.0-linux_s390x": ("node-v12.12.0-linux-s390x.tar.xz", "node-v12.12.0-linux-s390x", "2b8bf5fa4c481b5a4c390271b373aef7dd549ca88928bc665f1201c7df611470"), + "12.12.0-linux_amd64": ("node-v12.12.0-linux-x64.tar.xz", "node-v12.12.0-linux-x64", "e3a38dfaf1233a3c43c2528869af52e74575781984369a5b705c89d84dfa3ac2"), + "12.12.0-windows_amd64": ("node-v12.12.0-win-x64.zip", "node-v12.12.0-win-x64", "930e7bcd2ae5bcb1d4163c2adf09a392ed0e9a824b069d19daeb4f9f3430a195"), + # 12.13.0 + "12.13.0-darwin_amd64": ("node-v12.13.0-darwin-x64.tar.gz", "node-v12.13.0-darwin-x64", "49a7374670a111b033ce16611b20fd1aafd3296bbc662b184fe8fb26a29c22cc"), + "12.13.0-linux_arm64": ("node-v12.13.0-linux-arm64.tar.xz", "node-v12.13.0-linux-arm64", "d65b3ce27639f15ae22941e3ff98a1c900aa9049fcc15518038615b0676037d5"), + "12.13.0-linux_s390x": ("node-v12.13.0-linux-s390x.tar.xz", "node-v12.13.0-linux-s390x", "a4d6518bd90dd4380a4c7f2c6ff9b78bc57f53ec34fbf03dc15cb47738621f13"), + "12.13.0-linux_amd64": ("node-v12.13.0-linux-x64.tar.xz", "node-v12.13.0-linux-x64", "7a57ef2cb3036d7eacd50ae7ba07245a28336a93652641c065f747adb2a356d9"), + "12.13.0-windows_amd64": ("node-v12.13.0-win-x64.zip", "node-v12.13.0-win-x64", "6f920cebeecb4957b4ef0def6d9b04c49d4582864f8d1a207ce8d0665865781a"), + # 12.13.1 + "12.13.1-darwin_amd64": ("node-v12.13.1-darwin-x64.tar.gz", "node-v12.13.1-darwin-x64", "12d14c7fbd98876a163a2b7e0aeb13657dc3e967e993efaf2dcacbe475a285e8"), + "12.13.1-linux_arm64": ("node-v12.13.1-linux-arm64.tar.xz", "node-v12.13.1-linux-arm64", "3aef0178a8ab74c8e5c133e23d1896e53ed5c273415d165a0e72e005f5467cba"), + "12.13.1-linux_s390x": ("node-v12.13.1-linux-s390x.tar.xz", "node-v12.13.1-linux-s390x", "4568971972b5ccbdbb9b8c26ec590dce24185ac54c9c4954c88ecccf5b1cd266"), + "12.13.1-linux_amd64": ("node-v12.13.1-linux-x64.tar.xz", "node-v12.13.1-linux-x64", "aca06db37589966829b1ef0f163a5859b156a1d8e51b415bf47590f667c30a25"), + "12.13.1-windows_amd64": ("node-v12.13.1-win-x64.zip", "node-v12.13.1-win-x64", "db33fb758ba49b96d073311ef9e9134b51bf96246ffd938909b2e02c65a6e890"), + # 12.14.0 + "12.14.0-darwin_amd64": ("node-v12.14.0-darwin-x64.tar.gz", "node-v12.14.0-darwin-x64", "5f3170b346b29e6902c0ca7e0993e3d1b4b650615348aa866de17ad965377048"), + "12.14.0-linux_arm64": ("node-v12.14.0-linux-arm64.tar.xz", "node-v12.14.0-linux-arm64", "733b4f71ccdf114038bbe0f20574a1e8f4f60b53d39caf445f518745596eadda"), + "12.14.0-linux_s390x": ("node-v12.14.0-linux-s390x.tar.xz", "node-v12.14.0-linux-s390x", "e8694743785a3384850ba77d662a81380766485597666e59c200f14f7dce8b29"), + "12.14.0-linux_amd64": ("node-v12.14.0-linux-x64.tar.xz", "node-v12.14.0-linux-x64", "82ae74ee0a204de7ebf7767eaa8e382518d9b49668dcbb5bd7fd003154445d1f"), + "12.14.0-windows_amd64": ("node-v12.14.0-win-x64.zip", "node-v12.14.0-win-x64", "526f4b01ffb270bdd8213b58b38843fa3c88f03c89b1898c641bc0e32607913e"), + # 12.14.1 + "12.14.1-darwin_amd64": ("node-v12.14.1-darwin-x64.tar.gz", "node-v12.14.1-darwin-x64", "0be10a28737527a1e5e3784d3ad844d742fe8b0718acd701fd48f718fd3af78f"), + "12.14.1-linux_arm64": ("node-v12.14.1-linux-arm64.tar.xz", "node-v12.14.1-linux-arm64", "6cd28a5e6340f596aec8dbfd6720f444f011e6b9018622290a60dbd17f9baff6"), + "12.14.1-linux_s390x": ("node-v12.14.1-linux-s390x.tar.xz", "node-v12.14.1-linux-s390x", "d734271d8ce8c9c0b9887bf246843fbac71c37c42bd2ef28ea5e2bfef0cd0f8a"), + "12.14.1-linux_amd64": ("node-v12.14.1-linux-x64.tar.xz", "node-v12.14.1-linux-x64", "07cfcaa0aa9d0fcb6e99725408d9e0b07be03b844701588e3ab5dbc395b98e1b"), + "12.14.1-windows_amd64": ("node-v12.14.1-win-x64.zip", "node-v12.14.1-win-x64", "1f96ccce3ba045ecea3f458e189500adb90b8bc1a34de5d82fc10a5bf66ce7e3"), + # 12.15.0 + "12.15.0-darwin_amd64": ("node-v12.15.0-darwin-x64.tar.gz", "node-v12.15.0-darwin-x64", "b6449cec39ac15b37abe4e59ef0eae50dcdfbf060c5276a01cc590f2a3372b7d"), + "12.15.0-linux_arm64": ("node-v12.15.0-linux-arm64.tar.xz", "node-v12.15.0-linux-arm64", "c582cb65a0ec7f648618d3d33b4f87c374a3f930518b57eca1693828c965d6e5"), + "12.15.0-linux_s390x": ("node-v12.15.0-linux-s390x.tar.xz", "node-v12.15.0-linux-s390x", "30f150720cc1a9f53d4d9a881961431428603dfe151cd487cdaec555f29db0c7"), + "12.15.0-linux_amd64": ("node-v12.15.0-linux-x64.tar.xz", "node-v12.15.0-linux-x64", "63df953deb091c1500e1044bef01d1953117970e757e74e90d915e1a4a0d1c9c"), + "12.15.0-windows_amd64": ("node-v12.15.0-win-x64.zip", "node-v12.15.0-win-x64", "48b29cab597962f12b0aac081522e6192bc8642c582cd0fc1bf51557273888da"), + # 12.16.0 + "12.16.0-darwin_amd64": ("node-v12.16.0-darwin-x64.tar.gz", "node-v12.16.0-darwin-x64", "af3b9bbfdd9ae1b46390e7deeb77a2c1d8dbc6fb4171bbb0cfe8686fc1ecef1d"), + "12.16.0-linux_arm64": ("node-v12.16.0-linux-arm64.tar.xz", "node-v12.16.0-linux-arm64", "f2d97187bd8d3175bf6266193107a030bfb827003d57ba6dd21de16aa622548d"), + "12.16.0-linux_s390x": ("node-v12.16.0-linux-s390x.tar.xz", "node-v12.16.0-linux-s390x", "b12c3be91ff56f66dc494339880c954f5f7ceec52acdc130a0861ed3977b9c62"), + "12.16.0-linux_amd64": ("node-v12.16.0-linux-x64.tar.xz", "node-v12.16.0-linux-x64", "e8c38659540766db9d85bd7325ba8cce8ded56204f84507f73fdb41a26d9bd73"), + "12.16.0-windows_amd64": ("node-v12.16.0-win-x64.zip", "node-v12.16.0-win-x64", "9a590dd064b491fbd40b366ae4a119fe6cef516a25fb4d78d7c2a64b37574da8"), + # 12.16.1 + "12.16.1-darwin_amd64": ("node-v12.16.1-darwin-x64.tar.gz", "node-v12.16.1-darwin-x64", "34895bce210ca4b3cf19cd480e6563588880dd7f5d798f3782e3650580d35920"), + "12.16.1-linux_arm64": ("node-v12.16.1-linux-arm64.tar.xz", "node-v12.16.1-linux-arm64", "396c43ba507b8ec33c70cdc6f73b4a7c725bddb3f74a85a8b8ed77b436856fed"), + "12.16.1-linux_s390x": ("node-v12.16.1-linux-s390x.tar.xz", "node-v12.16.1-linux-s390x", "6a77be335dec9349a40216cea072f2ca6e53bf10a7276040bfbd33984cdc5b95"), + "12.16.1-linux_amd64": ("node-v12.16.1-linux-x64.tar.xz", "node-v12.16.1-linux-x64", "b826753f14df9771609ffb8e7d2cc4cb395247cb704cf0cea0f04132d9cf3505"), + "12.16.1-windows_amd64": ("node-v12.16.1-win-x64.zip", "node-v12.16.1-win-x64", "b93b73572c5e495154a9823d494de5729c77d1c83b041171154c4b5f3f76b590"), + # 12.16.2 + "12.16.2-darwin_amd64": ("node-v12.16.2-darwin-x64.tar.gz", "node-v12.16.2-darwin-x64", "483954e311a5ff649ddf32b473f635a58890790d284b5788bdd8d7ff850c6db2"), + "12.16.2-linux_arm64": ("node-v12.16.2-linux-arm64.tar.xz", "node-v12.16.2-linux-arm64", "c88005467f6dcdb621d454b35ec39bb42e165c6a2e1cee74cabcdc01af307e81"), + "12.16.2-linux_s390x": ("node-v12.16.2-linux-s390x.tar.xz", "node-v12.16.2-linux-s390x", "61a283a110f57c06a8b4446b271b0d0075466ced0a8752a3e5170cf9968b4efe"), + "12.16.2-linux_amd64": ("node-v12.16.2-linux-x64.tar.xz", "node-v12.16.2-linux-x64", "f94a6eb06e80ef2794ebf51a2baed0b89ed307d3196ab5579f16c0fa7cc62901"), + "12.16.2-windows_amd64": ("node-v12.16.2-win-x64.zip", "node-v12.16.2-win-x64", "f34303a49384aee2e5daab5f248c5a719e850a9ebb19e7098fe2bfffb26efe03"), + # 12.16.3 + "12.16.3-darwin_amd64": ("node-v12.16.3-darwin-x64.tar.gz", "node-v12.16.3-darwin-x64", "0718812b3ab8e77e8d1354f4d10428ae99d78f721bdcceee527c4b592ea7fed0"), + "12.16.3-linux_arm64": ("node-v12.16.3-linux-arm64.tar.xz", "node-v12.16.3-linux-arm64", "8311f513a7d1911200502dd3e00142cef56d600c851d5870f68d939802205b73"), + "12.16.3-linux_s390x": ("node-v12.16.3-linux-s390x.tar.xz", "node-v12.16.3-linux-s390x", "57bd769e8dbc07666597bf19f7146274e2cdbe737ac3b455de586d3ce3079e36"), + "12.16.3-linux_amd64": ("node-v12.16.3-linux-x64.tar.xz", "node-v12.16.3-linux-x64", "1956e196e3c3c8ef5f0c45db76d7c1245af4ccdda2b7ab30a57ce91d6e165caa"), + "12.16.3-windows_amd64": ("node-v12.16.3-win-x64.zip", "node-v12.16.3-win-x64", "d0bb0e0b1f1a948529ddd543e2cfe0bfe209eb843defc70217b3d2f84cbf3b78"), + # 12.17.0 + "12.17.0-darwin_amd64": ("node-v12.17.0-darwin-x64.tar.gz", "node-v12.17.0-darwin-x64", "8c3b9459462b8adaa10549f4da6a5ff5cdfaf7140a8a8020a87cc96d79022cc0"), + "12.17.0-linux_arm64": ("node-v12.17.0-linux-arm64.tar.xz", "node-v12.17.0-linux-arm64", "54a0dbb203ff1700341d258cefa304bd31044bf0226e9e59a0de1128418cb5aa"), + "12.17.0-linux_s390x": ("node-v12.17.0-linux-s390x.tar.xz", "node-v12.17.0-linux-s390x", "ad1351b6e1278218f107b56a4fbd28c745a70bb470ee1c681d08d05b750cda3e"), + "12.17.0-linux_amd64": ("node-v12.17.0-linux-x64.tar.xz", "node-v12.17.0-linux-x64", "988653492a4f422fb112421c5c9d1c140146b665b480c2b24c66fffdd0b88a88"), + "12.17.0-windows_amd64": ("node-v12.17.0-win-x64.zip", "node-v12.17.0-win-x64", "f3a64dc6ad48577f1f81521aa144c028beb7e353d0fcd05d7b420a72a84f50fc"), + # 12.18.0 + "12.18.0-darwin_amd64": ("node-v12.18.0-darwin-x64.tar.gz", "node-v12.18.0-darwin-x64", "11fe50e670315d2d3c46317d23f7a019f46a3d08b534fbadee9a1bc3d4f81852"), + "12.18.0-linux_arm64": ("node-v12.18.0-linux-arm64.tar.xz", "node-v12.18.0-linux-arm64", "51b301102984ff73a74894396b774d00259bb3bb8c1de7c82674713acec7a214"), + "12.18.0-linux_s390x": ("node-v12.18.0-linux-s390x.tar.xz", "node-v12.18.0-linux-s390x", "4b4beb7e9dd71e8dbef0fdab3db377c8ae5905c08885a5aea85302beb129cfc0"), + "12.18.0-linux_amd64": ("node-v12.18.0-linux-x64.tar.xz", "node-v12.18.0-linux-x64", "2febc2506c298048bfddf896056be6191c1f08716876d960a4990bd63a7fe05a"), + "12.18.0-windows_amd64": ("node-v12.18.0-win-x64.zip", "node-v12.18.0-win-x64", "ca73a989eba5e863971cb600e5520cb4c5edf9c600fe8f76d9e4771ad03b5d08"), + # 12.18.1 + "12.18.1-darwin_amd64": ("node-v12.18.1-darwin-x64.tar.gz", "node-v12.18.1-darwin-x64", "80e1d644fe78838da47cd16de234b612c20e06ffe14447125db9622e381ed1ba"), + "12.18.1-linux_arm64": ("node-v12.18.1-linux-arm64.tar.xz", "node-v12.18.1-linux-arm64", "b6683e6e887c6c44a3fe9ff419e80d36eaafed39eb2c2d1b04ee54b440a03217"), + "12.18.1-linux_s390x": ("node-v12.18.1-linux-s390x.tar.xz", "node-v12.18.1-linux-s390x", "0623ddfa7b8f76dc23eacc80961ebfd8a45eb29183c8af17b29ab41982d30d8e"), + "12.18.1-linux_amd64": ("node-v12.18.1-linux-x64.tar.xz", "node-v12.18.1-linux-x64", "863f816967e297c9eb221ad3cf32521f7ac46fffc66750e60f159ed63809affa"), + "12.18.1-windows_amd64": ("node-v12.18.1-win-x64.zip", "node-v12.18.1-win-x64", "93039ebfc7c5bfad168b015f77667757925070fff3ae84c3eb73348b3123a82a"), + # 12.18.2 + "12.18.2-darwin_amd64": ("node-v12.18.2-darwin-x64.tar.gz", "node-v12.18.2-darwin-x64", "6e6e7311943e4f3880db5038b8b8034a30469342fe436c8aaacf2997dfa305a6"), + "12.18.2-linux_arm64": ("node-v12.18.2-linux-arm64.tar.xz", "node-v12.18.2-linux-arm64", "d7d3a05f36de9eb079b7b25e0fc1aaa0c960afdf36fb24b498f7303365eb945c"), + "12.18.2-linux_s390x": ("node-v12.18.2-linux-s390x.tar.xz", "node-v12.18.2-linux-s390x", "4f2c6937837ec1ec8534cb7bb94a35066f47fe95154824318de4f9be9a817502"), + "12.18.2-linux_amd64": ("node-v12.18.2-linux-x64.tar.xz", "node-v12.18.2-linux-x64", "b8dc634798ee783482c2ae1755bd7dff09d83fa7bb037cdc370b601d0a5e5cbb"), + "12.18.2-windows_amd64": ("node-v12.18.2-win-x64.zip", "node-v12.18.2-win-x64", "91fdd5b5df16873c63541bc844c9eb66870d366b2076d114f9ab7528b5e2f9a3"), + # 12.18.3 + "12.18.3-darwin_amd64": ("node-v12.18.3-darwin-x64.tar.gz", "node-v12.18.3-darwin-x64", "af376caf114bdd5d7e566dbf7590e9077ffc01f9b2692eb2651f31d7219a30bb"), + "12.18.3-linux_arm64": ("node-v12.18.3-linux-arm64.tar.xz", "node-v12.18.3-linux-arm64", "d330aab40029afc34f8b5d1abc2e67be233df4b31331cf08d538be2a666737bb"), + "12.18.3-linux_s390x": ("node-v12.18.3-linux-s390x.tar.xz", "node-v12.18.3-linux-s390x", "0cdf850df27166e1a7849d684870e2fac740faeeac69777ff14e6f7d33c9a50f"), + "12.18.3-linux_amd64": ("node-v12.18.3-linux-x64.tar.xz", "node-v12.18.3-linux-x64", "b79e02e48d0a1ee4cd4ae138de97fda5413542f2a4f441a7d0e189697b8da563"), + "12.18.3-windows_amd64": ("node-v12.18.3-win-x64.zip", "node-v12.18.3-win-x64", "1fcd30c09f0ac9fbecf45161519eff2cf621c199eef4663b1db41b3f2fef4041"), + # 12.18.4 + "12.18.4-darwin_amd64": ("node-v12.18.4-darwin-x64.tar.gz", "node-v12.18.4-darwin-x64", "1bd2c367dc6b33f46c90c0a13fc83a890ced0a2e278f80c3e3b6aab8843189be"), + "12.18.4-linux_arm64": ("node-v12.18.4-linux-arm64.tar.xz", "node-v12.18.4-linux-arm64", "9503a4e69ed6a5346ede6fcc5abfd66fbc7bbfe0d20128afa3c964ae3e7acadd"), + "12.18.4-linux_s390x": ("node-v12.18.4-linux-s390x.tar.xz", "node-v12.18.4-linux-s390x", "6d05ea2466623f0fae7c4101b7831a7c04c0ba3f21df6de97962beb99e6ac8d8"), + "12.18.4-linux_amd64": ("node-v12.18.4-linux-x64.tar.xz", "node-v12.18.4-linux-x64", "b6434590cf7013c8592f895595d71a169f57e59bbb7db639c62779950e12e20c"), + "12.18.4-windows_amd64": ("node-v12.18.4-win-x64.zip", "node-v12.18.4-win-x64", "6d047ccfcc34df2c520dedc668afdd22bb9b0b6e1867b049267e2d45f78e7b17"), + # 12.19.0 + "12.19.0-darwin_amd64": ("node-v12.19.0-darwin-x64.tar.gz", "node-v12.19.0-darwin-x64", "751482c5060c2b705bd63739300a8d06bb33bcfacaf616eec78bbc20c55a627b"), + "12.19.0-linux_arm64": ("node-v12.19.0-linux-arm64.tar.xz", "node-v12.19.0-linux-arm64", "d14ac4e868dfa589fbd0cbf40d11f4a804ff61028e135be971a4a31519f9f341"), + "12.19.0-linux_s390x": ("node-v12.19.0-linux-s390x.tar.xz", "node-v12.19.0-linux-s390x", "af5bcde348bb2d00b87cb1e57de837a3e7e0c0ceded55e836a7ca58ab942be4f"), + "12.19.0-linux_amd64": ("node-v12.19.0-linux-x64.tar.xz", "node-v12.19.0-linux-x64", "6e878d5e7aedaffb16de27ed65ee8d8351282c146caf8aa3ef726fded26226c5"), + "12.19.0-windows_amd64": ("node-v12.19.0-win-x64.zip", "node-v12.19.0-win-x64", "8eead3c0d5a414c4985941ba78c581cb5c773b730957c128e5c764d10094cf68"), + # 13.0.0 + "13.0.0-darwin_amd64": ("node-v13.0.0-darwin-x64.tar.gz", "node-v13.0.0-darwin-x64", "612556a8c7e6b4cd08f6134b8afe5a05bf84c0121225fa9c542be1c98af04a35"), + "13.0.0-linux_arm64": ("node-v13.0.0-linux-arm64.tar.xz", "node-v13.0.0-linux-arm64", "6ed882e17123861b5b81683de2b2c86be02c5916ef0beda04fd176329888fd12"), + "13.0.0-linux_s390x": ("node-v13.0.0-linux-s390x.tar.xz", "node-v13.0.0-linux-s390x", "ab663af82f9734a438e4078a9fa935f1eee4716be692063d16aebcc69d0b7249"), + "13.0.0-linux_amd64": ("node-v13.0.0-linux-x64.tar.xz", "node-v13.0.0-linux-x64", "799d890f00a3a2a7415b813b286d32d38573df6525bc8ef80f40077cdd210d39"), + "13.0.0-windows_amd64": ("node-v13.0.0-win-x64.zip", "node-v13.0.0-win-x64", "8ffcefde5e080d70790a9a2e1aab0724cc88b5526d5128b53fc59bf94f6ad5de"), + # 13.0.1 + "13.0.1-darwin_amd64": ("node-v13.0.1-darwin-x64.tar.gz", "node-v13.0.1-darwin-x64", "25621359a51ff218ecf4bb2ffc657815154230a967224f22b722840a2b9ad061"), + "13.0.1-linux_arm64": ("node-v13.0.1-linux-arm64.tar.xz", "node-v13.0.1-linux-arm64", "ad6e051aede160d8be5cbab9c60a155b06a5696e8088d895e6eff3dd36f9a688"), + "13.0.1-linux_s390x": ("node-v13.0.1-linux-s390x.tar.xz", "node-v13.0.1-linux-s390x", "9b77dd44dd89adf05918b666e57b68e9ead5c5fb6c20381fb23282a8206f2751"), + "13.0.1-linux_amd64": ("node-v13.0.1-linux-x64.tar.xz", "node-v13.0.1-linux-x64", "d5657c19bb30b267bf2e0f2b61f6a96d8955aa30b69240f22d3fd2c65e123cf7"), + "13.0.1-windows_amd64": ("node-v13.0.1-win-x64.zip", "node-v13.0.1-win-x64", "1a2552b630651e08e9027339f71a65fbe3944540f0875563ea25639a091e1f33"), + # 13.1.0 + "13.1.0-darwin_amd64": ("node-v13.1.0-darwin-x64.tar.gz", "node-v13.1.0-darwin-x64", "6501c1bcf2babb5b9c81dcff8b52021f726da8f6ee28df1637acade1a16c7d39"), + "13.1.0-linux_arm64": ("node-v13.1.0-linux-arm64.tar.xz", "node-v13.1.0-linux-arm64", "646d597e6b0dc400429e46b703a5135c77bd71e653ea4c8254d0b60c17b6ec1d"), + "13.1.0-linux_s390x": ("node-v13.1.0-linux-s390x.tar.xz", "node-v13.1.0-linux-s390x", "a3229a795ee8bda15396701badd31d695d9a6f487a730c73022305c98522767a"), + "13.1.0-linux_amd64": ("node-v13.1.0-linux-x64.tar.xz", "node-v13.1.0-linux-x64", "2eecb5a4b7975c3b406bee36b12c9a29e8bedf9553c88cad310b8f076db00881"), + "13.1.0-windows_amd64": ("node-v13.1.0-win-x64.zip", "node-v13.1.0-win-x64", "d735e97bdeb7b74551b9d165c708a3fdea4dbb3801a65e70f6d6ae3539d48a03"), + # 13.2.0 + "13.2.0-darwin_amd64": ("node-v13.2.0-darwin-x64.tar.gz", "node-v13.2.0-darwin-x64", "2bcba358ef68ea21655728126c678063c60119e18e65d04f615d6b22dba8f7a5"), + "13.2.0-linux_arm64": ("node-v13.2.0-linux-arm64.tar.xz", "node-v13.2.0-linux-arm64", "e6c4a5fe57585f69a20bd028275db31f43de421308e31d117f319b577210e527"), + "13.2.0-linux_s390x": ("node-v13.2.0-linux-s390x.tar.xz", "node-v13.2.0-linux-s390x", "7b7209c0ca5a04e5259e8603eda90e923482b9018461525f62e519150cf7b96b"), + "13.2.0-linux_amd64": ("node-v13.2.0-linux-x64.tar.xz", "node-v13.2.0-linux-x64", "366df8a38b522a5899c3f48d8c9e359b3370495cf84867b2673dc10483adbdef"), + "13.2.0-windows_amd64": ("node-v13.2.0-win-x64.zip", "node-v13.2.0-win-x64", "e2866a8f53c45bb544d7b00aed1e5fddbbd7071bd331b02e66a6ce7c38c6918c"), + # 13.3.0 + "13.3.0-darwin_amd64": ("node-v13.3.0-darwin-x64.tar.gz", "node-v13.3.0-darwin-x64", "187ea9028daa6d9abad9c1cbb4e12ba51427c3748da29eae616fa352c0f4cd49"), + "13.3.0-linux_arm64": ("node-v13.3.0-linux-arm64.tar.xz", "node-v13.3.0-linux-arm64", "fb201a908bea36be828eee36a7cd898c67ad4ae6846982f393466e2b8b826c16"), + "13.3.0-linux_s390x": ("node-v13.3.0-linux-s390x.tar.xz", "node-v13.3.0-linux-s390x", "d60a64562e3ffaa03964e90e11dad6dba4f294add5b7a8c9e57a7ca3ae81d710"), + "13.3.0-linux_amd64": ("node-v13.3.0-linux-x64.tar.xz", "node-v13.3.0-linux-x64", "b208393ae411bd55188e903171901765aaa8381c08155e4a7b34174737a1bc65"), + "13.3.0-windows_amd64": ("node-v13.3.0-win-x64.zip", "node-v13.3.0-win-x64", "82e0f43aea81374a8028a7d3c9993245c4910ac95cd0f66ee5b29b940a6f3d93"), + # 13.4.0 + "13.4.0-darwin_amd64": ("node-v13.4.0-darwin-x64.tar.gz", "node-v13.4.0-darwin-x64", "4de08a89054416595228d6ff40fcf20c375d00556f2e95dfde8602cbb42c0b6e"), + "13.4.0-linux_arm64": ("node-v13.4.0-linux-arm64.tar.xz", "node-v13.4.0-linux-arm64", "382d5fb2983ab55d495e42145e812b3859d2a311e426307fd373f47825d55fe9"), + "13.4.0-linux_s390x": ("node-v13.4.0-linux-s390x.tar.xz", "node-v13.4.0-linux-s390x", "6696f9fa902a21a9193fa6216da811449c2aa76e5e125709bd1350fbd6ef4744"), + "13.4.0-linux_amd64": ("node-v13.4.0-linux-x64.tar.xz", "node-v13.4.0-linux-x64", "5cab49240c521efb80efd0a0bb3ba1071e5498c55ecbebd723d78648c91b1cc8"), + "13.4.0-windows_amd64": ("node-v13.4.0-win-x64.zip", "node-v13.4.0-win-x64", "56de9ed20332cdf22bb9b048c3fb3977662ef2de9d2e8ac2d2a27d28e9be276f"), + # 13.5.0 + "13.5.0-darwin_amd64": ("node-v13.5.0-darwin-x64.tar.gz", "node-v13.5.0-darwin-x64", "3322c601dc032677e5b5f87f393d4b1d70073bcab24fe74378eff8eb49364001"), + "13.5.0-linux_arm64": ("node-v13.5.0-linux-arm64.tar.xz", "node-v13.5.0-linux-arm64", "fe52f4e3a60a372138102da741e5b5d34310a74b3fc6f2000e4c254e3f0c4f51"), + "13.5.0-linux_s390x": ("node-v13.5.0-linux-s390x.tar.xz", "node-v13.5.0-linux-s390x", "c6011066e5cef0dd720e1a73c55280cbad11c777b992c02f0c9e647511e11b3a"), + "13.5.0-linux_amd64": ("node-v13.5.0-linux-x64.tar.xz", "node-v13.5.0-linux-x64", "4d2b2cea13388658e95d8b2dc7ff918718155473ef6ef38928d92eb8cbbe210a"), + "13.5.0-windows_amd64": ("node-v13.5.0-win-x64.zip", "node-v13.5.0-win-x64", "e286a84f2861b9f3c0290a9afbbecd09f303a39b2573af001ef8a4c1413eee7c"), + # 13.6.0 + "13.6.0-darwin_amd64": ("node-v13.6.0-darwin-x64.tar.gz", "node-v13.6.0-darwin-x64", "da13adb864777b322dda7af20410a9b0c63aa69de4b5574008d1e6910768bf69"), + "13.6.0-linux_arm64": ("node-v13.6.0-linux-arm64.tar.xz", "node-v13.6.0-linux-arm64", "1f34ed8668207e03cb832763319a82b4c753839a3655207adc5bbe52f65e154a"), + "13.6.0-linux_s390x": ("node-v13.6.0-linux-s390x.tar.xz", "node-v13.6.0-linux-s390x", "bcf62476267e9b8530187fdae8d249f38d2380352d6edd0109151cce0cf4c7c6"), + "13.6.0-linux_amd64": ("node-v13.6.0-linux-x64.tar.xz", "node-v13.6.0-linux-x64", "00f01315a867da16d1638f7a02966c608e344ac6c5b7d04d1fdae3138fa9d798"), + "13.6.0-windows_amd64": ("node-v13.6.0-win-x64.zip", "node-v13.6.0-win-x64", "7fe37b34a4673a071bea52fcaf913ec422cf6fd79fd025bfb22de42ccc77f386"), + # 13.7.0 + "13.7.0-darwin_amd64": ("node-v13.7.0-darwin-x64.tar.gz", "node-v13.7.0-darwin-x64", "866ea9bdbd7b734c593af96b946397d9c7cb9c291aa8ea52a6a2af271b972169"), + "13.7.0-linux_arm64": ("node-v13.7.0-linux-arm64.tar.xz", "node-v13.7.0-linux-arm64", "2823b199c7c4e6c547caf95139e28341444a5ffc52481a5ba704067291771579"), + "13.7.0-linux_s390x": ("node-v13.7.0-linux-s390x.tar.xz", "node-v13.7.0-linux-s390x", "4630a8c87861c1b4fbb95322fb7038a199f2d3f8253836e713b52d68d2d8a9f6"), + "13.7.0-linux_amd64": ("node-v13.7.0-linux-x64.tar.xz", "node-v13.7.0-linux-x64", "02578025b82de24f4cfb3ffeb3824990431d739d09220f2db9ef9f454f475470"), + "13.7.0-windows_amd64": ("node-v13.7.0-win-x64.zip", "node-v13.7.0-win-x64", "26b41de81ead8f51de2964d7c7526533f46387ff436b61596e09d678bcd7503f"), + # 13.8.0 + "13.8.0-darwin_amd64": ("node-v13.8.0-darwin-x64.tar.gz", "node-v13.8.0-darwin-x64", "ae480e2b124cb55667763848b8ec0fde1bc35d5e0b76debe881034689a68eaea"), + "13.8.0-linux_arm64": ("node-v13.8.0-linux-arm64.tar.xz", "node-v13.8.0-linux-arm64", "f1d4167a6911e42d836a5459c992cdaf35a03ab0700ea80831d7df5d706d1baf"), + "13.8.0-linux_s390x": ("node-v13.8.0-linux-s390x.tar.xz", "node-v13.8.0-linux-s390x", "b466a5d4ab128a94cf0559d201a60e7ad867170cd2ae64dda2ee893c93cef059"), + "13.8.0-linux_amd64": ("node-v13.8.0-linux-x64.tar.xz", "node-v13.8.0-linux-x64", "47a8cb675358f2ff534ad3d6709f14de0433f76d3af92cf389b8dcc78a1236ad"), + "13.8.0-windows_amd64": ("node-v13.8.0-win-x64.zip", "node-v13.8.0-win-x64", "f198f3e4b120fc84b61d12e7222530c5bb9c6f864735bb41a8db1cf1b94a64c3"), + # 13.9.0 + "13.9.0-darwin_amd64": ("node-v13.9.0-darwin-x64.tar.gz", "node-v13.9.0-darwin-x64", "b2a5a539b9b2d1733bda301913c99d220968de801bf313b762fa932820ea797b"), + "13.9.0-linux_arm64": ("node-v13.9.0-linux-arm64.tar.xz", "node-v13.9.0-linux-arm64", "c668afc06e4094b68ae758b823fc3244b34f0468fc0c2feee45278788989b8a1"), + "13.9.0-linux_s390x": ("node-v13.9.0-linux-s390x.tar.xz", "node-v13.9.0-linux-s390x", "d88879137e076604feebd30ed3cef216906ea6bc2d3b38deb750793830629185"), + "13.9.0-linux_amd64": ("node-v13.9.0-linux-x64.tar.xz", "node-v13.9.0-linux-x64", "f1e093303468032a1ecb0e290e19b43bf7771d4efbf589560df0060149614272"), + "13.9.0-windows_amd64": ("node-v13.9.0-win-x64.zip", "node-v13.9.0-win-x64", "ec0a55bb703906494e738cd3d09e3274b34f0a3fbe207b9e67502092ed017500"), + # 13.10.0 + "13.10.0-darwin_amd64": ("node-v13.10.0-darwin-x64.tar.gz", "node-v13.10.0-darwin-x64", "67269fb9061402e446bb61776be2e5d0ec330b5274326df77979698d05f503da"), + "13.10.0-linux_arm64": ("node-v13.10.0-linux-arm64.tar.xz", "node-v13.10.0-linux-arm64", "adb145535d2e03fe508fa7a34897a130ba903d6f718a21cd29d1760e298f715b"), + "13.10.0-linux_s390x": ("node-v13.10.0-linux-s390x.tar.xz", "node-v13.10.0-linux-s390x", "f79c9d191126f6ffb314477a62c57b1929b1fdff65757841b4b718afa2154421"), + "13.10.0-linux_amd64": ("node-v13.10.0-linux-x64.tar.xz", "node-v13.10.0-linux-x64", "62081af005257d3db7ebd5a64b43f1a8e4a57bafd229be3acd7ce2704607eaac"), + "13.10.0-windows_amd64": ("node-v13.10.0-win-x64.zip", "node-v13.10.0-win-x64", "d428b6d3e127716191fa6df630d03a25d3186fda1ede04a9a8d5c07e526dbb9e"), + # 13.10.1 + "13.10.1-darwin_amd64": ("node-v13.10.1-darwin-x64.tar.gz", "node-v13.10.1-darwin-x64", "a6a66fdc79e70267fc191f10ee045793240974e1268fdea6c2d28afbc1d635e8"), + "13.10.1-linux_arm64": ("node-v13.10.1-linux-arm64.tar.xz", "node-v13.10.1-linux-arm64", "f73effcef784251e53b5e3938b8316c36bd49628c3588de7976e8569e560c12c"), + "13.10.1-linux_s390x": ("node-v13.10.1-linux-s390x.tar.xz", "node-v13.10.1-linux-s390x", "eb5c2816ec287b7809ba77c372784426f84e30bdd077833bd1dc97a2ae08b424"), + "13.10.1-linux_amd64": ("node-v13.10.1-linux-x64.tar.xz", "node-v13.10.1-linux-x64", "69d69165282d88f321e751f03ee5d3370db65e5ca4c587af24994b12f31d4827"), + "13.10.1-windows_amd64": ("node-v13.10.1-win-x64.zip", "node-v13.10.1-win-x64", "f9d0aac273a44dbd52dd8cdb3d6c684b68b860d128af58d77a0c08f39f51f229"), + # 13.11.0 + "13.11.0-darwin_amd64": ("node-v13.11.0-darwin-x64.tar.gz", "node-v13.11.0-darwin-x64", "2d87989fb1e0d425667c5ca9893cb3ecfb30cd3344d543870246d65f8d9b892f"), + "13.11.0-linux_arm64": ("node-v13.11.0-linux-arm64.tar.xz", "node-v13.11.0-linux-arm64", "63ce9871b9802a1f021c84f282c63e1890524a32dc97d3e7a7ab8d52b4bde19e"), + "13.11.0-linux_s390x": ("node-v13.11.0-linux-s390x.tar.xz", "node-v13.11.0-linux-s390x", "954c41fbc569ae8dcd7308861d4dcb497a605d15770f189ac4633e346cacf88b"), + "13.11.0-linux_amd64": ("node-v13.11.0-linux-x64.tar.xz", "node-v13.11.0-linux-x64", "c127cf38f9a56d97646eb1fedb93712f304950c7143705de7180a701becc0fbb"), + "13.11.0-windows_amd64": ("node-v13.11.0-win-x64.zip", "node-v13.11.0-win-x64", "dc93aa5a82988f741dca6f1869c7b1aeda6f339293d13a968279a6dc9fcc8dd0"), + # 13.12.0 + "13.12.0-darwin_amd64": ("node-v13.12.0-darwin-x64.tar.gz", "node-v13.12.0-darwin-x64", "1fe3103610e8eb66ae71872ea1b4e868a638292a4e7ad0e41976a9fe417a09c7"), + "13.12.0-linux_arm64": ("node-v13.12.0-linux-arm64.tar.xz", "node-v13.12.0-linux-arm64", "2e8c12e575fcceb2d6f46eb3c50c6bfa98e91540bddaf91ca1c0fe739619ca0b"), + "13.12.0-linux_s390x": ("node-v13.12.0-linux-s390x.tar.xz", "node-v13.12.0-linux-s390x", "43d284c98b6f1de2a06708342401406fb11d8cc01e4939596742f3954c95a9ce"), + "13.12.0-linux_amd64": ("node-v13.12.0-linux-x64.tar.xz", "node-v13.12.0-linux-x64", "95eb1188872e243323cbc31fc80048be3fdfdda91505c62c80c599281de357ed"), + "13.12.0-windows_amd64": ("node-v13.12.0-win-x64.zip", "node-v13.12.0-win-x64", "de8445794ecbcfe895f4775417d1e2cc023e2212b1f5d4ff5cc0ed6875f7c911"), + # 13.13.0 + "13.13.0-darwin_amd64": ("node-v13.13.0-darwin-x64.tar.gz", "node-v13.13.0-darwin-x64", "28ae2abedafb250a9bbe706650fd79d2b25273f6445adcc1d85c777359dc5390"), + "13.13.0-linux_arm64": ("node-v13.13.0-linux-arm64.tar.xz", "node-v13.13.0-linux-arm64", "eded8da4633134cae0766a2f6f3c2237f8e728df77895c85607acaca13216226"), + "13.13.0-linux_s390x": ("node-v13.13.0-linux-s390x.tar.xz", "node-v13.13.0-linux-s390x", "827b81fcba5582afff1e2202eb8f61925436100a3948d5a46513b5b0d7d664ce"), + "13.13.0-linux_amd64": ("node-v13.13.0-linux-x64.tar.xz", "node-v13.13.0-linux-x64", "41d60cda7422f53156711626d670f9b5079075b1ecc6736aea99319fe36c20a6"), + "13.13.0-windows_amd64": ("node-v13.13.0-win-x64.zip", "node-v13.13.0-win-x64", "79f2a39c1047666f2bbf2efe53c069a38b8f6ef18d569bf338463aea1914b89d"), + # 13.14.0 + "13.14.0-darwin_amd64": ("node-v13.14.0-darwin-x64.tar.gz", "node-v13.14.0-darwin-x64", "a56eb353fecd45f731d74fc77c58dde052320c1bc272de9b03151fbaf962feaf"), + "13.14.0-linux_arm64": ("node-v13.14.0-linux-arm64.tar.xz", "node-v13.14.0-linux-arm64", "e4736df097846bbe8195a185cc67ada3410a1f8993949e516bbf62b62198d2a7"), + "13.14.0-linux_s390x": ("node-v13.14.0-linux-s390x.tar.xz", "node-v13.14.0-linux-s390x", "5db0d9d758bd3c5e6aaf4fe900da06593c272975fc0666bfee525eedd7d4e0c8"), + "13.14.0-linux_amd64": ("node-v13.14.0-linux-x64.tar.xz", "node-v13.14.0-linux-x64", "9ab808ba3872d58e827ea60a6e43a352f59361bc8eb36fe0327a587086b466f9"), + "13.14.0-windows_amd64": ("node-v13.14.0-win-x64.zip", "node-v13.14.0-win-x64", "8c6e77fac5e911a2e70b6ca34804b3b59b6a3c685ab4e3b17756397df86063fa"), + # 14.0.0 + "14.0.0-darwin_amd64": ("node-v14.0.0-darwin-x64.tar.gz", "node-v14.0.0-darwin-x64", "4e50cec7aeef91c6d00d08a3bab938358da182984aa549c2aeab9868e3342f55"), + "14.0.0-linux_arm64": ("node-v14.0.0-linux-arm64.tar.xz", "node-v14.0.0-linux-arm64", "29c612fcdb40133171959b269878138bbfe7723d46681f70e2017ee30134e7ad"), + "14.0.0-linux_s390x": ("node-v14.0.0-linux-s390x.tar.xz", "node-v14.0.0-linux-s390x", "e9a33652234ee657264de265ce90b71087ba80dd46e33e8bef632fcc29718810"), + "14.0.0-linux_amd64": ("node-v14.0.0-linux-x64.tar.xz", "node-v14.0.0-linux-x64", "a2aaaa621074e1b56bb751bda53ce726319fac617587443371c0a7742481e5b6"), + "14.0.0-windows_amd64": ("node-v14.0.0-win-x64.zip", "node-v14.0.0-win-x64", "e8f73d4f2e9935df929360c09ae932ceb316784a7450b256024af5d01fe29b75"), + # 14.1.0 + "14.1.0-darwin_amd64": ("node-v14.1.0-darwin-x64.tar.gz", "node-v14.1.0-darwin-x64", "7f08bd365df4e7a5625ad393257f48e8cd79f77391ab87a64426b0c6448dd226"), + "14.1.0-linux_arm64": ("node-v14.1.0-linux-arm64.tar.xz", "node-v14.1.0-linux-arm64", "9dd3a4867f679f40075e2a364d3b3566702139274da9fcd59a182198ff7c7b52"), + "14.1.0-linux_s390x": ("node-v14.1.0-linux-s390x.tar.xz", "node-v14.1.0-linux-s390x", "b323aafa612c00a0b018fb1b83e6757b546c218d920595340a240b8fc72f8ae8"), + "14.1.0-linux_amd64": ("node-v14.1.0-linux-x64.tar.xz", "node-v14.1.0-linux-x64", "959fab0c8ae0830f1ab987699cd2941cab97169991630a2e0c99db7c144f9e42"), + "14.1.0-windows_amd64": ("node-v14.1.0-win-x64.zip", "node-v14.1.0-win-x64", "1d3890d0d2f996cce57bcb0206e49b67233623e3cdb50eee77b8acc8f006b955"), + # 14.2.0 + "14.2.0-darwin_amd64": ("node-v14.2.0-darwin-x64.tar.gz", "node-v14.2.0-darwin-x64", "2447241aefe71dea8ba1552549e4df2e894d1ac12203630db3af63d4ae35c016"), + "14.2.0-linux_arm64": ("node-v14.2.0-linux-arm64.tar.xz", "node-v14.2.0-linux-arm64", "4587d2c52cd348094bd46ee4ee8cdfeb549462ead9b4aadc9cfc3c5fc3ba7215"), + "14.2.0-linux_s390x": ("node-v14.2.0-linux-s390x.tar.xz", "node-v14.2.0-linux-s390x", "936acec34a3225c27cea055cd55d775f9b0bfa4c87f8f184c93932058908094d"), + "14.2.0-linux_amd64": ("node-v14.2.0-linux-x64.tar.xz", "node-v14.2.0-linux-x64", "468cbd92271da8c0cacaa3fa432a73a332e398bade8ad7359a94aa8ab3cc3cca"), + "14.2.0-windows_amd64": ("node-v14.2.0-win-x64.zip", "node-v14.2.0-win-x64", "99085f45a894e257123d7c729113cc00ed1413df432dbdce5fe53867e7c53b11"), + # 14.3.0 + "14.3.0-darwin_amd64": ("node-v14.3.0-darwin-x64.tar.gz", "node-v14.3.0-darwin-x64", "fd6a44303646f28b7e7577de687c2681cb565bef534e84deef44202e7919d7f3"), + "14.3.0-linux_arm64": ("node-v14.3.0-linux-arm64.tar.xz", "node-v14.3.0-linux-arm64", "53bb110ea135ae3c819f535373ce1b779e86c7aa49a9b93fc5f26969a72365d2"), + "14.3.0-linux_s390x": ("node-v14.3.0-linux-s390x.tar.xz", "node-v14.3.0-linux-s390x", "01ad8fc06ce8266a847c2a4fb5ccfc43dcd2a6fe68b8d494e2409182bf063dd7"), + "14.3.0-linux_amd64": ("node-v14.3.0-linux-x64.tar.xz", "node-v14.3.0-linux-x64", "17236db7b9447080b58c2e50937982c386fe8a60e644b8d7f23e546068a8acba"), + "14.3.0-windows_amd64": ("node-v14.3.0-win-x64.zip", "node-v14.3.0-win-x64", "07bebc231dd8d773ab41cdcfbcb8b48e2336fbee20deb961b4300b9ba86afa04"), + # 14.4.0 + "14.4.0-darwin_amd64": ("node-v14.4.0-darwin-x64.tar.gz", "node-v14.4.0-darwin-x64", "d95eaa6950d67895b5cdd0e2f913d2c44034178234f0cb7436c3397b54f64023"), + "14.4.0-linux_arm64": ("node-v14.4.0-linux-arm64.tar.xz", "node-v14.4.0-linux-arm64", "9c9f84589b7bc6a05ac12a137e5097a5adb20b5c63ae9e4e912942da2c06d99d"), + "14.4.0-linux_s390x": ("node-v14.4.0-linux-s390x.tar.xz", "node-v14.4.0-linux-s390x", "69ab7436e6bb3904015533862d5c1950abb0930d4ee20547322a4b5cf7cacc88"), + "14.4.0-linux_amd64": ("node-v14.4.0-linux-x64.tar.xz", "node-v14.4.0-linux-x64", "d65a9a8a547bfe67c6c08dae733a3e5a846700d5377c5f150164cc6bb5f6a039"), + "14.4.0-windows_amd64": ("node-v14.4.0-win-x64.zip", "node-v14.4.0-win-x64", "a4bac45af8252f6b677a79ed19be4913f4939c4509fb08b6f14f972597550bbe"), + # 14.5.0 + "14.5.0-darwin_amd64": ("node-v14.5.0-darwin-x64.tar.gz", "node-v14.5.0-darwin-x64", "47dfd88abcd4d6d6f7b7516c95645f9760ba9c93d04b51a92895584c945b2953"), + "14.5.0-linux_arm64": ("node-v14.5.0-linux-arm64.tar.xz", "node-v14.5.0-linux-arm64", "c5ab67fbc73ea8858b4a989b6e92d6630decfc47c4703be7bcda3c6e39adff0b"), + "14.5.0-linux_s390x": ("node-v14.5.0-linux-s390x.tar.xz", "node-v14.5.0-linux-s390x", "1ac87b9534a265c87e48eb6313e79d614327fc3f1abad6e1c5b5f99bbe6ee9ac"), + "14.5.0-linux_amd64": ("node-v14.5.0-linux-x64.tar.xz", "node-v14.5.0-linux-x64", "8b0235c318de87ecf8eec9a39e5c5df80757dbec571addda7123276dfcb34d5b"), + "14.5.0-windows_amd64": ("node-v14.5.0-win-x64.zip", "node-v14.5.0-win-x64", "ab5728c85ece98210036fc9c38984fa2410a882dd99075b3d5bece58e4cc6ea2"), + # 14.6.0 + "14.6.0-darwin_amd64": ("node-v14.6.0-darwin-x64.tar.gz", "node-v14.6.0-darwin-x64", "7907a18605b900ce977ff4c7e67f7507f937f85738659865d31779c3b2990756"), + "14.6.0-linux_arm64": ("node-v14.6.0-linux-arm64.tar.xz", "node-v14.6.0-linux-arm64", "853f2c99f0e5fa65e6f222821e29c9d1a49f2d358a97c1de080ddf5c74e4ec70"), + "14.6.0-linux_s390x": ("node-v14.6.0-linux-s390x.tar.xz", "node-v14.6.0-linux-s390x", "0ff3193e5bd1e4101f64507a743faed7630140e2118fb986a89c50ed37777c34"), + "14.6.0-linux_amd64": ("node-v14.6.0-linux-x64.tar.xz", "node-v14.6.0-linux-x64", "b8a39b2dac8e200e96586356c5525d20b0b43dba8bf9f7eb4e8c2d5366be2bb2"), + "14.6.0-windows_amd64": ("node-v14.6.0-win-x64.zip", "node-v14.6.0-win-x64", "57ea75a7ec70cc8158e6f9774f9728fb9e3d08212b1af3e206db2de46ca304ca"), + # 14.7.0 + "14.7.0-darwin_amd64": ("node-v14.7.0-darwin-x64.tar.gz", "node-v14.7.0-darwin-x64", "47c94ec84706fd6851db27af54abdab569941fcbfcdc28e386d8fa7d49c6a619"), + "14.7.0-linux_arm64": ("node-v14.7.0-linux-arm64.tar.xz", "node-v14.7.0-linux-arm64", "12540328aeb5baa524a4e9c3b493b5eceb54cfa630f8bce64c19e674871e2f4b"), + "14.7.0-linux_s390x": ("node-v14.7.0-linux-s390x.tar.xz", "node-v14.7.0-linux-s390x", "20bce6123739afa10472de10b2cca310ddf66d7024180d8c9af58036dbdd6d49"), + "14.7.0-linux_amd64": ("node-v14.7.0-linux-x64.tar.xz", "node-v14.7.0-linux-x64", "48929b03deb2915b64ba67355d2deffeed3c8df798b0c5f2b821ffc7a8116a23"), + "14.7.0-windows_amd64": ("node-v14.7.0-win-x64.zip", "node-v14.7.0-win-x64", "a899693c9a31089a1eda14b1e613cf8cd60361e6e574b351551d832cf864c8f8"), + # 14.8.0 + "14.8.0-darwin_amd64": ("node-v14.8.0-darwin-x64.tar.gz", "node-v14.8.0-darwin-x64", "b6db32f2ff37475ae68502c76fc777a604cbc589bf57158fb4eed4db9ac5f62d"), + "14.8.0-linux_arm64": ("node-v14.8.0-linux-arm64.tar.xz", "node-v14.8.0-linux-arm64", "0c66a6468c36552c00d45cff0eaa924240f3d2e625be0306f33f8b0d81af4224"), + "14.8.0-linux_s390x": ("node-v14.8.0-linux-s390x.tar.xz", "node-v14.8.0-linux-s390x", "cab9fa8eb01d40e8078459f6463ed1f655cbab6a1f346273c6ab4cabf9d85245"), + "14.8.0-linux_amd64": ("node-v14.8.0-linux-x64.tar.xz", "node-v14.8.0-linux-x64", "c7761fe5d56d045d1540b1f0bc8a20d7edf03e6fd695ee5fbffc1dd9416ccc75"), + "14.8.0-windows_amd64": ("node-v14.8.0-win-x64.zip", "node-v14.8.0-win-x64", "848ca582bdf8b7fdc21a38d9f3887a45bdf6381b04549fc0f918852889157c9a"), + # 14.9.0 + "14.9.0-darwin_amd64": ("node-v14.9.0-darwin-x64.tar.gz", "node-v14.9.0-darwin-x64", "8427e07e3ca70d6ccf5274dde535c9a42b7f873f5a086323eaf2406cdb324daf"), + "14.9.0-linux_arm64": ("node-v14.9.0-linux-arm64.tar.xz", "node-v14.9.0-linux-arm64", "f87573c3c44415b8c8333d37d59adebe762608abc81c2fc42a44fe5fdca16abd"), + "14.9.0-linux_s390x": ("node-v14.9.0-linux-s390x.tar.xz", "node-v14.9.0-linux-s390x", "5444e2457dfe797968db1db05fc59d43b1b0f0a35ceb48d9f7c955136f113c1c"), + "14.9.0-linux_amd64": ("node-v14.9.0-linux-x64.tar.xz", "node-v14.9.0-linux-x64", "ded70899f43cf8138f88b838aecff5045e763bcab91c4b7f57fe5b69c6722df4"), + "14.9.0-windows_amd64": ("node-v14.9.0-win-x64.zip", "node-v14.9.0-win-x64", "bcd3fc61739e7ac9a4b6103da3fe5f8c9e310b7b0f1b1f0200d5a4b5dd65d723"), + # 14.10.0 + "14.10.0-darwin_amd64": ("node-v14.10.0-darwin-x64.tar.gz", "node-v14.10.0-darwin-x64", "8cf72422fb268ecf3bb72c66a61ccf2afb7b8ff358d09b3568d762ea281c86ed"), + "14.10.0-linux_arm64": ("node-v14.10.0-linux-arm64.tar.xz", "node-v14.10.0-linux-arm64", "3fc62b875246f9b88b0c4f1cf066a737bb1ae9fd48728d1c038c52d9ff8a84bd"), + "14.10.0-linux_s390x": ("node-v14.10.0-linux-s390x.tar.xz", "node-v14.10.0-linux-s390x", "18fe5b64c88324fd1a291ee9bfcf88859ff051fcb9eaf65c7ca0034d95b4169f"), + "14.10.0-linux_amd64": ("node-v14.10.0-linux-x64.tar.xz", "node-v14.10.0-linux-x64", "5cadd646f6cfa153b6091454047779314c1ef6c2a0e46bbb705cd78a16589482"), + "14.10.0-windows_amd64": ("node-v14.10.0-win-x64.zip", "node-v14.10.0-win-x64", "302a8f3336d16ef365a203f476f6e4c80f39e47988c4b80b1d76291d16bcb7b5"), + # 14.10.1 + "14.10.1-darwin_amd64": ("node-v14.10.1-darwin-x64.tar.gz", "node-v14.10.1-darwin-x64", "b21ef53d4dc10d7722eca53b4a4b344edbee1917ac21853a7a72345ab36975d0"), + "14.10.1-linux_arm64": ("node-v14.10.1-linux-arm64.tar.xz", "node-v14.10.1-linux-arm64", "85b33a782d1fc6b1248593491bce9225cc314f1331a60ca923a81602b82fcf53"), + "14.10.1-linux_s390x": ("node-v14.10.1-linux-s390x.tar.xz", "node-v14.10.1-linux-s390x", "4931ecd3f406388c8ca9dec2c8abe6bff7d4d618df72489b8847fe241807c6c0"), + "14.10.1-linux_amd64": ("node-v14.10.1-linux-x64.tar.xz", "node-v14.10.1-linux-x64", "aef704b65a23cdec17207803c58f38afb80a04adbfea85fcedec93e60d952534"), + "14.10.1-windows_amd64": ("node-v14.10.1-win-x64.zip", "node-v14.10.1-win-x64", "660ec8e3d1143b1701240ae0f35c2d20b9946b16bd7901baeb8e7ca7df0ff05e"), + # 14.11.0 + "14.11.0-darwin_amd64": ("node-v14.11.0-darwin-x64.tar.gz", "node-v14.11.0-darwin-x64", "4fcc716046ced78ba786d03f30976182a86bf3927610f0c87c1827d93e7f427c"), + "14.11.0-linux_arm64": ("node-v14.11.0-linux-arm64.tar.xz", "node-v14.11.0-linux-arm64", "ce8c5ceb9c49e753957fa2916f785fb7c09650753c45f658f2f2f52bb45d54c6"), + "14.11.0-linux_s390x": ("node-v14.11.0-linux-s390x.tar.xz", "node-v14.11.0-linux-s390x", "01ccf32877011b47551afb4d40ad42a16f06d8480baa9d4fb5c3eb220c7d9108"), + "14.11.0-linux_amd64": ("node-v14.11.0-linux-x64.tar.xz", "node-v14.11.0-linux-x64", "c0dfb8e45aefefc65410dbe3e9a05e346b952b2a19a965f5bea3e77b74fc73d8"), + "14.11.0-windows_amd64": ("node-v14.11.0-win-x64.zip", "node-v14.11.0-win-x64", "3745890c7e20a6feccaf2d841dccc21ae507a5bb4ee34875473e994104d7481c"), + # 14.12.0 + "14.12.0-darwin_amd64": ("node-v14.12.0-darwin-x64.tar.gz", "node-v14.12.0-darwin-x64", "c91a4ea40289886799115a8a309b844975d59d457cbad2060779286f0a8ad01b"), + "14.12.0-linux_arm64": ("node-v14.12.0-linux-arm64.tar.xz", "node-v14.12.0-linux-arm64", "c19c48f3b6806b02918d5ffa260e1f972f140e8583959295c8426f6684c6d534"), + "14.12.0-linux_s390x": ("node-v14.12.0-linux-s390x.tar.xz", "node-v14.12.0-linux-s390x", "3f654af760359d3dbfe5901092cb66c77140965ba80aadc1d0f3228636022041"), + "14.12.0-linux_amd64": ("node-v14.12.0-linux-x64.tar.xz", "node-v14.12.0-linux-x64", "3c7363b56239b8f357eed6e82e91f99624dd8faf49f49916bd1b54ea1fbd46b7"), + "14.12.0-windows_amd64": ("node-v14.12.0-win-x64.zip", "node-v14.12.0-win-x64", "47adf6187f1dbfd5c8731583ef621342155e172df9577e862cca0f62b0edf544"), + # 14.13.0 + "14.13.0-darwin_amd64": ("node-v14.13.0-darwin-x64.tar.gz", "node-v14.13.0-darwin-x64", "e9fd3fcc5adf3266881a36f72238e65041e2d318509edcbd7e6b2f902b7a7514"), + "14.13.0-linux_arm64": ("node-v14.13.0-linux-arm64.tar.xz", "node-v14.13.0-linux-arm64", "38b4ed6f5afdb3fd963b67f3f2bf6e43a3a6dfc4358e195c20981f184fa6494b"), + "14.13.0-linux_s390x": ("node-v14.13.0-linux-s390x.tar.xz", "node-v14.13.0-linux-s390x", "4e785fb51659ad93443646242f2e4e892b30430b3a5e1f5b28a664d547264359"), + "14.13.0-linux_amd64": ("node-v14.13.0-linux-x64.tar.xz", "node-v14.13.0-linux-x64", "8dbf2869033b315de8369405bc3cd5a19fb11afc824fe616640e2743a9a84cc4"), + "14.13.0-windows_amd64": ("node-v14.13.0-win-x64.zip", "node-v14.13.0-win-x64", "9652ca2c47c08eec440035b3594d7927e567246ea1217ccd73dcb5a41cf89c3d"), + # 14.13.1 + "14.13.1-darwin_amd64": ("node-v14.13.1-darwin-x64.tar.gz", "node-v14.13.1-darwin-x64", "d7b42f35470e07d27f3c5d9a58ac75de60a2baeb38cdf46831880204fa8b479d"), + "14.13.1-linux_arm64": ("node-v14.13.1-linux-arm64.tar.xz", "node-v14.13.1-linux-arm64", "ddc90cbd4edcfa25004d2a01d9fefee916b1e1cf1854549dab3a973d492df72e"), + "14.13.1-linux_s390x": ("node-v14.13.1-linux-s390x.tar.xz", "node-v14.13.1-linux-s390x", "95ad9f6f5fcf9e761bcc8a46cc130e1ba2d848e32d3a238fb09f58cca0a1fd33"), + "14.13.1-linux_amd64": ("node-v14.13.1-linux-x64.tar.xz", "node-v14.13.1-linux-x64", "d0a87b107f665553ae0665f6f6f1c81187aa077c596f253866b09e0e1e48f981"), + "14.13.1-windows_amd64": ("node-v14.13.1-win-x64.zip", "node-v14.13.1-win-x64", "a9d590f54a8e384c250e1c40f291b7367e1fdabfed4e9112eece0f8bec97609e"), + # 14.14.0 + "14.14.0-darwin_amd64": ("node-v14.14.0-darwin-x64.tar.gz", "node-v14.14.0-darwin-x64", "c492c905a240eafa5448d6ef8988371afbd76ffa38b7e3deab41bdeed4a580fe"), + "14.14.0-linux_arm64": ("node-v14.14.0-linux-arm64.tar.xz", "node-v14.14.0-linux-arm64", "6aab9915ba00d096343c94bd4894c13801d689c5a214bb9109c235acf1a8cd7d"), + "14.14.0-linux_s390x": ("node-v14.14.0-linux-s390x.tar.xz", "node-v14.14.0-linux-s390x", "c6a4e41601d987ca4750ba1f3fc7cc95ed511f2270b6bc249a288797ff5123e5"), + "14.14.0-linux_amd64": ("node-v14.14.0-linux-x64.tar.xz", "node-v14.14.0-linux-x64", "8ba22704fee4ad33c7e514ec508272a9502efcee5e608b8218164394c69cf2cd"), + "14.14.0-windows_amd64": ("node-v14.14.0-win-x64.zip", "node-v14.14.0-win-x64", "8fd96e1e14526939ed10186eaa51fe47f68612f097e05c1eb92f46c71120c551"), + # 14.15.0 + "14.15.0-darwin_amd64": ("node-v14.15.0-darwin-x64.tar.gz", "node-v14.15.0-darwin-x64", "1389f50d2f9f4993736d0408300513434d7630c2853634fb13f2b69cc9e69cb9"), + "14.15.0-linux_arm64": ("node-v14.15.0-linux-arm64.tar.xz", "node-v14.15.0-linux-arm64", "18594c582ccc8c1a1a787d9b21ecb6f315ef879e82be254c598243f58ea7ccb4"), + "14.15.0-linux_s390x": ("node-v14.15.0-linux-s390x.tar.xz", "node-v14.15.0-linux-s390x", "5d3a4cc9c2c32b59e1e1cccc9ad1baa971eae5367ca35cf41d02f2498a2c570b"), + "14.15.0-linux_amd64": ("node-v14.15.0-linux-x64.tar.xz", "node-v14.15.0-linux-x64", "93e5b94cfaa3edec80832725f8c09cde2cd0c327da89ad9ad811cf9a1b5d0f1b"), + "14.15.0-windows_amd64": ("node-v14.15.0-win-x64.zip", "node-v14.15.0-win-x64", "08bbcc453bda374f71a9068ebd76902cfbf3a2b78705f3f6552cbefcc8d76682"), +} diff --git a/internal/node/npm_package_bin.bzl b/internal/node/npm_package_bin.bzl index 961ec7559d..1ed16b768e 100644 --- a/internal/node/npm_package_bin.bzl +++ b/internal/node/npm_package_bin.bzl @@ -11,6 +11,7 @@ _ATTRS = { "configuration_env_vars": attr.string_list(default = []), "data": attr.label_list(allow_files = True, aspects = [module_mappings_aspect, node_modules_aspect]), "exit_code_out": attr.output(), + "link_workspace_root": attr.bool(), "output_dir": attr.bool(), "outs": attr.output_list(), "stderr": attr.output(), @@ -78,6 +79,7 @@ def _impl(ctx): stdout = ctx.outputs.stdout, stderr = ctx.outputs.stderr, exit_code_out = ctx.outputs.exit_code_out, + link_workspace_root = ctx.attr.link_workspace_root, ) return [DefaultInfo(files = depset(outputs + tool_outputs))] @@ -87,7 +89,7 @@ _npm_package_bin = rule( attrs = _ATTRS, ) -def npm_package_bin(tool = None, package = None, package_bin = None, data = [], outs = [], args = [], output_dir = False, **kwargs): +def npm_package_bin(tool = None, package = None, package_bin = None, data = [], outs = [], args = [], output_dir = False, link_workspace_root = False, **kwargs): """Run an arbitrary npm package binary (e.g. a program under node_modules/.bin/*) under Bazel. It must produce outputs. If you just want to run a program with `bazel run`, use the nodejs_binary rule. @@ -162,6 +164,8 @@ def npm_package_bin(tool = None, package = None, package_bin = None, data = [], package_bin: the "bin" entry from `package` that should be run. By default package_bin is the same string as `package` tool: a label for a binary to run, like `@npm//terser/bin:terser`. This is the longer form of package/package_bin. Note that you can also refer to a binary in your local workspace. + link_workspace_root: Link the workspace root to the bin_dir to support absolute requires like 'my_wksp/path/to/file'. + If source files need to be required then they can be copied to the bin_dir with copy_to_bin. """ if not tool: if not package: @@ -175,5 +179,6 @@ def npm_package_bin(tool = None, package = None, package_bin = None, data = [], args = args, output_dir = output_dir, tool = tool, + link_workspace_root = link_workspace_root, **kwargs ) diff --git a/internal/node/test/BUILD.bazel b/internal/node/test/BUILD.bazel index e23d3d5fc0..6c1d0398a3 100644 --- a/internal/node/test/BUILD.bazel +++ b/internal/node/test/BUILD.bazel @@ -1,6 +1,6 @@ load("@build_bazel_rules_nodejs//:index.bzl", "generated_file_test", "nodejs_binary", "nodejs_test", "npm_package_bin") load("@npm//typescript:index.bzl", "tsc") -load("//internal/js_library:js_library.bzl", "js_library") +load("//:index.bzl", "js_library") load("//internal/node:node_repositories.bzl", "BUILT_IN_NODE_PLATFORMS") load("//packages/jasmine:index.bzl", "jasmine_node_test") load("//third_party/github.com/bazelbuild/bazel-skylib:rules/copy_file.bzl", "copy_file") diff --git a/internal/node/test/env.spec.js b/internal/node/test/env.spec.js index 4ec6c24e8e..b23c94c984 100644 --- a/internal/node/test/env.spec.js +++ b/internal/node/test/env.spec.js @@ -30,16 +30,16 @@ function expectPathsToMatch(a, b) { describe('launcher.sh environment', function() { it('should setup correct bazel environment variables when in runfiles', function() { - const runfilesRoot = normPath(process.env['RUNFILES']); + const runfilesRoot = normPath(process.env['RUNFILES_DIR']); const match = runfilesRoot.match(/\/bazel-out\//); expect(!!match).toBe(true); const execroot = runfilesRoot.slice(0, match.index); expectPathsToMatch(path.basename(runfilesRoot), `env_test.${runfilesExt}.runfiles`); expectPathsToMatch(process.env['BAZEL_WORKSPACE'], 'build_bazel_rules_nodejs'); expectPathsToMatch(process.env['BAZEL_TARGET'], '//internal/node/test:env_test'); - expectPathsToMatch(process.cwd(), `${process.env['RUNFILES']}/build_bazel_rules_nodejs`); - expectPathsToMatch(process.env['PWD'], `${process.env['RUNFILES']}/build_bazel_rules_nodejs`); - expectPathsToMatch(process.env['BAZEL_PATCH_ROOT'], process.env['RUNFILES']); + expectPathsToMatch(process.cwd(), `${process.env['RUNFILES_DIR']}/build_bazel_rules_nodejs`); + expectPathsToMatch(process.env['PWD'], `${process.env['RUNFILES_DIR']}/build_bazel_rules_nodejs`); + expectPathsToMatch(process.env['BAZEL_PATCH_ROOT'], process.env['RUNFILES_DIR']); expectPathsToMatch(process.env['BAZEL_NODE_MODULES_ROOT'], 'npm/node_modules'); const expectedGuards = [ `${execroot}/node_modules`, diff --git a/internal/node/test/lib1/BUILD.bazel b/internal/node/test/lib1/BUILD.bazel index 25632d351e..0e54cda27b 100644 --- a/internal/node/test/lib1/BUILD.bazel +++ b/internal/node/test/lib1/BUILD.bazel @@ -1,4 +1,4 @@ -load("//internal/js_library:js_library.bzl", "js_library") +load("//:index.bzl", "js_library") package(default_visibility = ["//internal:__subpackages__"]) diff --git a/internal/node/test/lib2/BUILD.bazel b/internal/node/test/lib2/BUILD.bazel index 48b0ca52a6..6b14af8a69 100644 --- a/internal/node/test/lib2/BUILD.bazel +++ b/internal/node/test/lib2/BUILD.bazel @@ -1,4 +1,4 @@ -load("//internal/js_library:js_library.bzl", "js_library") +load("//:index.bzl", "js_library") load("//packages/typescript:index.bzl", "ts_project") package(default_visibility = ["//internal:__subpackages__"]) @@ -13,8 +13,10 @@ js_library( name = "lib2", package_name = "lib2", srcs = [ - "main.js", "package.json", "src/some.js", ], + deps = [ + ":tsconfig", + ], ) diff --git a/internal/node/test/nodejs_toolchain_test.bzl b/internal/node/test/nodejs_toolchain_test.bzl index 99bae71d22..b3d98ba43b 100644 --- a/internal/node/test/nodejs_toolchain_test.bzl +++ b/internal/node/test/nodejs_toolchain_test.bzl @@ -32,7 +32,7 @@ fi _ATTRS = { "platform": attr.string( - values = ["linux_amd64", "linux_arm64", "darwin_amd64", "windows_amd64"], + values = ["linux_amd64", "linux_arm64", "linux_s390x", "darwin_amd64", "windows_amd64"], ), } diff --git a/internal/npm_install/BUILD.bazel b/internal/npm_install/BUILD.bazel index 75e04f01b5..f138dc7c74 100644 --- a/internal/npm_install/BUILD.bazel +++ b/internal/npm_install/BUILD.bazel @@ -7,7 +7,7 @@ load("//packages/typescript:checked_in_ts_project.bzl", "checked_in_ts_project") # Using checked in ts library like the linker # To update index.js run: -# bazel run //internal/npm_install:compile_generate_build_file_check_compiled.accept +# bazel run //internal/npm_install:compile_generate_build_file_check_compiled.update checked_in_ts_project( name = "compile_generate_build_file", src = "generate_build_file.ts", diff --git a/internal/npm_install/generate_build_file.ts b/internal/npm_install/generate_build_file.ts index 8daf1270ed..8dd0e5080f 100644 --- a/internal/npm_install/generate_build_file.ts +++ b/internal/npm_install/generate_build_file.ts @@ -17,7 +17,7 @@ /** * @fileoverview This script generates BUILD.bazel files by analyzing * the node_modules folder layed out by yarn or npm. It generates - * fine grained Bazel `node_module_library` targets for each root npm package + * fine grained Bazel `js_library` targets for each root npm package * and all files for that package and its transitive deps are included * in the target. For example, `@//jasmine` would * include all files in the jasmine npm package and all of its @@ -28,7 +28,7 @@ * target will be generated for the `jasmine` binary in the `jasmine` * npm package. * - * Additionally, a `@//:node_modules` `node_module_library` + * Additionally, a `@//:node_modules` `js_library` * is generated that includes all packages under node_modules * as well as the .bin folder. * @@ -48,20 +48,26 @@ function log_verbose(...m: any[]) { if (!!process.env['VERBOSE_LOGS']) console.error('[generate_build_file.ts]', ...m); } -const BUILD_FILE_HEADER = `# Generated file from yarn_install/npm_install rule. -# See rules_nodejs/internal/npm_install/generate_build_file.ts - -# All rules in other repositories can use these targets -package(default_visibility = ["//visibility:public"]) - -` - const args = process.argv.slice(2); const WORKSPACE = args[0]; const RULE_TYPE = args[1]; -const LOCK_FILE_PATH = args[2]; -const INCLUDED_FILES = args[3] ? args[3].split(',') : []; -const BAZEL_VERSION = args[4]; +const PKG_JSON_FILE_PATH = args[2]; +const LOCK_FILE_PATH = args[3]; +const STRICT_VISIBILITY = args[4]?.toLowerCase() === 'true'; +const INCLUDED_FILES = args[5] ? args[5].split(',') : []; +const BAZEL_VERSION = args[6]; + +const PUBLIC_VISIBILITY = '//visibility:public'; +const LIMITED_VISIBILITY = `@${WORKSPACE}//:__subpackages__`; + +function generateBuildFileHeader(visibility = PUBLIC_VISIBILITY): string { + return `# Generated file from ${RULE_TYPE} rule. +# See rules_nodejs/internal/npm_install/generate_build_file.ts + +package(default_visibility = ["${visibility}"]) + +`; +} if (require.main === module) { main(); @@ -91,8 +97,11 @@ function writeFileSync(p: string, content: string) { * Main entrypoint. */ export function main() { + // get a set of all the direct dependencies for visibility + const deps = getDirectDependencySet(PKG_JSON_FILE_PATH); + // find all packages (including packages in nested node_modules) - const pkgs = findPackages(); + const pkgs = findPackages('node_modules', deps); // flatten dependencies flattenDependencies(pkgs); @@ -157,17 +166,16 @@ function generateRootBuildFile(pkgs: Dep[]) { `; })}); - let buildFile = BUILD_FILE_HEADER + - `load("@build_bazel_rules_nodejs//internal/npm_install:node_module_library.bzl", "node_module_library") + let buildFile = generateBuildFileHeader() + `load("@build_bazel_rules_nodejs//:index.bzl", "js_library") exports_files([ ${exportsStarlark}]) -# The node_modules directory in one catch-all node_module_library. +# The node_modules directory in one catch-all js_library. # NB: Using this target may have bad performance implications if # there are many files in target. # See https://github.com/bazelbuild/bazel/issues/5153. -node_module_library( +js_library( name = "node_modules",${pkgFilesStarlark}${depsStarlark} ) @@ -199,12 +207,18 @@ function generatePackageBuildFiles(pkg: Dep) { buildFilePath = 'BUILD.bazel' } + // if the dependency doesn't appear in the given package.json file, and the 'strict_visibility' flag is set + // on the npm_install / yarn_install rule, then set the visibility to be limited internally to the @repo workspace + // if the dependency is listed, set it as public + // if the flag is false, then always set public visibility + const visibility = !pkg._directDependency && STRICT_VISIBILITY ? LIMITED_VISIBILITY : PUBLIC_VISIBILITY; + // If the package didn't ship a bin/BUILD file, generate one. if (!pkg._files.includes('bin/BUILD.bazel') && !pkg._files.includes('bin/BUILD')) { const binBuildFile = printPackageBin(pkg); if (binBuildFile.length) { writeFileSync( - path.posix.join(pkg._dir, 'bin', 'BUILD.bazel'), BUILD_FILE_HEADER + binBuildFile); + path.posix.join(pkg._dir, 'bin', 'BUILD.bazel'), generateBuildFileHeader(visibility) + binBuildFile); } } @@ -242,7 +256,7 @@ exports_files(["index.bzl"]) } } - writeFileSync(path.posix.join(pkg._dir, buildFilePath), BUILD_FILE_HEADER + buildFile); + writeFileSync(path.posix.join(pkg._dir, buildFilePath), generateBuildFileHeader(visibility) + buildFile); } /** @@ -390,7 +404,7 @@ You can suppress this message by passing "suppress_warning = True" to install_ba * Generate build files for a scope. */ function generateScopeBuildFiles(scope: string, pkgs: Dep[]) { - const buildFile = BUILD_FILE_HEADER + printScope(scope, pkgs); + const buildFile = generateBuildFileHeader() + printScope(scope, pkgs); writeFileSync(path.posix.join(scope, 'BUILD.bazel'), buildFile); } @@ -408,6 +422,13 @@ function isDirectory(p: string) { return fs.existsSync(p) && fs.statSync(p).isDirectory(); } +/** + * Strips the byte order mark from a string if present + */ +function stripBom(s: string) { + return s.charCodeAt(0) === 0xFEFF ? s.slice(1) : s; +} + /** * Returns an array of all the files under a directory as relative * paths to the directory. @@ -469,10 +490,24 @@ function hasRootBuildFile(pkg: Dep, rootPath: string) { return false; } +/** + * Returns a set of the root package.json files direct dependencies + */ +export function getDirectDependencySet(pkgJsonPath: string): Set { + const pkgJson = JSON.parse( + stripBom(fs.readFileSync(pkgJsonPath, {encoding: 'utf8'})) + ); + + const dependencies: string[] = Object.keys(pkgJson.dependencies || {}); + const devDependencies: string[] = Object.keys(pkgJson.devDependencies || {}); + + return new Set([...dependencies, ...devDependencies]); +} + /** * Finds and returns an array of all packages under a given path. */ -function findPackages(p = 'node_modules') { +function findPackages(p: string, dependencies: Set) { if (!isDirectory(p)) { return []; } @@ -491,13 +526,13 @@ function findPackages(p = 'node_modules') { .filter(f => isDirectory(f)); packages.forEach(f => { - pkgs.push(parsePackage(f), ...findPackages(path.posix.join(f, 'node_modules'))); + pkgs.push(parsePackage(f, dependencies), ...findPackages(path.posix.join(f, 'node_modules'), dependencies)); }); const scopes = listing.filter(f => f.startsWith('@')) .map(f => path.posix.join(p, f)) .filter(f => isDirectory(f)); - scopes.forEach(f => pkgs.push(...findPackages(f))); + scopes.forEach(f => pkgs.push(...findPackages(f, dependencies))); return pkgs; } @@ -526,10 +561,9 @@ function findScopes() { * package json and return it as an object along with * some additional internal attributes prefixed with '_'. */ -export function parsePackage(p: string): Dep { +export function parsePackage(p: string, dependencies: Set = new Set()): Dep { // Parse the package.json file of this package const packageJson = path.posix.join(p, 'package.json'); - const stripBom = (s: string) => s.charCodeAt(0) === 0xFEFF ? s.slice(1) : s; const pkg = isFile(packageJson) ? JSON.parse(stripBom(fs.readFileSync(packageJson, {encoding: 'utf8'}))) : {version: '0.0.0'}; @@ -560,6 +594,10 @@ export function parsePackage(p: string): Dep { // which is later filled with the flattened dependency list pkg._dependencies = []; + // set if this is a direct dependency of the root package.json file + // which is later used to determine the generated rules visibility + pkg._directDependency = dependencies.has(pkg._moduleName); + return pkg; } @@ -861,7 +899,7 @@ function findFile(pkg: Dep, m: string) { } /** - * Given a pkg, return the skylark `node_module_library` targets for the package. + * Given a pkg, return the skylark `js_library` targets for the package. */ function printPackage(pkg: Dep) { function starlarkFiles(attr: string, files: string[], comment: string = '') { @@ -919,8 +957,7 @@ function printPackage(pkg: Dep) { const depsStarlark = deps.map(dep => `"//${dep._dir}:${dep._name}__contents",`).join('\n '); - let result = - `load("@build_bazel_rules_nodejs//internal/npm_install:node_module_library.bzl", "node_module_library") + let result = `load("@build_bazel_rules_nodejs//:index.bzl", "js_library") # Generated targets for npm package "${pkg._dir}" ${printJson(pkg)} @@ -955,7 +992,7 @@ filegroup( ) # The primary target for this package for use in rule deps -node_module_library( +js_library( name = "${pkg._name}", # direct sources listed for strict deps support srcs = [":${pkg._name}__files"], @@ -967,14 +1004,14 @@ node_module_library( ) # Target is used as dep for main targets to prevent circular dependencies errors -node_module_library( +js_library( name = "${pkg._name}__contents", srcs = [":${pkg._name}__files", ":${pkg._name}__nested_node_modules"],${namedSourcesStarlark} visibility = ["//:__subpackages__"], ) # Typings files that are part of the npm package not including nested node_modules -node_module_library( +js_library( name = "${pkg._name}__typings",${dtsStarlark} ) @@ -1133,11 +1170,12 @@ type Dep = { _dependencies: Dep[], _files: string[], _runfiles: string[], + _directDependency: boolean, [k: string]: any } /** - * Given a scope, return the skylark `node_module_library` target for the scope. + * Given a scope, return the skylark `js_library` target for the scope. */ function printScope(scope: string, pkgs: Dep[]) { pkgs = pkgs.filter(pkg => !pkg._isNested && pkg._dir.startsWith(`${scope}/`)); @@ -1168,10 +1206,10 @@ function printScope(scope: string, pkgs: Dep[]) { ],`; } - return `load("@build_bazel_rules_nodejs//internal/npm_install:node_module_library.bzl", "node_module_library") + return `load("@build_bazel_rules_nodejs//:index.bzl", "js_library") # Generated target for npm scope ${scope} -node_module_library( +js_library( name = "${scope}",${pkgFilesStarlark}${depsStarlark} ) diff --git a/internal/npm_install/index.js b/internal/npm_install/index.js index 08a3d148c9..40c0bd121f 100644 --- a/internal/npm_install/index.js +++ b/internal/npm_install/index.js @@ -1,4 +1,5 @@ /* THIS FILE GENERATED FROM .ts; see BUILD.bazel */ /* clang-format off */'use strict'; +var _a; Object.defineProperty(exports, "__esModule", { value: true }); const fs = require("fs"); const path = require("path"); @@ -7,19 +8,24 @@ function log_verbose(...m) { if (!!process.env['VERBOSE_LOGS']) console.error('[generate_build_file.ts]', ...m); } -const BUILD_FILE_HEADER = `# Generated file from yarn_install/npm_install rule. +const args = process.argv.slice(2); +const WORKSPACE = args[0]; +const RULE_TYPE = args[1]; +const PKG_JSON_FILE_PATH = args[2]; +const LOCK_FILE_PATH = args[3]; +const STRICT_VISIBILITY = ((_a = args[4]) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'true'; +const INCLUDED_FILES = args[5] ? args[5].split(',') : []; +const BAZEL_VERSION = args[6]; +const PUBLIC_VISIBILITY = '//visibility:public'; +const LIMITED_VISIBILITY = `@${WORKSPACE}//:__subpackages__`; +function generateBuildFileHeader(visibility = PUBLIC_VISIBILITY) { + return `# Generated file from ${RULE_TYPE} rule. # See rules_nodejs/internal/npm_install/generate_build_file.ts -# All rules in other repositories can use these targets -package(default_visibility = ["//visibility:public"]) +package(default_visibility = ["${visibility}"]) `; -const args = process.argv.slice(2); -const WORKSPACE = args[0]; -const RULE_TYPE = args[1]; -const LOCK_FILE_PATH = args[2]; -const INCLUDED_FILES = args[3] ? args[3].split(',') : []; -const BAZEL_VERSION = args[4]; +} if (require.main === module) { main(); } @@ -34,7 +40,8 @@ function writeFileSync(p, content) { fs.writeFileSync(p, content); } function main() { - const pkgs = findPackages(); + const deps = getDirectDependencySet(PKG_JSON_FILE_PATH); + const pkgs = findPackages('node_modules', deps); flattenDependencies(pkgs); generateBazelWorkspaces(pkgs); generateBuildFiles(pkgs); @@ -79,17 +86,16 @@ function generateRootBuildFile(pkgs) { `; }); }); - let buildFile = BUILD_FILE_HEADER + - `load("@build_bazel_rules_nodejs//internal/npm_install:node_module_library.bzl", "node_module_library") + let buildFile = generateBuildFileHeader() + `load("@build_bazel_rules_nodejs//:index.bzl", "js_library") exports_files([ ${exportsStarlark}]) -# The node_modules directory in one catch-all node_module_library. +# The node_modules directory in one catch-all js_library. # NB: Using this target may have bad performance implications if # there are many files in target. # See https://github.com/bazelbuild/bazel/issues/5153. -node_module_library( +js_library( name = "node_modules",${pkgFilesStarlark}${depsStarlark} ) @@ -115,10 +121,11 @@ function generatePackageBuildFiles(pkg) { else { buildFilePath = 'BUILD.bazel'; } + const visibility = !pkg._directDependency && STRICT_VISIBILITY ? LIMITED_VISIBILITY : PUBLIC_VISIBILITY; if (!pkg._files.includes('bin/BUILD.bazel') && !pkg._files.includes('bin/BUILD')) { const binBuildFile = printPackageBin(pkg); if (binBuildFile.length) { - writeFileSync(path.posix.join(pkg._dir, 'bin', 'BUILD.bazel'), BUILD_FILE_HEADER + binBuildFile); + writeFileSync(path.posix.join(pkg._dir, 'bin', 'BUILD.bazel'), generateBuildFileHeader(visibility) + binBuildFile); } } if (pkg._files.includes('index.bzl')) { @@ -147,7 +154,7 @@ exports_files(["index.bzl"]) `; } } - writeFileSync(path.posix.join(pkg._dir, buildFilePath), BUILD_FILE_HEADER + buildFile); + writeFileSync(path.posix.join(pkg._dir, buildFilePath), generateBuildFileHeader(visibility) + buildFile); } function generateBazelWorkspaces(pkgs) { const workspaces = {}; @@ -248,7 +255,7 @@ You can suppress this message by passing "suppress_warning = True" to install_ba writeFileSync('install_bazel_dependencies.bzl', bzlFile); } function generateScopeBuildFiles(scope, pkgs) { - const buildFile = BUILD_FILE_HEADER + printScope(scope, pkgs); + const buildFile = generateBuildFileHeader() + printScope(scope, pkgs); writeFileSync(path.posix.join(scope, 'BUILD.bazel'), buildFile); } function isFile(p) { @@ -257,6 +264,9 @@ function isFile(p) { function isDirectory(p) { return fs.existsSync(p) && fs.statSync(p).isDirectory(); } +function stripBom(s) { + return s.charCodeAt(0) === 0xFEFF ? s.slice(1) : s; +} function listFiles(rootDir, subDir = '') { const dir = path.posix.join(rootDir, subDir); if (!isDirectory(dir)) { @@ -295,7 +305,14 @@ function hasRootBuildFile(pkg, rootPath) { } return false; } -function findPackages(p = 'node_modules') { +function getDirectDependencySet(pkgJsonPath) { + const pkgJson = JSON.parse(stripBom(fs.readFileSync(pkgJsonPath, { encoding: 'utf8' }))); + const dependencies = Object.keys(pkgJson.dependencies || {}); + const devDependencies = Object.keys(pkgJson.devDependencies || {}); + return new Set([...dependencies, ...devDependencies]); +} +exports.getDirectDependencySet = getDirectDependencySet; +function findPackages(p, dependencies) { if (!isDirectory(p)) { return []; } @@ -307,12 +324,12 @@ function findPackages(p = 'node_modules') { .map(f => path.posix.join(p, f)) .filter(f => isDirectory(f)); packages.forEach(f => { - pkgs.push(parsePackage(f), ...findPackages(path.posix.join(f, 'node_modules'))); + pkgs.push(parsePackage(f, dependencies), ...findPackages(path.posix.join(f, 'node_modules'), dependencies)); }); const scopes = listing.filter(f => f.startsWith('@')) .map(f => path.posix.join(p, f)) .filter(f => isDirectory(f)); - scopes.forEach(f => pkgs.push(...findPackages(f))); + scopes.forEach(f => pkgs.push(...findPackages(f, dependencies))); return pkgs; } function findScopes() { @@ -327,9 +344,8 @@ function findScopes() { .map(f => f.replace(/^node_modules\//, '')); return scopes; } -function parsePackage(p) { +function parsePackage(p, dependencies = new Set()) { const packageJson = path.posix.join(p, 'package.json'); - const stripBom = (s) => s.charCodeAt(0) === 0xFEFF ? s.slice(1) : s; const pkg = isFile(packageJson) ? JSON.parse(stripBom(fs.readFileSync(packageJson, { encoding: 'utf8' }))) : { version: '0.0.0' }; @@ -340,6 +356,7 @@ function parsePackage(p) { pkg._files = listFiles(p); pkg._runfiles = pkg._files.filter((f) => !/[^\x21-\x7E]/.test(f)); pkg._dependencies = []; + pkg._directDependency = dependencies.has(pkg._moduleName); return pkg; } exports.parsePackage = parsePackage; @@ -529,7 +546,7 @@ function printPackage(pkg) { ''; const deps = [pkg].concat(pkg._dependencies.filter(dep => dep !== pkg && !dep._isNested)); const depsStarlark = deps.map(dep => `"//${dep._dir}:${dep._name}__contents",`).join('\n '); - let result = `load("@build_bazel_rules_nodejs//internal/npm_install:node_module_library.bzl", "node_module_library") + let result = `load("@build_bazel_rules_nodejs//:index.bzl", "js_library") # Generated targets for npm package "${pkg._dir}" ${printJson(pkg)} @@ -564,7 +581,7 @@ filegroup( ) # The primary target for this package for use in rule deps -node_module_library( +js_library( name = "${pkg._name}", # direct sources listed for strict deps support srcs = [":${pkg._name}__files"], @@ -576,14 +593,14 @@ node_module_library( ) # Target is used as dep for main targets to prevent circular dependencies errors -node_module_library( +js_library( name = "${pkg._name}__contents", srcs = [":${pkg._name}__files", ":${pkg._name}__nested_node_modules"],${namedSourcesStarlark} visibility = ["//:__subpackages__"], ) # Typings files that are part of the npm package not including nested node_modules -node_module_library( +js_library( name = "${pkg._name}__typings",${dtsStarlark} ) @@ -732,10 +749,10 @@ function printScope(scope, pkgs) { ${list} ],`; } - return `load("@build_bazel_rules_nodejs//internal/npm_install:node_module_library.bzl", "node_module_library") + return `load("@build_bazel_rules_nodejs//:index.bzl", "js_library") # Generated target for npm scope ${scope} -node_module_library( +js_library( name = "${scope}",${pkgFilesStarlark}${depsStarlark} ) diff --git a/internal/npm_install/node_module_library.bzl b/internal/npm_install/node_module_library.bzl deleted file mode 100644 index ccedaa2f9e..0000000000 --- a/internal/npm_install/node_module_library.bzl +++ /dev/null @@ -1,105 +0,0 @@ -# Copyright 2019 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -"""Contains the node_module_library which is used by yarn_install & npm_install. -""" - -load("@build_bazel_rules_nodejs//:providers.bzl", "DeclarationInfo", "NpmPackageInfo", "js_module_info", "js_named_module_info") - -def _node_module_library_impl(ctx): - workspace_name = ctx.label.workspace_name if ctx.label.workspace_name else ctx.workspace_name - - direct_sources = depset(ctx.files.srcs) - sources_depsets = [direct_sources] - - declarations = depset([ - f - for f in ctx.files.srcs - if ( - f.path.endswith(".d.ts") or - # package.json may be required to resolve "typings" key - f.path.endswith("/package.json") - ) and - # exclude eg. external/npm/node_modules/protobufjs/node_modules/@types/node/index.d.ts - # these would be duplicates of the typings provided directly in another dependency. - # also exclude all /node_modules/typescript/lib/lib.*.d.ts files as these are determined by - # the tsconfig "lib" attribute - len(f.path.split("/node_modules/")) < 3 and f.path.find("/node_modules/typescript/lib/lib.") == -1 - ]) - - transitive_declarations_depsets = [declarations] - - for dep in ctx.attr.deps: - if DeclarationInfo in dep: - transitive_declarations_depsets.append(dep[DeclarationInfo].transitive_declarations) - if NpmPackageInfo in dep: - sources_depsets.append(dep[NpmPackageInfo].sources) - - transitive_declarations = depset(transitive = transitive_declarations_depsets) - - return struct( - typescript = struct( - declarations = declarations, - devmode_manifest = None, - es5_sources = depset(), - es6_sources = depset(), - replay_params = None, - transitive_declarations = transitive_declarations, - transitive_es5_sources = depset(), - transitive_es6_sources = depset(), - tsickle_externs = [], - type_blacklisted_declarations = depset(), - ), - providers = [ - DefaultInfo( - files = direct_sources, - ), - NpmPackageInfo( - direct_sources = direct_sources, - sources = depset(transitive = sources_depsets), - workspace = workspace_name, - ), - DeclarationInfo( - declarations = declarations, - transitive_declarations = transitive_declarations, - type_blacklisted_declarations = depset([]), - ), - js_module_info( - sources = direct_sources, - deps = ctx.attr.deps, - ), - js_named_module_info( - sources = depset(ctx.files.named_module_srcs), - deps = ctx.attr.deps, - ), - ], - ) - -node_module_library = rule( - implementation = _node_module_library_impl, - attrs = { - "deps": attr.label_list( - doc = "Transitive dependencies of the package", - ), - "named_module_srcs": attr.label_list( - doc = "A subset of srcs that are javascript named-UMD or named-AMD for use in rules such as ts_devserver", - allow_files = True, - ), - "srcs": attr.label_list( - doc = "The list of files that comprise the package", - allow_files = True, - ), - }, - doc = "Defines an npm package under node_modules", -) diff --git a/internal/npm_install/npm_install.bzl b/internal/npm_install/npm_install.bzl index 7bbe12972c..17d21b7c53 100644 --- a/internal/npm_install/npm_install.bzl +++ b/internal/npm_install/npm_install.bzl @@ -83,6 +83,17 @@ fine grained npm dependencies. default = True, doc = "If stdout and stderr should be printed to the terminal.", ), + "strict_visibility": attr.bool( + default = False, + doc = """Turn on stricter visibility for generated BUILD.bazel files + +When enabled, only dependencies within the given `package.json` file are given public visibility. +All transitive dependencies are given limited visibility, enforcing that all direct dependencies are +listed in the `package.json` file. + +Currently the default is set `False`, but will likely be flipped `True` in rules_nodejs 3.0.0 +""", + ), "symlink_node_modules": attr.bool( doc = """Turn symlinking of node_modules on @@ -115,10 +126,12 @@ def _create_build_files(repository_ctx, rule_type, node, lock_file): "index.js", repository_ctx.attr.name, rule_type, + repository_ctx.path(repository_ctx.attr.package_json), repository_ctx.path(lock_file), + str(repository_ctx.attr.strict_visibility), ",".join(repository_ctx.attr.included_files), native.bazel_version, - ]) + ], timeout = 1200) # double the default timeout in case of many packages, see #2231 if result.return_code: fail("generate_build_file.ts failed: \nSTDOUT:\n%s\nSTDERR:\n%s" % (result.stdout, result.stderr)) diff --git a/internal/npm_install/test/BUILD.bazel b/internal/npm_install/test/BUILD.bazel index 32b5c34e68..286295f9f9 100644 --- a/internal/npm_install/test/BUILD.bazel +++ b/internal/npm_install/test/BUILD.bazel @@ -11,6 +11,7 @@ jasmine_node_test( name = "test", srcs = ["generate_build_file.spec.js"], data = [ + "package.spec.json", ":check.js", ":goldens", "//internal/npm_install:compile_generate_build_file", diff --git a/internal/npm_install/test/generate_build_file.spec.js b/internal/npm_install/test/generate_build_file.spec.js index 67cb6d329d..f67fa9823f 100644 --- a/internal/npm_install/test/generate_build_file.spec.js +++ b/internal/npm_install/test/generate_build_file.spec.js @@ -1,7 +1,7 @@ const fs = require('fs'); const path = require('path'); const {check, files} = require('./check'); -const {parsePackage, printPackageBin, printIndexBzl} = require('../generate_build_file'); +const {parsePackage, printPackageBin, printIndexBzl, getDirectDependencySet} = require('../generate_build_file'); describe('build file generator', () => { describe('integration test', () => { @@ -21,7 +21,7 @@ describe('build file generator', () => { }); describe('should exclude nodejs_binary rules when', () => { - const pkg = {_name: 'some_name', _dir: 'some_dir', _dependencies: [], _files: []}; + const pkg = {_name: 'some_name', _dir: 'some_dir', _dependencies: [], _files: [], _directDependency: true}; it('no bin entry is provided', () => { expect(printPackageBin({...pkg, _files: []})).not.toContain('nodejs_binary('); @@ -94,4 +94,17 @@ describe('build file generator', () => { expect(bzl).toContain('def http_server('); }); }); + + describe('getDirectDependencySet', () => { + it('returns a set of all dependencies in a package.json file', () => { + const runfiles = require(process.env.BAZEL_NODE_RUNFILES_HELPER); + const relPath = runfiles.resolvePackageRelative('package.spec.json'); + const deps = getDirectDependencySet(relPath); + + expect(deps.has('@angular/core')).toBeTruthy(); + expect(deps.has('@angular/common')).toBeTruthy(); + expect(deps.has('zone.js')).toBeTruthy(); + expect(deps.size).toBe(3); + }); + }); }); diff --git a/internal/npm_install/test/golden/@angular/core/BUILD.bazel.golden b/internal/npm_install/test/golden/@angular/core/BUILD.bazel.golden index a7fe7c8578..992b6af56c 100644 --- a/internal/npm_install/test/golden/@angular/core/BUILD.bazel.golden +++ b/internal/npm_install/test/golden/@angular/core/BUILD.bazel.golden @@ -1,6 +1,6 @@ package(default_visibility = ["//visibility:public"]) -load("@build_bazel_rules_nodejs//internal/npm_install:node_module_library.bzl", "node_module_library") +load("@build_bazel_rules_nodejs//:index.bzl", "js_library") filegroup( name = "core__files", srcs = [ @@ -678,7 +678,7 @@ filegroup( name = "core__all_files", srcs = [":core__files", ":core__not_files"], ) -node_module_library( +js_library( name = "core", srcs = [":core__files"], deps = [ @@ -688,7 +688,7 @@ node_module_library( "//zone.js:zone.js__contents", ], ) -node_module_library( +js_library( name = "core__contents", srcs = [":core__files", ":core__nested_node_modules"], named_module_srcs = [ @@ -697,7 +697,7 @@ node_module_library( ], visibility = ["//:__subpackages__"], ) -node_module_library( +js_library( name = "core__typings", srcs = [ "//:node_modules/@angular/core/core.d.ts", diff --git a/internal/npm_install/test/golden/@gregmagolan/BUILD.bazel.golden b/internal/npm_install/test/golden/@gregmagolan/BUILD.bazel.golden index 0cbf7c526e..e70fc51ed5 100644 --- a/internal/npm_install/test/golden/@gregmagolan/BUILD.bazel.golden +++ b/internal/npm_install/test/golden/@gregmagolan/BUILD.bazel.golden @@ -1,7 +1,7 @@ package(default_visibility = ["//visibility:public"]) -load("@build_bazel_rules_nodejs//internal/npm_install:node_module_library.bzl", "node_module_library") -node_module_library( +load("@build_bazel_rules_nodejs//:index.bzl", "js_library") +js_library( name = "@gregmagolan", srcs = [ "//@gregmagolan/test-a:test-a__files", diff --git a/internal/npm_install/test/golden/@gregmagolan/test-a/BUILD.bazel.golden b/internal/npm_install/test/golden/@gregmagolan/test-a/BUILD.bazel.golden index e480bc011d..6842975817 100644 --- a/internal/npm_install/test/golden/@gregmagolan/test-a/BUILD.bazel.golden +++ b/internal/npm_install/test/golden/@gregmagolan/test-a/BUILD.bazel.golden @@ -1,6 +1,6 @@ package(default_visibility = ["//visibility:public"]) -load("@build_bazel_rules_nodejs//internal/npm_install:node_module_library.bzl", "node_module_library") +load("@build_bazel_rules_nodejs//:index.bzl", "js_library") filegroup( name = "test-a__files", srcs = [ @@ -25,19 +25,19 @@ filegroup( name = "test-a__all_files", srcs = [":test-a__files", ":test-a__not_files"], ) -node_module_library( +js_library( name = "test-a", srcs = [":test-a__files"], deps = [ "//@gregmagolan/test-a:test-a__contents", ], ) -node_module_library( +js_library( name = "test-a__contents", srcs = [":test-a__files", ":test-a__nested_node_modules"], visibility = ["//:__subpackages__"], ) -node_module_library( +js_library( name = "test-a__typings", ) load("@build_bazel_rules_nodejs//internal/npm_install:npm_umd_bundle.bzl", "npm_umd_bundle") diff --git a/internal/npm_install/test/golden/@gregmagolan/test-b/BUILD.bazel.golden b/internal/npm_install/test/golden/@gregmagolan/test-b/BUILD.bazel.golden index 585d7a324f..da7841f68e 100644 --- a/internal/npm_install/test/golden/@gregmagolan/test-b/BUILD.bazel.golden +++ b/internal/npm_install/test/golden/@gregmagolan/test-b/BUILD.bazel.golden @@ -1,6 +1,6 @@ package(default_visibility = ["//visibility:public"]) -load("@build_bazel_rules_nodejs//internal/npm_install:node_module_library.bzl", "node_module_library") +load("@build_bazel_rules_nodejs//:index.bzl", "js_library") filegroup( name = "test-b__files", srcs = [ @@ -24,19 +24,19 @@ filegroup( name = "test-b__all_files", srcs = [":test-b__files", ":test-b__not_files"], ) -node_module_library( +js_library( name = "test-b", srcs = [":test-b__files"], deps = [ "//@gregmagolan/test-b:test-b__contents", ], ) -node_module_library( +js_library( name = "test-b__contents", srcs = [":test-b__files", ":test-b__nested_node_modules"], visibility = ["//:__subpackages__"], ) -node_module_library( +js_library( name = "test-b__typings", ) load("@build_bazel_rules_nodejs//internal/npm_install:npm_umd_bundle.bzl", "npm_umd_bundle") diff --git a/internal/npm_install/test/golden/BUILD.bazel.golden b/internal/npm_install/test/golden/BUILD.bazel.golden index 77459dcaa9..566c195d0c 100644 --- a/internal/npm_install/test/golden/BUILD.bazel.golden +++ b/internal/npm_install/test/golden/BUILD.bazel.golden @@ -1,6 +1,6 @@ package(default_visibility = ["//visibility:public"]) -load("@build_bazel_rules_nodejs//internal/npm_install:node_module_library.bzl", "node_module_library") +load("@build_bazel_rules_nodejs//:index.bzl", "js_library") exports_files([ "node_modules/ajv/.tonic_example.js", "node_modules/ajv/LICENSE", @@ -4686,7 +4686,7 @@ exports_files([ "node_modules/@gregmagolan/test-b/node_modules/@gregmagolan/test-a/package.json", "node_modules/@gregmagolan/test-b/package.json", ]) -node_module_library( +js_library( name = "node_modules", srcs = [ "//ajv:ajv__files", diff --git a/internal/npm_install/test/golden/ajv/BUILD.bazel.golden b/internal/npm_install/test/golden/ajv/BUILD.bazel.golden index 2b1e5931f4..aaea1dd433 100644 --- a/internal/npm_install/test/golden/ajv/BUILD.bazel.golden +++ b/internal/npm_install/test/golden/ajv/BUILD.bazel.golden @@ -1,6 +1,6 @@ package(default_visibility = ["//visibility:public"]) -load("@build_bazel_rules_nodejs//internal/npm_install:node_module_library.bzl", "node_module_library") +load("@build_bazel_rules_nodejs//:index.bzl", "js_library") filegroup( name = "ajv__files", srcs = [ @@ -108,7 +108,7 @@ filegroup( name = "ajv__all_files", srcs = [":ajv__files", ":ajv__not_files"], ) -node_module_library( +js_library( name = "ajv", srcs = [":ajv__files"], deps = [ @@ -119,12 +119,12 @@ node_module_library( "//json-schema-traverse:json-schema-traverse__contents", ], ) -node_module_library( +js_library( name = "ajv__contents", srcs = [":ajv__files", ":ajv__nested_node_modules"], visibility = ["//:__subpackages__"], ) -node_module_library( +js_library( name = "ajv__typings", srcs = [ "//:node_modules/ajv/lib/ajv.d.ts", diff --git a/internal/npm_install/test/golden/jasmine/BUILD.bazel.golden b/internal/npm_install/test/golden/jasmine/BUILD.bazel.golden index 59d80d504b..5e4336ee80 100644 --- a/internal/npm_install/test/golden/jasmine/BUILD.bazel.golden +++ b/internal/npm_install/test/golden/jasmine/BUILD.bazel.golden @@ -1,6 +1,6 @@ package(default_visibility = ["//visibility:public"]) -load("@build_bazel_rules_nodejs//internal/npm_install:node_module_library.bzl", "node_module_library") +load("@build_bazel_rules_nodejs//:index.bzl", "js_library") filegroup( name = "jasmine__files", srcs = [ @@ -34,7 +34,7 @@ filegroup( name = "jasmine__all_files", srcs = [":jasmine__files", ":jasmine__not_files"], ) -node_module_library( +js_library( name = "jasmine", srcs = [":jasmine__files"], deps = [ @@ -53,12 +53,12 @@ node_module_library( "//jasmine-core:jasmine-core__contents", ], ) -node_module_library( +js_library( name = "jasmine__contents", srcs = [":jasmine__files", ":jasmine__nested_node_modules"], visibility = ["//:__subpackages__"], ) -node_module_library( +js_library( name = "jasmine__typings", ) load("@build_bazel_rules_nodejs//internal/npm_install:npm_umd_bundle.bzl", "npm_umd_bundle") diff --git a/internal/npm_install/test/golden/rxjs/BUILD.bazel.golden b/internal/npm_install/test/golden/rxjs/BUILD.bazel.golden index 20edd2b0f6..177bea7421 100644 --- a/internal/npm_install/test/golden/rxjs/BUILD.bazel.golden +++ b/internal/npm_install/test/golden/rxjs/BUILD.bazel.golden @@ -1,6 +1,6 @@ package(default_visibility = ["//visibility:public"]) -load("@build_bazel_rules_nodejs//internal/npm_install:node_module_library.bzl", "node_module_library") +load("@build_bazel_rules_nodejs//:index.bzl", "js_library") filegroup( name = "rxjs__files", srcs = [ @@ -3627,7 +3627,7 @@ filegroup( name = "rxjs__all_files", srcs = [":rxjs__files", ":rxjs__not_files"], ) -node_module_library( +js_library( name = "rxjs", srcs = [":rxjs__files"], deps = [ @@ -3635,12 +3635,12 @@ node_module_library( "//tslib:tslib__contents", ], ) -node_module_library( +js_library( name = "rxjs__contents", srcs = [":rxjs__files", ":rxjs__nested_node_modules"], visibility = ["//:__subpackages__"], ) -node_module_library( +js_library( name = "rxjs__typings", srcs = [ "//:node_modules/rxjs/AsyncSubject.d.ts", diff --git a/internal/npm_install/test/golden/unidiff/BUILD.bazel.golden b/internal/npm_install/test/golden/unidiff/BUILD.bazel.golden index 7aaea8236d..ed73616753 100644 --- a/internal/npm_install/test/golden/unidiff/BUILD.bazel.golden +++ b/internal/npm_install/test/golden/unidiff/BUILD.bazel.golden @@ -1,6 +1,6 @@ package(default_visibility = ["//visibility:public"]) -load("@build_bazel_rules_nodejs//internal/npm_install:node_module_library.bzl", "node_module_library") +load("@build_bazel_rules_nodejs//:index.bzl", "js_library") filegroup( name = "unidiff__files", srcs = [ @@ -30,7 +30,7 @@ filegroup( name = "unidiff__all_files", srcs = [":unidiff__files", ":unidiff__not_files"], ) -node_module_library( +js_library( name = "unidiff", srcs = [":unidiff__files"], deps = [ @@ -38,12 +38,12 @@ node_module_library( "//diff:diff__contents", ], ) -node_module_library( +js_library( name = "unidiff__contents", srcs = [":unidiff__files", ":unidiff__nested_node_modules"], visibility = ["//:__subpackages__"], ) -node_module_library( +js_library( name = "unidiff__typings", ) load("@build_bazel_rules_nodejs//internal/npm_install:npm_umd_bundle.bzl", "npm_umd_bundle") diff --git a/internal/npm_install/test/golden/zone.js/BUILD.bazel.golden b/internal/npm_install/test/golden/zone.js/BUILD.bazel.golden index e2079693df..68bd8ef32a 100644 --- a/internal/npm_install/test/golden/zone.js/BUILD.bazel.golden +++ b/internal/npm_install/test/golden/zone.js/BUILD.bazel.golden @@ -1,6 +1,6 @@ package(default_visibility = ["//visibility:public"]) -load("@build_bazel_rules_nodejs//internal/npm_install:node_module_library.bzl", "node_module_library") +load("@build_bazel_rules_nodejs//:index.bzl", "js_library") filegroup( name = "zone.js__files", srcs = [ @@ -148,19 +148,19 @@ filegroup( name = "zone.js__all_files", srcs = [":zone.js__files", ":zone.js__not_files"], ) -node_module_library( +js_library( name = "zone.js", srcs = [":zone.js__files"], deps = [ "//zone.js:zone.js__contents", ], ) -node_module_library( +js_library( name = "zone.js__contents", srcs = [":zone.js__files", ":zone.js__nested_node_modules"], visibility = ["//:__subpackages__"], ) -node_module_library( +js_library( name = "zone.js__typings", srcs = [ "//:node_modules/zone.js/dist/zone.js.d.ts", diff --git a/internal/npm_install/test/package.spec.json b/internal/npm_install/test/package.spec.json new file mode 100644 index 0000000000..3486b4ea4e --- /dev/null +++ b/internal/npm_install/test/package.spec.json @@ -0,0 +1,10 @@ +{ + "name": "test_package", + "dependencies": { + "@angular/core": "9.1.0" + }, + "devDependencies": { + "@angular/common": "9.1.0", + "zone.js": "0.8.29" + } +} diff --git a/internal/npm_install/test/package/BUILD.bazel b/internal/npm_install/test/package/BUILD.bazel index e4ee7c2cf0..16ed7bf81c 100644 --- a/internal/npm_install/test/package/BUILD.bazel +++ b/internal/npm_install/test/package/BUILD.bazel @@ -1,15 +1,15 @@ # Generated file from yarn_install/npm_install rule. # See rules_nodejs/internal/npm_install/generate_build_file.ts -load("@build_bazel_rules_nodejs//internal/npm_install:node_module_library.bzl", "node_module_library") +load("@build_bazel_rules_nodejs//:index.bzl", "js_library") # All rules in other repositories can use these targets package(default_visibility = ["//visibility:public"]) -# The node_modules directory in one catch-all node_module_library. +# The node_modules directory in one catch-all js_library. # NB: Using this target may have bad performance implications if # there are many files in target. # See https://github.com/bazelbuild/bazel/issues/5153. -node_module_library( +js_library( name = "node_modules", ) diff --git a/internal/npm_version_check.js b/internal/npm_version_check.js index bee4e7822d..56cc035752 100644 --- a/internal/npm_version_check.js +++ b/internal/npm_version_check.js @@ -2,7 +2,7 @@ // Fetch the version of this package from its package.json const pkg = require('./package.json'); -const pkgVersion = pkg.version || '0.0.0'; +const pkgVersion = pkg.version ? pkg.version.split('-')[0] : '0.0.0'; // BUILD_BAZEL_RULES_NODEJS_VERSION is only set when within the bazel context const rulesVersion = process.env['BUILD_BAZEL_RULES_NODEJS_VERSION'] || '0.0.0'; @@ -18,4 +18,4 @@ if (rulesVersion !== '0.0.0' && pkgVersion !== '0.0.0' && ${pkg.name} - ${pkgVersion} @build_bazel_rules_nodejs - ${rulesVersion} See https://github.com/bazelbuild/rules_nodejs/wiki/Avoiding-version-skew`); -} \ No newline at end of file +} diff --git a/internal/pkg_npm/npm_script_generator.js b/internal/pkg_npm/npm_script_generator.js index 098e3d49d6..606510d189 100644 --- a/internal/pkg_npm/npm_script_generator.js +++ b/internal/pkg_npm/npm_script_generator.js @@ -23,15 +23,23 @@ const fs = require('fs'); function main(args) { - const [outDir, packPath, publishPath, runNpmTemplatePath] = args; - const npmTemplate = fs.readFileSync(runNpmTemplatePath, {encoding: 'utf-8'}); + const + [outDir, packPath, publishPath, runNpmTemplatePath, packBatPath, publishBatPath, + runNpmBatTemplatePath] = args; const cwd = process.cwd(); if (/[\//]sandbox[\//]/.test(cwd)) { console.error('Error: npm_script_generator must be run with no sandbox'); process.exit(1); } + + const npmTemplate = fs.readFileSync(runNpmTemplatePath, {encoding: 'utf-8'}); fs.writeFileSync(packPath, npmTemplate.replace('TMPL_args', `pack "${cwd}/${outDir}"`)); fs.writeFileSync(publishPath, npmTemplate.replace('TMPL_args', `publish "${cwd}/${outDir}"`)); + + const npmBatTemplate = fs.readFileSync(runNpmBatTemplatePath, {encoding: 'utf-8'}); + fs.writeFileSync(packBatPath, npmBatTemplate.replace('TMPL_args', `pack "${cwd}/${outDir}"`)); + fs.writeFileSync( + publishBatPath, npmBatTemplate.replace('TMPL_args', `publish "${cwd}/${outDir}"`)); } if (require.main === module) { diff --git a/internal/pkg_npm/packager.js b/internal/pkg_npm/packager.js index 95a593057f..0cde7a45ae 100644 --- a/internal/pkg_npm/packager.js +++ b/internal/pkg_npm/packager.js @@ -60,11 +60,29 @@ function unquoteArgs(s) { return s.replace(/^'(.*)'$/, '$1'); } +/** + * The status files are expected to look like + * BUILD_SCM_HASH 83c699db39cfd74526cdf9bebb75aa6f122908bb + * BUILD_SCM_LOCAL_CHANGES true + * STABLE_BUILD_SCM_VERSION 6.0.0-beta.6+12.sha-83c699d.with-local-changes + * BUILD_TIMESTAMP 1520021990506 + * + * @param {string} p the path to the status file + * @returns a two-dimensional array of key/value pairs + */ +function parseStatusFile(p) { + if (!p) return []; + return fs.readFileSync(p, {encoding: 'utf-8'}) + .split('\n') + .filter(t => !!t) + .map(t => t.split(' ')); +} + function main(args) { args = fs.readFileSync(args[0], {encoding: 'utf-8'}).split('\n').map(unquoteArgs); const [outDir, baseDir, srcsArg, binDir, genDir, depsArg, packagesArg, substitutionsArg, - replaceWithVersion, stampFile, vendorExternalArg] = args; + volatileFile, infoFile, vendorExternalArg] = args; const substitutions = [ // Strip content between BEGIN-INTERNAL / END-INTERNAL comments @@ -74,27 +92,27 @@ function main(args) { for (const key of Object.keys(rawReplacements)) { substitutions.push([new RegExp(key, 'g'), rawReplacements[key]]) } - // Replace version last so that earlier substitutions can add - // the version placeholder - if (replaceWithVersion) { - let version = '0.0.0'; - if (stampFile) { - // The stamp file is expected to look like - // BUILD_SCM_HASH 83c699db39cfd74526cdf9bebb75aa6f122908bb - // BUILD_SCM_LOCAL_CHANGES true - // BUILD_SCM_VERSION 6.0.0-beta.6+12.sha-83c699d.with-local-changes - // BUILD_TIMESTAMP 1520021990506 - // - // We want version to be the 6.0.0-beta... part - const versionTag = fs.readFileSync(stampFile, {encoding: 'utf-8'}) - .split('\n') - .find(s => s.startsWith('BUILD_SCM_VERSION')); - // Don't assume BUILD_SCM_VERSION exists - if (versionTag) { - version = versionTag.split(' ')[1].replace(/^v/, '').trim(); + // Replace statuses last so that earlier substitutions can add + // status-related placeholders + if (volatileFile || infoFile) { + const statusEntries = parseStatusFile(volatileFile) + statusEntries.push(...parseStatusFile(infoFile)) + // Looks like {'BUILD_SCM_VERSION': 'v1.2.3'} + const statuses = new Map(statusEntries) + for (let idx = 0; idx < substitutions.length; idx++) { + const match = substitutions[idx][1].match(/\{(.*)\}/); + if (!match) continue; + const statusKey = match[1]; + let statusValue = statuses.get(statusKey); + if (statusValue) { + // npm versions must be numeric, so if the VCS tag starts with leading 'v', strip it + // See https://github.com/bazelbuild/rules_nodejs/pull/1591 + if (statusKey.endsWith('_VERSION')) { + statusValue = statusValue.replace(/^v/, ''); + } + substitutions[idx][1] = statusValue; } } - substitutions.push([new RegExp(replaceWithVersion, 'g'), version]); } // src like baseDir/my/path is just copied to outDir/my/path diff --git a/internal/pkg_npm/pkg_npm.bzl b/internal/pkg_npm/pkg_npm.bzl index 21e0cda340..0e72366cec 100644 --- a/internal/pkg_npm/pkg_npm.bzl +++ b/internal/pkg_npm/pkg_npm.bzl @@ -6,7 +6,7 @@ If all users of your library code use Bazel, they should just add your library to the `deps` of one of their targets. """ -load("//:providers.bzl", "DeclarationInfo", "JSModuleInfo", "LinkablePackageInfo", "NodeContextInfo") +load("//:providers.bzl", "DeclarationInfo", "JSModuleInfo", "LinkablePackageInfo", "NODE_CONTEXT_ATTRS", "NodeContextInfo") _DOC = """The pkg_npm rule creates a directory containing a publishable npm artifact. @@ -73,7 +73,7 @@ You can pass arguments to npm by escaping them from Bazel using a double-hyphen, """ # Used in angular/angular /packages/bazel/src/ng_package/ng_package.bzl -PKG_NPM_ATTRS = { +PKG_NPM_ATTRS = dict(NODE_CONTEXT_ATTRS, **{ "deps": attr.label_list( doc = """Other targets which produce files that should be included in the package, such as `rollup_bundle`""", allow_files = True, @@ -82,17 +82,17 @@ PKG_NPM_ATTRS = { doc = """Other pkg_npm rules whose content is copied into this package.""", allow_files = True, ), - "node_context_data": attr.label( - default = "@build_bazel_rules_nodejs//internal:node_context_data", - providers = [NodeContextInfo], - doc = "Internal use only", - ), "package_name": attr.string( doc = """Optional package_name that this npm package may be imported as.""", ), "replace_with_version": attr.string( - doc = """If set this value is replaced with the version stamp data. - See the section on stamping in the README.""", + doc = """DEPRECATED: use substitutions instead. + +`replace_with_version = "my_version_placeholder"` is just syntax sugar for +`substitutions = {"my_version_placeholder": "{BUILD_SCM_VERSION}"}`. + +Follow this deprecation at https://github.com/bazelbuild/rules_nodejs/issues/2158 +""", default = "0.0.0-PLACEHOLDER", ), "srcs": attr.label_list( @@ -100,11 +100,17 @@ PKG_NPM_ATTRS = { allow_files = True, ), "substitutions": attr.string_dict( - doc = """Key-value pairs which are replaced in all the files while building the package.""", + doc = """Key-value pairs which are replaced in all the files while building the package. + +You can use values from the workspace status command using curly braces, for example +`{"0.0.0-PLACEHOLDER": "{STABLE_GIT_VERSION}"}`. + +See the section on stamping in the [README](stamping) +""", ), "vendor_external": attr.string_list( doc = """External workspaces whose contents should be vendored into this workspace. - Avoids 'external/foo' path segments in the resulting package.""", + Avoids `external/foo` path segments in the resulting package.""", ), "_npm_script_generator": attr.label( default = Label("//internal/pkg_npm:npm_script_generator"), @@ -116,16 +122,22 @@ PKG_NPM_ATTRS = { cfg = "host", executable = True, ), + "_run_npm_bat_template": attr.label( + default = Label("@nodejs//:run_npm.bat.template"), + allow_single_file = True, + ), "_run_npm_template": attr.label( default = Label("@nodejs//:run_npm.sh.template"), allow_single_file = True, ), -} +}) # Used in angular/angular /packages/bazel/src/ng_package/ng_package.bzl PKG_NPM_OUTPUTS = { - "pack": "%{name}.pack", - "publish": "%{name}.publish", + "pack_bat": "%{name}.pack.bat", + "pack_sh": "%{name}.pack.sh", + "publish_bat": "%{name}.publish.bat", + "publish_sh": "%{name}.publish.sh", } # Takes a depset of files and returns a corresponding list of file paths without any files @@ -184,7 +196,15 @@ def create_package(ctx, deps_files, nested_packages): # current package unless explicitely specified. filtered_deps_sources = _filter_out_external_files(ctx, deps_files, package_path) + # Back-compat for the replace_with_version stamping + # see https://github.com/bazelbuild/rules_nodejs/issues/2158 for removal + substitutions = dict(**ctx.attr.substitutions) + if stamp and ctx.attr.replace_with_version: + substitutions.setdefault(ctx.attr.replace_with_version, "{BUILD_SCM_VERSION}") + args = ctx.actions.args() + inputs = ctx.files.srcs + deps_files + nested_packages + args.use_param_file("%s", use_always = True) args.add(package_dir.path) args.add(package_path) @@ -193,19 +213,23 @@ def create_package(ctx, deps_files, nested_packages): args.add(ctx.genfiles_dir.path) args.add_joined(filtered_deps_sources, join_with = ",", omit_if_empty = False) args.add_joined([p.path for p in nested_packages], join_with = ",", omit_if_empty = False) - args.add(ctx.attr.substitutions) - args.add(ctx.attr.replace_with_version) - args.add(ctx.version_file.path if stamp else "") - args.add_joined(ctx.attr.vendor_external, join_with = ",", omit_if_empty = False) - - inputs = ctx.files.srcs + deps_files + nested_packages + args.add(substitutions) - # The version_file is an undocumented attribute of the ctx that lets us read the volatile-status.txt file - # produced by the --workspace_status_command. That command will be executed whenever - # this action runs, so we get the latest version info on each execution. - # See https://github.com/bazelbuild/bazel/issues/1054 if stamp: + # The version_file is an undocumented attribute of the ctx that lets us read the volatile-status.txt file + # produced by the --workspace_status_command. + # Similarly info_file reads the stable-status.txt file. + # That command will be executed whenever + # this action runs, so we get the latest version info on each execution. + # See https://github.com/bazelbuild/bazel/issues/1054 + args.add(ctx.version_file.path) inputs.append(ctx.version_file) + args.add(ctx.info_file.path) + inputs.append(ctx.info_file) + else: + args.add_all(["", ""]) + + args.add_joined(ctx.attr.vendor_external, join_with = ",", omit_if_empty = False) ctx.actions.run( progress_message = "Assembling npm package %s" % package_dir.short_path, @@ -222,19 +246,23 @@ def create_package(ctx, deps_files, nested_packages): def _create_npm_scripts(ctx, package_dir): args = ctx.actions.args() + args.add_all([ package_dir.path, - ctx.outputs.pack.path, - ctx.outputs.publish.path, + ctx.outputs.pack_sh.path, + ctx.outputs.publish_sh.path, ctx.file._run_npm_template.path, + ctx.outputs.pack_bat.path, + ctx.outputs.publish_bat.path, + ctx.file._run_npm_bat_template.path, ]) ctx.actions.run( progress_message = "Generating npm pack & publish scripts", mnemonic = "GenerateNpmScripts", executable = ctx.executable._npm_script_generator, - inputs = [ctx.file._run_npm_template, package_dir], - outputs = [ctx.outputs.pack, ctx.outputs.publish], + inputs = [ctx.file._run_npm_template, ctx.file._run_npm_bat_template, package_dir], + outputs = [ctx.outputs.pack_sh, ctx.outputs.publish_sh, ctx.outputs.pack_bat, ctx.outputs.publish_bat], arguments = [args], # Must be run local (no sandbox) so that the pwd is the actual execroot # in the script which is used to generate the path in the pack & publish @@ -289,3 +317,23 @@ pkg_npm = rule( doc = _DOC, outputs = PKG_NPM_OUTPUTS, ) + +def pkg_npm_macro(name, **kwargs): + pkg_npm( + name = name, + **kwargs + ) + native.alias( + name = name + ".pack", + actual = select({ + "@bazel_tools//src/conditions:host_windows": name + ".pack.bat", + "//conditions:default": name + ".pack.sh", + }), + ) + native.alias( + name = name + ".publish", + actual = select({ + "@bazel_tools//src/conditions:host_windows": name + ".publish.bat", + "//conditions:default": name + ".publish.sh", + }), + ) diff --git a/internal/pkg_npm/test/BUILD.bazel b/internal/pkg_npm/test/BUILD.bazel index 8d5c2353a4..a2dfe29e02 100644 --- a/internal/pkg_npm/test/BUILD.bazel +++ b/internal/pkg_npm/test/BUILD.bazel @@ -76,6 +76,32 @@ pkg_npm( srcs = [":rollup/bundle/subdirectory"], ) +genrule( + name = "gen_test_pkg_pack", + outs = [ + "test-pkg.tgz", + ], + cmd = "$(location :test_pkg.pack) && cp test-pkg-1.2.3.tgz $@", + tags = ["pkg_npm.pack"], + tools = [ + ":test_pkg.pack", + ], +) + +sh_test( + name = "test_pkg_pack", + srcs = ["diff_pack_dir.sh"], + args = [ + "$(location :gen_test_pkg_pack)", + "$(location :test_pkg)", + ], + data = [ + ":gen_test_pkg_pack", + ":test_pkg", + ], + tags = ["pkg_npm.pack"], +) + jasmine_node_test( name = "test", srcs = ["pkg_npm.spec.js"], diff --git a/internal/pkg_npm/test/diff_pack_dir.sh b/internal/pkg_npm/test/diff_pack_dir.sh new file mode 100755 index 0000000000..31bcf6700e --- /dev/null +++ b/internal/pkg_npm/test/diff_pack_dir.sh @@ -0,0 +1,25 @@ +archived=$1 +if [ -f "$archived" ]; then + echo "RUNFILES are supported in this OS" + # run files are supported (not windows os), we can read the + # input from arguments directly + rm -rf ./pack && mkdir ./pack + tar -xvzf $1 -C ./pack + diff -r ./pack/package $2 + if [ $? -ne 0 ]; then + echo "The directory was modified"; + exit 1 + fi +else + # runfiles are not supported in Windows, + # hard coding the test input for now + rm -rf ./pack && mkdir ./pack + tar -xvzf ../../test-pkg.tgz -C ./pack + diff ./pack/package ../../test_pkg + if [ $? -ne 0 ]; then + echo "The directory was modified"; + exit 1 + fi +fi + +exit 0 \ No newline at end of file diff --git a/internal/pkg_npm/test/linking/foo/BUILD.bazel b/internal/pkg_npm/test/linking/foo/BUILD.bazel index ae2ee734aa..560eb83c1f 100644 --- a/internal/pkg_npm/test/linking/foo/BUILD.bazel +++ b/internal/pkg_npm/test/linking/foo/BUILD.bazel @@ -1,5 +1,5 @@ load("@build_bazel_rules_nodejs//:index.bzl", "copy_to_bin", "pkg_npm") -load("//internal/js_library:js_library.bzl", "js_library") +load("//:index.bzl", "js_library") copy_to_bin( name = "foo_copy_to_bin", diff --git a/internal/pkg_npm/test/linking/foz/BUILD.bazel b/internal/pkg_npm/test/linking/foz/BUILD.bazel index bc10566b88..c27d03ec35 100644 --- a/internal/pkg_npm/test/linking/foz/BUILD.bazel +++ b/internal/pkg_npm/test/linking/foz/BUILD.bazel @@ -1,5 +1,5 @@ load("@build_bazel_rules_nodejs//:index.bzl", "copy_to_bin", "pkg_npm") -load("//internal/js_library:js_library.bzl", "js_library") +load("//:index.bzl", "js_library") copy_to_bin( name = "foz_copy_to_bin", diff --git a/internal/pkg_web/BUILD.bazel b/internal/pkg_web/BUILD.bazel index 6c13513f09..b0cfabca5e 100644 --- a/internal/pkg_web/BUILD.bazel +++ b/internal/pkg_web/BUILD.bazel @@ -21,7 +21,10 @@ filegroup( nodejs_binary( name = "assembler", - data = ["assembler.js"], + data = [ + "assembler.js", + "//third_party/github.com/gjtorikian/isBinaryFile", + ], entry_point = ":assembler.js", node_modules = ":node_modules_none", ) @@ -32,6 +35,7 @@ jasmine_node_test( srcs = ["assembler_spec.js"], deps = [ "assembler.js", + "//third_party/github.com/gjtorikian/isBinaryFile", ], ) diff --git a/internal/pkg_web/assembler.js b/internal/pkg_web/assembler.js index f167e3091b..5a0743915c 100644 --- a/internal/pkg_web/assembler.js +++ b/internal/pkg_web/assembler.js @@ -17,6 +17,7 @@ const fs = require('fs'); const path = require('path'); +const isBinary = require('isbinaryfile').isBinaryFileSync; /** * Create a new directory and any necessary subdirectories @@ -29,9 +30,58 @@ function mkdirp(p) { } } +function unquoteArgs(s) { + return s.replace(/^'(.*)'$/, '$1'); +} + +function getBazelStatusMappings(statusFilePath) { + if (!statusFilePath) return {}; + const stampFileLines = fs.readFileSync(statusFilePath, {encoding: 'utf-8'}).trim().split('\n'); + const stampMap = {}; + for (const line of stampFileLines) { + const [key, value] = line.split(' '); + stampMap[key] = value; + } + return stampMap; +} + +function normalizeSubstitutions(substitutionsArg, stampMap) { + const substitutions = JSON.parse(substitutionsArg); + + const normalizedSubstitutions = {}; + + for (const occurrence in substitutions) { + let substituteWith = substitutions[occurrence]; + if (substituteWith.match(/^{.*?}$/)) { + substituteWith = substituteWith.replace(/^{(.*?)}$/, '$1'); + if (!stampMap[substituteWith]) { + throw new Error(`Could not find ${substituteWith} key in status file.`); + } + substituteWith = stampMap[substituteWith]; + } + normalizedSubstitutions[occurrence] = substituteWith; + } + return normalizedSubstitutions; +} + function main(params) { const outdir = params.shift(); + const volatileFilePath = params.shift(); + + const stableFilePath = params.shift(); + + const rawSubstitutions = params.shift().replace(/^'(.*)'$/, '$1'); + + const stampMap = { + ...getBazelStatusMappings(volatileFilePath), + ...getBazelStatusMappings(stableFilePath), + }; + + const normalizedSubstitutions = normalizeSubstitutions(rawSubstitutions, stampMap) + + const substitutions = Object.entries(normalizedSubstitutions); + const rootDirs = []; while (params.length && params[0] !== '--assets') { let r = params.shift(); @@ -42,6 +92,7 @@ function main(params) { } // Always trim the longest prefix rootDirs.sort((a, b) => b.length - a.length); + params.shift(); // --assets function relative(execPath) { @@ -56,12 +107,20 @@ function main(params) { return execPath; } - function copy(f) { + function copy(f, substitutions) { if (fs.statSync(f).isDirectory()) { for (const file of fs.readdirSync(f)) { // Change paths to posix - copy(path.join(f, file).replace(/\\/g, '/')); + copy(path.join(f, file).replace(/\\/g, '/'), substitutions); } + } else if (!isBinary(f)) { + const dest = path.join(outdir, relative(f)); + let content = fs.readFileSync(f, {encoding: 'utf-8'}); + substitutions.forEach(([occurrence, replaceWith]) => { + content = content.replace(occurrence, replaceWith); + }); + fs.mkdirSync(path.dirname(dest), {recursive: true}); + fs.writeFileSync(dest, content); } else { const dest = path.join(outdir, relative(f)); mkdirp(path.dirname(dest)); @@ -75,7 +134,7 @@ function main(params) { // copied from within bazel-bin. // See https://github.com/bazelbuild/rules_nodejs/pull/546. for (const f of new Set(params)) { - copy(f); + copy(f, substitutions); } return 0; } @@ -85,6 +144,9 @@ module.exports = {main}; if (require.main === module) { // We always require the arguments are encoded into a flagfile // so that we don't exhaust the command-line limit. - const params = fs.readFileSync(process.argv[2], {encoding: 'utf-8'}).split('\n').filter(l => !!l); + const params = fs.readFileSync(process.argv[2], {encoding: 'utf-8'}) + .split('\n') + .filter(l => !!l) + .map(unquoteArgs); process.exitCode = main(params); } diff --git a/internal/pkg_web/assembler_spec.js b/internal/pkg_web/assembler_spec.js index d7ec606d91..87ed896a03 100644 --- a/internal/pkg_web/assembler_spec.js +++ b/internal/pkg_web/assembler_spec.js @@ -3,32 +3,54 @@ const path = require('path'); const fs = require('fs'); describe('assembler', () => { - const outdir = 'output'; - let testCount = 0; - beforeEach(() => { - const now = Date.now() + String(testCount++); - // prevent test isolation failures by running each spec in a separate dir - const uniqueDir = path.join(process.env['TEST_TMPDIR'], String(now)); - fs.mkdirSync(uniqueDir); - process.chdir(uniqueDir); - fs.mkdirSync('path'); - fs.mkdirSync('path/to'); - fs.writeFileSync('path/to/thing1.txt', 'some content', {encoding: 'utf-8'}); - }); + const outdir = 'output'; + const volatilePath = 'path/to/volatile-status.txt'; + const stablePath = 'path/to/stable-status.txt'; + let testCount = 0; + beforeEach(() => { + const now = Date.now() + String(testCount++); + // prevent test isolation failures by running each spec in a separate dir + const uniqueDir = path.join(process.env['TEST_TMPDIR'], String(now)); + fs.mkdirSync(uniqueDir); + process.chdir(uniqueDir); + fs.mkdirSync('path'); + fs.mkdirSync('path/to'); + fs.writeFileSync('path/to/thing1.txt', 'some content', {encoding: 'utf-8'}); + fs.writeFileSync(volatilePath, 'TEST_KEY 41561') + fs.writeFileSync(stablePath, 'STABLE_GIT_VERSION 123abc') + }); - it('should copy files', () => { - assembler.main([outdir, '--assets', 'path/to/thing1.txt']); - expect(fs.readdirSync('output/path/to')).toContain('thing1.txt'); - expect(fs.readFileSync('output/path/to/thing1.txt', {encoding: 'utf-8'})).toBe('some content'); - }); + it('should copy files', () => { + assembler.main([outdir, '', '', '{}', '--assets', 'path/to/thing1.txt']); + expect(fs.readdirSync('output/path/to')).toContain('thing1.txt'); + expect(fs.readFileSync('output/path/to/thing1.txt', {encoding: 'utf-8'})).toBe('some content'); + }); - it('should strip longest rootdir', () => { - assembler.main([outdir, 'path', 'path/to', '--assets', 'path/to/thing1.txt']); - expect(fs.readdirSync('output')).toContain('thing1.txt'); - }); + it('should strip longest rootdir', () => { + assembler.main([outdir, '', '', '{}', 'path', 'path/to', '--assets', 'path/to/thing1.txt']); + expect(fs.readdirSync('output')).toContain('thing1.txt'); + }); - it('should handle nested directories', () => { - assembler.main([outdir, 'path', '--assets', 'path/to']); - expect(fs.readdirSync('output/to')).toContain('thing1.txt'); - }); -}); \ No newline at end of file + it('should handle nested directories', () => { + assembler.main([outdir, '', '', '{}', 'path', '--assets', 'path/to']); + expect(fs.readdirSync('output/to')).toContain('thing1.txt'); + }); + + it('should replace contents with static text', () => { + assembler.main([ + outdir, '', '', '{"some content":"some other content"}', '--assets', 'path/to/thing1.txt' + ]); + expect(fs.readFileSync('output/path/to/thing1.txt', { + encoding: 'utf-8' + })).toBe('some other content'); + }) + + + it('should replace contents with dynamic text from Bazel workspace status', () => { + assembler.main([ + outdir, volatilePath, stablePath, '{"some":"{STABLE_GIT_VERSION}", "content":"{TEST_KEY}"}', + '--assets', 'path/to/thing1.txt' + ]); + expect(fs.readFileSync('output/path/to/thing1.txt', {encoding: 'utf-8'})).toBe('123abc 41561'); + }) +}); diff --git a/internal/pkg_web/pkg_web.bzl b/internal/pkg_web/pkg_web.bzl index d36929411c..9dcee743dd 100644 --- a/internal/pkg_web/pkg_web.bzl +++ b/internal/pkg_web/pkg_web.bzl @@ -15,9 +15,11 @@ """Contains the pkg_web rule. """ +load("//:providers.bzl", "NODE_CONTEXT_ATTRS", "NodeContextInfo") + _DOC = """Assembles a web application from source files.""" -_ATTRS = { +_ATTRS = dict(NODE_CONTEXT_ATTRS, **{ "additional_root_paths": attr.string_list( doc = """Path prefixes to strip off all srcs, in addition to the current package. Longest wins.""", ), @@ -25,20 +27,32 @@ _ATTRS = { allow_files = True, doc = """Files which should be copied into the package""", ), + "substitutions": attr.string_dict( + doc = """Key-value pairs which are replaced in all the files while building the package. + +You can use values from the workspace status command using curly braces, for example +`{"0.0.0-PLACEHOLDER": "{STABLE_GIT_VERSION}"}`. +See the section on stamping in the README.""", + ), "_assembler": attr.label( default = "@build_bazel_rules_nodejs//internal/pkg_web:assembler", executable = True, cfg = "host", ), -} +}) -def move_files(output_name, files, action_factory, var, assembler, root_paths): +def move_files(output_name, substitutions, version_file, info_file, stamp, files, action_factory, var, assembler, root_paths): """Moves files into an output directory Args: output_name: The name of the output directory + substitutions: key/value pairs to replace + version_file: bazel-out/volatile-status.txt + info_file: bazel-out/stable-status.txt + stamp: whether the build is performed with --stamp files: The files to move action_factory: Bazel's actions module from ctx.actions - see https://docs.bazel.build/versions/master/skylark/lib/actions.html + var: environment variables assembler: The assembler executable root_paths: Path prefixes to strip off all srcs. Longest wins. @@ -47,13 +61,23 @@ def move_files(output_name, files, action_factory, var, assembler, root_paths): """ www_dir = action_factory.declare_directory(output_name) args = action_factory.args() + inputs = files[:] args.add(www_dir.path) + if stamp: + args.add(version_file.path) + inputs.append(version_file) + args.add(info_file.path) + inputs.append(info_file) + else: + args.add_all(["", ""]) + args.add(substitutions) args.add_all(root_paths) args.add("--assets") args.add_all([f.path for f in files]) args.use_param_file("%s", use_always = True) + action_factory.run( - inputs = files, + inputs = inputs, outputs = [www_dir], executable = assembler, arguments = [args], @@ -86,9 +110,12 @@ def additional_root_paths(ctx): def _impl(ctx): root_paths = additional_root_paths(ctx) - package_layout = move_files( ctx.label.name, + ctx.attr.substitutions, + ctx.version_file, + ctx.info_file, + ctx.attr.node_context_data[NodeContextInfo].stamp, ctx.files.srcs, ctx.actions, ctx.var, diff --git a/internal/pkg_web/test/BUILD.bazel b/internal/pkg_web/test/BUILD.bazel index dd245e8d8e..30ca257758 100644 --- a/internal/pkg_web/test/BUILD.bazel +++ b/internal/pkg_web/test/BUILD.bazel @@ -1,5 +1,6 @@ load("@build_bazel_rules_nodejs//:index.bzl", "pkg_web") load("@npm//@babel/cli:index.bzl", "babel") +load("//internal/node:context.bzl", "node_context_data") load("//packages/jasmine:index.bzl", "jasmine_node_test") load("//packages/rollup:index.bzl", "rollup_bundle") load("//packages/terser:index.bzl", "terser_minified") @@ -62,6 +63,11 @@ terser_minified( debug = True, ) +node_context_data( + name = "force_stamp", + stamp = True, +) + pkg_web( name = "pkg", srcs = [ @@ -73,16 +79,14 @@ pkg_web( ":bundle.min_debug", ":bundle.min_debug.es2015", ], + node_context_data = ":force_stamp", + substitutions = { + "${version}": "{BUILD_SCM_VERSION}", + }, ) jasmine_node_test( name = "test", srcs = ["spec.js"], - data = [ - "index_golden.html_", - ":pkg", - ], - tags = [ - "fix-windows", - ], + data = [":pkg"], ) diff --git a/internal/pkg_web/test/index_golden.html_ b/internal/pkg_web/test/index_golden.html_ deleted file mode 100644 index 18ecdcb795..0000000000 --- a/internal/pkg_web/test/index_golden.html_ +++ /dev/null @@ -1 +0,0 @@ - diff --git a/internal/pkg_web/test/script.ts b/internal/pkg_web/test/script.ts index fea48a2e44..1f0522f354 100644 --- a/internal/pkg_web/test/script.ts +++ b/internal/pkg_web/test/script.ts @@ -1,4 +1,5 @@ const el = document.createElement('div'); -const text: string = 'Hello, World'; +const version = '0.0.0-PLACEHOLDER'; +const text: string = `Hello, World v${version}`; el.innerText = text; document.body.appendChild(el); diff --git a/internal/pkg_web/test/spec.js b/internal/pkg_web/test/spec.js index 260c09a7c9..4b5a2c3a9d 100644 --- a/internal/pkg_web/test/spec.js +++ b/internal/pkg_web/test/spec.js @@ -1,15 +1,29 @@ const fs = require('fs'); const path = require('path'); +const runfiles = require(process.env['BAZEL_NODE_RUNFILES_HELPER']); + +process.chdir(runfiles.resolveWorkspaceRelative('internal/pkg_web/test/pkg')); -process.chdir(path.join(process.env['TEST_SRCDIR'], 'build_bazel_rules_nodejs')); -console.error(fs.readdirSync('.')); describe('pkg_web', () => { - it('should match the golden file', () => { - const output = 'build_bazel_rules_nodejs/internal/pkg_web/test/pkg/index.html'; - const golden = 'build_bazel_rules_nodejs/internal/pkg_web/test/index_golden.html_'; - const actual = fs.readFileSync(require.resolve(output), {encoding: 'utf-8'}); - const expected = fs.readFileSync(require.resolve(golden), {encoding: 'utf-8'}); - // make the input hermetic by replacing the cache-buster timestamp - expect(actual.replace(/\?v=\d+/g, '?v=123')).toBe(expected); + it('should have the right contents', () => { + expect(fs.readdirSync('.')).toEqual([ + 'bundle.es2015.js', + 'bundle.es2015.js.map', + 'bundle.js', + 'bundle.js.map', + 'bundle.min.es2015.js', + 'bundle.min.es2015.js.map', + 'bundle.min.js', + 'bundle.min.js.map', + 'bundle.min_debug.es2015.js', + 'bundle.min_debug.es2015.js.map', + 'bundle.min_debug.js', + 'bundle.min_debug.js.map', + 'index.html', + ]); + }); + + it('should replace stamp info', () => { + expect(fs.readFileSync('bundle.js', 'utf-8')).toContain('v1.2.3'); }); }); diff --git a/internal/providers/linkable_package_info.bzl b/internal/providers/linkable_package_info.bzl index dc821c17bf..9f265d6ddd 100644 --- a/internal/providers/linkable_package_info.bzl +++ b/internal/providers/linkable_package_info.bzl @@ -29,13 +29,13 @@ In the future, the linker may validate that the names match the name in a packag Path must be relative to execroot/wksp. It can either an output dir path such as, -'bazel-out/-/bin/path/to/package' or -'bazel-out/-/bin/external//path/to/package' +`bazel-out/-/bin/path/to/package` or +`bazel-out/-/bin/external/external_wksp>/path/to/package` or a source file path such as, -'path/to/package' or -'external//path/to/package' +`path/to/package` or +`external//path/to/package` """, "_tslibrary": "For internal use only", }, diff --git a/internal/providers/node_runtime_deps_info.bzl b/internal/providers/node_runtime_deps_info.bzl index 4c94d9b525..e08fef2bb8 100644 --- a/internal/providers/node_runtime_deps_info.bzl +++ b/internal/providers/node_runtime_deps_info.bzl @@ -66,6 +66,9 @@ def run_node(ctx, inputs, arguments, executable, **kwargs): inputs: list or depset of inputs to the action arguments: list or ctx.actions.Args object containing arguments to pass to the executable executable: stringy representation of the executable this action will run, eg eg. "my_executable" rather than ctx.executable.my_executable + mnemonic: optional action mnemonic, used to differentiate module mapping files from the same rule context + link_workspace_root: Link the workspace root to the bin_dir to support absolute requires like 'my_wksp/path/to/file'. + If source files need to be required then they can be copied to the bin_dir with copy_to_bin. kwargs: all other args accepted by ctx.actions.run """ if (type(executable) != "string"): @@ -82,8 +85,15 @@ def run_node(ctx, inputs, arguments, executable, **kwargs): extra_inputs = exec_attr[NodeRuntimeDepsInfo].deps link_data = exec_attr[NodeRuntimeDepsInfo].pkgs + # NB: mnemonic is also passed to ctx.actions.run below mnemonic = kwargs.get("mnemonic") - modules_manifest = write_node_modules_manifest(ctx, link_data, mnemonic) + link_workspace_root = kwargs.pop("link_workspace_root", False) + modules_manifest = write_node_modules_manifest( + ctx, + extra_data = link_data, + mnemonic = mnemonic, + link_workspace_root = link_workspace_root, + ) add_arg(arguments, "--bazel_node_modules_manifest=%s" % modules_manifest.path) stdout_file = kwargs.pop("stdout", None) diff --git a/internal/providers/npm_package_info.bzl b/internal/providers/npm_package_info.bzl index f1967af5e9..f5749bac2b 100644 --- a/internal/providers/npm_package_info.bzl +++ b/internal/providers/npm_package_info.bzl @@ -16,8 +16,8 @@ """ # NpmPackageInfo provider is provided by targets that are npm dependencies by the -# `node_module_library` rule as well as other targets that have direct or transitive deps on -# `node_module_library` targets via the `node_modules_aspect` below. +# `js_library` rule as well as other targets that have direct or transitive deps on +# `js_library` targets via the `node_modules_aspect` below. NpmPackageInfo = provider( doc = "Provides information about npm dependencies", fields = { diff --git a/package.bzl b/package.bzl index e156f47367..3f36ef8e9a 100644 --- a/package.bzl +++ b/package.bzl @@ -56,13 +56,11 @@ def rules_nodejs_dev_dependencies(): _maybe( http_archive, name = "io_bazel_stardoc", - # Workaround for https://github.com/bazelbuild/stardoc/issues/43 - patches = ["@build_bazel_rules_nodejs//:stardoc.patch"], - sha256 = "6d07d18c15abb0f6d393adbd6075cd661a2219faab56a9517741f0fc755f6f3c", - strip_prefix = "stardoc-0.4.0", + sha256 = "04612d977b98896b5e0d3404b2aecf131d63a89fb5117640bf93f8158a647cdc", + strip_prefix = "stardoc-e25bed3afae3ad494ffc15759749ba3b3d979747", urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/stardoc/archive/0.4.0.tar.gz", - "https://github.com/bazelbuild/stardoc/archive/0.4.0.tar.gz", + # TODO: switch back to upstream after bazelbuild/bazel#12286 is merged and available in a stardoc release + "https://github.com/alexeagle/stardoc/archive/e25bed3afae3ad494ffc15759749ba3b3d979747.tar.gz", ], ) @@ -129,6 +127,7 @@ def rules_nodejs_dev_dependencies(): "@build_bazel_rules_nodejs//:rules_typescript_pr_494.patch", "@build_bazel_rules_nodejs//:rules_typescript_pr_496.patch", "@build_bazel_rules_nodejs//:rules_typescript_pr_499.patch", + "@build_bazel_rules_nodejs//:rules_typescript_pr_508.patch", ], remote = "http://github.com/bazelbuild/rules_typescript.git", shallow_since = "1582757372 -0800", diff --git a/package.json b/package.json index 50b3f6d447..3300a15252 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@bazel/javascript", "description": "Build JavaScript with Bazel", - "version": "2.0.1", + "version": "2.3.1", "keywords": [ "javascript", "bazel" @@ -10,7 +10,7 @@ "repository": "https://github.com/bazelbuild/rules_nodejs", "license": "Apache-2.0", "engines": { - "node": ">=12.0.0 < 13", + "node": ">=12 <=14", "yarn": ">=1.13.0" }, "devDependencies": { @@ -73,11 +73,11 @@ "protobufjs": "6.8.8", "protractor": "^5.4.2", "requirejs": "2.3.6", - "rollup": "1.3.1", - "rollup-plugin-amd": "3.0.0", - "rollup-plugin-commonjs": "9.3.4", - "rollup-plugin-json": "4.0.0", - "rollup-plugin-node-resolve": "4.2.4", + "rollup": "2.3.4", + "rollup-plugin-amd": "4.0.0", + "@rollup/plugin-commonjs": "14.0.0", + "@rollup/plugin-json": "4.1.0", + "@rollup/plugin-node-resolve": "8.4.0", "rxjs": "^6.5.2", "semver": "5.6.0", "shelljs": "0.8.3", @@ -125,9 +125,10 @@ "// See comment in .bazelrc": "", "bazel:update-deleted-packages": "sed -i.bak \"/--deleted_packages/s#=.*#=$(find {examples,e2e}/*/* \\( -name BUILD -or -name BUILD.bazel \\) | xargs -n 1 dirname | paste -sd, -)#\" .bazelrc && rm .bazelrc.bak", "update-codeowners": "./scripts/update_codeowners.sh", + "update-nodejs-versions": "node ./scripts/update-nodejs-versions.js > internal/node/node_versions.bzl", "format": "git-clang-format", "format-all": "clang-format --glob='{internal/**/,examples/**/}*.{js,ts}' -i", - "stardoc": "bazel build //docs && cp -f dist/bin/docs/*.md docs", + "stardoc": "bazel build --noincompatible_strict_action_env //docs && cp -f dist/bin/docs/*.md ./docs && cp -f dist/bin/docs/docs-out/*.html ./docs && cp -f dist/bin/docs/docs-out/css/*.css ./docs/css", "version": "conventional-changelog -p angular -i CHANGELOG.md -s && node ./scripts/on-version.js && bazel build //:release && node ./scripts/on-release.js && git stage version.bzl docs/install.md packages/create/index.js README.md CHANGELOG.md e2e/*/WORKSPACE examples/*/WORKSPACE", "postinstall": "patch-package && node internal/npm_install/test/postinstall.js" }, diff --git a/packages/angular/README.md b/packages/angular/README.md index b64b059d47..29d1c4e9dc 100644 --- a/packages/angular/README.md +++ b/packages/angular/README.md @@ -22,8 +22,9 @@ Then edit your `angular.json` to invoke Bazel. For example, to have `ng build` d "build": { "builder": "@bazel/angular:build", "options": { - "targetLabel": "//:all", - "bazelCommand": "build" + "targetLabel": "//:all", + "bazelCommand": "build" + } } } ``` diff --git a/packages/create/index.js b/packages/create/index.js index 1ad49bc193..a45be9b225 100644 --- a/packages/create/index.js +++ b/packages/create/index.js @@ -157,8 +157,8 @@ workspace( load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_nodejs", - sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.1/rules_nodejs-2.0.1.tar.gz"], + sha256 = "121f17d8b421ce72f3376431c3461cd66bfe14de49059edc7bb008d5aebd16be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.3.1/rules_nodejs-2.3.1.tar.gz"], ) ${pkgMgr === 'yarn' ? yarnInstallCmd : npmInstallCmd}`; diff --git a/packages/cypress/BUILD.bazel b/packages/cypress/BUILD.bazel index ef7b3dc563..6e8170242f 100644 --- a/packages/cypress/BUILD.bazel +++ b/packages/cypress/BUILD.bazel @@ -76,8 +76,8 @@ pkg_npm( srcs = [ "index.bzl", "package.json", - "//packages/cypress:internal/cypress-install.js", "//packages/cypress:internal/cypress_repository.bzl", + "//packages/cypress:internal/install-cypress.js", "//packages/cypress:internal/plugins/base.js", "//packages/cypress:internal/plugins/index.template.js", "//packages/cypress:internal/run-cypress.js", @@ -90,12 +90,12 @@ pkg_npm( "plugins/base.js", ])""", substitutions = { - "@build_bazel_rules_nodejs//packages/cypress:internal/cypress-install.js": "TEMPLATED_node_modules_workspace_name//@bazel/cypress:internal/cypress-install.js", "@build_bazel_rules_nodejs//packages/cypress:internal/cypress_repository.bzl": "//packages/cypress:internal/cypress_repository.bzl", + "@build_bazel_rules_nodejs//packages/cypress:internal/install-cypress.js": "TEMPLATED_node_modules_workspace_name//@bazel/cypress:internal/install-cypress.js", "@build_bazel_rules_nodejs//packages/cypress:internal/plugins/base.js": "TEMPLATED_node_modules_workspace_name//@bazel/cypress:internal/plugins/base.js", "@build_bazel_rules_nodejs//packages/cypress:internal/plugins/index.template.js": "TEMPLATED_node_modules_workspace_name//@bazel/cypress:internal/plugins/index.template.js", "@build_bazel_rules_nodejs//packages/cypress:internal/run-cypress.js": "TEMPLATED_node_modules_workspace_name//@bazel/cypress:internal/run-cypress.js", - "\\${cwd}/../cypress_deps/node_modules/@cypress/browserify-preprocessor/index": "@cypress/browserify-preprocessor", + "TEMPLATED_node_modules_workspace_name//tar": "TEMPLATED_node_modules_workspace_name//@bazel/cypress", }, deps = [ ":npm_version_check", diff --git a/packages/cypress/install.md b/packages/cypress/install.md index 2f65fa44cd..d85407c4d8 100644 --- a/packages/cypress/install.md +++ b/packages/cypress/install.md @@ -4,14 +4,14 @@ The Cypress rules run tests under the Cypress e2e testing framework with Bazel. ## Installation -Add `@bazel/cypress`, `cypress` and `@cypress/browserify-preprocessor` npm packages to your `devDependencies` in `package.json`. +Add `@bazel/cypress` and `cypress` npm packages to your `devDependencies` in `package.json`. ``` -npm install --save-dev @bazel/cypress cypress @cypress/browserify-preprocessor +npm install --save-dev @bazel/cypress cypress ``` or using yarn ``` -yarn add -D @bazel/cypress cypress @cypress/browserify-preprocessor +yarn add -D @bazel/cypress cypress ``` Then, load and invoke `cypress_repository` within your `WORKSPACE` file. @@ -36,7 +36,7 @@ build --experimental_inprocess_symlink_creation At this point in time, `cypress_repository` is incompatible with bazel sandboxing on Windows. This may change in the future, but for now using cypress on windows requires windows sandboxing be disabled (it is disabled by default) ## Example use of cypress_web_test -This example assumes you've named your external repository for node_modules as `npm` and for cypress as `cypress` +This example assumes you've named your external repository for node_modules as `npm` and for cypress as `cypress` ```python load("@cypress//:index.bzl", "cypress_web_test") load("@npm//@bazel/typescript:index.bzl", "ts_library") @@ -80,4 +80,4 @@ cypress_web_test( # Your cypress plugin used to configure cypress and boot your server plugins_file = ":plugins_file", ) -``` \ No newline at end of file +``` diff --git a/packages/cypress/internal/cypress_repository.bzl b/packages/cypress/internal/cypress_repository.bzl index c767cc15d8..6eacf8fcd1 100644 --- a/packages/cypress/internal/cypress_repository.bzl +++ b/packages/cypress/internal/cypress_repository.bzl @@ -20,10 +20,16 @@ load("@build_bazel_rules_nodejs//internal/node:node_labels.bzl", "get_node_label def _cypress_repository_impl(repository_ctx): node = repository_ctx.path(get_node_label(repository_ctx)) - cypress_install = "packages/cypress/internal/cypress-install.js" + install_cypress = "packages/cypress/internal/install-cypress.js" repository_ctx.template( - cypress_install, - repository_ctx.path(repository_ctx.attr._cypress_install), + install_cypress, + repository_ctx.path(repository_ctx.attr._install_cypress), + {}, + ) + + repository_ctx.template( + "plugins/base.js", + repository_ctx.path(repository_ctx.attr._base_plugin), {}, ) @@ -36,10 +42,13 @@ def _cypress_repository_impl(repository_ctx): ) exec_result = repository_ctx.execute( - [node, cypress_install, repository_ctx.path(repository_ctx.attr.cypress_bin)], + [node, install_cypress, repository_ctx.path(repository_ctx.attr.cypress_bin)], quiet = repository_ctx.attr.quiet, ) + if exec_result.return_code != 0 and repository_ctx.attr.fail_on_error: + fail("\ncypress_repository exited with code: {}\n\nstdout:\n{}\n\nstderr:\n{}\n\n".format(exec_result.return_code, exec_result.stdout, exec_result.stderr)) + cypress_repository = repository_rule( implementation = _cypress_repository_impl, attrs = { @@ -48,17 +57,25 @@ cypress_repository = repository_rule( allow_single_file = True, default = "@npm//:node_modules/cypress/bin/cypress", ), + "fail_on_error": attr.bool( + default = True, + doc = "If the repository rule should allow errors", + ), "quiet": attr.bool( default = True, doc = "If stdout and stderr should be printed to the terminal", ), - "_cypress_install": attr.label( + "_base_plugin": attr.label( allow_single_file = True, - default = "//packages/cypress:internal/cypress-install.js", + default = "//packages/cypress:internal/plugins/base.js", ), "_cypress_web_test": attr.label( allow_single_file = True, default = "//packages/cypress:internal/template.cypress_web_test.bzl", ), + "_install_cypress": attr.label( + allow_single_file = True, + default = "//packages/cypress:internal/install-cypress.js", + ), }, ) diff --git a/packages/cypress/internal/cypress-install.js b/packages/cypress/internal/install-cypress.js similarity index 53% rename from packages/cypress/internal/cypress-install.js rename to packages/cypress/internal/install-cypress.js index 8d52c3b8f4..7ff7feeb46 100644 --- a/packages/cypress/internal/cypress-install.js +++ b/packages/cypress/internal/install-cypress.js @@ -1,5 +1,5 @@ /** - * cypress-install is responsible for creating an external repository from which a cypress_web_test + * install-cypress is responsible for creating an external repository from which a cypress_web_test * can be loaded. The script invokes `cypress install` to download and install the cypress binary * and subsequently calls cypress verify to ensure the binary is runnable. * @@ -9,31 +9,42 @@ * repository rule while the file system remains read/write. */ -const {spawnSync, spawn} = require('child_process'); -const {readdirSync, statSync, writeFileSync, mkdirSync} = require('fs'); +const {spawnSync} = require('child_process'); +const {readdirSync, statSync, writeFileSync, mkdirSync, createWriteStream} = require('fs'); const { join, basename, relative, dirname, } = require('path'); + const nodePath = process.argv[1]; const cwd = process.cwd(); const cypressBin = process.argv[2]; -// Sandboxing doesn't work on windows, so we can just use the global cypress cache. -if (process.platform === 'win32') { - installGlobalCypressCache(); - process.exit(0); -} +const nodeModulesPath = join(cypressBin.split('node_modules')[0], 'node_modules'); +const tar = require(require.resolve('tar', { + paths: [ + join(nodeModulesPath, '@bazel', 'cypress', 'node_modules'), + nodeModulesPath, + ] +})); + +async function main() { + // Sandboxing doesn't work on windows, so we can just use the global cypress cache. + if (process.platform === 'win32') { + installGlobalCypressCache(); + process.exit(0); + } -// Attempt to install the cypress cache within the bazel sandbox and fallback to a global cypress -// cache as a last resort. -try { - installSandboxedCypressCache() -} catch (e) { - console.error('ERROR', e); - installGlobalCypressCache(); + // Attempt to install the cypress cache within the bazel sandbox and fallback to a global cypress + // cache as a last resort. + try { + await installSandboxedCypressCache() + } catch (e) { + console.error('ERROR', e); + installGlobalCypressCache(); + } } function installGlobalCypressCache() { @@ -47,7 +58,12 @@ exports_files([ _cypress_web_test = "cypress_web_test_global_cache", ) cypress_web_test = _cypress_web_test`) + + const env = { + PATH: `${dirname(nodePath)}:${process.env.PATH}`, + }; const spawnOptions = { + env, stdio: [process.stdin, process.stdout, process.stderr], shell: process.env.SHELL }; @@ -65,12 +81,13 @@ cypress_web_test = _cypress_web_test`) } -function installSandboxedCypressCache() { - mkdirSync(join(cwd, 'cypress-cache')) +async function installSandboxedCypressCache() { + mkdirSync(join(cwd, 'cypress-install')) const env = { - CYPRESS_CACHE_FOLDER: join(cwd, 'cypress-cache'), + CYPRESS_CACHE_FOLDER: join(cwd, 'cypress-install'), PATH: `${dirname(nodePath)}:${process.env.PATH}`, + DEBUG: 'cypress:*' } const spawnOptions = @@ -91,9 +108,7 @@ function installSandboxedCypressCache() { }; let CYPRESS_RUN_BINARY; - const cacheFiles = []; walkDir(env.CYPRESS_CACHE_FOLDER, (filePath) => { - cacheFiles.push(filePath); if (basename(filePath) === 'Cypress') { if (CYPRESS_RUN_BINARY) { throw new Error(`More than one cypress executable found: ${CYPRESS_RUN_BINARY} ${filePath}`) @@ -107,20 +122,32 @@ function installSandboxedCypressCache() { throw new Error(`No cypress executable found.`); } - const verify = spawnSync(`${cypressBin}`, ['verify'], spawnOptions); + spawnOptions.env.CYPRESS_RUN_BINARY = CYPRESS_RUN_BINARY; + + const verify = spawnSync(cypressBin, ['verify'], spawnOptions); if (verify.status !== 0) { throw new Error(`cypress verify failed`); } + writeFileSync(join(env.CYPRESS_CACHE_FOLDER, 'bazel_cypress.json'), JSON.stringify({ + cypressExecutable: relative(cwd, CYPRESS_RUN_BINARY), + })); + + const cacheFiles = []; + walkDir(env.CYPRESS_CACHE_FOLDER, (filePath) => { + cacheFiles.push(relative(cwd, filePath)); + }); + + const archiveName = 'cypress.archive'; + await createCypressArchive(cacheFiles, join(cwd, archiveName)); + writeFileSync('index.bzl', `load( "//:packages/cypress/internal/cypress_web_test.bzl", _cypress_web_test = "cypress_web_test", ) cypress_web_test = _cypress_web_test`) - writeFileSync( - 'BUILD.bazel', - ` + writeFileSync('BUILD.bazel', ` package(default_visibility = ["//visibility:public"]) exports_files([ @@ -129,62 +156,32 @@ exports_files([ ]) filegroup( - name = "cypress_cache", - srcs = ${ - process.platform === 'darwin' ? - // On mac we are required to include cache files including spaces. These can only be - // included using a glob. - 'glob(["cypress-cache/**/*"]),' : - // On unix the only no files containing spaces are required to run cypress. - ` [ - ${ - cacheFiles.filter(f => !f.includes(' ')) - .map(f => `"${relative(cwd, f)}"`) - .join(',\n ')} - ]`} -) - -filegroup( - name = "cypress_executable", - srcs = ["${relative(cwd, CYPRESS_RUN_BINARY)}"] + name = "cypress_archive", + srcs = ["${relative(cwd, archiveName)}"], ) `.trim()) +} +function createCypressArchive(cypressFiles, archiveName) { + return new Promise((resolve, reject) => { + const writeStream = createWriteStream(archiveName); + + tar.create( + { + gzip: false, + portable: true, + noMtime: true, + }, + cypressFiles) + .pipe(writeStream) + .on('finish', (err) => { + if (err) { + return reject(err); + } + + return resolve(); + }) + }); +} - // On mac, the first run of cypress requires write access to the filesystem. - if (process.platform === 'darwin') { - const http = require('http'); - const server = http.createServer((_request, response) => { - response.writeHead(200, {'Content-Type': 'text/html'}); - response.write('hello-world\n'); - response.end(); - }) - .listen(0, '127.0.0.1'); - server.on('listening', () => { - const baseUrl = `http://127.0.0.1:${server.address().port}`; - writeFileSync( - 'cypress.json', JSON.stringify({baseUrl, 'integrationFolder': cwd, video: false})) - writeFileSync('spec.js', ` - describe('hello', () => { - it('should find hello', () => { - cy.visit('${baseUrl}'); - - cy.contains('hello'); - }); - }); - `) - - - spawn( - `${cypressBin}`, ['run', '--config-file=cypress.json', '--headless', '--spec=spec.js'], - spawnOptions) - .on('exit', (code) => { - server.close(); - - if (code !== 0) { - throw new Error('Failed to perform a dry-run of cypress') - } - }) - }) - } -} \ No newline at end of file +main() \ No newline at end of file diff --git a/packages/cypress/internal/plugins/index.template.js b/packages/cypress/internal/plugins/index.template.js index 0f403dd581..ea3d199fa1 100644 --- a/packages/cypress/internal/plugins/index.template.js +++ b/packages/cypress/internal/plugins/index.template.js @@ -1,5 +1,4 @@ -const fs = require('fs'); -const {join, basename, normalize} = require('path'); +const {join} = require('path'); const basePluginShortPath = 'TEMPLATED_pluginsFile'; const integrationFileShortPaths = TEMPLATED_integrationFileShortPaths; @@ -8,35 +7,21 @@ const runfiles = require(process.env['BAZEL_NODE_RUNFILES_HELPER']); const basePlugin = require(runfiles.resolveWorkspaceRelative(basePluginShortPath)); const cwd = process.cwd(); -const browserifyFactory = require(normalize(`TEMPLATED_@cypress/browserify-preprocessor`)); -const browserify = browserifyFactory(browserifyFactory.defaultOptions); - module.exports = (on, config) => { - // Load in the user's cypress plugin - config = basePlugin(on, config); + // Set env variables needed usually set by for `bazel test` invocations + // (they are not set automatically for `bazel run`). + process.env.RUNFILES_DIR = process.env.RUNFILES_DIR || join(cwd, '../'); + process.env.RUNFILES_MANIFEST_FILE = + process.env.RUNFILES_MANIFEST_FILE || join(cwd, '../', 'MANIFEST'); // Set test files to tests passed as `srcs` config.integrationFolder = cwd; config.testFiles = integrationFileShortPaths; - // Set screenshots folder to a writable directory - const screenshotsFolder = join(process.env['TEST_UNDECLARED_OUTPUTS_DIR'], 'screenshots'); - fs.mkdirSync(screenshotsFolder); - config.screenshotsFolder = screenshotsFolder; - - // Set videos folder to a writable directory - const videosFolder = join(process.env['TEST_UNDECLARED_OUTPUTS_DIR'], 'videos'); - fs.mkdirSync(videosFolder); - config.videosFolder = videosFolder; + // Set screenshots/videos folder to a writable directory + config.screenshotsFolder = process.env['TEST_UNDECLARED_OUTPUTS_DIR'] || process.env.RUNFILES_DIR; + config.videosFolder = process.env['TEST_UNDECLARED_OUTPUTS_DIR'] || process.env.RUNFILES_DIR; - // Chrome sandboxing must be disabled for execution during bazel test. - config.chromeWebSecurity = false; - - // Set file preprocessing output path to writable directory. - on('file:preprocessor', (file) => { - file.outputPath = join(process.env['TEST_UNDECLARED_OUTPUTS_DIR'], basename(file.outputPath)); - return browserify(file); - }); - - return config; + // Load in the user's cypress plugin + return basePlugin(on, config); }; diff --git a/packages/cypress/internal/run-cypress.js b/packages/cypress/internal/run-cypress.js index cab1cb579a..e6b562f0c8 100644 --- a/packages/cypress/internal/run-cypress.js +++ b/packages/cypress/internal/run-cypress.js @@ -1,21 +1,22 @@ const runfiles = require(process.env['BAZEL_NODE_RUNFILES_HELPER']); const init = require('cypress/lib/cli').init; const {join} = require('path'); +const {readFileSync} = require('fs'); -const [node, entry, configFilePath, pluginsFilePath, cypressExecutable, ...args] = process.argv; - -if (cypressExecutable) { - process.env.CYPRESS_RUN_BINARY = - join(process.cwd(), cypressExecutable.replace('external/', '../')); -} - -console.log(process.argv); - +const [node, entry, configFilePath, pluginsFilePath, cypressTarPath, cypressBin, ...args] = + process.argv; const pluginsFile = runfiles.resolveWorkspaceRelative(pluginsFilePath).replace(process.cwd(), '.'); const configFile = runfiles.resolveWorkspaceRelative(configFilePath).replace(process.cwd(), '.'); -function invokeCypressWithCommand(command) { +async function invokeCypressWithCommand(command) { + process.env.HOME = process.env['TEST_TMPDIR']; + + if (cypressTarPath) { + const resolvedArchivePath = join(cypressTarPath.replace('external/', '../')); + await untarCypress(resolvedArchivePath, join(process.env['TEST_TMPDIR'])) + } + init([ node, entry, @@ -28,10 +29,61 @@ function invokeCypressWithCommand(command) { ]); } -// Detect that we are running as a test, by using well-known environment -// variables. See go/test-encyclopedia -if (!process.env.BUILD_WORKSPACE_DIRECTORY) { - invokeCypressWithCommand('run'); -} else { - invokeCypressWithCommand('open'); + + +function untarCypress(cypressTarPath, outputPath) { + return new Promise((resolve, reject) => { + const nodeModulesPath = join( + process.cwd(), cypressBin.replace('external/', '../').split('node_modules')[0], + 'node_modules'); + + const tar = require(require.resolve('tar', { + paths: [ + join(nodeModulesPath, '@bazel', 'cypress', 'node_modules'), + nodeModulesPath, + ] + })); + + + tar.x( + { + cwd: outputPath, + file: cypressTarPath, + noMtime: true, + }, + err => { + if (err) { + return reject(err); + } + + try { + const {cypressExecutable} = + JSON.parse(readFileSync(join(outputPath, 'cypress-install', 'bazel_cypress.json'))); + + process.env.CYPRESS_RUN_BINARY = join(outputPath, cypressExecutable); + process.env.CYPRESS_CACHE_FOLDER = outputPath; + } catch (err) { + return reject(err) + } + + return resolve(); + }) + }); +} + +async function main() { + try { + // Detect that we are running as a test, by using well-known environment + // variables. See go/test-encyclopedia + if (!process.env.BUILD_WORKSPACE_DIRECTORY) { + await invokeCypressWithCommand('run'); + } else { + await invokeCypressWithCommand('open'); + } + } catch (e) { + console.error(e); + process.exit(1) + } } + +main(); \ No newline at end of file diff --git a/packages/cypress/internal/template.cypress_web_test.bzl b/packages/cypress/internal/template.cypress_web_test.bzl index bb25198b46..77a371ab92 100644 --- a/packages/cypress/internal/template.cypress_web_test.bzl +++ b/packages/cypress/internal/template.cypress_web_test.bzl @@ -40,9 +40,6 @@ def _cypress_plugin_impl(ctx): output = ctx.outputs.plugin, template = ctx.file._plugin_template, substitutions = { - "TEMPLATED_@cypress/browserify-preprocessor": "${cwd}/../cypress_deps/node_modules/@cypress/browserify-preprocessor/index", - "TEMPLATED_includeScreenshots": "true" if ctx.attr.include_screenshots else "false", - "TEMPLATED_includeVideos": "true" if ctx.attr.include_video else "false", "TEMPLATED_integrationFileShortPaths": "[\n {files}\n]".format(files = ",\n ".join(integration_files_short_paths)), "TEMPLATED_pluginsFile": plugins_file.short_path, }, @@ -52,13 +49,6 @@ def _cypress_plugin_impl(ctx): files = depset([ctx.outputs.plugin]), )] -# Avoid using non-normalized paths (workspace/../other_workspace/path) -def _to_manifest_path(ctx, file): - if file.short_path.startswith("../"): - return file.short_path[3:] - else: - return ctx.workspace_name + "/" + file.short_path - _cypress_plugin = rule( implementation = _cypress_plugin_impl, outputs = {"plugin": "%{name}_cypress_plugin.js"}, @@ -67,8 +57,6 @@ _cypress_plugin = rule( allow_single_file = [".json"], mandatory = True, ), - "include_screenshots": attr.bool(default = False), - "include_video": attr.bool(default = False), "plugins_file": attr.label( default = Label("@build_bazel_rules_nodejs//packages/cypress:internal/plugins/base.js"), allow_single_file = True, @@ -89,15 +77,13 @@ def cypress_web_test( name, config_file, srcs = [], - include_screenshots = False, - include_video = False, - plugins_file = Label("@build_bazel_rules_nodejs//packages/cypress:internal/plugins/base.js"), - cypress = Label("TEMPLATED_node_modules_workspace_name//cypress:cypress"), - cypress_browserify_preprocessor = Label("TEMPLATED_node_modules_workspace_name//@cypress/browserify-preprocessor"), + plugins_file = Label("//plugins/base.js"), data = [], templated_args = [], - cypress_cache = Label("//:cypress_cache"), - cypress_executable = Label("//:cypress_executable"), + cypress = Label("TEMPLATED_node_modules_workspace_name//cypress"), + cypress_archive = Label("//:cypress_archive"), + cypress_bin = Label("TEMPLATED_node_modules_workspace_name//:node_modules/cypress/bin/cypress"), + tar = Label("TEMPLATED_node_modules_workspace_name//tar"), **kwargs): cypress_plugin = "{name}_cypress_plugin".format(name = name) tags = kwargs.pop("tags", []) + ["cypress"] @@ -106,8 +92,6 @@ def cypress_web_test( name = cypress_plugin, srcs = srcs, tags = tags, - include_screenshots = include_screenshots, - include_video = include_video, plugins_file = plugins_file, config_file = config_file, testonly = True, @@ -119,19 +103,20 @@ def cypress_web_test( tags = tags, data = data + [ plugins_file, + cypress_archive, + cypress_bin, cypress, - cypress_browserify_preprocessor, - cypress_cache, - cypress_executable, - ":{cypress_plugin}".format(cypress_plugin = cypress_plugin), - ":{config_file}".format(config_file = config_file), + tar, + "{cypress_plugin}".format(cypress_plugin = cypress_plugin), + "{config_file}".format(config_file = config_file), ] + srcs, entry_point = "@build_bazel_rules_nodejs//packages/cypress:internal/run-cypress.js", templated_args = [ "--nobazel_patch_module_resolver", - "$(rootpath :{config_file})".format(config_file = config_file), - "$(rootpath :{cypress_plugin})".format(cypress_plugin = cypress_plugin), - "$(rootpath {cypress_executable})".format(cypress_executable = cypress_executable), + "$(rootpath {config_file})".format(config_file = config_file), + "$(rootpath {cypress_plugin})".format(cypress_plugin = cypress_plugin), + "$(rootpath {cypress_archive})".format(cypress_archive = cypress_archive), + "$(rootpath {cypress_bin})".format(cypress_bin = cypress_bin), ] + templated_args, **kwargs ) @@ -140,11 +125,8 @@ def cypress_web_test_global_cache( name, config_file, srcs = [], - include_screenshots = False, - include_video = False, plugins_file = Label("@build_bazel_rules_nodejs//packages/cypress:plugins/base.js"), cypress = Label("TEMPLATED_node_modules_workspace_name//cypress:cypress"), - cypress_browserify_preprocessor = Label("TEMPLATED_node_modules_workspace_name//@cypress/browserify-preprocessor"), data = [], templated_args = [], **kwargs): @@ -155,8 +137,6 @@ def cypress_web_test_global_cache( name = cypress_plugin, srcs = srcs, tags = tags, - include_screenshots = include_screenshots, - include_video = include_video, plugins_file = plugins_file, config_file = config_file, testonly = True, @@ -169,15 +149,14 @@ def cypress_web_test_global_cache( data = data + [ plugins_file, cypress, - cypress_browserify_preprocessor, - ":{cypress_plugin}".format(cypress_plugin = cypress_plugin), - ":{config_file}".format(config_file = config_file), + "{cypress_plugin}".format(cypress_plugin = cypress_plugin), + "{config_file}".format(config_file = config_file), ] + srcs, entry_point = "@build_bazel_rules_nodejs//packages/cypress:internal/run-cypress.js", templated_args = [ "--nobazel_patch_module_resolver", - "$(rootpath :{config_file})".format(config_file = config_file), - "$(rootpath :{cypress_plugin})".format(cypress_plugin = cypress_plugin), + "$(rootpath {config_file})".format(config_file = config_file), + "$(rootpath {cypress_plugin})".format(cypress_plugin = cypress_plugin), ] + templated_args, **kwargs ) diff --git a/packages/cypress/package.json b/packages/cypress/package.json index 79a53caa88..e7465f6f4b 100644 --- a/packages/cypress/package.json +++ b/packages/cypress/package.json @@ -1,8 +1,10 @@ { "name": "@bazel/cypress", + "dependencies": { + "tar": "6.0.5" + }, "peerDependencies": { - "cypress": ">=4.7.0", - "@cypress/browserify-preprocessor": ">=3.0.0" + "cypress": ">=4.7.0" }, "description": "Run Cypress e2e testing framework under Bazel", "license": "Apache-2.0", @@ -22,4 +24,4 @@ "scripts": { "postinstall": "node npm_version_check.js" } -} +} \ No newline at end of file diff --git a/packages/cypress/test/package.json b/packages/cypress/test/package.json index f8fcf686b5..2861503ce8 100644 --- a/packages/cypress/test/package.json +++ b/packages/cypress/test/package.json @@ -3,9 +3,9 @@ "private": true, "dependencies": { "express": "4.17.1", - "cypress": "^4.8.0", - "@cypress/browserify-preprocessor": "^3.0.0", + "cypress": "^5.2.0", "@types/node": "14.0.14", - "typescript": "3.9.5" + "typescript": "3.9.5", + "tar": "6.0.5" } } \ No newline at end of file diff --git a/packages/cypress/test/yarn.lock b/packages/cypress/test/yarn.lock index 10757a242c..3bc7b1432c 100644 --- a/packages/cypress/test/yarn.lock +++ b/packages/cypress/test/yarn.lock @@ -2,773 +2,7 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.3": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.3.tgz#324bcfd8d35cd3d47dae18cde63d752086435e9a" - integrity sha512-fDx9eNW0qz0WkUeqL6tXEXzVlPh6Y5aCDEZesl0xBGA8ndRukX91Uk44ZqnkECp01NAZUdCAl+aiQNGi0k88Eg== - dependencies: - "@babel/highlight" "^7.10.3" - -"@babel/core@7.4.5": - version "7.4.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.4.5.tgz#081f97e8ffca65a9b4b0fdc7e274e703f000c06a" - integrity sha512-OvjIh6aqXtlsA8ujtGKfC7LYWksYSX8yQcM8Ay3LuvVeQ63lcOKgoZWVqcpFwkd29aYU9rVx7jxhfhiEDV9MZA== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.4.4" - "@babel/helpers" "^7.4.4" - "@babel/parser" "^7.4.5" - "@babel/template" "^7.4.4" - "@babel/traverse" "^7.4.5" - "@babel/types" "^7.4.4" - convert-source-map "^1.1.0" - debug "^4.1.0" - json5 "^2.1.0" - lodash "^4.17.11" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/generator@^7.10.3", "@babel/generator@^7.4.4": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.10.3.tgz#32b9a0d963a71d7a54f5f6c15659c3dbc2a523a5" - integrity sha512-drt8MUHbEqRzNR0xnF8nMehbY11b1SDkRw03PSNH/3Rb2Z35oxkddVSi3rcaak0YJQ86PCuE7Qx1jSFhbLNBMA== - dependencies: - "@babel/types" "^7.10.3" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - -"@babel/helper-annotate-as-pure@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.1.tgz#f6d08acc6f70bbd59b436262553fb2e259a1a268" - integrity sha512-ewp3rvJEwLaHgyWGe4wQssC2vjks3E80WiUe2BpMb0KhreTjMROCbxXcEovTrbeGVdQct5VjQfrv9EgC+xMzCw== - dependencies: - "@babel/types" "^7.10.1" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.10.1": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.3.tgz#4e9012d6701bef0030348d7f9c808209bd3e8687" - integrity sha512-lo4XXRnBlU6eRM92FkiZxpo1xFLmv3VsPFk61zJKMm7XYJfwqXHsYJTY6agoc4a3L8QPw1HqWehO18coZgbT6A== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.10.3" - "@babel/types" "^7.10.3" - -"@babel/helper-builder-react-jsx-experimental@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.1.tgz#9a7d58ad184d3ac3bafb1a452cec2bad7e4a0bc8" - integrity sha512-irQJ8kpQUV3JasXPSFQ+LCCtJSc5ceZrPFVj6TElR6XCHssi3jV8ch3odIrNtjJFRZZVbrOEfJMI79TPU/h1pQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.1" - "@babel/helper-module-imports" "^7.10.1" - "@babel/types" "^7.10.1" - -"@babel/helper-builder-react-jsx@^7.10.3": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.3.tgz#62c4b7bb381153a0a5f8d83189b94b9fb5384fc5" - integrity sha512-vkxmuFvmovtqTZknyMGj9+uQAZzz5Z9mrbnkJnPkaYGfKTaSsYcjQdXP0lgrWLVh8wU6bCjOmXOpx+kqUi+S5Q== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.1" - "@babel/types" "^7.10.3" - -"@babel/helper-create-class-features-plugin@^7.3.0": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.3.tgz#2783daa6866822e3d5ed119163b50f0fc3ae4b35" - integrity sha512-iRT9VwqtdFmv7UheJWthGc/h2s7MqoweBF9RUj77NFZsg9VfISvBTum3k6coAhJ8RWv2tj3yUjA03HxPd0vfpQ== - dependencies: - "@babel/helper-function-name" "^7.10.3" - "@babel/helper-member-expression-to-functions" "^7.10.3" - "@babel/helper-optimise-call-expression" "^7.10.3" - "@babel/helper-plugin-utils" "^7.10.3" - "@babel/helper-replace-supers" "^7.10.1" - "@babel/helper-split-export-declaration" "^7.10.1" - -"@babel/helper-create-regexp-features-plugin@^7.10.1", "@babel/helper-create-regexp-features-plugin@^7.8.3": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.1.tgz#1b8feeab1594cbcfbf3ab5a3bbcabac0468efdbd" - integrity sha512-Rx4rHS0pVuJn5pJOqaqcZR4XSgeF9G/pO/79t+4r7380tXFJdzImFnxMU19f83wjSrmKHq6myrM10pFHTGzkUA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.1" - "@babel/helper-regex" "^7.10.1" - regexpu-core "^4.7.0" - -"@babel/helper-define-map@^7.10.3": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.3.tgz#d27120a5e57c84727b30944549b2dfeca62401a8" - integrity sha512-bxRzDi4Sin/k0drWCczppOhov1sBSdBvXJObM1NLHQzjhXhwRtn7aRWGvLJWCYbuu2qUk3EKs6Ci9C9ps8XokQ== - dependencies: - "@babel/helper-function-name" "^7.10.3" - "@babel/types" "^7.10.3" - lodash "^4.17.13" - -"@babel/helper-explode-assignable-expression@^7.10.3": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.3.tgz#9dc14f0cfa2833ea830a9c8a1c742b6e7461b05e" - integrity sha512-0nKcR64XrOC3lsl+uhD15cwxPvaB6QKUDlD84OT9C3myRbhJqTMYir69/RWItUvHpharv0eJ/wk7fl34ONSwZw== - dependencies: - "@babel/traverse" "^7.10.3" - "@babel/types" "^7.10.3" - -"@babel/helper-function-name@^7.10.1", "@babel/helper-function-name@^7.10.3": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.3.tgz#79316cd75a9fa25ba9787ff54544307ed444f197" - integrity sha512-FvSj2aiOd8zbeqijjgqdMDSyxsGHaMt5Tr0XjQsGKHD3/1FP3wksjnLAWzxw7lvXiej8W1Jt47SKTZ6upQNiRw== - dependencies: - "@babel/helper-get-function-arity" "^7.10.3" - "@babel/template" "^7.10.3" - "@babel/types" "^7.10.3" - -"@babel/helper-get-function-arity@^7.10.1", "@babel/helper-get-function-arity@^7.10.3": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.3.tgz#3a28f7b28ccc7719eacd9223b659fdf162e4c45e" - integrity sha512-iUD/gFsR+M6uiy69JA6fzM5seno8oE85IYZdbVVEuQaZlEzMO2MXblh+KSPJgsZAUx0EEbWXU0yJaW7C9CdAVg== - dependencies: - "@babel/types" "^7.10.3" - -"@babel/helper-hoist-variables@^7.10.3": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.3.tgz#d554f52baf1657ffbd7e5137311abc993bb3f068" - integrity sha512-9JyafKoBt5h20Yv1+BXQMdcXXavozI1vt401KBiRc2qzUepbVnd7ogVNymY1xkQN9fekGwfxtotH2Yf5xsGzgg== - dependencies: - "@babel/types" "^7.10.3" - -"@babel/helper-member-expression-to-functions@^7.10.1", "@babel/helper-member-expression-to-functions@^7.10.3": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.3.tgz#bc3663ac81ac57c39148fef4c69bf48a77ba8dd6" - integrity sha512-q7+37c4EPLSjNb2NmWOjNwj0+BOyYlssuQ58kHEWk1Z78K5i8vTUsteq78HMieRPQSl/NtpQyJfdjt3qZ5V2vw== - dependencies: - "@babel/types" "^7.10.3" - -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.10.1": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.3.tgz#766fa1d57608e53e5676f23ae498ec7a95e1b11a" - integrity sha512-Jtqw5M9pahLSUWA+76nhK9OG8nwYXzhQzVIGFoNaHnXF/r4l7kz4Fl0UAW7B6mqC5myoJiBP5/YQlXQTMfHI9w== - dependencies: - "@babel/types" "^7.10.3" - -"@babel/helper-module-transforms@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.10.1.tgz#24e2f08ee6832c60b157bb0936c86bef7210c622" - integrity sha512-RLHRCAzyJe7Q7sF4oy2cB+kRnU4wDZY/H2xJFGof+M+SJEGhZsb+GFj5j1AD8NiSaVBJ+Pf0/WObiXu/zxWpFg== - dependencies: - "@babel/helper-module-imports" "^7.10.1" - "@babel/helper-replace-supers" "^7.10.1" - "@babel/helper-simple-access" "^7.10.1" - "@babel/helper-split-export-declaration" "^7.10.1" - "@babel/template" "^7.10.1" - "@babel/types" "^7.10.1" - lodash "^4.17.13" - -"@babel/helper-optimise-call-expression@^7.10.1", "@babel/helper-optimise-call-expression@^7.10.3": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.3.tgz#f53c4b6783093195b0f69330439908841660c530" - integrity sha512-kT2R3VBH/cnSz+yChKpaKRJQJWxdGoc6SjioRId2wkeV3bK0wLLioFpJROrX0U4xr/NmxSSAWT/9Ih5snwIIzg== - dependencies: - "@babel/types" "^7.10.3" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.1", "@babel/helper-plugin-utils@^7.10.3", "@babel/helper-plugin-utils@^7.8.0": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.3.tgz#aac45cccf8bc1873b99a85f34bceef3beb5d3244" - integrity sha512-j/+j8NAWUTxOtx4LKHybpSClxHoq6I91DQ/mKgAXn5oNUPIUiGppjPIX3TDtJWPrdfP9Kfl7e4fgVMiQR9VE/g== - -"@babel/helper-regex@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.1.tgz#021cf1a7ba99822f993222a001cc3fec83255b96" - integrity sha512-7isHr19RsIJWWLLFn21ubFt223PjQyg1HY7CZEMRr820HttHPpVvrsIN3bUOo44DEfFV4kBXO7Abbn9KTUZV7g== - dependencies: - lodash "^4.17.13" - -"@babel/helper-remap-async-to-generator@^7.10.1", "@babel/helper-remap-async-to-generator@^7.10.3": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.3.tgz#18564f8a6748be466970195b876e8bba3bccf442" - integrity sha512-sLB7666ARbJUGDO60ZormmhQOyqMX/shKBXZ7fy937s+3ID8gSrneMvKSSb+8xIM5V7Vn6uNVtOY1vIm26XLtA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.1" - "@babel/helper-wrap-function" "^7.10.1" - "@babel/template" "^7.10.3" - "@babel/traverse" "^7.10.3" - "@babel/types" "^7.10.3" - -"@babel/helper-replace-supers@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.1.tgz#ec6859d20c5d8087f6a2dc4e014db7228975f13d" - integrity sha512-SOwJzEfpuQwInzzQJGjGaiG578UYmyi2Xw668klPWV5n07B73S0a9btjLk/52Mlcxa+5AdIYqws1KyXRfMoB7A== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.10.1" - "@babel/helper-optimise-call-expression" "^7.10.1" - "@babel/traverse" "^7.10.1" - "@babel/types" "^7.10.1" - -"@babel/helper-simple-access@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.1.tgz#08fb7e22ace9eb8326f7e3920a1c2052f13d851e" - integrity sha512-VSWpWzRzn9VtgMJBIWTZ+GP107kZdQ4YplJlCmIrjoLVSi/0upixezHCDG8kpPVTBJpKfxTH01wDhh+jS2zKbw== - dependencies: - "@babel/template" "^7.10.1" - "@babel/types" "^7.10.1" - -"@babel/helper-split-export-declaration@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz#c6f4be1cbc15e3a868e4c64a17d5d31d754da35f" - integrity sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g== - dependencies: - "@babel/types" "^7.10.1" - -"@babel/helper-validator-identifier@^7.10.3": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.3.tgz#60d9847f98c4cea1b279e005fdb7c28be5412d15" - integrity sha512-bU8JvtlYpJSBPuj1VUmKpFGaDZuLxASky3LhaKj3bmpSTY6VWooSM8msk+Z0CZoErFye2tlABF6yDkT3FOPAXw== - -"@babel/helper-wrap-function@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.10.1.tgz#956d1310d6696257a7afd47e4c42dfda5dfcedc9" - integrity sha512-C0MzRGteVDn+H32/ZgbAv5r56f2o1fZSA/rj/TYo8JEJNHg+9BdSmKBUND0shxWRztWhjlT2cvHYuynpPsVJwQ== - dependencies: - "@babel/helper-function-name" "^7.10.1" - "@babel/template" "^7.10.1" - "@babel/traverse" "^7.10.1" - "@babel/types" "^7.10.1" - -"@babel/helpers@^7.4.4": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.1.tgz#a6827b7cb975c9d9cef5fd61d919f60d8844a973" - integrity sha512-muQNHF+IdU6wGgkaJyhhEmI54MOZBKsFfsXFhboz1ybwJ1Kl7IHlbm2a++4jwrmY5UYsgitt5lfqo1wMFcHmyw== - dependencies: - "@babel/template" "^7.10.1" - "@babel/traverse" "^7.10.1" - "@babel/types" "^7.10.1" - -"@babel/highlight@^7.10.3": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.3.tgz#c633bb34adf07c5c13156692f5922c81ec53f28d" - integrity sha512-Ih9B/u7AtgEnySE2L2F0Xm0GaM729XqqLfHkalTsbjXGyqmf/6M0Cu0WpvqueUlW+xk88BHw9Nkpj49naU+vWw== - dependencies: - "@babel/helper-validator-identifier" "^7.10.3" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.10.3", "@babel/parser@^7.4.5": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.3.tgz#7e71d892b0d6e7d04a1af4c3c79d72c1f10f5315" - integrity sha512-oJtNJCMFdIMwXGmx+KxuaD7i3b8uS7TTFYW/FNG2BT8m+fmGHoiPYoH0Pe3gya07WuFmM5FCDIr1x0irkD/hyA== - -"@babel/plugin-proposal-async-generator-functions@^7.2.0": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.3.tgz#5a02453d46e5362e2073c7278beab2e53ad7d939" - integrity sha512-WUUWM7YTOudF4jZBAJIW9D7aViYC/Fn0Pln4RIHlQALyno3sXSjqmTA4Zy1TKC2D49RCR8Y/Pn4OIUtEypK3CA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.3" - "@babel/helper-remap-async-to-generator" "^7.10.3" - "@babel/plugin-syntax-async-generators" "^7.8.0" - -"@babel/plugin-proposal-class-properties@7.3.0": - version "7.3.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.3.0.tgz#272636bc0fa19a0bc46e601ec78136a173ea36cd" - integrity sha512-wNHxLkEKTQ2ay0tnsam2z7fGZUi+05ziDJflEt3AZTP3oXLKHJp9HqhfroB/vdMvt3sda9fAbq7FsG8QPDrZBg== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.3.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-proposal-json-strings@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.1.tgz#b1e691ee24c651b5a5e32213222b2379734aff09" - integrity sha512-m8r5BmV+ZLpWPtMY2mOKN7wre6HIO4gfIiV+eOmsnZABNenrt/kzYBwrh+KOfgumSWpnlGs5F70J8afYMSJMBg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/plugin-syntax-json-strings" "^7.8.0" - -"@babel/plugin-proposal-object-rest-spread@7.3.2": - version "7.3.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.3.2.tgz#6d1859882d4d778578e41f82cc5d7bf3d5daf6c1" - integrity sha512-DjeMS+J2+lpANkYLLO+m6GjoTMygYglKmRe6cDTbFv3L9i6mmiE8fe6B8MtCSLZpVXscD5kn7s6SgtHrDoBWoA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.2.0" - -"@babel/plugin-proposal-object-rest-spread@^7.4.4": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.3.tgz#b8d0d22f70afa34ad84b7a200ff772f9b9fce474" - integrity sha512-ZZh5leCIlH9lni5bU/wB/UcjtcVLgR8gc+FAgW2OOY+m9h1II3ItTO1/cewNUcsIDZSYcSaz/rYVls+Fb0ExVQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-transform-parameters" "^7.10.1" - -"@babel/plugin-proposal-optional-catch-binding@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.1.tgz#c9f86d99305f9fa531b568ff5ab8c964b8b223d2" - integrity sha512-VqExgeE62YBqI3ogkGoOJp1R6u12DFZjqwJhqtKc2o5m1YTUuUWnos7bZQFBhwkxIFpWYJ7uB75U7VAPPiKETA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - -"@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.1.tgz#dc04feb25e2dd70c12b05d680190e138fa2c0c6f" - integrity sha512-JjfngYRvwmPwmnbRZyNiPFI8zxCZb8euzbCG/LxyKdeTb59tVciKo9GK9bi6JYKInk1H11Dq9j/zRqIH4KigfQ== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-syntax-async-generators@^7.2.0", "@babel/plugin-syntax-async-generators@^7.8.0": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-json-strings@^7.2.0", "@babel/plugin-syntax-json-strings@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.1.tgz#0ae371134a42b91d5418feb3c8c8d43e1565d2da" - integrity sha512-+OxyOArpVFXQeXKLO9o+r2I4dIoVoy6+Uu0vKELrlweDM3QJADZj+Z+5ERansZqIZBcLj42vHnDI8Rz9BnRIuQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-syntax-object-rest-spread@^7.2.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.2.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-transform-arrow-functions@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.1.tgz#cb5ee3a36f0863c06ead0b409b4cc43a889b295b" - integrity sha512-6AZHgFJKP3DJX0eCNJj01RpytUa3SOGawIxweHkNX2L6PYikOZmoh5B0d7hIHaIgveMjX990IAa/xK7jRTN8OA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-async-to-generator@^7.4.4": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.1.tgz#e5153eb1a3e028f79194ed8a7a4bf55f862b2062" - integrity sha512-XCgYjJ8TY2slj6SReBUyamJn3k2JLUIiiR5b6t1mNCMSvv7yx+jJpaewakikp0uWFQSF7ChPPoe3dHmXLpISkg== - dependencies: - "@babel/helper-module-imports" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/helper-remap-async-to-generator" "^7.10.1" - -"@babel/plugin-transform-block-scoped-functions@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.1.tgz#146856e756d54b20fff14b819456b3e01820b85d" - integrity sha512-B7K15Xp8lv0sOJrdVAoukKlxP9N59HS48V1J3U/JGj+Ad+MHq+am6xJVs85AgXrQn4LV8vaYFOB+pr/yIuzW8Q== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-block-scoping@^7.4.4": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.1.tgz#47092d89ca345811451cd0dc5d91605982705d5e" - integrity sha512-8bpWG6TtF5akdhIm/uWTyjHqENpy13Fx8chg7pFH875aNLwX8JxIxqm08gmAT+Whe6AOmaTeLPe7dpLbXt+xUw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - lodash "^4.17.13" - -"@babel/plugin-transform-classes@^7.4.4": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.3.tgz#8d9a656bc3d01f3ff69e1fccb354b0f9d72ac544" - integrity sha512-irEX0ChJLaZVC7FvvRoSIxJlmk0IczFLcwaRXUArBKYHCHbOhe57aG8q3uw/fJsoSXvZhjRX960hyeAGlVBXZw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.1" - "@babel/helper-define-map" "^7.10.3" - "@babel/helper-function-name" "^7.10.3" - "@babel/helper-optimise-call-expression" "^7.10.3" - "@babel/helper-plugin-utils" "^7.10.3" - "@babel/helper-replace-supers" "^7.10.1" - "@babel/helper-split-export-declaration" "^7.10.1" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.2.0": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.3.tgz#d3aa6eef67cb967150f76faff20f0abbf553757b" - integrity sha512-GWzhaBOsdbjVFav96drOz7FzrcEW6AP5nax0gLIpstiFaI3LOb2tAg06TimaWU6YKOfUACK3FVrxPJ4GSc5TgA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.3" - -"@babel/plugin-transform-destructuring@^7.4.4": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.1.tgz#abd58e51337815ca3a22a336b85f62b998e71907" - integrity sha512-V/nUc4yGWG71OhaTH705pU8ZSdM6c1KmmLP8ys59oOYbT7RpMYAR3MsVOt6OHL0WzG7BlTU076va9fjJyYzJMA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.1.tgz#920b9fec2d78bb57ebb64a644d5c2ba67cc104ee" - integrity sha512-19VIMsD1dp02RvduFUmfzj8uknaO3uiHHF0s3E1OHnVsNj8oge8EQ5RzHRbJjGSetRnkEuBYO7TG1M5kKjGLOA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-duplicate-keys@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.1.tgz#c900a793beb096bc9d4d0a9d0cde19518ffc83b9" - integrity sha512-wIEpkX4QvX8Mo9W6XF3EdGttrIPZWozHfEaDTU0WJD/TDnXMvdDh30mzUl/9qWhnf7naicYartcEfUghTCSNpA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-exponentiation-operator@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.1.tgz#279c3116756a60dd6e6f5e488ba7957db9c59eb3" - integrity sha512-lr/przdAbpEA2BUzRvjXdEDLrArGRRPwbaF9rvayuHRvdQ7lUTTkZnhZrJ4LE2jvgMRFF4f0YuPQ20vhiPYxtA== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-for-of@^7.4.4": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.1.tgz#ff01119784eb0ee32258e8646157ba2501fcfda5" - integrity sha512-US8KCuxfQcn0LwSCMWMma8M2R5mAjJGsmoCBVwlMygvmDUMkTCykc84IqN1M7t+agSfOmLYTInLCHJM+RUoz+w== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-function-name@^7.4.4": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.1.tgz#4ed46fd6e1d8fde2a2ec7b03c66d853d2c92427d" - integrity sha512-//bsKsKFBJfGd65qSNNh1exBy5Y9gD9ZN+DvrJ8f7HXr4avE5POW6zB7Rj6VnqHV33+0vXWUwJT0wSHubiAQkw== - dependencies: - "@babel/helper-function-name" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-literals@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.1.tgz#5794f8da82846b22e4e6631ea1658bce708eb46a" - integrity sha512-qi0+5qgevz1NHLZroObRm5A+8JJtibb7vdcPQF1KQE12+Y/xxl8coJ+TpPW9iRq+Mhw/NKLjm+5SHtAHCC7lAw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-member-expression-literals@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.1.tgz#90347cba31bca6f394b3f7bd95d2bbfd9fce2f39" - integrity sha512-UmaWhDokOFT2GcgU6MkHC11i0NQcL63iqeufXWfRy6pUOGYeCGEKhvfFO6Vz70UfYJYHwveg62GS83Rvpxn+NA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-modules-amd@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.1.tgz#65950e8e05797ebd2fe532b96e19fc5482a1d52a" - integrity sha512-31+hnWSFRI4/ACFr1qkboBbrTxoBIzj7qA69qlq8HY8p7+YCzkCT6/TvQ1a4B0z27VeWtAeJd6pr5G04dc1iHw== - dependencies: - "@babel/helper-module-transforms" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-commonjs@^7.4.4": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.1.tgz#d5ff4b4413ed97ffded99961056e1fb980fb9301" - integrity sha512-AQG4fc3KOah0vdITwt7Gi6hD9BtQP/8bhem7OjbaMoRNCH5Djx42O2vYMfau7QnAzQCa+RJnhJBmFFMGpQEzrg== - dependencies: - "@babel/helper-module-transforms" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/helper-simple-access" "^7.10.1" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-systemjs@^7.4.4": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.3.tgz#004ae727b122b7b146b150d50cba5ffbff4ac56b" - integrity sha512-GWXWQMmE1GH4ALc7YXW56BTh/AlzvDWhUNn9ArFF0+Cz5G8esYlVbXfdyHa1xaD1j+GnBoCeoQNlwtZTVdiG/A== - dependencies: - "@babel/helper-hoist-variables" "^7.10.3" - "@babel/helper-module-transforms" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.3" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-umd@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.1.tgz#ea080911ffc6eb21840a5197a39ede4ee67b1595" - integrity sha512-EIuiRNMd6GB6ulcYlETnYYfgv4AxqrswghmBRQbWLHZxN4s7mupxzglnHqk9ZiUpDI4eRWewedJJNj67PWOXKA== - dependencies: - "@babel/helper-module-transforms" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.4.5": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.3.tgz#a4f8444d1c5a46f35834a410285f2c901c007ca6" - integrity sha512-I3EH+RMFyVi8Iy/LekQm948Z4Lz4yKT7rK+vuCAeRm0kTa6Z5W7xuhRxDNJv0FPya/her6AUgrDITb70YHtTvA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - -"@babel/plugin-transform-new-target@^7.4.4": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.1.tgz#6ee41a5e648da7632e22b6fb54012e87f612f324" - integrity sha512-MBlzPc1nJvbmO9rPr1fQwXOM2iGut+JC92ku6PbiJMMK7SnQc1rytgpopveE3Evn47gzvGYeCdgfCDbZo0ecUw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-object-super@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.1.tgz#2e3016b0adbf262983bf0d5121d676a5ed9c4fde" - integrity sha512-WnnStUDN5GL+wGQrJylrnnVlFhFmeArINIR9gjhSeYyvroGhBrSAXYg/RHsnfzmsa+onJrTJrEClPzgNmmQ4Gw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/helper-replace-supers" "^7.10.1" - -"@babel/plugin-transform-parameters@^7.10.1", "@babel/plugin-transform-parameters@^7.4.4": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.1.tgz#b25938a3c5fae0354144a720b07b32766f683ddd" - integrity sha512-tJ1T0n6g4dXMsL45YsSzzSDZCxiHXAQp/qHrucOq5gEHncTA3xDxnd5+sZcoQp+N1ZbieAaB8r/VUCG0gqseOg== - dependencies: - "@babel/helper-get-function-arity" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-property-literals@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.1.tgz#cffc7315219230ed81dc53e4625bf86815b6050d" - integrity sha512-Kr6+mgag8auNrgEpbfIWzdXYOvqDHZOF0+Bx2xh4H2EDNwcbRb9lY6nkZg8oSjsX+DH9Ebxm9hOqtKW+gRDeNA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-react-display-name@^7.0.0": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.3.tgz#e3c246e1b4f3e52cc7633e237ad9194c0ec482e7" - integrity sha512-dOV44bnSW5KZ6kYF6xSHBth7TFiHHZReYXH/JH3XnFNV+soEL1F5d8JT7AJ3ZBncd19Qul7SN4YpBnyWOnQ8KA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.3" - -"@babel/plugin-transform-react-jsx-self@^7.0.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.1.tgz#22143e14388d72eb88649606bb9e46f421bc3821" - integrity sha512-4p+RBw9d1qV4S749J42ZooeQaBomFPrSxa9JONLHJ1TxCBo3TzJ79vtmG2S2erUT8PDDrPdw4ZbXGr2/1+dILA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/plugin-syntax-jsx" "^7.10.1" - -"@babel/plugin-transform-react-jsx-source@^7.0.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.1.tgz#30db3d4ee3cdebbb26a82a9703673714777a4273" - integrity sha512-neAbaKkoiL+LXYbGDvh6PjPG+YeA67OsZlE78u50xbWh2L1/C81uHiNP5d1fw+uqUIoiNdCC8ZB+G4Zh3hShJA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/plugin-syntax-jsx" "^7.10.1" - -"@babel/plugin-transform-react-jsx@^7.0.0": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.3.tgz#c07ad86b7c159287c89b643f201f59536231048e" - integrity sha512-Y21E3rZmWICRJnvbGVmDLDZ8HfNDIwjGF3DXYHx1le0v0mIHCs0Gv5SavyW5Z/jgAHLaAoJPiwt+Dr7/zZKcOQ== - dependencies: - "@babel/helper-builder-react-jsx" "^7.10.3" - "@babel/helper-builder-react-jsx-experimental" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.3" - "@babel/plugin-syntax-jsx" "^7.10.1" - -"@babel/plugin-transform-regenerator@^7.4.5": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.3.tgz#6ec680f140a5ceefd291c221cb7131f6d7e8cb6d" - integrity sha512-H5kNeW0u8mbk0qa1jVIVTeJJL6/TJ81ltD4oyPx0P499DhMJrTmmIFCmJ3QloGpQG8K9symccB7S7SJpCKLwtw== - dependencies: - regenerator-transform "^0.14.2" - -"@babel/plugin-transform-reserved-words@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.1.tgz#0fc1027312b4d1c3276a57890c8ae3bcc0b64a86" - integrity sha512-qN1OMoE2nuqSPmpTqEM7OvJ1FkMEV+BjVeZZm9V9mq/x1JLKQ4pcv8riZJMNN3u2AUGl0ouOMjRr2siecvHqUQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-runtime@7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.2.0.tgz#566bc43f7d0aedc880eaddbd29168d0f248966ea" - integrity sha512-jIgkljDdq4RYDnJyQsiWbdvGeei/0MOTtSHKO/rfbd/mXBxNpdlulMx49L0HQ4pug1fXannxoqCI+fYSle9eSw== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - resolve "^1.8.1" - semver "^5.5.1" - -"@babel/plugin-transform-shorthand-properties@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.1.tgz#e8b54f238a1ccbae482c4dce946180ae7b3143f3" - integrity sha512-AR0E/lZMfLstScFwztApGeyTHJ5u3JUKMjneqRItWeEqDdHWZwAOKycvQNCasCK/3r5YXsuNG25funcJDu7Y2g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-spread@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.1.tgz#0c6d618a0c4461a274418460a28c9ccf5239a7c8" - integrity sha512-8wTPym6edIrClW8FI2IoaePB91ETOtg36dOkj3bYcNe7aDMN2FXEoUa+WrmPc4xa1u2PQK46fUX2aCb+zo9rfw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-sticky-regex@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.1.tgz#90fc89b7526228bed9842cff3588270a7a393b00" - integrity sha512-j17ojftKjrL7ufX8ajKvwRilwqTok4q+BjkknmQw9VNHnItTyMP5anPFzxFJdCQs7clLcWpCV3ma+6qZWLnGMA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/helper-regex" "^7.10.1" - -"@babel/plugin-transform-template-literals@^7.4.4": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.3.tgz#69d39b3d44b31e7b4864173322565894ce939b25" - integrity sha512-yaBn9OpxQra/bk0/CaA4wr41O0/Whkg6nqjqApcinxM7pro51ojhX6fv1pimAnVjVfDy14K0ULoRL70CA9jWWA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.3" - -"@babel/plugin-transform-typeof-symbol@^7.2.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.1.tgz#60c0239b69965d166b80a84de7315c1bc7e0bb0e" - integrity sha512-qX8KZcmbvA23zDi+lk9s6hC1FM7jgLHYIjuLgULgc8QtYnmB3tAVIYkNoKRQ75qWBeyzcoMoK8ZQmogGtC/w0g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-unicode-regex@^7.4.4": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.1.tgz#6b58f2aea7b68df37ac5025d9c88752443a6b43f" - integrity sha512-Y/2a2W299k0VIUdbqYm9X2qS6fE0CUBhhiPpimK6byy7OJ/kORLlIX+J6UrjgNu5awvs62k+6RSslxhcvVw2Tw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/preset-env@7.4.5": - version "7.4.5" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.4.5.tgz#2fad7f62983d5af563b5f3139242755884998a58" - integrity sha512-f2yNVXM+FsR5V8UwcFeIHzHWgnhXg3NpRmy0ADvALpnhB0SLbCvrCRr4BLOUYbQNLS+Z0Yer46x9dJXpXewI7w== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-async-generator-functions" "^7.2.0" - "@babel/plugin-proposal-json-strings" "^7.2.0" - "@babel/plugin-proposal-object-rest-spread" "^7.4.4" - "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-syntax-async-generators" "^7.2.0" - "@babel/plugin-syntax-json-strings" "^7.2.0" - "@babel/plugin-syntax-object-rest-spread" "^7.2.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" - "@babel/plugin-transform-arrow-functions" "^7.2.0" - "@babel/plugin-transform-async-to-generator" "^7.4.4" - "@babel/plugin-transform-block-scoped-functions" "^7.2.0" - "@babel/plugin-transform-block-scoping" "^7.4.4" - "@babel/plugin-transform-classes" "^7.4.4" - "@babel/plugin-transform-computed-properties" "^7.2.0" - "@babel/plugin-transform-destructuring" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/plugin-transform-duplicate-keys" "^7.2.0" - "@babel/plugin-transform-exponentiation-operator" "^7.2.0" - "@babel/plugin-transform-for-of" "^7.4.4" - "@babel/plugin-transform-function-name" "^7.4.4" - "@babel/plugin-transform-literals" "^7.2.0" - "@babel/plugin-transform-member-expression-literals" "^7.2.0" - "@babel/plugin-transform-modules-amd" "^7.2.0" - "@babel/plugin-transform-modules-commonjs" "^7.4.4" - "@babel/plugin-transform-modules-systemjs" "^7.4.4" - "@babel/plugin-transform-modules-umd" "^7.2.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.4.5" - "@babel/plugin-transform-new-target" "^7.4.4" - "@babel/plugin-transform-object-super" "^7.2.0" - "@babel/plugin-transform-parameters" "^7.4.4" - "@babel/plugin-transform-property-literals" "^7.2.0" - "@babel/plugin-transform-regenerator" "^7.4.5" - "@babel/plugin-transform-reserved-words" "^7.2.0" - "@babel/plugin-transform-shorthand-properties" "^7.2.0" - "@babel/plugin-transform-spread" "^7.2.0" - "@babel/plugin-transform-sticky-regex" "^7.2.0" - "@babel/plugin-transform-template-literals" "^7.4.4" - "@babel/plugin-transform-typeof-symbol" "^7.2.0" - "@babel/plugin-transform-unicode-regex" "^7.4.4" - "@babel/types" "^7.4.4" - browserslist "^4.6.0" - core-js-compat "^3.1.1" - invariant "^2.2.2" - js-levenshtein "^1.1.3" - semver "^5.5.0" - -"@babel/preset-react@7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.0.0.tgz#e86b4b3d99433c7b3e9e91747e2653958bc6b3c0" - integrity sha512-oayxyPS4Zj+hF6Et11BwuBkmpgT/zMxyuZgFrMeZID6Hdh3dGlk4sHCAhdBCpuCKW2ppBfl2uCCetlrUIJRY3w== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.0.0" - "@babel/plugin-transform-react-jsx-self" "^7.0.0" - "@babel/plugin-transform-react-jsx-source" "^7.0.0" - -"@babel/runtime@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.3.1.tgz#574b03e8e8a9898eaf4a872a92ea20b7846f6f2a" - integrity sha512-7jGW8ppV0ant637pIqAcFfQDDH1orEPGJb8aXfUozuCU3QqX7rX4DA8iwrbPrR1hcH0FTTHz47yQnk+bl5xHQA== - dependencies: - regenerator-runtime "^0.12.0" - -"@babel/runtime@^7.8.4": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.10.3.tgz#670d002655a7c366540c67f6fd3342cd09500364" - integrity sha512-RzGO0RLSdokm9Ipe/YD+7ww8X2Ro79qiXZF3HU9ljrM+qnJmH1Vqth+hbiQZy761LnMJTMitHDuKVYTk3k4dLw== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@^7.10.1", "@babel/template@^7.10.3", "@babel/template@^7.4.4": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.3.tgz#4d13bc8e30bf95b0ce9d175d30306f42a2c9a7b8" - integrity sha512-5BjI4gdtD+9fHZUsaxPHPNpwa+xRkDO7c7JbhYn2afvrkDu5SfAAbi9AIMXw2xEhO/BR35TqiW97IqNvCo/GqA== - dependencies: - "@babel/code-frame" "^7.10.3" - "@babel/parser" "^7.10.3" - "@babel/types" "^7.10.3" - -"@babel/traverse@^7.10.1", "@babel/traverse@^7.10.3", "@babel/traverse@^7.4.5": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.10.3.tgz#0b01731794aa7b77b214bcd96661f18281155d7e" - integrity sha512-qO6623eBFhuPm0TmmrUFMT1FulCmsSeJuVGhiLodk2raUDFhhTECLd9E9jC4LBIWziqt4wgF6KuXE4d+Jz9yug== - dependencies: - "@babel/code-frame" "^7.10.3" - "@babel/generator" "^7.10.3" - "@babel/helper-function-name" "^7.10.3" - "@babel/helper-split-export-declaration" "^7.10.1" - "@babel/parser" "^7.10.3" - "@babel/types" "^7.10.3" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/types@^7.10.1", "@babel/types@^7.10.3", "@babel/types@^7.4.4": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.10.3.tgz#6535e3b79fea86a6b09e012ea8528f935099de8e" - integrity sha512-nZxaJhBXBQ8HVoIcGsf9qWep3Oh3jCENK54V4mRF7qaJabVsAYdbTtmSD8WmAp1R6ytPiu5apMwSXyxB1WlaBA== - dependencies: - "@babel/helper-validator-identifier" "^7.10.3" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@cypress/browserify-preprocessor@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@cypress/browserify-preprocessor/-/browserify-preprocessor-3.0.0.tgz#2d1fa6a96ed7130a1b172c540448a5955cbc1264" - integrity sha512-8CXLCKlXVUnad5TjwVswq4nwwWVyt5Z+HMgrFaD2yF7A62AA6OYDrShTQnG6M6+hr1cq1X4zYbo7VT4oxex5hA== - dependencies: - "@babel/core" "7.4.5" - "@babel/plugin-proposal-class-properties" "7.3.0" - "@babel/plugin-proposal-object-rest-spread" "7.3.2" - "@babel/plugin-transform-runtime" "7.2.0" - "@babel/preset-env" "7.4.5" - "@babel/preset-react" "7.0.0" - "@babel/runtime" "7.3.1" - babel-plugin-add-module-exports "1.0.2" - babelify "10.0.0" - bluebird "3.5.3" - browserify "16.2.3" - coffeeify "3.0.1" - coffeescript "1.12.7" - debug "4.1.1" - fs-extra "9.0.0" - lodash.clonedeep "4.5.0" - through2 "^2.0.0" - watchify "3.11.1" - -"@cypress/listr-verbose-renderer@0.4.1": +"@cypress/listr-verbose-renderer@^0.4.1": version "0.4.1" resolved "https://registry.yarnpkg.com/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz#a77492f4b11dcc7c446a34b3e28721afd33c642a" integrity sha1-p3SS9LEdzHxEajSz4ochr9M8ZCo= @@ -778,7 +12,7 @@ date-fns "^1.27.2" figures "^1.7.0" -"@cypress/request@2.88.5": +"@cypress/request@^2.88.5": version "2.88.5" resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.5.tgz#8d7ecd17b53a849cfd5ab06d5abe7d84976375d7" integrity sha512-TzEC1XMi1hJkywWpRfD2clreTa/Z+lOrXDCxxBTBPEcY5azdPi56A6Xw+O4tWJnaJH3iIE7G5aDXZC6JgRZLcA== @@ -804,7 +38,7 @@ tunnel-agent "^0.6.0" uuid "^3.3.2" -"@cypress/xvfb@1.2.4": +"@cypress/xvfb@^1.2.4": version "1.2.4" resolved "https://registry.yarnpkg.com/@cypress/xvfb/-/xvfb-1.2.4.tgz#2daf42e8275b39f4aa53c14214e557bd14e7748a" integrity sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q== @@ -819,29 +53,26 @@ dependencies: any-observable "^0.3.0" +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + "@types/node@14.0.14": version "14.0.14" resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.14.tgz#24a0b5959f16ac141aeb0c5b3cd7a15b7c64cbce" integrity sha512-syUgf67ZQpaJj01/tRTknkMNoBBLWJOBODF0Zm4NrXmiSuxjymFrxnTu1QVYRubhVkRcZLYZG8STTwJRdVm/WQ== -"@types/sinonjs__fake-timers@6.0.1": +"@types/sinonjs__fake-timers@^6.0.1": version "6.0.1" resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.1.tgz#681df970358c82836b42f989188d133e218c458e" integrity sha512-yYezQwGWty8ziyYLdZjwxyMb0CZR49h8JALHGrxjQHWlqGgc8kLdHEgWrgL0uZ29DMvEVBDnHU2Wg36zKSIUtA== -"@types/sizzle@2.3.2": +"@types/sizzle@^2.3.2": version "2.3.2" resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.2.tgz#a811b8c18e2babab7d542b3365887ae2e4d9de47" integrity sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg== -JSONStream@^1.0.3: - version "1.3.5" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" - integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - accepts@~1.3.7: version "1.3.7" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" @@ -850,25 +81,6 @@ accepts@~1.3.7: mime-types "~2.1.24" negotiator "0.6.2" -acorn-node@^1.2.0, acorn-node@^1.3.0, acorn-node@^1.5.2, acorn-node@^1.6.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" - integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== - dependencies: - acorn "^7.0.0" - acorn-walk "^7.0.0" - xtend "^4.0.2" - -acorn-walk@^7.0.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" - integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== - -acorn@^7.0.0: - version "7.3.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.3.1.tgz#85010754db53c3fbaf3b9ea3e083aa5c5d147ffd" - integrity sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA== - ajv@^6.5.5: version "6.12.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" @@ -894,6 +106,11 @@ ansi-regex@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -906,58 +123,29 @@ ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" +ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + any-observable@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -arch@2.1.2: +arch@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/arch/-/arch-2.1.2.tgz#0c52bbe7344bb4fa260c443d2cbad9c00ff2f0bf" integrity sha512-NTBIIbAfkJeIletyABbVtdPgeKfDafR+1mZV/AyyfC1UkVkp9iUjV+wwmqtUgphHYajbI86jejBJp5e+jkGTiQ== -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -asn1.js@^4.0.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - asn1@~0.2.3: version "0.2.4" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" @@ -970,24 +158,6 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= -assert@^1.4.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - async@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" @@ -1003,11 +173,6 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" @@ -1018,48 +183,11 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.0.tgz#a17b3a8ea811060e74d47d306122400ad4497ae2" integrity sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA== -babel-plugin-add-module-exports@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-1.0.2.tgz#96cd610d089af664f016467fc4567c099cce2d9c" - integrity sha512-4paN7RivvU3Rzju1vGSHWPjO8Y0rI6droWvSFKI6dvEQ4mvoV0zGojnlzVRfI6N8zISo6VERXt3coIuVmzuvNg== - optionalDependencies: - chokidar "^2.0.4" - -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - -babelify@10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/babelify/-/babelify-10.0.0.tgz#fe73b1a22583f06680d8d072e25a1e0d1d1d7fb5" - integrity sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg== - balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= -base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" @@ -1067,38 +195,16 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bluebird@3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7" - integrity sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw== +blob-util@2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/blob-util/-/blob-util-2.0.2.tgz#3b4e3c281111bb7f11128518006cdc60b403a1eb" + integrity sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ== -bluebird@3.7.2: +bluebird@^3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: - version "4.11.9" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" - integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== - -bn.js@^5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0" - integrity sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA== - body-parser@1.19.0: version "1.19.0" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" @@ -1123,225 +229,6 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browser-pack@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.1.0.tgz#c34ba10d0b9ce162b5af227c7131c92c2ecd5774" - integrity sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA== - dependencies: - JSONStream "^1.0.3" - combine-source-map "~0.8.0" - defined "^1.0.0" - safe-buffer "^5.1.1" - through2 "^2.0.0" - umd "^3.0.0" - -browser-resolve@^1.11.0, browser-resolve@^1.7.0: - version "1.11.3" - resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" - integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== - dependencies: - resolve "1.1.7" - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= - dependencies: - bn.js "^4.1.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.0.tgz#545d0b1b07e6b2c99211082bf1b12cce7a0b0e11" - integrity sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.2" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserify-zlib@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserify@16.2.3: - version "16.2.3" - resolved "https://registry.yarnpkg.com/browserify/-/browserify-16.2.3.tgz#7ee6e654ba4f92bce6ab3599c3485b1cc7a0ad0b" - integrity sha512-zQt/Gd1+W+IY+h/xX2NYMW4orQWhqSwyV+xsblycTtpOuB27h1fZhhNQuipJ4t79ohw4P4mMem0jp/ZkISQtjQ== - dependencies: - JSONStream "^1.0.3" - assert "^1.4.0" - browser-pack "^6.0.1" - browser-resolve "^1.11.0" - browserify-zlib "~0.2.0" - buffer "^5.0.2" - cached-path-relative "^1.0.0" - concat-stream "^1.6.0" - console-browserify "^1.1.0" - constants-browserify "~1.0.0" - crypto-browserify "^3.0.0" - defined "^1.0.0" - deps-sort "^2.0.0" - domain-browser "^1.2.0" - duplexer2 "~0.1.2" - events "^2.0.0" - glob "^7.1.0" - has "^1.0.0" - htmlescape "^1.1.0" - https-browserify "^1.0.0" - inherits "~2.0.1" - insert-module-globals "^7.0.0" - labeled-stream-splicer "^2.0.0" - mkdirp "^0.5.0" - module-deps "^6.0.0" - os-browserify "~0.3.0" - parents "^1.0.1" - path-browserify "~0.0.0" - process "~0.11.0" - punycode "^1.3.2" - querystring-es3 "~0.2.0" - read-only-stream "^2.0.0" - readable-stream "^2.0.2" - resolve "^1.1.4" - shasum "^1.0.0" - shell-quote "^1.6.1" - stream-browserify "^2.0.0" - stream-http "^2.0.0" - string_decoder "^1.1.1" - subarg "^1.0.0" - syntax-error "^1.1.1" - through2 "^2.0.0" - timers-browserify "^1.0.1" - tty-browserify "0.0.1" - url "~0.11.0" - util "~0.10.1" - vm-browserify "^1.0.0" - xtend "^4.0.0" - -browserify@^16.1.0: - version "16.5.1" - resolved "https://registry.yarnpkg.com/browserify/-/browserify-16.5.1.tgz#3c13c97436802930d5c3ae28658ddc33bfd37dc2" - integrity sha512-EQX0h59Pp+0GtSRb5rL6OTfrttlzv+uyaUVlK6GX3w11SQ0jKPKyjC/54RhPR2ib2KmfcELM06e8FxcI5XNU2A== - dependencies: - JSONStream "^1.0.3" - assert "^1.4.0" - browser-pack "^6.0.1" - browser-resolve "^1.11.0" - browserify-zlib "~0.2.0" - buffer "~5.2.1" - cached-path-relative "^1.0.0" - concat-stream "^1.6.0" - console-browserify "^1.1.0" - constants-browserify "~1.0.0" - crypto-browserify "^3.0.0" - defined "^1.0.0" - deps-sort "^2.0.0" - domain-browser "^1.2.0" - duplexer2 "~0.1.2" - events "^2.0.0" - glob "^7.1.0" - has "^1.0.0" - htmlescape "^1.1.0" - https-browserify "^1.0.0" - inherits "~2.0.1" - insert-module-globals "^7.0.0" - labeled-stream-splicer "^2.0.0" - mkdirp-classic "^0.5.2" - module-deps "^6.0.0" - os-browserify "~0.3.0" - parents "^1.0.1" - path-browserify "~0.0.0" - process "~0.11.0" - punycode "^1.3.2" - querystring-es3 "~0.2.0" - read-only-stream "^2.0.0" - readable-stream "^2.0.2" - resolve "^1.1.4" - shasum "^1.0.0" - shell-quote "^1.6.1" - stream-browserify "^2.0.0" - stream-http "^3.0.0" - string_decoder "^1.1.1" - subarg "^1.0.0" - syntax-error "^1.1.1" - through2 "^2.0.0" - timers-browserify "^1.0.1" - tty-browserify "0.0.1" - url "~0.11.0" - util "~0.10.1" - vm-browserify "^1.0.0" - xtend "^4.0.0" - -browserslist@^4.6.0, browserslist@^4.8.5: - version "4.12.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.12.1.tgz#6d08bef149b70d153930780ba762644e0f329122" - integrity sha512-WMjXwFtPskSW1pQUDJRxvRKRkeCr7usN0O/Za76N+F4oadaTdQHotSGcX9jT/Hs7mSKPkyMFNvqawB/1HzYDKQ== - dependencies: - caniuse-lite "^1.0.30001088" - electron-to-chromium "^1.3.481" - escalade "^3.0.1" - node-releases "^1.1.58" - buffer-crc32@~0.2.3: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" @@ -1352,81 +239,21 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^5.0.2: - version "5.6.0" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" - integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - -buffer@~5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6" - integrity sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - bytes@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -cached-path-relative@^1.0.0, cached-path-relative@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.2.tgz#a13df4196d26776220cc3356eb147a52dba2c6db" - integrity sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg== - -cachedir@2.3.0: +cachedir@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== -caniuse-lite@^1.0.30001088: - version "1.0.30001088" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001088.tgz#23a6b9e192106107458528858f2c0e0dba0d9073" - integrity sha512-6eYUrlShRYveyqKG58HcyOfPgh3zb2xqs7NvT2VVtP3hEUeeWvc3lqhpeMTxYWBBeeaT9A4bKsrtjATm66BTHg== - caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chalk@2.4.2, chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - chalk@^1.0.0, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" @@ -1438,53 +265,38 @@ chalk@^1.0.0, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -check-more-types@2.24.0: +chalk@^2.4.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +check-more-types@^2.24.0: version "2.24.0" resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" integrity sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA= -chokidar@^2.0.4, chokidar@^2.1.1: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== ci-info@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - cli-cursor@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" @@ -1499,13 +311,13 @@ cli-cursor@^2.0.0, cli-cursor@^2.1.0: dependencies: restore-cursor "^2.0.0" -cli-table3@0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" - integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw== +cli-table3@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.0.tgz#b7b1bc65ca8e7b5cef9124e13dc2b21e2ce4faee" + integrity sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ== dependencies: object-assign "^4.1.0" - string-width "^2.1.1" + string-width "^4.2.0" optionalDependencies: colors "^1.1.2" @@ -1522,54 +334,35 @@ code-point-at@^1.0.0: resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= -coffeeify@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/coffeeify/-/coffeeify-3.0.1.tgz#5e2753000c50bd24c693115f33864248dd11136c" - integrity sha512-Qjnr7UX6ldK1PHV7wCnv7AuCd4q19KTUtwJnu/6JRJB4rfm12zvcXtKdacUoePOKr1I4ka/ydKiwWpNAdsQb0g== - dependencies: - convert-source-map "^1.3.0" - through2 "^2.0.0" - -coffeescript@1.12.7: - version "1.12.7" - resolved "https://registry.yarnpkg.com/coffeescript/-/coffeescript-1.12.7.tgz#e57ee4c4867cf7f606bfc4a0f2d550c0981ddd27" - integrity sha512-pLXHFxQMPklVoEekowk8b3erNynC+DVJzChxS/LCBBgR6/8AJkHivkm//zbowcfc7BTCAjryuhx6gPqPRfsFoA== - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: - color-name "1.1.3" + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + colors@^1.1.2: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== -combine-source-map@^0.8.0, combine-source-map@~0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.8.0.tgz#a58d0df042c186fcf822a8e8015f5450d2d79a8b" - integrity sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos= - dependencies: - convert-source-map "~1.1.0" - inline-source-map "~0.6.0" - lodash.memoize "~3.0.3" - source-map "~0.5.3" - combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -1577,27 +370,22 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@4.1.1: +commander@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== -common-tags@1.8.0: +common-tags@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@^1.6.2, concat-stream@~1.6.0: +concat-stream@^1.6.2: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -1607,16 +395,6 @@ concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@^1.6.2, concat-stream@ readable-stream "^2.2.2" typedarray "^0.0.6" -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - -constants-browserify@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= - content-disposition@0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" @@ -1629,18 +407,6 @@ content-type@~1.0.4: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== -convert-source-map@^1.1.0, convert-source-map@^1.3.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -convert-source-map@~1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860" - integrity sha1-SCnId+n+SbMWHzvzZziI4gRpmGA= - cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" @@ -1651,130 +417,63 @@ cookie@0.4.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -core-js-compat@^3.1.1: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c" - integrity sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng== - dependencies: - browserslist "^4.8.5" - semver "7.0.0" - core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -create-ecdh@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" - integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== - dependencies: - bn.js "^4.1.0" - elliptic "^6.0.0" - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== +cross-spawn@^7.0.0: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" -cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -crypto-browserify@^3.0.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -cypress@^4.8.0: - version "4.9.0" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-4.9.0.tgz#c188a3864ddf841c0fdc81a9e4eff5cf539cd1c1" - integrity sha512-qGxT5E0j21FPryzhb0OBjCdhoR/n1jXtumpFFSBPYWsaZZhNaBvc3XlBUDEZKkkXPsqUFYiyhWdHN/zo0t5FcA== - dependencies: - "@cypress/listr-verbose-renderer" "0.4.1" - "@cypress/request" "2.88.5" - "@cypress/xvfb" "1.2.4" - "@types/sinonjs__fake-timers" "6.0.1" - "@types/sizzle" "2.3.2" - arch "2.1.2" - bluebird "3.7.2" - cachedir "2.3.0" - chalk "2.4.2" - check-more-types "2.24.0" - cli-table3 "0.5.1" - commander "4.1.1" - common-tags "1.8.0" - debug "4.1.1" - eventemitter2 "6.4.2" - execa "1.0.0" - executable "4.1.1" - extract-zip "1.7.0" - fs-extra "8.1.0" - getos "3.2.1" - is-ci "2.0.0" - is-installed-globally "0.3.2" - lazy-ass "1.6.0" - listr "0.14.3" - lodash "4.17.15" - log-symbols "3.0.0" - minimist "1.2.5" - moment "2.26.0" - ospath "1.2.2" - pretty-bytes "5.3.0" - ramda "0.26.1" - request-progress "3.0.0" - supports-color "7.1.0" - tmp "0.1.0" - untildify "4.0.0" - url "0.11.0" - yauzl "2.10.0" - -dash-ast@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dash-ast/-/dash-ast-1.0.0.tgz#12029ba5fb2f8aa6f0a861795b23c1b4b6c27d37" - integrity sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA== +cypress@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-5.2.0.tgz#6902efd90703242a2539f0623c6e1118aff01f95" + integrity sha512-9S2spcrpIXrQ+CQIKHsjRoLQyRc2ehB06clJXPXXp1zyOL/uZMM3Qc20ipNki4CcNwY0nBTQZffPbRpODeGYQg== + dependencies: + "@cypress/listr-verbose-renderer" "^0.4.1" + "@cypress/request" "^2.88.5" + "@cypress/xvfb" "^1.2.4" + "@types/sinonjs__fake-timers" "^6.0.1" + "@types/sizzle" "^2.3.2" + arch "^2.1.2" + blob-util "2.0.2" + bluebird "^3.7.2" + cachedir "^2.3.0" + chalk "^4.1.0" + check-more-types "^2.24.0" + cli-table3 "~0.6.0" + commander "^4.1.1" + common-tags "^1.8.0" + debug "^4.1.1" + eventemitter2 "^6.4.2" + execa "^4.0.2" + executable "^4.1.1" + extract-zip "^1.7.0" + fs-extra "^9.0.1" + getos "^3.2.1" + is-ci "^2.0.0" + is-installed-globally "^0.3.2" + lazy-ass "^1.6.0" + listr "^0.14.3" + lodash "^4.17.19" + log-symbols "^4.0.0" + minimist "^1.2.5" + moment "^2.27.0" + ospath "^1.2.2" + pretty-bytes "^5.3.0" + ramda "~0.26.1" + request-progress "^3.0.0" + supports-color "^7.1.0" + tmp "~0.2.1" + untildify "^4.0.0" + url "^0.11.0" + yauzl "^2.10.0" dashdash@^1.12.0: version "1.14.1" @@ -1788,20 +487,13 @@ date-fns@^1.27.2: resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: +debug@2.6.9, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@4.1.1, debug@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - debug@^3.1.0: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" @@ -1809,44 +501,12 @@ debug@^3.1.0: dependencies: ms "^2.1.1" -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -define-properties@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== +debug@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1" + integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg== dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -defined@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= + ms "2.1.2" delayed-stream@~1.0.0: version "1.0.0" @@ -1858,59 +518,11 @@ depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= -deps-sort@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.1.tgz#9dfdc876d2bcec3386b6829ac52162cda9fa208d" - integrity sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw== - dependencies: - JSONStream "^1.0.3" - shasum-object "^1.0.0" - subarg "^1.0.0" - through2 "^2.0.0" - -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - destroy@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= -detective@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b" - integrity sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg== - dependencies: - acorn-node "^1.6.1" - defined "^1.0.0" - minimist "^1.1.1" - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -domain-browser@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -duplexer2@^0.1.2, duplexer2@~0.1.0, duplexer2@~0.1.2: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" - integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME= - dependencies: - readable-stream "^2.0.2" - ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -1924,28 +536,15 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.481: - version "1.3.481" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.481.tgz#0d59e72a0aaeb876b43fb1d6e84bf0dfc99617e8" - integrity sha512-q2PeCP2PQXSYadDo9uNY+uHXjdB9PcsUpCVoGlY8TZOPHGlXdevlqW9PkKeqCxn2QBkGB8b6AcMO++gh8X82bA== - elegant-spinner@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4= -elliptic@^6.0.0, elliptic@^6.5.2: - version "6.5.3" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" - integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== encodeurl@~1.0.2: version "1.0.2" @@ -1959,11 +558,6 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" -escalade@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.0.1.tgz#52568a77443f6927cd0ab9c73129137533c965ed" - integrity sha512-DR6NO3h9niOT+MZs7bjxlj2a1k+POu5RN8CLTPX2+i78bRi9eLe7+0zXgUHMnGXWybYcL61E9hGhPKqedy8tQA== - escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -1979,38 +573,27 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= -eventemitter2@6.4.2: - version "6.4.2" - resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.2.tgz#f31f8b99d45245f0edbc5b00797830ff3b388970" - integrity sha512-r/Pwupa5RIzxIHbEKCkNXqpEQIIT4uQDxmP4G/Lug/NokVUWj0joz/WzWl3OxRpC5kDrH/WdiUJoR+IrwvXJEw== - -events@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/events/-/events-2.1.0.tgz#2a9a1e18e6106e0e812aa9ebd4a819b3c29c0ba5" - integrity sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg== - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" +eventemitter2@^6.4.2: + version "6.4.3" + resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.3.tgz#35c563619b13f3681e7eb05cbdaf50f56ba58820" + integrity sha512-t0A2msp6BzOf+QAcI6z9XMktLj52OjGQg+8SJH6v5+3uxNpWYRR3wQmfA+6xtMU9kOC59qk9licus5dYcrYkMQ== -execa@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" +execa@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.0.3.tgz#0a34dabbad6d66100bd6f2c576c8669403f317f2" + integrity sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" -executable@4.1.1: +executable@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg== @@ -2022,19 +605,6 @@ exit-hook@^1.0.0: resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" integrity sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g= -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - express@4.17.1: version "4.17.1" resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" @@ -2071,41 +641,12 @@ express@4.17.1: utils-merge "1.0.1" vary "~1.1.2" -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extract-zip@1.7.0: +extract-zip@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== @@ -2135,11 +676,6 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-safe-stringify@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743" - integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA== - fd-slicer@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" @@ -2162,21 +698,6 @@ figures@^2.0.0: dependencies: escape-string-regexp "^1.0.5" -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - finalhandler@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" @@ -2190,11 +711,6 @@ finalhandler@~1.1.2: statuses "~1.5.0" unpipe "~1.0.0" -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" @@ -2214,73 +730,41 @@ forwarded@~0.1.2: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= -fs-extra@8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.0.tgz#b6afc31036e247b2466dc99c29ae797d5d4580a3" - integrity sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g== +fs-extra@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc" + integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ== dependencies: at-least-node "^1.0.0" graceful-fs "^4.2.0" jsonfile "^6.0.1" universalify "^1.0.0" +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -get-assigned-identifiers@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1" - integrity sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ== - -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== +get-stream@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== dependencies: pump "^3.0.0" -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -getos@3.2.1: +getos@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/getos/-/getos-3.2.1.tgz#0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5" integrity sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q== @@ -2294,15 +778,7 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob@^7.1.0, glob@^7.1.3: +glob@^7.1.3: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -2321,12 +797,7 @@ global-dirs@^2.0.1: dependencies: ini "^1.3.5" -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -graceful-fs@^4.1.11, graceful-fs@^4.1.6, graceful-fs@^4.2.0: +graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.4" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== @@ -2361,80 +832,6 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -htmlescape@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" - integrity sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E= - http-errors@1.7.2: version "1.7.2" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" @@ -2466,10 +863,10 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== iconv-lite@0.4.24: version "0.4.24" @@ -2478,11 +875,6 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - indent-string@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" @@ -2496,16 +888,11 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - inherits@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" @@ -2516,123 +903,18 @@ ini@^1.3.5: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== -inline-source-map@~0.6.0: - version "0.6.2" - resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5" - integrity sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU= - dependencies: - source-map "~0.5.3" - -insert-module-globals@^7.0.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.2.0.tgz#ec87e5b42728479e327bd5c5c71611ddfb4752ba" - integrity sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw== - dependencies: - JSONStream "^1.0.3" - acorn-node "^1.5.2" - combine-source-map "^0.8.0" - concat-stream "^1.6.1" - is-buffer "^1.1.0" - path-is-absolute "^1.0.1" - process "~0.11.0" - through2 "^2.0.0" - undeclared-identifiers "^1.1.2" - xtend "^4.0.0" - -invariant@^2.2.2: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - ipaddr.js@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - -is-buffer@^1.1.0, is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-ci@2.0.0: +is-ci@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== dependencies: ci-info "^2.0.0" -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - is-fullwidth-code-point@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" @@ -2645,21 +927,12 @@ is-fullwidth-code-point@^2.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-installed-globally@0.3.2: +is-installed-globally@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== @@ -2667,13 +940,6 @@ is-installed-globally@0.3.2: global-dirs "^2.0.1" is-path-inside "^3.0.1" -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - is-observable@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" @@ -2686,13 +952,6 @@ is-path-inside@^3.0.1: resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017" integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg== -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - is-promise@^2.1.0: version "2.2.2" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" @@ -2703,17 +962,17 @@ is-stream@^1.1.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -isarray@1.0.0, isarray@~1.0.0: +isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= @@ -2723,48 +982,16 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -js-levenshtein@^1.1.3: - version "1.1.6" - resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" - integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -2775,32 +1002,11 @@ json-schema@0.2.3: resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= -json-stable-stringify@~0.0.0: - version "0.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz#611c23e814db375527df851193db59dd2af27f45" - integrity sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U= - dependencies: - jsonify "~0.0.0" - json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json5@^2.1.0: - version "2.1.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" - integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== - dependencies: - minimist "^1.2.5" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - jsonfile@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179" @@ -2810,16 +1016,6 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= - -jsonparse@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" - integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= - jsprim@^1.2.2: version "1.4.1" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" @@ -2830,39 +1026,7 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -labeled-stream-splicer@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz#42a41a16abcd46fd046306cf4f2c3576fffb1c21" - integrity sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw== - dependencies: - inherits "^2.0.1" - stream-splicer "^2.0.0" - -lazy-ass@1.6.0: +lazy-ass@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" integrity sha1-eZllXoZGwX8In90YfRUNMyTVRRM= @@ -2896,7 +1060,7 @@ listr-verbose-renderer@^0.5.0: date-fns "^1.27.2" figures "^2.0.0" -listr@0.14.3: +listr@^0.14.3: version "0.14.3" resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA== @@ -2911,32 +1075,15 @@ listr@0.14.3: p-map "^2.0.0" rxjs "^6.3.3" -lodash.clonedeep@4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" - integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= - -lodash.memoize@~3.0.3: - version "3.0.4" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" - integrity sha1-LcvSwofLwKVcxCMovQxzYVDVPj8= - lodash.once@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= -lodash@4.17.15, lodash@^4.17.11, lodash@^4.17.13: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== - -log-symbols@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" - integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== - dependencies: - chalk "^2.4.2" +lodash@^4.17.19: + version "4.17.20" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== log-symbols@^1.0.2: version "1.0.2" @@ -2945,42 +1092,21 @@ log-symbols@^1.0.2: dependencies: chalk "^1.0.0" +log-symbols@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" + integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== + dependencies: + chalk "^4.0.0" + log-update@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" integrity sha1-iDKP19HOeTiykoN0bwsbwSayRwg= dependencies: - ansi-escapes "^3.0.0" - cli-cursor "^2.0.0" - wrap-ansi "^3.0.1" - -loose-envify@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" + ansi-escapes "^3.0.0" + cli-cursor "^2.0.0" + wrap-ansi "^3.0.1" media-typer@0.3.0: version "0.3.0" @@ -2992,38 +1118,16 @@ merge-descriptors@1.0.1: resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= -micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - mime-db@1.44.0: version "1.44.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" @@ -3046,15 +1150,10 @@ mimic-fn@^1.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== minimatch@^3.0.4: version "3.0.4" @@ -3063,56 +1162,42 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimist@1.2.5, minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.5: +minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== +minipass@^3.0.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" + integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" + yallist "^4.0.0" -mkdirp-classic@^0.5.2: - version "0.5.3" - resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" - integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" -mkdirp@^0.5.0, mkdirp@^0.5.4: +mkdirp@^0.5.4: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== dependencies: minimist "^1.2.5" -module-deps@^6.0.0: - version "6.2.2" - resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.2.2.tgz#d8a15c2265dfc119153c29bb47386987d0ee423b" - integrity sha512-a9y6yDv5u5I4A+IPHTnqFxcaKr4p50/zxTjcQJaX2ws9tN/W6J6YXnEKhqRyPhl494dkcxx951onSKVezmI+3w== - dependencies: - JSONStream "^1.0.3" - browser-resolve "^1.7.0" - cached-path-relative "^1.0.2" - concat-stream "~1.6.0" - defined "^1.0.0" - detective "^5.2.0" - duplexer2 "^0.1.2" - inherits "^2.0.1" - parents "^1.0.0" - readable-stream "^2.0.2" - resolve "^1.4.0" - stream-combiner2 "^1.1.1" - subarg "^1.0.0" - through2 "^2.0.0" - xtend "^4.0.0" - -moment@2.26.0: - version "2.26.0" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.26.0.tgz#5e1f82c6bafca6e83e808b30c8705eed0dcbd39a" - integrity sha512-oIixUO+OamkUkwjhAVE18rAMfRJNsNe/Stid/gwHSOfHrOtw9EhAY2AHvdKZ/k/MggcYELFCJz/Sn2pL8b8JMw== +mkdirp@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +moment@^2.27.0: + version "2.29.0" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.0.tgz#fcbef955844d91deb55438613ddcec56e86a3425" + integrity sha512-z6IJ5HXYiuxvFTI6eiQ9dm77uE0gyy1yXNApVHqTcnIKfY9tIwEjlzsZ6u1LQXvVgKeTnv9Xm7NDvJ7lso3MtA== ms@2.0.0: version "2.0.0" @@ -3124,66 +1209,22 @@ ms@2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== -ms@^2.1.1: +ms@2.1.2, ms@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -nan@^2.12.1: - version "2.14.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" - integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - negotiator@0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -node-releases@^1.1.58: - version "1.1.58" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.58.tgz#8ee20eef30fa60e52755fcc0942def5a734fe935" - integrity sha512-NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg== - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: - path-key "^2.0.0" + path-key "^3.0.0" number-is-nan@^1.0.0: version "1.0.1" @@ -3195,49 +1236,11 @@ oauth-sign@~0.9.0: resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-keys@^1.0.11, object-keys@^1.0.12: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" @@ -3264,113 +1267,43 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" -os-browserify@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" -ospath@1.2.2: +ospath@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" integrity sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs= -outpipe@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/outpipe/-/outpipe-1.1.1.tgz#50cf8616365e87e031e29a5ec9339a3da4725fa2" - integrity sha1-UM+GFjZeh+Ax4ppeyTOaPaRyX6I= - dependencies: - shell-quote "^1.4.2" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - p-map@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -parents@^1.0.0, parents@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751" - integrity sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E= - dependencies: - path-platform "~0.11.15" - -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.5" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" - integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== - dependencies: - asn1.js "^4.0.0" - browserify-aes "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-browserify@~0.0.0: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: +path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== - -path-platform@~0.11.15: - version "0.11.15" - resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2" - integrity sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I= +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= -pbkdf2@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" - integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - pend@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" @@ -3386,31 +1319,16 @@ pify@^2.2.0: resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -pretty-bytes@5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.3.0.tgz#f2849e27db79fb4d6cfe24764fc4134f165989f2" - integrity sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg== - -private@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== +pretty-bytes@^5.3.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.4.1.tgz#cd89f79bbcef21e3d21eb0da68ffe93f803e884b" + integrity sha512-s1Iam6Gwz3JI5Hweaz4GoCD1WUNUIyzePFy5+Js2hjwGVt2Z79wNN+ZKOZ2vB6C+Xs6njyB84Z1IthQg8d9LxA== process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -process@~0.11.0: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= - proxy-addr@~2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" @@ -3424,18 +1342,6 @@ psl@^1.1.28: resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -3449,11 +1355,6 @@ punycode@1.3.2: resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= -punycode@^1.3.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" @@ -3469,36 +1370,16 @@ qs@~6.5.2: resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== -querystring-es3@~0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - querystring@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= -ramda@0.26.1: +ramda@~0.26.1: version "0.26.1" resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06" integrity sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ== -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" @@ -3514,14 +1395,7 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" -read-only-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0" - integrity sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A= - dependencies: - readable-stream "^2.0.2" - -readable-stream@^2.0.2, readable-stream@^2.2.2, readable-stream@^2.3.6, readable-stream@~2.3.6: +readable-stream@^2.2.2: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -3534,125 +1408,13 @@ readable-stream@^2.0.2, readable-stream@^2.2.2, readable-stream@^2.3.6, readable string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -regenerate-unicode-properties@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" - integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== - dependencies: - regenerate "^1.4.0" - -regenerate@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.1.tgz#cad92ad8e6b591773485fbe05a485caf4f457e6f" - integrity sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A== - -regenerator-runtime@^0.12.0: - version "0.12.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" - integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg== - -regenerator-runtime@^0.13.4: - version "0.13.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" - integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== - -regenerator-transform@^0.14.2: - version "0.14.4" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" - integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== - dependencies: - "@babel/runtime" "^7.8.4" - private "^0.1.8" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexpu-core@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" - integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.2.0" - regjsgen "^0.5.1" - regjsparser "^0.6.4" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.2.0" - -regjsgen@^0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" - integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== - -regjsparser@^0.6.4: - version "0.6.4" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" - integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== - dependencies: - jsesc "~0.5.0" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -request-progress@3.0.0: +request-progress@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe" integrity sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4= dependencies: throttleit "^1.0.0" -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= - -resolve@^1.1.4, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.8.1: - version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== - dependencies: - path-parse "^1.0.6" - restore-cursor@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" @@ -3669,26 +1431,13 @@ restore-cursor@^2.0.0: onetime "^2.0.0" signal-exit "^3.0.2" -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== +rimraf@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - rxjs@^6.3.3: version "6.5.5" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec" @@ -3701,33 +1450,16 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: +safe-buffer@^5.0.1, safe-buffer@^5.1.2: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -semver@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@^5.4.1, semver@^5.5.0, semver@^5.5.1: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - send@0.17.1: version "0.17.1" resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" @@ -3757,134 +1489,33 @@ serve-static@1.14.1: parseurl "~1.3.3" send "0.17.1" -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - setprototypeof@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== -sha.js@^2.4.0, sha.js@^2.4.8, sha.js@~2.4.4: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shasum-object@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shasum-object/-/shasum-object-1.0.0.tgz#0b7b74ff5b66ecf9035475522fa05090ac47e29e" - integrity sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg== - dependencies: - fast-safe-stringify "^2.0.7" - -shasum@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz#e7012310d8f417f4deb5712150e5678b87ae565f" - integrity sha1-5wEjENj0F/TetXEhUOVni4euVl8= - dependencies: - json-stable-stringify "~0.0.0" - sha.js "~2.4.4" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: - shebang-regex "^1.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + shebang-regex "^3.0.0" -shell-quote@^1.4.2, shell-quote@^1.6.1: - version "1.7.2" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" - integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -signal-exit@^3.0.0, signal-exit@^3.0.2: +signal-exit@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== -simple-concat@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6" - integrity sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY= - slice-ansi@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU= -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= - -source-map@^0.5.0, source-map@^0.5.6, source-map@~0.5.3: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - sshpk@^1.7.0: version "1.16.1" resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" @@ -3900,64 +1531,11 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - "statuses@>= 1.5.0 < 2", statuses@~1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= -stream-browserify@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-combiner2@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" - integrity sha1-+02KFCDqNidk4hrUeAOXvry0HL4= - dependencies: - duplexer2 "~0.1.0" - readable-stream "^2.0.2" - -stream-http@^2.0.0: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-http@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-3.1.1.tgz#0370a8017cf8d050b9a8554afe608f043eaff564" - integrity sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.4" - readable-stream "^3.6.0" - xtend "^4.0.2" - -stream-splicer@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.1.tgz#0b13b7ee2b5ac7e0609a7463d83899589a363fcd" - integrity sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg== - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.2" - string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -3975,12 +1553,14 @@ string-width@^2.1.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== +string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== dependencies: - safe-buffer "~5.2.0" + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" string_decoder@~1.1.1: version "1.1.1" @@ -4003,24 +1583,17 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -subarg@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" - integrity sha1-9izxdYHplrSPyWVpn1TAauJouNI= +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== dependencies: - minimist "^1.1.0" + ansi-regex "^5.0.0" -supports-color@7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" - integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== - dependencies: - has-flag "^4.0.0" +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== supports-color@^2.0.0: version "2.0.0" @@ -4034,84 +1607,41 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + symbol-observable@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== -syntax-error@^1.1.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.4.0.tgz#2d9d4ff5c064acb711594a3e3b95054ad51d907c" - integrity sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w== +tar@6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.5.tgz#bde815086e10b39f1dcd298e89d596e1535e200f" + integrity sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg== dependencies: - acorn-node "^1.2.0" + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" throttleit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw= -through2@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -"through@>=2.2.7 <3": - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -timers-browserify@^1.0.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" - integrity sha1-ycWLV1voQHN1y14kYtrO50NZ9B0= - dependencies: - process "~0.11.0" - -tmp@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" - integrity sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw== - dependencies: - rimraf "^2.6.3" - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== +tmp@~0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" + rimraf "^3.0.0" toidentifier@1.0.0: version "1.0.0" @@ -4131,11 +1661,6 @@ tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== -tty-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811" - integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw== - tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" @@ -4166,60 +1691,6 @@ typescript@3.9.5: resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.5.tgz#586f0dba300cde8be52dd1ac4f7e1009c1b13f36" integrity sha512-hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ== -umd@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.3.tgz#aa9fe653c42b9097678489c01000acb69f0b26cf" - integrity sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow== - -undeclared-identifiers@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz#9254c1d37bdac0ac2b52de4b6722792d2a91e30f" - integrity sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw== - dependencies: - acorn-node "^1.3.0" - dash-ast "^1.0.0" - get-assigned-identifiers "^1.2.0" - simple-concat "^1.0.0" - xtend "^4.0.1" - -unicode-canonical-property-names-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== - -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== - dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" - -unicode-match-property-value-ecmascript@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" - integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== - -unicode-property-aliases-ecmascript@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" - integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - universalify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" @@ -4230,24 +1701,11 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -untildify@4.0.0: +untildify@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - uri-js@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" @@ -4255,12 +1713,7 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url@0.11.0, url@~0.11.0: +url@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= @@ -4268,30 +1721,11 @@ url@0.11.0, url@~0.11.0: punycode "1.3.2" querystring "0.2.0" -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: +util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@~0.10.1: - version "0.10.4" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" - integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== - dependencies: - inherits "2.0.3" - utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" @@ -4316,28 +1750,10 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -vm-browserify@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - -watchify@3.11.1: - version "3.11.1" - resolved "https://registry.yarnpkg.com/watchify/-/watchify-3.11.1.tgz#8e4665871fff1ef64c0430d1a2c9d084d9721881" - integrity sha512-WwnUClyFNRMB2NIiHgJU9RQPQNqVeFk7OmZaWf5dC5EnNa0Mgr7imBydbaJ7tGTuPM2hz1Cb4uiBvK9NVxMfog== - dependencies: - anymatch "^2.0.0" - browserify "^16.1.0" - chokidar "^2.1.1" - defined "^1.0.0" - outpipe "^1.1.0" - through2 "^2.0.0" - xtend "^4.0.0" - -which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" @@ -4354,12 +1770,12 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yauzl@2.10.0, yauzl@^2.10.0: +yauzl@^2.10.0: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= diff --git a/packages/esbuild/BUILD.bazel b/packages/esbuild/BUILD.bazel new file mode 100644 index 0000000000..365dd85f50 --- /dev/null +++ b/packages/esbuild/BUILD.bazel @@ -0,0 +1,83 @@ +# Copyright 2020 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +load("@bazel_skylib//:bzl_library.bzl", "bzl_library") +load("@build_bazel_rules_nodejs//:tools/defaults.bzl", "codeowners", "pkg_npm") +load("@build_bazel_rules_nodejs//tools/stardoc:index.bzl", "stardoc") +load("//third_party/github.com/bazelbuild/bazel-skylib:rules/copy_file.bzl", "copy_file") + +package(default_visibility = ["//visibility:public"]) + +codeowners( + teams = ["@mattem"], +) + +bzl_library( + name = "bzl", + srcs = glob(["**/*.bzl"]), + deps = [ + "@bazel_skylib//lib:paths", + "@build_bazel_rules_nodejs//:bzl", + "@build_bazel_rules_nodejs//internal/common:bzl", + "@build_bazel_rules_nodejs//internal/node:bzl", + ], +) + +stardoc( + name = "docs", + testonly = True, + out = "index.md", + input = "index.bzl", + tags = ["fix-windows"], + deps = [":bzl"], +) + +genrule( + name = "generate_README", + srcs = [ + "_README.md", + "index.md", + ], + outs = ["README.md"], + cmd = """cat $(execpath _README.md) $(execpath index.md) | sed 's/^##/\\\n##/' > $@""", + tags = ["fix-windows"], + visibility = ["//docs:__pkg__"], +) + +copy_file( + name = "npm_version_check", + src = "//internal:npm_version_check.js", + out = ":npm_version_check.js", +) + +pkg_npm( + name = "npm_package", + srcs = [ + "esbuild.bzl", + "esbuild_repo.bzl", + "helpers.bzl", + "index.bzl", + "package.json", + ], + build_file_content = " ", + deps = [ + ":npm_version_check", + ] + select({ + # FIXME: fix stardoc on Windows; //packages/karma:index.md generation fails with: + # ERROR: D:/b/62unjjin/external/npm_bazel_karma/BUILD.bazel:65:1: Couldn't build file + # external/npm_bazel_karma/docs.raw: Generating proto for Starlark doc for docs failed (Exit 1) + "@bazel_tools//src/conditions:windows": [], + "//conditions:default": [":generate_README"], + }), +) diff --git a/packages/esbuild/_README.md b/packages/esbuild/_README.md new file mode 100644 index 0000000000..8fb0b7aac8 --- /dev/null +++ b/packages/esbuild/_README.md @@ -0,0 +1,60 @@ +# esbuild rules for Bazel + +The esbuild rules runs the [esbuild](https://github.com/evanw/esbuild) bundler tool with Bazel. + +## Installation + +Add the `@bazel/esbuild` npm packages to your `devDependencies` in `package.json`. + +``` +npm install --save-dev @bazel/esbuild +``` +or using yarn +``` +yarn add -D @bazel/esbuild +``` + +Add the esbuild repository to the `WORKSPACE` file + +```python +load("@npm//@bazel/esbuild:index.bzl", "esbuild_repository") + +esbuild_repository(name = "esbuild") +``` + +The version of `esbuild` can be specified by passing the `version` and `platform_sha` attributes + +```python +load("@npm//@bazel/esbuild:index.bzl", "esbuild_repository") + +esbuild_repository( + name = "esbuild", + version = "0.7.19", + platform_sha = { + "darwin_64": "deadf43c0868430983234f90781e1b542975a2bc3549b2353303fac236816149", + "linux_64": "2d25ad82dba8f565e8766b838acd3b966f9a2417499105ec10afb01611594ef1", + "windows_64": "135b2ff549d4b1cfa4f8e2226f85ee97641b468aaced7585112ebe8c0af2d766", + } +) +``` + +## Example use of esbuild + +The `esbuild` rule can take a JS or TS dependency tree and bundle it to a single file, or split across multiple files, outputting a directory. + +```python +ts_library( + name = "lib", + srcs = ["a.ts"], +) + +esbuild( + name = "bundle", + entry_point = "a.ts", + deps = [":lib"], +) +``` + +The above will create three output files, `bundle.js`, `bundle.js.map` and `bundle_metadata.json` which contains the bundle metadata to aid in debugging and resoloution tracing. + +Further options for minifying and splitting are available. diff --git a/packages/esbuild/esbuild.bzl b/packages/esbuild/esbuild.bzl new file mode 100644 index 0000000000..4c3e7244ff --- /dev/null +++ b/packages/esbuild/esbuild.bzl @@ -0,0 +1,252 @@ +""" +esbuild rule +""" + +load("@bazel_skylib//lib:paths.bzl", "paths") +load("@build_bazel_rules_nodejs//:providers.bzl", "JSEcmaScriptModuleInfo", "JSModuleInfo", "NpmPackageInfo", "node_modules_aspect") +load("@build_bazel_rules_nodejs//internal/linker:link_node_modules.bzl", "ASPECT_RESULT_NAME", "module_mappings_aspect") +load(":helpers.bzl", "filter_files", "resolve_js_input") + +def _generate_path_mapping(package_name, path): + """Generate a path alias mapping for a jsconfig.json + + For example: {"@my-alias/*": [ "path/to/my-alias/*" ]}, + + Args: + package_name: The module name + path: The base path of the package + """ + pkg = {} + + # entry for the barrel files favor mjs over normal as it results + # in smaller bundles + pkg[package_name] = [ + path + "/index.mjs", + path, + ] + + # A glob import for deep package imports + pkg[package_name + "/*"] = [path + "/*"] + + return pkg + +def _write_jsconfig_file(ctx, path_alias_mappings): + """Writes the js config file for the path alias mappings. + + Args: + ctx: The rule context + path_alias_mappings: Dict with the mappings + + """ + + # The package path + rule_path = paths.dirname(ctx.build_file_path) + + # Replace all segments in the path with .. join them with "/" and postfix + # it with another / to get a relative path from the build file dir + # to the workspace root. + base_url_path = "/".join([".." for segment in rule_path.split("/")]) + "/" + + # declare the jsconfig_file + jsconfig_file = ctx.actions.declare_file("%s.config.json" % ctx.attr.name) + + # write the config file + ctx.actions.write( + output = jsconfig_file, + content = struct(compilerOptions = struct( + rootDirs = ["."], + baseUrl = base_url_path, + paths = path_alias_mappings, + )).to_json(), + ) + + return jsconfig_file + +def _esbuild_impl(ctx): + # For each dep, JSEcmaScriptModuleInfo is used if found, then JSModuleInfo and finally + # the DefaultInfo files are used if the former providers are not found. + deps_depsets = [] + + # Path alias mapings are used to create a jsconfig with mappings so that esbuild + # how to resolve custom package or module names + path_alias_mappings = dict() + + for dep in ctx.attr.deps: + if JSEcmaScriptModuleInfo in dep: + deps_depsets.append(dep[JSEcmaScriptModuleInfo].sources) + + if JSModuleInfo in dep: + deps_depsets.append(dep[JSModuleInfo].sources) + elif hasattr(dep, "files"): + deps_depsets.append(dep.files) + + if NpmPackageInfo in dep: + deps_depsets.append(dep[NpmPackageInfo].sources) + + # Collect the path alias mapping to resolve packages correctly + if hasattr(dep, ASPECT_RESULT_NAME): + for key, value in getattr(dep, ASPECT_RESULT_NAME).items(): + path_alias_mappings.update(_generate_path_mapping(key, value[1].replace(ctx.bin_dir.path + "/", ""))) + + deps_inputs = depset(transitive = deps_depsets).to_list() + inputs = filter_files(ctx.files.entry_point, [".mjs", ".js"]) + ctx.files.srcs + deps_inputs + + metafile = ctx.actions.declare_file("%s_metadata.json" % ctx.attr.name) + outputs = [metafile] + + entry_point = resolve_js_input(ctx.file.entry_point, inputs) + + args = ctx.actions.args() + + args.add("--bundle", entry_point.path) + args.add("--sourcemap") + args.add_joined(["--platform", ctx.attr.platform], join_with = "=") + args.add_joined(["--target", ctx.attr.target], join_with = "=") + args.add_joined(["--log-level", "info"], join_with = "=") + args.add_joined(["--metafile", metafile.path], join_with = "=") + args.add_joined(["--define:process.env.NODE_ENV", '"production"'], join_with = "=") + + # disable the error limit and show all errors + args.add_joined(["--error-limit", "0"], join_with = "=") + + if ctx.attr.splitting: + js_out = ctx.actions.declare_directory("%s" % ctx.attr.name) + outputs.append(js_out) + + args.add("--splitting") + args.add_joined(["--format", "esm"], join_with = "=") + args.add_joined(["--outdir", js_out.path], join_with = "=") + else: + js_out = ctx.outputs.output + js_out_map = ctx.outputs.output_map + outputs.extend([js_out, js_out_map]) + + if ctx.attr.format: + args.add_joined(["--format", ctx.attr.format], join_with = "=") + + args.add_joined(["--outfile", js_out.path], join_with = "=") + + jsconfig_file = _write_jsconfig_file(ctx, path_alias_mappings) + args.add_joined(["--tsconfig", jsconfig_file.path], join_with = "=") + inputs.append(jsconfig_file) + + # Exclude modules from the bundle + for external in ctx.attr.external: + args.add("--external:%s" % external) + + if ctx.attr.minify: + args.add("--minify") + else: + # by default, esbuild will tree-shake 'pure' functions + # disable this unless also minifying + args.add_joined(["--tree-shaking", "ignore-annotations"], join_with = "=") + + ctx.actions.run( + inputs = inputs, + outputs = outputs, + executable = ctx.executable.esbuild, + arguments = [args], + progress_message = "%s Javascript %s [esbuild]" % ("Bundling" if not ctx.attr.splitting else "Splitting", entry_point.short_path), + execution_requirements = { + "no-remote-exec": "1", + }, + ) + + return [ + DefaultInfo(files = depset(outputs + [jsconfig_file])), + ] + +esbuild_bundle = rule( + attrs = { + "deps": attr.label_list( + default = [], + aspects = [module_mappings_aspect, node_modules_aspect], + doc = "A list of direct dependencies that are required to build the bundle", + ), + "entry_point": attr.label( + mandatory = True, + allow_single_file = True, + doc = "The bundle's entry point (e.g. your main.js or app.js or index.js)", + ), + "esbuild": attr.label( + allow_single_file = True, + default = "@esbuild//:bin/esbuild", + executable = True, + cfg = "exec", + doc = "An executable for the esbuild binary, can be overridden if a custom esbuild binary is needed", + ), + "external": attr.string_list( + default = [], + doc = "A list of module names that are treated as external and not included in the resulting bundle", + ), + "format": attr.string( + values = ["iife", "cjs", "esm", ""], + mandatory = False, + doc = """The output format of the bundle, defaults to iife when platform is browser +and cjs when platform is node. If performing code splitting, defaults to esm""", + ), + "minify": attr.bool( + default = False, + doc = """Minifies the bundle with the built in minification. +Removes whitespace, shortens identifieres and uses equivalent but shorter syntax. + +Sets all --minify-* flags + """, + ), + "output": attr.output( + mandatory = False, + doc = "Name of the output file when bundling", + ), + "output_map": attr.output( + mandatory = False, + doc = "Name of the output source map when bundling", + ), + "platform": attr.string( + default = "browser", + values = ["node", "browser", ""], + doc = "The platform to bundle for", + ), + "splitting": attr.bool( + default = False, + doc = """If true, esbuild produces an output directory containing all the output files from code splitting + """, + ), + "srcs": attr.label_list( + allow_files = True, + default = [], + doc = """Non-entry point JavaScript source files from the workspace. + +You must not repeat file(s) passed to entry_point""", + ), + "target": attr.string( + default = "es2015", + doc = """Environment target (e.g. es2017, chrome58, firefox57, safari11, +edge16, node10, default esnext) + """, + ), + }, + implementation = _esbuild_impl, +) + +def esbuild(name, splitting = False, **kwargs): + """esbuild helper macro around the `esbuild_bundle` rule + + Args: + name: The name used for this rule and output files + splitting: If `True`, produce a code split bundle in an output directory + **kwargs: All other args from `esbuild_bundle` + """ + + if splitting == True: + esbuild_bundle( + name = name, + splitting = True, + **kwargs + ) + else: + esbuild_bundle( + name = name, + output = "%s.js" % name, + output_map = "%s.js.map" % name, + **kwargs + ) diff --git a/packages/esbuild/esbuild_repo.bzl b/packages/esbuild/esbuild_repo.bzl new file mode 100644 index 0000000000..0520b8e375 --- /dev/null +++ b/packages/esbuild/esbuild_repo.bzl @@ -0,0 +1,70 @@ +""" +Repository rule for downloading a version of esbuild for the current platform +""" + +_PLATFORM_SHA = { + "darwin_64": "6c47e733742355bdec36be7311c3d3a62dbf73a5fb74a336884d3530288ee929", + "linux_64": "1259cc662922ac3abc050262d66d74a46988f3f4be9c8104a303beacd0be844e", + "windows_64": "1ebe99345730fb3624428135a3cb285c7c6023190bec9907fd3ece6f52ce4469", +} + +_VERSION = "0.8.16" + +def _esbuild_repository_impl(rctx): + platform_sha = rctx.attr.platform_sha + version = rctx.attr.version + + URLS = { + "linux": { + "sha": platform_sha["linux_64"], + "url": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-%s.tgz" % version, + }, + "mac os": { + "sha": platform_sha["darwin_64"], + "url": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-%s.tgz" % version, + }, + "windows": { + "sha": platform_sha["windows_64"], + "url": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-%s.tgz" % version, + }, + } + + os_name = rctx.os.name.lower() + if os_name.startswith("mac os"): + value = URLS["mac os"] + elif os_name.find("windows") != -1: + value = URLS["windows"] + elif os_name.startswith("linux"): + value = URLS["linux"] + else: + fail("Unsupported operating system: " + os_name) + + rctx.download_and_extract( + value["url"], + sha256 = value["sha"], + stripPrefix = "package", + ) + + if os_name.startswith("windows"): + rctx.file("BUILD", content = """exports_files(["esbuild.exe"])""") + else: + rctx.file("BUILD", content = """exports_files(["bin/esbuild"])""") + +esbuild_repository = repository_rule( + implementation = _esbuild_repository_impl, + attrs = { + "platform_sha": attr.string_dict( + default = _PLATFORM_SHA, + doc = """A dict mapping the platform to the SHA256 sum for that platforms esbuild package +The following platforms and archs are supported: +* darwin_64 +* linux_64 +* windows_64 + """, + ), + "version": attr.string( + default = _VERSION, + doc = "The version of esbuild to use", + ), + }, +) diff --git a/packages/esbuild/helpers.bzl b/packages/esbuild/helpers.bzl new file mode 100644 index 0000000000..053635bcbc --- /dev/null +++ b/packages/esbuild/helpers.bzl @@ -0,0 +1,50 @@ +""" +Utility helper functions for the esbuild rule +""" + +def strip_ext(f): + "Strips the extension of a file." + return f.short_path[:-len(f.extension) - 1] + +def resolve_js_input(f, inputs): + """Find a corresponding javascript entrypoint for a provided file + + Args: + f: The file where its basename is used to match the entrypoint + inputs: The list of files where it should take a look at + + Returns: + Returns the file that is the corresponding entrypoint + """ + if f.extension == "js" or f.extension == "mjs": + return f + + no_ext = strip_ext(f) + for i in inputs: + if i.extension == "js" or i.extension == "mjs": + if strip_ext(i) == no_ext: + return i + fail("Could not find corresponding javascript entry point for %s. Add the %s.js to your deps." % (f.path, no_ext)) + +def filter_files(input, endings = [".js"]): + """Filters a list of files for specific endings + + Args: + input: The depset or list of files + endings: The list of endings that should be filtered for + + Returns: + Returns the filtered list of files + """ + + # Convert input into list regardles of being a depset or list + input_list = input.to_list() if type(input) == "depset" else input + filtered = [] + + for file in input_list: + for ending in endings: + if file.path.endswith(ending): + filtered.append(file) + continue + + return filtered diff --git a/packages/esbuild/index.bzl b/packages/esbuild/index.bzl new file mode 100644 index 0000000000..e12762f44f --- /dev/null +++ b/packages/esbuild/index.bzl @@ -0,0 +1,33 @@ +# Copyright 2020 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Public API surface is re-exported here. +""" + +load( + "@build_bazel_rules_nodejs//packages/esbuild:esbuild.bzl", + _esbuild = "esbuild", + _esbuild_bundle = "esbuild_bundle", +) +load( + "@build_bazel_rules_nodejs//packages/esbuild:esbuild_repo.bzl", + _esbuild_repository = "esbuild_repository", +) + +esbuild = _esbuild +esbuild_bundle = _esbuild_bundle +esbuild_repository = _esbuild_repository + +# DO NOT ADD MORE rules here unless they appear in the generated docsite. +# Run yarn stardoc to re-generate the docsite. diff --git a/packages/esbuild/package.json b/packages/esbuild/package.json new file mode 100644 index 0000000000..23ba1748b0 --- /dev/null +++ b/packages/esbuild/package.json @@ -0,0 +1,17 @@ +{ + "name": "@bazel/esbuild", + "description": "esbuild rules for Bazel", + "license": "Apache-2.0", + "version": "0.0.0-PLACEHOLDER", + "repository": { + "type": "git", + "url": "https://github.com/bazelbuild/rules_nodejs.git", + "directory": "packages/esbuild" + }, + "bugs": { + "url": "https://github.com/bazelbuild/rules_nodejs/issues" + }, + "keywords": [ + "bazel" + ] +} diff --git a/packages/esbuild/test/alias-mapping/BUILD.bazel b/packages/esbuild/test/alias-mapping/BUILD.bazel new file mode 100644 index 0000000000..4f51f90ae2 --- /dev/null +++ b/packages/esbuild/test/alias-mapping/BUILD.bazel @@ -0,0 +1,29 @@ +load("//:index.bzl", "generated_file_test") +load("//packages/esbuild:index.bzl", "esbuild") + +esbuild( + name = "bundle", + entry_point = "main.js", + format = "esm", + deps = [ + "//packages/esbuild/test/alias-mapping/module-one", + "//packages/esbuild/test/alias-mapping/module-two", + ], +) + +# esbuild will put the filepath in a comment within the non-minified file, +# on different platforms this will cause the golden test to differ +# strip them here +# note that this regex doesn't strip the sourcemap URI comment +genrule( + name = "strip_bundle_comments", + srcs = ["bundle.js"], + outs = ["bundle.stripped.js"], + cmd = "cat $(location :bundle.js) | sed \"s#// .*/bin/#// #\" > $@", +) + +generated_file_test( + name = "bundle_test", + src = "bundle.golden.txt", + generated = "bundle.stripped.js", +) diff --git a/packages/esbuild/test/alias-mapping/bundle.golden.txt b/packages/esbuild/test/alias-mapping/bundle.golden.txt new file mode 100644 index 0000000000..3480714b3c --- /dev/null +++ b/packages/esbuild/test/alias-mapping/bundle.golden.txt @@ -0,0 +1,12 @@ +// packages/esbuild/test/alias-mapping/module-one/index.js +var getId = () => "module-one"; + +// packages/esbuild/test/alias-mapping/module-two/index.js +var getId2 = () => "module-two"; + +// packages/esbuild/test/alias-mapping/main.js +var main_default = `Full ID: ${getId} - ${getId2}`; +export { + main_default as default +}; +//# sourceMappingURL=bundle.js.map diff --git a/packages/esbuild/test/alias-mapping/main.js b/packages/esbuild/test/alias-mapping/main.js new file mode 100644 index 0000000000..21a284e732 --- /dev/null +++ b/packages/esbuild/test/alias-mapping/main.js @@ -0,0 +1,4 @@ +import {getId as m1Id} from '@alias-mapping/module-one'; +import {getId as m2Id} from '@alias-mapping/module-two'; + +export default `Full ID: ${m1Id} - ${m2Id}`; diff --git a/packages/esbuild/test/alias-mapping/module-one/BUILD.bazel b/packages/esbuild/test/alias-mapping/module-one/BUILD.bazel new file mode 100644 index 0000000000..1ecff9c034 --- /dev/null +++ b/packages/esbuild/test/alias-mapping/module-one/BUILD.bazel @@ -0,0 +1,9 @@ +load("//internal/js_library:js_library.bzl", "js_library") + +package(default_visibility = ["//packages/esbuild/test:__subpackages__"]) + +js_library( + name = "module-one", + package_name = "@alias-mapping/module-one", + srcs = [":index.js"], +) diff --git a/packages/esbuild/test/alias-mapping/module-one/index.js b/packages/esbuild/test/alias-mapping/module-one/index.js new file mode 100644 index 0000000000..be8c740ce1 --- /dev/null +++ b/packages/esbuild/test/alias-mapping/module-one/index.js @@ -0,0 +1 @@ +export const getId = () => 'module-one'; diff --git a/packages/esbuild/test/alias-mapping/module-two/BUILD.bazel b/packages/esbuild/test/alias-mapping/module-two/BUILD.bazel new file mode 100644 index 0000000000..6927d4ccf8 --- /dev/null +++ b/packages/esbuild/test/alias-mapping/module-two/BUILD.bazel @@ -0,0 +1,9 @@ +load("//internal/js_library:js_library.bzl", "js_library") + +package(default_visibility = ["//packages/esbuild/test:__subpackages__"]) + +js_library( + name = "module-two", + package_name = "@alias-mapping/module-two", + srcs = [":index.js"], +) diff --git a/packages/esbuild/test/alias-mapping/module-two/index.js b/packages/esbuild/test/alias-mapping/module-two/index.js new file mode 100644 index 0000000000..4fa928033d --- /dev/null +++ b/packages/esbuild/test/alias-mapping/module-two/index.js @@ -0,0 +1 @@ +export const getId = () => 'module-two'; diff --git a/packages/esbuild/test/bundle/BUILD.bazel b/packages/esbuild/test/bundle/BUILD.bazel new file mode 100644 index 0000000000..c19a4a40c5 --- /dev/null +++ b/packages/esbuild/test/bundle/BUILD.bazel @@ -0,0 +1,58 @@ +load("//:index.bzl", "generated_file_test") +load("//packages/esbuild:index.bzl", "esbuild") +load("//packages/typescript:index.bzl", "ts_library") + +ts_library( + name = "index", + srcs = ["index.ts"], + module_name = "lib", +) + +ts_library( + name = "lib", + srcs = ["a.ts"], + deps = [":index"], +) + +esbuild( + name = "bundle", + entry_point = "a.ts", + deps = [":lib"], +) + +esbuild( + name = "bundle.min", + entry_point = "a.ts", + minify = True, + deps = [":lib"], +) + +esbuild( + name = "bundle.split", + entry_point = "a.ts", + splitting = True, + deps = [":lib"], +) + +# esbuild will put the filepath in a comment within the non-minified file, +# on different platforms this will cause the golden test to differ +# strip the platform agnostic part of it +# note that this regex doesn't strip the sourcemap URI comment +genrule( + name = "strip_bundle_comments", + srcs = ["bundle.js"], + outs = ["bundle.stripped.js"], + cmd = "cat $(location :bundle.js) | sed \"s#// .*/bin/#// #\" > $@", +) + +generated_file_test( + name = "bundle_test", + src = "bundle.golden.txt", + generated = "bundle.stripped.js", +) + +generated_file_test( + name = "bundle_min_test", + src = "bundle.min.golden.txt", + generated = "bundle.min.js", +) diff --git a/packages/esbuild/test/bundle/a.ts b/packages/esbuild/test/bundle/a.ts new file mode 100644 index 0000000000..4979aafe0b --- /dev/null +++ b/packages/esbuild/test/bundle/a.ts @@ -0,0 +1,3 @@ +import {NAME} from 'lib'; + +console.log(`Hello ${NAME}`); \ No newline at end of file diff --git a/packages/esbuild/test/bundle/bundle.golden.txt b/packages/esbuild/test/bundle/bundle.golden.txt new file mode 100644 index 0000000000..abbb99eb68 --- /dev/null +++ b/packages/esbuild/test/bundle/bundle.golden.txt @@ -0,0 +1,8 @@ +(() => { + // packages/esbuild/test/bundle/index.mjs + var NAME = "bazel"; + + // packages/esbuild/test/bundle/a.mjs + console.log(`Hello ${NAME}`); +})(); +//# sourceMappingURL=bundle.js.map diff --git a/packages/esbuild/test/bundle/bundle.min.golden.txt b/packages/esbuild/test/bundle/bundle.min.golden.txt new file mode 100644 index 0000000000..37e8681982 --- /dev/null +++ b/packages/esbuild/test/bundle/bundle.min.golden.txt @@ -0,0 +1,2 @@ +(()=>{var o="bazel";console.log(`Hello ${o}`);})(); +//# sourceMappingURL=bundle.min.js.map diff --git a/packages/esbuild/test/bundle/index.ts b/packages/esbuild/test/bundle/index.ts new file mode 100644 index 0000000000..6d6d9837ea --- /dev/null +++ b/packages/esbuild/test/bundle/index.ts @@ -0,0 +1 @@ +export const NAME = 'bazel'; diff --git a/packages/esbuild/test/splitting/BUILD.bazel b/packages/esbuild/test/splitting/BUILD.bazel new file mode 100644 index 0000000000..9ac3f94f32 --- /dev/null +++ b/packages/esbuild/test/splitting/BUILD.bazel @@ -0,0 +1,36 @@ +load("//:index.bzl", "nodejs_test") +load("//:tools/defaults.bzl", "pkg_tar") +load("//packages/esbuild:index.bzl", "esbuild") +load("//packages/typescript:index.bzl", "ts_library") + +ts_library( + name = "main", + srcs = [ + "main.ts", + "other.ts", + ], + deps = [ + "@npm//@angular/core", + ], +) + +esbuild( + name = "bundle", + entry_point = "main.ts", + splitting = True, + deps = [":main"], +) + +pkg_tar( + name = "tar", + srcs = [":bundle"], +) + +nodejs_test( + name = "bundle_test", + data = [ + "bundle.spec.js", + ":bundle", + ], + entry_point = ":bundle.spec.js", +) diff --git a/packages/esbuild/test/splitting/bundle.spec.js b/packages/esbuild/test/splitting/bundle.spec.js new file mode 100644 index 0000000000..fe78b0957a --- /dev/null +++ b/packages/esbuild/test/splitting/bundle.spec.js @@ -0,0 +1,17 @@ +const {join} = require('path'); +const {readFileSync, lstatSync} = require('fs'); + +const helper = require(process.env.BAZEL_NODE_RUNFILES_HELPER); +const location = helper.resolve('build_bazel_rules_nodejs/packages/esbuild/test/splitting/bundle'); + +const main = readFileSync(join(location, 'main.js'), {encoding: 'utf8'}); +const hasImportOfCore = main.indexOf(`import("./other.js")`) > -1; + +if (!hasImportOfCore) { + console.error(`Expected entry_point 'main.js' to have an import of './other.js'`); +} + +// throws if file does not exist +lstatSync(join(location, 'other.js')); + +process.exit(hasImportOfCore ? 0 : 1); diff --git a/packages/esbuild/test/splitting/main.ts b/packages/esbuild/test/splitting/main.ts new file mode 100644 index 0000000000..b4810f3fda --- /dev/null +++ b/packages/esbuild/test/splitting/main.ts @@ -0,0 +1 @@ +import('./other').then(module => {console.log(module.OTHER);}); diff --git a/packages/esbuild/test/splitting/other.ts b/packages/esbuild/test/splitting/other.ts new file mode 100644 index 0000000000..9485b32b53 --- /dev/null +++ b/packages/esbuild/test/splitting/other.ts @@ -0,0 +1 @@ +export const OTHER = true; diff --git a/packages/esbuild/test/typescript/BUILD.bazel b/packages/esbuild/test/typescript/BUILD.bazel new file mode 100644 index 0000000000..76720554ee --- /dev/null +++ b/packages/esbuild/test/typescript/BUILD.bazel @@ -0,0 +1,37 @@ +load("//:index.bzl", "generated_file_test") +load("//packages/esbuild:index.bzl", "esbuild") +load("//packages/typescript:index.bzl", "ts_library") + +exports_files(["tsconfig.json"]) + +ts_library( + name = "main", + srcs = [":main.ts"], + tsconfig = ":tsconfig.json", + deps = [ + "//packages/esbuild/test/typescript/module-dynamic", + "//packages/esbuild/test/typescript/module-one", + "//packages/esbuild/test/typescript/module-two", + "@npm//tslib", + ], +) + +esbuild( + name = "bundle", + entry_point = "main.ts", + format = "esm", + deps = [":main"], +) + +genrule( + name = "strip_bundle_comments", + srcs = ["bundle.js"], + outs = ["bundle.stripped.js"], + cmd = "cat $(location :bundle.js) | sed \"s#// .*/bin/#// #\" > $@", +) + +generated_file_test( + name = "bundle_test", + src = "bundle.golden.txt", + generated = ":bundle.stripped.js", +) diff --git a/packages/esbuild/test/typescript/bundle.golden.txt b/packages/esbuild/test/typescript/bundle.golden.txt new file mode 100644 index 0000000000..349bc4185f --- /dev/null +++ b/packages/esbuild/test/typescript/bundle.golden.txt @@ -0,0 +1,61 @@ +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __markAsModule = (target) => __defProp(target, "__esModule", {value: true}); +var __commonJS = (callback, module) => () => { + if (!module) { + module = {exports: {}}; + callback(module.exports, module); + } + return module.exports; +}; +var __exportStar = (target, module, desc) => { + __markAsModule(target); + if (module && typeof module === "object" || typeof module === "function") { + for (let key of __getOwnPropNames(module)) + if (!__hasOwnProp.call(target, key) && key !== "default") + __defProp(target, key, {get: () => module[key], enumerable: !(desc = __getOwnPropDesc(module, key)) || desc.enumerable}); + } + return target; +}; +var __toModule = (module) => { + if (module && module.__esModule) + return module; + return __exportStar(__defProp(module != null ? __create(__getProtoOf(module)) : {}, "default", {value: module, enumerable: true}), module); +}; + +// packages/esbuild/test/typescript/module-dynamic/index.js +var require_module_dynamic = __commonJS((exports, module) => { + (function(factory) { + if (typeof module === "object" && typeof module.exports === "object") { + var v = factory(require, exports); + if (v !== void 0) + module.exports = v; + } else if (typeof define === "function" && define.amd) { + define("build_bazel_rules_nodejs/packages/esbuild/test/typescript/module-dynamic/index", ["require", "exports"], factory); + } + })(function(require2, exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", {value: true}); + exports2.getId = () => "dynamic-id"; + }); +}); + +// packages/esbuild/test/typescript/main.mjs +var module_dynamic = __toModule(require_module_dynamic()); + +// packages/esbuild/test/typescript/module-one/index.mjs +var getId = () => "module-one"; + +// packages/esbuild/test/typescript/module-two/index.mjs +var getId2 = () => "module-two"; + +// packages/esbuild/test/typescript/main.mjs +var main_default = `Full ID: ${getId} - ${getId2} - ${module_dynamic.getId}`; +export { + main_default as default +}; +//# sourceMappingURL=bundle.js.map diff --git a/packages/esbuild/test/typescript/main.ts b/packages/esbuild/test/typescript/main.ts new file mode 100644 index 0000000000..e2359f95d6 --- /dev/null +++ b/packages/esbuild/test/typescript/main.ts @@ -0,0 +1,5 @@ +import {getId as mdyn} from '@typescript/module-dynamic'; +import {getId as m1Id} from '@typescript/module-one'; +import {getId as m2Id} from '@typescript/module-two'; + +export default `Full ID: ${m1Id} - ${m2Id} - ${mdyn}`; diff --git a/packages/esbuild/test/typescript/module-dynamic/BUILD.bazel b/packages/esbuild/test/typescript/module-dynamic/BUILD.bazel new file mode 100644 index 0000000000..7179dc067c --- /dev/null +++ b/packages/esbuild/test/typescript/module-dynamic/BUILD.bazel @@ -0,0 +1,18 @@ +load("//internal/js_library:js_library.bzl", "js_library") +load("//packages/typescript:index.bzl", "ts_library") + +package(default_visibility = ["//packages/esbuild/test:__subpackages__"]) + +ts_library( + name = "compile", + srcs = [":index.ts"], + tsconfig = "//packages/esbuild/test/typescript:tsconfig.json", + deps = ["@npm//tslib"], +) + +js_library( + name = "module-dynamic", + package_name = "@typescript/module-dynamic", + srcs = [":random-file.css"], + deps = [":compile"], +) diff --git a/packages/esbuild/test/typescript/module-dynamic/index.ts b/packages/esbuild/test/typescript/module-dynamic/index.ts new file mode 100644 index 0000000000..b6fec9e81b --- /dev/null +++ b/packages/esbuild/test/typescript/module-dynamic/index.ts @@ -0,0 +1 @@ +export const getId = () => 'dynamic-id'; diff --git a/packages/esbuild/test/typescript/module-dynamic/random-file.css b/packages/esbuild/test/typescript/module-dynamic/random-file.css new file mode 100644 index 0000000000..da0e4c781b --- /dev/null +++ b/packages/esbuild/test/typescript/module-dynamic/random-file.css @@ -0,0 +1,3 @@ +.some-random { + font-family: 'Comic Sans'; +} diff --git a/packages/esbuild/test/typescript/module-one/BUILD.bazel b/packages/esbuild/test/typescript/module-one/BUILD.bazel new file mode 100644 index 0000000000..1330334326 --- /dev/null +++ b/packages/esbuild/test/typescript/module-one/BUILD.bazel @@ -0,0 +1,13 @@ +load("//packages/typescript:index.bzl", "ts_library") + +package(default_visibility = ["//packages/esbuild/test:__subpackages__"]) + +ts_library( + name = "module-one", + srcs = [":index.ts"], + module_name = "@typescript/module-one", + tsconfig = "//packages/esbuild/test/typescript:tsconfig.json", + deps = [ + "@npm//tslib", + ], +) diff --git a/packages/esbuild/test/typescript/module-one/index.ts b/packages/esbuild/test/typescript/module-one/index.ts new file mode 100644 index 0000000000..be8c740ce1 --- /dev/null +++ b/packages/esbuild/test/typescript/module-one/index.ts @@ -0,0 +1 @@ +export const getId = () => 'module-one'; diff --git a/packages/esbuild/test/typescript/module-two/BUILD.bazel b/packages/esbuild/test/typescript/module-two/BUILD.bazel new file mode 100644 index 0000000000..ea998b74a8 --- /dev/null +++ b/packages/esbuild/test/typescript/module-two/BUILD.bazel @@ -0,0 +1,13 @@ +load("//packages/typescript:index.bzl", "ts_library") + +package(default_visibility = ["//packages/esbuild/test:__subpackages__"]) + +ts_library( + name = "module-two", + srcs = [":index.ts"], + module_name = "@typescript/module-two", + tsconfig = "//packages/esbuild/test/typescript:tsconfig.json", + deps = [ + "@npm//tslib", + ], +) diff --git a/packages/esbuild/test/typescript/module-two/index.ts b/packages/esbuild/test/typescript/module-two/index.ts new file mode 100644 index 0000000000..4fa928033d --- /dev/null +++ b/packages/esbuild/test/typescript/module-two/index.ts @@ -0,0 +1 @@ +export const getId = () => 'module-two'; diff --git a/packages/esbuild/test/typescript/tsconfig.json b/packages/esbuild/test/typescript/tsconfig.json new file mode 100644 index 0000000000..fb77ef436f --- /dev/null +++ b/packages/esbuild/test/typescript/tsconfig.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "target": "es5", + "module": "esnext", + "esModuleInterop": true, + "skipLibCheck": true + } +} diff --git a/packages/jasmine/BUILD.bazel b/packages/jasmine/BUILD.bazel index b4d04115cc..195d4c5fd5 100644 --- a/packages/jasmine/BUILD.bazel +++ b/packages/jasmine/BUILD.bazel @@ -13,9 +13,8 @@ # limitations under the License. load("@bazel_skylib//:bzl_library.bzl", "bzl_library") -load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_test") +load("@build_bazel_rules_nodejs//:index.bzl", "copy_to_bin", "js_library", "nodejs_test") load("@build_bazel_rules_nodejs//:tools/defaults.bzl", "pkg_npm") -load("@build_bazel_rules_nodejs//internal/js_library:js_library.bzl", "js_library") load("@build_bazel_rules_nodejs//tools/stardoc:index.bzl", "stardoc") load("//third_party/github.com/bazelbuild/bazel-skylib:rules/copy_file.bzl", "copy_file") @@ -53,15 +52,26 @@ nodejs_test( ], ) -js_library( - name = "jasmine", - package_name = "@bazel/jasmine", +copy_to_bin( + name = "srcs", srcs = [ "index.js", "jasmine_runner.js", ], ) +# We need to use ":srcs" here instead of an +# array for the source files otherwise our +# logic on js_library will consider this a +# node_module when used in examples/user_managed_deps +# which will endup failing as we cannot use node_modules +# from multiple workspaces. +js_library( + name = "jasmine", + package_name = "@bazel/jasmine", + srcs = [":srcs"], +) + # Ugly genrule depending on local linux environment to build the README out of skylark doc generation. # Only referenced when we do a release. # TODO: This ought to be possible with stardoc alone. Need to coordinate with Chris Parsons. diff --git a/packages/karma/BUILD.bazel b/packages/karma/BUILD.bazel index bd81678031..e47e07a08f 100644 --- a/packages/karma/BUILD.bazel +++ b/packages/karma/BUILD.bazel @@ -30,7 +30,6 @@ ts_library( tsconfig = ":tsconfig.json", deps = [ "@npm//@types/node", - "@npm//tmp", ], ) @@ -46,7 +45,6 @@ nodejs_binary( "@npm//karma-requirejs", "@npm//karma-sourcemap-loader", "@npm//requirejs", - "@npm//tmp", ], entry_point = "@npm//:node_modules/karma/bin/karma", ) diff --git a/packages/karma/index.ts b/packages/karma/index.ts index 5b75f2e21a..31308ab358 100644 --- a/packages/karma/index.ts +++ b/packages/karma/index.ts @@ -6,7 +6,6 @@ import * as fs from 'fs'; import * as path from 'path'; import * as process from 'process'; import {createInterface} from 'readline'; -import * as tmp from 'tmp'; /// /** @@ -24,14 +23,14 @@ function sha1(data) { function initConcatJs(logger, emitter, basePath, hostname, port) { const log = logger.create('framework.concat_js'); - // Create a tmp file for the concat bundle that is automatically cleaned up on - // exit. - const tmpFile = tmp.fileSync({keep: false, dir: process.env['TEST_TMPDIR']}); + // Create a tmp file for the concat bundle, rely on Bazel to clean the TMPDIR + const tmpFile = + path.join(process.env['TEST_TMPDIR'], crypto.randomBytes(6).readUIntLE(0, 6).toString(36)); emitter.on('file_list_modified', files => { const bundleFile = { path: '/concatjs_bundle.js', - contentPath: tmpFile.name, + contentPath: tmpFile, isUrl: false, content: '', encodings: {}, @@ -55,17 +54,31 @@ function initConcatJs(logger, emitter, basePath, hostname, port) { // global variables, even with 'use strict'; (unlike eval). bundleFile.content = ` (function() { // Hide local variables + // Use policy to support Trusted Types enforcement. + var policy = null; + if (window.trustedTypes) { + try { + policy = window.trustedTypes.createPolicy('bazel-karma', { + createScript: function(s) { return s; } + }); + } catch (e) { + // In case the policy has been unexpectedly created before, log the error + // and fall back to the old behavior. + console.log(e); + } + } // IE 8 and below do not support document.head. var parent = document.getElementsByTagName('head')[0] || document.documentElement; function loadFile(path, src) { + var trustedSrc = policy ? policy.createScript(src) : src; try { var script = document.createElement('script'); if ('textContent' in script) { - script.textContent = src; + script.textContent = trustedSrc; } else { // This is for IE 8 and below. - script.text = src; + script.text = trustedSrc; } parent.appendChild(script); // Don't pollute the DOM with hundreds of