diff --git a/.bazelci/presubmit.yml b/.bazelci/presubmit.yml index bb248843f1..e692a85a52 100644 --- a/.bazelci/presubmit.yml +++ b/.bazelci/presubmit.yml @@ -1,5 +1,5 @@ --- -bazel: 3.0.0 +bazel: 4.0.0 tasks: ubuntu1604: name: ubuntu1604 @@ -16,10 +16,6 @@ tasks: - "//internal/npm_install/test:index" # Disabled due to https://github.com/bazelbuild/rules_nodejs/issues/1486 #- "@fine_grained_deps_yarn//typescript/bin:tsc" - - "@bazel_workspace_a//:bin" - - "@bazel_workspace_a//subdir:bin" - - "@bazel_workspace_b//:bin" - - "@bazel_workspace_b//subdir:bin" build_targets: - "//..." build_flags: @@ -32,7 +28,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 @@ -118,26 +114,22 @@ tasks: - "//internal/npm_install/test:index" # Disabled due to https://github.com/bazelbuild/rules_nodejs/issues/1486 #- "@fine_grained_deps_yarn//typescript/bin:tsc" - - "@bazel_workspace_a//:bin" - - "@bazel_workspace_a//subdir:bin" - - "@bazel_workspace_b//:bin" - - "@bazel_workspace_b//subdir:bin" build_targets: - "//..." 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" - # 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 +150,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: @@ -277,10 +269,6 @@ tasks: - "//internal/npm_install/test:index" # Disabled due to https://github.com/bazelbuild/rules_nodejs/issues/1486 #- "@fine_grained_deps_yarn//typescript/bin:tsc" - - "@bazel_workspace_a//:bin" - - "@bazel_workspace_a//subdir:bin" - - "@bazel_workspace_b//:bin" - - "@bazel_workspace_b//subdir:bin" build_targets: - "//..." test_flags: @@ -310,7 +298,7 @@ tasks: # We control Bazel version in integration tests, so we don't need USE_BAZEL_VERSION for tests. skip_use_bazel_version_for_test: true test_flags: - - "--test_tag_filters=e2e" + - "--test_tag_filters=e2e,-no-bazelci-mac" - "--local_ram_resources=792" # test_args will be passed to the nested bazel process # TODO(gregmagolan): fix frequent flake with multiple cores in nested bazel (osx buildkite & local) @@ -387,10 +375,6 @@ tasks: - "//internal/npm_install/test:index" # Disabled due to https://github.com/bazelbuild/rules_nodejs/issues/1486 #- "@fine_grained_deps_yarn//typescript/bin:tsc" - - "@bazel_workspace_a//:bin" - - "@bazel_workspace_a//subdir:bin" - - "@bazel_workspace_b//:bin" - - "@bazel_workspace_b//subdir:bin" build_flags: - "--build_tag_filters=-e2e,-examples,-fix-windows,-manual" build_targets: @@ -414,7 +398,7 @@ tasks: # We control Bazel version in integration tests, so we don't need USE_BAZEL_VERSION for tests. skip_use_bazel_version_for_test: true test_flags: - - "--test_tag_filters=e2e,-fix-windows" + - "--test_tag_filters=e2e,-fix-windows,-no-bazelci-windows" - "--local_ram_resources=792" # test_args will be passed to the nested bazel process - "--test_arg=--local_ram_resources=13288" @@ -462,7 +446,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/.bazelignore b/.bazelignore index bb76c59ae7..25ad38ec1c 100644 --- a/.bazelignore +++ b/.bazelignore @@ -1,7 +1,16 @@ -node_modules -dist +# NB: sematics here are not the same as .gitignore +# see https://github.com/bazelbuild/bazel/issues/8106 +.git bazel-out + +# **/symlinked_node_modules_yarn +node_modules e2e/symlinked_node_modules_yarn/node_modules -e2e/symlinked_node_modules_npm/node_modules/ +e2e/symlinked_node_modules_npm/node_modules packages/angular/node_modules examples/angular/node_modules +examples/user_managed_deps/node_modules + +# **/dist +dist +examples/user_managed_deps/dist diff --git a/.bazelrc b/.bazelrc index c9163e0cca..00ce0e3bcb 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/node_modules/@angular-devkit/core/third_party/github.com/chalk/supports-color,examples/angular/node_modules/@angular-devkit/core/third_party/github.com/sindresorhus/has-flag,examples/angular/node_modules/@schematics/angular/third_party/github.com/Microsoft/TypeScript,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/node_modules/@angular-devkit/core/third_party/github.com/chalk/supports-color,examples/angular_bazel_architect/node_modules/@angular-devkit/core/third_party/github.com/sindresorhus/has-flag,examples/angular_bazel_architect/node_modules/@schematics/angular/third_party/github.com/Microsoft/TypeScript,examples/angular_bazel_architect/projects/frontend-lib,examples/angular_view_engine,examples/angular_view_engine/e2e,examples/angular_view_engine/node_modules/@angular-devkit/core/node_modules/rxjs/src/webSocket,examples/angular_view_engine/node_modules/@angular-devkit/core/node_modules/rxjs/src/operators,examples/angular_view_engine/node_modules/@angular-devkit/core/node_modules/rxjs/src/testing,examples/angular_view_engine/node_modules/@angular-devkit/core/node_modules/rxjs/src,examples/angular_view_engine/node_modules/@angular-devkit/core/node_modules/rxjs/src/ajax,examples/angular_view_engine/node_modules/@angular-devkit/core/third_party/github.com/chalk/supports-color,examples/angular_view_engine/node_modules/@angular-devkit/core/third_party/github.com/sindresorhus/has-flag,examples/angular_view_engine/node_modules/@angular-devkit/architect/node_modules/rxjs/src/webSocket,examples/angular_view_engine/node_modules/@angular-devkit/architect/node_modules/rxjs/src/operators,examples/angular_view_engine/node_modules/@angular-devkit/architect/node_modules/rxjs/src/testing,examples/angular_view_engine/node_modules/@angular-devkit/architect/node_modules/rxjs/src,examples/angular_view_engine/node_modules/@angular-devkit/architect/node_modules/rxjs/src/ajax,examples/angular_view_engine/node_modules/@angular-devkit/schematics/node_modules/rxjs/src/webSocket,examples/angular_view_engine/node_modules/@angular-devkit/schematics/node_modules/rxjs/src/operators,examples/angular_view_engine/node_modules/@angular-devkit/schematics/node_modules/rxjs/src/testing,examples/angular_view_engine/node_modules/@angular-devkit/schematics/node_modules/rxjs/src,examples/angular_view_engine/node_modules/@angular-devkit/schematics/node_modules/rxjs/src/ajax,examples/angular_view_engine/node_modules/@schematics/update/node_modules/rxjs/src/webSocket,examples/angular_view_engine/node_modules/@schematics/update/node_modules/rxjs/src/operators,examples/angular_view_engine/node_modules/@schematics/update/node_modules/rxjs/src/testing,examples/angular_view_engine/node_modules/@schematics/update/node_modules/rxjs/src,examples/angular_view_engine/node_modules/@schematics/update/node_modules/rxjs/src/ajax,examples/angular_view_engine/node_modules/@schematics/angular/third_party/github.com/Microsoft/TypeScript,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/cypress,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/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/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/node_modules/@angular-devkit/core/third_party/github.com/chalk/supports-color,examples/angular/node_modules/@angular-devkit/core/third_party/github.com/sindresorhus/has-flag,examples/angular/node_modules/@schematics/angular/third_party/github.com/Microsoft/TypeScript,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/node_modules/@angular-devkit/core/third_party/github.com/chalk/supports-color,examples/angular_bazel_architect/node_modules/@angular-devkit/core/third_party/github.com/sindresorhus/has-flag,examples/angular_bazel_architect/node_modules/@schematics/angular/third_party/github.com/Microsoft/TypeScript,examples/angular_bazel_architect/projects/frontend-lib,examples/angular_view_engine,examples/angular_view_engine/e2e,examples/angular_view_engine/node_modules/@angular-devkit/core/node_modules/rxjs/src/webSocket,examples/angular_view_engine/node_modules/@angular-devkit/core/node_modules/rxjs/src/operators,examples/angular_view_engine/node_modules/@angular-devkit/core/node_modules/rxjs/src/testing,examples/angular_view_engine/node_modules/@angular-devkit/core/node_modules/rxjs/src,examples/angular_view_engine/node_modules/@angular-devkit/core/node_modules/rxjs/src/ajax,examples/angular_view_engine/node_modules/@angular-devkit/core/third_party/github.com/chalk/supports-color,examples/angular_view_engine/node_modules/@angular-devkit/core/third_party/github.com/sindresorhus/has-flag,examples/angular_view_engine/node_modules/@angular-devkit/architect/node_modules/rxjs/src/webSocket,examples/angular_view_engine/node_modules/@angular-devkit/architect/node_modules/rxjs/src/operators,examples/angular_view_engine/node_modules/@angular-devkit/architect/node_modules/rxjs/src/testing,examples/angular_view_engine/node_modules/@angular-devkit/architect/node_modules/rxjs/src,examples/angular_view_engine/node_modules/@angular-devkit/architect/node_modules/rxjs/src/ajax,examples/angular_view_engine/node_modules/@angular-devkit/schematics/node_modules/rxjs/src/webSocket,examples/angular_view_engine/node_modules/@angular-devkit/schematics/node_modules/rxjs/src/operators,examples/angular_view_engine/node_modules/@angular-devkit/schematics/node_modules/rxjs/src/testing,examples/angular_view_engine/node_modules/@angular-devkit/schematics/node_modules/rxjs/src,examples/angular_view_engine/node_modules/@angular-devkit/schematics/node_modules/rxjs/src/ajax,examples/angular_view_engine/node_modules/@schematics/update/node_modules/rxjs/src/webSocket,examples/angular_view_engine/node_modules/@schematics/update/node_modules/rxjs/src/operators,examples/angular_view_engine/node_modules/@schematics/update/node_modules/rxjs/src/testing,examples/angular_view_engine/node_modules/@schematics/update/node_modules/rxjs/src,examples/angular_view_engine/node_modules/@schematics/update/node_modules/rxjs/src/ajax,examples/angular_view_engine/node_modules/@schematics/angular/third_party/github.com/Microsoft/TypeScript,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/cypress,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/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/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/esbuild,examples/esbuild/src,examples/from_source,examples/jest,examples/jest/ts/test,examples/jest/ts,examples/jest/ts/src,examples/kotlin,examples/nestjs,examples/nestjs/src,examples/parcel,examples/protobufjs,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/concatjs_devserver,e2e/concatjs_devserver/genrule,e2e/concatjs_devserver/subpackage,e2e/coverage,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/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/esbuild,examples/esbuild/src,examples/from_source,examples/jest,examples/jest/ts/test,examples/jest/ts,examples/jest/ts/src,examples/kotlin,examples/nestjs,examples/nestjs/src,examples/parcel,examples/protobufjs,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/concatjs_devserver,e2e/concatjs_devserver/genrule,e2e/concatjs_devserver/subpackage,e2e/coverage,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/typescript,e2e/webapp # Mock versioning command to test the --stamp behavior build --workspace_status_command="echo BUILD_SCM_VERSION 1.2.3" @@ -48,3 +48,9 @@ build:docker-sandbox --experimental_docker_verbose build:docker-sandbox --experimental_enable_docker_sandbox # This is the same image used on BazelCI rbe_ubuntu1604 job build:docker-sandbox --experimental_docker_image=gcr.io/cloud-marketplace/google/rbe-ubuntu16-04 + +# Incompatible flags to run with +build --incompatible_no_implicit_file_export +build --incompatible_restrict_string_escapes +# TODO(alexeagle): turn on this flag when dependencies allow +# build --incompatible_use_platforms_repo_for_constraints diff --git a/.bazelversion b/.bazelversion index 4a36342fca..fcdb2e109f 100644 --- a/.bazelversion +++ b/.bazelversion @@ -1 +1 @@ -3.0.0 +4.0.0 diff --git a/.circleci/config.yml b/.circleci/config.yml index 3700dc8f8e..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.16 -var_2: &browsers_docker_image circleci/node:12.16-browsers -var_3: &cache_key node-12.16-{{ 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: @@ -175,7 +175,7 @@ jobs: - *init_bazel - *hide_node_and_yarn_local_binaries - run: - command: ./scripts/ci/run_integration_tests.sh ${CIRCLE_NODE_INDEX} ${CIRCLE_NODE_TOTAL} + command: ./.circleci/run_integration_tests.sh ${CIRCLE_NODE_INDEX} ${CIRCLE_NODE_TOTAL} no_output_timeout: 30m test_integration_manual: @@ -188,6 +188,7 @@ jobs: - run: cd e2e/symlinked_node_modules_npm && yarn test && bazel clean - run: cd e2e/symlinked_node_modules_yarn && yarn test && bazel clean - run: cd examples/user_managed_deps && yarn install && bazel test ... + - run: cd examples/from_source && bazel test //... workflows: version: 2 diff --git a/scripts/ci/run_integration_tests.sh b/.circleci/run_integration_tests.sh similarity index 91% rename from scripts/ci/run_integration_tests.sh rename to .circleci/run_integration_tests.sh index ee4492275e..00bf0b23ad 100755 --- a/scripts/ci/run_integration_tests.sh +++ b/.circleci/run_integration_tests.sh @@ -10,7 +10,7 @@ readonly MAX_SHARDS=${2:-1} # Get a sorted list of all test targets. We sort to ensure that each shard gets the same list # incase there is any inconstencies with bazel query on different shards. -readonly QUERY_RESULT=$(bazel query 'kind("bazel_integration_test", //examples/... union //e2e/...)') +readonly QUERY_RESULT=$(bazel query 'kind("bazel_integration_test", //examples/... union //e2e/...) except attr("tags", "no-circleci", //examples/... union //e2e/...)') declare TEST_TARGETS_ARRAY=() for target in ${QUERY_RESULT}; do TEST_TARGETS_ARRAY+=("${target}") diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs new file mode 100644 index 0000000000..64f732e98b --- /dev/null +++ b/.git-blame-ignore-revs @@ -0,0 +1 @@ +62953ba667a2fc655dd84e032f71af75e42ee889 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..2d7d951a62 --- /dev/null +++ b/.github/workflows/update-nodejs-versions.yml @@ -0,0 +1,41 @@ +name: Update NodeJS Versions + +on: + schedule: + # run at 01:30 UTC daily + - cron: '30 1 * * *' + +jobs: + updateNodejsVersions: + runs-on: ubuntu-latest + + # Skip this on forks + if: github.repository == 'bazelbuild/rules_nodejs' + + steps: + - name: Git Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Setup NodeJS + uses: actions/setup-node@v2 + with: + node-version: '14.x' + + - name: Run yarn update-nodejs-versions + run: yarn run 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 run 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/.gitignore b/.gitignore index 092aec1f66..216f929a0c 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ node_modules !/third_party/npm/node_modules yarn-error.log internal/node/_node_bin +.DS_Store diff --git a/BUILD.bazel b/BUILD.bazel index d90464b6df..ad9444fb1f 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -25,8 +25,17 @@ exports_files([ "tsconfig.json", "package.json", "bootstrap.js", + "LICENSE", ]) +exports_files( + [ + "providers.bzl", + "index.for_docs.bzl", + ], + visibility = ["//docs:__subpackages__"], +) + bzl_library( name = "bzl", srcs = [ @@ -39,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", @@ -47,13 +57,6 @@ bzl_library( ], ) -# Empty node_modules filegroup used for the default -# value of the node_modules attribute in nodejs_binary -filegroup( - name = "node_modules_none", - srcs = [], -) - # BEGIN-INTERNAL codeowners( pattern = "*", @@ -69,10 +72,8 @@ pkg_npm( srcs = glob(["*.bzl"]) + [ "BUILD.bazel", "LICENSE", + "rules_sass.issue127.patch", ], - # Don't replace the default 0.0.0-PLACEHOLDER for this pkg_npm since - # we are packaging up the packager itself and this replacement will break it - replace_with_version = "", substitutions = COMMON_REPLACEMENTS, deps = [ "//internal:package_contents", @@ -88,6 +89,7 @@ pkg_npm( "//internal/pkg_npm:package_contents", "//internal/pkg_web:package_contents", "//internal/providers:package_contents", + "//internal/runfiles:package_contents", "//third_party/github.com/bazelbuild/bazel:package_contents", "//third_party/github.com/bazelbuild/bazel-skylib:package_contents", "//third_party/github.com/bazelbuild/bazel/tools/bash/runfiles:package_contents", diff --git a/CHANGELOG.md b/CHANGELOG.md index 603d66077f..7de631478a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,534 @@ +# [3.4.0](https://github.com/bazelbuild/rules_nodejs/compare/3.3.0...3.4.0) (2021-04-14) + + +### Bug Fixes + +* **esbuild:** use run_node to invoke linker before running esuild ([be184c2](https://github.com/bazelbuild/rules_nodejs/commit/be184c2)) +* **typescript:** output path for .json in root package ([#2602](https://github.com/bazelbuild/rules_nodejs/issues/2602)) ([1c50e96](https://github.com/bazelbuild/rules_nodejs/commit/1c50e96)), closes [#2598](https://github.com/bazelbuild/rules_nodejs/issues/2598) + + +### Features + +* add pre and post install patches to yarn_install and npm_install ([#2607](https://github.com/bazelbuild/rules_nodejs/issues/2607)) ([d805f33](https://github.com/bazelbuild/rules_nodejs/commit/d805f33)) +* support for multi-linked first party dependencies ([e90b4ae](https://github.com/bazelbuild/rules_nodejs/commit/e90b4ae)) +* **esbuild:** add output_css flag to esbuild() ([#2545](https://github.com/bazelbuild/rules_nodejs/issues/2545)) ([c5ed4f8](https://github.com/bazelbuild/rules_nodejs/commit/c5ed4f8)) +* **esbuild:** allow ts / tsx files in esbuilds srcs ([#2594](https://github.com/bazelbuild/rules_nodejs/issues/2594)) ([9e91872](https://github.com/bazelbuild/rules_nodejs/commit/9e91872)) + + + +# [3.3.0](https://github.com/bazelbuild/rules_nodejs/compare/3.2.3...3.3.0) (2021-04-08) + + +### Bug Fixes + +* **builtin:** provide proper error if npm_package_bin has no outs ([#2557](https://github.com/bazelbuild/rules_nodejs/issues/2557)) ([c47b770](https://github.com/bazelbuild/rules_nodejs/commit/c47b770)) +* **esbuild:** 'output' is passed twice when used ([#2587](https://github.com/bazelbuild/rules_nodejs/issues/2587)) ([57218a6](https://github.com/bazelbuild/rules_nodejs/commit/57218a6)) +* **esbuild:** files not being found when building external repo ([#2563](https://github.com/bazelbuild/rules_nodejs/issues/2563)) ([d10e17c](https://github.com/bazelbuild/rules_nodejs/commit/d10e17c)) +* **esbuild:** update to esbuild 0.11 ([#2559](https://github.com/bazelbuild/rules_nodejs/issues/2559)) ([e9e8fe7](https://github.com/bazelbuild/rules_nodejs/commit/e9e8fe7)), closes [#2552](https://github.com/bazelbuild/rules_nodejs/issues/2552) +* **jasmine:** transitive specs are no longer added to the test suite ([#2576](https://github.com/bazelbuild/rules_nodejs/issues/2576)) ([e7eaf34](https://github.com/bazelbuild/rules_nodejs/commit/e7eaf34)) + + +### Features + +* introduce package for runfile helpers ([2c883d1](https://github.com/bazelbuild/rules_nodejs/commit/2c883d1)) +* make node toolchain_type public so new toolchains can be added ([#2591](https://github.com/bazelbuild/rules_nodejs/issues/2591)) ([b606b79](https://github.com/bazelbuild/rules_nodejs/commit/b606b79)), closes [#2565](https://github.com/bazelbuild/rules_nodejs/issues/2565) +* **esbuild:** Script to update esbuild to the latest available version ([#2492](https://github.com/bazelbuild/rules_nodejs/issues/2492)) ([472ed62](https://github.com/bazelbuild/rules_nodejs/commit/472ed62)) +* **esbuild:** support location expansion in esbuild args ([#2564](https://github.com/bazelbuild/rules_nodejs/issues/2564)) ([eb3bd7e](https://github.com/bazelbuild/rules_nodejs/commit/eb3bd7e)) +* **typescript:** add support for "jsx: preserve" compiler option ([#2574](https://github.com/bazelbuild/rules_nodejs/issues/2574)) ([425dbd6](https://github.com/bazelbuild/rules_nodejs/commit/425dbd6)) + + + +## [3.2.3](https://github.com/bazelbuild/rules_nodejs/compare/3.2.2...3.2.3) (2021-03-25) + + +### Bug Fixes + +* **builtin:** add transitive typings to runfiles provider produced by js_library ([#2547](https://github.com/bazelbuild/rules_nodejs/issues/2547)) ([41117fa](https://github.com/bazelbuild/rules_nodejs/commit/41117fa)) +* **builtin:** always install source-map-support ([#2538](https://github.com/bazelbuild/rules_nodejs/issues/2538)) ([97b3886](https://github.com/bazelbuild/rules_nodejs/commit/97b3886)), closes [#2520](https://github.com/bazelbuild/rules_nodejs/issues/2520) +* **esbuild:** allow empty string as an input to sourcemap for bazel 2.x support ([#2549](https://github.com/bazelbuild/rules_nodejs/issues/2549)) ([3b3e020](https://github.com/bazelbuild/rules_nodejs/commit/3b3e020)) +* **typescript:** update documentation now that ts_project is recommended ([#2548](https://github.com/bazelbuild/rules_nodejs/issues/2548)) ([a8d8b0f](https://github.com/bazelbuild/rules_nodejs/commit/a8d8b0f)) +* tsconfig validator fails on chained tsconfig references ([#2512](https://github.com/bazelbuild/rules_nodejs/issues/2512)) ([bfd74e5](https://github.com/bazelbuild/rules_nodejs/commit/bfd74e5)) +* **examples:** remove relativeLinkResolution ([#2530](https://github.com/bazelbuild/rules_nodejs/issues/2530)) ([8ef60e5](https://github.com/bazelbuild/rules_nodejs/commit/8ef60e5)) + + +### Features + +* **builtin:** first experimental rules for npm tarballs ([#2544](https://github.com/bazelbuild/rules_nodejs/issues/2544)) ([aa09b57](https://github.com/bazelbuild/rules_nodejs/commit/aa09b57)) +* **esbuild:** add 'sourcemap' option to configure sourcemap generation ([#2528](https://github.com/bazelbuild/rules_nodejs/issues/2528)) ([8d0218c](https://github.com/bazelbuild/rules_nodejs/commit/8d0218c)) + + + +## [3.2.2](https://github.com/bazelbuild/rules_nodejs/compare/3.2.1...3.2.2) (2021-03-08) + + +### Bug Fixes + +* **esbuild:** run npm version check as postinstall ([#2500](https://github.com/bazelbuild/rules_nodejs/issues/2500)) ([2efe437](https://github.com/bazelbuild/rules_nodejs/commit/2efe437)) +* **esbuild:** set correct base url when rule is at root ([#2506](https://github.com/bazelbuild/rules_nodejs/issues/2506)) ([92e8169](https://github.com/bazelbuild/rules_nodejs/commit/92e8169)) +* **rollup:** include externals config in worker cache key ([de9dd86](https://github.com/bazelbuild/rules_nodejs/commit/de9dd86)) + + +### Features + +* **builtin:** add env attribute to nodejs test and binary and run_node helper ([#2499](https://github.com/bazelbuild/rules_nodejs/issues/2499)) ([c9b159f](https://github.com/bazelbuild/rules_nodejs/commit/c9b159f)) +* **esbuild:** add max_threads setting to limit number of threads used ([8e7c731](https://github.com/bazelbuild/rules_nodejs/commit/8e7c731)) +* **examples:** update angular_bazel_architect to version 11 ([#2495](https://github.com/bazelbuild/rules_nodejs/issues/2495)) ([b8a4dcd](https://github.com/bazelbuild/rules_nodejs/commit/b8a4dcd)) + + + +## [3.2.1](https://github.com/bazelbuild/rules_nodejs/compare/3.2.0...3.2.1) (2021-02-23) + + +### Bug Fixes + +* remove `--keep-names` ([4a26898](https://github.com/bazelbuild/rules_nodejs/commit/4a26898)) +* update node versions map ([#2484](https://github.com/bazelbuild/rules_nodejs/issues/2484)) ([9506fe0](https://github.com/bazelbuild/rules_nodejs/commit/9506fe0)) +* **esbuild:** add --preserve-symlinks flag by default ([eb71285](https://github.com/bazelbuild/rules_nodejs/commit/eb71285)) +* **esbuild:** add link_workspace_root for workspace absolute imports ([#2476](https://github.com/bazelbuild/rules_nodejs/issues/2476)) ([ba7e48e](https://github.com/bazelbuild/rules_nodejs/commit/ba7e48e)), closes [#2474](https://github.com/bazelbuild/rules_nodejs/issues/2474) +* use ':' instead of '=' for esbuild 'define' argument ([#2469](https://github.com/bazelbuild/rules_nodejs/issues/2469)) ([b0fddae](https://github.com/bazelbuild/rules_nodejs/commit/b0fddae)) +* use ':' instead of '=' for esbuild 'external' argument ([#2475](https://github.com/bazelbuild/rules_nodejs/issues/2475)) ([bc7dc82](https://github.com/bazelbuild/rules_nodejs/commit/bc7dc82)) + + +### Features + +* add generate_local_modules_build_files flag to yarn_install and npm_install rules ([#2449](https://github.com/bazelbuild/rules_nodejs/issues/2449)) ([a6449b7](https://github.com/bazelbuild/rules_nodejs/commit/a6449b7)) +* **typescript:** add `data` attribute ([ac2097c](https://github.com/bazelbuild/rules_nodejs/commit/ac2097c)) + + + +# [3.2.0](https://github.com/bazelbuild/rules_nodejs/compare/3.1.0...3.2.0) (2021-02-13) + + +### Bug Fixes + +* multi-linker linking when only output files in sandbox ([ebb9481](https://github.com/bazelbuild/rules_nodejs/commit/ebb9481)) +* **builtin:** fix coverage source file paths ([ae4ec78](https://github.com/bazelbuild/rules_nodejs/commit/ae4ec78)) +* **docs:** fix formatting of nodejs_binary#chdir ([1caced8](https://github.com/bazelbuild/rules_nodejs/commit/1caced8)) +* **docs:** fix regex that replaces //packages with [@bazel](https://github.com/bazel) ([c31c0b6](https://github.com/bazelbuild/rules_nodejs/commit/c31c0b6)) +* **docs:** version selector shows 3.x ([38f4f78](https://github.com/bazelbuild/rules_nodejs/commit/38f4f78)) +* **typescript:** allow up to typescript 4.2, add tests for 3.7-4.1 ([ea168a7](https://github.com/bazelbuild/rules_nodejs/commit/ea168a7)) +* **typescript:** fixed build for external ts_project targets ([c89e0aa](https://github.com/bazelbuild/rules_nodejs/commit/c89e0aa)) +* version number not edited after release candidate ([ac2bb62](https://github.com/bazelbuild/rules_nodejs/commit/ac2bb62)) + + +### Features + +* add esbuild package ([e7e5286](https://github.com/bazelbuild/rules_nodejs/commit/e7e5286)) +* **builtin:** add coverage all: true support ([8386b97](https://github.com/bazelbuild/rules_nodejs/commit/8386b97)) +* support for nested node_modules in linker ([2c2cc6e](https://github.com/bazelbuild/rules_nodejs/commit/2c2cc6e)) + + + +# [3.1.0](https://github.com/bazelbuild/rules_nodejs/compare/3.0.0...3.1.0) (2021-02-02) + + +### Bug Fixes + +* forward srcs, deps and visibility of dummy_bzl_library to the filegroup when publishing ([0466084](https://github.com/bazelbuild/rules_nodejs/commit/0466084)) +* linker fix for invalid symlink creation path in createSymlinkAndPreserveContents ([14086a8](https://github.com/bazelbuild/rules_nodejs/commit/14086a8)) +* relative data paths in yarn_install & npm_install when symlink_node_modules=False and package.json is not at root ([3c12dfe](https://github.com/bazelbuild/rules_nodejs/commit/3c12dfe)) +* **builtin:** only generate a .tar pkg_npm output when requested ([#2428](https://github.com/bazelbuild/rules_nodejs/issues/2428)) ([4d8f15c](https://github.com/bazelbuild/rules_nodejs/commit/4d8f15c)) +* **builtin:** pass quiet attr though to build file generation on npm / yarn install ([#2400](https://github.com/bazelbuild/rules_nodejs/issues/2400)) ([ceb76d6](https://github.com/bazelbuild/rules_nodejs/commit/ceb76d6)) +* **builtin:** when using chdir attribute, don't write to source dir ([3eb4260](https://github.com/bazelbuild/rules_nodejs/commit/3eb4260)) +* **typescript:** capture js files in outputs of ts_project if allow_js ([9d7827b](https://github.com/bazelbuild/rules_nodejs/commit/9d7827b)) +* remove mirror.bazel.build from list of node_urls used to fetch NodeJS by default ([#2408](https://github.com/bazelbuild/rules_nodejs/issues/2408)) ([67b494b](https://github.com/bazelbuild/rules_nodejs/commit/67b494b)) +* skip update NodeJS versions action on forks ([#2396](https://github.com/bazelbuild/rules_nodejs/issues/2396)) ([4e40d25](https://github.com/bazelbuild/rules_nodejs/commit/4e40d25)) +* **examples:** angualr universal_server ([d5e8413](https://github.com/bazelbuild/rules_nodejs/commit/d5e8413)) +* **update-nodejs-versions:** Fix NodeJS version for running GitHub Action ([4ab8252](https://github.com/bazelbuild/rules_nodejs/commit/4ab8252)) + + +### Features + +* **builtin:** add a chdir attribute to nodejs_test and npm_package_bin ([0fde42b](https://github.com/bazelbuild/rules_nodejs/commit/0fde42b)), closes [#2323](https://github.com/bazelbuild/rules_nodejs/issues/2323) +* **typescript:** create a better ts_project worker ([#2416](https://github.com/bazelbuild/rules_nodejs/issues/2416)) ([99bfe5f](https://github.com/bazelbuild/rules_nodejs/commit/99bfe5f)) +* add support for NodeJS 15.x ([#2366](https://github.com/bazelbuild/rules_nodejs/issues/2366)) ([924fa41](https://github.com/bazelbuild/rules_nodejs/commit/924fa41)) + + + +# [3.0.0](https://github.com/bazelbuild/rules_nodejs/compare/3.0.0-rc.1...3.0.0) (2020-12-22) + +> ### For a full list for the breaking changes in 3.0.0 and other notes on migrating, see the [Migrating to 3.0.0 wiki](https://github.com/bazelbuild/rules_nodejs/wiki#migrating-to-30) page. + +### Bug Fixes + +* **builtin:** only pass kwargs to the test, not the .update binary ([#2361](https://github.com/bazelbuild/rules_nodejs/issues/2361)) ([afa095b](https://github.com/bazelbuild/rules_nodejs/commit/afa095b)) + + +### Code Refactoring + +* **builtin:** remove node_modules attribute from nodejs_binary, nodejs_test & ts_library ([c2927af](https://github.com/bazelbuild/rules_nodejs/commit/c2927af)) + + +### BREAKING CHANGES + +* **builtin:** We removed the node_modules attribute from `nodejs_binary`, `nodejs_test`, `jasmine_node_test` & `ts_library`. + +If you are using the `node_modules` attribute, you can simply add the target specified there to the `data` or `deps` attribute of the rule instead. + +For example, + +``` +nodejs_test( + name = "test", + data = [ + "test.js", + "@npm//:node_modules", + ], + entry_point = "test.js", +) +``` + +or + +``` +ts_library( + name = "lib", + srcs = glob(["*.ts"]), + tsconfig = ":tsconfig.json", + deps = ["@npm//:node_modules"], +) +``` + +We also dropped support for filegroup based node_modules target and removed `node_modules_filegroup` from `index.bzl`. + +If you are using this feature for user-managed deps, you must now a `js_library` target +with `external_npm_package` set to `True` instead. + +For example, + +``` +js_library( + 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/**/* *", + ], + ), + # Provide ExternalNpmPackageInfo which is used by downstream rules + # that use these npm dependencies + external_npm_package = True, +) + +nodejs_test( + name = "test", + data = [ + "test.js", + ":node_modules", + ], + entry_point = "test.js", +) +``` + +See `examples/user_managed_deps` for a working example of user-managed npm dependencies. + + + +# [3.0.0-rc.1](https://github.com/bazelbuild/rules_nodejs/compare/3.0.0-rc.0...3.0.0-rc.1) (2020-12-18) + + +### Bug Fixes + +* **builtin:** add DeclarationInfo sources from dependencies as inputs to npm_package_bin driven actions ([#2353](https://github.com/bazelbuild/rules_nodejs/issues/2353)) ([a549411](https://github.com/bazelbuild/rules_nodejs/commit/a549411)) + + +### Features + +* **builtin:** use npm ci as default behaviour for installing node_modules ([#2328](https://github.com/bazelbuild/rules_nodejs/issues/2328)) ([1d650fb](https://github.com/bazelbuild/rules_nodejs/commit/1d650fb)), closes [#159](https://github.com/bazelbuild/rules_nodejs/issues/159) +* allow running NPM tools from execroot ([#2297](https://github.com/bazelbuild/rules_nodejs/issues/2297)) ([2a4ba8f](https://github.com/bazelbuild/rules_nodejs/commit/2a4ba8f)) +* create symlink for build files present on node modules installed with relative paths ([#2330](https://github.com/bazelbuild/rules_nodejs/issues/2330)) ([6f4fc17](https://github.com/bazelbuild/rules_nodejs/commit/6f4fc17)) +* **builtin:** yarn install use --frozen-lockfile as default ([b6a8cbb](https://github.com/bazelbuild/rules_nodejs/commit/b6a8cbb)), closes [#941](https://github.com/bazelbuild/rules_nodejs/issues/941) + + + +# [3.0.0-rc.0](https://github.com/bazelbuild/rules_nodejs/compare/2.2.2...3.0.0-rc.0) (2020-12-11) + + +### Bug Fixes + +* **builtin:** --nobazel_run_linker implies --bazel_patch_module_resolver ([7100277](https://github.com/bazelbuild/rules_nodejs/commit/7100277)) +* remove jasmine-core as a peer dep ([#2336](https://github.com/bazelbuild/rules_nodejs/issues/2336)) ([bb2a302](https://github.com/bazelbuild/rules_nodejs/commit/bb2a302)) +* **builtin:** give a longer timeout for _create_build_files ([5d405a7](https://github.com/bazelbuild/rules_nodejs/commit/5d405a7)), closes [#2231](https://github.com/bazelbuild/rules_nodejs/issues/2231) +* **builtin:** give better error when linker runs on Node <10 ([b9dc2c1](https://github.com/bazelbuild/rules_nodejs/commit/b9dc2c1)), closes [#2304](https://github.com/bazelbuild/rules_nodejs/issues/2304) +* **builtin:** make linker deterministic when resolving from manifest & fix link_workspace_root with no runfiles ([f7c342f](https://github.com/bazelbuild/rules_nodejs/commit/f7c342f)) +* **examples:** fix jest example on windows ([3ffefa1](https://github.com/bazelbuild/rules_nodejs/commit/3ffefa1)), closes [#1454](https://github.com/bazelbuild/rules_nodejs/issues/1454) +* **exmaples/nestjs:** add module_name field in ts_library ([3a4155c](https://github.com/bazelbuild/rules_nodejs/commit/3a4155c)) +* **typescript:** don't depend on protobufjs, it's transitive ([1b344db](https://github.com/bazelbuild/rules_nodejs/commit/1b344db)) +* **typescript:** fail the build when ts_project produces zero outputs ([3ca6cac](https://github.com/bazelbuild/rules_nodejs/commit/3ca6cac)), closes [#2301](https://github.com/bazelbuild/rules_nodejs/issues/2301) +* npm_package.pack on Windows should not generate undefined.tgz ([715ad22](https://github.com/bazelbuild/rules_nodejs/commit/715ad22)) +* **typescript:** specify rootDir as absolute path ([535fa51](https://github.com/bazelbuild/rules_nodejs/commit/535fa51)) +* npm_package.pack should work in windows os ([503d6fb](https://github.com/bazelbuild/rules_nodejs/commit/503d6fb)) +* **typescript:** don't include _valid_options marker file in outs ([570e34d](https://github.com/bazelbuild/rules_nodejs/commit/570e34d)), closes [#2078](https://github.com/bazelbuild/rules_nodejs/issues/2078) + + +### chore + +* move karma_web_test to concatjs ([#2313](https://github.com/bazelbuild/rules_nodejs/issues/2313)) ([252b8e5](https://github.com/bazelbuild/rules_nodejs/commit/252b8e5)) +* remove old stamping ([68b18d8](https://github.com/bazelbuild/rules_nodejs/commit/68b18d8)), closes [#2158](https://github.com/bazelbuild/rules_nodejs/issues/2158) + + +### Code Refactoring + +* bazel_patch_module_resolver default to false ([fdde32f](https://github.com/bazelbuild/rules_nodejs/commit/fdde32f)), closes [#1440](https://github.com/bazelbuild/rules_nodejs/issues/1440) [#2125](https://github.com/bazelbuild/rules_nodejs/issues/2125) +* make pkg_web#move_files private ([815a3ca](https://github.com/bazelbuild/rules_nodejs/commit/815a3ca)) + + +### Features + +* **builtin:** flip the default of the strict_visibility flag on the npm and yarn install rules to True ([2c34857](https://github.com/bazelbuild/rules_nodejs/commit/2c34857)) +* **concatjs:** ts_devserver -> concatjs_devserver; move to @bazel/concatjs ([baeae89](https://github.com/bazelbuild/rules_nodejs/commit/baeae89)), closes [#1082](https://github.com/bazelbuild/rules_nodejs/issues/1082) +* **cypress:** remove browiserify preprocessor ([98ee87d](https://github.com/bazelbuild/rules_nodejs/commit/98ee87d)) +* **examples:** adds example for running jest with typescript ([#2245](https://github.com/bazelbuild/rules_nodejs/issues/2245)) ([d977c73](https://github.com/bazelbuild/rules_nodejs/commit/d977c73)) +* **node_repositories:** Added auth option for downloading nodejs and yarn ([c89ff38](https://github.com/bazelbuild/rules_nodejs/commit/c89ff38)) +* **typescript:** add allow_js support to ts_project ([91a95b8](https://github.com/bazelbuild/rules_nodejs/commit/91a95b8)) +* **typescript:** worker mode for ts_project ([#2136](https://github.com/bazelbuild/rules_nodejs/issues/2136)) ([5d70997](https://github.com/bazelbuild/rules_nodejs/commit/5d70997)) + + +### Performance Improvements + +* **cypress:** pack cypress runfiles into a single tar ([e8484a0](https://github.com/bazelbuild/rules_nodejs/commit/e8484a0)) + + +### BREAKING CHANGES + +* By default, we no longer patch the require() function, instead you should rely on the linker to make node modules resolvable at the standard location +if this breaks you, the quickest fix is to flip the flag back on a nodejs_binary/nodejs_test/npm_package_bin with `templated_args = ["--bazel_patch_module_resolver"]`, see https://github.com/bazelbuild/rules_nodejs/pull/2344 as an example. +Another fix is to explicitly use our runfiles helper library, see https://github.com/bazelbuild/rules_nodejs/pull/2341 as an example. +* `packages/karma:package.bzl` is gone, in your WORKSPACE replace + +``` +load("//packages/karma:package.bzl", "npm_bazel_karma_dependencies") + +npm_bazel_karma_dependencies() +``` + +with the equivalent + +``` +http_archive( + name = "io_bazel_rules_webtesting", + sha256 = "9bb461d5ef08e850025480bab185fd269242d4e533bca75bfb748001ceb343c3", + urls = ["https://github.com/bazelbuild/rules_webtesting/releases/download/0.3.3/rules_webtesting.tar.gz"], +) +``` + +Then in BUILD files replace +`load("@npm//@bazel/karma:index.bzl", "karma_web_test_suite")` +with +`load("@npm//@bazel/concatjs:index.bzl", "concatjs_web_test_suite")` + +finally drop npm dependencies on `@bazel/karma` and depend on `@bazel/concatjs` instead + +* concatjs_web back to karma_web +* **typescript:** any ts_project rule that produces no outputs must be fixed or removed +* pkg_web#move_files helper is now a private API +* - rollup_bundle config_file no longer has substitutions from a "bazel_stamp_file" - use bazel_version_file instead +- pkg_npm no longer has replace_with_version attribute, use substitutions instead +* **concatjs:** users need to change their load statements for ts_devserver +* Users will need to rename `build_bazel_rules_typescript` to `npm_bazel_typescript` and `build_bazel_rules_karma` to `npm_bazel_karma` in their projects +* If you use the internal API of tsc_wrapped you need to update the CompilerHost constructor calls. + + + +## [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)) +* **exmaple:** 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) + + +### Bug Fixes + +* **typescript:** ts_library should accept .tsx inputs ([065922b](https://github.com/bazelbuild/rules_nodejs/commit/065922b)) + + + +# [2.0.0](https://github.com/bazelbuild/rules_nodejs/compare/2.0.0-rc.3...2.0.0) (2020-07-20) + + +### Bug Fixes + +* **typescript:** exclude package.json from tsconfig#files ([16cbc6f](https://github.com/bazelbuild/rules_nodejs/commit/16cbc6f)) +* **typescript:** include package.json in third-party DeclarationInfo ([1c70656](https://github.com/bazelbuild/rules_nodejs/commit/1c70656)), closes [#2044](https://github.com/bazelbuild/rules_nodejs/issues/2044) + + +### Features + +* **typescript:** support for declarationdir on ts_project ([#2048](https://github.com/bazelbuild/rules_nodejs/issues/2048)) ([981e7c1](https://github.com/bazelbuild/rules_nodejs/commit/981e7c1)) + + + +# [2.0.0-rc.3](https://github.com/bazelbuild/rules_nodejs/compare/2.0.0-rc.2...2.0.0-rc.3) (2020-07-17) + + +### Bug Fixes + +* **builtin:** linker fix for when not running in execroot ([b187d50](https://github.com/bazelbuild/rules_nodejs/commit/b187d50)) +* **builtin:** perform the ts-to-js entry_point rewrite ([8cc044f](https://github.com/bazelbuild/rules_nodejs/commit/8cc044f)) + + +### chore + +* remove ts_setup_workspace ([07d9bb8](https://github.com/bazelbuild/rules_nodejs/commit/07d9bb8)), closes [/github.com/bazelbuild/rules_nodejs/pull/1159/files#diff-fe375cd73fb89504b9b9a9a751518849](https://github.com//github.com/bazelbuild/rules_nodejs/pull/1159/files/issues/diff-fe375cd73fb89504b9b9a9a751518849) [#2033](https://github.com/bazelbuild/rules_nodejs/issues/2033) + + +### Features + +* **examples:** add a vanilla cra app ([b7bdab7](https://github.com/bazelbuild/rules_nodejs/commit/b7bdab7)) +* **examples:** convert create-react-app example to bazel run ([a8ff872](https://github.com/bazelbuild/rules_nodejs/commit/a8ff872)) +* **examples:** convert create-react-app example to bazel test ([146e522](https://github.com/bazelbuild/rules_nodejs/commit/146e522)) +* **examples:** show the create-react-app converted to bazel build ([52455e0](https://github.com/bazelbuild/rules_nodejs/commit/52455e0)) +* **typescript:** support for rootdir on ts_project ([bc88536](https://github.com/bazelbuild/rules_nodejs/commit/bc88536)) +* add depset support to run_node inputs, matching ctx.action.run ([ee584f8](https://github.com/bazelbuild/rules_nodejs/commit/ee584f8)) + + +### BREAKING CHANGES + +* ts_setup_workspace was a no-op and has been removed. Simply remove it from your WORKSPACE file. + + + +# [2.0.0-rc.2](https://github.com/bazelbuild/rules_nodejs/compare/2.0.0-rc.1...2.0.0-rc.2) (2020-07-10) + + +### Bug Fixes + +* **builtin:** fix node patches subprocess sandbox propogation ([#2017](https://github.com/bazelbuild/rules_nodejs/issues/2017)) ([0bd9b7e](https://github.com/bazelbuild/rules_nodejs/commit/0bd9b7e)) + + + +# [2.0.0-rc.1](https://github.com/bazelbuild/rules_nodejs/compare/2.0.0-rc.0...2.0.0-rc.1) (2020-07-06) + + +### Bug Fixes + +* **builtin:** fix linker bug when there are no third-party modules ([becd9bc](https://github.com/bazelbuild/rules_nodejs/commit/becd9bc)) +* **builtin:** fixes nodejs_binary to collect JSNamedModuleInfo ([4f95cc4](https://github.com/bazelbuild/rules_nodejs/commit/4f95cc4)), closes [#1998](https://github.com/bazelbuild/rules_nodejs/issues/1998) +* **builtin:** linker silently not generating expected links in windows ([2979fad](https://github.com/bazelbuild/rules_nodejs/commit/2979fad)) +* **typescript:** add .proto files from npm deps to inputs of ts_library ([#1991](https://github.com/bazelbuild/rules_nodejs/issues/1991)) ([c1d4885](https://github.com/bazelbuild/rules_nodejs/commit/c1d4885)) +* **typescript:** add json to ts_project DefaultInfo, fix [#1988](https://github.com/bazelbuild/rules_nodejs/issues/1988) ([f6fa264](https://github.com/bazelbuild/rules_nodejs/commit/f6fa264)) +* **typescript:** Exclude .json from _out_paths ([91d81b3](https://github.com/bazelbuild/rules_nodejs/commit/91d81b3)) +* allow multiple run_node calls to be made from the same rule context ([48bb9cc](https://github.com/bazelbuild/rules_nodejs/commit/48bb9cc)) + + +### Features + +* add support for capturing and overriding the exit code within run_node ([#1990](https://github.com/bazelbuild/rules_nodejs/issues/1990)) ([cbdd3b0](https://github.com/bazelbuild/rules_nodejs/commit/cbdd3b0)) +* **cypress:** add cypress_web_test rule and @bazel/cypress package ([3bac870](https://github.com/bazelbuild/rules_nodejs/commit/3bac870)) +* **typescript:** add OutputGroupInfo to ts_project with type definitions ([d660ca1](https://github.com/bazelbuild/rules_nodejs/commit/d660ca1)), closes [#1978](https://github.com/bazelbuild/rules_nodejs/issues/1978) + + + # [2.0.0-rc.0](https://github.com/bazelbuild/rules_nodejs/compare/1.6.0...2.0.0-rc.0) (2020-06-23) diff --git a/DEVELOPING.md b/DEVELOPING.md index 4ba51a1ab0..12b5448cc5 100644 --- a/DEVELOPING.md +++ b/DEVELOPING.md @@ -2,15 +2,63 @@ We strongly encourage you to review the project's scope described in the `README.md` file before working on new features. For large changes, consider writing a design document using [this template](https://goo.gl/YCQttR). -## Testing locally +## Architecture -This repository contains nested workspaces which are tested with the bazel-in-bazel bazel_integration_test rule. The integration tests must be run in series as they use up too many resources when run in parallel. +Unlike some other Bazel rules, these rules require a separate build step, and +can not be used by just pointing your workspace file at this git repo without +[some extra work](./examples/from_source/). -`bazel test ...` includes all these integration tests so if you want to run all tests except the integration tests you can use `bazel test ... --test_tag_filters=-e2e,-examples`. A shortcut for this is `yarn test`. +When you run 'bazel build release', the core parts of these rules will be +bundled up into dist/bin/release.tar.gz, and that file can be used in your own +workspace by adding something like the following to your workspace file: -When running the e2e tests, it is recommended to tune the memory usage of Bazel locally. This can be done with `bazel --host_jvm_args=-Xms256m --host_jvm_args=-Xmx1280m test ... --test_tag_filters=e2e --local_ram_resources=792 --test_arg=--local_ram_resources=13288`. A shortcut for this is `yarn test_e2e`. + http_archive( + name = "build_bazel_rules_nodejs", + urls = [ + "file:///tmp/release.tar.gz", + ], + ) -Similarly, for test examples run `bazel --host_jvm_args=-Xms256m --host_jvm_args=-Xmx1280m test ... --test_tag_filters=examples --local_ram_resources=792 --test_arg=--local_ram_resources=13288`. A shortcut for this is `yarn test_examples`. +The various submodules in packages/ are not included in release.tar.gz. Most of +them contain their own package.json, and they are designed to function like +normal npm packages. In the release process, each submodule gets bundled up into +an npm package, and uploaded to npm as `@bazel/[name]`. End users then add the +desired packages to their own package.json file to use them. + +If you run bazel build packages/..., you can then see the resulting npm package +by looking in, eg, dist/bin/packages/concatjs/npm_package. + +This separate packaging means that package paths differ between usage inside +this repo, and usage by end users. A //packages/something:foo.bzl path needs to be +mapped to @bazel/something:foo.bzl, and these modifications are taken care of +by a substitutions= argument to pkg_npm() in each package's BUILD.bazel file. + +## In-repo tests + +A number of tests in this repo are designed to function with local repository +paths, meaning they can be run directly, and are faster to execute. The `yarn +test` command is a shortcut to exclude integration tests, eg + + yarn test //... + +or + + yarn test //packages/... + +## Integration tests + +In order to test that the rules work outside of this repo, this repo uses bazel-in-bazel with the +bazel_integration_test rule to set up an environment with the package paths matching what end users +will see. The end-to-end tests in e2e, and examples are built this way. + +The integration tests must be run in series, as they use up too many resources when run in parallel. + +`bazel test ...` includes all these integration tests. If you wish to exclude some of them, see the output of +`yarn test` in the previous section. + +When running the e2e tests, it is recommended to tune the memory usage of Bazel locally. This can be done with `bazel --host_jvm_args=-Xms256m --host_jvm_args=-Xmx1280m test ... --test_tag_filters=e2e --local_ram_resources=792 --test_arg=--local_ram_resources=13288`. A shortcut for this is `yarn test_e2e //...`. + +Similarly, for test examples run `bazel --host_jvm_args=-Xms256m --host_jvm_args=-Xmx1280m test ... --test_tag_filters=examples --local_ram_resources=792 --test_arg=--local_ram_resources=13288`. A shortcut for this is `yarn test_examples //...`. To test all targets locally in the main workspace and in all nested workspaces run: @@ -26,7 +74,12 @@ yarn clean_all ## Debugging -See `Debugging` section under `/docs/index.md`. +See [this page](./docs/debugging.md). + +## Patching + +For small changes, you may find it easier to [patch the standard +rules](./docs/changing-rules.md) instead of building your own release products. ## Releasing @@ -47,11 +100,11 @@ Check if there are any breaking changes since the last tag - if so, this will be 1. `npm version [major|minor|patch]` (`major` if there are breaking changes, `minor` if there are new features, otherwise `patch`) 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. Build npm packages and publish them: `./scripts/publish_release.sh` (for a release candidate, add arguments `publish next`) 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` [releases]: https://github.com/bazelbuild/rules_nodejs/releases diff --git a/README.md b/README.md index 96b0974b23..03a0518d83 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. @@ -12,7 +12,8 @@ so this repo can be thought of as "JavaScript rules for Bazel" as well. (We woul This repository is maintained by volunteers in the Bazel community. Neither Google, nor the Bazel team, provides support for the code. However, this repository is part of the test suite used to vet new Bazel releases. -We follow semantic versioning. Patch releases have bugfixes, minor releases have new features. Only major releases (1.x, 2.x) have breaking changes. +We follow semantic versioning. Patch releases have bugfixes, minor releases have new features. Only major releases (1.x, 2.x) have breaking changes. We support the last two major releases of Bazel, see `SUPPORTED_BAZEL_VERSIONS` in our `/index.bzl` for the list we test against. + We strive to give you an easy upgrade path when we do introduce a breaking change by documenting a migration path. If you use code from an `/internal` path, or the labs package, these are not subject to our support policy and may have breaking changes or removals with no warning or migration path. @@ -59,8 +60,10 @@ Organizations: - [Webdox](https://www.webdox.cl) - [WeMaintain](https://www.wemaintain.com) - [LogiOcean](https://www.logiocean.com) +- [Spica](https://spicaengine.com) +- [Domino Data Lab](https://www.dominodatalab.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 @@ -81,4 +84,4 @@ From [Jason Bedard](https://github.com/jbedard) at [Allocadia](https://www.alloc > - increased build and testing stability > - improved developer ergonomics such as initial setup, faster more consistent local builds > -> The use of rules_nodejs has provided these benefits across multiple Angular/TypeScript applications, Karma+Jasmine testing, Rollup, npm packaging, protobuf client/server communication, and a variety of Node.js based tooling. \ No newline at end of file +> The use of rules_nodejs has provided these benefits across multiple Angular/TypeScript applications, Karma+Jasmine testing, Rollup, npm packaging, protobuf client/server communication, and a variety of Node.js based tooling. diff --git a/WORKSPACE b/WORKSPACE index 3e3ae85d48..fdaa5dcaf6 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -15,14 +15,15 @@ workspace( name = "build_bazel_rules_nodejs", managed_directories = { + "@angular_deps": ["packages/angular/node_modules"], # cypress_deps must be a managed directory to ensure it is downloaded before cypress_repository is run. "@cypress_deps": ["packages/cypress/test/node_modules"], + "@internal_test_multi_linker_sub_deps": ["internal/linker/test/multi_linker/sub/node_modules"], "@npm": ["node_modules"], "@npm_node_patches": ["packages/node-patches/node_modules"], }, ) -load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") load("//:index.bzl", "BAZEL_VERSION", "SUPPORTED_BAZEL_VERSIONS") # @@ -33,6 +34,11 @@ load("//:package.bzl", "rules_nodejs_dev_dependencies") rules_nodejs_dev_dependencies() +local_repository( + name = "build_bazel_rules_typescript", + path = "third_party/github.com/bazelbuild/rules_typescript", +) + # # Setup rules_nodejs npm dependencies # @@ -48,32 +54,166 @@ yarn_install( environment = { "SOME_USER_ENV": "yarn is great!", }, - # 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. - manual_build_file_contents = """ -filegroup( - name = "node_modules_filegroup", - srcs = [ - "//@types/hammerjs:hammerjs__files", - "//@types/jasmine:jasmine__files", - "//typescript:typescript__files", - ], -) -""", + links = { + "@test_multi_linker/lib-a": "//internal/linker/test/multi_linker/lib_a", + "@test_multi_linker/lib-a2": "//internal/linker/test/multi_linker/lib_a", + "@test_multi_linker/lib-b": "@//internal/linker/test/multi_linker/lib_b", + "@test_multi_linker/lib-b2": "@//internal/linker/test/multi_linker/lib_b", + "@test_multi_linker/lib-c": "@build_bazel_rules_nodejs//internal/linker/test/multi_linker/lib_c", + "@test_multi_linker/lib-c2": "@build_bazel_rules_nodejs//internal/linker/test/multi_linker/lib_c", + "@test_multi_linker/lib-d": "@build_bazel_rules_nodejs//internal/linker/test/multi_linker/lib_d", + "@test_multi_linker/lib-d2": "@build_bazel_rules_nodejs//internal/linker/test/multi_linker/lib_d", + }, package_json = "//:package.json", yarn_lock = "//:yarn.lock", ) +yarn_install( + name = "internal_test_multi_linker_deps", + links = { + "@test_multi_linker/lib-a": "@//internal/linker/test/multi_linker/lib_a", + "@test_multi_linker/lib-a2": "@//internal/linker/test/multi_linker/lib_a", + "@test_multi_linker/lib-b": "@//internal/linker/test/multi_linker/lib_b", + "@test_multi_linker/lib-b2": "@//internal/linker/test/multi_linker/lib_b", + "@test_multi_linker/lib-c": "@//internal/linker/test/multi_linker/lib_c", + "@test_multi_linker/lib-c2": "@//internal/linker/test/multi_linker/lib_c", + "@test_multi_linker/lib-d": "@//internal/linker/test/multi_linker/lib_d", + "@test_multi_linker/lib-d2": "@//internal/linker/test/multi_linker/lib_d", + }, + package_json = "//internal/linker/test/multi_linker:package.json", + package_path = "internal/linker/test/multi_linker", + symlink_node_modules = False, + yarn_lock = "//internal/linker/test/multi_linker:yarn.lock", +) + +yarn_install( + name = "internal_test_multi_linker_test_a_deps", + links = { + "@test_multi_linker/lib-a": "@//internal/linker/test/multi_linker/lib_a", + "@test_multi_linker/lib-a2": "@//internal/linker/test/multi_linker/lib_a", + "@test_multi_linker/lib-b": "@//internal/linker/test/multi_linker/lib_b", + "@test_multi_linker/lib-b2": "@//internal/linker/test/multi_linker/lib_b", + "@test_multi_linker/lib-c": "@//internal/linker/test/multi_linker/lib_c", + "@test_multi_linker/lib-c2": "@//internal/linker/test/multi_linker/lib_c", + "@test_multi_linker/lib-d": "@//internal/linker/test/multi_linker/lib_d", + "@test_multi_linker/lib-d2": "@//internal/linker/test/multi_linker/lib_d", + }, + package_json = "//internal/linker/test/multi_linker/test_a:package.json", + package_path = "internal/linker/test/multi_linker/test_a", + symlink_node_modules = False, + yarn_lock = "//internal/linker/test/multi_linker/test_a:yarn.lock", +) + +yarn_install( + name = "internal_test_multi_linker_test_b_deps", + package_json = "//internal/linker/test/multi_linker/test_b:package.json", + package_path = "internal/linker/test/multi_linker/test_b", + symlink_node_modules = False, + yarn_lock = "//internal/linker/test/multi_linker/test_b:yarn.lock", +) + +yarn_install( + name = "internal_test_multi_linker_test_c_deps", + package_json = "//internal/linker/test/multi_linker/test_c:package.json", + package_path = "internal/linker/test/multi_linker/test_c", + symlink_node_modules = False, + yarn_lock = "//internal/linker/test/multi_linker/test_c:yarn.lock", +) + +yarn_install( + name = "internal_test_multi_linker_test_d_deps", + package_json = "//internal/linker/test/multi_linker/test_d:package.json", + package_path = "internal/linker/test/multi_linker/test_d", + symlink_node_modules = False, + yarn_lock = "//internal/linker/test/multi_linker/test_d:yarn.lock", +) + +yarn_install( + name = "internal_test_multi_linker_lib_b_deps", + # transitive deps for this first party lib should not include dev dependencies + args = ["--production"], + package_json = "//internal/linker/test/multi_linker/lib_b:package.json", + package_path = "internal/linker/test/multi_linker/lib_b", + symlink_node_modules = False, + yarn_lock = "//internal/linker/test/multi_linker/lib_b:yarn.lock", +) + +yarn_install( + name = "internal_test_multi_linker_lib_c_deps", + # transitive deps for this first party lib should not include dev dependencies + args = ["--production"], + package_json = "//internal/linker/test/multi_linker/lib_c:lib/package.json", + package_path = "internal/linker/test/multi_linker/lib_c/lib", + symlink_node_modules = False, + yarn_lock = "//internal/linker/test/multi_linker/lib_c:lib/yarn.lock", +) + +yarn_install( + name = "internal_test_multi_linker_sub_dev_deps", + links = { + "@test_multi_linker/lib-a": "//internal/linker/test/multi_linker/lib_a", + "@test_multi_linker/lib-a2": "//internal/linker/test/multi_linker/lib_a", + "@test_multi_linker/lib-b": "//internal/linker/test/multi_linker/lib_b", + "@test_multi_linker/lib-b2": "//internal/linker/test/multi_linker/lib_b", + "@test_multi_linker/lib-c": "//internal/linker/test/multi_linker/lib_c", + "@test_multi_linker/lib-c2": "//internal/linker/test/multi_linker/lib_c", + "@test_multi_linker/lib-d": "//internal/linker/test/multi_linker/lib_d", + "@test_multi_linker/lib-d2": "//internal/linker/test/multi_linker/lib_d", + }, + package_json = "//internal/linker/test/multi_linker/sub:package.json", + package_path = "internal/linker/test/multi_linker/sub/dev", + symlink_node_modules = False, + yarn_lock = "//internal/linker/test/multi_linker/sub:yarn.lock", +) + +yarn_install( + name = "internal_test_multi_linker_sub_deps", + # transitive deps for this first party lib should not include dev dependencies + args = ["--production"], + links = { + "@test_multi_linker/lib-a": "@build_bazel_rules_nodejs//internal/linker/test/multi_linker/lib_a", + "@test_multi_linker/lib-a2": "@build_bazel_rules_nodejs//internal/linker/test/multi_linker/lib_a", + "@test_multi_linker/lib-b": "@build_bazel_rules_nodejs//internal/linker/test/multi_linker/lib_b", + "@test_multi_linker/lib-b2": "@build_bazel_rules_nodejs//internal/linker/test/multi_linker/lib_b", + "@test_multi_linker/lib-c": "@build_bazel_rules_nodejs//internal/linker/test/multi_linker/lib_c", + "@test_multi_linker/lib-c2": "@build_bazel_rules_nodejs//internal/linker/test/multi_linker/lib_c", + "@test_multi_linker/lib-d": "@build_bazel_rules_nodejs//internal/linker/test/multi_linker/lib_d", + "@test_multi_linker/lib-d2": "@build_bazel_rules_nodejs//internal/linker/test/multi_linker/lib_d", + }, + package_json = "//internal/linker/test/multi_linker/sub:package.json", + package_path = "internal/linker/test/multi_linker/sub", + yarn_lock = "//internal/linker/test/multi_linker/sub:yarn.lock", +) + +yarn_install( + name = "internal_test_multi_linker_onep_a_deps", + # transitive deps for this first party lib should not include dev dependencies + args = ["--production"], + package_json = "//internal/linker/test/multi_linker/onep_a:package.json", + package_path = "internal/linker/test/multi_linker/onep_a", + symlink_node_modules = False, + yarn_lock = "//internal/linker/test/multi_linker/onep_a:yarn.lock", +) + npm_install( name = "npm_node_patches", package_json = "//packages/node-patches:package.json", package_lock_json = "//packages/node-patches:package-lock.json", ) +load("@build_bazel_rules_nodejs//internal/npm_tarballs:translate_package_lock.bzl", "translate_package_lock") + +# Translate our package.lock file from JSON to Starlark +translate_package_lock( + name = "npm_node_patches_lock", + package_lock = "//packages/node-patches:package-lock.json", +) + +load("@npm_node_patches_lock//:index.bzl", _npm_patches_repositories = "npm_repositories") + +# # Declare an external repository for each npm package fetchable by the lock file +_npm_patches_repositories() + npm_install( name = "angular_deps", package_json = "//packages/angular:package.json", @@ -86,29 +226,12 @@ yarn_install( yarn_lock = "//packages/cypress/test:yarn.lock", ) -# Install all Bazel dependencies needed for integration test -# tools/npm_packages/bazel_workspaces -# (tested on CI and in the scripts/test_all.sh) -load("@npm//:install_bazel_dependencies.bzl", "install_bazel_dependencies") - -install_bazel_dependencies(suppress_warning = True) - -# -# Install @bazel/typescript dependencies -# - -# We use git_repository since Renovate knows how to update it. -# With http_archive it only sees releases/download/*.tar.gz urls -git_repository( - name = "build_bazel_rules_typescript", - commit = "10a5a86885f95ab788fd841ade47b6a16e0c13d6", - patches = [ - "//:rules_typescript_pr_494.patch", - "//:rules_typescript_pr_496.patch", - "//:rules_typescript_pr_499.patch", - ], - remote = "http://github.com/bazelbuild/rules_typescript.git", - shallow_since = "1582757372 -0800", +yarn_install( + name = "rollup_test_multi_linker_deps", + package_json = "//packages/rollup/test/multi_linker:package.json", + package_path = "packages/rollup/test/multi_linker", + symlink_node_modules = False, + yarn_lock = "//packages/rollup/test/multi_linker:yarn.lock", ) # We have a source dependency on build_bazel_rules_typescript @@ -117,6 +240,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") @@ -130,10 +264,6 @@ load("@build_bazel_rules_typescript//internal:ts_repositories.bzl", "ts_setup_de ts_setup_dev_workspace() -load("//packages/typescript/internal:ts_repositories.bzl", "ts_setup_workspace") - -ts_setup_workspace() - # # Install @bazel/cypress dependencies # @@ -142,16 +272,10 @@ 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, ) -# -# Install @bazel/karma dependencies -# - -load("//packages/karma:package.bzl", "npm_bazel_karma_dependencies") - -npm_bazel_karma_dependencies() - # Setup the rules_webtesting toolchain load("@io_bazel_rules_webtesting//web:repositories.bzl", "web_test_repositories") @@ -164,6 +288,11 @@ browser_repositories( firefox = True, ) +# Setup esbuild dependencies +load("//packages/esbuild:esbuild_repo.bzl", "esbuild_dependencies") + +esbuild_dependencies() + # # Dependencies to run stardoc & generating documentation # @@ -201,11 +330,15 @@ local_repository( yarn_install( name = "fine_grained_deps_yarn", data = [ + "//:tools/npm_packages/local_module/yarn/BUILD.bazel", + "//:tools/npm_packages/local_module/yarn/index.js", + "//:tools/npm_packages/local_module/yarn/package.json", "//internal/npm_install/test:postinstall.js", ], environment = { "SOME_USER_ENV": "yarn is great!", }, + generate_local_modules_build_files = False, included_files = [ "", ".js", @@ -221,11 +354,15 @@ yarn_install( npm_install( name = "fine_grained_deps_npm", data = [ + "//:tools/npm_packages/local_module/npm/BUILD.bazel", + "//:tools/npm_packages/local_module/npm/index.js", + "//:tools/npm_packages/local_module/npm/package.json", "//internal/npm_install/test:postinstall.js", ], environment = { "SOME_USER_ENV": "npm is cool!", }, + generate_local_modules_build_files = False, included_files = [ "", ".js", @@ -233,6 +370,7 @@ npm_install( ".json", ".proto", ], + npm_command = "install", package_json = "//:tools/fine_grained_deps_npm/package.json", package_lock_json = "//:tools/fine_grained_deps_npm/package-lock.json", symlink_node_modules = False, @@ -257,12 +395,17 @@ yarn_install( ".json", ".proto", ], + links = { + "@some-scope/some-target-b": "@//some/target/b", + "@some-scope/some-target-b2": "@//some/target/b", + "some-target-a": "//some/target/a", + "some-target-a2": "//some/target/a", + }, manual_build_file_contents = """ filegroup( name = "golden_files", srcs = [ "//:BUILD.bazel", - "//:install_bazel_dependencies.bzl", "//:manual_build_file_contents", "//:WORKSPACE", "//@angular/core:BUILD.bazel", @@ -278,6 +421,10 @@ filegroup( "//rxjs:BUILD.bazel", "//unidiff:BUILD.bazel", "//zone.js:BUILD.bazel", + "//some-target-a:BUILD.bazel", + "//some-target-a2:BUILD.bazel", + "//@some-scope/some-target-b:BUILD.bazel", + "//@some-scope/some-target-b2:BUILD.bazel", ], )""", package_json = "//:tools/fine_grained_goldens/package.json", @@ -285,6 +432,80 @@ filegroup( yarn_lock = "//:tools/fine_grained_goldens/yarn.lock", ) +yarn_install( + name = "internal_npm_install_test_patches_yarn", + package_json = "//internal/npm_install/test/patches_yarn:package.json", + package_path = "internal/npm_install/test/patches_yarn", + patch_args = ["-p0"], + patch_tool = "patch", + post_install_patches = ["//internal/npm_install/test/patches_yarn:semver+1.0.0.patch"], + pre_install_patches = ["//internal/npm_install/test/patches_yarn:package_json.patch"], + symlink_node_modules = False, + yarn_lock = "//internal/npm_install/test/patches_yarn:yarn.lock", +) + +npm_install( + name = "internal_npm_install_test_patches_npm", + package_json = "//internal/npm_install/test/patches_npm:package.json", + package_lock_json = "//internal/npm_install/test/patches_npm:package-lock.json", + package_path = "internal/npm_install/test/patches_npm", + patch_args = ["-p0"], + patch_tool = "patch", + post_install_patches = ["//internal/npm_install/test/patches_npm:semver+1.0.0.patch"], + pre_install_patches = ["//internal/npm_install/test/patches_npm:package_json.patch"], + symlink_node_modules = False, +) + +yarn_install( + name = "fine_grained_goldens_multi_linked", + included_files = [ + "", + ".js", + ".jst", + ".ts", + ".map", + ".d.ts", + ".json", + ".proto", + ], + links = { + "@some-scope/some-target-b": "@//some/target/b", + "@some-scope/some-target-b2": "@//some/target/b", + "some-target-a": "@build_bazel_rules_nodejs//some/target/a", + "some-target-a2": "@build_bazel_rules_nodejs//some/target/a", + }, + manual_build_file_contents = """ +filegroup( + name = "golden_files", + srcs = [ + "//:BUILD.bazel", + "//:manual_build_file_contents", + "//:WORKSPACE", + "//@angular/core:BUILD.bazel", + "//@gregmagolan:BUILD.bazel", + "//@gregmagolan/test-a/bin:BUILD.bazel", + "//@gregmagolan/test-a:BUILD.bazel", + "//@gregmagolan/test-a:index.bzl", + "//@gregmagolan/test-b:BUILD.bazel", + "//ajv:BUILD.bazel", + "//jasmine/bin:BUILD.bazel", + "//jasmine:BUILD.bazel", + "//jasmine:index.bzl", + "//rxjs:BUILD.bazel", + "//unidiff:BUILD.bazel", + "//zone.js:BUILD.bazel", + "//some-target-a:BUILD.bazel", + "//some-target-a2:BUILD.bazel", + "//@some-scope/some-target-b:BUILD.bazel", + "//@some-scope/some-target-b2:BUILD.bazel", + ], +)""", + package_json = "//:tools/fine_grained_goldens/package.json", + package_path = "tools/fine_grained_goldens", + symlink_node_modules = False, + yarn_lock = "//:tools/fine_grained_goldens/yarn.lock", +) + # # RBE configuration # @@ -306,14 +527,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/bazel-integration-testing.patch b/bazel-integration-testing.patch deleted file mode 100644 index 9cfbcd98d4..0000000000 --- a/bazel-integration-testing.patch +++ /dev/null @@ -1,54 +0,0 @@ -diff tools/repositories.bzl tools/repositories.bzl -index 8364dac..42e998d 100644 ---- tools/repositories.bzl -+++ tools/repositories.bzl -@@ -15,11 +15,6 @@ - load("//tools:bazel_hash_dict.bzl", "BAZEL_HASH_DICT") - load(":common.bzl", "BAZEL_VERSIONS") - --_BAZEL_BINARY_PACKAGES = [ -- "http://releases.bazel.build/{version}/release/bazel-{version}{installer}-{platform}.{extension}", -- "https://github.com/bazelbuild/bazel/releases/download/{version}/bazel-{version}{installer}-{platform}.{extension}", --] -- - def _get_platform_name(rctx): - os_name = rctx.os.name.lower() - -@@ -45,7 +40,36 @@ def _get_installer(rctx): - extension = "sh" - installer = "-installer" - -- urls = [url.format(version=version, installer=installer, platform=platform, extension=extension) for url in _BAZEL_BINARY_PACKAGES] -+ filename = "bazel-{version}{installer}-{platform}.{extension}".format( -+ version = version, -+ installer = installer, -+ platform = platform, -+ extension = extension, -+ ) -+ -+ kind = "release" -+ # Mimics determineURL in github.com/bazelbuild/bazelisk/bazelisk.go -+ enabled_packages = [ -+ "https://releases.bazel.build/{version}/{kind}/{filename}", -+ ] -+ -+ if "rc" in version: -+ version_components = version.split("rc") -+ version = version_components[0] -+ kind = "rc" + version_components[1] -+ else: -+ enabled_packages.append( -+ "https://github.com/{fork}/bazel/releases/download/{version}/{filename}") -+ urls = [ -+ url.format( -+ # TODO: support other forks like bazelisk does -+ fork = "bazelbuild", -+ version=version, -+ kind = kind, -+ filename = filename, -+ ) -+ for url in enabled_packages -+ ] - args = {"url": urls, "type": "zip"} - if version in BAZEL_HASH_DICT and platform in BAZEL_HASH_DICT[version]: - args["sha256"] = BAZEL_HASH_DICT[version][platform] diff --git a/commitlint.config.js b/commitlint.config.js index ae731b8abc..647f900263 100644 --- a/commitlint.config.js +++ b/commitlint.config.js @@ -8,14 +8,16 @@ module.exports = { [ 'angular', 'builtin', + 'concatjs', 'create', 'cypress', + 'esbuild', 'examples', 'jasmine', - 'karma', 'labs', 'protractor', 'rollup', + 'runfiles', 'terser', 'typescript', 'worker', diff --git a/common.bazelrc b/common.bazelrc index 0f94d61c26..37c3e66b0a 100644 --- a/common.bazelrc +++ b/common.bazelrc @@ -61,12 +61,6 @@ build:debug --compilation_mode=dbg # This prevents accidentally depending on this feature, which Bazel will remove. build --nolegacy_external_runfiles -# Turn on the "Managed Directories" feature. -# This allows Bazel to share the same node_modules directory with other tools -# NB: this option was introduced in Bazel 0.26 -# See https://docs.bazel.build/versions/master/command-line-reference.html#flag--experimental_allow_incremental_repository_updates -common --experimental_allow_incremental_repository_updates - # Turn on --incompatible_strict_action_env which was on by default # in Bazel 0.21.0 but turned off again in 0.22.0. Follow # https://github.com/bazelbuild/bazel/issues/7026 for more details. diff --git a/defs.bzl b/defs.bzl deleted file mode 100644 index c6960e9f9b..0000000000 --- a/defs.bzl +++ /dev/null @@ -1,47 +0,0 @@ -# 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. - -"""No longer usable - you must load from index.bzl -""" - -def _error(*args, **kwargs): - fail(""" -ERROR: defs.bzl has been removed from build_bazel_rules_nodejs - -Please update your load statements to use index.bzl instead. - -See https://github.com/bazelbuild/rules_nodejs/wiki#migrating-off-build_bazel_rules_nodejsdefsbzl for help. -""") - -check_bazel_version = _error -nodejs_binary = _error -nodejs_test = _error -node_repositories = _error -jasmine_node_test = _error -npm_package = _error -pkg_npm = _error -npm_package_bin = _error -# ANY RULES ADDED HERE SHOULD BE DOCUMENTED, see index.for_docs.bzl - -def node_modules_filegroup(packages, patterns = [], **kwargs): - _error() - -def npm_install(**kwargs): - _error() - -def yarn_install(**kwargs): - _error() - -def check_rules_nodejs_version(minimum_version_string): - _error() 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 ba58c61df3..8df81d8e6b 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", @@ -25,6 +25,16 @@ stardoc( ], ) +stardoc( + name = "providers", + out = "providers.api", + input = "//:providers.bzl", + tags = ["fix-windows"], + deps = [ + "//:bzl", + ], +) + _BUILTINS_README = "# Built-in rules\n\nThese 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.\n\n" # Ugly genrule depending on local linux environment to build the README out of skylark doc generation. @@ -32,51 +42,49 @@ _BUILTINS_README = "# Built-in rules\n\nThese rules are available without any np # TODO: This ought to be possible with stardoc alone. Need to coordinate with Chris Parsons. genrule( name = "builtins_md", - srcs = [":builtins.api"], + srcs = [ + ":builtins.api", + ":providers.api", + ], outs = ["builtins.doc"], cmd = "echo '%s' > $@;" % _BUILTINS_README + - "cat $< | sed 's/^##/\\\n##/' >> $@", + "cat $(location :builtins.api) | sed 's/^##/\\\n##/' >> $@ &&" + + "cat $(location :providers.api) | sed 's/^##/\\\n##/' >> $@", tags = ["fix-windows"], ) -_PACKAGE_READMES = { - "Built-ins": ":builtins.doc", - "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", + "Concatjs": "//packages/concatjs:README.md", + "Cypress": "//packages/cypress:README.md", + "Jasmine": "//packages/jasmine: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..c7fc528c29 --- /dev/null +++ b/docs/Built-ins.html @@ -0,0 +1,2696 @@ + + + + + + + + + + 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://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://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, chdir, configuration_env_vars, data, default_env_vars, entry_point, env,
+              link_workspace_root, templated_args)
+
+ +

Runs some JavaScript code in NodeJS.

+ +

ATTRIBUTES

+ +

name

+ +

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

+ +

chdir

+ +

(String): Working directory to run the binary or test in, relative to the workspace. +By default, Bazel always runs in the workspace root. +Due to implementation details, this argument must be underneath this package directory.

+ +

To run in the directory containing the nodejs_binary / nodejs_test, use

+ +
chdir = package_name()
+
+ +

(or if you’re in a macro, use native.package_name())

+ +

WARNING: this will affect other paths passed to the program, either as arguments or in configuration files, +which are workspace-relative. +You may need ../../ segments to re-relativize such paths to the new working directory.

+ +

Defaults to ""

+ +

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"],
+)
+
+ +

env

+ +

(Dictionary: String -> String): Specifies additional environment variables to set when the target is executed, subject to location +expansion.

+ +

Defaults to {}

+ + + +

(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

+ +

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, chdir, configuration_env_vars, data, default_env_vars, entry_point, env,
+            expected_exit_code, link_workspace_root, 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.

+ +

By default, Bazel runs tests with a working directory set to your workspace root. +Use the chdir attribute to change the working directory before the program starts.

+ +

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.

+ +

chdir

+ +

(String): Working directory to run the binary or test in, relative to the workspace. +By default, Bazel always runs in the workspace root. +Due to implementation details, this argument must be underneath this package directory.

+ +

To run in the directory containing the nodejs_binary / nodejs_test, use

+ +
chdir = package_name()
+
+ +

(or if you’re in a macro, use native.package_name())

+ +

WARNING: this will affect other paths passed to the program, either as arguments or in configuration files, +which are workspace-relative. +You may need ../../ segments to re-relativize such paths to the new working directory.

+ +

Defaults to ""

+ +

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"],
+)
+
+ +

env

+ +

(Dictionary: String -> String): Specifies additional environment variables to set when the target is executed, subject to location +expansion.

+ +

Defaults to {}

+ +

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

+ +

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, generate_local_modules_build_files, included_files,
+            links, manual_build_file_contents, npm_command, package_json, package_lock_json,
+            package_path, patch_args, patch_tool, post_install_patches, pre_install_patches, 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 {}

+ +

generate_local_modules_build_files

+ +

(Boolean): Enables the BUILD files auto generation for local modules installed with file: (npm) or link: (yarn)

+ +

When using a monorepo it’s common to have modules that we want to use locally and +publish to an external package repository. This can be achieved using a js_library rule +with a package_name attribute defined inside the local package BUILD file. However, +if the project relies on the local package dependency with file: (npm) or link: (yarn) to be used outside Bazel, this +could introduce a race condition with both npm_install or yarn_install rules.

+ +

In order to overcome it, a link could be created to the package BUILD file from the +npm external Bazel repository (so we can use a local BUILD file instead of an auto generated one), +which require us to set generate_local_modules_build_files = False and complete a last step which is writing the +expected targets on that same BUILD file to be later used both by npm_install or yarn_install +rules, which are: <package_name__files>, <package_name__nested_node_modules>, +<package_name__contents>, <package_name__typings> and the last one just <package_name>. If you doubt what those targets +should look like, check the generated BUILD file for a given node module.

+ +

When true, the rule will follow the default behaviour of auto generating BUILD files for each node_module at install time.

+ +

When False, the rule will not auto generate BUILD files for node_modules that are installed as symlinks for local modules.

+ +

Defaults to True

+ +

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 []

+ + + +

(Dictionary: String -> String): Targets to link as npm packages.

+ +

A mapping of npm package names to bazel targets to linked into node_modules.

+ +

If package_path is also set, the bazel target will be linked to the node_modules at package_path +along with other 3rd party npm packages from this rule.

+ +

For example,

+ +
yarn_install(
+    name = "npm",
+    package_json = "//web:package.json",
+    yarn_lock = "//web:yarn.lock",
+    package_path = "web",
+    links = {
+        "@scope/target": "//some/scoped/target",
+        "target": "//some/target",
+    },
+)
+
+ +

creates targets in the @npm external workspace that can be used by other rules which +are linked into web/node_modules along side the 3rd party deps since the project_path is web.

+ +

The above links will create the targets,

+ +
@npm//@scope/target
+@npm//target
+
+ +

that can be referenced as data or deps by other rules such as nodejs_binary and ts_project +and can be required as @scope/target and target with standard node_modules resolution at runtime,

+ +
nodejs_binary(
+    name = "bin",
+    entry_point = "bin.js",
+    deps = [
+        "@npm//@scope/target",
+        "@npm//target"
+        "@npm//other/dep"
+    ],
+)
+
+ts_project(
+    name = "test",
+    srcs = [...],
+    deps = [
+        "@npm//@scope/target",
+        "@npm//target"
+        "@npm//other/dep"
+    ],
+)
+
+ +

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 ""

+ +

npm_command

+ +

(String): The npm command to run, to install dependencies.

+ +
        See npm docs <https://docs.npmjs.com/cli/v6/commands>
+
+        In particular, for "ci" it says:
+        > If dependencies in the package lock do not match those in package.json, npm ci will exit with an error, instead of updating the package lock.
+
+ +

Defaults to "ci"

+ +

package_json

+ +

(Label, mandatory)

+ +

package_lock_json

+ +

(Label, mandatory)

+ +

package_path

+ +

(String): If set, link the 3rd party node_modules dependencies under the package path specified.

+ +

In most cases, this should be the directory of the package.json file so that the linker links the node_modules +in the same location they are found in the source tree. In a future release, this will default to the package.json +directory. This is planned for 4.0: https://github.com/bazelbuild/rules_nodejs/issues/2451

+ +

Defaults to ""

+ +

patch_args

+ +

(List of strings): The arguments given to the patch tool. Defaults to -p0, however -p1 will usually be needed for patches generated by git. If multiple -p arguments are specified, the last one will take effect.If arguments other than -p are specified, Bazel will fall back to use patch command line tool instead of the Bazel-native patch implementation. When falling back to patch command line tool and patch_tool attribute is not specified, patch will be used.

+ +

Defaults to ["-p0"]

+ +

patch_tool

+ +

(String): The patch(1) utility to use. If this is specified, Bazel will use the specifed patch tool instead of the Bazel-native patch implementation.

+ +

Defaults to ""

+ +

post_install_patches

+ +

(List of labels): Patch files to apply after running package manager.

+ +

This can be used to make changes to installed packages after the package manager runs.

+ +

File paths in patches should be relative to workspace root.

+ +

Defaults to []

+ +

pre_install_patches

+ +

(List of labels): Patch files to apply before running package manager.

+ +

This can be used to make changes to package.json or other data files passed in before running the +package manager.

+ +

File paths in patches should be relative to workspace root.

+ +

Defaults to []

+ +

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.

+ +

Defaults to True

+ + + +

(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, package_path, srcs,
+        substitutions, tgz, 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 four 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

+ +

It is also possible to use the resulting tar file file from the .pack as an action input via the .tar label. +To make use of this label, the tgz attribute must be set, and the generating pkg_npm rule must have a valid package.json file +as part of its sources:

+ +
pkg_npm(
+    name = "my_package",
+    srcs = ["package.json"],
+    deps = [":my_typescript_lib"],
+    tgz = "my_package.tgz",
+)
+
+my_rule(
+    name = "foo",
+    srcs = [
+        "//:my_package.tar",
+    ],
+)
+
+ +

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 ""

+ +

package_path

+ +

(String): The directory in the workspace to link to. +If set, link this pkg_npm to the node_modules under the package path specified. +If unset, the default is to link to the node_modules root of the workspace.

+ +

Defaults to ""

+ +

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 {}

+ +

tgz

+ +

(String): If set, will create a .tgz file that can be used as an input to another rule, the tar will be given the name assigned to this attribute.

+ +
    NOTE: If this attribute is set, a valid `package.json` file must be included in the sources of this target
+
+ +

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, frozen_lockfile, generate_local_modules_build_files,
+             included_files, links, manual_build_file_contents, package_json, package_path,
+             patch_args, patch_tool, post_install_patches, pre_install_patches, 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 {}

+ +

frozen_lockfile

+ +

(Boolean): Use the --frozen-lockfile flag for yarn.

+ +

Don’t generate a yarn.lock lockfile and fail if an update is needed.

+ +

This flag enables an exact install of the version that is specified in the yarn.lock +file. This helps to have reproducible builds across builds.

+ +

To update a dependency or install a new one run the yarn install command with the +vendored yarn binary. bazel run @nodejs//:yarn install. You can pass the options like +bazel run @nodejs//:yarn install -- -D <dep-name>.

+ +

Defaults to True

+ +

generate_local_modules_build_files

+ +

(Boolean): Enables the BUILD files auto generation for local modules installed with file: (npm) or link: (yarn)

+ +

When using a monorepo it’s common to have modules that we want to use locally and +publish to an external package repository. This can be achieved using a js_library rule +with a package_name attribute defined inside the local package BUILD file. However, +if the project relies on the local package dependency with file: (npm) or link: (yarn) to be used outside Bazel, this +could introduce a race condition with both npm_install or yarn_install rules.

+ +

In order to overcome it, a link could be created to the package BUILD file from the +npm external Bazel repository (so we can use a local BUILD file instead of an auto generated one), +which require us to set generate_local_modules_build_files = False and complete a last step which is writing the +expected targets on that same BUILD file to be later used both by npm_install or yarn_install +rules, which are: <package_name__files>, <package_name__nested_node_modules>, +<package_name__contents>, <package_name__typings> and the last one just <package_name>. If you doubt what those targets +should look like, check the generated BUILD file for a given node module.

+ +

When true, the rule will follow the default behaviour of auto generating BUILD files for each node_module at install time.

+ +

When False, the rule will not auto generate BUILD files for node_modules that are installed as symlinks for local modules.

+ +

Defaults to True

+ +

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 []

+ + + +

(Dictionary: String -> String): Targets to link as npm packages.

+ +

A mapping of npm package names to bazel targets to linked into node_modules.

+ +

If package_path is also set, the bazel target will be linked to the node_modules at package_path +along with other 3rd party npm packages from this rule.

+ +

For example,

+ +
yarn_install(
+    name = "npm",
+    package_json = "//web:package.json",
+    yarn_lock = "//web:yarn.lock",
+    package_path = "web",
+    links = {
+        "@scope/target": "//some/scoped/target",
+        "target": "//some/target",
+    },
+)
+
+ +

creates targets in the @npm external workspace that can be used by other rules which +are linked into web/node_modules along side the 3rd party deps since the project_path is web.

+ +

The above links will create the targets,

+ +
@npm//@scope/target
+@npm//target
+
+ +

that can be referenced as data or deps by other rules such as nodejs_binary and ts_project +and can be required as @scope/target and target with standard node_modules resolution at runtime,

+ +
nodejs_binary(
+    name = "bin",
+    entry_point = "bin.js",
+    deps = [
+        "@npm//@scope/target",
+        "@npm//target"
+        "@npm//other/dep"
+    ],
+)
+
+ts_project(
+    name = "test",
+    srcs = [...],
+    deps = [
+        "@npm//@scope/target",
+        "@npm//target"
+        "@npm//other/dep"
+    ],
+)
+
+ +

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_path

+ +

(String): If set, link the 3rd party node_modules dependencies under the package path specified.

+ +

In most cases, this should be the directory of the package.json file so that the linker links the node_modules +in the same location they are found in the source tree. In a future release, this will default to the package.json +directory. This is planned for 4.0: https://github.com/bazelbuild/rules_nodejs/issues/2451

+ +

Defaults to ""

+ +

patch_args

+ +

(List of strings): The arguments given to the patch tool. Defaults to -p0, however -p1 will usually be needed for patches generated by git. If multiple -p arguments are specified, the last one will take effect.If arguments other than -p are specified, Bazel will fall back to use patch command line tool instead of the Bazel-native patch implementation. When falling back to patch command line tool and patch_tool attribute is not specified, patch will be used.

+ +

Defaults to ["-p0"]

+ +

patch_tool

+ +

(String): The patch(1) utility to use. If this is specified, Bazel will use the specifed patch tool instead of the Bazel-native patch implementation.

+ +

Defaults to ""

+ +

post_install_patches

+ +

(List of labels): Patch files to apply after running package manager.

+ +

This can be used to make changes to installed packages after the package manager runs.

+ +

File paths in patches should be relative to workspace root.

+ +

Defaults to []

+ +

pre_install_patches

+ +

(List of labels): Patch files to apply before running package manager.

+ +

This can be used to make changes to package.json or other data files passed in before running the +package manager.

+ +

File paths in patches should be relative to workspace root.

+ +

Defaults to []

+ +

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.

+ +

Defaults to True

+ + + +

(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

+ +

js_library

+ +

USAGE

+ +
+js_library(name, srcs, package_name, package_path, 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 concatjs_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:

+ + +

PARAMETERS

+ +

name

+ +

The 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.

+ +

If package_name == “$node_modules$” this indictates that this js_library target is one or more external npm +packages in node_modules. This is a special case that used be covered by the internal only +external_npm_package attribute. NB: ‘$’ is an illegal character +for npm packages names so this reserved name will not conflict with any valid package_name values

+ +

This is used by the yarn_install & npm_install repository rules for npm dependencies installed by +yarn & npm. When true, js_library will provide ExternalNpmPackageInfo.

+ +

It can also be used for user-managed npm dependencies if node_modules is layed out outside of bazel. +For example,

+ +

js_library( + 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// *”, + ], + ), + # Special value to provide ExternalNpmPackageInfo which is used by downstream + # rules that use these npm dependencies + package_name = “$node_modules$”, +)

+ +

See examples/user_managed_deps for a working example of user-managed npm dependencies.

+ +

Defaults to None

+ +

package_path

+ +

The directory in the workspace to link to. +If set, link this js_library to the node_modules under the package path specified. +If unset, the default is to link to the node_modules root of the workspace.

+ +

Defaults to ""

+ +

deps

+ +

Other targets that provide JavaScript code

+ +

Defaults to []

+ +

kwargs

+ +

Other attributes

+ +

npm_package_bin

+ +

USAGE

+ +
+npm_package_bin(tool, package, package_bin, data, env, outs, args, stderr, stdout, exit_code_out,
+                output_dir, link_workspace_root, chdir, 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.

+ +

By default, Bazel runs actions with a working directory set to your workspace root. +Use the chdir attribute to change the working directory before the program runs.

+ +

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 []

+ +

env

+ +

specifies additional environment variables to set when the target is executed

+ +

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 []

+ +

stderr

+ +

set to capture the stderr of the binary to a file, which can later be used as an input to another target +subject to the same semantics as outs

+ +

Defaults to None

+ +

stdout

+ +

set to capture the stdout of the binary to a file, which can later be used as an input to another target +subject to the same semantics as outs

+ +

Defaults to None

+ +

exit_code_out

+ +

set to capture the exit code of the binary to a file, which can later be used as an input to another target +subject to the same semantics as outs. Note that setting this will force the binary to exit 0. +If the binary creates outputs and these are declared, they must still be created

+ +

Defaults to None

+ +

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

+ +

chdir

+ +

Working directory to run the binary or test in, relative to the workspace.

+ +

By default, Bazel always runs in the workspace root.

+ +

To run in the directory containing the npm_package_bin under the source tree, use +chdir = package_name() +(or if you’re in a macro, use native.package_name()).

+ +

To run in the output directory where the npm_package_bin writes outputs, use +chdir = "$(RULEDIR)"

+ +

WARNING: this will affect other paths passed to the program, either as arguments or in configuration files, +which are workspace-relative. +You may need ../../ segments to re-relativize such paths to the new working directory. +In a BUILD file you could do something like this to point to the output path:

+ +
_package_segments = len(package_name().split("/"))
+npm_package_bin(
+    ...
+    chdir = package_name(),
+    # ../.. segments to re-relative paths from the chdir back to workspace
+    args = ["/".join([".."] * _package_segments + ["$@"])],
+)
+
+ +

Defaults to None

+ +

kwargs

+ +

additional undocumented keyword args

+ +

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)

+ +

ExternalNpmPackageInfo

+ +

USAGE

+ +
+ExternalNpmPackageInfo(direct_sources, path, sources, workspace)
+
+ +

Provides information about one or more external npm packages

+ +

FIELDS

+ +

direct_sources

+ +

Depset of direct source files in these external npm package(s)

+

path

+ +

The local workspace path that these external npm deps should be linked at. If empty, they will be linked at the root.

+

sources

+ +

Depset of direct & transitive source files in these external npm package(s) and transitive dependencies

+

workspace

+ +

The workspace name that these external npm package(s) are provided from

+ +

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, package_path, 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.

+ +

This field is optional. If not set, the target can be made linkable to a package_name with the npm_link rule.

+

package_path

+ +

The directory in the workspace to link to.

+ +

If set, link the 1st party dependencies to the node_modules under the package path specified. +If unset, the default is to link to the node_modules root of the workspace.

+

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 ExternalNpmPackageInfo

+ +

NpmPackageInfo

+ +

USAGE

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

Provides information about one or more external npm packages

+ +

FIELDS

+ +

direct_sources

+ +

Depset of direct source files in these external npm package(s)

+

path

+ +

The local workspace path that these external npm deps should be linked at. If empty, they will be linked at the root.

+

sources

+ +

Depset of direct & transitive source files in these external npm package(s) and transitive dependencies

+

workspace

+ +

The workspace name that these external npm package(s) are 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, chdir, 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

+ +

chdir

+ +

directory we should change to be the working dir

+ +

Defaults to None

+ +

kwargs

+ +

all other args accepted by ctx.actions.run

+ +

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.

+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + diff --git a/docs/Built-ins.md b/docs/Built-ins.md index 50976cdcb8..f55ea73e18 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 --- + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+ + +
+
+ +

@bazel/concatjs

+ +

Concatjs is a JavaScript bundler, in a trivial sense: the UNIX cat command is a basic implementation:

+ +
$ cat one.js two.js > bundle.js
+
+ +

Clearly self-evident is that this bundler is super-fast and simple. +A performant implementation adds some in-memory caching, and for developer ergonomics you add a simple IIFE wrapper +around each file so that the Chrome DevTools shows the files in the tree as if they had been independently loaded.

+ +

However at its core, concatjs requires a big tradeoff of a migration cost to buy-in, to get this incredible performance. +The path of the JavaScript files is lost in the bundling process, so they must contain their module ID internally.

+ +

Named AMD/UMD modules and goog.module are the two JS module formats that are compatible with concatjs. +Most packages do not ship with this format, so in order to use concatjs tooling, you have to shim your code and dependencies. See the Compatibility section below.

+ +

This is at the core of how Google does JavaScript development. +So Bazel rules that originated in Google’s codebase have affordances for concatjs. +For example ts_library produces named AMD modules in its “devmode” output, and +karma_web_test expects to bundle inputs using concatjs.

+ +

Compatibility

+ +

To make it easier to produce a UMD version of a third-party npm package, we automatically generate a target that uses Browserify to build one, using the main entry from the package’s package.json. +In most cases this will make the package loadable under concatjs. +This target has a __umd suffix. For example, if your library is at @npm//foo then the UMD target is @npm//foo:foo__umd.

+ +

An example where this fixes a users issue: https://github.com/bazelbuild/rules_nodejs/issues/2317#issuecomment-735921318

+ +

In some cases, the generated UMD bundle is not sufficient, and in others it fails to build because it requires some special Browserify configuration. +You can always write your own shim that grabs a symbol from a package you use, and exposes it in an AMD/require.js-compatible way. +For example, even though RxJS ships with a UMD bundle, it contains multiple entry points and uses anonymous modules, not named modules. So our Angular/concatjs example has a rxjs_shims.js file that exposes some RxJS operators, then at https://github.com/bazelbuild/rules_nodejs/blob/2.3.1/examples/angular/src/BUILD.bazel#L65-L71 this is combined in a filegroup with the rxjs.umd.js file. Now we use this filegroup target when depending on RxJS in a concatjs_* rule.

+ +

Ultimately by using concatjs, you’re signing up for at least a superficial understanding of these shims and may need to update them when you change your dependencies.

+ +

Serving JS in development mode under Bazel

+ +

There are two choices for development mode:

+ +
    +
  1. Use the concatjs_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 +concatjs_devserver supports. Be careful that your development round-trip stays +fast (should be under two seconds).
  4. +
+ +

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

+ +
load("@npm//@bazel/concatjs:index.bzl", "concatjs_devserver")
+load("@npm//@bazel/typescript:index.bzl", "ts_library")
+
+ts_library(
+    name = "app",
+    srcs = ["app.ts"],
+)
+
+concatjs_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 +concatjs_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.

+ +

Testing with Karma

+ +

The karma_web_test rule runs karma tests with Bazel.

+ +

It depends on rules_webtesting, so you need to add this to your WORKSPACE +if you use the web testing rules in @bazel/concatjs:

+ +
# Fetch transitive Bazel dependencies of karma_web_test
+http_archive(
+    name = "io_bazel_rules_webtesting",
+    sha256 = "9bb461d5ef08e850025480bab185fd269242d4e533bca75bfb748001ceb343c3",
+    urls = ["https://github.com/bazelbuild/rules_webtesting/releases/download/0.3.3/rules_webtesting.tar.gz"],
+)
+
+# 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 user-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 karma_web_test_suite karma
+# attribute when using user-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
+    data = ["//:node_modules"],
+)
+
+ +

concatjs_devserver

+ +

USAGE

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

concatjs_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/concatjs/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/concatjs/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". + concatjs_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 []

+ +

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//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.

+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + diff --git a/docs/Concatjs.md b/docs/Concatjs.md new file mode 100755 index 0000000000..8d29588ff1 --- /dev/null +++ b/docs/Concatjs.md @@ -0,0 +1,421 @@ +--- +title: Concatjs +layout: default +toc: true +nav: rule +--- + +# @bazel/concatjs + +Concatjs is a JavaScript bundler, in a trivial sense: the UNIX `cat` command is a basic implementation: + +```bash +$ cat one.js two.js > bundle.js +``` + +Clearly self-evident is that this bundler is super-fast and simple. +A performant implementation adds some in-memory caching, and for developer ergonomics you add a simple IIFE wrapper +around each file so that the Chrome DevTools shows the files in the tree as if they had been independently loaded. + +However at its core, concatjs requires a big tradeoff of a migration cost to buy-in, to get this incredible performance. +The path of the JavaScript files is lost in the bundling process, so they must contain their module ID internally. + +[Named AMD/UMD modules](https://requirejs.org/docs/whyamd.html#namedmodules) and `goog.module` are the two JS module formats that are compatible with concatjs. +Most packages do not ship with this format, so in order to use concatjs tooling, you have to shim your code and dependencies. See the [Compatibility](#compatibility) section below. + +This is at the core of how Google does JavaScript development. +So Bazel rules that originated in Google's codebase have affordances for concatjs. +For example `ts_library` produces named AMD modules in its "devmode" output, and +`karma_web_test` expects to bundle inputs using concatjs. + + +## Compatibility + +To make it easier to produce a UMD version of a third-party npm package, we automatically generate a target that uses Browserify to build one, using the `main` entry from the package's `package.json`. +In most cases this will make the package loadable under concatjs. +This target has a `__umd` suffix. For example, if your library is at `@npm//foo` then the UMD target is `@npm//foo:foo__umd`. + +An example where this fixes a users issue: + +In some cases, the generated UMD bundle is not sufficient, and in others it fails to build because it requires some special Browserify configuration. +You can always write your own shim that grabs a symbol from a package you use, and exposes it in an AMD/require.js-compatible way. +For example, even though RxJS ships with a UMD bundle, it contains multiple entry points and uses anonymous modules, not named modules. So our Angular/concatjs example has a `rxjs_shims.js` file that exposes some RxJS operators, then at this is combined in a `filegroup` with the `rxjs.umd.js` file. Now we use this filegroup target when depending on RxJS in a `concatjs_*` rule. + +Ultimately by using concatjs, you're signing up for at least a superficial understanding of these shims and may need to update them when you change your dependencies. + + +## Serving JS in development mode under Bazel + +There are two choices for development mode: + +1. Use the `concatjs_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. 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 + `concatjs_devserver` supports. Be careful that your development round-trip stays + fast (should be under two seconds). + +To use `concatjs_devserver`, you simply `load` the rule, and call it with `deps` that +point to your `ts_library` target(s): + +```python +load("@npm//@bazel/concatjs:index.bzl", "concatjs_devserver") +load("@npm//@bazel/typescript:index.bzl", "ts_library") + +ts_library( + name = "app", + srcs = ["app.ts"], +) + +concatjs_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 +`concatjs_devserver`. + +See `examples/app` in this repository for a working example. To run the +devserver, we recommend you use [ibazel]: + +```sh +$ 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. + +[ibazel]: https://github.com/bazelbuild/bazel-watcher + + +## Testing with Karma + +The `karma_web_test` rule runs karma tests with Bazel. + +It depends on rules_webtesting, so you need to add this to your `WORKSPACE` +if you use the web testing rules in `@bazel/concatjs`: + +```python +# Fetch transitive Bazel dependencies of karma_web_test +http_archive( + name = "io_bazel_rules_webtesting", + sha256 = "9bb461d5ef08e850025480bab185fd269242d4e533bca75bfb748001ceb343c3", + urls = ["https://github.com/bazelbuild/rules_webtesting/releases/download/0.3.3/rules_webtesting.tar.gz"], +) + +# 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 user-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: + +```python +# Create a karma rule to use in karma_web_test_suite karma +# attribute when using user-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 + data = ["//:node_modules"], +) +``` + + +## concatjs_devserver + +**USAGE** + +
+concatjs_devserver(name, additional_root_paths, bootstrap, deps, devserver, devserver_host,
+                   entry_module, port, scripts, serving_path, static_files)
+
+ +concatjs_devserver is a simple development server intended for a quick "getting started" experience. + +Additional documentation [here](https://github.com/alexeagle/angular-bazel-example/wiki/Running-a-devserver-under-Bazel) + + +**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/concatjs/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/concatjs/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".` + `concatjs_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 `[]` + + + +## 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/<WORKSPACE_NAME>/<path-to-file>`, 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//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. + + + + diff --git a/docs/Cypress.html b/docs/Cypress.html new file mode 100755 index 0000000000..8eaccbcf03 --- /dev/null +++ b/docs/Cypress.html @@ -0,0 +1,406 @@ + + + + + + + + + + rules_nodejs - Cypress + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+ + +
+
+ +

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).

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

© 2021 The rules_nodejs authors

+
+
+
+ +
+ + + + + + + + + + + + + + + diff --git a/docs/Cypress.md b/docs/Cypress.md new file mode 100755 index 0000000000..6b2114ec53 --- /dev/null +++ b/docs/Cypress.md @@ -0,0 +1,143 @@ +--- +title: Cypress +layout: default +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. + +```python +# 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: +```python +# 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` +```python +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.

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`). + + + diff --git a/docs/Jasmine.html b/docs/Jasmine.html new file mode 100755 index 0000000000..557f87ff33 --- /dev/null +++ b/docs/Jasmine.html @@ -0,0 +1,386 @@ + + + + + + + + + + rules_nodejs - Jasmine + + + + + + + + + + + + + + + + + + + + + + + +

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

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, use_direct_specs,
+                  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

+ +

use_direct_specs

+ +

Limits the list of specs added to the execution (test suite) to direct sources.

+ +

Note that this is a bug fix opt-in flag, which will be the default +behavior in the next major release.

+ +

More info: https://github.com/bazelbuild/rules_nodejs/pull/2576

+ +

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

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

© 2021 The rules_nodejs authors

+
+
+
+ +
+ + + + + + + + + + + + + + + diff --git a/docs/Jasmine.md b/docs/Jasmine.md index 3ce8b69ce0..9f8b58e334 100755 --- a/docs/Jasmine.md +++ b/docs/Jasmine.md @@ -1,10 +1,11 @@ --- title: Jasmine 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
  • +
+ +

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

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

© 2021 The rules_nodejs authors

+
+
+
+ +
+ + + + + + + + + + + + + + + diff --git a/docs/Labs.md b/docs/Labs.md new file mode 100755 index 0000000000..406664c4ac --- /dev/null +++ b/docs/Labs.md @@ -0,0 +1,50 @@ +--- +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 + + +## 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..7ae1757829 --- /dev/null +++ b/docs/Protractor.html @@ -0,0 +1,411 @@ + + + + + + + + + + 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.

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

© 2021 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..857f593691 --- /dev/null +++ b/docs/Rollup.html @@ -0,0 +1,647 @@ + + + + + + + + + + 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. (rollup itself should also be included in devDependencies, unless you plan on providing it via a custom target.)

+ +

Installing with user-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 user-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
+    data = ["//: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 = [
+        "--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/rollup/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

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

© 2021 The rules_nodejs authors

+
+
+
+ +
+ + + + + + + + + + + + + + + diff --git a/docs/Rollup.md b/docs/Rollup.md index 0b301e8d0e..9e04811418 100755 --- a/docs/Rollup.md +++ b/docs/Rollup.md @@ -1,55 +1,49 @@ --- 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 -Add the `@bazel/rollup` npm package to your `devDependencies` in `package.json`. +Add the `@bazel/rollup` npm package to your `devDependencies` in `package.json`. (`rollup` itself should also be included in `devDependencies`, unless you plan on providing it via a custom target.) -## Installing with self-managed dependencies +### Installing with user-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: ```python # Create a rollup rule to use in rollup_bundle#rollup_bin -# attribute when using self-managed dependencies +# attribute when using user-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"], + data = ["//:node_modules"], ) ``` -[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,135 @@ 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 = [ + "--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 +268,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 +281,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 +294,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 +325,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/rollup/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 +347,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 +373,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..efd016bffd --- /dev/null +++ b/docs/Terser.html @@ -0,0 +1,413 @@ + + + + + + + + + + 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 user-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 user-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
+    data = ["//: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. +Note that this rule is NOT recursive. It assumes a flat file structure. Passing in a folder with nested folder +will result in an empty output directory.

+ +

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/terser/bin:terser

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

© 2021 The rules_nodejs authors

+
+
+
+ +
+ + + + + + + + + + + + + + + diff --git a/docs/Terser.md b/docs/Terser.md index 474723e4a5..d44a882f48 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 three alternatives provided: tsc, ts_project, ts_library. +This section describes the trade-offs between these rules.

+ +

tsc

+ +

tsc is the TypeScript compiler published by the team at Microsoft. +You can call it without any custom Bazel rules.

+ +

To use this option, you do not need to install the @bazel/typescript package.

+ +

The only reason to use raw tsc is if you want to compile a directory of .ts files and cannot enumerate them ahead-of-time in your BUILD file so that Bazel can predict all the output files. +(For example if the .ts files are generated by some tool). +This will produce an opaque directory of .js file outputs, which you won’t be able to individually reference.

+ +

Any other use case for tsc is better served by using ts_project, see below.

+ +

Like we do for any npm package that exposes a binary, rules_nodejs will see your dependency on +typescript and will generate an index.bzl file allowing you to run tsc. +To use it, add the load statement load("@npm//typescript:index.bzl", "tsc") to your BUILD file. +(Possibly replacing @npm with the name of the repository where you installed dependencies)

+ +

Then call it, using the npm_package_bin documentation.

+ +

Here is an example: +https://github.com/bazelbuild/rules_nodejs/blob/3.2.2/internal/node/test/BUILD.bazel#L491-L507

+ +

ts_project

+ +

ts_project simply runs tsc --project, with Bazel knowing which outputs to expect based on the TypeScript compiler options, +and with interoperability with other TypeScript rules via the DeclarationInfo Provider that transmits the type information.

+ +

It is intended as an easy on-boarding for existing TypeScript code and should be familiar if your background is in frontend ecosystem idioms.

+ +

Any behavior of ts_project should be reproducible outside of Bazel, with a couple of caveats noted in the rule documentation below.

+ +

ts_project is recommended for all new code.

+ +

Exhaustive examples of calling ts_project are in the test suite: +https://github.com/bazelbuild/rules_nodejs/tree/stable/packages/typescript/test/ts_project

+ +

And there are also many uses of it in our

+ +

ts_library

+ +

ts_library should not be used for new code, and may be deprecated in the future.

+ +

ts_library is an open-sourced version of the rule used to compile TS code at Google. +However there is no support from the team that maintains that internal version. +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.
  • +
  • We control the output format and module syntax so that downstream rules can rely on them.
  • +
  • Some other options are incompatible. For example you cannot use the --noEmit compiler option in tsconfig.json.
  • +
+ +

The only reason to use ts_library for new code is if you are bought-in to using a concatjs bundler, which requires the named AMD module format. This may be faster than other tooling, and this format can be consumed by the Closure Compiler (via integration with tsickle). +However it is very challenging to configure and there is little available support for problems you’ll run into.

+ +

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.

+ +

Typical Usage

+ +

The ts_project rule invokes the TypeScript compiler on one compilation unit, +or “library” (generally one directory of source files). In TypeScript terms, this is one “Project” +which can use “Project References” to break up a large application.

+ +

Create a BUILD file next to your sources:

+ +
load("@npm//@bazel/typescript:index.bzl", "ts_project")
+
+ts_project(
+    name = "my_code",
+    # glob is a quick way to select all the code,
+    # but has performance penalty in that Bazel must evaluate it.
+    srcs = glob(["*.ts"]),
+    deps = ["//path/to/other:library"],
+)
+
+ +

Here, //path/to/other:library is another target in your repo that produces TypeScript typings (for example, another ts_project rule). +Be sure to set the rootDirs in your tsconfig.json as noted below, so that TypeScript can find the .d.ts files produced by that other target.

+ +

To use third-party libraries from npm, first install them (likely using npm_install or yarn_install rules) then add those to the deps as well:

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

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

+ +

To build a ts_library target run:

+ +

bazel build //path/to/package:target

+ +

Note that the tsconfig.json file used for compilation should be the same one +your editor references, or extends from it, to keep consistent settings for the TypeScript compiler.

+ +

Anything you do with TypeScript is possible with ts_project, including json imports, type-checking only, +transpile only, outdir, rootdir, and so on. +See many examples in our test cases: +https://github.com/bazelbuild/rules_nodejs/tree/stable/packages/typescript/test/ts_project

+ +

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_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, prodmode_module, prodmode_target, runtime,
+           runtime_deps, srcs, supports_workers, tsconfig, tsickle_typed, use_angular_plugin)
+
+ +

type-check and compile a set of TypeScript sources to JavaScript.

+ +

It produces declarations files (.d.ts) which are used for compiling downstream +TypeScript targets and JavaScript for the browser and Closure compiler.

+ +

By default, ts_library uses the tsconfig.json file in the workspace root +directory. See the notes about the tsconfig attribute below.

+ +

Serving TypeScript for development

+ +

ts_library is typically served by the concatjs_devserver rule, documented in the @bazel/concatjs package.

+ +

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"],
+)
+
+ +

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.

+ +

You can also use a custom compiler to increase the NodeJS heap size used for compilations.

+ +

To do this, 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.

+ +

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.

+ +

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 ""

+ +

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. This means you must +either:

+ +
    +
  • Have your tsconfig.json file in the workspace root directory
  • +
  • Use an alias in the root BUILD.bazel file to point to the location of tsconfig: + alias(name="tsconfig.json", actual="//path/to:tsconfig-something.json") + and also make the tsconfig.json file visible to other Bazel packages: + exports_files(["tsconfig.json"], visibility = ["//visibility:public"])
  • +
  • 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, preserve_jsx, composite, incremental, emit_declaration_only,
+           ts_build_info_file, tsc, typescript_package, typescript_require_path, 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/host/bin/path/to",
+        "../../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",
+    ]
+}
+
+ +

See some related discussion including both “rootDirs” and “paths” for a monorepo setup +using custom import paths: +https://github.com/bazelbuild/rules_nodejs/issues/2298

+
+ +

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.

+ +

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

+ +

preserve_jsx

+ +

if the jsx value is set to “preserve” in the tsconfig. +Instructs Bazel to expect a .jsx or .jsx.map output for each .tsx 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

+ +

typescript_package

+ +

Label of the package containing all data deps of tsc.

+ +

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

+ +

Defaults to "@npm//typescript"

+ +

typescript_require_path

+ +

Module name which resolves to typescript_package when required

+ +

For example, typescript_require_path = "typescript"

+ +

Defaults to "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

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

© 2021 The rules_nodejs authors

+
+
+
+ +
+ + + + + + + + + + + + + + + diff --git a/docs/TypeScript.md b/docs/TypeScript.md index 659e7cc955..c751f93808 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..e0d95b612c --- /dev/null +++ b/docs/_includes/sidenav.html @@ -0,0 +1,46 @@ +
+ + + +
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..9065a89497 --- /dev/null +++ b/docs/changing-rules.html @@ -0,0 +1,329 @@ + + + + + + + + + + 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 use patch-package. To store your local changes to the npm packages follow the steps:

+ +
    +
  1. npm i -D patch-package
  2. +
  3. Edit the target package in your node_modules
  4. +
  5. Run npx patch-package <npm package>. This will store the patch in the patches/ directory in the root of the workspace
  6. +
  7. Add "postinstall": "patch-package" to the package.json in your repo to apply the patches when building dependencies (aka at npm install)
  8. +
+ +

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"],
+)
+
+ +
+
+ + +
+
+ +
+
+
+
+

© 2021 The rules_nodejs authors

+
+
+
+ +
+ + + + + + + + + + + + + + + diff --git a/docs/changing-rules.md b/docs/changing-rules.md new file mode 100644 index 0000000000..9824d19772 --- /dev/null +++ b/docs/changing-rules.md @@ -0,0 +1,50 @@ +--- +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 use [patch-package]. To store your local changes to the npm packages follow the steps: + +1. `npm i -D patch-package` +1. Edit the target package in your `node_modules` +1. Run `npx patch-package `. This will store the patch in the `patches/` directory in the root of the workspace +1. Add `"postinstall": "patch-package"` to the `package.json` in your repo to apply the patches when building dependencies (aka at `npm install`) + +[patch-package]: https://www.npmjs.com/package/patch-package + +## 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`](https://docs.bazel.build/versions/master/repo/http.html#attributes). + +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..ab3bcae4f8 --- /dev/null +++ b/docs/debugging.html @@ -0,0 +1,340 @@ + + + + + + + + + + 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.

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

© 2021 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..4bce28280c --- /dev/null +++ b/docs/dependencies.html @@ -0,0 +1,558 @@ + + + + + + + + + + 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.

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

© 2021 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/esbuild.html b/docs/esbuild.html new file mode 100755 index 0000000000..56b23c54b0 --- /dev/null +++ b/docs/esbuild.html @@ -0,0 +1,558 @@ + + + + + + + + + + rules_nodejs - esbuild + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+ + +
+
+ +

esbuild rules for Bazel

+ +

The esbuild rules runs the esbuild bundler tool with Bazel. +esbuild is an extremely fast JavaScript bundler written in Go, its current benchmarks show it can be 320x faster that other bundlers

+ +

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 an http_archive fetching the esbuild binary for each platform that you need to support.

+ +
_ESBUILD_VERSION = "0.11.6"  # reminder: update SHAs below when changing this value
+http_archive(
+    name = "esbuild_darwin",
+    urls = [
+        "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-%s.tgz" % _ESBUILD_VERSION,
+    ],
+    strip_prefix = "package",
+    build_file_content = """exports_files(["bin/esbuild"])""",
+    sha256 = "2b06365b075b854654fc9ed26fcd48a0c38947e1c8d5151ce400cd1e173bb138",
+)
+
+http_archive(
+    name = "esbuild_windows",
+    urls = [
+        "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-%s.tgz" % _ESBUILD_VERSION,
+    ],
+    strip_prefix = "package",
+    build_file_content = """exports_files(["esbuild.exe"])""",
+    sha256 = "ddab1121833f0a12ca4fb3e288231e058f5526310671e84c0a9aa575340bb20b",
+)
+
+http_archive(
+    name = "esbuild_linux",
+    urls = [
+        "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-%s.tgz" % _ESBUILD_VERSION,
+    ],
+    strip_prefix = "package",
+    build_file_content = """exports_files(["bin/esbuild"])""",
+    sha256 = "34612e3e15e6c31d9d742d3fd677bd5208b7e5c0ee9c93809999138c6c5c1039",
+)
+
+ +

These can then be referenced on the tool attribute of the esbuild rule.

+ +
esbuild(
+    name = "bundle",
+    ...
+    tool = select({
+        "@bazel_tools//src/conditions:darwin": "@esbuild_darwin//:bin/esbuild",
+        "@bazel_tools//src/conditions:windows": "@esbuild_windows//:esbuild.exe",
+        "@bazel_tools//src/conditions:linux_x86_64": "@esbuild_linux//:bin/esbuild",
+    }),
+)
+
+ +

It might be useful to wrap this locally in a macro for better reuseability, see packages/esbuild/test/tests.bzl for an example.

+ +

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.

+ +
load("@npm//@bazel/esbuild:index.bzl", "esbuild")
+load("@npm//@bazel/typescript:index.bzl", "ts_library")
+
+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.

+ +

To create a code split bundle, set splitting = True on the esbuild rule.

+ +
load("@npm//@bazel/esbuild:index.bzl", "esbuild")
+load("@npm//@bazel/typescript:index.bzl", "ts_library")
+
+ts_library(
+    name = "lib",
+    srcs = ["a.ts"],
+    deps = [
+        "@npm//foo",
+    ],
+)
+
+esbuild(
+    name = "bundle",
+    entry_point = "a.ts",
+    deps = [":lib"],
+    splitting = True,
+)
+
+ +

This will create an output directory containing all the code split chunks, along with their sourcemaps files

+ +

esbuild

+ +

USAGE

+ +
+esbuild(name, args, define, deps, entry_point, external, format, launcher, link_workspace_root,
+        max_threads, minify, output, output_css, output_dir, output_map, platform, sourcemap,
+        sources_content, srcs, target, tool)
+
+ +

Runs the esbuild bundler under Bazel

+ +

For further information about esbuild, see https://esbuild.github.io/

+ +

ATTRIBUTES

+ +

name

+ +

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

+ +

args

+ +

(List of strings): A list of extra arguments that are included in the call to esbuild. + $(location …) can be used to resolve the path to a Bazel target.

+ +

Defaults to []

+ +

define

+ +

(List of strings): A list of global identifier replacements. +Example:

+
esbuild(
+    name = "bundle",
+    define = [
+        "process.env.NODE_ENV=\"production\""
+    ],
+)
+
+ +

See https://esbuild.github.io/api/#define for more details

+ +

Defaults to []

+ +

deps

+ +

(List of labels): A list of direct dependencies that are required to build the bundle

+ +

Defaults to []

+ +

entry_point

+ +

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

+ +

external

+ +

(List of strings): A list of module names that are treated as external and not included in the resulting bundle

+ +

See https://esbuild.github.io/api/#external for more details

+ +

Defaults to []

+ +

format

+ +

(String): 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.

+ +

See https://esbuild.github.io/api/#format for more details

+ +

Defaults to ""

+ +

launcher

+ +

(Label, mandatory): 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

+ +

max_threads

+ +

(Integer): Sets the GOMAXPROCS variable to limit the number of threads that esbuild can run with. +This can be useful if running many esbuild rule invocations in parallel, which has the potential to cause slowdown. +For general use, leave this attribute unset.

+ +

Defaults to 0

+ +

minify

+ +

(Boolean): Minifies the bundle with the built in minification. +Removes whitespace, shortens identifieres and uses equivalent but shorter syntax.

+ +

Sets all –minify-* flags

+ +

See https://esbuild.github.io/api/#minify for more details

+ +

Defaults to False

+ +

output

+ +

(Label): Name of the output file when bundling

+ +

output_css

+ +

(Label): Declare a .css file will be output next to output bundle.

+ +

If your JS code contains import statements that import .css files, esbuild will place the +content in a file next to the main output file, which you’ll need to declare. If your output +file is named ‘foo.js’, you should set this to ‘foo.css’.

+ +

output_dir

+ +

(Boolean): If true, esbuild produces an output directory containing all the output files from code splitting

+ +

See https://esbuild.github.io/api/#splitting for more details

+ +

Defaults to False

+ +

output_map

+ +

(Label): Name of the output source map when bundling

+ +

platform

+ +

(String): The platform to bundle for.

+ +

See https://esbuild.github.io/api/#platform for more details

+ +

Defaults to "browser"

+ +

sourcemap

+ +

(String): Defines where sourcemaps are output and how they are included in the bundle. By default, a separate .js.map file is generated and referenced by the bundle. If ‘external’, a separate .js.map file is generated but not referenced by the bundle. If ‘inline’, a sourcemap is generated and its contents are inlined into the bundle (and no external sourcemap file is created). If ‘both’, a sourcemap is inlined and a .js.map file is created.

+ +

See https://esbuild.github.io/api/#sourcemap for more details

+ +

Defaults to ""

+ +

sources_content

+ +

(Boolean): If False, omits the sourcesContent field from generated source maps

+ +

See https://esbuild.github.io/api/#sources-content for more details

+ +

Defaults to False

+ +

srcs

+ +

(List of labels): Source files to be made available to esbuild

+ +

Defaults to []

+ +

target

+ +

(String): Environment target (e.g. es2017, chrome58, firefox57, safari11, +edge16, node10, default esnext)

+ +

See https://esbuild.github.io/api/#target for more details

+ +

Defaults to "es2015"

+ +

tool

+ +

(Label, mandatory): An executable for the esbuild binary

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

© 2021 The rules_nodejs authors

+
+
+
+ +
+ + + + + + + + + + + + + + + diff --git a/docs/esbuild.md b/docs/esbuild.md new file mode 100755 index 0000000000..c13dab28c8 --- /dev/null +++ b/docs/esbuild.md @@ -0,0 +1,304 @@ +--- +title: esbuild +layout: default +toc: true +nav: rule +--- + +# esbuild rules for Bazel + +The esbuild rules runs the [esbuild](https://github.com/evanw/esbuild) bundler tool with Bazel. +esbuild is an extremely fast JavaScript bundler written in Go, its [current benchmarks](https://esbuild.github.io/faq/#benchmark-details) show it can be 320x faster that other bundlers + + +## 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 an `http_archive` fetching the esbuild binary for each platform that you need to support. + +```python +_ESBUILD_VERSION = "0.11.6" # reminder: update SHAs below when changing this value +http_archive( + name = "esbuild_darwin", + urls = [ + "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-%s.tgz" % _ESBUILD_VERSION, + ], + strip_prefix = "package", + build_file_content = """exports_files(["bin/esbuild"])""", + sha256 = "2b06365b075b854654fc9ed26fcd48a0c38947e1c8d5151ce400cd1e173bb138", +) + +http_archive( + name = "esbuild_windows", + urls = [ + "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-%s.tgz" % _ESBUILD_VERSION, + ], + strip_prefix = "package", + build_file_content = """exports_files(["esbuild.exe"])""", + sha256 = "ddab1121833f0a12ca4fb3e288231e058f5526310671e84c0a9aa575340bb20b", +) + +http_archive( + name = "esbuild_linux", + urls = [ + "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-%s.tgz" % _ESBUILD_VERSION, + ], + strip_prefix = "package", + build_file_content = """exports_files(["bin/esbuild"])""", + sha256 = "34612e3e15e6c31d9d742d3fd677bd5208b7e5c0ee9c93809999138c6c5c1039", +) +``` + +These can then be referenced on the `tool` attribute of the `esbuild` rule. + +```python +esbuild( + name = "bundle", + ... + tool = select({ + "@bazel_tools//src/conditions:darwin": "@esbuild_darwin//:bin/esbuild", + "@bazel_tools//src/conditions:windows": "@esbuild_windows//:esbuild.exe", + "@bazel_tools//src/conditions:linux_x86_64": "@esbuild_linux//:bin/esbuild", + }), +) +``` + +It might be useful to wrap this locally in a macro for better reuseability, see `packages/esbuild/test/tests.bzl` for an example. + +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 +load("@npm//@bazel/esbuild:index.bzl", "esbuild") +load("@npm//@bazel/typescript:index.bzl", "ts_library") + +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. + +To create a code split bundle, set `splitting = True` on the `esbuild` rule. + +```python +load("@npm//@bazel/esbuild:index.bzl", "esbuild") +load("@npm//@bazel/typescript:index.bzl", "ts_library") + +ts_library( + name = "lib", + srcs = ["a.ts"], + deps = [ + "@npm//foo", + ], +) + +esbuild( + name = "bundle", + entry_point = "a.ts", + deps = [":lib"], + splitting = True, +) +``` + +This will create an output directory containing all the code split chunks, along with their sourcemaps files + + +## esbuild + +**USAGE** + +
+esbuild(name, args, define, deps, entry_point, external, format, launcher, link_workspace_root,
+        max_threads, minify, output, output_css, output_dir, output_map, platform, sourcemap,
+        sources_content, srcs, target, tool)
+
+ +Runs the esbuild bundler under Bazel + +For further information about esbuild, see https://esbuild.github.io/ + + +**ATTRIBUTES** + + +

name

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

args

+ +(*List of strings*): A list of extra arguments that are included in the call to esbuild. + $(location ...) can be used to resolve the path to a Bazel target. + +Defaults to `[]` + +

define

+ +(*List of strings*): A list of global identifier replacements. +Example: +```python +esbuild( + name = "bundle", + define = [ + "process.env.NODE_ENV=\"production\"" + ], +) +``` + +See https://esbuild.github.io/api/#define for more details + +Defaults to `[]` + +

deps

+ +(*List of labels*): A list of direct dependencies that are required to build the bundle + +Defaults to `[]` + +

entry_point

+ +(*Label, mandatory*): The bundle's entry point (e.g. your main.js or app.js or index.js) + + +

external

+ +(*List of strings*): A list of module names that are treated as external and not included in the resulting bundle + +See https://esbuild.github.io/api/#external for more details + +Defaults to `[]` + +

format

+ +(*String*): 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. + +See https://esbuild.github.io/api/#format for more details + +Defaults to `""` + +

launcher

+ +(*Label, mandatory*): 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` + +

max_threads

+ +(*Integer*): Sets the `GOMAXPROCS` variable to limit the number of threads that esbuild can run with. +This can be useful if running many esbuild rule invocations in parallel, which has the potential to cause slowdown. +For general use, leave this attribute unset. + +Defaults to `0` + +

minify

+ +(*Boolean*): Minifies the bundle with the built in minification. +Removes whitespace, shortens identifieres and uses equivalent but shorter syntax. + +Sets all --minify-* flags + +See https://esbuild.github.io/api/#minify for more details + +Defaults to `False` + +

output

+ +(*Label*): Name of the output file when bundling + + +

output_css

+ +(*Label*): Declare a .css file will be output next to output bundle. + +If your JS code contains import statements that import .css files, esbuild will place the +content in a file next to the main output file, which you'll need to declare. If your output +file is named 'foo.js', you should set this to 'foo.css'. + + +

output_dir

+ +(*Boolean*): If true, esbuild produces an output directory containing all the output files from code splitting + +See https://esbuild.github.io/api/#splitting for more details + +Defaults to `False` + +

output_map

+ +(*Label*): Name of the output source map when bundling + + +

platform

+ +(*String*): The platform to bundle for. + +See https://esbuild.github.io/api/#platform for more details + +Defaults to `"browser"` + +

sourcemap

+ +(*String*): Defines where sourcemaps are output and how they are included in the bundle. By default, a separate `.js.map` file is generated and referenced by the bundle. If 'external', a separate `.js.map` file is generated but not referenced by the bundle. If 'inline', a sourcemap is generated and its contents are inlined into the bundle (and no external sourcemap file is created). If 'both', a sourcemap is inlined and a `.js.map` file is created. + +See https://esbuild.github.io/api/#sourcemap for more details + +Defaults to `""` + +

sources_content

+ +(*Boolean*): If False, omits the `sourcesContent` field from generated source maps + +See https://esbuild.github.io/api/#sources-content for more details + +Defaults to `False` + +

srcs

+ +(*List of labels*): Source files to be made available to esbuild + +Defaults to `[]` + +

target

+ +(*String*): Environment target (e.g. es2017, chrome58, firefox57, safari11, +edge16, node10, default esnext) + +See https://esbuild.github.io/api/#target for more details + +Defaults to `"es2015"` + +

tool

+ +(*Label, mandatory*): An executable for the esbuild binary + + + diff --git a/docs/examples.html b/docs/examples.html new file mode 100755 index 0000000000..57e46be90c --- /dev/null +++ b/docs/examples.html @@ -0,0 +1,467 @@ + + + + + + + + + + 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 under active development. Come chat in the #javascript channel on Slack to get the latest. +Support and stability are not great but expected to improve.

+ +

There are many alternative implementations for protobuf and RPC. +We generally intend to support all of them, with a small layer in rules_nodejs that allows you to build around any of those tools.

+ +

https://github.com/rules-proto-grpc/rules_proto_grpc is an excellent, broad ruleset based on the tooling from http://grpc.io. We may point to this as the canonical example in the future.

+ +

The @bazel/labs package has an experimental ts_proto_library rule. +It integrates with the “concatjs” bundler and is suitable for projects using ts_library. +However it’s not clear whether this will be promoted to a stable API. +See the example in examples/protocol_buffers

+ +

protobuf.js from https://github.com/dcodeIO is a simple alternative. +See the example in examples/protobufjs

+ +

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

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

© 2021 The rules_nodejs authors

+
+
+
+ +
+ + + + + + + + + + + + + + + diff --git a/docs/examples.md b/docs/examples.md index d90f432528..8944c5e59b 100644 --- a/docs/examples.md +++ b/docs/examples.md @@ -1,104 +1,152 @@ --- 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-update-n33-temp-slug-9563533?preview=d98c4fd0c1ad788b7f3e01eaf716c5b249d68b976a8697d07815023747be3b8f3277c2b182df7682a4efb81fac76056244b3ce9f7445110c70971bf8) for a longer explanation. +See Alex's post [Angular ❤️ Bazel update](https://dev.to/bazel/angular-bazel-leaving-angular-labs-51ja) 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. However, it has the worst performance because the level of incrementality is only as fine as how many libs your application is composed from. +**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. -Example: [examples/angular_bazel_architect](https://github.com/bazelbuild/rules_nodejs/tree/master/examples/angular_bazel_architect) +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. -**Google**: This toolchain is what we originally advertised as "Angular, Bazel and CLI" (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. +Example: [examples/angular_bazel_architect](https://github.com/bazelbuild/rules_nodejs/tree/stable/examples/angular_bazel_architect) -The example has its own guide: [examples/angular](https://github.com/bazelbuild/rules_nodejs/tree/master/examples/angular) +**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](https://github.com/bazelbuild/rules_nodejs/tree/stable/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](https://github.com/bazelbuild/rules_nodejs/tree/master/examples/angular_view_engine) +Example: [examples/angular_view_engine](https://github.com/bazelbuild/rules_nodejs/tree/stable/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](https://github.com/bazelbuild/rules_nodejs/tree/stable/examples/create-react-app) +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 +**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. -There is a basic example at [examples/react_webpack](https://github.com/bazelbuild/rules_nodejs/tree/master/examples/react_webpack) +This is a good middle ground to get some benefits from Bazel while staying on the same supported tools as react-scripts. -We are likely to add more, as the rules_nodejs core maintainers are working on some React projects. +TODO(alexeagle): build an example illustrating how this looks -## Vue +**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](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 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/master/examples/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/master/examples/webapp) has a simple `mocha_test` +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/master/examples/react_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/master/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. +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/master/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. +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/master/examples/app/styles) example. +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/master/packages/typescript/test) for lots of handling of edge cases. +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/master/examples/kotlin) +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/master/examples/closure) shows a very simple way to call the closure compiler without jumping into that 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 + +Note: this is under active development. Come chat in the #javascript channel on Slack to get the latest. +Support and stability are not great but expected to improve. + +There are many alternative implementations for protobuf and RPC. +We generally intend to support all of them, with a small layer in rules_nodejs that allows you to build around any of those tools. -## Protocol Buffers and gRPC + is an excellent, broad ruleset based on the tooling from . We may point to this as the canonical example in the future. -Note: this is considered a "labs" feature in rules_nodejs, so support and stability are not great. gRPC is still a WIP. +The `@bazel/labs` package has an experimental `ts_proto_library` rule. +It integrates with the "concatjs" bundler and is suitable for projects using `ts_library`. +However it's not clear whether this will be promoted to a stable API. +See the example in [examples/protocol_buffers](https://github.com/bazelbuild/rules_nodejs/tree/stable/examples/protocol_buffers) -See [examples/protocol_buffers](https://github.com/bazelbuild/rules_nodejs/tree/master/examples/protocol_buffers) +[protobuf.js](https://github.com/protobufjs/protobuf.js) from https://github.com/dcodeIO is a simple alternative. +See the example in [examples/protobufjs](https://github.com/bazelbuild/rules_nodejs/tree/stable/examples/protobufjs) -# 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/master/examples/worker) +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 0000000000..ac74e82c44 Binary files /dev/null and b/docs/images/bazel-icon.png differ diff --git a/docs/images/bazel-icon.svg b/docs/images/bazel-icon.svg new file mode 100755 index 0000000000..aab543e929 --- /dev/null +++ b/docs/images/bazel-icon.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + diff --git a/docs/images/bazel-logo.png b/docs/images/bazel-logo.png new file mode 100644 index 0000000000..e43cfd0cea Binary files /dev/null and b/docs/images/bazel-logo.png differ diff --git a/docs/images/bazel-logo.svg b/docs/images/bazel-logo.svg new file mode 100644 index 0000000000..3e6799a049 --- /dev/null +++ b/docs/images/bazel-logo.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + 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 0000000000..25b634945d Binary files /dev/null and b/docs/images/bazel-og-image.png differ diff --git a/docs/images/favicon-16x16.png b/docs/images/favicon-16x16.png new file mode 100644 index 0000000000..587a8aa320 Binary files /dev/null and b/docs/images/favicon-16x16.png differ diff --git a/docs/images/favicon-32x32.png b/docs/images/favicon-32x32.png new file mode 100644 index 0000000000..a0fc9448e9 Binary files /dev/null and b/docs/images/favicon-32x32.png differ 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..b2b16c0501 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,460 @@ + + + + + + + + + + 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 package 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.

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

© 2021 The rules_nodejs authors

+
+
+
+ +
+ + + + + + + + + + + + + + + diff --git a/docs/index.md b/docs/index.md index 163296e230..88567b538b 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 package 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..2797ff420c --- /dev/null +++ b/docs/install.html @@ -0,0 +1,466 @@ + + + + + + + + + + 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 = "f533eeefc8fe1ddfe93652ec50f82373d0c431f7faabd5e6323f6903195ef227",
+    urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.3.0/rules_nodejs-3.3.0.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.

+ +

Because these rules use the target platform to decide which node binary to use, you will run into trouble if you are trying to invoke these rules as part of a cross-compilation +to a platform that is not supported by the default node repositories, eg when trying to bundle some js products into a binary targeting Android or iOS. You can work around this +by defining your own toolchain, and specifying the host platform as an execution requirement instead. For example, if you are building on a Mac, you could add the following +to your workspace:

+ +
register_toolchains("//node_toolchain")
+
+ +

And the following in node_toolchain/BUILD.bazel:

+ +
toolchain(
+    name = "node_toolchain",
+    exec_compatible_with = [
+        "@platforms//os:osx",
+        "@platforms//cpu:x86_64",
+    ],
+    toolchain = "@nodejs_darwin_amd64_config//:toolchain",
+    toolchain_type = "@build_bazel_rules_nodejs//toolchains/node:toolchain_type",
+)
+
+ +
+
+ + +
+
+ +
+
+
+
+

© 2021 The rules_nodejs authors

+
+
+
+ +
+ + + + + + + + + + + + + + + diff --git a/docs/install.md b/docs/install.md index 1e4d06457d..73fdf80799 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 = "790af2f3739871fedfb5721263e145e6ca6559c3c90bcaf6f3482a165d411827", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.0-rc.0/rules_nodejs-2.0.0-rc.0.tar.gz"], + sha256 = "1134ec9b7baee008f1d54f0483049a97e53a57cd3913ec9d6db625549c98395a", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.4.0/rules_nodejs-3.4.0.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,293 +138,41 @@ 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` 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. + +Because these rules use the target platform to decide which node binary to use, you will run into trouble if you are trying to invoke these rules as part of a cross-compilation +to a platform that is not supported by the default node repositories, eg when trying to bundle some js products into a binary targeting Android or iOS. You can work around this +by defining your own toolchain, and specifying the host platform as an execution requirement instead. For example, if you are building on a Mac, you could add the following +to your workspace: + + register_toolchains("//node_toolchain") + +And the following in node_toolchain/BUILD.bazel: + + toolchain( + name = "node_toolchain", + exec_compatible_with = [ + "@platforms//os:osx", + "@platforms//cpu:x86_64", + ], + toolchain = "@nodejs_darwin_amd64_config//:toolchain", + toolchain_type = "@build_bazel_rules_nodejs//toolchains/node:toolchain_type", + ) diff --git a/docs/repositories.html b/docs/repositories.html new file mode 100755 index 0000000000..bd2cd36f4b --- /dev/null +++ b/docs/repositories.html @@ -0,0 +1,365 @@ + + + + + + + + + + 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 concatjs_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.
  • +
+ +
+

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.

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

© 2021 The rules_nodejs authors

+
+
+
+ +
+ + + + + + + + + + + + + + + diff --git a/docs/repositories.md b/docs/repositories.md index 79588d592b..d503ba73e8 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. @@ -51,12 +52,11 @@ 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. +- Sometimes you need a UMD bundle, but a package doesn't ship one. For example, the `concatjs_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. -> 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/master/internal/npm_install/test/golden - this directory looks similar to the content of an `@npm` repository. +> 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..8e266a2d1b --- /dev/null +++ b/docs/search.html @@ -0,0 +1,162 @@ + + + + + + + + + + rules_nodejs - Search + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+ +
+
+
+
+

© 2021 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..95ae901545 --- /dev/null +++ b/docs/stamping.html @@ -0,0 +1,377 @@ + + + + + + + + + + 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.

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

© 2021 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 4b0b1624f6..0fb5a0b531 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", ) @@ -40,6 +60,21 @@ e2e_integration_test( name = "e2e_node_loader_preserve_symlinks", ) +e2e_integration_test( + name = "e2e_nodejs_image", + bazel_commands = [ + "info", + "test ...", + "run --platforms=@build_bazel_rules_nodejs//toolchains/node:linux_amd64 //:nodejs_image", + ], + # Only run on buildkite linux as other CI platforms have no docker available + tags = [ + "no-bazelci-mac", + "no-bazelci-windows", + "no-circleci", + ], +) + e2e_integration_test( name = "e2e_packages", # TODO(alex): figure out why this is broken by turning on linker @@ -75,8 +110,9 @@ e2e_integration_test( ) e2e_integration_test( - name = "e2e_ts_devserver", + name = "e2e_concatjs_devserver", npm_packages = { + "//packages/concatjs:npm_package": "@bazel/concatjs", "//packages/protractor:npm_package": "@bazel/protractor", "//packages/typescript:npm_package": "@bazel/typescript", }, @@ -101,4 +137,9 @@ e2e_integration_test( "3.4.x", "3.5.x", "3.6.x", + "3.7.x", + "3.8.x", + "3.9.x", + "4.0.x", + "4.1.x", ]] diff --git a/e2e/bazel_managed_deps/BUILD.bazel b/e2e/bazel_managed_deps/BUILD.bazel index 48d36ae7d4..a93cfe4870 100644 --- a/e2e/bazel_managed_deps/BUILD.bazel +++ b/e2e/bazel_managed_deps/BUILD.bazel @@ -1,15 +1,5 @@ load("@npm//@bazel/jasmine:index.bzl", "jasmine_node_test") -# Test what happens when we depend on the catch-all "node_modules" rule rather -# than declare our dependencies on individual npm packages. -# This is the legacy behavior prior to 0.13, so it also proves backwards-compatibility. -jasmine_node_test( - name = "test", - srcs = glob(["*.spec.js"]), - data = ["@npm//:bin_files"], - node_modules = "@npm//:node_modules", -) - # Test what happens when only certain NPM packages are in our dependencies. # These packages and their dependencies are copied to the execroot, but # the rest are not. diff --git a/e2e/bazel_managed_deps/WORKSPACE b/e2e/bazel_managed_deps/WORKSPACE index 1aee5470bf..42aff8ea9d 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 = "790af2f3739871fedfb5721263e145e6ca6559c3c90bcaf6f3482a165d411827", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.0-rc.0/rules_nodejs-2.0.0-rc.0.tar.gz"], + sha256 = "1134ec9b7baee008f1d54f0483049a97e53a57cd3913ec9d6db625549c98395a", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.4.0/rules_nodejs-3.4.0.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 36e55cda7d..b66cf72791 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-rc.0", + "@bazel/jasmine": "^3.4.0", "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 4bcea489e6..a2a00daf9d 100644 --- a/e2e/bazel_managed_deps/yarn.lock +++ b/e2e/bazel_managed_deps/yarn.lock @@ -2,13 +2,13 @@ # yarn lockfile v1 -"@bazel/jasmine@^2.0.0-rc.0": - version "2.0.0-rc.0" - resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-2.0.0-rc.0.tgz#4dbf419a8332ec05862302a64546c21f2a7bc467" - integrity sha512-A/3ypUXGs3i9VgbI26xosygh/OhJlNlK+Mkhd2UVIAuzBVVzQbf+Eo+F/iqB2AJTaIA9rm/YJoCfFFeQvHyO5w== +"@bazel/jasmine@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-3.4.0.tgz#d85d8b9156821f1a2aadca55faedb3d7990bb018" + integrity sha512-TnXLJ/4gcM9KyWtfjv8ZrzNbR0teUYRIoLborbJUXVbMYYKjKOQ+rWzwGUIb6Gf4gJ8M7VmfrpzK8vBUjowkJw== dependencies: - c8 "~7.1.0" - jasmine-reporters "~2.3.2" + c8 "~7.5.0" + jasmine-reporters "~2.4.0" "@bcoe/v8-coverage@^0.2.3": version "0.2.3" @@ -61,14 +61,14 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -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== +c8@~7.5.0: + version "7.5.0" + resolved "https://registry.yarnpkg.com/c8/-/c8-7.5.0.tgz#a69439ab82848f344a74bb25dc5dd4e867764481" + integrity sha512-GSkLsbvDr+FIwjNSJ8OwzWAyuznEYGTAd1pzb/Kr0FMLuV4vqYJTyjboDTwmlUNAG6jAU3PFWzqIdKrOt1D8tw== dependencies: "@bcoe/v8-coverage" "^0.2.3" "@istanbuljs/schema" "^0.1.2" - find-up "^4.0.0" + find-up "^5.0.0" foreground-child "^2.0.0" furi "^2.0.0" istanbul-lib-coverage "^3.0.0" @@ -76,23 +76,18 @@ c8@~7.1.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" + v8-to-istanbul "^7.1.0" + yargs "^16.0.0" + yargs-parser "^20.0.0" -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== - -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: string-width "^4.2.0" strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" + wrap-ansi "^7.0.0" color-convert@^2.0.1: version "2.0.1" @@ -127,22 +122,22 @@ cross-spawn@^7.0.0: shebang-command "^2.0.0" which "^2.0.1" -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - 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== -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== +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: - locate-path "^5.0.0" + locate-path "^6.0.0" path-exists "^4.0.0" foreground-child@^2.0.0: @@ -166,7 +161,7 @@ furi@^2.0.0: "@types/is-windows" "^1.0.0" is-windows "^1.0.2" -get-caller-file@^2.0.1: +get-caller-file@^2.0.5: 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== @@ -260,13 +255,13 @@ jasmine-core@~3.5.0: resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.5.0.tgz#132c23e645af96d85c8bca13c8758b18429fc1e4" integrity sha512-nCeAiw37MIMA9w9IXso7bRaLl+c/ef3wnxsoSAlYrzS+Ot0zTG6nU8G/cIfGkqpkjX2wNaIW9RFG0TwIFnG6bA== -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== +jasmine-reporters@~2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/jasmine-reporters/-/jasmine-reporters-2.4.0.tgz#708c17ae70ba6671e3a930bb1b202aab80a31409" + integrity sha512-jxONSrBLN1vz/8zCx5YNWQSS8iyDAlXQ5yk1LuqITe4C6iXCDx5u6Q0jfNtkKhL4qLZPe69fL+AWvXFt9/x38w== dependencies: mkdirp "^0.5.1" - xmldom "^0.1.22" + xmldom "^0.5.0" jasmine@^3.5.0: version "3.5.0" @@ -276,12 +271,12 @@ jasmine@^3.5.0: glob "^7.1.4" jasmine-core "~3.5.0" -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== +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: - p-locate "^4.1.0" + p-locate "^5.0.0" make-dir@^3.0.0: version "3.1.0" @@ -316,24 +311,19 @@ once@^1.3.0: 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== +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: - p-try "^2.0.0" + yocto-queue "^0.1.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== +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== 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== + p-limit "^3.0.2" path-exists@^4.0.0: version "4.0.0" @@ -355,11 +345,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@^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== - rimraf@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -377,11 +362,6 @@ semver@^6.0.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= - shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -440,20 +420,15 @@ typescript@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.0.1.tgz#43738f29585d3a87575520a4b93ab6026ef11fdb" -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== +v8-to-istanbul@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz#5b95cef45c0f83217ec79f8fc7ee1c8b486aee07" + integrity sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g== 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" @@ -461,10 +436,10 @@ which@^2.0.1: 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== +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" string-width "^4.1.0" @@ -475,37 +450,35 @@ wrappy@1: 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" +xmldom@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.5.0.tgz#193cb96b84aa3486127ea6272c4596354cb4962e" + integrity sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA== + +y18n@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" + integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== + +yargs-parser@^20.0.0, yargs-parser@^20.2.2: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + +yargs@^16.0.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" 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" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== diff --git a/e2e/ts_devserver/.bazelignore b/e2e/concatjs_devserver/.bazelignore similarity index 100% rename from e2e/ts_devserver/.bazelignore rename to e2e/concatjs_devserver/.bazelignore diff --git a/e2e/ts_devserver/.bazelrc b/e2e/concatjs_devserver/.bazelrc similarity index 100% rename from e2e/ts_devserver/.bazelrc rename to e2e/concatjs_devserver/.bazelrc diff --git a/e2e/ts_devserver/BUILD.bazel b/e2e/concatjs_devserver/BUILD.bazel similarity index 92% rename from e2e/ts_devserver/BUILD.bazel rename to e2e/concatjs_devserver/BUILD.bazel index f2c010fac7..b8b0bc0daf 100644 --- a/e2e/ts_devserver/BUILD.bazel +++ b/e2e/concatjs_devserver/BUILD.bazel @@ -13,8 +13,9 @@ # limitations under the License. load("@build_bazel_rules_nodejs//internal/npm_install:npm_umd_bundle.bzl", "npm_umd_bundle") +load("@npm//@bazel/concatjs:index.bzl", "concatjs_devserver") load("@npm//@bazel/protractor:index.bzl", "protractor_web_test_suite") -load("@npm//@bazel/typescript:index.bzl", "ts_devserver", "ts_library") +load("@npm//@bazel/typescript:index.bzl", "ts_library") exports_files([ "red-body-style.css", @@ -42,9 +43,9 @@ npm_umd_bundle( package = "@npm//typeorm", ) -ts_devserver( +concatjs_devserver( name = "devserver", - entry_module = "e2e_ts_devserver/app", + entry_module = "e2e_concatjs_devserver/app", scripts = [ "@npm//date-fns:date-fns.umd.js", "@npm//rxjs:rxjs.umd.js", diff --git a/e2e/ts_devserver/WORKSPACE b/e2e/concatjs_devserver/WORKSPACE similarity index 85% rename from e2e/ts_devserver/WORKSPACE rename to e2e/concatjs_devserver/WORKSPACE index b23c385d5f..51a9002532 100644 --- a/e2e/ts_devserver/WORKSPACE +++ b/e2e/concatjs_devserver/WORKSPACE @@ -13,7 +13,7 @@ # limitations under the License. workspace( - name = "e2e_ts_devserver", + name = "e2e_concatjs_devserver", managed_directories = {"@npm": ["node_modules"]}, ) @@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_nodejs", - sha256 = "790af2f3739871fedfb5721263e145e6ca6559c3c90bcaf6f3482a165d411827", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.0-rc.0/rules_nodejs-2.0.0-rc.0.tar.gz"], + sha256 = "1134ec9b7baee008f1d54f0483049a97e53a57cd3913ec9d6db625549c98395a", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.4.0/rules_nodejs-3.4.0.tar.gz"], ) load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") @@ -33,10 +33,6 @@ yarn_install( yarn_lock = "//:yarn.lock", ) -load("@npm//@bazel/typescript:index.bzl", "ts_setup_workspace") - -ts_setup_workspace() - load("@npm//@bazel/protractor:package.bzl", "npm_bazel_protractor_dependencies") npm_bazel_protractor_dependencies() diff --git a/e2e/ts_devserver/app.ts b/e2e/concatjs_devserver/app.ts similarity index 100% rename from e2e/ts_devserver/app.ts rename to e2e/concatjs_devserver/app.ts diff --git a/e2e/ts_devserver/app_e2e-spec.ts b/e2e/concatjs_devserver/app_e2e-spec.ts similarity index 100% rename from e2e/ts_devserver/app_e2e-spec.ts rename to e2e/concatjs_devserver/app_e2e-spec.ts diff --git a/e2e/ts_devserver/dummy_test.sh b/e2e/concatjs_devserver/dummy_test.sh similarity index 100% rename from e2e/ts_devserver/dummy_test.sh rename to e2e/concatjs_devserver/dummy_test.sh diff --git a/e2e/ts_devserver/genrule/BUILD.bazel b/e2e/concatjs_devserver/genrule/BUILD.bazel similarity index 92% rename from e2e/ts_devserver/genrule/BUILD.bazel rename to e2e/concatjs_devserver/genrule/BUILD.bazel index 016ca2650b..a3bf350375 100644 --- a/e2e/ts_devserver/genrule/BUILD.bazel +++ b/e2e/concatjs_devserver/genrule/BUILD.bazel @@ -12,8 +12,9 @@ # See the License for the specific language governing permissions and # limitations under the License. +load("@npm//@bazel/concatjs:index.bzl", "concatjs_devserver") load("@npm//@bazel/protractor:index.bzl", "protractor_web_test_suite") -load("@npm//@bazel/typescript:index.bzl", "ts_devserver", "ts_library") +load("@npm//@bazel/typescript:index.bzl", "ts_library") ts_library( name = "app", @@ -34,11 +35,11 @@ ts_library( ], ) -ts_devserver( +concatjs_devserver( name = "devserver", additional_root_paths = [ "npm/node_modules/tslib", - "e2e_ts_devserver/genrule/devserver/", + "e2e_concatjs_devserver/genrule/devserver/", ], serving_path = "/bundle.js", static_files = [ diff --git a/e2e/ts_devserver/genrule/app.ts b/e2e/concatjs_devserver/genrule/app.ts similarity index 100% rename from e2e/ts_devserver/genrule/app.ts rename to e2e/concatjs_devserver/genrule/app.ts diff --git a/e2e/ts_devserver/genrule/app_e2e-spec.ts b/e2e/concatjs_devserver/genrule/app_e2e-spec.ts similarity index 100% rename from e2e/ts_devserver/genrule/app_e2e-spec.ts rename to e2e/concatjs_devserver/genrule/app_e2e-spec.ts diff --git a/e2e/ts_devserver/genrule/index.html b/e2e/concatjs_devserver/genrule/index.html similarity index 100% rename from e2e/ts_devserver/genrule/index.html rename to e2e/concatjs_devserver/genrule/index.html diff --git a/e2e/ts_devserver/package.json b/e2e/concatjs_devserver/package.json similarity index 72% rename from e2e/ts_devserver/package.json rename to e2e/concatjs_devserver/package.json index 6e51c6096f..94aa1fd386 100644 --- a/e2e/ts_devserver/package.json +++ b/e2e/concatjs_devserver/package.json @@ -1,7 +1,8 @@ { "dependencies": { - "@bazel/protractor": "^2.0.0-rc.0", - "@bazel/typescript": "^2.0.0-rc.0", + "@bazel/concatjs": "^3.4.0", + "@bazel/protractor": "^3.4.0", + "@bazel/typescript": "^3.4.0", "@types/jasmine": "2.8.2", "@types/node": "7.0.18", "date-fns": "1.30.1", @@ -9,6 +10,7 @@ "jasmine": "2.8.0", "protractor": "^5.4.2", "rxjs": "^6.5.2", + "tslib": "^1.9.0", "typeorm": "^0.2.17", "typescript": "2.7.x" }, diff --git a/e2e/ts_devserver/protractor.on-prepare.js b/e2e/concatjs_devserver/protractor.on-prepare.js similarity index 100% rename from e2e/ts_devserver/protractor.on-prepare.js rename to e2e/concatjs_devserver/protractor.on-prepare.js diff --git a/e2e/ts_devserver/red-body-style.css b/e2e/concatjs_devserver/red-body-style.css similarity index 100% rename from e2e/ts_devserver/red-body-style.css rename to e2e/concatjs_devserver/red-body-style.css diff --git a/e2e/ts_devserver/subpackage/BUILD.bazel b/e2e/concatjs_devserver/subpackage/BUILD.bazel similarity index 91% rename from e2e/ts_devserver/subpackage/BUILD.bazel rename to e2e/concatjs_devserver/subpackage/BUILD.bazel index 3ae8a4b3d9..6b48120a73 100644 --- a/e2e/ts_devserver/subpackage/BUILD.bazel +++ b/e2e/concatjs_devserver/subpackage/BUILD.bazel @@ -12,8 +12,9 @@ # See the License for the specific language governing permissions and # limitations under the License. +load("@npm//@bazel/concatjs:index.bzl", "concatjs_devserver") load("@npm//@bazel/protractor:index.bzl", "protractor_web_test_suite") -load("@npm//@bazel/typescript:index.bzl", "ts_devserver", "ts_library") +load("@npm//@bazel/typescript:index.bzl", "ts_library") load("@npm//html-insert-assets:index.bzl", "html_insert_assets") html_insert_assets( @@ -32,7 +33,7 @@ html_insert_assets( ], ) -ts_devserver( +concatjs_devserver( name = "devserver", static_files = [ "inject", diff --git a/e2e/ts_devserver/subpackage/index.tmpl.html b/e2e/concatjs_devserver/subpackage/index.tmpl.html similarity index 100% rename from e2e/ts_devserver/subpackage/index.tmpl.html rename to e2e/concatjs_devserver/subpackage/index.tmpl.html diff --git a/e2e/ts_devserver/subpackage/subpackage_e2e-spec.ts b/e2e/concatjs_devserver/subpackage/subpackage_e2e-spec.ts similarity index 86% rename from e2e/ts_devserver/subpackage/subpackage_e2e-spec.ts rename to e2e/concatjs_devserver/subpackage/subpackage_e2e-spec.ts index f9eab9834d..65ee3b8b62 100644 --- a/e2e/ts_devserver/subpackage/subpackage_e2e-spec.ts +++ b/e2e/concatjs_devserver/subpackage/subpackage_e2e-spec.ts @@ -6,7 +6,7 @@ describe('subpackage', () => { await browser.get(''); }); - // Ensures that the "ts_devserver" properly injects and loads static files which + // Ensures that the "concatjs_devserver" properly injects and loads static files which // are in the current workspace, but not part of the current Bazel package. See // related issue: https://github.com/bazelbuild/rules_typescript/issues/409 it('should be able to properly load the injected CSS file', async () => { diff --git a/e2e/ts_devserver/tsconfig.json b/e2e/concatjs_devserver/tsconfig.json similarity index 100% rename from e2e/ts_devserver/tsconfig.json rename to e2e/concatjs_devserver/tsconfig.json diff --git a/e2e/ts_devserver/yarn.lock b/e2e/concatjs_devserver/yarn.lock similarity index 98% rename from e2e/ts_devserver/yarn.lock rename to e2e/concatjs_devserver/yarn.lock index 498a40a607..a14ad8acef 100644 --- a/e2e/ts_devserver/yarn.lock +++ b/e2e/concatjs_devserver/yarn.lock @@ -2,15 +2,24 @@ # yarn lockfile v1 -"@bazel/protractor@^2.0.0-rc.0": - version "2.0.0-rc.0" - resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-2.0.0-rc.0.tgz#53f751a8d53e4c795dc568e629f1c56d360cb587" - integrity sha512-+7aXrWOeOvDTyFdrjD1N9NRzmnLtisS3ep2sxv0Z/+XkleX5+IUxI/RMXRhQXflGidf2aOtblUMTMBucC6B1/Q== +"@bazel/concatjs@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@bazel/concatjs/-/concatjs-3.4.0.tgz#b5390f086235610e4b3a1c41af73e28fb34ad691" + integrity sha512-s6E2bFZvihjgYdOhBEv7hsl7gUBxBBh3wUQCIr72hjdlqHd3rk6+rj6mO36IZKZ9za0YCRR+sHoNud7Q98WKjQ== + dependencies: + protobufjs "6.8.8" + source-map-support "0.5.9" + tsutils "2.27.2" + +"@bazel/protractor@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-3.4.0.tgz#a5ea0ec30aa603f0748524b74f69b1a199d47b07" + integrity sha512-qCNj1VfD01ZcYdpKVMlSS3Fpzajwf4Oz0TZwRDdtu0VFAsNfJwvbXtTHOLbIgftBfF8BREnPd507VPAQ77mgKg== -"@bazel/typescript@^2.0.0-rc.0": - version "2.0.0-rc.0" - resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-2.0.0-rc.0.tgz#2581569b8ad1c7ec35dbe0528c0b7a66dc084af3" - integrity sha512-Lv8p97dNpXsn5cdeMM0afmayJjFHqJL+dR41KrScYQHLvPeF2LMTPI9prgWHFc3XArcEjSN7IK4TCVu4q3ytPw== +"@bazel/typescript@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.4.0.tgz#031d989682ff8605ed8745f31448c2f76a1b653a" + integrity sha512-XlWrlQnsdQHTwsliUAf4mySHOgqRY2S57LKG2rKRjm+a015Lzlmxo6jRQaxjr68UmuhmlklRw0WfCFxdR81AvQ== dependencies: protobufjs "6.8.8" semver "5.6.0" @@ -1481,9 +1490,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/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..6dc47a1b6b --- /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 = "1134ec9b7baee008f1d54f0483049a97e53a57cd3913ec9d6db625549c98395a", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.4.0/rules_nodejs-3.4.0.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..299cba406a --- /dev/null +++ b/e2e/coverage/package.json @@ -0,0 +1,12 @@ +{ + "name": "e2e-coverage", + "dependencies": { + "@bazel/jasmine": "^3.4.0", + "@bazel/typescript": "^3.4.0", + "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..5107a7ee4a --- /dev/null +++ b/e2e/coverage/yarn.lock @@ -0,0 +1,1301 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@bazel/jasmine@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-3.4.0.tgz#d85d8b9156821f1a2aadca55faedb3d7990bb018" + integrity sha512-TnXLJ/4gcM9KyWtfjv8ZrzNbR0teUYRIoLborbJUXVbMYYKjKOQ+rWzwGUIb6Gf4gJ8M7VmfrpzK8vBUjowkJw== + dependencies: + c8 "~7.5.0" + jasmine-reporters "~2.4.0" + +"@bazel/typescript@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.4.0.tgz#031d989682ff8605ed8745f31448c2f76a1b653a" + integrity sha512-XlWrlQnsdQHTwsliUAf4mySHOgqRY2S57LKG2rKRjm+a015Lzlmxo6jRQaxjr68UmuhmlklRw0WfCFxdR81AvQ== + 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.5.0: + version "7.5.0" + resolved "https://registry.yarnpkg.com/c8/-/c8-7.5.0.tgz#a69439ab82848f344a74bb25dc5dd4e867764481" + integrity sha512-GSkLsbvDr+FIwjNSJ8OwzWAyuznEYGTAd1pzb/Kr0FMLuV4vqYJTyjboDTwmlUNAG6jAU3PFWzqIdKrOt1D8tw== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@istanbuljs/schema" "^0.1.2" + find-up "^5.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 "^7.1.0" + yargs "^16.0.0" + yargs-parser "^20.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= + +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@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.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" + +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== + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +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@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.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.5: + 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.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/jasmine-reporters/-/jasmine-reporters-2.4.0.tgz#708c17ae70ba6671e3a930bb1b202aab80a31409" + integrity sha512-jxONSrBLN1vz/8zCx5YNWQSS8iyDAlXQ5yk1LuqITe4C6iXCDx5u6Q0jfNtkKhL4qLZPe69fL+AWvXFt9/x38w== + dependencies: + mkdirp "^0.5.1" + xmldom "^0.5.0" + +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@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.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@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +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= + +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-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@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz#5b95cef45c0f83217ec79f8fc7ee1c8b486aee07" + integrity sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + +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@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + 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.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.5.0.tgz#193cb96b84aa3486127ea6272c4596354cb4962e" + integrity sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA== + +y18n@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" + integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== + +yargs-parser@^20.0.0, yargs-parser@^20.2.2: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + +yargs@^16.0.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== diff --git a/e2e/fine_grained_symlinks/WORKSPACE b/e2e/fine_grained_symlinks/WORKSPACE index 10a7a4a0be..76bac82afc 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 = "790af2f3739871fedfb5721263e145e6ca6559c3c90bcaf6f3482a165d411827", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.0-rc.0/rules_nodejs-2.0.0-rc.0.tar.gz"], + sha256 = "1134ec9b7baee008f1d54f0483049a97e53a57cd3913ec9d6db625549c98395a", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.4.0/rules_nodejs-3.4.0.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 bbe2512466..b10bd0ebef 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 = "790af2f3739871fedfb5721263e145e6ca6559c3c90bcaf6f3482a165d411827", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.0-rc.0/rules_nodejs-2.0.0-rc.0.tar.gz"], + sha256 = "1134ec9b7baee008f1d54f0483049a97e53a57cd3913ec9d6db625549c98395a", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.4.0/rules_nodejs-3.4.0.tar.gz"], ) load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/e2e/jasmine/package.json b/e2e/jasmine/package.json index 4af25fa76b..444fb962fb 100644 --- a/e2e/jasmine/package.json +++ b/e2e/jasmine/package.json @@ -1,7 +1,7 @@ { "name": "e2e-jasmine", "dependencies": { - "@bazel/jasmine": "^2.0.0-rc.0", + "@bazel/jasmine": "^3.4.0", "zone.js": "0.8.29" }, "//": "Include an incompatible jasmine as a devDependency to verify that jasmine_node_test works regardless", @@ -9,6 +9,7 @@ "test": "bazel test ..." }, "devDependencies": { - "jasmine": "2.99.0" + "jasmine": "2.99.0", + "jasmine-core": "2.99.0" } } diff --git a/e2e/jasmine/yarn.lock b/e2e/jasmine/yarn.lock index db08ff6506..3b7fce8ecc 100644 --- a/e2e/jasmine/yarn.lock +++ b/e2e/jasmine/yarn.lock @@ -2,13 +2,13 @@ # yarn lockfile v1 -"@bazel/jasmine@^2.0.0-rc.0": - version "2.0.0-rc.0" - resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-2.0.0-rc.0.tgz#4dbf419a8332ec05862302a64546c21f2a7bc467" - integrity sha512-A/3ypUXGs3i9VgbI26xosygh/OhJlNlK+Mkhd2UVIAuzBVVzQbf+Eo+F/iqB2AJTaIA9rm/YJoCfFFeQvHyO5w== +"@bazel/jasmine@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-3.4.0.tgz#d85d8b9156821f1a2aadca55faedb3d7990bb018" + integrity sha512-TnXLJ/4gcM9KyWtfjv8ZrzNbR0teUYRIoLborbJUXVbMYYKjKOQ+rWzwGUIb6Gf4gJ8M7VmfrpzK8vBUjowkJw== dependencies: - c8 "~7.1.0" - jasmine-reporters "~2.3.2" + c8 "~7.5.0" + jasmine-reporters "~2.4.0" "@bcoe/v8-coverage@^0.2.3": version "0.2.3" @@ -61,14 +61,14 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -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== +c8@~7.5.0: + version "7.5.0" + resolved "https://registry.yarnpkg.com/c8/-/c8-7.5.0.tgz#a69439ab82848f344a74bb25dc5dd4e867764481" + integrity sha512-GSkLsbvDr+FIwjNSJ8OwzWAyuznEYGTAd1pzb/Kr0FMLuV4vqYJTyjboDTwmlUNAG6jAU3PFWzqIdKrOt1D8tw== dependencies: "@bcoe/v8-coverage" "^0.2.3" "@istanbuljs/schema" "^0.1.2" - find-up "^4.0.0" + find-up "^5.0.0" foreground-child "^2.0.0" furi "^2.0.0" istanbul-lib-coverage "^3.0.0" @@ -76,23 +76,18 @@ c8@~7.1.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" + v8-to-istanbul "^7.1.0" + yargs "^16.0.0" + yargs-parser "^20.0.0" -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== - -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: string-width "^4.2.0" strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" + wrap-ansi "^7.0.0" color-convert@^2.0.1: version "2.0.1" @@ -127,27 +122,27 @@ cross-spawn@^7.0.0: shebang-command "^2.0.0" which "^2.0.1" -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - 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== +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= -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== +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: - locate-path "^5.0.0" + locate-path "^6.0.0" path-exists "^4.0.0" foreground-child@^2.0.0: @@ -171,7 +166,7 @@ furi@^2.0.0: "@types/is-windows" "^1.0.0" is-windows "^1.0.2" -get-caller-file@^2.0.1: +get-caller-file@^2.0.5: 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== @@ -260,18 +255,23 @@ istanbul-reports@^3.0.2: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" +jasmine-core@2.99.0: + version "2.99.0" + resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.99.0.tgz#c105ab5222da45f1b0a10580383f5adbbff56d2c" + integrity sha1-wQWrUiLaRfGwoQWAOD9a27/1bSw= + jasmine-core@~2.99.0: version "2.99.1" resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.99.1.tgz#e6400df1e6b56e130b61c4bcd093daa7f6e8ca15" integrity sha1-5kAN8ea1bhMLYcS80JPap/boyhU= -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== +jasmine-reporters@~2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/jasmine-reporters/-/jasmine-reporters-2.4.0.tgz#708c17ae70ba6671e3a930bb1b202aab80a31409" + integrity sha512-jxONSrBLN1vz/8zCx5YNWQSS8iyDAlXQ5yk1LuqITe4C6iXCDx5u6Q0jfNtkKhL4qLZPe69fL+AWvXFt9/x38w== dependencies: mkdirp "^0.5.1" - xmldom "^0.1.22" + xmldom "^0.5.0" jasmine@2.99.0: version "2.99.0" @@ -282,12 +282,12 @@ jasmine@2.99.0: glob "^7.0.6" jasmine-core "~2.99.0" -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== +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: - p-locate "^4.1.0" + p-locate "^5.0.0" make-dir@^3.0.0: version "3.1.0" @@ -322,24 +322,19 @@ once@^1.3.0: 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== +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: - p-try "^2.0.0" + yocto-queue "^0.1.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== +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== 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== + p-limit "^3.0.2" path-exists@^4.0.0: version "4.0.0" @@ -361,11 +356,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@^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== - rimraf@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -383,11 +373,6 @@ semver@^6.0.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= - shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -442,20 +427,15 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" -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== +v8-to-istanbul@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz#5b95cef45c0f83217ec79f8fc7ee1c8b486aee07" + integrity sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g== 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" @@ -463,10 +443,10 @@ which@^2.0.1: 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== +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" string-width "^4.1.0" @@ -477,40 +457,38 @@ wrappy@1: 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" +xmldom@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.5.0.tgz#193cb96b84aa3486127ea6272c4596354cb4962e" + integrity sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA== + +y18n@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" + integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== + +yargs-parser@^20.0.0, yargs-parser@^20.2.2: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + +yargs@^16.0.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" 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" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== zone.js@0.8.29: version "0.8.29" diff --git a/e2e/node_loader_no_preserve_symlinks/BUILD.bazel b/e2e/node_loader_no_preserve_symlinks/BUILD.bazel index cc05613308..26d3bb8155 100644 --- a/e2e/node_loader_no_preserve_symlinks/BUILD.bazel +++ b/e2e/node_loader_no_preserve_symlinks/BUILD.bazel @@ -6,8 +6,8 @@ nodejs_test( name = "test", data = [ "node_loader_test.spec.js", + "@npm//:node_modules", ], entry_point = ":node_loader_test.spec.js", - node_modules = "@npm//:node_modules", templated_args = ["--nobazel_node_patches"], ) diff --git a/e2e/node_loader_no_preserve_symlinks/WORKSPACE b/e2e/node_loader_no_preserve_symlinks/WORKSPACE index 2deae64144..ab82960e32 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 = "790af2f3739871fedfb5721263e145e6ca6559c3c90bcaf6f3482a165d411827", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.0-rc.0/rules_nodejs-2.0.0-rc.0.tar.gz"], + sha256 = "1134ec9b7baee008f1d54f0483049a97e53a57cd3913ec9d6db625549c98395a", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.4.0/rules_nodejs-3.4.0.tar.gz"], ) load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories", "yarn_install") diff --git a/e2e/node_loader_preserve_symlinks/BUILD.bazel b/e2e/node_loader_preserve_symlinks/BUILD.bazel index ff7bc2228f..a50c3b926e 100644 --- a/e2e/node_loader_preserve_symlinks/BUILD.bazel +++ b/e2e/node_loader_preserve_symlinks/BUILD.bazel @@ -6,7 +6,7 @@ nodejs_test( name = "test", data = [ "node_loader_test.spec.js", + "@npm//:node_modules", ], entry_point = ":node_loader_test.spec.js", - node_modules = "@npm//:node_modules", ) diff --git a/e2e/node_loader_preserve_symlinks/WORKSPACE b/e2e/node_loader_preserve_symlinks/WORKSPACE index adefea9534..cffee07173 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 = "790af2f3739871fedfb5721263e145e6ca6559c3c90bcaf6f3482a165d411827", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.0-rc.0/rules_nodejs-2.0.0-rc.0.tar.gz"], + sha256 = "1134ec9b7baee008f1d54f0483049a97e53a57cd3913ec9d6db625549c98395a", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.4.0/rules_nodejs-3.4.0.tar.gz"], ) load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/e2e/nodejs_image/.bazelrc b/e2e/nodejs_image/.bazelrc new file mode 100644 index 0000000000..3431057af6 --- /dev/null +++ b/e2e/nodejs_image/.bazelrc @@ -0,0 +1 @@ +import %workspace%/../../common.bazelrc diff --git a/e2e/nodejs_image/BUILD.bazel b/e2e/nodejs_image/BUILD.bazel new file mode 100644 index 0000000000..88ce171dde --- /dev/null +++ b/e2e/nodejs_image/BUILD.bazel @@ -0,0 +1,24 @@ +load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary") +load("@io_bazel_rules_docker//contrib:test.bzl", "container_test") +load("@io_bazel_rules_docker//nodejs:image.bzl", "nodejs_image") + +nodejs_binary( + name = "main", + data = [ + "//foolib", + "@npm//date-fns", + ], + entry_point = "main.js", +) + +# bazel run --platforms=@build_bazel_rules_nodejs//toolchains/node:linux_amd64 //:nodejs_image +nodejs_image( + name = "nodejs_image", + binary = ":main", +) + +container_test( + name = "nodejs_image_test", + configs = [":nodejs_image.yaml"], + image = ":nodejs_image", +) diff --git a/e2e/nodejs_image/WORKSPACE b/e2e/nodejs_image/WORKSPACE new file mode 100644 index 0000000000..bf73e4ec65 --- /dev/null +++ b/e2e/nodejs_image/WORKSPACE @@ -0,0 +1,57 @@ +# 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_nodejs_image", + managed_directories = {"@npm": ["node_modules"]}, +) + +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") + +http_archive( + name = "build_bazel_rules_nodejs", + sha256 = "1134ec9b7baee008f1d54f0483049a97e53a57cd3913ec9d6db625549c98395a", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.4.0/rules_nodejs-3.4.0.tar.gz"], +) + +load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") + +yarn_install( + name = "npm", + package_json = "//:package.json", + yarn_lock = "//:yarn.lock", +) + +http_archive( + name = "io_bazel_rules_docker", + 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 new file mode 100644 index 0000000000..f6cf8c1b04 --- /dev/null +++ b/e2e/nodejs_image/foolib/BUILD.bazel @@ -0,0 +1,8 @@ +load("@build_bazel_rules_nodejs//:index.bzl", "js_library") + +js_library( + name = "foolib", + package_name = "@foo/lib", + srcs = ["index.js"], + visibility = ["//visibility:public"], +) diff --git a/e2e/nodejs_image/foolib/index.js b/e2e/nodejs_image/foolib/index.js new file mode 100644 index 0000000000..5b264e52d8 --- /dev/null +++ b/e2e/nodejs_image/foolib/index.js @@ -0,0 +1,5 @@ +function foo(str) { + return `foo_${str}`; +} + +exports.foo = foo; \ No newline at end of file diff --git a/e2e/nodejs_image/main.js b/e2e/nodejs_image/main.js new file mode 100644 index 0000000000..441b92cdb2 --- /dev/null +++ b/e2e/nodejs_image/main.js @@ -0,0 +1,5 @@ +const format = require('date-fns').format; +const foo = require('@foo/lib').foo; + +const date = format(new Date(2019, 4, 7), 'MMMM d, yyyy'); +console.log(foo('lib'), date); \ No newline at end of file diff --git a/e2e/nodejs_image/nodejs_image.yaml b/e2e/nodejs_image/nodejs_image.yaml new file mode 100644 index 0000000000..203e93a968 --- /dev/null +++ b/e2e/nodejs_image/nodejs_image.yaml @@ -0,0 +1,5 @@ +schemaVersion: 2.0.0 + +metadataTest: + entrypoint: ['/app//main'] + workdir: "/app//main.runfiles/e2e_nodejs_image" diff --git a/e2e/nodejs_image/package.json b/e2e/nodejs_image/package.json new file mode 100644 index 0000000000..e654f2f21f --- /dev/null +++ b/e2e/nodejs_image/package.json @@ -0,0 +1,9 @@ +{ + "private": true, + "devDependencies": { + "date-fns": "2.14.0" + }, + "scripts": { + "test": "bazel test ... && bazel un --platforms=@build_bazel_rules_nodejs//toolchains/node:linux_amd64 //:nodejs_image" + } +} diff --git a/e2e/nodejs_image/yarn.lock b/e2e/nodejs_image/yarn.lock new file mode 100644 index 0000000000..a5723f4881 --- /dev/null +++ b/e2e/nodejs_image/yarn.lock @@ -0,0 +1,8 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +date-fns@2.14.0: + version "2.14.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.14.0.tgz#359a87a265bb34ef2e38f93ecf63ac453f9bc7ba" + integrity sha512-1zD+68jhFgDIM0rF05rcwYO8cExdNqxjq4xP1QKM60Q45mnO6zaMWB4tOzrIr4M4GSLntsKeE4c9Bdl2jhL/yw== diff --git a/e2e/packages/BUILD.bazel b/e2e/packages/BUILD.bazel index 8af7845a75..57f8e60c65 100644 --- a/e2e/packages/BUILD.bazel +++ b/e2e/packages/BUILD.bazel @@ -17,9 +17,9 @@ VARIANTS = [ data = [ variant + ".spec.js", ":test_version", + "@e2e_packages_" + variant + "//:node_modules", ], entry_point = ":%s.spec.js" % variant, - node_modules = "@e2e_packages_" + variant + "//:node_modules", # On Windows, the yarn and npm variants fight over who creates the link # [link_node_modules.js] [Error: EEXIST: file already exists, mkdir 'C:\users\b\_bazel_b\p4se2lwa\execroot\e2e_packages\node_modules'] { # errno: -4075, @@ -35,11 +35,13 @@ nodejs_test( data = [ "npm_determinism.spec.js", "@e2e_packages_npm_install//:node_modules/jsesc/package.json", + "@e2e_packages_npm_install_duplicate_for_determinism_testing//:node_modules", ], entry_point = ":npm_determinism.spec.js", - node_modules = "@e2e_packages_npm_install_duplicate_for_determinism_testing//:node_modules", # TODO(gregmagolan): fix this test on windows tags = ["fix-windows"], + # TODO: use runfiles + templated_args = ["--bazel_patch_module_resolver"], ) nodejs_test( @@ -47,9 +49,11 @@ nodejs_test( data = [ "yarn_determinism.spec.js", "@e2e_packages_yarn_install//:node_modules/jsesc/package.json", + "@e2e_packages_yarn_install_duplicate_for_determinism_testing//:node_modules", ], entry_point = ":yarn_determinism.spec.js", - node_modules = "@e2e_packages_yarn_install_duplicate_for_determinism_testing//:node_modules", # TODO(gregmagolan): fix this test on windows tags = ["fix-windows"], + # TODO: use runfiles + templated_args = ["--bazel_patch_module_resolver"], ) diff --git a/e2e/packages/WORKSPACE b/e2e/packages/WORKSPACE index 73612de0ad..4b4f3b4865 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 = "790af2f3739871fedfb5721263e145e6ca6559c3c90bcaf6f3482a165d411827", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.0-rc.0/rules_nodejs-2.0.0-rc.0.tar.gz"], + sha256 = "1134ec9b7baee008f1d54f0483049a97e53a57cd3913ec9d6db625549c98395a", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.4.0/rules_nodejs-3.4.0.tar.gz"], ) load("@build_bazel_rules_nodejs//:index.bzl", "check_rules_nodejs_version", "node_repositories", "npm_install", "yarn_install") diff --git a/e2e/packages/npm1/package.json b/e2e/packages/npm1/package.json index 396c0aeb47..c0054103f6 100644 --- a/e2e/packages/npm1/package.json +++ b/e2e/packages/npm1/package.json @@ -8,6 +8,6 @@ "tmp": "0.1.0" }, "scripts": { - "postinstall": "node ./postinstall.js" + "postinstall": "node ../postinstall.js" } } diff --git a/e2e/packages/npm2/package.json b/e2e/packages/npm2/package.json index 396c0aeb47..c0054103f6 100644 --- a/e2e/packages/npm2/package.json +++ b/e2e/packages/npm2/package.json @@ -8,6 +8,6 @@ "tmp": "0.1.0" }, "scripts": { - "postinstall": "node ./postinstall.js" + "postinstall": "node ../postinstall.js" } } diff --git a/e2e/packages/yarn1/package.json b/e2e/packages/yarn1/package.json index 396c0aeb47..c0054103f6 100644 --- a/e2e/packages/yarn1/package.json +++ b/e2e/packages/yarn1/package.json @@ -8,6 +8,6 @@ "tmp": "0.1.0" }, "scripts": { - "postinstall": "node ./postinstall.js" + "postinstall": "node ../postinstall.js" } } diff --git a/e2e/packages/yarn2/package.json b/e2e/packages/yarn2/package.json index 396c0aeb47..c0054103f6 100644 --- a/e2e/packages/yarn2/package.json +++ b/e2e/packages/yarn2/package.json @@ -8,6 +8,6 @@ "tmp": "0.1.0" }, "scripts": { - "postinstall": "node ./postinstall.js" + "postinstall": "node ../postinstall.js" } } diff --git a/e2e/symlinked_node_modules_npm/.bazelversion b/e2e/symlinked_node_modules_npm/.bazelversion deleted file mode 120000 index 96cf94962b..0000000000 --- a/e2e/symlinked_node_modules_npm/.bazelversion +++ /dev/null @@ -1 +0,0 @@ -../../.bazelversion \ No newline at end of file diff --git a/e2e/symlinked_node_modules_yarn/.bazelversion b/e2e/symlinked_node_modules_yarn/.bazelversion deleted file mode 120000 index 96cf94962b..0000000000 --- a/e2e/symlinked_node_modules_yarn/.bazelversion +++ /dev/null @@ -1 +0,0 @@ -../../.bazelversion \ No newline at end of file diff --git a/e2e/typescript/BUILD.bazel b/e2e/typescript/BUILD.bazel index 27c9d8faae..9f225bd1ca 100644 --- a/e2e/typescript/BUILD.bazel +++ b/e2e/typescript/BUILD.bazel @@ -51,6 +51,10 @@ jasmine_node_test( # Verify that worker_protocol.proto can be referenced as a target in the generated npm bazel workspace "@npm//@bazel/typescript/third_party/github.com/bazelbuild/bazel/src/main/protobuf:worker_protocol.proto", ], + templated_args = [ + # ts_library produces named AMD output with repo name in the require statement + "--bazel_patch_module_resolver", + ], deps = [ ":test_lib", ], diff --git a/e2e/typescript/WORKSPACE b/e2e/typescript/WORKSPACE index 1fe5dd2f0f..7ea8dd7602 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 = "790af2f3739871fedfb5721263e145e6ca6559c3c90bcaf6f3482a165d411827", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.0-rc.0/rules_nodejs-2.0.0-rc.0.tar.gz"], + sha256 = "1134ec9b7baee008f1d54f0483049a97e53a57cd3913ec9d6db625549c98395a", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.4.0/rules_nodejs-3.4.0.tar.gz"], ) load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") @@ -32,7 +32,3 @@ yarn_install( package_json = "//:package.json", yarn_lock = "//:yarn.lock", ) - -load("@npm//@bazel/typescript:index.bzl", "ts_setup_workspace") - -ts_setup_workspace() diff --git a/e2e/typescript/package.json b/e2e/typescript/package.json index 12882096b7..cd9e01cbc0 100644 --- a/e2e/typescript/package.json +++ b/e2e/typescript/package.json @@ -1,7 +1,7 @@ { "dependencies": { - "@bazel/jasmine": "^2.0.0-rc.0", - "@bazel/typescript": "^2.0.0-rc.0", + "@bazel/jasmine": "^3.4.0", + "@bazel/typescript": "^3.4.0", "@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 d1995de82f..39d9829bbe 100644 --- a/e2e/typescript/yarn.lock +++ b/e2e/typescript/yarn.lock @@ -2,18 +2,18 @@ # yarn lockfile v1 -"@bazel/jasmine@^2.0.0-rc.0": - version "2.0.0-rc.0" - resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-2.0.0-rc.0.tgz#4dbf419a8332ec05862302a64546c21f2a7bc467" - integrity sha512-A/3ypUXGs3i9VgbI26xosygh/OhJlNlK+Mkhd2UVIAuzBVVzQbf+Eo+F/iqB2AJTaIA9rm/YJoCfFFeQvHyO5w== +"@bazel/jasmine@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-3.4.0.tgz#d85d8b9156821f1a2aadca55faedb3d7990bb018" + integrity sha512-TnXLJ/4gcM9KyWtfjv8ZrzNbR0teUYRIoLborbJUXVbMYYKjKOQ+rWzwGUIb6Gf4gJ8M7VmfrpzK8vBUjowkJw== dependencies: - c8 "~7.1.0" - jasmine-reporters "~2.3.2" + c8 "~7.5.0" + jasmine-reporters "~2.4.0" -"@bazel/typescript@^2.0.0-rc.0": - version "2.0.0-rc.0" - resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-2.0.0-rc.0.tgz#2581569b8ad1c7ec35dbe0528c0b7a66dc084af3" - integrity sha512-Lv8p97dNpXsn5cdeMM0afmayJjFHqJL+dR41KrScYQHLvPeF2LMTPI9prgWHFc3XArcEjSN7IK4TCVu4q3ytPw== +"@bazel/typescript@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.4.0.tgz#031d989682ff8605ed8745f31448c2f76a1b653a" + integrity sha512-XlWrlQnsdQHTwsliUAf4mySHOgqRY2S57LKG2rKRjm+a015Lzlmxo6jRQaxjr68UmuhmlklRw0WfCFxdR81AvQ== dependencies: protobufjs "6.8.8" semver "5.6.0" @@ -149,14 +149,14 @@ 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== -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== +c8@~7.5.0: + version "7.5.0" + resolved "https://registry.yarnpkg.com/c8/-/c8-7.5.0.tgz#a69439ab82848f344a74bb25dc5dd4e867764481" + integrity sha512-GSkLsbvDr+FIwjNSJ8OwzWAyuznEYGTAd1pzb/Kr0FMLuV4vqYJTyjboDTwmlUNAG6jAU3PFWzqIdKrOt1D8tw== dependencies: "@bcoe/v8-coverage" "^0.2.3" "@istanbuljs/schema" "^0.1.2" - find-up "^4.0.0" + find-up "^5.0.0" foreground-child "^2.0.0" furi "^2.0.0" istanbul-lib-coverage "^3.0.0" @@ -164,23 +164,18 @@ c8@~7.1.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" + v8-to-istanbul "^7.1.0" + yargs "^16.0.0" + yargs-parser "^20.0.0" -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== - -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: string-width "^4.2.0" strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" + wrap-ansi "^7.0.0" color-convert@^2.0.1: version "2.0.1" @@ -220,22 +215,22 @@ date-fns@^1.30.1: resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - 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== -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== +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: - locate-path "^5.0.0" + locate-path "^6.0.0" path-exists "^4.0.0" foreground-child@^2.0.0: @@ -259,7 +254,7 @@ furi@^2.0.0: "@types/is-windows" "^1.0.0" is-windows "^1.0.2" -get-caller-file@^2.0.1: +get-caller-file@^2.0.5: 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== @@ -353,13 +348,13 @@ jasmine-core@~3.5.0: resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.5.0.tgz#132c23e645af96d85c8bca13c8758b18429fc1e4" integrity sha512-nCeAiw37MIMA9w9IXso7bRaLl+c/ef3wnxsoSAlYrzS+Ot0zTG6nU8G/cIfGkqpkjX2wNaIW9RFG0TwIFnG6bA== -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== +jasmine-reporters@~2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/jasmine-reporters/-/jasmine-reporters-2.4.0.tgz#708c17ae70ba6671e3a930bb1b202aab80a31409" + integrity sha512-jxONSrBLN1vz/8zCx5YNWQSS8iyDAlXQ5yk1LuqITe4C6iXCDx5u6Q0jfNtkKhL4qLZPe69fL+AWvXFt9/x38w== dependencies: mkdirp "^0.5.1" - xmldom "^0.1.22" + xmldom "^0.5.0" jasmine@^3.5.0: version "3.5.0" @@ -369,12 +364,12 @@ jasmine@^3.5.0: glob "^7.1.4" jasmine-core "~3.5.0" -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== +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: - p-locate "^4.1.0" + p-locate "^5.0.0" long@^4.0.0: version "4.0.0" @@ -414,24 +409,19 @@ once@^1.3.0: 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== +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: - p-try "^2.0.0" + yocto-queue "^0.1.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== +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== 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== + p-limit "^3.0.2" path-exists@^4.0.0: version "4.0.0" @@ -472,11 +462,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@^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== - rimraf@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -499,11 +484,6 @@ semver@^6.0.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= - shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -596,20 +576,15 @@ typescript@3.1.x: resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.1.6.tgz#b6543a83cfc8c2befb3f4c8fba6896f5b0c9be68" integrity sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA== -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== +v8-to-istanbul@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz#5b95cef45c0f83217ec79f8fc7ee1c8b486aee07" + integrity sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g== 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" @@ -617,10 +592,10 @@ which@^2.0.1: 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== +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" string-width "^4.1.0" @@ -631,37 +606,35 @@ wrappy@1: 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" +xmldom@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.5.0.tgz#193cb96b84aa3486127ea6272c4596354cb4962e" + integrity sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA== + +y18n@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" + integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== + +yargs-parser@^20.0.0, yargs-parser@^20.2.2: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + +yargs@^16.0.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" 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" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== diff --git a/e2e/webapp/WORKSPACE b/e2e/webapp/WORKSPACE index 1873f698ed..1bba32b0b8 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 = "790af2f3739871fedfb5721263e145e6ca6559c3c90bcaf6f3482a165d411827", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.0-rc.0/rules_nodejs-2.0.0-rc.0.tar.gz"], + sha256 = "1134ec9b7baee008f1d54f0483049a97e53a57cd3913ec9d6db625549c98395a", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.4.0/rules_nodejs-3.4.0.tar.gz"], ) load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/e2e/webapp/package.json b/e2e/webapp/package.json index 1d5ac92156..969ed5037f 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-rc.0", - "@bazel/terser": "^2.0.0-rc.0", - "rollup": "1.20.3", + "@bazel/rollup": "^3.4.0", + "@bazel/terser": "^3.4.0", + "rollup": "2.3.0", "terser": "4.3.1" }, "scripts": { diff --git a/e2e/webapp/test.js b/e2e/webapp/test.js index c8c8d64272..14b0c57f06 100644 --- a/e2e/webapp/test.js +++ b/e2e/webapp/test.js @@ -1,5 +1,6 @@ const fs = require('fs'); -const content = fs.readFileSync(require.resolve('e2e_webapp/out.min/app.js'), 'utf-8'); +const runfiles = require(process.env['BAZEL_NODE_RUNFILES_HELPER']); +const content = fs.readFileSync(runfiles.resolve('e2e_webapp/out.min/app.js'), 'utf-8'); if (content.indexOf('import("./strings') < 0) { console.error(content); process.exitCode = 1; diff --git a/e2e/webapp/yarn.lock b/e2e/webapp/yarn.lock index 9ecff7bcc9..7f5bad27b1 100644 --- a/e2e/webapp/yarn.lock +++ b/e2e/webapp/yarn.lock @@ -2,30 +2,15 @@ # yarn lockfile v1 -"@bazel/rollup@^2.0.0-rc.0": - version "2.0.0-rc.0" - resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-2.0.0-rc.0.tgz#b184b9c9947bdfe57ca5167bce4b0ee15d2a321f" - integrity sha512-ZV3UUfOq9/JIPl7nwrR+Domncjd8J/uUPwnQGNwKz4yfS57NnR4A5mFoUjXeCKhPQZukaSt6Pydp2IUqrRGZkw== +"@bazel/rollup@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-3.4.0.tgz#cdecb2b90535ef51fb3d56cc8bc19996918bac1a" + integrity sha512-QKnttbYyEQjRbWrOlkH2JuDnSww+9K7Ppil91zBTtr/qYTGW9XO0v7Ft3cs30s2NIWSGIuKj9/N5as+Uyratrw== -"@bazel/terser@^2.0.0-rc.0": - version "2.0.0-rc.0" - resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-2.0.0-rc.0.tgz#0f62465c44dc9a25a60f6355394e15c8c7466c6a" - integrity sha512-7lUInOkxJHw5DOVuEpYrTtpe7KK3vpC35w5KIPFCdIbCULrgyH0624ahmAKWj0e0152EpUFidmr4eBio0idtaA== - -"@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@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-3.4.0.tgz#9a25892977f00974e4195ff6cbe71ec0313a77d5" + integrity sha512-E26ijh44aXIXcg3EQEZcL2nkGlWZtMka0gwmYo9bDRyGt6rCRhFuSBC0mz9YCifUhKuACKWXLHPz9wvh1CDkEA== 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 7595e39a6c..af969f564c 100644 --- a/examples/BUILD.bazel +++ b/examples/BUILD.bazel @@ -19,7 +19,7 @@ example_integration_test( timeout = "long", npm_packages = { "//packages/angular:npm_package": "@bazel/angular", - "//packages/karma:npm_package": "@bazel/karma", + "//packages/concatjs:npm_package": "@bazel/concatjs", "//packages/protractor:npm_package": "@bazel/protractor", "//packages/rollup:npm_package": "@bazel/rollup", "//packages/terser:npm_package": "@bazel/terser", @@ -44,7 +44,7 @@ example_integration_test( name = "examples_angular_view_engine", timeout = "long", npm_packages = { - "//packages/karma:npm_package": "@bazel/karma", + "//packages/concatjs:npm_package": "@bazel/concatjs", "//packages/protractor:npm_package": "@bazel/protractor", "//packages/rollup:npm_package": "@bazel/rollup", "//packages/terser:npm_package": "@bazel/terser", @@ -63,6 +63,13 @@ example_integration_test( tags = ["no-bazelci-windows"], ) +example_integration_test( + name = "examples_create-react-app", + npm_packages = { + "//packages/runfiles:npm_package": "@bazel/runfiles", + }, +) + example_integration_test( name = "examples_react_webpack", # TODO: add some tests in the example @@ -78,6 +85,7 @@ example_integration_test( example_integration_test( name = "examples_app", npm_packages = { + "//packages/concatjs:npm_package": "@bazel/concatjs", "//packages/protractor:npm_package": "@bazel/protractor", "//packages/rollup:npm_package": "@bazel/rollup", "//packages/terser:npm_package": "@bazel/terser", @@ -87,6 +95,9 @@ example_integration_test( example_integration_test( name = "examples_closure", + npm_packages = { + "//packages/runfiles:npm_package": "@bazel/runfiles", + }, ) example_integration_test( @@ -109,6 +120,9 @@ example_integration_test( example_integration_test( name = "examples_jest", + npm_packages = { + "//packages/typescript:npm_package": "@bazel/typescript", + }, owners = ["@mrmeku"], ) @@ -132,7 +146,7 @@ example_integration_test( example_integration_test( name = "examples_web_testing", npm_packages = { - "//packages/karma:npm_package": "@bazel/karma", + "//packages/concatjs:npm_package": "@bazel/concatjs", "//packages/typescript:npm_package": "@bazel/typescript", }, ) @@ -179,7 +193,7 @@ example_integration_test( name = "examples_protocol_buffers", timeout = "long", npm_packages = { - "//packages/karma:npm_package": "@bazel/karma", + "//packages/concatjs:npm_package": "@bazel/concatjs", "//packages/labs:npm_package": "@bazel/labs", "//packages/protractor:npm_package": "@bazel/protractor", "//packages/rollup:npm_package": "@bazel/rollup", @@ -192,6 +206,17 @@ example_integration_test( tags = ["no-bazelci-windows"], ) +example_integration_test( + name = "examples_protobufjs", + npm_packages = { + "//packages/jasmine:npm_package": "@bazel/jasmine", + "//packages/typescript:npm_package": "@bazel/typescript", + }, + # Flakes on windows + # TODO: understand flake fail mode and re-enable + tags = ["no-bazelci-windows"], +) + example_integration_test( name = "examples_vendored_node", npm_packages = { @@ -212,6 +237,11 @@ example_integration_test( tags = ["manual"], ) +example_integration_test( + name = "examples_vue", + npm_packages = {}, +) + example_integration_test( name = "examples_worker", # There are no tests in this example @@ -226,8 +256,19 @@ example_integration_test( example_integration_test( name = "examples_angular_bazel_architect", + timeout = "long", bazel_commands = [ "test ...", ], owners = ["@alan-agius4"], ) + +example_integration_test( + name = "examples_esbuild", + timeout = "long", + npm_packages = { + "//packages/esbuild:npm_package": "@bazel/esbuild", + "//packages/typescript:npm_package": "@bazel/typescript", + }, + owners = ["@mattem"], +) 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..0c4aa295bc 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/index.html b/examples/angular/src/index.html index f668851ca3..79f3ffe445 100644 --- a/examples/angular/src/index.html +++ b/examples/angular/src/index.html @@ -80,7 +80,7 @@ mat-button="" tabindex="0" aria-disabled="false" - href="https://github.com/bazelbuild/rules_nodejs/tree/master/examples/angular" + href="https://github.com/bazelbuild/rules_nodejs/tree/stable/examples/angular" >Example
-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/BUILD.bazel b/examples/angular/tools/BUILD.bazel index d2f335e89b..43fc2cdc90 100644 --- a/examples/angular/tools/BUILD.bazel +++ b/examples/angular/tools/BUILD.bazel @@ -11,5 +11,7 @@ nodejs_binary( "@npm//@bazel/typescript", ], entry_point = "@npm//:node_modules/@bazel/typescript/internal/tsc_wrapped/tsc_wrapped.js", + # TODO: turn on --worker_sandboxing and remove this flag to see failure to load the plugin + templated_args = ["--bazel_patch_module_resolver"], visibility = ["//:__subpackages__"], ) 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 b52a94a229..0a208e88e5 100644 --- a/examples/angular/yarn.lock +++ b/examples/angular/yarn.lock @@ -2,12 +2,12 @@ # yarn lockfile v1 -"@angular-devkit/architect@0.1000.0-rc.4": - version "0.1000.0-rc.4" - resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1000.0-rc.4.tgz#46424ae5db7d9a25603b8596bb3af95ed90a6048" - integrity sha512-TbMPHG+PS0jNtXM8kgJ4RiVnvlxgiYOQ12s8cMofPMG8QhOU+IULkf1fq4ynV3+sdXJMtY8TMlFTCAgFsacoJQ== +"@angular-devkit/architect@0.1000.0": + version "0.1000.0" + resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1000.0.tgz#d06639f3834bc0031aa2f8cce9cb7d490c12ae37" + integrity sha512-luzBYe7t994ebq6xIfYJudxOkMBO0bywafk6sQqb+bOaBQAran4orF1R/zEx6f8TJzEoXELjUvxm/ePSqZdpKg== dependencies: - "@angular-devkit/core" "10.0.0-rc.4" + "@angular-devkit/core" "10.0.0" rxjs "6.5.5" "@angular-devkit/architect@^0.901.7": @@ -18,10 +18,10 @@ "@angular-devkit/core" "9.1.7" rxjs "6.5.4" -"@angular-devkit/core@10.0.0-rc.4": - version "10.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-10.0.0-rc.4.tgz#6e551f037614dfac4d9d38c0305c25de0df24a54" - integrity sha512-zrD5sMUy8URkWgu3J+vftHbuBF1z33wy3K+z4GFSS8+M0Jh+WOLJGqOnVGY0qmmisfQB/1hMRCdKxRGYCiMGbw== +"@angular-devkit/core@10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-10.0.0.tgz#9f6378a295a559d1a0bf12af200c0c9d59428a65" + integrity sha512-IvX9IMaCjDkN9vDVnYcgWbSBinlUUb7jdFhDGeTtK6rGSnjX1GoLvWneVI2hoccS07fPbnfMoYXBoZLwVxiIxw== dependencies: ajv "6.12.2" fast-json-stable-stringify "2.1.0" @@ -40,41 +40,41 @@ rxjs "6.5.4" source-map "0.7.3" -"@angular-devkit/schematics@10.0.0-rc.4": - version "10.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-10.0.0-rc.4.tgz#8352faaf7cfe6fbc89cbcd7139291e64f2170df2" - integrity sha512-CbVP3i+JQ13AKSkmvsRE7DsFA4P2lyu3uO+t+w6S+A/hQ6zKy4aHLdFDH00NGXbhpjyOiNiUEKNIlHYtaTDTXA== +"@angular-devkit/schematics@10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-10.0.0.tgz#6ba61092621c25fef78e29c700a7fb3f523b6cc0" + integrity sha512-FJ/dY18M+cnAT9RkVjVRJ0PMFZci3ok0WoOosW25Fk68jwNSbGCeF8k8NcD6YE60+CfF4/0LxQWgFagr/wdEhw== dependencies: - "@angular-devkit/core" "10.0.0-rc.4" + "@angular-devkit/core" "10.0.0" ora "4.0.4" rxjs "6.5.5" -"@angular/animations@10.0.0-rc.6": - version "10.0.0-rc.6" - resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-10.0.0-rc.6.tgz#a3f32174ebbe2704ab11703efe8bf8f6cece9c34" - integrity sha512-q+XCv9SXzCXeZFXCSaamwxrr2plGUPl7nUDfCy1AwPyynoOeKGCoEuVcJx9D2c1UHZ2lpkNBWc/4O9wIWkistQ== +"@angular/animations@10.0.2": + version "10.0.2" + resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-10.0.2.tgz#4af6983800c7e6fbb402f7183fc547ae480cb534" + integrity sha512-3fMR574KnaeAon7ZlwYCB2qkUoZ255Y2KwU6Z/ki37U66QZc8XMqf/d4oUiTZgLsJG4a5Whse0IX8Jz5/HAvQQ== dependencies: tslib "^2.0.0" -"@angular/cdk@10.0.0-rc.2": - version "10.0.0-rc.2" - resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-10.0.0-rc.2.tgz#a4064d1090cd881e733ba2a2917de21d272373b5" - integrity sha512-9kJwAattGD8a5riKlKjOsG5IHq3zTb3qy+gPgAgF/CBk896NNVMCl/SOS9BlK1oX9jYGKaX3eQWOyEYe3aYuNg== +"@angular/cdk@10.0.1": + version "10.0.1" + resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-10.0.1.tgz#8e10317cd6fee4d9f8a3794998629496fb60e68b" + integrity sha512-tEgaTDQplptbOf4cHHdVScH0h5QNvkWDhabAWpWaT4/dVXEsp+p2E9Pzkemesi/gNmUIetVjGaicX5VqsijZSQ== dependencies: tslib "^2.0.0" optionalDependencies: parse5 "^5.0.0" -"@angular/cli@10.0.0-rc.4": - version "10.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-10.0.0-rc.4.tgz#81628db89946168557390e18696b206cf2166455" - integrity sha512-qsaA/TAZOIG3DJG+t3OOSFBtL4OUMytwHWh/TbsrHXLqpfzMpMGTjtgHppu1B4Q/ZlvQP5SeabR0pLjdxErYOA== +"@angular/cli@10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-10.0.0.tgz#5137aeb89d5d237d09f7c6b37437b0a6e65e224a" + integrity sha512-I+2cltQCmThgrnHwsG5AX0hQ9z6rK/8ysRWWeiJXHtEtqupW9eNzXX1QfXWxWB3o6oIKgijvnLlp04BUlWCyXA== dependencies: - "@angular-devkit/architect" "0.1000.0-rc.4" - "@angular-devkit/core" "10.0.0-rc.4" - "@angular-devkit/schematics" "10.0.0-rc.4" - "@schematics/angular" "10.0.0-rc.4" - "@schematics/update" "0.1000.0-rc.4" + "@angular-devkit/architect" "0.1000.0" + "@angular-devkit/core" "10.0.0" + "@angular-devkit/schematics" "10.0.0" + "@schematics/angular" "10.0.0" + "@schematics/update" "0.1000.0" "@yarnpkg/lockfile" "1.1.0" ansi-colors "4.1.1" debug "4.1.1" @@ -91,17 +91,17 @@ universal-analytics "0.4.20" uuid "8.1.0" -"@angular/common@10.0.0-rc.6": - version "10.0.0-rc.6" - resolved "https://registry.yarnpkg.com/@angular/common/-/common-10.0.0-rc.6.tgz#b8c8641626680793ee451258730b6193b97f4308" - integrity sha512-/Xu09O0H3UKEjgB23FRzPeOe3ygoSKCSeXB0ECe/h0aCBdY37pjZIlGqMkOg0MwPow/FEcEY7zzZ2/fZTW+AkA== +"@angular/common@10.0.2": + version "10.0.2" + resolved "https://registry.yarnpkg.com/@angular/common/-/common-10.0.2.tgz#8d5422b3a3e1bc405606476b90b0caffc9c9155a" + integrity sha512-zpNB2XD6jinXZjfihoO5Q1Yg7urfpZTt/fitdmwFHCcQ/1qZ9T2BVh8+VqVRkh6Pjxmtvu0uPnJ1a/aZ5f9r9A== dependencies: tslib "^2.0.0" -"@angular/compiler-cli@10.0.0-rc.6": - version "10.0.0-rc.6" - resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-10.0.0-rc.6.tgz#3aaeaa453003636f1cfeb1929749219b4e704bee" - integrity sha512-W3RZbi2x/iNPGUzIkOte2jnfczbzgbVVkIxfBNrI5h+8cuWAnuSJzp2ms75UnHHQQqG48a2xRO71wGHvOOPoJQ== +"@angular/compiler-cli@10.0.2": + version "10.0.2" + resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-10.0.2.tgz#8f178a03989e0018890c52807df9e3e03faaf47a" + integrity sha512-LGX86k1hOyaw5aPCjFfoLuPhVLKMENOdCBeNBzZB+H2CUGHfv8OWFB1EzjZO1N07VGR7JoMx9ZWSP7ornhuS4Q== dependencies: canonical-path "1.0.0" chokidar "^3.0.0" @@ -117,61 +117,68 @@ tslib "^2.0.0" yargs "15.3.0" -"@angular/compiler@10.0.0-rc.6": - version "10.0.0-rc.6" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-10.0.0-rc.6.tgz#0c00319654bc9320897468a45ee95d80bb121b21" - integrity sha512-3XfoBCmNiDewO8y3uW/N+7v23FGoC1GGl8MHewPeRuOQVsDYcEL0xKkCco5GL+f83Bp80o79N7oog2vbiNrwSg== +"@angular/compiler@10.0.2": + version "10.0.2" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-10.0.2.tgz#1056af84ad76763f03228aa3a60b63a5cd775944" + integrity sha512-TNE5ESDlRCVneb/K62HOEgLpxuZZTlw8RcmOy5vt3SngEVc576OE/aYsEA6MCwTlqj16GLSS3jGm9HBJcBKUVw== dependencies: tslib "^2.0.0" -"@angular/core@10.0.0-rc.6": - version "10.0.0-rc.6" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-10.0.0-rc.6.tgz#7858cb81affb377153bc6715e08861d333e1b14d" - integrity sha512-kTjvoQMqNw4Igt2lI7swvqujR6KOHeELVEV09cvczosUmMH2uKeuz9IPsH+0aNZdX1L1C9JvkBGyA7McoL2zUQ== +"@angular/core@10.0.2": + version "10.0.2" + resolved "https://registry.yarnpkg.com/@angular/core/-/core-10.0.2.tgz#d2d2c2dd4a9e80dcccc63c274f13ab7397ee5a3b" + integrity sha512-r4M1D2NOdkmmFyvYLHRYSIBKTGNXQarZHDZcm5oEq2eTsRVe2u9MYIeOpHKeVQCQK7XKQVB13IZQP3XpUvljFg== dependencies: tslib "^2.0.0" -"@angular/forms@10.0.0-rc.6": - version "10.0.0-rc.6" - resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-10.0.0-rc.6.tgz#be5c919690c00dcb389f80d4a5db2385f57188a3" - integrity sha512-QVjyVRx821Qf2ENq6BEzUVQuyjg9nIHzXaYGbYiqteqFzUvjYo87MV71rsfErwKP0PJ2EOhSTJ5Cd+UR7bsNcg== +"@angular/forms@10.0.2": + version "10.0.2" + resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-10.0.2.tgz#fa443f73156640664a9e018aaeb42f85d6d20fcb" + integrity sha512-qnfApb5Q58SFdl8za8i6ijvP0UfVGxxTtIVnf8czVU5Jz5/KYDbPeChVw/aPl3hfXq8jt0Q6Yl99aAm/BNyhpQ== dependencies: tslib "^2.0.0" -"@angular/material@10.0.0-rc.2": - version "10.0.0-rc.2" - resolved "https://registry.yarnpkg.com/@angular/material/-/material-10.0.0-rc.2.tgz#fa0e4a7899bc20c8563fea037d50aedebe243968" - integrity sha512-knE7t3z6Y9iDnXLX2JqsWwm1UnJHoLkZECqUJ7oh8k5asOnaPbbtLnrjqEe9QUh5Hjk9jKVYkEQdRosIIJSJ9A== +"@angular/material@10.0.1": + version "10.0.1" + resolved "https://registry.yarnpkg.com/@angular/material/-/material-10.0.1.tgz#f59988499d20ee4ab93292d7e9a9d16ce24839f0" + integrity sha512-4xGIupOiPbyYG/tTbVhgjATRZSRf+Xj2FGkX3csSlIOvhrFtN1B9gTlcbOjzWHPpWTFChZALzMXA/841KA9QqA== dependencies: tslib "^2.0.0" -"@angular/platform-browser-dynamic@10.0.0-rc.6": - version "10.0.0-rc.6" - resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-10.0.0-rc.6.tgz#7089e8755640b1097cefd15ebfe1b201252bf4fe" - integrity sha512-+f7uOk0NlH5Wt0WShbL/XJUgJBisbBknWDTSoEc+qyeqfUGiwFa88b791v0Al/tt7aB6c0Dsbe2T3VYi6Gkwrg== +"@angular/platform-browser-dynamic@10.0.2": + version "10.0.2" + resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-10.0.2.tgz#b752e2110e5a4316087ce7922227b453e423c144" + integrity sha512-R1rt1/Ynm0DHgzMBcduCPoDg2y3MrYZVgT+N0DLobr2nCaVD74vGsJBVCRv7/m1sdCxyhPlOvq8Bm5sRauw2fw== dependencies: tslib "^2.0.0" -"@angular/platform-browser@10.0.0-rc.6": - version "10.0.0-rc.6" - resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-10.0.0-rc.6.tgz#30f7e078f0bea0534d2c223aed2203068d616019" - integrity sha512-xClpudzXUaqFh587WqS5CrUVEquof/2KxDiyLMN8b5EYSd2zFj6t/u9qqhEA37i3c/aGoO2N3AKOMCCElfWJ4g== +"@angular/platform-browser@10.0.2": + version "10.0.2" + resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-10.0.2.tgz#518db3bdff9692cc4ec0c871f3305218da66aebd" + integrity sha512-FLS3fYSuWvrDc7PiVCvs4joWZZxDe9+alJi90Sub1oBS/EnxmZpkS0Gr7zQv4MjAvVhNCVoTzL3CaV/SIoZqaw== dependencies: tslib "^2.0.0" -"@angular/platform-server@10.0.0-rc.6": - version "10.0.0-rc.6" - resolved "https://registry.yarnpkg.com/@angular/platform-server/-/platform-server-10.0.0-rc.6.tgz#8a8f74d3dd6917f166daf2b87316f820de3af4b1" - integrity sha512-xLfb9HzGpS6qibB93w8yjwxLf1qFfy8+3zgIOMlp+5wcmO7b4CPvb+j/TeDD0/0rxuBxeUL1zP85Oxtf31Ym0Q== +"@angular/platform-server@10.0.2": + version "10.0.2" + resolved "https://registry.yarnpkg.com/@angular/platform-server/-/platform-server-10.0.2.tgz#f375af59bcc44212a3fb8e3aa5df662794ab4265" + integrity sha512-9kFlVYc+BhaMz48m0blszljdoDe2WK5OisWL2Uiw23acLyYZZovhnFBEJbAje9htB/mXOke6MDXiz98bPHH9LQ== dependencies: domino "^2.1.2" tslib "^2.0.0" xhr2 "^0.2.0" -"@angular/router@10.0.0-rc.6": - version "10.0.0-rc.6" - resolved "https://registry.yarnpkg.com/@angular/router/-/router-10.0.0-rc.6.tgz#6fab8d18a268f70ad18145fcba8e9236ee2aa818" - integrity sha512-HEjqxGEZUvwTrSMR93tIw2iZn7fbmOoDj9JsPDGMevmKlQZBESxWv4et3gCjRwqrln10/bt1q2ssJfpFnQRNng== +"@angular/router@10.0.2": + version "10.0.2" + resolved "https://registry.yarnpkg.com/@angular/router/-/router-10.0.2.tgz#6514540f4f3179d8be3fd23b1f4a0dd02801a314" + integrity sha512-IcA3W+r5T0NC8TM4J9F0VOxG0wr7nJOSef6Qek6utZd6ByLlXxOhBrPIC5Ou+QNZeg9OuI2FBt6coea9jgmNOA== + 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" @@ -827,10 +834,10 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" -"@bazel/angular@^2.0.0-rc.0": - version "2.0.0-rc.0" - resolved "https://registry.yarnpkg.com/@bazel/angular/-/angular-2.0.0-rc.0.tgz#d4f1ea2d0abc98edfe067a09ed4669e611cab090" - integrity sha512-2hayZo6evJ09CET4dS2FHXTs3wjt5sUwmGwtZxiBBYn5PCOnsDbBlla7A6r6tZ6egmtnyZ4Pn3w+C8jLvGyNtQ== +"@bazel/angular@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@bazel/angular/-/angular-3.4.0.tgz#f37b0bd2eea078dc426b682c67e72b52fa5c45bc" + integrity sha512-d/ZR1G40S4C4C8ZQ/tA2TpUMA5H1VdTGn8dA9KbnQUdm8HpDRjWJObAy00HSJ1esnFEHfpymTAMEeqEbP/2NWg== dependencies: "@angular-devkit/architect" "^0.901.7" "@bazel/bazelisk" "^1.4.0" @@ -841,11 +848,6 @@ 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/benchmark-runner@^0.1.0": version "0.1.0" resolved "https://registry.yarnpkg.com/@bazel/benchmark-runner/-/benchmark-runner-0.1.0.tgz#a586394fcf7f2402b381319fbc2750627b5a06f1" @@ -856,10 +858,19 @@ puppeteer "^0.13.0" tempy "^0.2.1" -"@bazel/buildifier@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@bazel/buildifier/-/buildifier-3.3.0.tgz#9c78a5efcea4a38abffdfb18eb8cf9a27babee66" - integrity sha512-Jaraa7jLW1OQBoWtTe2XDiuZwsg/YbWvCTys6nYXXRtNIkyoN6I/YZS4RlZj3nD7XlTMFk0yQD6+jpRpXhB6ZQ== +"@bazel/buildifier@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@bazel/buildifier/-/buildifier-4.0.1.tgz#52cfbad5cbb86e9183a29dde2370cd465730ea0d" + integrity sha512-BTmtvJbeeEVrqRApI1gr5hvPgYcHLpdGJ5EXNXEWO692ztMPSj5fB/dH0xUlaW45jn6LimYx8ymqTMhj3538og== + +"@bazel/concatjs@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@bazel/concatjs/-/concatjs-3.4.0.tgz#b5390f086235610e4b3a1c41af73e28fb34ad691" + integrity sha512-s6E2bFZvihjgYdOhBEv7hsl7gUBxBBh3wUQCIr72hjdlqHd3rk6+rj6mO36IZKZ9za0YCRR+sHoNud7Q98WKjQ== + dependencies: + protobufjs "6.8.8" + source-map-support "0.5.9" + tsutils "2.27.2" "@bazel/ibazel@0.3.1": version "0.3.1" @@ -871,32 +882,30 @@ 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-rc.0": - version "2.0.0-rc.0" - resolved "https://registry.yarnpkg.com/@bazel/karma/-/karma-2.0.0-rc.0.tgz#32947f999617e2c938f6bf92889a64d363f7cd38" - integrity sha512-SkvDVqdCjD0Gn5V1enWqHAnZ83ULffhT+czXSRrPpITaQbbHWxA9IsU1uojzyJIWR3g2xLJcsqsErBHLIM5qCw== - dependencies: - tmp "0.1.0" +"@bazel/ibazel@^0.15.9": + version "0.15.9" + resolved "https://registry.yarnpkg.com/@bazel/ibazel/-/ibazel-0.15.9.tgz#db9dea1831a789bd87b12a2c72b1f5d8dd4853f0" + integrity sha512-37r6bs47UNYcp3jrgXqq//GmX1GJtDPQTok4EZQq/ZMEemvh2S7m1fqe1NjNp0D6LdivUmF4z8wb3LjVaT97cg== -"@bazel/protractor@^2.0.0-rc.0": - version "2.0.0-rc.0" - resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-2.0.0-rc.0.tgz#53f751a8d53e4c795dc568e629f1c56d360cb587" - integrity sha512-+7aXrWOeOvDTyFdrjD1N9NRzmnLtisS3ep2sxv0Z/+XkleX5+IUxI/RMXRhQXflGidf2aOtblUMTMBucC6B1/Q== +"@bazel/protractor@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-3.4.0.tgz#a5ea0ec30aa603f0748524b74f69b1a199d47b07" + integrity sha512-qCNj1VfD01ZcYdpKVMlSS3Fpzajwf4Oz0TZwRDdtu0VFAsNfJwvbXtTHOLbIgftBfF8BREnPd507VPAQ77mgKg== -"@bazel/rollup@^2.0.0-rc.0": - version "2.0.0-rc.0" - resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-2.0.0-rc.0.tgz#b184b9c9947bdfe57ca5167bce4b0ee15d2a321f" - integrity sha512-ZV3UUfOq9/JIPl7nwrR+Domncjd8J/uUPwnQGNwKz4yfS57NnR4A5mFoUjXeCKhPQZukaSt6Pydp2IUqrRGZkw== +"@bazel/rollup@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-3.4.0.tgz#cdecb2b90535ef51fb3d56cc8bc19996918bac1a" + integrity sha512-QKnttbYyEQjRbWrOlkH2JuDnSww+9K7Ppil91zBTtr/qYTGW9XO0v7Ft3cs30s2NIWSGIuKj9/N5as+Uyratrw== -"@bazel/terser@^2.0.0-rc.0": - version "2.0.0-rc.0" - resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-2.0.0-rc.0.tgz#0f62465c44dc9a25a60f6355394e15c8c7466c6a" - integrity sha512-7lUInOkxJHw5DOVuEpYrTtpe7KK3vpC35w5KIPFCdIbCULrgyH0624ahmAKWj0e0152EpUFidmr4eBio0idtaA== +"@bazel/terser@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-3.4.0.tgz#9a25892977f00974e4195ff6cbe71ec0313a77d5" + integrity sha512-E26ijh44aXIXcg3EQEZcL2nkGlWZtMka0gwmYo9bDRyGt6rCRhFuSBC0mz9YCifUhKuACKWXLHPz9wvh1CDkEA== -"@bazel/typescript@^2.0.0-rc.0": - version "2.0.0-rc.0" - resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-2.0.0-rc.0.tgz#2581569b8ad1c7ec35dbe0528c0b7a66dc084af3" - integrity sha512-Lv8p97dNpXsn5cdeMM0afmayJjFHqJL+dR41KrScYQHLvPeF2LMTPI9prgWHFc3XArcEjSN7IK4TCVu4q3ytPw== +"@bazel/typescript@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.4.0.tgz#031d989682ff8605ed8745f31448c2f76a1b653a" + integrity sha512-XlWrlQnsdQHTwsliUAf4mySHOgqRY2S57LKG2rKRjm+a015Lzlmxo6jRQaxjr68UmuhmlklRw0WfCFxdR81AvQ== dependencies: protobufjs "6.8.8" semver "5.6.0" @@ -973,21 +982,56 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= -"@schematics/angular@10.0.0-rc.4": - version "10.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-10.0.0-rc.4.tgz#edb18cd1a67feaef45be1bd664dbba22037e570f" - integrity sha512-hDqCha5FaqFl5PPTlYcRdeCyxXBR2UebfXGQxDD63VpNIugcizHOUDndq/4RW/d2r662r16TaFq8OyiFI7J9Lw== +"@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" + integrity sha512-m7Pxz4guAMbe7NASKCPUNxvUX/LeieDjGsXwIt09tVE4dEi9yqJP5zq8kOnZEiLKKflP7GoB65RNex4dTxsydw== dependencies: - "@angular-devkit/core" "10.0.0-rc.4" - "@angular-devkit/schematics" "10.0.0-rc.4" + "@angular-devkit/core" "10.0.0" + "@angular-devkit/schematics" "10.0.0" -"@schematics/update@0.1000.0-rc.4": - version "0.1000.0-rc.4" - resolved "https://registry.yarnpkg.com/@schematics/update/-/update-0.1000.0-rc.4.tgz#75915cdf4e7537f8c49f39bb677cffb832e1d33b" - integrity sha512-QSTycSetXtkFSDZ7XXRz7CX2i2LHG2XZKOlYFQhFKJGXuAI+mw9TumA6oWLdUOXwiLoQoDKdctV0kn81+Cojag== +"@schematics/update@0.1000.0": + version "0.1000.0" + resolved "https://registry.yarnpkg.com/@schematics/update/-/update-0.1000.0.tgz#f9f92cd8cb4da3970216782023f35db6672559ff" + integrity sha512-snjz7sQCOn4Xi66XQREXZx9K6R/vAnUfdyO5nXekls8+E+MIowlP+gqHM0whi8qJDwCLd9maYmeVsD6XZaGImQ== dependencies: - "@angular-devkit/core" "10.0.0-rc.4" - "@angular-devkit/schematics" "10.0.0-rc.4" + "@angular-devkit/core" "10.0.0" + "@angular-devkit/schematics" "10.0.0" "@yarnpkg/lockfile" "1.1.0" ini "1.3.5" npm-package-arg "^8.0.0" @@ -1001,7 +1045,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 +1080,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" "*" @@ -1048,7 +1092,7 @@ resolved "https://registry.yarnpkg.com/@types/selenium-webdriver/-/selenium-webdriver-3.0.16.tgz#50a4755f8e33edacd9c406729e9b930d2451902a" integrity sha512-lMC2G0ItF2xv4UCiwbJGbnJlIuUixHrioOhNGHSCsYCJ8l4t9hMCUimCytvFv7qy6AfSzRxhRHoGa+UqaqwyeA== -"@yarnpkg/lockfile@1.1.0", "@yarnpkg/lockfile@^1.1.0": +"@yarnpkg/lockfile@1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== @@ -1082,11 +1126,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" @@ -1839,11 +1878,6 @@ ci-info@^1.5.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== -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== - cjson@^0.3.1: version "0.3.3" resolved "https://registry.yarnpkg.com/cjson/-/cjson-0.3.3.tgz#a92d9c786e5bf9b930806329ee05d5d3261b4afa" @@ -1999,6 +2033,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" @@ -2360,6 +2399,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" @@ -2676,10 +2725,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" @@ -2994,14 +3043,6 @@ find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -find-yarn-workspace-root@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-1.2.1.tgz#40eb8e6e7c2502ddfaa2577c176f221422f860db" - integrity sha512-dVtfb0WuQG+8Ag2uWkbG79hOUzEsRrhBzgfn86g2sJPkzmcpGdghbNTfUKGTxymFrY/tLIodDzLoW9nOJ4FY8Q== - dependencies: - fs-extra "^4.0.3" - micromatch "^3.1.4" - firebase-tools@7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/firebase-tools/-/firebase-tools-7.1.0.tgz#dcde117e70d021d163616e8bcd02abead5d5c1e1" @@ -3161,15 +3202,6 @@ fs-extra@^0.30.0: path-is-absolute "^1.0.0" rimraf "^2.2.8" -fs-extra@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" - integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - fs-extra@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" @@ -3799,13 +3831,6 @@ is-ci@^1.0.10: dependencies: ci-info "^1.5.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" @@ -4342,13 +4367,6 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== -klaw-sync@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-6.0.0.tgz#1fd2cfd56ebb6250181114f0a581167099c2b28c" - integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ== - dependencies: - graceful-fs "^4.1.11" - klaw@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" @@ -5393,24 +5411,6 @@ pascalcase@^0.1.1: resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= -patch-package@^6.2.2: - 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" - cross-spawn "^6.0.5" - find-yarn-workspace-root "^1.2.1" - fs-extra "^7.0.1" - is-ci "^2.0.0" - klaw-sync "^6.0.0" - minimist "^1.2.0" - rimraf "^2.6.3" - semver "^5.6.0" - slash "^2.0.0" - tmp "^0.0.33" - path-dirname@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" @@ -5468,6 +5468,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" @@ -5937,13 +5942,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" @@ -6012,43 +6024,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" @@ -6859,13 +6840,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/browserslist b/examples/angular_bazel_architect/.browserslistrc similarity index 100% rename from examples/angular_bazel_architect/browserslist rename to examples/angular_bazel_architect/.browserslistrc diff --git a/examples/angular_bazel_architect/BUILD.bazel b/examples/angular_bazel_architect/BUILD.bazel index d55162342e..5bfdcf0654 100644 --- a/examples/angular_bazel_architect/BUILD.bazel +++ b/examples/angular_bazel_architect/BUILD.bazel @@ -1,9 +1,29 @@ load("@npm//@angular-devkit/architect-cli:index.bzl", "architect", "architect_test") -exports_files([ - "tsconfig.json", - "angular.json", -]) +# These dependencies are needed for any ng command +filegroup( + name = "common_deps", + srcs = [ + "angular.json", + "tsconfig.json", + ], + 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", @@ -20,22 +40,29 @@ architect( "src/**/*.spec.ts", "src/test.ts", ], - ) + [ - "angular.json", - "browserslist", + ) + 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", - "tsconfig.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, ) @@ -46,25 +73,16 @@ architect_test( configuration_env_vars = ["NG_BUILD_CACHE"], data = glob([ "src/**/*", - ]) + [ - "angular.json", + ]) + APPLICATION_DEPS + [ "karma.conf.js", "tsconfig.spec.json", - "tsconfig.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", @@ -84,33 +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/**", - ]) + [ - "angular.json", - "browserslist", + ]) + APPLICATION_DEPS + [ "tsconfig.app.json", - "tsconfig.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", @@ -131,8 +140,7 @@ architect( "src/**/*", "e2e/src/**/*", ]) + [ - "angular.json", - "tsconfig.json", + "//:common_deps", "tsconfig.spec.json", "tsconfig.app.json", "tslint.json", @@ -159,18 +167,29 @@ architect( "src/**/*.spec.ts", "src/test.ts", ], - ) + [ - "angular.json", - "browserslist", + ) + 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", - "tsconfig.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 a9de76cc01..e74687d58b 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 = "790af2f3739871fedfb5721263e145e6ca6559c3c90bcaf6f3482a165d411827", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.0-rc.0/rules_nodejs-2.0.0-rc.0.tar.gz"], + sha256 = "1134ec9b7baee008f1d54f0483049a97e53a57cd3913ec9d6db625549c98395a", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.4.0/rules_nodejs-3.4.0.tar.gz"], ) # The yarn_install rule runs yarn anytime the package.json or yarn.lock file changes. @@ -23,7 +23,7 @@ load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") yarn_install( # Name this npm so that Bazel Label references look like @npm//package name = "npm", - data = ["//:patches/@angular-devkit+architect-cli+0.900.1.patch"], + data = ["//:patches/@angular-devkit+architect-cli+0.1102.2.patch"], package_json = "//:package.json", # Turn off symlink_node_modules here as it causes extreme flakiness on buildkite # macos CI with missing files in node_modules. diff --git a/examples/angular_bazel_architect/angular.json b/examples/angular_bazel_architect/angular.json index 3c6d44a98b..f89ae427b0 100644 --- a/examples/angular_bazel_architect/angular.json +++ b/examples/angular_bazel_architect/angular.json @@ -45,7 +45,6 @@ "optimization": true, "outputHashing": "all", "sourceMap": false, - "extractCss": true, "namedChunks": false, "aot": true, "extractLicenses": true, @@ -136,7 +135,7 @@ "prefix": "lib", "architect": { "build": { - "builder": "@angular-devkit/build-ng-packagr:build", + "builder": "@angular-devkit/build-angular:ng-packagr", "options": { "tsConfig": "projects/frontend-lib/tsconfig.lib.json", "project": "projects/frontend-lib/ng-package.js" diff --git a/examples/angular_bazel_architect/e2e/tsconfig.json b/examples/angular_bazel_architect/e2e/tsconfig.json index 39b800f789..c92199cfd6 100644 --- a/examples/angular_bazel_architect/e2e/tsconfig.json +++ b/examples/angular_bazel_architect/e2e/tsconfig.json @@ -3,7 +3,7 @@ "compilerOptions": { "outDir": "../out-tsc/e2e", "module": "commonjs", - "target": "es5", + "target": "es2018", "types": [ "jasmine", "jasminewd2", diff --git a/examples/angular_bazel_architect/package.json b/examples/angular_bazel_architect/package.json index 240577b9f7..7f9f62ae89 100644 --- a/examples/angular_bazel_architect/package.json +++ b/examples/angular_bazel_architect/package.json @@ -8,50 +8,50 @@ "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": { - "@angular-devkit/architect-cli": "0.900.1", - "@angular/animations": "9.0.0", - "@angular/common": "9.0.0", - "@angular/compiler": "9.0.0", - "@angular/core": "9.0.0", - "@angular/forms": "9.0.0", - "@angular/platform-browser": "9.0.0", - "@angular/platform-browser-dynamic": "9.0.0", - "@angular/router": "9.0.0", + "@angular/animations": "11.2.3", + "@angular/common": "11.2.3", + "@angular/compiler": "11.2.3", + "@angular/core": "11.2.3", + "@angular/forms": "11.2.3", + "@angular/platform-browser": "11.2.3", + "@angular/platform-browser-dynamic": "11.2.3", + "@angular/router": "11.2.3", "mime": "^2.4.4", "patch-package": "^6.2.0", "rxjs": "~6.5.0", - "tslib": "^1.10.0", - "zone.js": "~0.10.1" + "tslib": "^2.0.0", + "zone.js": "~0.10.3" }, "devDependencies": { - "@angular-devkit/build-angular": "0.900.1", - "@angular-devkit/build-ng-packagr": "0.900.1", - "@angular/cli": "9.0.1", - "@angular/compiler-cli": "9.0.0", - "@angular/language-service": "9.0.0", - "@bazel/bazelisk": "^1.5.0", - "@bazel/buildifier": "^3.3.0", - "@bazel/ibazel": "^0.13.1", - "@types/jasmine": "~3.3.8", + "@angular-devkit/architect-cli": "0.1102.2", + "@angular-devkit/build-angular": "0.1102.2", + "@angular/cli": "11.2.2", + "@angular/compiler-cli": "11.2.3", + "@angular/language-service": "11.2.3", + "@bazel/bazelisk": "^1.7.5", + "@bazel/buildifier": "^4.0.1", + "@bazel/ibazel": "^0.15.9", + "@types/jasmine": "~3.6.0", "@types/jasminewd2": "~2.0.3", "@types/node": "12.12.6", - "codelyzer": "^5.0.0", + "codelyzer": "^6.0.0", "html-webpack-plugin": "^3.2.0", - "jasmine-core": "~3.4.0", - "jasmine-spec-reporter": "~4.2.1", - "karma": "~4.1.0", - "karma-chrome-launcher": "~2.2.0", - "karma-coverage-istanbul-reporter": "~2.0.1", - "karma-jasmine": "~2.0.1", - "karma-jasmine-html-reporter": "^1.4.0", - "ng-packagr": "^9.0.0", - "protractor": "~5.4.0", + "jasmine-core": "~3.6.0", + "jasmine-spec-reporter": "~5.0.0", + "karma": "~6.1.1", + "karma-chrome-launcher": "~3.1.0", + "karma-coverage-istanbul-reporter": "~3.0.2", + "karma-jasmine": "~4.0.0", + "karma-jasmine-html-reporter": "^1.5.0", + "ng-packagr": "^11.2.4", + "protractor": "~7.0.0", "ts-node": "~7.0.0", - "tslint": "~5.15.0", - "typescript": "~3.6.3" + "tslint": "~6.1.0", + "typescript": "~4.1.5" } } diff --git a/examples/angular_bazel_architect/patches/@angular-devkit+architect-cli+0.1102.2.patch b/examples/angular_bazel_architect/patches/@angular-devkit+architect-cli+0.1102.2.patch new file mode 100644 index 0000000000..21e25ce3c0 --- /dev/null +++ b/examples/angular_bazel_architect/patches/@angular-devkit+architect-cli+0.1102.2.patch @@ -0,0 +1,18 @@ +diff --git a/node_modules/@angular-devkit/architect-cli/bin/architect.js b/node_modules/@angular-devkit/architect-cli/bin/architect.js +index 3ec3d0a..088459d 100755 +--- a/node_modules/@angular-devkit/architect-cli/bin/architect.js ++++ b/node_modules/@angular-devkit/architect-cli/bin/architect.js +@@ -74,6 +74,13 @@ async function _executeTarget(parentLogger, workspace, root, argv, registry) { + const { _, ...options } = argv; + const run = await architect.scheduleTarget(targetSpec, options, { logger }); + const bars = new progress_1.MultiProgressBar(':name :bar (:current/:total) :status'); ++ const exit = process.exit.bind(process); ++ process.exit = (code) => { ++ if(code != 0) { ++ console.error('Exiting with code ', code, new Error().stack); ++ } ++ exit(code); ++ }; + run.progress.subscribe(update => { + const data = bars.get(update.id) || { + id: update.id, diff --git a/examples/angular_bazel_architect/patches/@angular-devkit+architect-cli+0.900.1.patch b/examples/angular_bazel_architect/patches/@angular-devkit+architect-cli+0.900.1.patch deleted file mode 100644 index 6eb38d963a..0000000000 --- a/examples/angular_bazel_architect/patches/@angular-devkit+architect-cli+0.900.1.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff --git a/node_modules/@angular-devkit/architect-cli/bin/architect.js b/node_modules/@angular-devkit/architect-cli/bin/architect.js -index 65a779f..ba9f44c 100755 ---- a/node_modules/@angular-devkit/architect-cli/bin/architect.js -+++ b/node_modules/@angular-devkit/architect-cli/bin/architect.js -@@ -70,6 +70,13 @@ async function _executeTarget(parentLogger, workspace, root, argv, registry) { - logger.subscribe(entry => logs.push({ ...entry, message: `${entry.name}: ` + entry.message })); - const run = await architect.scheduleTarget(targetSpec, argv, { logger }); - const bars = new progress_1.MultiProgressBar(':name :bar (:current/:total) :status'); -+ const exit = process.exit.bind(process); -+ process.exit = (code) => { -+ if(code != 0) { -+ console.error('Exiting with code ', code, new Error().stack); -+ } -+ exit(code); -+ }; - run.progress.subscribe(update => { - const data = bars.get(update.id) || { - id: update.id, -@@ -154,8 +161,6 @@ async function main(args) { - const registry = new core_1.schema.CoreSchemaRegistry(); - registry.addPostTransform(core_1.schema.transforms.addUndefinedDefaults); - const { workspace } = await core_1.workspaces.readWorkspace(configFilePath, core_1.workspaces.createWorkspaceHost(new node_2.NodeJsSyncHost())); -- // Clear the console. -- process.stdout.write('\u001Bc'); - return await _executeTarget(logger, workspace, root, argv, registry); - } - main(process.argv.slice(2)).then(code => { diff --git a/examples/angular_bazel_architect/projects/frontend-lib/BUILD.bazel b/examples/angular_bazel_architect/projects/frontend-lib/BUILD.bazel index 59ef163a22..e3aaa01367 100644 --- a/examples/angular_bazel_architect/projects/frontend-lib/BUILD.bazel +++ b/examples/angular_bazel_architect/projects/frontend-lib/BUILD.bazel @@ -19,19 +19,18 @@ architect( "src/test.ts", ], ) + [ + "//:common_deps", "ng-package.js", "package.json", "tsconfig.lib.json", "tsconfig.lib.prod.json", - "@angular_bazel_architect//:angular.json", - "@angular_bazel_architect//:tsconfig.json", "@npm//@angular/cli", "@npm//@angular/core", "@npm//zone.js", "@npm//tslib", "@npm//typescript", "@npm//@angular-devkit/architect-cli", - "@npm//@angular-devkit/build-ng-packagr", + "@npm//@angular-devkit/build-angular", ], output_dir = True, ) @@ -42,10 +41,9 @@ architect_test( data = glob([ "src/**/*", ]) + [ + "//:common_deps", "karma.conf.js", "tsconfig.spec.json", - "@angular_bazel_architect//:angular.json", - "@angular_bazel_architect//:tsconfig.json", "@npm//@types/jasmine", "@npm//@types/node", "@npm//@angular/cli", diff --git a/examples/angular_bazel_architect/projects/frontend-lib/ng-package.js b/examples/angular_bazel_architect/projects/frontend-lib/ng-package.js index 28ed094766..b111f370cd 100644 --- a/examples/angular_bazel_architect/projects/frontend-lib/ng-package.js +++ b/examples/angular_bazel_architect/projects/frontend-lib/ng-package.js @@ -1,10 +1,10 @@ - const { resolve } = require('path'); +const [outputPath] = process.argv.slice(-1); + module.exports = { - dest: resolve(process.argv.pop()), + dest: resolve(outputPath), lib: { entryFile: 'src/public-api.ts' } } - diff --git a/examples/angular_bazel_architect/projects/frontend-lib/package.json b/examples/angular_bazel_architect/projects/frontend-lib/package.json index d80eb9d0d4..45b5ae6769 100644 --- a/examples/angular_bazel_architect/projects/frontend-lib/package.json +++ b/examples/angular_bazel_architect/projects/frontend-lib/package.json @@ -3,7 +3,9 @@ "version": "0.0.1", "peerDependencies": { "@angular/common": "^9.0.0", - "@angular/core": "^9.0.0", - "tslib": "^1.10.0" + "@angular/core": "^9.0.0" +}, + "dependencies": { + "tslib": "^2.0.0" } } \ No newline at end of file diff --git a/examples/angular_bazel_architect/projects/frontend-lib/src/lib/frontend-lib.component.spec.ts b/examples/angular_bazel_architect/projects/frontend-lib/src/lib/frontend-lib.component.spec.ts index 73caca1a94..daca081b6c 100644 --- a/examples/angular_bazel_architect/projects/frontend-lib/src/lib/frontend-lib.component.spec.ts +++ b/examples/angular_bazel_architect/projects/frontend-lib/src/lib/frontend-lib.component.spec.ts @@ -1,4 +1,4 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { FrontendLibComponent } from './frontend-lib.component'; @@ -6,7 +6,7 @@ describe('FrontendLibComponent', () => { let component: FrontendLibComponent; let fixture: ComponentFixture; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ declarations: [ FrontendLibComponent ] }) diff --git a/examples/angular_bazel_architect/projects/frontend-lib/tsconfig.lib.json b/examples/angular_bazel_architect/projects/frontend-lib/tsconfig.lib.json index 4b5d4afd4f..7593e1d0b2 100644 --- a/examples/angular_bazel_architect/projects/frontend-lib/tsconfig.lib.json +++ b/examples/angular_bazel_architect/projects/frontend-lib/tsconfig.lib.json @@ -2,6 +2,7 @@ "extends": "../../tsconfig.json", "compilerOptions": { "outDir": "../../out-tsc/lib", + "declarationMap": true, "target": "es2015", "declaration": true, "inlineSources": true, diff --git a/examples/angular_bazel_architect/projects/frontend-lib/tsconfig.lib.prod.json b/examples/angular_bazel_architect/projects/frontend-lib/tsconfig.lib.prod.json index cbae794224..04c0e66277 100644 --- a/examples/angular_bazel_architect/projects/frontend-lib/tsconfig.lib.prod.json +++ b/examples/angular_bazel_architect/projects/frontend-lib/tsconfig.lib.prod.json @@ -1,5 +1,8 @@ { "extends": "./tsconfig.lib.json", + "compilerOptions": { + "declarationMap": false + }, "angularCompilerOptions": { "enableIvy": false } diff --git a/examples/angular_bazel_architect/projects/frontend-lib/yarn.lock b/examples/angular_bazel_architect/projects/frontend-lib/yarn.lock new file mode 100644 index 0000000000..0f26399a11 --- /dev/null +++ b/examples/angular_bazel_architect/projects/frontend-lib/yarn.lock @@ -0,0 +1,8 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +tslib@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" + integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== diff --git a/examples/angular_bazel_architect/src/app/app.component.spec.ts b/examples/angular_bazel_architect/src/app/app.component.spec.ts index 1150ce2a7c..a2d983d596 100644 --- a/examples/angular_bazel_architect/src/app/app.component.spec.ts +++ b/examples/angular_bazel_architect/src/app/app.component.spec.ts @@ -1,10 +1,10 @@ -import {async, TestBed} from '@angular/core/testing'; +import { TestBed, waitForAsync } from '@angular/core/testing'; import {FrontendLibModule} from 'frontend-lib'; import {AppComponent} from './app.component'; describe('AppComponent', () => { - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed .configureTestingModule({ imports: [FrontendLibModule], diff --git a/examples/angular_bazel_architect/tsconfig.json b/examples/angular_bazel_architect/tsconfig.json index 30956ae7ea..a409145307 100644 --- a/examples/angular_bazel_architect/tsconfig.json +++ b/examples/angular_bazel_architect/tsconfig.json @@ -7,7 +7,7 @@ "declaration": false, "downlevelIteration": true, "experimentalDecorators": true, - "module": "esnext", + "module": "es2020", "moduleResolution": "node", "importHelpers": true, "target": "es2015", diff --git a/examples/angular_bazel_architect/tslint.json b/examples/angular_bazel_architect/tslint.json index c8d70f1520..58a97b08a5 100644 --- a/examples/angular_bazel_architect/tslint.json +++ b/examples/angular_bazel_architect/tslint.json @@ -1,8 +1,16 @@ { "extends": "tslint:recommended", "rules": { + "align": { + "options": [ + "parameters", + "statements" + ] + }, "array-type": false, "arrow-parens": false, + "arrow-return-shorthand": true, + "curly": true, "deprecation": { "severity": "warning" }, @@ -21,10 +29,17 @@ "app", "kebab-case" ], + "eofline": true, "import-blacklist": [ true, "rxjs/Rx" ], + "import-spacing": true, + "indent": { + "options": [ + "spaces" + ] + }, "interface-name": false, "max-classes-per-file": false, "max-line-length": [ @@ -71,6 +86,20 @@ true, "single" ], + "semicolon": { + "options": [ + "always" + ] + }, + "space-before-function-paren": { + "options": { + "anonymous": "never", + "asyncArrow": "always", + "constructor": "never", + "method": "never", + "named": "never" + } + }, "trailing-comma": false, "no-conflicting-lifecycle": true, "no-host-metadata-property": true, @@ -82,9 +111,44 @@ "no-outputs-metadata-property": true, "template-banana-in-box": true, "template-no-negated-async": true, + "typedef-whitespace": { + "options": [ + { + "call-signature": "nospace", + "index-signature": "nospace", + "parameter": "nospace", + "property-declaration": "nospace", + "variable-declaration": "nospace" + }, + { + "call-signature": "onespace", + "index-signature": "onespace", + "parameter": "onespace", + "property-declaration": "onespace", + "variable-declaration": "onespace" + } + ] + }, "use-lifecycle-interface": true, "use-pipe-transform-interface": true - }, + , "variable-name": { + "options": [ + "ban-keywords", + "check-format", + "allow-pascal-case" + ] + }, + "whitespace": { + "options": [ + "check-branch", + "check-decl", + "check-operator", + "check-separator", + "check-type", + "check-typecast" + ] + } +}, "rulesDirectory": [ "codelyzer" ] diff --git a/examples/angular_bazel_architect/yarn.lock b/examples/angular_bazel_architect/yarn.lock index cea9c0b0a9..f834f90766 100644 --- a/examples/angular_bazel_architect/yarn.lock +++ b/examples/angular_bazel_architect/yarn.lock @@ -2,182 +2,194 @@ # yarn lockfile v1 -"@angular-devkit/architect-cli@0.900.1": - version "0.900.1" - resolved "https://registry.yarnpkg.com/@angular-devkit/architect-cli/-/architect-cli-0.900.1.tgz#36c9a2336db2a3cce39e70d7b31e4af8bf707626" - integrity sha512-Gtf94sfmlOvJw+vtPjSSC7vTV/I+ns3cmxRf6V5lNlXgW2A3Hk1Lu4MzzhqvyXTyr3jnuLfIhRiju9yRkr+d1g== - dependencies: - "@angular-devkit/architect" "0.900.1" - "@angular-devkit/core" "9.0.1" - minimist "1.2.0" +"@angular-devkit/architect-cli@0.1102.2": + version "0.1102.2" + resolved "https://registry.yarnpkg.com/@angular-devkit/architect-cli/-/architect-cli-0.1102.2.tgz#9411a5402c4bd40f35a33ecee68baef5af43a9ff" + integrity sha512-HrWKfjlJoQzt3QSJyGP/5nKPdhdwMDMHmP6pOLfiEGD900CXeAgBv9esq81MYFvfTBI1vf+YWOVUgClGkOg9ig== + dependencies: + "@angular-devkit/architect" "0.1102.2" + "@angular-devkit/core" "11.2.2" + ansi-colors "4.1.1" + minimist "1.2.5" progress "2.0.3" - rxjs "6.5.3" - symbol-observable "1.2.0" - -"@angular-devkit/architect@0.900.1": - version "0.900.1" - resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.900.1.tgz#60a39a388d1af24b64f01c16d852777e955d76da" - integrity sha512-zzB3J0fXFoYeJpgF5tsmZ7byygzjJn1IPiXBdnbNqcMbil1OPOhq+KdD4ZFPyXNwBQ3w02kOwPdNqB++jbPmlQ== - dependencies: - "@angular-devkit/core" "9.0.1" - rxjs "6.5.3" - -"@angular-devkit/build-angular@0.900.1": - version "0.900.1" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-0.900.1.tgz#84e989e98d25b87c06c5fb852fa6a3f4fc723db1" - integrity sha512-e1/EiNI9UAKJxI9+7KA59A15Rkx2QA86evb9iUuwxWGvIsTsN/sg/oXUZA//nTUQTAht+qWJp3I2amd/nyQZLQ== - dependencies: - "@angular-devkit/architect" "0.900.1" - "@angular-devkit/build-optimizer" "0.900.1" - "@angular-devkit/build-webpack" "0.900.1" - "@angular-devkit/core" "9.0.1" - "@babel/core" "7.7.7" - "@babel/generator" "7.7.7" - "@babel/preset-env" "7.7.7" - "@ngtools/webpack" "9.0.1" - ajv "6.10.2" - autoprefixer "9.7.1" - babel-loader "8.0.6" - browserslist "4.8.3" - cacache "13.0.1" - caniuse-lite "1.0.30001020" - circular-dependency-plugin "5.2.0" - copy-webpack-plugin "5.1.1" - core-js "3.6.0" - coverage-istanbul-loader "2.0.3" + rxjs "6.6.3" + symbol-observable "3.0.0" + +"@angular-devkit/architect@0.1102.2": + version "0.1102.2" + resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1102.2.tgz#3b3eb654ae7c8c204b248bba76982ce8de2f7b6c" + integrity sha512-FE7DeT13elqDlELF23QqvEFnT2BkxeC5t31/QW85IN/OR5Tf/q7XEpj7giJXyzKFQ60M3ZzbznZyRz0EqtfaBQ== + dependencies: + "@angular-devkit/core" "11.2.2" + rxjs "6.6.3" + +"@angular-devkit/build-angular@0.1102.2": + version "0.1102.2" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-0.1102.2.tgz#c850818fd8bb4dd4fda6288390868475c4b3236e" + integrity sha512-AjnvHrzkYTzDGzp0r5RmGoP9fyZXtaVFo0598PRusi1oWp1sW6B5FKPWw896iREOlotRXw3dsjqrGwbMcz0qyg== + dependencies: + "@angular-devkit/architect" "0.1102.2" + "@angular-devkit/build-optimizer" "0.1102.2" + "@angular-devkit/build-webpack" "0.1102.2" + "@angular-devkit/core" "11.2.2" + "@babel/core" "7.12.10" + "@babel/generator" "7.12.11" + "@babel/plugin-transform-async-to-generator" "7.12.1" + "@babel/plugin-transform-runtime" "7.12.10" + "@babel/preset-env" "7.12.11" + "@babel/runtime" "7.12.5" + "@babel/template" "7.12.7" + "@jsdevtools/coverage-istanbul-loader" "3.0.5" + "@ngtools/webpack" "11.2.2" + ansi-colors "4.1.1" + autoprefixer "10.2.4" + babel-loader "8.2.2" + browserslist "^4.9.1" + cacache "15.0.5" + caniuse-lite "^1.0.30001032" + circular-dependency-plugin "5.2.2" + copy-webpack-plugin "6.3.2" + core-js "3.8.3" + critters "0.0.7" + css-loader "5.0.1" cssnano "4.1.10" - file-loader "4.2.0" - find-cache-dir "3.0.0" - glob "7.1.5" - jest-worker "24.9.0" + file-loader "6.2.0" + find-cache-dir "3.3.1" + glob "7.1.6" + https-proxy-agent "5.0.0" + inquirer "7.3.3" + jest-worker "26.6.2" karma-source-map-support "1.4.0" - less "3.10.3" - less-loader "5.0.0" - license-webpack-plugin "2.1.3" - loader-utils "1.2.3" - magic-string "0.25.4" - mini-css-extract-plugin "0.8.0" + less "4.1.1" + less-loader "7.3.0" + license-webpack-plugin "2.3.11" + loader-utils "2.0.0" + mini-css-extract-plugin "1.3.5" minimatch "3.0.4" - open "7.0.0" - parse5 "4.0.0" - postcss "7.0.21" - postcss-import "12.0.1" - postcss-loader "3.0.0" - raw-loader "3.1.0" - regenerator-runtime "0.13.3" - rimraf "3.0.0" - rollup "1.25.2" - rxjs "6.5.3" - sass "1.23.3" - sass-loader "8.0.0" - semver "6.3.0" + open "7.4.0" + ora "5.3.0" + parse5-html-rewriting-stream "6.0.1" + pnp-webpack-plugin "1.6.4" + postcss "8.2.4" + postcss-import "14.0.0" + postcss-loader "4.2.0" + raw-loader "4.0.2" + regenerator-runtime "0.13.7" + resolve-url-loader "3.1.2" + rimraf "3.0.2" + rollup "2.38.4" + rxjs "6.6.3" + sass "1.32.6" + sass-loader "10.1.1" + semver "7.3.4" source-map "0.7.3" - source-map-loader "0.2.4" - source-map-support "0.5.16" - speed-measure-webpack-plugin "1.3.1" - style-loader "1.0.0" - stylus "0.54.7" - stylus-loader "3.0.2" - terser "4.5.1" - terser-webpack-plugin "2.3.3" + source-map-loader "1.1.3" + source-map-support "0.5.19" + speed-measure-webpack-plugin "1.4.2" + style-loader "2.0.0" + stylus "0.54.8" + stylus-loader "4.3.3" + terser "5.5.1" + terser-webpack-plugin "4.2.3" + text-table "0.2.0" tree-kill "1.2.2" - webpack "4.41.2" + webpack "4.44.2" webpack-dev-middleware "3.7.2" - webpack-dev-server "3.9.0" - webpack-merge "4.2.2" - webpack-sources "1.4.3" - webpack-subresource-integrity "1.3.4" - worker-plugin "3.2.0" + webpack-dev-server "3.11.2" + webpack-merge "5.7.3" + webpack-sources "2.2.0" + webpack-subresource-integrity "1.5.2" + worker-plugin "5.0.0" + +"@angular-devkit/build-optimizer@0.1102.2": + version "0.1102.2" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-optimizer/-/build-optimizer-0.1102.2.tgz#a306fee0bc648983405320953f05ad1fc60b6b84" + integrity sha512-TCWWqAe+pWZzLp/g2gG8Z5NC8JSgDNfyEuMBWxEUfo1Sm3BluXoz0BbmnietuhXJZ+fPAp9rLLzEGZlHvOlmOA== + dependencies: + loader-utils "2.0.0" + source-map "0.7.3" + tslib "2.1.0" + typescript "4.1.3" + webpack-sources "2.2.0" + +"@angular-devkit/build-webpack@0.1102.2": + version "0.1102.2" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1102.2.tgz#f48501426a5d01b0610dafce33b4eb84d07181e6" + integrity sha512-59CBbwbdN8lI5/whuNeAZHRJxPlOmDc5ux8aJJNwWI9w54fz0ut/MLT3iuPk+WZuKlGdpS1sGkObfZwWen5kIQ== + dependencies: + "@angular-devkit/architect" "0.1102.2" + "@angular-devkit/core" "11.2.2" + rxjs "6.6.3" + +"@angular-devkit/core@11.2.2": + version "11.2.2" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-11.2.2.tgz#c6b40f941b24d2af447831fc958b744316cd7d87" + integrity sha512-LUDO1AdIjereiMh0j5p9xJcdr9ifhbWCPxlZqfu5wHzUfhCx9gO2Lvjp6rZXQ3OedXg5IZUnyxHlzkszQOsgiw== + dependencies: + ajv "6.12.6" + fast-json-stable-stringify "2.1.0" + magic-string "0.25.7" + rxjs "6.6.3" + source-map "0.7.3" -"@angular-devkit/build-ng-packagr@0.900.1": - version "0.900.1" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-ng-packagr/-/build-ng-packagr-0.900.1.tgz#43eb41fba926aea7c46e3b4c497cb4d63f361e4e" - integrity sha512-4gUbQUot8WaqWcUX+FOJiAHoFgD+oyKL5Y2p+3DI0qJHcFPmI9z210Fk4az1Ifp00g9TFxf0YJW3YmZP0oi10A== +"@angular-devkit/schematics@11.2.2": + version "11.2.2" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-11.2.2.tgz#0c8c4b98a30f00649dcbb7794d3783b9a067209f" + integrity sha512-6bIxMwafz/+lwdtcshwOuFfhxTMU4RLma1uxBS34DXupMauPGl0IIXAy5cK9dXPlHLxuGsjeBiOM6eq033RLgw== dependencies: - "@angular-devkit/architect" "0.900.1" - rxjs "6.5.3" + "@angular-devkit/core" "11.2.2" + ora "5.3.0" + rxjs "6.6.3" -"@angular-devkit/build-optimizer@0.900.1": - version "0.900.1" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-optimizer/-/build-optimizer-0.900.1.tgz#b9621a8e6234d3233b61ba9ba86e5d64b8e412b5" - integrity sha512-EnIU+ogiJrUPf8+fuPE5xQ+j/qUZDZ/SmLs8XAOmvoOBpZ0vPNedrHBHCxmV+ACbCxHGmIKQ/ZL29XUYVasteg== +"@angular/animations@11.2.3": + version "11.2.3" + resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-11.2.3.tgz#518183e5f7b8c3b304020ea86d12cc3216142cc9" + integrity sha512-Z6sHIeTeeZrRAW83NI7FO7THF50cPCFkkuvVah3qmCqopY6FuoHKUBEENyGzQGH69LbGFYhEppY8KM/6JtVF6Q== dependencies: - loader-utils "1.2.3" - source-map "0.7.3" - tslib "1.10.0" - typescript "3.6.4" - webpack-sources "1.4.3" - -"@angular-devkit/build-webpack@0.900.1": - version "0.900.1" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.900.1.tgz#1b90c9c87ec26fa8b471ecc17175c5bc5f6c74a4" - integrity sha512-GwV+jht42S2XZZbvy07mXqZ5us9ppbIi/gCL5SiUh+xtSdZGbfE6RoFZXmeOuxBn9FY0vUMTFtKCK5Mx8O3WYg== - dependencies: - "@angular-devkit/architect" "0.900.1" - "@angular-devkit/core" "9.0.1" - rxjs "6.5.3" - -"@angular-devkit/core@9.0.1": - version "9.0.1" - resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-9.0.1.tgz#ef107b0e9eee1a28924cdf92108cdd5ab8df9b69" - integrity sha512-HboJI/x+SJD9clSOAMjHRv0eXAGRAdEaqJGmjDfdFMP2wznfsBiC6cgcHC17oM4jRWFhmWMR8Omc7CjLZJawJg== - dependencies: - ajv "6.10.2" - fast-json-stable-stringify "2.0.0" - magic-string "0.25.4" - rxjs "6.5.3" - source-map "0.7.3" + tslib "^2.0.0" -"@angular-devkit/schematics@9.0.1": - version "9.0.1" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-9.0.1.tgz#a27a2ba2b5fec92b33564bc5078c5f13c969931a" - integrity sha512-Cuub9eJm1TWygKTOowRbxMASA8QWeHWzNEU2V3TqUF1Tqy/iPf4cpuMijkFysXjTn2bi2HA9t26AwQkwymbliA== +"@angular/cli@11.2.2": + version "11.2.2" + resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-11.2.2.tgz#ca56894f1a4d1f4e411408b8185b711614c3195a" + integrity sha512-rOVBzDzrMuOgJY43O46/7yYbncx0egGfr+DMJDQdazePGH1H3INN/eA9gkVcVK53ztCYb9X1sbZKOs9TUhF6nw== dependencies: - "@angular-devkit/core" "9.0.1" - ora "4.0.2" - rxjs "6.5.3" - -"@angular/animations@9.0.0": - version "9.0.0" - resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-9.0.0.tgz#8d2b852c5273bcc161d13f82faaf3566ab562951" - integrity sha512-jB8+SC3vMztW5zt5UYVmtVwqIWE33UyEjbP5JPba3I3bLRK5E059LcJmN1rSdJHItgIAdG9Y1I0WJ6aiSFyp4Q== - -"@angular/cli@9.0.1": - version "9.0.1" - resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-9.0.1.tgz#399cdc4f85256074b808738ba3a4dec4167df53a" - integrity sha512-/nykTIqZq1plxaXVoMzAqjnExGhkYoSoq88AE4Mb31d6n/SW2DFh62C3hze+atI6YLqeFaPhYuA5zG+z3oOXbQ== - dependencies: - "@angular-devkit/architect" "0.900.1" - "@angular-devkit/core" "9.0.1" - "@angular-devkit/schematics" "9.0.1" - "@schematics/angular" "9.0.1" - "@schematics/update" "0.900.1" + "@angular-devkit/architect" "0.1102.2" + "@angular-devkit/core" "11.2.2" + "@angular-devkit/schematics" "11.2.2" + "@schematics/angular" "11.2.2" + "@schematics/update" "0.1102.2" "@yarnpkg/lockfile" "1.1.0" ansi-colors "4.1.1" - debug "^4.1.1" - ini "1.3.5" - inquirer "7.0.0" - npm-package-arg "6.1.1" - npm-pick-manifest "3.0.2" - open "7.0.0" - pacote "9.5.8" - read-package-tree "5.3.1" - rimraf "3.0.0" - semver "6.3.0" - symbol-observable "1.2.0" - universal-analytics "^0.4.20" - uuid "^3.3.2" - -"@angular/common@9.0.0": - version "9.0.0" - resolved "https://registry.yarnpkg.com/@angular/common/-/common-9.0.0.tgz#0e3b2452d42f87d1825a448a31ad72c593ee0785" - integrity sha512-ZMmEClGtUNJwV5CBlqcSHPIsNyz6WU/GvKWFzJ5VZc68oeg1e7lqfNMNIC47TjyolNJ7VSpNlyrKjzfdBlmqVw== - -"@angular/compiler-cli@9.0.0": - version "9.0.0" - resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-9.0.0.tgz#ecce680820725885fed298af69946bdaa12d73d3" - integrity sha512-6L3swd3Z2ceAapmioml6z7yu3bYC2aVm3/rgK7eCoZtPcevuvTpGnXcFSVvNgByV51GntgInThPbMx0xY23Rvw== - dependencies: + debug "4.3.1" + ini "2.0.0" + inquirer "7.3.3" + jsonc-parser "3.0.0" + npm-package-arg "8.1.0" + npm-pick-manifest "6.1.0" + open "7.4.0" + ora "5.3.0" + pacote "11.2.4" + resolve "1.19.0" + rimraf "3.0.2" + semver "7.3.4" + symbol-observable "3.0.0" + universal-analytics "0.4.23" + uuid "8.3.2" + +"@angular/common@11.2.3": + version "11.2.3" + resolved "https://registry.yarnpkg.com/@angular/common/-/common-11.2.3.tgz#e71d645fb6bdef9463f23a551cc072ef276c1d84" + integrity sha512-51gVmr942SZtAFmhVfp7/3fcTQ+Tia7UxWjv6iUtYF3oCvTWbo/J1zki2VNSfmMNKJV8MaMq6XUw8UWbHA0sgQ== + dependencies: + tslib "^2.0.0" + +"@angular/compiler-cli@11.2.3": + version "11.2.3" + resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-11.2.3.tgz#5307215b9aa6e32d772906fd3b2960ba03a7565d" + integrity sha512-ObQVI6q2c0VTWbsDnWJDdUZv2Jz/u1jiQNcrdtu/rjtJARaldEno9dMakN838Q6Nw4FzKUO6uYZXmnvKCUjfxQ== + dependencies: + "@babel/core" "^7.8.6" + "@babel/types" "^7.8.6" canonical-path "1.0.0" chokidar "^3.0.0" convert-source-map "^1.5.1" @@ -188,50 +200,88 @@ reflect-metadata "^0.1.2" semver "^6.3.0" source-map "^0.6.1" - yargs "13.1.0" + sourcemap-codec "^1.4.8" + tslib "^2.0.0" + yargs "^16.1.1" + +"@angular/compiler@11.2.3": + version "11.2.3" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-11.2.3.tgz#72427d57b992bf6840fb7268357a466095caf8eb" + integrity sha512-De8BwtSwPVYGdvQa6CDq2C1SLmB78YjS0t/KNlvfp85cl4Gb3BdjTDsKMkJXkm/3ubnIXi1BaRIsFNVTCCF70Q== + dependencies: + tslib "^2.0.0" "@angular/compiler@9.0.0": version "9.0.0" resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-9.0.0.tgz#87e0bef4c369b6cadae07e3a4295778fc93799d5" integrity sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ== +"@angular/core@11.2.3": + version "11.2.3" + resolved "https://registry.yarnpkg.com/@angular/core/-/core-11.2.3.tgz#7dd59f35e0b2410543a61be6048c474c18a43f40" + integrity sha512-+G7rZj21Mcmf6nWjQ79EwomwEOVQ1WLqw6YvCXWzgJ9ZlVjLi/Sti0/jIzUpgK0E0Fn86yuXw/vgYq5kjGeOcQ== + dependencies: + tslib "^2.0.0" + "@angular/core@9.0.0": version "9.0.0" resolved "https://registry.yarnpkg.com/@angular/core/-/core-9.0.0.tgz#227dc53e1ac81824f998c6e76000b7efc522641e" integrity sha512-6Pxgsrf0qF9iFFqmIcWmjJGkkCaCm6V5QNnxMy2KloO3SDq6QuMVRbN9RtC8Urmo25LP+eZ6ZgYqFYpdD8Hd9w== -"@angular/forms@9.0.0": - version "9.0.0" - resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-9.0.0.tgz#2017e4ddee101fa57dc5dc9ba1139b1f02499422" - integrity sha512-SIYJc0Rgaihow1t+iiwSFGEvvRgssgUuxwIYbMfCp1Sx513K+JX9nVFXqU+dcGj/eF1u5wwYwbvlVyuMQLzmXg== +"@angular/forms@11.2.3": + version "11.2.3" + resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-11.2.3.tgz#57460a110e6601b50362f878fc0f67701c76dc24" + integrity sha512-VfyKV8IxHTclcHQmt5gjGFmKC1kGz7sdNLYsEM+M0y88Bsufh3VIhK4kspfO4nhJxVfh6HFOt1JVQ5bvo6PDlQ== + dependencies: + tslib "^2.0.0" -"@angular/language-service@9.0.0": - version "9.0.0" - resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-9.0.0.tgz#24ba63ae5db566b70f7c40bb148dc37a77aaa373" - integrity sha512-tOMtXY8DFpTWMF77BOTXZmMMtqvdy6fbyOkJSccn6VatcPrNXOs5rKur+KNwdSlK+djjss6Y+LA8fQAvjNvUqw== +"@angular/language-service@11.2.3": + version "11.2.3" + resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-11.2.3.tgz#345217f9bc9fba29567d89504f861d2c849af594" + integrity sha512-6PDInFDTQ2oP1mzD2W4fR5/pPFqbHRikXsNbIKnejeAxzcyoPQ9zxIKl7mmrS4N+8evtZUYLzR5AtHukvjYSpA== -"@angular/platform-browser-dynamic@9.0.0": - version "9.0.0" - resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-9.0.0.tgz#1b87355c20d0b2a046c1914085701a3d5ced52da" - integrity sha512-F1kbEpmDottTemRPEOAz2Te5ABVJ7wypfzBllxqXbdxPHvYLfL8db2dXyiGqABQ3ZFHPLNilrkUTy0sbuuU4OA== +"@angular/platform-browser-dynamic@11.2.3": + version "11.2.3" + resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-11.2.3.tgz#3d7eb15ba4bcc9e227f68f13bf20258fa16efad1" + integrity sha512-QUPCvack7De6u5AqWcW8O6FzczwqoL858R1NlnqojnNbcnN/dCtXtKvvETEEgp/9VMwLfcuLd1BWdBJSah7f6A== + dependencies: + tslib "^2.0.0" -"@angular/platform-browser@9.0.0": - version "9.0.0" - resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-9.0.0.tgz#b9454f29d8edaf024668baa9e07083eef73deac2" - integrity sha512-2PR/o57HjZvKEnAF8ODeqxmeC90oth9dLTMrJNoI5MET0IeErKeI/9Sl5cLQuXC+lSVN5rOMCvDb74VWSno5yw== +"@angular/platform-browser@11.2.3": + version "11.2.3" + resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-11.2.3.tgz#0c6b537500a1c6304829fab19cf8c12daa2b48b9" + integrity sha512-S0IP/kGinIH18+gfnX0gLFLbP0Euw1RBceDt/WipYhUeFZZryQHvot/6KFLFtO+8rVunfrg+UyBiaK65/TT9Og== + dependencies: + tslib "^2.0.0" -"@angular/router@9.0.0": - version "9.0.0" - resolved "https://registry.yarnpkg.com/@angular/router/-/router-9.0.0.tgz#11784fc8ce9cb3314c7ec1083ff9be7c611181c2" - integrity sha512-yyOcStpgN5t8wGRNO85mo0jplXkntP+v2tmSxNx45pahqmofSFm+QCEFa2zHQuMr7NoiGERhd0Tae7NDCCjtjA== +"@angular/router@11.2.3": + version "11.2.3" + resolved "https://registry.yarnpkg.com/@angular/router/-/router-11.2.3.tgz#407a0797845c1cac963663537b30872e39e4b229" + integrity sha512-lRuEIlNj2BcBZ17mt5SZY7v80PsvlS4J6EbKSOFeSYhALM/AQnaaCdrrMlQ1WyEa5bBUabxGT9/zvahBosy2yA== + dependencies: + tslib "^2.0.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5": +"@babel/code-frame@^7.0.0": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== dependencies: "@babel/highlight" "^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.10.4" + +"@babel/code-frame@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" + integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== + dependencies: + "@babel/highlight" "^7.12.13" + "@babel/code-frame@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" @@ -239,23 +289,29 @@ dependencies: "@babel/highlight" "^7.8.3" -"@babel/core@7.7.7": - 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" +"@babel/compat-data@^7.12.7", "@babel/compat-data@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.8.tgz#5b783b9808f15cef71547f1b691f34f8ff6003a6" + integrity sha512-EaI33z19T4qN3xLXsGf48M2cDqa6ei9tPZlfLdb2HC+e/cFtREiRd8hdSqDbwdLB0/+gLwqJmCYASH0z2bUdog== + +"@babel/core@7.12.10": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.10.tgz#b79a2e1b9f70ed3d84bbfb6d8c4ef825f606bccd" + integrity sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.12.10" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helpers" "^7.12.5" + "@babel/parser" "^7.12.10" + "@babel/template" "^7.12.7" + "@babel/traverse" "^7.12.10" + "@babel/types" "^7.12.10" convert-source-map "^1.7.0" debug "^4.1.0" - json5 "^2.1.0" - lodash "^4.17.13" - resolve "^1.3.2" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" + lodash "^4.17.19" semver "^5.4.1" source-map "^0.5.0" @@ -280,17 +336,47 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@7.7.7", "@babel/generator@^7.4.0", "@babel/generator@^7.7.4": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.7.tgz#859ac733c44c74148e1a72980a64ec84b85f4f45" - integrity sha512-/AOIBpHh/JU1l0ZFS4kiRCBnLi6OTHzh0RPk3h9isBxkkqELtQNFi1Vr/tiG9p1yfoUdKVwISuXWQR+hwwM4VQ== +"@babel/core@^7.8.6": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.8.tgz#c191d9c5871788a591d69ea1dc03e5843a3680fb" + integrity sha512-oYapIySGw1zGhEFRd6lzWNLWFX2s5dA/jm+Pw/+59ZdXtjyIuwlXbrId22Md0rgZVop+aVoqow2riXhBLNyuQg== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.13.0" + "@babel/helper-compilation-targets" "^7.13.8" + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helpers" "^7.13.0" + "@babel/parser" "^7.13.4" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + lodash "^4.17.19" + semver "^6.3.0" + source-map "^0.5.0" + +"@babel/generator@7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.11.tgz#98a7df7b8c358c9a37ab07a24056853016aba3af" + integrity sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA== dependencies: - "@babel/types" "^7.7.4" + "@babel/types" "^7.12.11" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/generator@^7.12.10", "@babel/generator@^7.13.0": + version "7.13.9" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.9.tgz#3a7aa96f9efb8e2be42d38d80e2ceb4c64d8de39" + integrity sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw== + dependencies: + "@babel/types" "^7.13.0" jsesc "^2.5.1" - lodash "^4.17.13" source-map "^0.5.0" -"@babel/generator@^7.7.7", "@babel/generator@^7.8.3": +"@babel/generator@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.3.tgz#0e22c005b0a94c1c74eafe19ef78ce53a4d45c03" integrity sha512-WjoPk8hRpDRqqzRpvaR8/gDUPkrnOOeuT2m8cNICJtZH6mwaCo3v0OKMI7Y6SM1pBtyijnLtAL0HDi41pf41ug== @@ -300,63 +386,81 @@ lodash "^4.17.13" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" - integrity sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw== +"@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.8.3" + "@babel/types" "^7.10.4" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz#c84097a427a061ac56a1c30ebf54b7b22d241503" - integrity sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw== +"@babel/helper-annotate-as-pure@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab" + integrity sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw== dependencies: - "@babel/helper-explode-assignable-expression" "^7.8.3" - "@babel/types" "^7.8.3" + "@babel/types" "^7.12.13" -"@babel/helper-call-delegate@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz#de82619898aa605d409c42be6ffb8d7204579692" - integrity sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz#6bc20361c88b0a74d05137a65cac8d3cbf6f61fc" + integrity sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA== dependencies: - "@babel/helper-hoist-variables" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" + "@babel/helper-explode-assignable-expression" "^7.12.13" + "@babel/types" "^7.12.13" -"@babel/helper-create-regexp-features-plugin@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.3.tgz#c774268c95ec07ee92476a3862b75cc2839beb79" - integrity sha512-Gcsm1OHCUr9o9TcJln57xhWHtdXbA2pgQ58S0Lxlks0WMGNXuki4+GLfX0p+L2ZkINUGZvfkz8rzoqJQSthI+Q== +"@babel/helper-compilation-targets@^7.12.5", "@babel/helper-compilation-targets@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.8.tgz#02bdb22783439afb11b2f009814bdd88384bd468" + integrity sha512-pBljUGC1y3xKLn1nrx2eAhurLMA8OqBtBP/JwG4U8skN7kf8/aqwwxpV1N6T0e7r6+7uNitIa/fUxPFagSXp3A== dependencies: - "@babel/helper-regex" "^7.8.3" - regexpu-core "^4.6.0" + "@babel/compat-data" "^7.13.8" + "@babel/helper-validator-option" "^7.12.17" + browserslist "^4.14.5" + semver "^6.3.0" -"@babel/helper-define-map@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz#a0655cad5451c3760b726eba875f1cd8faa02c15" - integrity sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g== +"@babel/helper-create-class-features-plugin@^7.13.0": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.8.tgz#0367bd0a7505156ce018ca464f7ac91ba58c1a04" + integrity sha512-qioaRrKHQbn4hkRKDHbnuQ6kAxmmOF+kzKGnIfxPK4j2rckSJCpKzr/SSTlohSCiE3uAQpNDJ9FIh4baeE8W+w== dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/types" "^7.8.3" - lodash "^4.17.13" + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-member-expression-to-functions" "^7.13.0" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/helper-replace-supers" "^7.13.0" + "@babel/helper-split-export-declaration" "^7.12.13" -"@babel/helper-explode-assignable-expression@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz#a728dc5b4e89e30fc2dfc7d04fa28a930653f982" - integrity sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw== +"@babel/helper-create-regexp-features-plugin@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz#fdd60d88524659a0b6959c0579925e425714f3b8" + integrity sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g== dependencies: - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-regex" "^7.10.4" + regexpu-core "^4.7.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/helper-create-regexp-features-plugin@^7.12.13": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz#a2ac87e9e319269ac655b8d4415e94d38d663cb7" + integrity sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg== dependencies: - "@babel/helper-get-function-arity" "^7.7.4" - "@babel/template" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/helper-annotate-as-pure" "^7.12.13" + regexpu-core "^4.7.1" + +"@babel/helper-explode-assignable-expression@^7.12.13": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz#17b5c59ff473d9f956f40ef570cf3a76ca12657f" + integrity sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA== + dependencies: + "@babel/types" "^7.13.0" + +"@babel/helper-function-name@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a" + integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA== + dependencies: + "@babel/helper-get-function-arity" "^7.12.13" + "@babel/template" "^7.12.13" + "@babel/types" "^7.12.13" "@babel/helper-function-name@^7.8.3": version "7.8.3" @@ -367,12 +471,12 @@ "@babel/template" "^7.8.3" "@babel/types" "^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/helper-get-function-arity@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" + integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== dependencies: - "@babel/types" "^7.7.4" + "@babel/types" "^7.12.13" "@babel/helper-get-function-arity@^7.8.3": version "7.8.3" @@ -381,105 +485,116 @@ dependencies: "@babel/types" "^7.8.3" -"@babel/helper-hoist-variables@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz#1dbe9b6b55d78c9b4183fc8cdc6e30ceb83b7134" - integrity sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg== +"@babel/helper-hoist-variables@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz#5d5882e855b5c5eda91e0cadc26c6e7a2c8593d8" + integrity sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g== dependencies: - "@babel/types" "^7.8.3" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" -"@babel/helper-member-expression-to-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" - integrity sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA== +"@babel/helper-member-expression-to-functions@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.0.tgz#6aa4bb678e0f8c22f58cdb79451d30494461b091" + integrity sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ== dependencies: - "@babel/types" "^7.8.3" + "@babel/types" "^7.13.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/helper-module-imports@^7.12.1", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.12.5": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz#ec67e4404f41750463e455cc3203f6a32e93fcb0" + integrity sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g== dependencies: - "@babel/types" "^7.7.4" + "@babel/types" "^7.12.13" -"@babel/helper-module-imports@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" - integrity sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg== +"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.13.0.tgz#42eb4bd8eea68bab46751212c357bfed8b40f6f1" + integrity sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw== dependencies: - "@babel/types" "^7.8.3" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-replace-supers" "^7.13.0" + "@babel/helper-simple-access" "^7.12.13" + "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/helper-validator-identifier" "^7.12.11" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" + lodash "^4.17.19" -"@babel/helper-module-transforms@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz#d305e35d02bee720fbc2c3c3623aa0c316c01590" - integrity sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q== +"@babel/helper-optimise-call-expression@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea" + integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== dependencies: - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-simple-access" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" - lodash "^4.17.13" - -"@babel/helper-optimise-call-expression@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" - integrity sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ== - dependencies: - "@babel/types" "^7.8.3" + "@babel/types" "^7.12.13" "@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-plugin-utils@^7.10.4": + 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-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af" + integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== + "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== -"@babel/helper-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.8.3.tgz#139772607d51b93f23effe72105b319d2a4c6965" - integrity sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ== +"@babel/helper-regex@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.5.tgz#32dfbb79899073c415557053a19bd055aae50ae0" + integrity sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg== dependencies: - lodash "^4.17.13" + lodash "^4.17.19" -"@babel/helper-remap-async-to-generator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz#273c600d8b9bf5006142c1e35887d555c12edd86" - integrity sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA== +"@babel/helper-remap-async-to-generator@^7.12.1", "@babel/helper-remap-async-to-generator@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz#376a760d9f7b4b2077a9dd05aa9c3927cadb2209" + integrity sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg== dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-wrap-function" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-wrap-function" "^7.13.0" + "@babel/types" "^7.13.0" -"@babel/helper-replace-supers@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz#91192d25f6abbcd41da8a989d4492574fb1530bc" - integrity sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA== +"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.0.tgz#6034b7b51943094cb41627848cb219cb02be1d24" + integrity sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw== dependencies: - "@babel/helper-member-expression-to-functions" "^7.8.3" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" + "@babel/helper-member-expression-to-functions" "^7.13.0" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" -"@babel/helper-simple-access@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" - integrity sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw== +"@babel/helper-simple-access@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz#8478bcc5cacf6aa1672b251c1d2dde5ccd61a6c4" + integrity sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA== dependencies: - "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" + "@babel/types" "^7.12.13" + +"@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.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== +"@babel/helper-split-export-declaration@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" + integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== dependencies: - "@babel/types" "^7.7.4" + "@babel/types" "^7.12.13" "@babel/helper-split-export-declaration@^7.8.3": version "7.8.3" @@ -488,17 +603,41 @@ dependencies: "@babel/types" "^7.8.3" -"@babel/helper-wrap-function@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz#9dbdb2bb55ef14aaa01fe8c99b629bd5352d8610" - integrity sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ== - dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helpers@^7.7.4", "@babel/helpers@^7.8.3": +"@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-identifier@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" + integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== + +"@babel/helper-validator-option@^7.12.11", "@babel/helper-validator-option@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831" + integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== + +"@babel/helper-wrap-function@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz#bdb5c66fda8526ec235ab894ad53a1235c79fcc4" + integrity sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA== + dependencies: + "@babel/helper-function-name" "^7.12.13" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" + +"@babel/helpers@^7.12.5", "@babel/helpers@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.13.0.tgz#7647ae57377b4f0408bf4f8a7af01c42e41badc0" + integrity sha512-aan1MeFPxFacZeSz6Ld7YZo5aPuqnKlD7+HZY75xQsueczFccP9A7V05+oe0XpLwHK3oLorPe9eaAUljL7WEaQ== + dependencies: + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" + +"@babel/helpers@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.8.3.tgz#382fbb0382ce7c4ce905945ab9641d688336ce85" integrity sha512-LmU3q9Pah/XyZU89QvBgGt+BCsTPoQa+73RxAQh8fb8qkDyIfeQnmgs+hvzhTCKTzqOyk7JTkS3MS1S8Mq5yrQ== @@ -516,6 +655,24 @@ esutils "^2.0.2" js-tokens "^4.0.0" +"@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/highlight@^7.12.13": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.8.tgz#10b2dac78526424dfc1f47650d0e415dfd9dc481" + integrity sha512-4vrIhfJyfNf+lCtXC2ck1rKSzDwciqF7IWFhXXrSOUC2O5DrVp+w4c6ed4AllTxhTkUP5x2tYj41VaxdVMMRDw== + dependencies: + "@babel/helper-validator-identifier" "^7.12.11" + chalk "^2.0.0" + js-tokens "^4.0.0" + "@babel/highlight@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797" @@ -525,452 +682,605 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.4.3", "@babel/parser@^7.7.4": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.7.tgz#1b886595419cf92d811316d5b715a53ff38b4937" - integrity sha512-WtTZMZAZLbeymhkd/sEaPD8IQyGAhmuTuvTzLiCFM7iXiVdY0gc0IaI+cW0fh1BnSMbJSzXX6/fHllgHKwHhXw== +"@babel/parser@^7.12.10", "@babel/parser@^7.12.13", "@babel/parser@^7.12.7", "@babel/parser@^7.13.0", "@babel/parser@^7.13.4": + version "7.13.9" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.9.tgz#ca34cb95e1c2dd126863a84465ae8ef66114be99" + integrity sha512-nEUfRiARCcaVo3ny3ZQjURjHQZUo/JkEw7rLlSZy/psWGnvwXFtPcr6jb7Yb41DVW5LTe6KRq9LGleRNsg1Frw== -"@babel/parser@^7.7.5", "@babel/parser@^7.7.7", "@babel/parser@^7.8.3": +"@babel/parser@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.3.tgz#790874091d2001c9be6ec426c2eed47bc7679081" integrity sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ== -"@babel/plugin-proposal-async-generator-functions@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz#bad329c670b382589721b27540c7d288601c6e6f" - integrity sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw== +"@babel/plugin-proposal-async-generator-functions@^7.12.1": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.8.tgz#87aacb574b3bc4b5603f6fe41458d72a5a2ec4b1" + integrity sha512-rPBnhj+WgoSmgq+4gQUtXx/vOcU+UYtjy1AA/aeD61Hwj410fwYyqfUcRP3lR8ucgliVJL/G7sXcNUecC75IXA== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-remap-async-to-generator" "^7.13.0" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-proposal-class-properties@^7.12.1": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz#146376000b94efd001e57a40a88a525afaab9f37" + integrity sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-remap-async-to-generator" "^7.8.3" - "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/helper-create-class-features-plugin" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-proposal-dynamic-import@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz#38c4fe555744826e97e2ae930b0fb4cc07e66054" - integrity sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w== +"@babel/plugin-proposal-dynamic-import@^7.12.1": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz#876a1f6966e1dec332e8c9451afda3bebcdf2e1d" + integrity sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-proposal-json-strings@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz#da5216b238a98b58a1e05d6852104b10f9a70d6b" - integrity sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q== +"@babel/plugin-proposal-export-namespace-from@^7.12.1": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz#393be47a4acd03fa2af6e3cde9b06e33de1b446d" + integrity sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-object-rest-spread@^7.7.7": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz#eb5ae366118ddca67bed583b53d7554cad9951bb" - integrity sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA== +"@babel/plugin-proposal-json-strings@^7.12.1": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz#bf1fb362547075afda3634ed31571c5901afef7b" + integrity sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-proposal-optional-catch-binding@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz#9dee96ab1650eed88646ae9734ca167ac4a9c5c9" - integrity sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw== +"@babel/plugin-proposal-logical-assignment-operators@^7.12.1": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz#93fa78d63857c40ce3c8c3315220fd00bfbb4e1a" + integrity sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-unicode-property-regex@^7.7.7": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz#b646c3adea5f98800c9ab45105ac34d06cd4a47f" - integrity sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz#3730a31dafd3c10d8ccd10648ed80a2ac5472ef3" + integrity sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@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-proposal-numeric-separator@^7.12.7": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz#bd9da3188e787b5120b4f9d465a8261ce67ed1db" + integrity sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.12.1": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz#5d210a4d727d6ce3b18f9de82cc99a3964eed60a" + integrity sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g== + dependencies: + "@babel/compat-data" "^7.13.8" + "@babel/helper-compilation-targets" "^7.13.8" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.13.0" + +"@babel/plugin-proposal-optional-catch-binding@^7.12.1": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz#3ad6bd5901506ea996fc31bdcf3ccfa2bed71107" + integrity sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.12.7": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.8.tgz#e39df93efe7e7e621841babc197982e140e90756" + integrity sha512-hpbBwbTgd7Cz1QryvwJZRo1U0k1q8uyBmeXOSQUjdg/A2TASkhR/rz7AyqZ/kS8kbpsNA80rOYbxySBJAqmhhQ== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-proposal-private-methods@^7.12.1": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz#04bd4c6d40f6e6bbfa2f57e2d8094bad900ef787" + integrity sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + +"@babel/plugin-proposal-unicode-property-regex@^7.12.1": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz#bebde51339be829c17aaaaced18641deb62b39ba" + integrity sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz#4483cda53041ce3413b7fe2f00022665ddfaa75d" + integrity sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-async-generators@^7.8.0": +"@babel/plugin-syntax-async-generators@^7.8.0", "@babel/plugin-syntax-async-generators@^7.8.4": 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-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-class-properties@^7.12.1": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-dynamic-import@^7.8.0": +"@babel/plugin-syntax-dynamic-import@^7.8.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": 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.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-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/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-json-strings@^7.8.0": +"@babel/plugin-syntax-json-strings@^7.8.0", "@babel/plugin-syntax-json-strings@^7.8.3": 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-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-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-object-rest-spread@^7.8.0": +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": 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== + 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.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-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-optional-catch-binding@^7.8.0": +"@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": 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== + 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-top-level-await@^7.7.4": +"@babel/plugin-syntax-optional-catch-binding@^7.8.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz#3acdece695e6b13aaf57fc291d1a800950c71391" - integrity sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-arrow-functions@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz#82776c2ed0cd9e1a49956daeb896024c9473b8b6" - integrity sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-async-to-generator@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz#4308fad0d9409d71eafb9b1a6ee35f9d64b64086" - integrity sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ== + 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-module-imports" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-remap-async-to-generator" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-transform-block-scoped-functions@^7.7.4": +"@babel/plugin-syntax-optional-chaining@^7.8.0", "@babel/plugin-syntax-optional-chaining@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz#437eec5b799b5852072084b3ae5ef66e8349e8a3" - integrity sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg== + 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.8.3" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-transform-block-scoping@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz#97d35dab66857a437c166358b91d09050c868f3a" - integrity sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w== +"@babel/plugin-syntax-top-level-await@^7.12.1": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178" + integrity sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - lodash "^4.17.13" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-classes@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz#46fd7a9d2bb9ea89ce88720477979fe0d71b21b8" - integrity sha512-SjT0cwFJ+7Rbr1vQsvphAHwUHvSUPmMjMU/0P59G8U2HLFqSa082JO7zkbDNWs9kH/IUqpHI6xWNesGf8haF1w== +"@babel/plugin-transform-arrow-functions@^7.12.1": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz#10a59bebad52d637a027afa692e8d5ceff5e3dae" + integrity sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg== dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-define-map" "^7.8.3" - "@babel/helper-function-name" "^7.8.3" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - globals "^11.1.0" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-computed-properties@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz#96d0d28b7f7ce4eb5b120bb2e0e943343c86f81b" - integrity sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA== +"@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.8.3" + "@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-destructuring@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz#20ddfbd9e4676906b1056ee60af88590cc7aaa0b" - integrity sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ== +"@babel/plugin-transform-async-to-generator@^7.12.1": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz#8e112bf6771b82bf1e974e5e26806c5c99aa516f" + integrity sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-remap-async-to-generator" "^7.13.0" -"@babel/plugin-transform-dotall-regex@^7.7.7": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz#c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e" - integrity sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw== +"@babel/plugin-transform-block-scoped-functions@^7.12.1": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz#a9bf1836f2a39b4eb6cf09967739de29ea4bf4c4" + integrity sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-duplicate-keys@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz#8d12df309aa537f272899c565ea1768e286e21f1" - integrity sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ== +"@babel/plugin-transform-block-scoping@^7.12.11": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz#f36e55076d06f41dfd78557ea039c1b581642e61" + integrity sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-exponentiation-operator@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz#581a6d7f56970e06bf51560cd64f5e947b70d7b7" - integrity sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ== +"@babel/plugin-transform-classes@^7.12.1": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz#0265155075c42918bf4d3a4053134176ad9b533b" + integrity sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-replace-supers" "^7.13.0" + "@babel/helper-split-export-declaration" "^7.12.13" + globals "^11.1.0" -"@babel/plugin-transform-for-of@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.3.tgz#15f17bce2fc95c7d59a24b299e83e81cedc22e18" - integrity sha512-ZjXznLNTxhpf4Q5q3x1NsngzGA38t9naWH8Gt+0qYZEJAcvPI9waSStSh56u19Ofjr7QmD0wUsQ8hw8s/p1VnA== +"@babel/plugin-transform-computed-properties@^7.12.1": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz#845c6e8b9bb55376b1fa0b92ef0bdc8ea06644ed" + integrity sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-function-name@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz#279373cb27322aaad67c2683e776dfc47196ed8b" - integrity sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ== +"@babel/plugin-transform-destructuring@^7.12.1": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz#c5dce270014d4e1ebb1d806116694c12b7028963" + integrity sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA== dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-literals@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz#aef239823d91994ec7b68e55193525d76dbd5dc1" - integrity sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A== +"@babel/plugin-transform-dotall-regex@^7.12.1": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz#3f1601cc29905bfcb67f53910f197aeafebb25ad" + integrity sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-member-expression-literals@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz#963fed4b620ac7cbf6029c755424029fa3a40410" - integrity sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA== +"@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz#469c2062105c1eb6a040eaf4fac4b488078395ee" + integrity sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-modules-amd@^7.7.5": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz#65606d44616b50225e76f5578f33c568a0b876a5" - integrity sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ== +"@babel/plugin-transform-duplicate-keys@^7.12.1": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz#6f06b87a8b803fd928e54b81c258f0a0033904de" + integrity sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ== dependencies: - "@babel/helper-module-transforms" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.0" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-modules-commonjs@^7.7.5": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz#df251706ec331bd058a34bdd72613915f82928a5" - integrity sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg== +"@babel/plugin-transform-exponentiation-operator@^7.12.1": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz#4d52390b9a273e651e4aba6aee49ef40e80cd0a1" + integrity sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA== dependencies: - "@babel/helper-module-transforms" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-simple-access" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.0" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-modules-systemjs@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz#d8bbf222c1dbe3661f440f2f00c16e9bb7d0d420" - integrity sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg== +"@babel/plugin-transform-for-of@^7.12.1": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz#c799f881a8091ac26b54867a845c3e97d2696062" + integrity sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg== dependencies: - "@babel/helper-hoist-variables" "^7.8.3" - "@babel/helper-module-transforms" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.0" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-modules-umd@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz#592d578ce06c52f5b98b02f913d653ffe972661a" - integrity sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw== +"@babel/plugin-transform-function-name@^7.12.1": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz#bb024452f9aaed861d374c8e7a24252ce3a50051" + integrity sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ== dependencies: - "@babel/helper-module-transforms" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-named-capturing-groups-regex@^7.7.4": - 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== +"@babel/plugin-transform-literals@^7.12.1": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz#2ca45bafe4a820197cf315794a4d26560fe4bdb9" + integrity sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-new-target@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz#60cc2ae66d85c95ab540eb34babb6434d4c70c43" - integrity sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw== +"@babel/plugin-transform-member-expression-literals@^7.12.1": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz#5ffa66cd59b9e191314c9f1f803b938e8c081e40" + integrity sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-object-super@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz#ebb6a1e7a86ffa96858bd6ac0102d65944261725" - integrity sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ== +"@babel/plugin-transform-modules-amd@^7.12.1": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz#19f511d60e3d8753cc5a6d4e775d3a5184866cc3" + integrity sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.3" + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-parameters@^7.7.7": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.3.tgz#7890576a13b17325d8b7d44cb37f21dc3bbdda59" - integrity sha512-/pqngtGb54JwMBZ6S/D3XYylQDFtGjWrnoCF4gXZOUpFV/ujbxnoNGNvDGu6doFWRPBveE72qTx/RRU44j5I/Q== +"@babel/plugin-transform-modules-commonjs@^7.12.1": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz#7b01ad7c2dcf2275b06fa1781e00d13d420b3e1b" + integrity sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw== dependencies: - "@babel/helper-call-delegate" "^7.8.3" - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-simple-access" "^7.12.13" + babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-property-literals@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz#33194300d8539c1ed28c62ad5087ba3807b98263" - integrity sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg== +"@babel/plugin-transform-modules-systemjs@^7.12.1": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz#6d066ee2bff3c7b3d60bf28dec169ad993831ae3" + integrity sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-hoist-variables" "^7.13.0" + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-validator-identifier" "^7.12.11" + babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-regenerator@^7.7.5": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz#b31031e8059c07495bf23614c97f3d9698bc6ec8" - integrity sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA== +"@babel/plugin-transform-modules-umd@^7.12.1": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz#8a3d96a97d199705b9fd021580082af81c06e70b" + integrity sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw== dependencies: - regenerator-transform "^0.14.0" + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-reserved-words@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz#9a0635ac4e665d29b162837dd3cc50745dfdf1f5" - integrity sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A== +"@babel/plugin-transform-named-capturing-groups-regex@^7.12.1": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz#2213725a5f5bbbe364b50c3ba5998c9599c5c9d9" + integrity sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-create-regexp-features-plugin" "^7.12.13" -"@babel/plugin-transform-shorthand-properties@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz#28545216e023a832d4d3a1185ed492bcfeac08c8" - integrity sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w== +"@babel/plugin-transform-new-target@^7.12.1": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz#e22d8c3af24b150dd528cbd6e685e799bf1c351c" + integrity sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-spread@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz#9c8ffe8170fdfb88b114ecb920b82fb6e95fe5e8" - integrity sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g== +"@babel/plugin-transform-object-super@^7.12.1": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz#b4416a2d63b8f7be314f3d349bd55a9c1b5171f7" + integrity sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-replace-supers" "^7.12.13" -"@babel/plugin-transform-sticky-regex@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz#be7a1290f81dae767475452199e1f76d6175b100" - integrity sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-regex" "^7.8.3" +"@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz#8fa7603e3097f9c0b7ca1a4821bc2fb52e9e5007" + integrity sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + +"@babel/plugin-transform-property-literals@^7.12.1": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz#4e6a9e37864d8f1b3bc0e2dce7bf8857db8b1a81" + integrity sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-regenerator@^7.12.1": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.13.tgz#b628bcc9c85260ac1aeb05b45bde25210194a2f5" + integrity sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA== + dependencies: + regenerator-transform "^0.14.2" + +"@babel/plugin-transform-reserved-words@^7.12.1": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz#7d9988d4f06e0fe697ea1d9803188aa18b472695" + integrity sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-runtime@7.12.10": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.10.tgz#af0fded4e846c4b37078e8e5d06deac6cd848562" + integrity sha512-xOrUfzPxw7+WDm9igMgQCbO3cJKymX7dFdsgRr1eu9n3KjjyU4pptIXbXPseQDquw+W+RuJEJMHKHNsPNNm3CA== + dependencies: + "@babel/helper-module-imports" "^7.12.5" + "@babel/helper-plugin-utils" "^7.10.4" + semver "^5.5.1" + +"@babel/plugin-transform-shorthand-properties@^7.12.1": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz#db755732b70c539d504c6390d9ce90fe64aff7ad" + integrity sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-spread@^7.12.1": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz#84887710e273c1815ace7ae459f6f42a5d31d5fd" + integrity sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + +"@babel/plugin-transform-sticky-regex@^7.12.7": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz#760ffd936face73f860ae646fb86ee82f3d06d1f" + integrity sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-template-literals@^7.12.1": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz#a36049127977ad94438dee7443598d1cefdf409d" + integrity sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + +"@babel/plugin-transform-typeof-symbol@^7.12.10": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz#785dd67a1f2ea579d9c2be722de8c84cb85f5a7f" + integrity sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-unicode-escapes@^7.12.1": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz#840ced3b816d3b5127dd1d12dcedc5dead1a5e74" + integrity sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-unicode-regex@^7.12.1": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz#b52521685804e155b1202e83fc188d34bb70f5ac" + integrity sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/preset-env@7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.11.tgz#55d5f7981487365c93dbbc84507b1c7215e857f9" + integrity sha512-j8Tb+KKIXKYlDBQyIOy4BLxzv1NUOwlHfZ74rvW+Z0Gp4/cI2IMDPBWAgWceGcE7aep9oL/0K9mlzlMGxA8yNw== + 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.11" + "@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.11" + "@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.10" + "@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.11" + core-js-compat "^3.8.0" + semver "^5.5.0" -"@babel/plugin-transform-template-literals@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz#7bfa4732b455ea6a43130adc0ba767ec0e402a80" - integrity sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ== +"@babel/preset-modules@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72" + integrity sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg== dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@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/plugin-transform-typeof-symbol@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.3.tgz#5cffb216fb25c8c64ba6bf5f76ce49d3ab079f4d" - integrity sha512-3TrkKd4LPqm4jHs6nPtSDI/SV9Cm5PRJkHLUgTcqRQQTMAZ44ZaAdDZJtvWFSaRcvT0a1rTmJ5ZA5tDKjleF3g== +"@babel/runtime@7.12.5": + 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: - "@babel/helper-plugin-utils" "^7.8.3" + regenerator-runtime "^0.13.4" -"@babel/plugin-transform-unicode-regex@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz#0cef36e3ba73e5c57273effb182f46b91a1ecaad" - integrity sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw== +"@babel/runtime@^7.8.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.10.5.tgz#303d8bd440ecd5a491eae6117fd3367698674c5c" + integrity sha512-otddXKhdNn7d0ptoFRHtMLa8LqDxLYwTjB4nYgM1yy5N6gU/MUf8zqyyLltCH3yAVitBzmwK4us+DD0l/MauAg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + regenerator-runtime "^0.13.4" -"@babel/preset-env@7.7.7": - 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/template@7.12.7": + 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/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" - semver "^5.5.0" + "@babel/code-frame" "^7.10.4" + "@babel/parser" "^7.12.7" + "@babel/types" "^7.12.7" -"@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/template@^7.12.13", "@babel/template@^7.12.7": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" + integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/code-frame" "^7.12.13" + "@babel/parser" "^7.12.13" + "@babel/types" "^7.12.13" "@babel/template@^7.8.3": version "7.8.3" @@ -981,20 +1291,20 @@ "@babel/parser" "^7.8.3" "@babel/types" "^7.8.3" -"@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/traverse@^7.12.10", "@babel/traverse@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.0.tgz#6d95752475f86ee7ded06536de309a65fc8966cc" + integrity sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.13.0" + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/parser" "^7.13.0" + "@babel/types" "^7.13.0" debug "^4.1.0" globals "^11.1.0" - lodash "^4.17.13" + lodash "^4.17.19" "@babel/traverse@^7.8.3": version "7.8.3" @@ -1011,13 +1321,22 @@ globals "^11.1.0" lodash "^4.17.13" -"@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.10.4", "@babel/types@^7.4.4", "@babel/types@^7.8.6": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.10.5.tgz#d88ae7e2fde86bfbfe851d4d81afa70a997b5d15" + integrity sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q== 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" + +"@babel/types@^7.12.1", "@babel/types@^7.12.10", "@babel/types@^7.12.11", "@babel/types@^7.12.13", "@babel/types@^7.12.7", "@babel/types@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.0.tgz#74424d2816f0171b4100f0ab34e9a374efdf7f80" + integrity sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA== + dependencies: + "@babel/helper-validator-identifier" "^7.12.11" + lodash "^4.17.19" to-fast-properties "^2.0.0" "@babel/types@^7.8.3": @@ -1029,116 +1348,219 @@ 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.5": + version "1.7.5" + resolved "https://registry.yarnpkg.com/@bazel/bazelisk/-/bazelisk-1.7.5.tgz#dd1a52e3d23464f72de55aa3dc4777847fa85373" + integrity sha512-JHwP9JhfZUSoj4sku471Bjw4uE773U2Agujnx0CdPkeRk25khy1l3VyjaPaHB+z1fmMnM6ED3M7tetQUsovUQg== -"@bazel/buildifier@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@bazel/buildifier/-/buildifier-3.3.0.tgz#9c78a5efcea4a38abffdfb18eb8cf9a27babee66" - integrity sha512-Jaraa7jLW1OQBoWtTe2XDiuZwsg/YbWvCTys6nYXXRtNIkyoN6I/YZS4RlZj3nD7XlTMFk0yQD6+jpRpXhB6ZQ== +"@bazel/buildifier@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@bazel/buildifier/-/buildifier-4.0.1.tgz#52cfbad5cbb86e9183a29dde2370cd465730ea0d" + integrity sha512-BTmtvJbeeEVrqRApI1gr5hvPgYcHLpdGJ5EXNXEWO692ztMPSj5fB/dH0xUlaW45jn6LimYx8ymqTMhj3538og== -"@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.15.9": + version "0.15.9" + resolved "https://registry.yarnpkg.com/@bazel/ibazel/-/ibazel-0.15.9.tgz#db9dea1831a789bd87b12a2c72b1f5d8dd4853f0" + integrity sha512-37r6bs47UNYcp3jrgXqq//GmX1GJtDPQTok4EZQq/ZMEemvh2S7m1fqe1NjNp0D6LdivUmF4z8wb3LjVaT97cg== "@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== -"@ngtools/webpack@9.0.1": - version "9.0.1" - resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-9.0.1.tgz#36fff5b269959b37eee4c23c8c22bd7686aa4860" - integrity sha512-SG1MDVSC7pIuaX1QYTh94k/YJa6w2OR2RNbghkDXToDzDv6bKnTQYoJPyXk+gwfDTVD4V5z2dKSNbxFzWleFpg== +"@jsdevtools/coverage-istanbul-loader@3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@jsdevtools/coverage-istanbul-loader/-/coverage-istanbul-loader-3.0.5.tgz#2a4bc65d0271df8d4435982db4af35d81754ee26" + integrity sha512-EUCPEkaRPvmHjWAAZkWMT7JDzpw7FKB00WTISaiXsbNOd5hCHg77XLA8sLYLFDo1zepYLo2w7GstN8YBqRXZfA== dependencies: - "@angular-devkit/core" "9.0.1" - enhanced-resolve "4.1.1" - rxjs "6.5.3" - webpack-sources "1.4.3" + convert-source-map "^1.7.0" + istanbul-lib-instrument "^4.0.3" + loader-utils "^2.0.0" + merge-source-map "^1.1.0" + schema-utils "^2.7.0" -"@rollup/plugin-commonjs@^11.0.2": - version "11.0.2" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-11.0.2.tgz#837cc6950752327cb90177b608f0928a4e60b582" - integrity sha512-MPYGZr0qdbV5zZj8/2AuomVpnRVXRU5XKXb3HVniwRoRCreGlf5kOE081isNWeiLIi6IYkwTX9zE0/c7V8g81g== +"@ngtools/webpack@11.2.2": + version "11.2.2" + resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-11.2.2.tgz#647862ed19761796c7f84d5fb3305661d2a3af67" + integrity sha512-X1M/Xs0kLi9FrOIU6yJ74q3pCzhgwPQowO1XjJ68KLOoMbj/DM6Qm0Hi9N0Ay8h0s7BIdjKEu/C3pCdGu1Q54w== dependencies: - "@rollup/pluginutils" "^3.0.0" - estree-walker "^1.0.1" - is-reference "^1.1.2" - magic-string "^0.25.2" - resolve "^1.11.0" + "@angular-devkit/core" "11.2.2" + enhanced-resolve "5.7.0" + webpack-sources "2.2.0" -"@rollup/plugin-json@^4.0.0": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.0.2.tgz#482185ee36ac7dd21c346e2dbcc22ffed0c6f2d6" - integrity sha512-t4zJMc98BdH42mBuzjhQA7dKh0t4vMJlUka6Fz0c+iO5IVnWaEMiYBy1uBj9ruHZzXBW23IPDGL9oCzBkQ9Udg== +"@nodelib/fs.scandir@2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" + integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== dependencies: - "@rollup/pluginutils" "^3.0.4" + "@nodelib/fs.stat" "2.0.3" + run-parallel "^1.1.9" -"@rollup/plugin-node-resolve@^7.1.0": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.1.tgz#8c6e59c4b28baf9d223028d0e450e06a485bb2b7" - integrity sha512-14ddhD7TnemeHE97a4rLOhobfYvUVcaYuqTnL8Ti7Jxi9V9Jr5LY7Gko4HZ5k4h4vqQM0gBQt6tsp9xXW94WPA== +"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" + integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" + integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== + dependencies: + "@nodelib/fs.scandir" "2.1.3" + fastq "^1.6.0" + +"@npmcli/ci-detect@^1.0.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@npmcli/ci-detect/-/ci-detect-1.3.0.tgz#6c1d2c625fb6ef1b9dea85ad0a5afcbef85ef22a" + integrity sha512-oN3y7FAROHhrAt7Rr7PnTSwrHrZVRTS2ZbyxeQwSSYD0ifwM3YNgQqbaRmjcWoPyq77MjchusjJDspbzMmip1Q== + +"@npmcli/git@^2.0.1": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-2.0.6.tgz#47b97e96b2eede3f38379262fa3bdfa6eae57bf2" + integrity sha512-a1MnTfeRPBaKbFY07fd+6HugY1WAkKJzdiJvlRub/9o5xz2F/JtPacZZapx5zRJUQFIzSL677vmTSxEcDMrDbg== + dependencies: + "@npmcli/promise-spawn" "^1.1.0" + lru-cache "^6.0.0" + mkdirp "^1.0.3" + npm-pick-manifest "^6.0.0" + promise-inflight "^1.0.1" + promise-retry "^2.0.1" + semver "^7.3.2" + unique-filename "^1.1.1" + which "^2.0.2" + +"@npmcli/installed-package-contents@^1.0.5": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz#ab7408c6147911b970a8abe261ce512232a3f4fa" + integrity sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw== + dependencies: + npm-bundled "^1.1.1" + npm-normalize-package-bin "^1.0.1" + +"@npmcli/move-file@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.0.1.tgz#de103070dac0f48ce49cf6693c23af59c0f70464" + integrity sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw== + dependencies: + mkdirp "^1.0.4" + +"@npmcli/node-gyp@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-1.0.2.tgz#3cdc1f30e9736dbc417373ed803b42b1a0a29ede" + integrity sha512-yrJUe6reVMpktcvagumoqD9r08fH1iRo01gn1u0zoCApa9lnZGEigVKUd2hzsCId4gdtkZZIVscLhNxMECKgRg== + +"@npmcli/promise-spawn@^1.1.0", "@npmcli/promise-spawn@^1.2.0", "@npmcli/promise-spawn@^1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz#42d4e56a8e9274fba180dabc0aea6e38f29274f5" + integrity sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg== dependencies: - "@rollup/pluginutils" "^3.0.6" - "@types/resolve" "0.0.8" + infer-owner "^1.0.4" + +"@npmcli/run-script@^1.3.0": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-1.8.3.tgz#07f440ed492400bb1114369bc37315eeaaae2bb3" + integrity sha512-ELPGWAVU/xyU+A+H3pEPj0QOvYwLTX71RArXcClFzeiyJ/b/McsZ+d0QxpznvfFtZzxGN/gz/1cvlqICR4/suQ== + dependencies: + "@npmcli/node-gyp" "^1.0.2" + "@npmcli/promise-spawn" "^1.3.2" + infer-owner "^1.0.4" + node-gyp "^7.1.0" + puka "^1.0.1" + read-package-json-fast "^2.0.1" + +"@rollup/plugin-commonjs@^17.0.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-17.1.0.tgz#757ec88737dffa8aa913eb392fade2e45aef2a2d" + integrity sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew== + dependencies: + "@rollup/pluginutils" "^3.1.0" + commondir "^1.0.1" + estree-walker "^2.0.1" + glob "^7.1.6" + is-reference "^1.2.1" + magic-string "^0.25.7" + resolve "^1.17.0" + +"@rollup/plugin-json@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3" + integrity sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw== + dependencies: + "@rollup/pluginutils" "^3.0.8" + +"@rollup/plugin-node-resolve@^11.1.0": + version "11.2.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.0.tgz#a5ab88c35bb7622d115f44984dee305112b6f714" + integrity sha512-qHjNIKYt5pCcn+5RUBQxK8krhRvf1HnyVgUCcFFcweDS7fhkOLZeYh0mhHK6Ery8/bb9tvN/ubPzmfF0qjDCTA== + dependencies: + "@rollup/pluginutils" "^3.1.0" + "@types/resolve" "1.17.1" builtin-modules "^3.1.0" + deepmerge "^4.2.2" is-module "^1.0.0" - resolve "^1.14.2" + resolve "^1.19.0" -"@rollup/pluginutils@^3.0.0", "@rollup/pluginutils@^3.0.1", "@rollup/pluginutils@^3.0.4", "@rollup/pluginutils@^3.0.6": - version "3.0.8" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.0.8.tgz#4e94d128d94b90699e517ef045422960d18c8fde" - integrity sha512-rYGeAc4sxcZ+kPG/Tw4/fwJODC3IXHYDH4qusdN/b6aLw5LPUbzpecYbEJh4sVQGPFJxd2dBU4kc1H3oy9/bnw== +"@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.0.9", "@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@9.0.1": - version "9.0.1" - resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-9.0.1.tgz#1b08c938da4dcee2472b4641f3cbc906d6eb88af" - integrity sha512-lQ8Qc697ef2jvEf1+tElAUsbOnbUAMo3dnOUVw9RlYO90pHeG3/OdWBMH1kjn3jbjuKuvCVZH3voJUUcLDx6eg== +"@schematics/angular@11.2.2": + version "11.2.2" + resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-11.2.2.tgz#ff69a66b6e1acf5aa36ed0795973f3f57d893d0b" + integrity sha512-TcxPy58adUnkirGXyZVVSMuKkA0eIz2PWSQWEgB9l7kO+5LvDOn+RMoc6AVx0s/bU9nH+eozBUJ1XAD/E8QnYQ== dependencies: - "@angular-devkit/core" "9.0.1" - "@angular-devkit/schematics" "9.0.1" + "@angular-devkit/core" "11.2.2" + "@angular-devkit/schematics" "11.2.2" + jsonc-parser "3.0.0" -"@schematics/update@0.900.1": - version "0.900.1" - resolved "https://registry.yarnpkg.com/@schematics/update/-/update-0.900.1.tgz#4923be88b94b5db0b04cd2c7f3e75e67a4a13688" - integrity sha512-p2xfctTtT5kMAaCTBENxi69m5IhsvdTwwwokb9zVHJYAC6D1K//q1bl30mTe6U2YE3hSPWND2S14ahXw8PyN8g== +"@schematics/update@0.1102.2": + version "0.1102.2" + resolved "https://registry.yarnpkg.com/@schematics/update/-/update-0.1102.2.tgz#f8aed68bbcefdc8633c7804e47ff891ef06bd5ef" + integrity sha512-Nz8kjeixzDnOw00bnZznq3qrbIv8yWEWNb9eDkRBqgOUXQwlhKJY/sYBK58JF2D+conaRVuEqMsBlX08GlFtIA== dependencies: - "@angular-devkit/core" "9.0.1" - "@angular-devkit/schematics" "9.0.1" + "@angular-devkit/core" "11.2.2" + "@angular-devkit/schematics" "11.2.2" "@yarnpkg/lockfile" "1.1.0" - ini "1.3.5" - npm-package-arg "^7.0.0" - pacote "9.5.8" - rxjs "6.5.3" - semver "6.3.0" + ini "2.0.0" + npm-package-arg "^8.0.0" + pacote "11.2.4" + semver "7.3.4" semver-intersect "1.4.0" -"@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" - integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== - -"@szmarczak/http-timer@^1.1.2": +"@tootallnate/once@1": version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== - dependencies: - defer-to-connect "^1.0.1" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== "@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/component-emitter@^1.2.10": + version "1.2.10" + resolved "https://registry.yarnpkg.com/@types/component-emitter/-/component-emitter-1.2.10.tgz#ef5b1589b9f16544642e473db5ea5639107ef3ea" + integrity sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg== + +"@types/cookie@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.0.tgz#14f854c0f93d326e39da6e3b6f34f7d37513d108" + integrity sha512-y7mImlc/rNkvCRmg8gC3/lj87S7pTUIJ6QGjwHR9WQJcFs+ZMTOaoPrkdFA/YdbuqVEmEbb5RdhVxMkAcgOnpg== + +"@types/cors@^2.8.8": + version "2.8.10" + resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.10.tgz#61cc8469849e5bcdd0c7044122265c39cec10cf4" + integrity sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ== + "@types/estree@*": - version "0.0.41" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.41.tgz#fd90754150b57432b72bf560530500597ff04421" - integrity sha512-rIAmXyJlqw4KEBO7+u9gxZZSQHaCNnIzYrnNmYVpgfJhxTqO0brCX0SYpqUTkVI5mwwUwzmtspLBGBKroMeynA== + version "0.0.46" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.46.tgz#0fb6bfbbeabd7a30880504993369c4bf1deab1fe" + integrity sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg== "@types/estree@0.0.39": version "0.0.39" @@ -1164,10 +1586,10 @@ resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-3.5.0.tgz#2ad2006c8a937d20df20a8fee86071d0f730ef99" integrity sha512-kGCRI9oiCxFS6soGKlyzhMzDydfcPix9PpTkr7h11huxOxhWwP37Tg7DYBaQ18eQTNreZEuLkhpbGSqVNZPnnw== -"@types/jasmine@~3.3.8": - version "3.3.16" - resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-3.3.16.tgz#7c84074f5d7f84da9a14f816ccfb9aeb4da13f27" - integrity sha512-Nveep4zKGby8uIvG2AEUyYOwZS8uVeHK9TgbuWYSawUDDdIgfhCKz28QzamTo//Jk7Ztt9PO3f+vzlB6a4GV1Q== +"@types/jasmine@~3.6.0": + version "3.6.4" + resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-3.6.4.tgz#22ade1b692d5656f859ef9bc6c62d88632cc27e0" + integrity sha512-CTdMERA4iGNcxeqzD7pavb4WLIFq6bGnx6nIJD+1D4Knx24GE6QBPrWVhO8UlIy7gf7rbIt3ZD7iIzryRD2TgA== "@types/jasminewd2@~2.0.3": version "2.0.8" @@ -1176,6 +1598,16 @@ dependencies: "@types/jasmine" "*" +"@types/json-schema@^7.0.4": + version "7.0.5" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.5.tgz#dcce4430e64b443ba8945f0290fb564ad5bac6dd" + integrity sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ== + +"@types/json-schema@^7.0.6": + version "7.0.7" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" + integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== + "@types/minimatch@*": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" @@ -1191,10 +1623,15 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.6.tgz#a47240c10d86a9a57bb0c633f0b2e0aea9ce9253" integrity sha512-FjsYUPzEJdGXjwKqSpE0/9QEh6kzhTAeObA54rn6j3rR4C/mzpI9L0KNfoeASSPMMdxIsoJuCLDWcM/rVjIsSA== -"@types/normalize-package-data@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" - integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== +"@types/node@>=10.0.0": + version "14.14.31" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.31.tgz#72286bd33d137aa0d152d47ec7c1762563d34055" + integrity sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== "@types/q@^0.0.32": version "0.0.32" @@ -1206,10 +1643,10 @@ resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== -"@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" "*" @@ -1232,150 +1669,149 @@ "@types/source-list-map" "*" source-map "^0.6.1" -"@webassemblyjs/ast@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" - integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ== - dependencies: - "@webassemblyjs/helper-module-context" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/wast-parser" "1.8.5" - -"@webassemblyjs/floating-point-hex-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721" - integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ== - -"@webassemblyjs/helper-api-error@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7" - integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA== - -"@webassemblyjs/helper-buffer@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204" - integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q== - -"@webassemblyjs/helper-code-frame@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e" - integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ== - dependencies: - "@webassemblyjs/wast-printer" "1.8.5" - -"@webassemblyjs/helper-fsm@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452" - integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow== - -"@webassemblyjs/helper-module-context@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245" - integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g== - dependencies: - "@webassemblyjs/ast" "1.8.5" - mamacro "^0.0.3" - -"@webassemblyjs/helper-wasm-bytecode@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61" - integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ== - -"@webassemblyjs/helper-wasm-section@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf" - integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - -"@webassemblyjs/ieee754@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e" - integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g== +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== + dependencies: + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + +"@webassemblyjs/floating-point-hex-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" + integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== + +"@webassemblyjs/helper-api-error@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" + integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== + +"@webassemblyjs/helper-buffer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== + +"@webassemblyjs/helper-code-frame@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== + dependencies: + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/helper-fsm@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== + +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + +"@webassemblyjs/helper-wasm-bytecode@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" + integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== + +"@webassemblyjs/helper-wasm-section@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + +"@webassemblyjs/ieee754@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10" - integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A== +"@webassemblyjs/leb128@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc" - integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw== - -"@webassemblyjs/wasm-edit@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a" - integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/helper-wasm-section" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - "@webassemblyjs/wasm-opt" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - "@webassemblyjs/wast-printer" "1.8.5" - -"@webassemblyjs/wasm-gen@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc" - integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/ieee754" "1.8.5" - "@webassemblyjs/leb128" "1.8.5" - "@webassemblyjs/utf8" "1.8.5" - -"@webassemblyjs/wasm-opt@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264" - integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - -"@webassemblyjs/wasm-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d" - integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-api-error" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/ieee754" "1.8.5" - "@webassemblyjs/leb128" "1.8.5" - "@webassemblyjs/utf8" "1.8.5" - -"@webassemblyjs/wast-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c" - integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/floating-point-hex-parser" "1.8.5" - "@webassemblyjs/helper-api-error" "1.8.5" - "@webassemblyjs/helper-code-frame" "1.8.5" - "@webassemblyjs/helper-fsm" "1.8.5" +"@webassemblyjs/utf8@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" + integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== + +"@webassemblyjs/wasm-edit@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/helper-wasm-section" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-opt" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/wasm-gen@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wasm-opt@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + +"@webassemblyjs/wasm-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wast-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-code-frame" "1.9.0" + "@webassemblyjs/helper-fsm" "1.9.0" "@xtuc/long" "4.2.2" -"@webassemblyjs/wast-printer@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc" - integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg== +"@webassemblyjs/wast-printer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/wast-parser" "1.8.5" + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" "@xtuc/long" "4.2.2" "@xtuc/ieee754@^1.2.0": @@ -1393,13 +1829,15 @@ resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== -JSONStream@^1.3.4: - 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" +abab@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" + integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: version "1.3.7" @@ -1409,45 +1847,45 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: mime-types "~2.1.24" negotiator "0.6.2" -acorn@^6.2.1: - version "6.4.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.0.tgz#b659d2ffbafa24baf5db1cdbb2c94a983ecd2784" - integrity sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw== +acorn@^6.4.1: + version "6.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" + integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== -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== +adjust-sourcemap-loader@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz#5ae12fb5b7b1c585e80bbb5a63ec163a1a45e61e" + integrity sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw== + dependencies: + loader-utils "^2.0.0" + regex-parser "^2.2.11" adm-zip@^0.4.9: version "0.4.13" resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.13.tgz#597e2f8cc3672151e1307d3e95cddbc75672314a" integrity sha512-fERNJX8sOXfel6qCBCMPvZLzENBEhZTzKqg6vrOW5pvoEaQuJhRU4ndTAh6lHOxn1I6jnz2NHra56ZODM751uw== -after@0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" - integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" -agent-base@4, agent-base@^4.3.0: +agent-base@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== dependencies: es6-promisify "^5.0.0" -agent-base@~4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" - integrity sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg== - dependencies: - es6-promisify "^5.0.0" - -agentkeepalive@^3.4.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-3.5.2.tgz#a113924dd3fa24a0bc3b78108c450c2abee00f67" - integrity sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ== +agentkeepalive@^4.1.3: + version "4.1.4" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.1.4.tgz#d928028a4862cb11718e55227872e842a44c945b" + integrity sha512-+V/rGa3EuU74H6wR04plBb7Ks10FbtUQgRj/FQOG7uUIEuaINI+AiqJR1k6t3SVNs7o7ZjIdus6706qqzVq8jQ== dependencies: + debug "^4.1.0" + depd "^1.1.2" humanize-ms "^1.2.1" aggregate-error@^3.0.0: @@ -1468,7 +1906,22 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== -ajv@6.10.2, ajv@^6.1.0, ajv@^6.10.2, ajv@^6.5.5: +ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@6.12.6, ajv@^6.12.3, ajv@^6.12.5: + 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 "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^6.1.0, ajv@^6.10.2, 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== @@ -1478,6 +1931,26 @@ ajv@6.10.2, ajv@^6.1.0, ajv@^6.10.2, ajv@^6.5.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^6.12.2: + version "6.12.3" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" + integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^7.0.3: + version "7.1.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-7.1.1.tgz#1e6b37a454021fa9941713f38b952fc1c8d32a84" + integrity sha512-ga/aqDYnUy/o7vbsRTFhhTsNeXiYb5JWDIcRIeZfwRNCefwjNTVYCGdGSUrEmiu3yDK3vFvNbgJxvrQW4JXrYQ== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + alphanum-sort@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" @@ -1490,14 +1963,7 @@ ansi-align@^2.0.0: dependencies: string-width "^2.0.0" -ansi-align@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" - integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== - dependencies: - string-width "^3.0.0" - -ansi-colors@4.1.1: +ansi-colors@4.1.1, ansi-colors@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== @@ -1544,14 +2010,14 @@ ansi-styles@^2.2.1: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= -ansi-styles@^3.2.1: +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" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" -ansi-styles@^4.1.0: +ansi-styles@^4.0.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== @@ -1575,23 +2041,24 @@ anymatch@~3.1.1: normalize-path "^3.0.0" picomatch "^2.0.4" -app-root-path@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.2.1.tgz#d0df4a682ee408273583d43f6f79e9892624bc9a" - integrity sha512-91IFKeKk7FjfmezPKkwtaRvSpnUc4gDwPAjA1YZ9Gn0q0PPeW+vbeUsZuyDwjI7+QTHhcLen2v25fi/AmhvbJA== - -append-transform@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab" - integrity sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw== - dependencies: - default-require-extensions "^2.0.0" +app-root-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-3.0.0.tgz#210b6f43873227e18a4b810a032283311555d5ad" + integrity sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw== -aproba@^1.1.1: +aproba@^1.0.3, aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -1607,6 +2074,11 @@ aria-query@^3.0.0: ast-types-flow "0.0.7" commander "^2.11.0" +arity-n@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/arity-n/-/arity-n-1.0.4.tgz#d9e76b11733e08569c0847ae7b39b2860b30b745" + integrity sha1-2edrEXM+CFacCEeuezmyhgswt0U= + arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" @@ -1639,6 +2111,11 @@ array-union@^1.0.1: dependencies: array-uniq "^1.0.1" +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + array-uniq@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" @@ -1649,21 +2126,11 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= -arraybuffer.slice@~0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" - integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== - arrify@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= -asap@^2.0.0, asap@~2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= - asn1.js@^4.0.0: version "4.10.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" @@ -1713,7 +2180,7 @@ async-limiter@~1.0.0: resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== -async@^2.5.0, async@^2.6.2: +async@^2.6.2: version "2.6.3" resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== @@ -1730,31 +2197,17 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -autoprefixer@9.7.1: - version "9.7.1" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.1.tgz#9ffc44c55f5ca89253d9bb7186cefb01ef57747f" - integrity sha512-w3b5y1PXWlhYulevrTJ0lizkQ5CyqfeU6BIRDbuhsMupstHQOeb1Ur80tcB1zxSu7AwyY/qCQ7Vvqklh31ZBFw== - dependencies: - browserslist "^4.7.2" - caniuse-lite "^1.0.30001006" - chalk "^2.4.2" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^7.0.21" - postcss-value-parser "^4.0.2" - -autoprefixer@^9.6.5: - version "9.7.4" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.4.tgz#f8bf3e06707d047f0641d87aee8cfb174b2a5378" - integrity sha512-g0Ya30YrMBAEZk60lp+qfX5YQllG+S5W3GYCFvyHTvhOki0AEQJLPEcIuGRsqVwLi8FvXPVtwTGhfr38hVpm0g== +autoprefixer@10.2.4, autoprefixer@^10.2.4: + version "10.2.4" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.2.4.tgz#c0e7cf24fcc6a1ae5d6250c623f0cb8beef2f7e1" + integrity sha512-DCCdUQiMD+P/as8m3XkeTUkUKuuRqLGcwD0nll7wevhqoJfMRpJlkFd1+MQh1pvupjiQuip42lc/VFvfUTMSKw== dependencies: - browserslist "^4.8.3" - caniuse-lite "^1.0.30001020" - chalk "^2.4.2" + browserslist "^4.16.1" + caniuse-lite "^1.0.30001181" + colorette "^1.2.1" + fraction.js "^4.0.13" normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^7.0.26" - postcss-value-parser "^4.0.2" + postcss-value-parser "^4.1.0" aws-sign2@~0.7.0: version "0.7.0" @@ -1773,56 +2226,47 @@ axobject-query@2.0.2: dependencies: ast-types-flow "0.0.7" -babel-code-frame@^6.22.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-loader@8.0.6: - version "8.0.6" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.6.tgz#e33bdb6f362b03f4bb141a0c21ab87c501b70dfb" - integrity sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw== +babel-loader@8.2.2: + version "8.2.2" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" + integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g== dependencies: - find-cache-dir "^2.0.0" - loader-utils "^1.0.2" - mkdirp "^0.5.1" - pify "^4.0.1" + find-cache-dir "^3.3.1" + loader-utils "^1.4.0" + make-dir "^3.1.0" + schema-utils "^2.6.5" -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" -backo2@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" - integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= - 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-arraybuffer@0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" - integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= +base64-arraybuffer@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" + integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI= 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== -base64id@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" - integrity sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY= +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base64id@2.0.0, base64id@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" + integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== base@^0.11.1: version "0.11.2" @@ -1849,13 +2293,6 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -better-assert@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" - integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= - dependencies: - callsite "1.0.0" - big.js@^3.1.3: version "3.2.0" resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" @@ -1883,10 +2320,14 @@ bindings@^1.5.0: dependencies: file-uri-to-path "1.0.0" -blob@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" - integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== +bl@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" blocking-proxy@^1.0.0: version "1.0.1" @@ -1895,7 +2336,7 @@ blocking-proxy@^1.0.0: dependencies: minimist "^1.2.0" -bluebird@^3.3.0, bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5: +bluebird@^3.5.5: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== @@ -1905,7 +2346,7 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== -body-parser@1.19.0, body-parser@^1.16.1: +body-parser@1.19.0, body-parser@^1.19.0: version "1.19.0" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== @@ -1951,20 +2392,6 @@ boxen@^1.2.1: term-size "^1.2.0" widest-line "^2.0.0" -boxen@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" - integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ== - dependencies: - ansi-align "^3.0.0" - camelcase "^5.3.1" - chalk "^3.0.0" - cli-boxes "^2.2.0" - string-width "^4.1.0" - term-size "^2.1.0" - type-fest "^0.8.1" - widest-line "^3.1.0" - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -1989,7 +2416,7 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@~3.0.2: +braces@^3.0.1, braces@^3.0.2, 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== @@ -2060,16 +2487,7 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@4.8.3: - version "4.8.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.3.tgz#65802fcd77177c878e015f0e3189f2c4f627ba44" - integrity sha512-iU43cMMknxG1ClEZ2MDKeonKE1CCrFVkQK2AqO2YWFmvIrx4JWrvQ4w4hQez6EpVI8rHTtqh/ruHHDHSOKxvUg== - dependencies: - caniuse-lite "^1.0.30001017" - electron-to-chromium "^1.3.322" - node-releases "^1.1.44" - -browserslist@^4.0.0, browserslist@^4.8.3: +browserslist@^4.0.0: version "4.8.5" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.5.tgz#691af4e327ac877b25e7a3f7ee869c4ef36cdea3" integrity sha512-4LMHuicxkabIB+n9874jZX/az1IaZ5a+EUuvD7KFOu9x/Bd5YHyO0DIz2ls/Kl8g0ItS4X/ilEgf4T1Br0lgSg== @@ -2078,23 +2496,26 @@ browserslist@^4.0.0, browserslist@^4.8.3: electron-to-chromium "^1.3.338" node-releases "^1.1.46" -browserslist@^4.6.0, browserslist@^4.7.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.16.1, browserslist@^4.16.3: + version "4.16.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.3.tgz#340aa46940d7db878748567c5dea24a48ddf3717" + integrity sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw== dependencies: - caniuse-lite "^1.0.30001015" - electron-to-chromium "^1.3.322" - node-releases "^1.1.42" + caniuse-lite "^1.0.30001181" + colorette "^1.2.1" + electron-to-chromium "^1.3.649" + escalade "^3.1.1" + node-releases "^1.1.70" -browserslist@^4.7.0: - version "4.8.6" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.6.tgz#96406f3f5f0755d272e27a66f4163ca821590a7e" - integrity sha512-ZHao85gf0eZ0ESxLfCp73GG9O/VTytYDIkIiZDlURppLTI9wErSM/5yAKEq6rcUdxBLjMELmrYUJGg5sxGKMHg== +browserslist@^4.9.1: + version "4.13.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.13.0.tgz#42556cba011e1b0a2775b611cba6a8eca18e940d" + integrity sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ== dependencies: - caniuse-lite "^1.0.30001023" - electron-to-chromium "^1.3.341" - node-releases "^1.1.47" + caniuse-lite "^1.0.30001093" + electron-to-chromium "^1.3.488" + escalade "^3.0.1" + node-releases "^1.1.58" browserstack@^1.5.1: version "1.5.3" @@ -2103,24 +2524,6 @@ browserstack@^1.5.1: dependencies: https-proxy-agent "^2.2.1" -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= - buffer-from@^1.0.0, buffer-from@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" @@ -2145,6 +2548,14 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + builtin-modules@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" @@ -2175,31 +2586,30 @@ bytes@3.1.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== -cacache@13.0.1, cacache@^13.0.1: - version "13.0.1" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-13.0.1.tgz#a8000c21697089082f85287a1aec6e382024a71c" - integrity sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w== +cacache@15.0.5, cacache@^15.0.5: + version "15.0.5" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0" + integrity sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A== dependencies: - chownr "^1.1.2" - figgy-pudding "^3.5.1" + "@npmcli/move-file" "^1.0.1" + chownr "^2.0.0" fs-minipass "^2.0.0" glob "^7.1.4" - graceful-fs "^4.2.2" infer-owner "^1.0.4" - lru-cache "^5.1.1" - minipass "^3.0.0" + lru-cache "^6.0.0" + minipass "^3.1.1" minipass-collect "^1.0.2" minipass-flush "^1.0.5" minipass-pipeline "^1.2.2" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - p-map "^3.0.0" + mkdirp "^1.0.3" + p-map "^4.0.0" promise-inflight "^1.0.1" - rimraf "^2.7.1" - ssri "^7.0.0" + rimraf "^3.0.2" + ssri "^8.0.0" + tar "^6.0.2" unique-filename "^1.1.1" -cacache@^12.0.0, cacache@^12.0.2, cacache@^12.0.3: +cacache@^12.0.2: version "12.0.3" resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw== @@ -2235,19 +2645,6 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" - integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^3.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^1.0.2" - caller-callsite@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" @@ -2262,16 +2659,16 @@ caller-path@^2.0.0: dependencies: caller-callsite "^2.0.0" -callsite@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" - integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= - callsites@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= +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== + camel-case@3.0.x: version "3.0.0" resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" @@ -2280,15 +2677,20 @@ camel-case@3.0.x: no-case "^2.2.0" upper-case "^1.1.1" +camelcase@5.3.1, 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== + 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== +camelcase@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== caniuse-api@^3.0.0: version "3.0.0" @@ -2300,25 +2702,20 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@1.0.30001020: - version "1.0.30001020" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001020.tgz#3f04c1737500ffda78be9beb0b5c1e2070e15926" - integrity sha512-yWIvwA68wRHKanAVS1GjN8vajAv7MBFshullKCeq/eKpK7pJBVDgFFEqvgWTkcP2+wIDeQGYFRXECjKZnLkUjA== - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001017, caniuse-lite@^1.0.30001022: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001022: version "1.0.30001023" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001023.tgz#b82155827f3f5009077bdd2df3d8968bcbcc6fc4" integrity sha512-C5TDMiYG11EOhVOA62W1p3UsJ2z4DsHtMBQtjzp3ZsUglcQn62WOUgW0y795c7A5uZ+GCEIvzkMatLIlAsbNTA== -caniuse-lite@^1.0.30001006, caniuse-lite@^1.0.30001015: - version "1.0.30001017" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001017.tgz#d3ad6ec18148b9bd991829958d9d7e562bb78cd6" - integrity sha512-EDnZyOJ6eYh6lHmCvCdHAFbfV4KJ9lSdfv4h/ppEhrU/Yudkl7jujwMZ1we6RX7DXqBfT04pVMQ4J+1wcTlsKA== +caniuse-lite@^1.0.30001032, caniuse-lite@^1.0.30001093: + version "1.0.30001104" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001104.tgz#4e3d5b3b1dd3c3529f10cb7f519c62ba3e579f5d" + integrity sha512-pkpCg7dmI/a7WcqM2yfdOiT4Xx5tzyoHAXWsX5/HxZ3TemwDZs0QXdqbE0UPLPVy/7BeK7693YfzfRYfu1YVpg== -caniuse-lite@^1.0.30001020, caniuse-lite@^1.0.30001023: - version "1.0.30001027" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001027.tgz#283e2ef17d94889cc216a22c6f85303d78ca852d" - integrity sha512-7xvKeErvXZFtUItTHgNtLgS9RJpVnwBlWX8jSo/BO8VsF6deszemZSkJJJA1KOKrXuzZH4WALpAJdq5EyfgMLg== +caniuse-lite@^1.0.30001181: + version "1.0.30001194" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001194.tgz#3d16ff3d734a5a7d9818402c28b1f636c5be5bed" + integrity sha512-iDUOH+oFeBYk5XawYsPtsx/8fFpndAPUQJC7gBTfxHM8xw5nOZv7ceAD4frS1MKCLUac7QL5wdAJiFQlDRjXlA== canonical-path@1.0.0: version "1.0.0" @@ -2355,10 +2752,10 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== +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" @@ -2368,7 +2765,7 @@ chardet@^0.7.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -"chokidar@>=2.0.0 <4.0.0", chokidar@^3.0.0, chokidar@^3.2.1: +"chokidar@>=2.0.0 <4.0.0", chokidar@^3.0.0: version "3.3.1" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.1.tgz#c84e5b3d18d9a4d77558fef466b1bf16bbeb3450" integrity sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg== @@ -2383,7 +2780,7 @@ chardet@^0.7.0: optionalDependencies: fsevents "~2.1.2" -chokidar@^2.0.2, chokidar@^2.0.3, chokidar@^2.1.8: +chokidar@^2.1.8: version "2.1.8" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== @@ -2402,11 +2799,31 @@ chokidar@^2.0.2, chokidar@^2.0.3, chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chownr@^1.1.1, chownr@^1.1.2: +chokidar@^3.4.1, chokidar@^3.4.2, chokidar@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" + integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== + 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 "~2.3.1" + +chownr@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw== +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + chrome-trace-event@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" @@ -2432,10 +2849,10 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" -circular-dependency-plugin@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz#e09dbc2dd3e2928442403e2d45b41cea06bc0a93" - integrity sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw== +circular-dependency-plugin@5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz#39e836079db1d3cf2f988dc48c5188a44058b600" + integrity sha512-g38K9Cm5WRwlaH6g03B9OEz/0qRizI+2I7n+Gz+L5DxXJAPAiWQvwlYNm1V1jkdpUv95bOe/ASm2vfi/G560jQ== class-utils@^0.3.5: version "0.3.6" @@ -2454,13 +2871,6 @@ clean-css@4.2.x: dependencies: source-map "~0.6.0" -clean-css@^4.1.11: - version "4.2.3" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" - integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== - dependencies: - source-map "~0.6.0" - clean-stack@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" @@ -2471,11 +2881,6 @@ cli-boxes@^1.0.0: resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= -cli-boxes@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.0.tgz#538ecae8f9c6ca508e3c3c95b453fe93cb4c168d" - integrity sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w== - cli-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" @@ -2483,24 +2888,42 @@ cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" -cli-spinners@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.2.0.tgz#e8b988d9206c692302d8ee834e7a85c0144d8f77" - integrity sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ== +cli-spinners@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.5.0.tgz#12763e47251bf951cb75c201dfa58ff1bcb2d047" + integrity sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ== -cli-width@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" - integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== -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== +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" - wrap-ansi "^2.0.0" + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +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" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" clone-deep@^4.0.1: version "4.0.1" @@ -2511,23 +2934,11 @@ clone-deep@^4.0.1: kind-of "^6.0.2" shallow-clone "^3.0.0" -clone-response@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= - dependencies: - mimic-response "^1.0.0" - clone@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= -clone@^2.1.1, clone@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - coa@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" @@ -2542,20 +2953,25 @@ 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= -codelyzer@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/codelyzer/-/codelyzer-5.2.1.tgz#44fd431e128009f38c761828c33ebacba9549d32" - integrity sha512-awBZXFcJUyC5HMYXiHzjr3D24tww2l1D1OqtfA9vUhEtYr32a65A+Gblm/OvsO+HuKLYzn8EDMw1inSM3VbxWA== +codelyzer@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/codelyzer/-/codelyzer-6.0.0.tgz#50c98581cc2890e0e9a9f93878dc317115d836ed" + integrity sha512-edJIQCIcxD9DhVSyBEdJ38AbLikm515Wl91t5RDGNT88uA6uQdTm4phTWfn9JhzAI8kXNUcfYyAE90lJElpGtA== dependencies: - app-root-path "^2.2.1" + "@angular/compiler" "9.0.0" + "@angular/core" "9.0.0" + app-root-path "^3.0.0" aria-query "^3.0.0" axobject-query "2.0.2" css-selector-tokenizer "^0.7.1" cssauron "^1.4.0" damerau-levenshtein "^1.0.4" + rxjs "^6.5.3" semver-dsl "^1.0.1" source-map "^0.5.7" sprintf-js "^1.1.2" + tslib "^1.10.0" + zone.js "~0.10.3" collection-visit@^1.0.0: version "1.0.0" @@ -2605,12 +3021,12 @@ color@^3.0.0: color-convert "^1.9.1" color-string "^1.5.2" -colors@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" - integrity sha1-FopHAXVran9RoSzgyXv6KMCE7WM= +colorette@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" + integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== -colors@^1.1.0: +colors@1.4.0, colors@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== @@ -2627,15 +3043,15 @@ commander@2.17.x: resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== -commander@^2.11.0, commander@^2.12.1, commander@^2.20.0, commander@~2.20.3: +commander@^2.11.0, commander@^2.12.1, commander@^2.20.0: 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== -commander@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" - integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== +commander@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.1.0.tgz#f2eaecf131f10e36e07d894698226e36ae0eb5ff" + integrity sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg== commander@~2.19.0: version "2.19.0" @@ -2647,30 +3063,17 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= -compare-versions@^3.4.0: - version "3.5.1" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.5.1.tgz#26e1f5cf0d48a77eced5046b9f67b6b61075a393" - integrity sha512-9fGPIB7C6AyM18CJJBHt5EnCZDG3oiTJYy0NjfIAGjKpzv0tkxWko7TNQHF5ymqm7IH03tqmeuBxtvD+Izh6mg== - -component-bind@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" - integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= - -component-emitter@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= - -component-emitter@^1.2.1: +component-emitter@^1.2.1, component-emitter@~1.3.0: 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== -component-inherit@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" - integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= +compose-function@3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/compose-function/-/compose-function-3.0.3.tgz#9ed675f13cc54501d30950a486ff6a7ba3ab185f" + integrity sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8= + dependencies: + arity-n "^1.0.4" compressible@~2.0.16: version "2.0.17" @@ -2719,24 +3122,12 @@ configstore@^3.0.0: write-file-atomic "^2.0.0" xdg-basedir "^3.0.0" -configstore@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.0.tgz#37de662c7a49b5fe8dbcf8f6f5818d2d81ed852b" - integrity sha512-eE/hvMs7qw7DlcB5JPRnthmrITuHMmACUJAp89v6PT6iOqzoLS7HRWhBtuHMlhNHo2AhUSA/3Dh1bKNJHcublQ== - dependencies: - dot-prop "^5.1.0" - graceful-fs "^4.1.2" - make-dir "^3.0.0" - unique-string "^2.0.0" - write-file-atomic "^3.0.0" - xdg-basedir "^4.0.0" - connect-history-api-fallback@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== -connect@^3.6.0: +connect@^3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== @@ -2751,6 +3142,11 @@ console-browserify@^1.1.0: resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + constants-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" @@ -2768,28 +3164,40 @@ 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.5.1, convert-source-map@^1.7.0: +convert-source-map@1.7.0, convert-source-map@^1.5.1, 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" integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== dependencies: safe-buffer "~5.1.1" +convert-source-map@^0.3.3: + version "0.3.5" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-0.3.5.tgz#f1d802950af7dd2631a1febe0596550c86ab3190" + integrity sha1-8dgClQr33SYxof6+BZZVDIarMZA= + cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= -cookie@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" - integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= - cookie@0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== +cookie@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" + integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== + +copy-anything@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.3.tgz#842407ba02466b0df844819bbe3baebbe5d45d87" + integrity sha512-GK6QUtisv4fNS+XcI7shX0Gx9ORg7QqIznyfho79JTnX1XhLiyZHfftvGiziqzRiEi/Bjhgpi+D2o7HxJFPnDQ== + dependencies: + is-what "^3.12.0" + copy-concurrently@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" @@ -2807,47 +3215,49 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -copy-webpack-plugin@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.1.1.tgz#5481a03dea1123d88a988c6ff8b78247214f0b88" - integrity sha512-P15M5ZC8dyCjQHWwd4Ia/dm0SgVvZJMYeykVIVYXbGyqO4dWB5oyPHp9i7wjwo5LhtlhKbiBCdS2NvM07Wlybg== - dependencies: - cacache "^12.0.3" - find-cache-dir "^2.1.0" - glob-parent "^3.1.0" - globby "^7.1.1" - is-glob "^4.0.1" - loader-utils "^1.2.3" - minimatch "^3.0.4" +copy-webpack-plugin@6.3.2: + version "6.3.2" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-6.3.2.tgz#0e920a6c181a5052aa6e2861b164bda03f83afeb" + integrity sha512-MgJ1uouLIbDg4ST1GzqrGQyKoXY5iPqi6fghFqarijam7FQcBa/r6Rg0VkoIuzx75Xq8iAMghyOueMkWUQ5OaA== + dependencies: + cacache "^15.0.5" + fast-glob "^3.2.4" + find-cache-dir "^3.3.1" + glob-parent "^5.1.1" + globby "^11.0.1" + loader-utils "^2.0.0" normalize-path "^3.0.0" - p-limit "^2.2.1" - schema-utils "^1.0.0" - serialize-javascript "^2.1.2" - webpack-log "^2.0.0" + p-limit "^3.0.2" + schema-utils "^3.0.0" + serialize-javascript "^5.0.1" + webpack-sources "^1.4.3" -core-js-compat@^3.6.0: - version "3.6.4" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.4.tgz#938476569ebb6cda80d339bcf199fae4f16fff17" - integrity sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA== +core-js-compat@^3.8.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.9.1.tgz#4e572acfe90aff69d76d8c37759d21a5c59bb455" + integrity sha512-jXAirMQxrkbiiLsCx9bQPJFA6llDadKMpYrBJQJ3/c4/vsPP/fAf29h24tviRlvwUL6AmY5CHLu2GvjuYviQqA== dependencies: - browserslist "^4.8.3" + browserslist "^4.16.3" semver "7.0.0" -core-js@3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.0.tgz#2b854e451de1967d1e29896025cdc13a2518d9ea" - integrity sha512-AHPTNKzyB+YwgDWoSOCaid9PUSEF6781vsfiK8qUz62zRR448/XgK2NtCbpiUGizbep8Lrpt0Du19PpGGZvw3Q== - -core-js@^2.2.0: - version "2.6.11" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" - integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== +core-js@3.8.3: + version "3.8.3" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.8.3.tgz#c21906e1f14f3689f93abcc6e26883550dd92dd0" + integrity sha512-KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q== 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= +cors@~2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + cosmiconfig@^5.0.0: version "5.2.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" @@ -2858,16 +3268,16 @@ cosmiconfig@^5.0.0: js-yaml "^3.13.1" parse-json "^4.0.0" -coverage-istanbul-loader@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/coverage-istanbul-loader/-/coverage-istanbul-loader-2.0.3.tgz#87d42f03fa0fd3fa8743ec76945d9d67f105722a" - integrity sha512-LiGRvyIuzVYs3M1ZYK1tF0HekjH0DJ8zFdUwAZq378EJzqOgToyb1690dp3TAUlP6Y+82uu42LRjuROVeJ54CA== +cosmiconfig@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" + integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== dependencies: - convert-source-map "^1.7.0" - istanbul-lib-instrument "^4.0.0" - loader-utils "^1.2.3" - merge-source-map "^1.1.0" - schema-utils "^2.6.1" + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" create-ecdh@^4.0.0: version "4.0.3" @@ -2907,6 +3317,17 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" +critters@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/critters/-/critters-0.0.7.tgz#548b470360f4f3c51e622de3b7aa733c8f0b17bf" + integrity sha512-qUF2SaAWFYjNPdCcPpu68p2DnHiosia84yx5mPTlUMQjkjChR+n6sO1/I7yn2U2qNDgSPTd2SoaTIDQcUL+EwQ== + dependencies: + chalk "^4.1.0" + css "^3.0.0" + parse5 "^6.0.1" + parse5-htmlparser2-tree-adapter "^6.0.1" + pretty-bytes "^5.3.0" + cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" @@ -2949,11 +3370,6 @@ crypto-random-string@^1.0.0: resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= -crypto-random-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" - integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== - css-color-names@0.0.4, css-color-names@^0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" @@ -2967,6 +3383,24 @@ css-declaration-sorter@^4.0.1: postcss "^7.0.1" timsort "^0.3.0" +css-loader@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.0.1.tgz#9e4de0d6636a6266a585bd0900b422c85539d25f" + integrity sha512-cXc2ti9V234cq7rJzFKhirb2L2iPy8ZjALeVJAozXYz9te3r4eqLSixNAbMDJSgJEQywqXzs8gonxaboeKqwiw== + dependencies: + camelcase "^6.2.0" + cssesc "^3.0.0" + icss-utils "^5.0.0" + loader-utils "^2.0.0" + postcss "^8.1.4" + postcss-modules-extract-imports "^3.0.0" + postcss-modules-local-by-default "^4.0.0" + postcss-modules-scope "^3.0.0" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.1.0" + schema-utils "^3.0.0" + semver "^7.3.2" + css-parse@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/css-parse/-/css-parse-2.0.0.tgz#a468ee667c16d81ccf05c58c38d2a97c780dbfd4" @@ -3041,6 +3475,15 @@ css@^2.0.0: source-map-resolve "^0.5.2" urix "^0.1.0" +css@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/css/-/css-3.0.0.tgz#4447a4d58fdd03367c516ca9f64ae365cee4aa5d" + integrity sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ== + dependencies: + inherits "^2.0.4" + source-map "^0.6.1" + source-map-resolve "^0.6.0" + cssauron@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/cssauron/-/cssauron-1.4.0.tgz#a6602dff7e04a8306dc0db9a551e92e8b5662ad8" @@ -3058,6 +3501,11 @@ cssesc@^2.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + cssnano-preset-default@^4.0.7: version "4.0.7" resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" @@ -3116,7 +3564,7 @@ cssnano-util-same-parent@^4.0.0: resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== -cssnano@4.1.10: +cssnano@4.1.10, cssnano@^4.1.10: version "4.1.10" resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== @@ -3148,6 +3596,14 @@ cyclist@^1.0.1: resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + damerau-levenshtein@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.5.tgz#780cf7144eb2e8dbd1c3bb83ae31100ccc31a414" @@ -3160,11 +3616,16 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -date-format@^2.0.0: +date-format@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/date-format/-/date-format-2.1.0.tgz#31d5b5ea211cf5fd764cd38baf9d033df7e125cf" integrity sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA== +date-format@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/date-format/-/date-format-3.0.0.tgz#eb8780365c7d2b1511078fb491e6479780f3ad95" + integrity sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w== + debug@2.6.9, debug@^2.2.0, debug@^2.3.3: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -3172,20 +3633,27 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3: dependencies: ms "2.0.0" -debug@3.1.0, debug@~3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== +debug@4, debug@4.3.1, debug@~4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== dependencies: - ms "2.0.0" + ms "2.1.2" -debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6: +debug@^3.0.0, debug@^3.1.0, debug@^3.1.1: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== dependencies: ms "^2.1.1" +debug@^3.2.6: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.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" @@ -3193,10 +3661,12 @@ debug@^4.1.0, debug@^4.1.1: dependencies: ms "^2.1.1" -debuglog@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" - integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= +debug@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" decamelize@^1.2.0: version "1.2.0" @@ -3208,13 +3678,6 @@ 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= -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" - deep-equal@^1.0.1: version "1.1.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" @@ -3232,6 +3695,11 @@ 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== +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== + default-gateway@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" @@ -3240,24 +3708,12 @@ default-gateway@^4.2.0: execa "^1.0.0" ip-regex "^2.1.0" -default-require-extensions@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-2.0.0.tgz#f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7" - integrity sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc= - dependencies: - strip-bom "^3.0.0" - defaults@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= dependencies: - clone "^1.0.2" - -defer-to-connect@^1.0.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" - integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + clone "^1.0.2" define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" @@ -3319,7 +3775,12 @@ delayed-stream@~1.0.0: resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= -depd@~1.1.2: +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +depd@^1.1.2, depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= @@ -3347,24 +3808,21 @@ detect-node@^2.0.4: resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== -dezalgo@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" - integrity sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY= - dependencies: - asap "^2.0.0" - wrappy "1" - di@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" integrity sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw= -diff@^3.1.0, diff@^3.2.0: +diff@^3.1.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + diffie-hellman@^5.0.0: version "5.0.3" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" @@ -3374,12 +3832,12 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" -dir-glob@^2.0.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" - integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== dependencies: - path-type "^3.0.0" + path-type "^4.0.0" dns-equal@^1.0.0: version "1.0.0" @@ -3408,7 +3866,7 @@ dom-converter@^0.2: dependencies: utila "~0.4" -dom-serialize@^2.2.0: +dom-serialize@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" integrity sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs= @@ -3471,13 +3929,6 @@ dot-prop@^4.1.0, dot-prop@^4.1.1: dependencies: is-obj "^1.0.0" -dot-prop@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" - integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== - dependencies: - is-obj "^2.0.0" - duplexer3@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" @@ -3506,20 +3957,20 @@ 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.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.338: version "1.3.341" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.341.tgz#ad4c039bf621715a12dd814a95a7d89ec80b092c" integrity sha512-iezlV55/tan1rvdvt7yg7VHRSkt+sKfzQ16wTDqTbQqtl4+pSUkKPXpQHDvEt0c7gKcUHHwUbffOgXz6bn096g== -electron-to-chromium@^1.3.341: - version "1.3.349" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.349.tgz#663f26a69d348a462df47b4d7ab162a2f29bbcb7" - integrity sha512-uEb2zs6EJ6OZIqaMsCSliYVgzE/f7/s1fLWqtvRtHg/v5KBF2xds974fUnyatfxIDgkqzQVwFtam5KExqywx0Q== +electron-to-chromium@^1.3.488: + version "1.3.502" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.502.tgz#6a55e993ef60a01fbdc2152ef5e47ee00c885c98" + integrity sha512-TIeXOaHAvfP7FemGUtAJxStmOc1YFGWFNqdey/4Nk41L9b1nMmDVDGNMIWhZJvOfJxix6Cv5FGEnBK+yvw3UTg== + +electron-to-chromium@^1.3.649: + version "1.3.677" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.677.tgz#b5d586b0d1976c97cc7e95262677ac5944199513" + integrity sha512-Tcmk+oKQgpjcM+KYanlkd76ZtpzalkpUULnlJDP6vjHtR7UU564IM9Qv5DxqHZNBQjzXm6mkn7Y8bw2OoE3FmQ== elliptic@^6.0.0: version "6.5.2" @@ -3549,17 +4000,22 @@ emojis-list@^2.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= -encoding@^0.1.11: - version "0.1.12" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" - integrity sha1-U4tm8+5izRq1HsMjgp0flIDHS+s= +encoding@^0.1.12: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== dependencies: - iconv-lite "~0.4.13" + iconv-lite "^0.6.2" end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" @@ -3568,50 +4024,38 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" -engine.io-client@~3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz#6f54c0475de487158a1a7c77d10178708b6add36" - integrity sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw== - dependencies: - component-emitter "1.2.1" - component-inherit "0.0.3" - debug "~3.1.0" - engine.io-parser "~2.1.1" - has-cors "1.1.0" - indexof "0.0.1" - parseqs "0.0.5" - parseuri "0.0.5" - ws "~3.3.1" - xmlhttprequest-ssl "~1.5.4" - yeast "0.1.2" - -engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.3.tgz#757ab970fbf2dfb32c7b74b033216d5739ef79a6" - integrity sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA== +engine.io-parser@~4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-4.0.2.tgz#e41d0b3fb66f7bf4a3671d2038a154024edb501e" + integrity sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg== dependencies: - after "0.8.2" - arraybuffer.slice "~0.0.7" - base64-arraybuffer "0.1.5" - blob "0.0.5" - has-binary2 "~1.0.2" + base64-arraybuffer "0.1.4" -engine.io@~3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.1.tgz#b60281c35484a70ee0351ea0ebff83ec8c9522a2" - integrity sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w== +engine.io@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-4.1.1.tgz#9a8f8a5ac5a5ea316183c489bf7f5b6cf91ace5b" + integrity sha512-t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w== dependencies: accepts "~1.3.4" - base64id "1.0.0" - cookie "0.3.1" - debug "~3.1.0" - engine.io-parser "~2.1.0" - ws "~3.3.1" - -enhanced-resolve@4.1.1, enhanced-resolve@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz#2937e2b8066cd0fe7ce0990a98f0d71a35189f66" - integrity sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA== + base64id "2.0.0" + cookie "~0.4.1" + cors "~2.8.5" + debug "~4.3.1" + engine.io-parser "~4.0.0" + ws "~7.4.2" + +enhanced-resolve@5.7.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz#525c5d856680fbd5052de453ac83e32049958b5c" + integrity sha512-6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +enhanced-resolve@^4.3.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" + integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== dependencies: graceful-fs "^4.1.2" memory-fs "^0.5.0" @@ -3632,11 +4076,21 @@ entities@^2.0.0: resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== +env-paths@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" + integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== + err-code@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" integrity sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA= +err-code@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== + errno@^0.1.1, errno@^0.1.3, errno@~0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" @@ -3694,6 +4148,24 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" +es5-ext@^0.10.35, es5-ext@^0.10.50: + version "0.10.53" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" + integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.3" + next-tick "~1.0.0" + +es6-iterator@2.0.3, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + es6-promise@^4.0.3: version "4.2.8" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" @@ -3706,6 +4178,24 @@ es6-promisify@^5.0.0: dependencies: es6-promise "^4.0.3" +es6-symbol@^3.1.1, es6-symbol@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +escalade@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.0.2.tgz#6a580d70edb87880f22b4c91d0d56078df6962c4" + integrity sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ== + +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-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -3746,6 +4236,11 @@ estree-walker@^1.0.1: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== +estree-walker@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -3861,6 +4356,13 @@ express@^4.17.1: utils-merge "1.0.1" vary "~1.1.2" +ext@^1.1.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" + integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== + dependencies: + type "^2.0.0" + extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -3919,12 +4421,24 @@ fast-deep-equal@^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-json-stable-stringify@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= +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-glob@^3.1.1, fast-glob@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3" + integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.0" + merge2 "^1.3.0" + micromatch "^4.0.2" + picomatch "^2.2.1" -fast-json-stable-stringify@^2.0.0: +fast-json-stable-stringify@2.1.0, fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== @@ -3934,21 +4448,21 @@ fastparse@^1.1.1: resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== -faye-websocket@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" - integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= +fastq@^1.6.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.8.0.tgz#550e1f9f59bbc65fe185cb6a9b4d95357107f481" + integrity sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q== dependencies: - websocket-driver ">=0.5.1" + reusify "^1.0.4" -faye-websocket@~0.11.1: +faye-websocket@^0.11.3: version "0.11.3" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== dependencies: websocket-driver ">=0.5.1" -figgy-pudding@^3.4.1, figgy-pudding@^3.5.1: +figgy-pudding@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== @@ -3960,27 +4474,19 @@ figures@^3.0.0: dependencies: escape-string-regexp "^1.0.5" -file-loader@4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-4.2.0.tgz#5fb124d2369d7075d70a9a5abecd12e60a95215e" - integrity sha512-+xZnaK5R8kBJrHK0/6HRlrKNamvVS5rjyuju+rnyxRGuwUJwpAMsVzUl5dz6rK8brkzjV6JpcFNjp6NqV0g1OQ== +file-loader@6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" + integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== dependencies: - loader-utils "^1.2.3" - schema-utils "^2.0.0" + loader-utils "^2.0.0" + schema-utils "^3.0.0" 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== -fileset@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" - integrity sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA= - dependencies: - glob "^7.0.3" - minimatch "^3.0.3" - fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" @@ -4011,16 +4517,16 @@ finalhandler@1.1.2, finalhandler@~1.1.2: statuses "~1.5.0" unpipe "~1.0.0" -find-cache-dir@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.0.0.tgz#cd4b7dd97b7185b7e17dbfe2d6e4115ee3eeb8fc" - integrity sha512-t7ulV1fmbxh5G9l/492O1p5+EBbr3uwpt6odhFTMc+nWyhmbloe+ja9BZ8pIBtqFWhOmCWVjx+pTW4zDkFoclw== +find-cache-dir@3.3.1, find-cache-dir@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" + integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== dependencies: commondir "^1.0.1" - make-dir "^3.0.0" + make-dir "^3.0.2" pkg-dir "^4.1.0" -find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: +find-cache-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== @@ -4029,15 +4535,6 @@ find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: make-dir "^2.0.0" pkg-dir "^3.0.0" -find-cache-dir@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.2.0.tgz#e7fe44c1abc1299f516146e563108fd1006c1874" - integrity sha512-1JKclkYYsf1q9WIJKLZa9S9muC+08RIjzAlLrK4QcYLJMS6mk9yombQ9qf+zJ7H9LS800k0s44L4sDq9VYzqyg== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.0" - pkg-dir "^4.1.0" - find-parent-dir@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54" @@ -4050,7 +4547,7 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -find-up@^4.0.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== @@ -4066,10 +4563,10 @@ find-yarn-workspace-root@^1.2.1: fs-extra "^4.0.3" micromatch "^3.1.4" -flatted@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" - integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== +flatted@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== flush-write-stream@^1.0.0: version "1.1.1" @@ -4110,6 +4607,11 @@ forwarded@~0.1.2: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= +fraction.js@^4.0.13: + version "4.0.13" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.0.13.tgz#3c1c315fa16b35c85fffa95725a36fa729c69dfe" + integrity sha512-E1fz2Xs9ltlUp+qbiyx9wmt2n9dRzPsS11Jtdb8D2o+cC7wr9xkkKsVKJuBX0ST+LVS+LhLO+SbLJNtfWcJvXA== + fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" @@ -4130,13 +4632,6 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" -fs-access@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a" - integrity sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o= - dependencies: - null-check "^1.0.0" - fs-extra@4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.2.tgz#f91704c53d1b461f893452b0c307d9997647ab6b" @@ -4173,13 +4668,6 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-minipass@^1.2.5: - version "1.2.7" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" - integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== - dependencies: - minipass "^2.6.0" - fs-minipass@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.0.0.tgz#a6415edab02fae4b9e9230bc87ee2e4472003cd1" @@ -4187,6 +4675,13 @@ fs-minipass@^2.0.0: dependencies: minipass "^3.0.0" +fs-minipass@^2.1.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-write-stream-atomic@^1.0.8: version "1.0.10" resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" @@ -4215,50 +4710,62 @@ fsevents@~2.1.2: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805" integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA== +fsevents@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + 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== -genfun@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/genfun/-/genfun-5.0.0.tgz#9dd9710a06900a5c4a5bf57aca5da4e52fe76537" - integrity sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA== +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" gensync@^1.0.0-beta.1: version "1.0.0-beta.1" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== -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.2: + 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: +get-caller-file@^2.0.1, get-caller-file@^2.0.5: 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-port@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" + integrity sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw= + 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-stream@^4.0.0, get-stream@^4.1.0: +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== dependencies: pump "^3.0.0" -get-stream@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" - integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== - 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" @@ -4279,6 +4786,13 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" +glob-parent@^5.1.0, glob-parent@^5.1.1: + 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-parent@~5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2" @@ -4286,19 +4800,7 @@ glob-parent@~5.1.0: dependencies: is-glob "^4.0.1" -glob@7.1.5: - version "7.1.5" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.5.tgz#6714c69bee20f3c3e64c4dd905553e532b40cdc0" - integrity sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ== - 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.0.3, glob@^7.0.6, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: +glob@7.1.6, glob@^7.0.3, glob@^7.0.6, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -4317,18 +4819,23 @@ global-dirs@^0.1.0: dependencies: ini "^1.3.4" -global-dirs@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.0.1.tgz#acdf3bb6685bcd55cb35e8a052266569e9469201" - integrity sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A== - 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== +globby@^11.0.1: + version "11.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357" + integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + globby@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" @@ -4352,18 +4859,6 @@ globby@^6.1.0: pify "^2.0.0" pinkie-promise "^2.0.0" -globby@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680" - integrity sha1-+yzP+UAfhgCUXfral0QMypcrhoA= - dependencies: - array-union "^1.0.1" - dir-glob "^2.0.0" - glob "^7.1.2" - ignore "^3.3.5" - pify "^3.0.0" - slash "^1.0.0" - got@^6.7.1: version "6.7.1" resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" @@ -4381,44 +4876,26 @@ got@^6.7.1: unzip-response "^2.0.1" url-parse-lax "^1.0.0" -got@^9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - dependencies: - "@sindresorhus/is" "^0.14.0" - "@szmarczak/http-timer" "^1.1.2" - cacheable-request "^6.0.0" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^4.1.0" - lowercase-keys "^1.0.1" - mimic-response "^1.0.1" - p-cancelable "^1.0.0" - to-readable-stream "^1.0.0" - url-parse-lax "^3.0.0" - -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.3" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== +graceful-fs@^4.2.3: + version "4.2.6" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" + integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== + +graceful-fs@^4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== + handle-thing@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== -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" @@ -4432,6 +4909,14 @@ har-validator@~5.1.0: ajv "^6.5.5" har-schema "^2.0.0" +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.12.3" + har-schema "^2.0.0" + has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" @@ -4439,18 +4924,6 @@ has-ansi@^2.0.0: dependencies: ansi-regex "^2.0.0" -has-binary2@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" - integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== - dependencies: - isarray "2.0.1" - -has-cors@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" - integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= - has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -4466,6 +4939,11 @@ has-symbols@^1.0.0, has-symbols@^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-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + has-value@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" @@ -4497,11 +4975,6 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -has-yarn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" - integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== - has@^1.0.0, has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -4544,11 +5017,6 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hosted-git-info@^2.1.4, hosted-git-info@^2.7.1: - version "2.8.5" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c" - integrity sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg== - hosted-git-info@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.2.tgz#8b7e3bd114b59b51786f8bade0f39ddc80275a97" @@ -4556,6 +5024,13 @@ hosted-git-info@^3.0.2: dependencies: lru-cache "^5.1.1" +hosted-git-info@^3.0.6: + version "3.0.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.8.tgz#6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d" + integrity sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw== + dependencies: + lru-cache "^6.0.0" + hpack.js@^2.1.6: version "2.1.6" resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" @@ -4581,10 +5056,15 @@ html-comment-regex@^1.1.0: resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== -html-entities@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" - integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8= +html-entities@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44" + integrity sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA== + +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== html-minifier@^3.2.3: version "3.5.21" @@ -4624,15 +5104,10 @@ htmlparser2@^3.3.0: inherits "^2.0.1" readable-stream "^3.1.1" -http-cache-semantics@^3.8.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" - integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== - -http-cache-semantics@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#13eeb612424bb113d52172c28a13109c46fa85d7" - integrity sha512-Z2EICWNJou7Tr9Bd2M2UqDJq3A9F2ePG9w3lIpjoyuSyXFP9QbniJVu3XQYytuw5ebmG7dXSXO9PgAjJG8DDKA== +http-cache-semantics@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== http-deceiver@^1.2.7: version "1.2.7" @@ -4676,13 +5151,19 @@ http-errors@~1.7.2: resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= -http-proxy-agent@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" - integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg== +http-parser-js@>=0.5.1: + version "0.5.3" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" + integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== + +http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== dependencies: - agent-base "4" - debug "3.1.0" + "@tootallnate/once" "1" + agent-base "6" + debug "4" http-proxy-middleware@0.19.1: version "0.19.1" @@ -4694,7 +5175,7 @@ http-proxy-middleware@0.19.1: lodash "^4.17.11" micromatch "^3.1.10" -http-proxy@^1.13.0, http-proxy@^1.17.0: +http-proxy@^1.17.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== @@ -4703,6 +5184,15 @@ http-proxy@^1.13.0, http-proxy@^1.17.0: follow-redirects "^1.0.0" requires-port "^1.0.0" +http-proxy@^1.18.1: + 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" + requires-port "^1.0.0" + http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" @@ -4717,7 +5207,15 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= -https-proxy-agent@^2.2.1, https-proxy-agent@^2.2.3: +https-proxy-agent@5.0.0, https-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" + integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== + dependencies: + agent-base "6" + debug "4" + +https-proxy-agent@^2.2.1: version "2.2.4" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b" integrity sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg== @@ -4732,13 +5230,30 @@ humanize-ms@^1.2.1: dependencies: ms "^2.0.0" -iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@~0.4.13: +iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" +iconv-lite@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" + integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +icss-utils@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + ieee754@^1.1.4: version "1.1.13" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" @@ -4749,17 +5264,17 @@ iferr@^0.1.5: resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= -ignore-walk@^3.0.1: +ignore-walk@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== dependencies: minimatch "^3.0.4" -ignore@^3.3.5: - version "3.3.10" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" - integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== +ignore@^5.1.4: + version "5.1.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" + integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== image-size@~0.5.0: version "0.5.5" @@ -4771,13 +5286,6 @@ immediate@~3.0.5: resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= -import-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" - integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= - dependencies: - import-from "^2.1.0" - import-fresh@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" @@ -4786,12 +5294,13 @@ import-fresh@^2.0.0: caller-path "^2.0.0" resolve-from "^3.0.0" -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - integrity sha1-M1238qev/VOqpHHUuAId7ja387E= +import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: - resolve-from "^3.0.0" + parent-module "^1.0.0" + resolve-from "^4.0.0" import-lazy@^2.1.0: version "2.1.0" @@ -4821,11 +5330,6 @@ indexes-of@^1.0.1: resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= - infer-owner@^1.0.3, infer-owner@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" @@ -4839,7 +5343,7 @@ 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.1, inherits@~2.0.3: +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: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -4854,33 +5358,40 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@1.3.5, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: +ini@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + +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== -injection-js@^2.2.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/injection-js/-/injection-js-2.3.0.tgz#56d807282dfaf2f9663f45373c4206d7793c5dd6" - integrity sha512-rhS6E5jv603kbaO72ylOt0hGF1LT03oqQ4GU5KOO0qSaRbIWmdUCHjXq+VT79jL6/NmXtw9ccfK6dh/CzjoYjA== +injection-js@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/injection-js/-/injection-js-2.4.0.tgz#ebe8871b1a349f23294eaa751bbd8209a636e754" + integrity sha512-6jiJt0tCAo9zjHbcwLiPL+IuNe9SQ6a9g0PEzafThW3fOQi0mrmiJGBJvDD6tmhPh8cQHIQtCOrJuBfQME4kPA== + dependencies: + tslib "^2.0.0" -inquirer@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.0.0.tgz#9e2b032dde77da1db5db804758b8fea3a970519a" - integrity sha512-rSdC7zelHdRQFkWnhsMu2+2SO41mpv2oF2zy4tMhmiLWkcKbOAs87fWAJhVXttKVwhdZvymvnuM95EyEXg2/tQ== +inquirer@7.3.3: + version "7.3.3" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" + integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== dependencies: ansi-escapes "^4.2.1" - chalk "^2.4.2" + chalk "^4.1.0" cli-cursor "^3.1.0" - cli-width "^2.0.0" + cli-width "^3.0.0" external-editor "^3.0.3" figures "^3.0.0" - lodash "^4.17.15" + lodash "^4.17.19" mute-stream "0.0.8" - run-async "^2.2.0" - rxjs "^6.4.0" + run-async "^2.4.0" + rxjs "^6.6.0" string-width "^4.1.0" - strip-ansi "^5.1.0" + strip-ansi "^6.0.0" through "^2.3.6" internal-ip@^4.3.0: @@ -4891,24 +5402,12 @@ internal-ip@^4.3.0: default-gateway "^4.2.0" ipaddr.js "^1.9.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" - -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== - ip-regex@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= -ip@1.1.5, ip@^1.1.0, ip@^1.1.5: +ip@^1.1.0, ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= @@ -5012,6 +5511,13 @@ is-color-stop@^1.0.0: rgb-regex "^1.0.1" rgba-regex "^1.0.0" +is-core-module@^2.1.0, is-core-module@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" + integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + 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" @@ -5054,6 +5560,11 @@ is-directory@^0.3.1: resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= +is-docker@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.0.0.tgz#2cb0df0e75e2d064fe1864c37cdeacb7b2dcf25b" + integrity sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ== + 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" @@ -5110,19 +5621,16 @@ is-installed-globally@^0.1.0: global-dirs "^0.1.0" is-path-inside "^1.0.0" -is-installed-globally@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.1.tgz#679afef819347a72584617fd19497f010b8ed35f" - integrity sha512-oiEcGoQbGc+3/iijAijrK2qFpkNoNjsHOm/5V5iaeydyrS/hnwaRCEgH5cpW0P3T1lSjV5piB7S5b5lEugNLhg== - dependencies: - global-dirs "^2.0.1" - is-path-inside "^3.0.1" - is-interactive@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== +is-lambda@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" + integrity sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU= + is-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" @@ -5133,11 +5641,6 @@ is-npm@^1.0.0: resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ= -is-npm@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" - integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== - is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" @@ -5155,11 +5658,6 @@ is-obj@^1.0.0: resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - is-path-cwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" @@ -5198,16 +5696,6 @@ is-path-inside@^2.1.0: dependencies: path-is-inside "^1.0.2" -is-path-inside@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017" - integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg== - -is-plain-obj@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - 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" @@ -5215,22 +5703,17 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-promise@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" - integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= - 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-reference@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.1.4.tgz#3f95849886ddb70256a3e6d062b1a68c13c51427" - integrity sha512-uJA/CDPO3Tao3GTrxYn6AwkM4nUPJiGGYu5+cB8qbC7WGFlrKZbiRo7SFKxUAEpFUfiHofWCXBUNhvYJMh+6zw== +is-reference@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" + integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== dependencies: - "@types/estree" "0.0.39" + "@types/estree" "*" is-regex@^1.0.4, is-regex@^1.0.5: version "1.0.5" @@ -5268,11 +5751,16 @@ is-symbol@^1.0.2: dependencies: has-symbols "^1.0.1" -is-typedarray@^1.0.0, is-typedarray@~1.0.0: +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-what@^3.12.0: + version "3.14.1" + resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.14.1.tgz#e1222f46ddda85dead0fd1c9df131760e77755c1" + integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA== + is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" @@ -5283,32 +5771,22 @@ is-wsl@^1.1.0: resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= -is-wsl@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d" - integrity sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog== - -is-yarn-global@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" - integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== +is-wsl@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" 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= -isarray@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" - integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= - -isbinaryfile@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80" - integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw== - dependencies: - buffer-alloc "^1.2.0" +isbinaryfile@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.6.tgz#edcb62b224e2b4710830b67498c8e4e5a4d2610b" + integrity sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg== isexe@^2.0.0: version "2.0.0" @@ -5332,25 +5810,6 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -istanbul-api@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-2.1.6.tgz#d61702a9d1c66ad89d92e66d401e16b0bda4a35f" - integrity sha512-x0Eicp6KsShG1k1rMgBAi/1GgY7kFGEBwQpw3PXGEmu+rBcBNhqU8g2DgY9mlepAsLPzrzrbqSgCGANnki4POA== - dependencies: - async "^2.6.2" - compare-versions "^3.4.0" - fileset "^2.0.3" - istanbul-lib-coverage "^2.0.5" - istanbul-lib-hook "^2.0.7" - istanbul-lib-instrument "^3.3.0" - istanbul-lib-report "^2.0.8" - istanbul-lib-source-maps "^3.0.6" - istanbul-reports "^2.2.4" - js-yaml "^3.13.1" - make-dir "^2.1.0" - minimatch "^3.0.4" - once "^1.4.0" - istanbul-lib-coverage@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49" @@ -5361,47 +5820,24 @@ istanbul-lib-coverage@^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-hook@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz#c95695f383d4f8f60df1f04252a9550e15b5b133" - integrity sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA== - dependencies: - append-transform "^1.0.0" - -istanbul-lib-instrument@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630" - integrity sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA== - dependencies: - "@babel/generator" "^7.4.0" - "@babel/parser" "^7.4.3" - "@babel/template" "^7.4.0" - "@babel/traverse" "^7.4.3" - "@babel/types" "^7.4.0" - istanbul-lib-coverage "^2.0.5" - semver "^6.0.0" - -istanbul-lib-instrument@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.0.tgz#53321a7970f076262fd3292c8f9b2e4ac544aae1" - integrity sha512-Nm4wVHdo7ZXSG30KjZ2Wl5SU/Bw7bDx1PdaiIFzEStdjs0H12mOTncn1GVYuqQSaZxpg87VGBRsVRPGD2cD1AQ== +istanbul-lib-instrument@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== dependencies: "@babel/core" "^7.7.5" - "@babel/parser" "^7.7.5" - "@babel/template" "^7.7.4" - "@babel/traverse" "^7.7.4" "@istanbuljs/schema" "^0.1.2" istanbul-lib-coverage "^3.0.0" semver "^6.3.0" -istanbul-lib-report@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz#5a8113cd746d43c4889eba36ab10e7d50c9b4f33" - integrity sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ== - dependencies: - istanbul-lib-coverage "^2.0.5" - make-dir "^2.1.0" - supports-color "^6.1.0" +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-lib-source-maps@^3.0.6: version "3.0.6" @@ -5414,34 +5850,30 @@ istanbul-lib-source-maps@^3.0.6: rimraf "^2.6.3" source-map "^0.6.1" -istanbul-reports@^2.2.4: - 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== +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: - handlebars "^4.1.2" + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" -jasmine-core@^3.3: - version "3.5.0" - resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.5.0.tgz#132c23e645af96d85c8bca13c8758b18429fc1e4" - integrity sha512-nCeAiw37MIMA9w9IXso7bRaLl+c/ef3wnxsoSAlYrzS+Ot0zTG6nU8G/cIfGkqpkjX2wNaIW9RFG0TwIFnG6bA== +jasmine-core@^3.6.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-core@~2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.8.0.tgz#bcc979ae1f9fd05701e45e52e65d3a5d63f1a24e" integrity sha1-vMl5rh+f0FcB5F5S5l06XWPxok4= -jasmine-core@~3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.4.0.tgz#2a74618e966026530c3518f03e9f845d26473ce3" - integrity sha512-HU/YxV4i6GcmiH4duATwAbJQMlE0MsDIR5XmSVxURxKHn3aGAdbY1/ZJFmVRbKtnLwIxxMJD7gYaPsypcbYimg== - -jasmine-spec-reporter@~4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/jasmine-spec-reporter/-/jasmine-spec-reporter-4.2.1.tgz#1d632aec0341670ad324f92ba84b4b32b35e9e22" - integrity sha512-FZBoZu7VE5nR7Nilzy+Np8KuVIOxF4oXDPDknehCYBDE080EnlPu0afdZNmpGDBRCUBv3mj5qgqCRmk6W/K8vg== +jasmine-spec-reporter@~5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/jasmine-spec-reporter/-/jasmine-spec-reporter-5.0.2.tgz#b61288ab074ad440dc2477c4d42840b0e74a6b95" + integrity sha512-6gP1LbVgJ+d7PKksQBc2H0oDGNRQI3gKUsWlswKaQ2fif9X5gzhQcgM5+kiJGCQVurOG09jqNhk7payggyp5+g== dependencies: - colors "1.1.2" + colors "1.4.0" jasmine@2.8.0: version "2.8.0" @@ -5457,38 +5889,21 @@ jasminewd2@^2.1.0: resolved "https://registry.yarnpkg.com/jasminewd2/-/jasminewd2-2.2.0.tgz#e37cf0b17f199cce23bea71b2039395246b4ec4e" integrity sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4= -jest-worker@24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" - integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== - dependencies: - merge-stream "^2.0.0" - supports-color "^6.1.0" - -jest-worker@^25.1.0: - version "25.1.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.1.0.tgz#75d038bad6fdf58eba0d2ec1835856c497e3907a" - integrity sha512-ZHhHtlxOWSxCoNOKHGbiLzXnl42ga9CxDr27H36Qn+15pQZd3R/F24jrmjDelw9j/iHUIWMWs08/u2QN50HHOg== +jest-worker@26.6.2, jest-worker@^26.5.0: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== dependencies: + "@types/node" "*" merge-stream "^2.0.0" supports-color "^7.0.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: +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== -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= - -js-yaml@^3.13.0, js-yaml@^3.13.1: +js-yaml@^3.13.1: version "3.13.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== @@ -5511,21 +5926,26 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= - -json-parse-better-errors@^1.0.0, json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + 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" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" @@ -5536,7 +5956,7 @@ 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= -json3@^3.3.2: +json3@^3.3.3: version "3.3.3" resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== @@ -5560,6 +5980,18 @@ json5@^2.1.0: dependencies: minimist "^1.2.0" +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.5" + +jsonc-parser@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" + integrity sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA== + jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -5567,7 +5999,7 @@ jsonfile@^4.0.0: optionalDependencies: graceful-fs "^4.1.6" -jsonparse@^1.2.0: +jsonparse@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= @@ -5592,33 +6024,35 @@ jszip@^3.1.3: readable-stream "~2.3.6" set-immediate-shim "~1.0.1" -karma-chrome-launcher@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz#cf1b9d07136cc18fe239327d24654c3dbc368acf" - integrity sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w== +karma-chrome-launcher@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz#805a586799a4d05f4e54f72a204979f3f3066738" + integrity sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg== dependencies: - fs-access "^1.0.0" which "^1.2.1" -karma-coverage-istanbul-reporter@~2.0.1: - version "2.0.6" - resolved "https://registry.yarnpkg.com/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-2.0.6.tgz#7b6e9c88781447bb87aa6ac24bf74b93e558adc3" - integrity sha512-WFh77RI8bMIKdOvI/1/IBmgnM+Q7NOLhnwG91QJrM8lW+CIXCjTzhhUsT/svLvAkLmR10uWY4RyYbHMLkTglvg== +karma-coverage-istanbul-reporter@~3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz#f3b5303553aadc8e681d40d360dfdc19bc7e9fe9" + integrity sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw== dependencies: - istanbul-api "^2.1.6" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^3.0.6" + istanbul-reports "^3.0.2" minimatch "^3.0.4" -karma-jasmine-html-reporter@^1.4.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.5.1.tgz#0fad2d2ac416bc04724318aad29b89bd86f7bfbc" - integrity sha512-LlLqsoGyxT1981z46BRaC1SaY4pTo4EHCA/qZvJEMQXzTtGMyIlmwtxny6FiLO/N/OmZh69eaoNzvBkbHVVFQA== +karma-jasmine-html-reporter@^1.5.0: + version "1.5.4" + resolved "https://registry.yarnpkg.com/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.5.4.tgz#669f33d694d88fce1b0ccfda57111de716cb0192" + integrity sha512-PtilRLno5O6wH3lDihRnz0Ba8oSn0YUJqKjjux1peoYGwo0AQqrWRbdWk/RLzcGlb+onTyXAnHl6M+Hu3UxG/Q== -karma-jasmine@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-2.0.1.tgz#26e3e31f2faf272dd80ebb0e1898914cc3a19763" - integrity sha512-iuC0hmr9b+SNn1DaUD2QEYtUxkS1J+bSJSn7ejdEexs7P8EYvA1CWkEdrDQ+8jVH3AgWlCNwjYsT1chjcNW9lA== +karma-jasmine@~4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-4.0.1.tgz#b99e073b6d99a5196fc4bffc121b89313b0abd82" + integrity sha512-h8XDAhTiZjJKzfkoO1laMH+zfNlra+dEQHUAjpn5JV1zCPtOIVWGQjLBrqhnzQa/hrU2XrZwSyBa6XjEBzfXzw== dependencies: - jasmine-core "^3.3" + jasmine-core "^3.6.0" karma-source-map-support@1.4.0: version "1.4.0" @@ -5627,45 +6061,34 @@ karma-source-map-support@1.4.0: dependencies: source-map-support "^0.5.5" -karma@~4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/karma/-/karma-4.1.0.tgz#d07387c9743a575b40faf73e8a3eb5421c2193e1" - integrity sha512-xckiDqyNi512U4dXGOOSyLKPwek6X/vUizSy2f3geYevbLj+UIdvNwbn7IwfUIL2g1GXEPWt/87qFD1fBbl/Uw== - dependencies: - bluebird "^3.3.0" - body-parser "^1.16.1" - braces "^2.3.2" - chokidar "^2.0.3" - colors "^1.1.0" - connect "^3.6.0" - core-js "^2.2.0" +karma@~6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/karma/-/karma-6.1.1.tgz#a7539618cca0f2cbb26d5497120ec31fe340c2a1" + integrity sha512-vVDFxFGAsclgmFjZA/qGw5xqWdZIWxVD7xLyCukYUYd5xs/uGzYbXGOT5zOruVBQleKEmXIr4H2hzGCTn+M9Cg== + dependencies: + body-parser "^1.19.0" + braces "^3.0.2" + chokidar "^3.4.2" + colors "^1.4.0" + connect "^3.7.0" di "^0.0.1" - dom-serialize "^2.2.0" - flatted "^2.0.0" - glob "^7.1.1" - graceful-fs "^4.1.2" - http-proxy "^1.13.0" - isbinaryfile "^3.0.0" - lodash "^4.17.11" - log4js "^4.0.0" - mime "^2.3.1" - minimatch "^3.0.2" - optimist "^0.6.1" - qjobs "^1.1.4" - range-parser "^1.2.0" - rimraf "^2.6.0" - safe-buffer "^5.0.1" - socket.io "2.1.1" + dom-serialize "^2.2.1" + glob "^7.1.6" + graceful-fs "^4.2.4" + http-proxy "^1.18.1" + isbinaryfile "^4.0.6" + lodash "^4.17.19" + log4js "^6.2.1" + mime "^2.4.5" + minimatch "^3.0.4" + qjobs "^1.2.0" + range-parser "^1.2.1" + rimraf "^3.0.2" + socket.io "^3.1.0" source-map "^0.6.1" - tmp "0.0.33" - useragent "2.3.0" - -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== - dependencies: - json-buffer "3.0.0" + tmp "0.2.1" + ua-parser-js "^0.7.23" + yargs "^16.1.1" killable@^1.0.1: version "1.0.1" @@ -5703,6 +6126,11 @@ klaw-sync@^6.0.0: dependencies: graceful-fs "^4.1.11" +klona@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" + integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== + latest-version@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" @@ -5710,66 +6138,36 @@ latest-version@^3.0.0: dependencies: package-json "^4.0.0" -latest-version@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" - integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== - dependencies: - package-json "^6.3.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" - -less-loader@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-5.0.0.tgz#498dde3a6c6c4f887458ee9ed3f086a12ad1b466" - integrity sha512-bquCU89mO/yWLaUq0Clk7qCsKhsF/TZpJUzETRvJa9KSVEL9SO3ovCvdEHISBhrC81OwC8QSVX7E0bzElZj9cg== - dependencies: - clone "^2.1.1" - loader-utils "^1.1.0" - pify "^4.0.1" - -less@3.10.3: - version "3.10.3" - resolved "https://registry.yarnpkg.com/less/-/less-3.10.3.tgz#417a0975d5eeecc52cff4bcfa3c09d35781e6792" - integrity sha512-vz32vqfgmoxF1h3K4J+yKCtajH0PWmjkIFgbs5d78E/c/e+UQTnI+lWK+1eQRE95PXM2mC3rJlLSSP9VQHnaow== +less-loader@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-7.3.0.tgz#f9d6d36d18739d642067a05fb5bd70c8c61317e5" + integrity sha512-Mi8915g7NMaLlgi77mgTTQvK022xKRQBIVDSyfl3ErTuBhmZBQab0mjeJjNNqGbdR+qrfTleKXqbGI4uEFavxg== dependencies: - clone "^2.1.2" - optionalDependencies: - errno "^0.1.1" - graceful-fs "^4.1.2" - image-size "~0.5.0" - mime "^1.4.1" - mkdirp "^0.5.0" - promise "^7.1.1" - request "^2.83.0" - source-map "~0.6.0" + klona "^2.0.4" + loader-utils "^2.0.0" + schema-utils "^3.0.0" -less@^3.10.3: - version "3.11.1" - resolved "https://registry.yarnpkg.com/less/-/less-3.11.1.tgz#c6bf08e39e02404fe6b307a3dfffafdc55bd36e2" - integrity sha512-tlWX341RECuTOvoDIvtFqXsKj072hm3+9ymRBe76/mD6O5ZZecnlAOVDlWAleF2+aohFrxNidXhv2773f6kY7g== +less@4.1.1, less@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/less/-/less-4.1.1.tgz#15bf253a9939791dc690888c3ff424f3e6c7edba" + integrity sha512-w09o8tZFPThBscl5d0Ggp3RcrKIouBoQscnOMgFH3n5V3kN/CXGHNfCkRPtxJk6nKryDXaV9aHLK55RXuH4sAw== dependencies: - clone "^2.1.2" + copy-anything "^2.0.1" + parse-node-version "^1.0.1" tslib "^1.10.0" optionalDependencies: errno "^0.1.1" graceful-fs "^4.1.2" image-size "~0.5.0" + make-dir "^2.1.0" mime "^1.4.1" - mkdirp "^0.5.0" - promise "^7.1.1" - request "^2.83.0" + needle "^2.5.2" source-map "~0.6.0" -license-webpack-plugin@2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-2.1.3.tgz#656fa6a8b2e711ee35c27ac8e1659a87240ef7f3" - integrity sha512-vTSY5r9HOq4sxR2BIxdIXWKI+9n3b+DoQkhKHedB3TdSxTfXUDRxKXdAj5iejR+qNXprXsxvEu9W+zOhgGIkAw== +license-webpack-plugin@2.3.11: + version "2.3.11" + resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-2.3.11.tgz#0d93188a31fce350a44c86212badbaf33dcd29d8" + integrity sha512-0iVGoX5vx0WDy8dmwTTpOOMYiGqILyUbDeVMFH52AjgBlS58lHwOlFMSoqg5nY8Kxl6+FRKyUZY/UdlQaOyqDw== dependencies: "@types/webpack-sources" "^0.1.5" webpack-sources "^1.2.0" @@ -5791,7 +6189,7 @@ loader-runner@^2.4.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== -loader-utils@1.2.3, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: +loader-utils@1.2.3, loader-utils@^1.1.0, loader-utils@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== @@ -5800,6 +6198,15 @@ loader-utils@1.2.3, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2. emojis-list "^2.0.0" json5 "^1.0.1" +loader-utils@2.0.0, loader-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" + integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + loader-utils@^0.2.16: version "0.2.17" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" @@ -5810,6 +6217,15 @@ loader-utils@^0.2.16: json5 "^0.5.0" object-assign "^4.0.1" +loader-utils@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + locate-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" @@ -5825,11 +6241,6 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.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@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" @@ -5840,57 +6251,50 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.3: +lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.3: 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== +lodash@^4.17.19: + version "4.17.19" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" + integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== + +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 "^2.4.2" + chalk "^4.0.0" -log4js@^4.0.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/log4js/-/log4js-4.5.1.tgz#e543625e97d9e6f3e6e7c9fc196dd6ab2cae30b5" - integrity sha512-EEEgFcE9bLgaYUKuozyFfytQM2wDHtXn4tAN41pkaxpNjAykv11GVdeI4tHtmPWW4Xrgh9R/2d7XYghDVjbKKw== +log4js@^6.2.1: + version "6.3.0" + resolved "https://registry.yarnpkg.com/log4js/-/log4js-6.3.0.tgz#10dfafbb434351a3e30277a00b9879446f715bcb" + integrity sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw== dependencies: - date-format "^2.0.0" + date-format "^3.0.0" debug "^4.1.1" - flatted "^2.0.0" + flatted "^2.0.1" rfdc "^1.1.4" - streamroller "^1.0.6" + streamroller "^2.2.4" -loglevel@^1.6.4: - version "1.6.6" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.6.tgz#0ee6300cc058db6b3551fa1c4bf73b83bb771312" - integrity sha512-Sgr5lbboAUBo3eXCSPL4/KoVz3ROKquOjcctxmHIt+vol2DrqTQe3SwkKKuYhEiWB5kYa13YyopJ69deJ1irzQ== - -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" +loglevel@^1.6.8: + version "1.6.8" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171" + integrity sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA== lower-case@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: +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== -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -lru-cache@4.1.x, lru-cache@^4.0.1: +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== @@ -5905,19 +6309,33 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" -magic-string@0.25.4, magic-string@^0.25.0: +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +magic-string@0.25.7, magic-string@^0.25.7: + version "0.25.7" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" + integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== + dependencies: + sourcemap-codec "^1.4.4" + +magic-string@^0.25.0: version "0.25.4" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.4.tgz#325b8a0a79fc423db109b77fd5a19183b7ba5143" integrity sha512-oycWO9nEVAP2RVPbIoDoA4Y7LFIJ3xRYov93gAyJhZkET1tNuB0u7uWkZS2LpBWTJUWnmau/To8ECWRC+jKNfw== dependencies: sourcemap-codec "^1.4.4" -magic-string@^0.25.2: - version "0.25.6" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.6.tgz#5586387d1242f919c6d223579cc938bf1420795e" - integrity sha512-3a5LOMSGoCTH5rbqobC2HuDNRtE2glHZ8J7pK+QZYppyWA36yuNpsX994rIY2nCuyP7CZYy7lQq/X2jygiZ89g== +make-dir@3.1.0, make-dir@^3.0.2, make-dir@^3.1.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: - sourcemap-codec "^1.4.4" + semver "^6.0.0" make-dir@^1.0.0: version "1.3.0" @@ -5946,34 +6364,26 @@ make-error@^1.1.1: resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g== -make-fetch-happen@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz#aa8387104f2687edca01c8687ee45013d02d19bd" - integrity sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag== - dependencies: - agentkeepalive "^3.4.1" - cacache "^12.0.0" - http-cache-semantics "^3.8.1" - http-proxy-agent "^2.1.0" - https-proxy-agent "^2.2.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - node-fetch-npm "^2.0.2" - promise-retry "^1.1.1" - socks-proxy-agent "^4.0.0" - ssri "^6.0.0" - -mamacro@^0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" - integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA== - -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" +make-fetch-happen@^8.0.9: + version "8.0.14" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz#aaba73ae0ab5586ad8eaa68bd83332669393e222" + integrity sha512-EsS89h6l4vbfJEtBZnENTOFk8mCRpY5ru36Xe5bcX1KYIli2mkSHqoFsp5O1wMDvTJJzxe/4THpCTtygjeeGWQ== + dependencies: + agentkeepalive "^4.1.3" + cacache "^15.0.5" + http-cache-semantics "^4.1.0" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-lambda "^1.0.1" + lru-cache "^6.0.0" + minipass "^3.1.3" + minipass-collect "^1.0.2" + minipass-fetch "^1.3.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + promise-retry "^2.0.1" + socks-proxy-agent "^5.0.0" + ssri "^8.0.0" map-cache@^0.2.2: version "0.2.2" @@ -6006,15 +6416,6 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= -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" - memory-fs@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" @@ -6048,6 +6449,11 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" @@ -6072,6 +6478,14 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" +micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + miller-rabin@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" @@ -6097,29 +6511,28 @@ mime@1.6.0, mime@^1.4.1: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.3.1, mime@^2.4.4: +mime@2.4.6, mime@^2.4.5: + version "2.4.6" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" + integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA== + +mime@^2.4.4: version "2.4.4" resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== -mimic-fn@^2.0.0, mimic-fn@^2.1.0: +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== -mimic-response@^1.0.0, mimic-response@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -mini-css-extract-plugin@0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.0.tgz#81d41ec4fe58c713a96ad7c723cdb2d0bd4d70e1" - integrity sha512-MNpRGbNA52q6U92i0qbVpQNsgk7LExy41MdAlG84FeytfDOtRIf/mCHdEgG8rpTKOaNKiqUnZdlptF469hxqOw== +mini-css-extract-plugin@1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.5.tgz#252166e78879c106e0130f229d44e0cbdfcebed3" + integrity sha512-tvmzcwqJJXau4OQE5vT72pRT18o2zF+tQJp8CWchqvfQnTlflkzS+dANYcRdyPRWUWRkfmeNTKltx0NZI/b5dQ== dependencies: - loader-utils "^1.1.0" - normalize-url "1.9.1" - schema-utils "^1.0.0" + loader-utils "^2.0.0" + schema-utils "^3.0.0" webpack-sources "^1.1.0" minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: @@ -6132,7 +6545,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^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, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: +minimatch@3.0.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== @@ -6144,16 +6557,16 @@ minimist@0.0.8: resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= -minimist@1.2.0, minimist@^1.2.0: +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== + +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= - minipass-collect@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" @@ -6161,6 +6574,17 @@ minipass-collect@^1.0.2: dependencies: minipass "^3.0.0" +minipass-fetch@^1.3.0, minipass-fetch@^1.3.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.3.3.tgz#34c7cea038c817a8658461bf35174551dce17a0a" + integrity sha512-akCrLDWfbdAWkMLBxJEeWTdNsjML+dt5YgOI4gJ53vuO0vrmYQkUPxa6j6V65s9CcePIr2SSWqjT2EcrNseryQ== + dependencies: + minipass "^3.1.0" + minipass-sized "^1.0.3" + minizlib "^2.0.0" + optionalDependencies: + encoding "^0.1.12" + minipass-flush@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" @@ -6168,6 +6592,14 @@ minipass-flush@^1.0.5: dependencies: minipass "^3.0.0" +minipass-json-stream@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz#7edbb92588fbfc2ff1db2fc10397acb7b6b44aa7" + integrity sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg== + dependencies: + jsonparse "^1.3.1" + minipass "^3.0.0" + minipass-pipeline@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz#3dcb6bb4a546e32969c7ad710f2c79a86abba93a" @@ -6175,13 +6607,19 @@ minipass-pipeline@^1.2.2: dependencies: minipass "^3.0.0" -minipass@^2.3.5, minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" - integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== +minipass-pipeline@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" + minipass "^3.0.0" + +minipass-sized@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" + integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== + dependencies: + minipass "^3.0.0" minipass@^3.0.0, minipass@^3.1.1: version "3.1.1" @@ -6190,12 +6628,28 @@ minipass@^3.0.0, minipass@^3.1.1: dependencies: yallist "^4.0.0" -minizlib@^1.2.1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" - integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== +minipass@^3.1.0, minipass@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" + integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== + dependencies: + yallist "^4.0.0" + +minizlib@^2.0.0, 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" + +minizlib@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.0.tgz#fd52c645301ef09a63a2c209697c294c6ce02cf3" + integrity sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA== dependencies: - minipass "^2.9.0" + minipass "^3.0.0" + yallist "^4.0.0" mississippi@^3.0.0: version "3.0.0" @@ -6221,13 +6675,25 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1, mkdirp@~0.5.x: +mkdirp@^0.5.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" +mkdirp@^0.5.3: + 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" + +mkdirp@^1.0.3, mkdirp@^1.0.4, mkdirp@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" @@ -6250,7 +6716,7 @@ 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.0.0, ms@^2.1.1: +ms@2.1.2, ms@^2.0.0, 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== @@ -6278,6 +6744,11 @@ nan@^2.12.1: resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== +nanoid@^3.1.20: + version "3.1.20" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" + integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== + nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -6295,47 +6766,65 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" +needle@^2.5.2: + version "2.6.0" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.6.0.tgz#24dbb55f2509e2324b4a99d61f413982013ccdbe" + integrity sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + 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== -neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1: +neo-async@^2.5.0, neo-async@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== -ng-packagr@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/ng-packagr/-/ng-packagr-9.0.0.tgz#a91d2092f95e51e6746f78a2c9b4fc9badb80d45" - integrity sha512-uK9sdOmjAQJgKh/3UN0/3XmV5IRTmdQt3vRElwbmd+rAl8Z/g/h2CMLIXqhLOfWcLnYzepkhoXlQPbiwpxAw0w== - dependencies: - "@rollup/plugin-commonjs" "^11.0.2" - "@rollup/plugin-json" "^4.0.0" - "@rollup/plugin-node-resolve" "^7.1.0" - ajv "^6.10.2" - autoprefixer "^9.6.5" - browserslist "^4.7.0" - chalk "^3.0.0" - chokidar "^3.2.1" - clean-css "^4.1.11" - commander "^4.0.0" - fs-extra "^8.1.0" - glob "^7.1.2" - injection-js "^2.2.1" - less "^3.10.3" - node-sass-tilde-importer "^1.0.0" - postcss "^7.0.18" - postcss-url "^8.0.0" - read-pkg-up "^5.0.0" +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +next-tick@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= + +ng-packagr@^11.2.4: + version "11.2.4" + resolved "https://registry.yarnpkg.com/ng-packagr/-/ng-packagr-11.2.4.tgz#9deda83beb831bda7b753686d0f90e12a02dbb47" + integrity sha512-pAZYRWe4duLx6bXgfNKgT2XBHiepWz2sA+CaJ9UYEbLHE+QxYGtw/PJAC6o0zRDv1bBCkv5oquKTyTZtYjkAQQ== + dependencies: + "@rollup/plugin-commonjs" "^17.0.0" + "@rollup/plugin-json" "^4.1.0" + "@rollup/plugin-node-resolve" "^11.1.0" + ajv "^7.0.3" + ansi-colors "^4.1.1" + autoprefixer "^10.2.4" + browserslist "^4.16.1" + chokidar "^3.5.1" + commander "^7.0.0" + cssnano "^4.1.10" + glob "^7.1.6" + injection-js "^2.4.0" + less "^4.1.0" + node-sass-tilde-importer "^1.0.2" + ora "^5.1.0" + postcss "^8.2.4" + postcss-url "^10.1.1" rimraf "^3.0.0" - rollup "1.31.0" - rollup-plugin-sourcemaps "^0.5.0" + rollup "^2.37.0" + rollup-plugin-sourcemaps "^0.6.3" rxjs "^6.5.0" - sass "^1.23.0" - stylus "^0.54.7" - terser "^4.3.8" - update-notifier "^4.0.0" + sass "^1.32.5" + stylus "^0.54.8" + sync-rpc "^1.3.6" + terser "^5.5.1" nice-try@^1.0.4: version "1.0.5" @@ -6349,19 +6838,26 @@ no-case@^2.2.0: dependencies: lower-case "^1.1.1" -node-fetch-npm@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz#7258c9046182dca345b4208eda918daf33697ff7" - integrity sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw== - dependencies: - encoding "^0.1.11" - json-parse-better-errors "^1.0.0" - safe-buffer "^5.1.1" +node-forge@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" + integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== -node-forge@0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" - integrity sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ== +node-gyp@^7.1.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-7.1.2.tgz#21a810aebb187120251c3bcec979af1587b188ae" + integrity sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ== + dependencies: + env-paths "^2.2.0" + glob "^7.1.4" + graceful-fs "^4.2.3" + nopt "^5.0.0" + npmlog "^4.1.2" + request "^2.88.2" + rimraf "^3.0.2" + semver "^7.3.2" + tar "^6.0.2" + which "^2.0.2" node-libs-browser@^2.2.1: version "2.2.1" @@ -6392,43 +6888,36 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" -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.44, node-releases@^1.1.46: +node-releases@^1.1.46: version "1.1.47" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.47.tgz#c59ef739a1fd7ecbd9f0b7cf5b7871e8a8b591e4" integrity sha512-k4xjVPx5FpwBUj0Gw7uvFOTF4Ep8Hok1I6qjwL3pLfwe7Y0REQSAqOwwv9TWBCUtMHxcXfY4PgRLRozcChvTcA== dependencies: semver "^6.3.0" -node-releases@^1.1.47: - version "1.1.49" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.49.tgz#67ba5a3fac2319262675ef864ed56798bb33b93e" - integrity sha512-xH8t0LS0disN0mtRCh+eByxFPie+msJUBL/lJDBuap53QGiYPa9joh83K4pCZgWJ+2L4b9h88vCVdXQ60NO2bg== - dependencies: - semver "^6.3.0" +node-releases@^1.1.58: + version "1.1.59" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.59.tgz#4d648330641cec704bff10f8e4fe28e453ab8e8e" + integrity sha512-H3JrdUczbdiwxN5FuJPyCHnGHIFqQ0wWxo+9j1kAXAzqNMAHlo+4I/sYYxpyK0irQ73HgdiyzD32oqQDcU2Osw== + +node-releases@^1.1.70: + version "1.1.71" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" + integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== -node-sass-tilde-importer@^1.0.0: +node-sass-tilde-importer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/node-sass-tilde-importer/-/node-sass-tilde-importer-1.0.2.tgz#1a15105c153f648323b4347693fdb0f331bad1ce" integrity sha512-Swcmr38Y7uB78itQeBm3mThjxBy9/Ah/ykPIaURY/L6Nec9AyRoL/jJ7ECfMR+oZeCTVQNxVMu/aHU+TLRVbdg== dependencies: find-parent-dir "^0.3.0" -normalize-package-data@^2.0.0, normalize-package-data@^2.4.0, normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== +nopt@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" + integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" + abbrev "1" normalize-path@^2.1.1: version "2.1.1" @@ -6447,87 +6936,89 @@ normalize-range@^0.1.2: resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= -normalize-url@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" - integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= - dependencies: - object-assign "^4.0.1" - prepend-http "^1.0.0" - query-string "^4.1.0" - sort-keys "^1.0.0" - normalize-url@^3.0.0: version "3.3.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== -normalize-url@^4.1.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" - integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== - -npm-bundled@^1.0.1: +npm-bundled@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== dependencies: npm-normalize-package-bin "^1.0.1" -npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: +npm-install-checks@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-4.0.0.tgz#a37facc763a2fde0497ef2c6d0ac7c3fbe00d7b4" + integrity sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w== + dependencies: + semver "^7.1.1" + +npm-normalize-package-bin@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== -npm-package-arg@6.1.1, npm-package-arg@^6.0.0, npm-package-arg@^6.1.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.1.tgz#02168cb0a49a2b75bf988a28698de7b529df5cb7" - integrity sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg== +npm-package-arg@8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.1.0.tgz#b5f6319418c3246a1c38e1a8fbaa06231bc5308f" + integrity sha512-/ep6QDxBkm9HvOhOg0heitSd7JHA1U7y1qhhlRlteYYAi9Pdb/ZV7FW5aHpkrpM8+P+4p/jjR8zCyKPBMBjSig== dependencies: - hosted-git-info "^2.7.1" - osenv "^0.1.5" - semver "^5.6.0" + hosted-git-info "^3.0.6" + semver "^7.0.0" validate-npm-package-name "^3.0.0" -npm-package-arg@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-7.0.0.tgz#52cdf08b491c0c59df687c4c925a89102ef794a5" - integrity sha512-xXxr8y5U0kl8dVkz2oK7yZjPBvqM2fwaO5l3Yg13p03v8+E3qQcD0JNhHzjL1vyGgxcKkD0cco+NLR72iuPk3g== +npm-package-arg@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.0.1.tgz#9d76f8d7667b2373ffda60bb801a27ef71e3e270" + integrity sha512-/h5Fm6a/exByzFSTm7jAyHbgOqErl9qSNJDQF32Si/ZzgwT2TERVxRxn3Jurw1wflgyVVAxnFR4fRHPM7y1ClQ== dependencies: hosted-git-info "^3.0.2" - osenv "^0.1.5" - semver "^5.6.0" + semver "^7.0.0" validate-npm-package-name "^3.0.0" -npm-packlist@^1.1.12: - version "1.4.7" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.7.tgz#9e954365a06b80b18111ea900945af4f88ed4848" - integrity sha512-vAj7dIkp5NhieaGZxBJB8fF4R0078rqsmhJcAfXZ6O7JJhjhPK96n5Ry1oZcfLXgfun0GWTZPOxaEyqv8GBykQ== +npm-package-arg@^8.0.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.1.1.tgz#00ebf16ac395c63318e67ce66780a06db6df1b04" + integrity sha512-CsP95FhWQDwNqiYS+Q0mZ7FAEDytDZAkNxQqea6IaAFJTAY9Lhhqyl0irU/6PMc7BGfUmnsbHcqxJD7XuVM/rg== dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" + hosted-git-info "^3.0.6" + semver "^7.0.0" + validate-npm-package-name "^3.0.0" -npm-pick-manifest@3.0.2, npm-pick-manifest@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz#f4d9e5fd4be2153e5f4e5f9b7be8dc419a99abb7" - integrity sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw== +npm-packlist@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-2.1.4.tgz#40e96b2b43787d0546a574542d01e066640d09da" + integrity sha512-Qzg2pvXC9U4I4fLnUrBmcIT4x0woLtUgxUi9eC+Zrcv1Xx5eamytGAfbDWQ67j7xOcQ2VW1I3su9smVTIdu7Hw== dependencies: - figgy-pudding "^3.5.1" - npm-package-arg "^6.0.0" - semver "^5.4.1" + glob "^7.1.6" + ignore-walk "^3.0.3" + npm-bundled "^1.1.1" + npm-normalize-package-bin "^1.0.1" -npm-registry-fetch@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-4.0.2.tgz#2b1434f93ccbe6b6385f8e45f45db93e16921d7a" - integrity sha512-Z0IFtPEozNdeZRPh3aHHxdG+ZRpzcbQaJLthsm3VhNf6DScicTFRHZzK82u8RsJUsUHkX+QH/zcB/5pmd20H4A== +npm-pick-manifest@6.1.0, npm-pick-manifest@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-6.1.0.tgz#2befed87b0fce956790f62d32afb56d7539c022a" + integrity sha512-ygs4k6f54ZxJXrzT0x34NybRlLeZ4+6nECAIbr2i0foTnijtS1TJiyzpqtuUAJOps/hO0tNDr8fRV5g+BtRlTw== dependencies: - JSONStream "^1.3.4" - bluebird "^3.5.1" - figgy-pudding "^3.4.1" - lru-cache "^5.1.1" - make-fetch-happen "^5.0.0" - npm-package-arg "^6.1.0" - safe-buffer "^5.2.0" + npm-install-checks "^4.0.0" + npm-package-arg "^8.0.0" + semver "^7.0.0" + +npm-registry-fetch@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-9.0.0.tgz#86f3feb4ce00313bc0b8f1f8f69daae6face1661" + integrity sha512-PuFYYtnQ8IyVl6ib9d3PepeehcUeHN9IO5N/iCRhyg9tStQcqGQBRVHmfmMWPDERU3KwZoHFvbJ4FPXPspvzbA== + dependencies: + "@npmcli/ci-detect" "^1.0.0" + lru-cache "^6.0.0" + make-fetch-happen "^8.0.9" + minipass "^3.1.3" + minipass-fetch "^1.3.0" + minipass-json-stream "^1.0.1" + minizlib "^2.0.0" + npm-package-arg "^8.0.0" npm-run-path@^2.0.0: version "2.0.2" @@ -6536,6 +7027,16 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" +npmlog@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + nth-check@^1.0.2, nth-check@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" @@ -6543,16 +7044,6 @@ nth-check@^1.0.2, nth-check@~1.0.1: dependencies: boolbase "~1.0.0" -null-check@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/null-check/-/null-check-1.0.0.tgz#977dffd7176012b9ec30d2a39db5cf72a0439edd" - integrity sha1-l33/1xdgErnsMNKjnbXPcqBDnt0= - -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= - 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" @@ -6563,16 +7054,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.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= -object-component@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" - integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= - object-copy@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" @@ -6670,12 +7156,13 @@ onetime@^5.1.0: dependencies: mimic-fn "^2.1.0" -open@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/open/-/open-7.0.0.tgz#7e52999b14eb73f90f0f0807fe93897c4ae73ec9" - integrity sha512-K6EKzYqnwQzk+/dzJAQSBORub3xlBTxMz+ntpZpH/LyCa1o6KjXhuN+2npAaI9jaSmU3R1Q8NWf4KUWcyytGsQ== +open@7.4.0: + version "7.4.0" + resolved "https://registry.yarnpkg.com/open/-/open-7.4.0.tgz#ad95b98f871d9acb0ec8fecc557082cc9986626b" + integrity sha512-PGoBCX/lclIWlpS/R2PQuIR4NJoXh6X5AwVzE7WXnWRGvHg7+4TBCgsujUgiPpm0K1y4qvQeWnCWVTpTKZBtvA== dependencies: - is-wsl "^2.1.0" + is-docker "^2.0.0" + is-wsl "^2.1.1" opn@^5.5.0: version "5.5.0" @@ -6684,25 +7171,18 @@ opn@^5.5.0: dependencies: is-wsl "^1.1.0" -optimist@^0.6.1, optimist@~0.6.0: - 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" - -ora@4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/ora/-/ora-4.0.2.tgz#0e1e68fd45b135d28648b27cf08081fa6e8a297d" - integrity sha512-YUOZbamht5mfLxPmk4M35CD/5DuOkAacxlEUbStVXpBAt4fyhBf+vZHI/HRkI++QUp3sNoeA2Gw4C+hi4eGSig== +ora@5.3.0, ora@^5.1.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.3.0.tgz#fb832899d3a1372fe71c8b2c534bbfe74961bb6f" + integrity sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g== dependencies: - chalk "^2.4.2" + bl "^4.0.3" + chalk "^4.1.0" cli-cursor "^3.1.0" - cli-spinners "^2.2.0" + cli-spinners "^2.5.0" is-interactive "^1.0.0" - log-symbols "^3.0.0" - strip-ansi "^5.2.0" + log-symbols "^4.0.0" + strip-ansi "^6.0.0" wcwidth "^1.0.1" original@^1.0.0: @@ -6717,66 +7197,29 @@ os-browserify@^0.3.0: resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - -os-locale@^3.0.0, os-locale@^3.1.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.0, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: +os-tmpdir@~1.0.1, 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= -osenv@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" - integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== - -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-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-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, p-limit@^2.2.0, p-limit@^2.2.1: +p-limit@^2.0.0, p-limit@^2.2.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== dependencies: p-try "^2.0.0" -p-limit@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" - integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ== +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: - p-try "^2.0.0" + yocto-queue "^0.1.0" p-locate@^3.0.0: version "3.0.0" @@ -6797,10 +7240,10 @@ p-map@^2.0.0: resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== -p-map@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" - integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== dependencies: aggregate-error "^3.0.0" @@ -6826,50 +7269,30 @@ package-json@^4.0.0: registry-url "^3.0.3" semver "^5.1.0" -package-json@^6.3.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" - integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== - dependencies: - got "^9.6.0" - registry-auth-token "^4.0.0" - registry-url "^5.0.0" - semver "^6.2.0" - -pacote@9.5.8: - version "9.5.8" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-9.5.8.tgz#23480efdc4fa74515855c9ecf39cf64078f99786" - integrity sha512-0Tl8Oi/K0Lo4MZmH0/6IsT3gpGf9eEAznLXEQPKgPq7FscnbUOyopnVpwXlnQdIbCUaojWy1Wd7VMyqfVsRrIw== - dependencies: - bluebird "^3.5.3" - cacache "^12.0.2" - chownr "^1.1.2" - figgy-pudding "^3.5.1" - get-stream "^4.1.0" - glob "^7.1.3" +pacote@11.2.4: + version "11.2.4" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-11.2.4.tgz#dc7ca740a573ed86a3bf863511d22c1d413ec82f" + integrity sha512-GfTeVQGJ6WyBQbQD4t3ocHbyOmTQLmWjkCKSZPmKiGFKYKNUaM5U2gbLzUW8WG1XmS9yQFnsTFA0k3o1+q4klQ== + dependencies: + "@npmcli/git" "^2.0.1" + "@npmcli/installed-package-contents" "^1.0.5" + "@npmcli/promise-spawn" "^1.2.0" + "@npmcli/run-script" "^1.3.0" + cacache "^15.0.5" + chownr "^2.0.0" + fs-minipass "^2.1.0" infer-owner "^1.0.4" - lru-cache "^5.1.1" - make-fetch-happen "^5.0.0" - minimatch "^3.0.4" - minipass "^2.3.5" - mississippi "^3.0.0" - mkdirp "^0.5.1" - normalize-package-data "^2.4.0" - npm-package-arg "^6.1.0" - npm-packlist "^1.1.12" - npm-pick-manifest "^3.0.0" - npm-registry-fetch "^4.0.0" - osenv "^0.1.5" - promise-inflight "^1.0.1" + minipass "^3.1.3" + mkdirp "^1.0.3" + npm-package-arg "^8.0.1" + npm-packlist "^2.1.4" + npm-pick-manifest "^6.0.0" + npm-registry-fetch "^9.0.0" promise-retry "^1.1.1" - protoduck "^5.0.1" - rimraf "^2.6.2" - safe-buffer "^5.1.2" - semver "^5.6.0" - ssri "^6.0.1" - tar "^4.4.10" - unique-filename "^1.1.1" - which "^1.3.1" + read-package-json-fast "^1.1.3" + rimraf "^3.0.2" + ssri "^8.0.0" + tar "^6.1.0" pako@~1.0.2, pako@~1.0.5: version "1.0.10" @@ -6892,6 +7315,13 @@ param-case@2.1.x: dependencies: no-case "^2.2.0" +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + parse-asn1@^5.0.0: version "5.1.5" resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" @@ -6922,24 +7352,37 @@ parse-json@^5.0.0: json-parse-better-errors "^1.0.1" lines-and-columns "^1.1.6" -parse5@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" - integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== +parse-node-version@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" + integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== + +parse5-html-rewriting-stream@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz#de1820559317ab4e451ea72dba05fddfd914480b" + integrity sha512-vwLQzynJVEfUlURxgnf51yAJDQTtVpNyGD8tKi2Za7m+akukNHxCcUQMAa/mUGLhCeicFdpy7Tlvj8ZNKadprg== + dependencies: + parse5 "^6.0.1" + parse5-sax-parser "^6.0.1" -parseqs@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" - integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0= +parse5-htmlparser2-tree-adapter@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" + integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== dependencies: - better-assert "~1.0.0" + parse5 "^6.0.1" -parseuri@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" - integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo= +parse5-sax-parser@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz#98b4d366b5b266a7cd90b4b58906667af882daba" + integrity sha512-kXX+5S81lgESA0LsDuGjAlBybImAChYRMT+/uKCEXFBFOeEhS52qUCydGhU3qLRD8D9DVjaUo821WK7DM4iCeg== dependencies: - better-assert "~1.0.0" + parse5 "^6.0.1" + +parse5@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" @@ -7015,12 +7458,10 @@ path-to-regexp@0.1.7: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== pbkdf2@^3.0.3: version "3.0.17" @@ -7043,6 +7484,11 @@ picomatch@^2.0.4, picomatch@^2.0.7: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.1.1.tgz#ecdfbea7704adb5fe6fb47f9866c4c0e15e905c5" integrity sha512-OYMyqkKzK7blWO/+XZYP6w8hH0LDvkBvdvKukti+7kqYFCiEAk+gI3DWnryapc0Dau05ugGTy0foQ6mqn4AHYA== +picomatch@^2.0.5, picomatch@^2.2.1, 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, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -7084,10 +7530,17 @@ pkg-dir@^4.1.0: dependencies: find-up "^4.0.0" -portfinder@^1.0.25: - version "1.0.25" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.25.tgz#254fd337ffba869f4b9d37edc298059cb4d35eca" - integrity sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg== +pnp-webpack-plugin@1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" + integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg== + dependencies: + ts-pnp "^1.1.6" + +portfinder@^1.0.26: + version "1.0.27" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.27.tgz#a41333c116b5e5f3d380f9745ac2f35084c4c758" + integrity sha512-bJ3U3MThKnyJ9Dx1Idtm5pQmxXqw08+XOHhi/Lie8OF1OlhVaBFhsntAIhkZYjfDcCzszSr0w1yCbccThhzgxQ== dependencies: async "^2.6.2" debug "^3.1.1" @@ -7155,33 +7608,25 @@ postcss-discard-overridden@^4.0.1: dependencies: postcss "^7.0.0" -postcss-import@12.0.1: - version "12.0.1" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-12.0.1.tgz#cf8c7ab0b5ccab5649024536e565f841928b7153" - integrity sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw== +postcss-import@14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-14.0.0.tgz#3ed1dadac5a16650bde3f4cdea6633b9c3c78296" + integrity sha512-gFDDzXhqr9ELmnLHgCC3TbGfA6Dm/YMb/UN8/f7Uuq4fL7VTk2vOIj6hwINEwbokEmp123bLD7a5m+E+KIetRg== dependencies: - postcss "^7.0.1" - postcss-value-parser "^3.2.3" + postcss-value-parser "^4.0.0" read-cache "^1.0.0" resolve "^1.1.7" -postcss-load-config@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003" - integrity sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q== - dependencies: - cosmiconfig "^5.0.0" - import-cwd "^2.0.0" - -postcss-loader@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" - integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== +postcss-loader@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-4.2.0.tgz#f6993ea3e0f46600fb3ee49bbd010448123a7db4" + integrity sha512-mqgScxHqbiz1yxbnNcPdKYo/6aVt+XExURmEbQlviFVWogDbM4AJ0A/B+ZBpYsJrTRxKw7HyRazg9x0Q9SWwLA== dependencies: - loader-utils "^1.1.0" - postcss "^7.0.0" - postcss-load-config "^2.0.0" - schema-utils "^1.0.0" + cosmiconfig "^7.0.0" + klona "^2.0.4" + loader-utils "^2.0.0" + schema-utils "^3.0.0" + semver "^7.3.4" postcss-merge-longhand@^4.0.11: version "4.0.11" @@ -7245,6 +7690,34 @@ postcss-minify-selectors@^4.0.2: postcss "^7.0.0" postcss-selector-parser "^3.0.0" +postcss-modules-extract-imports@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" + integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== + +postcss-modules-local-by-default@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" + integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" + integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== + dependencies: + icss-utils "^5.0.0" + postcss-normalize-charset@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" @@ -7373,6 +7846,25 @@ postcss-selector-parser@^5.0.0-rc.4: indexes-of "^1.0.1" uniq "^1.0.1" +postcss-selector-parser@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" + integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== + dependencies: + cssesc "^3.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" + integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== + dependencies: + cssesc "^3.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + util-deprecate "^1.0.2" + postcss-svgo@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" @@ -7392,26 +7884,25 @@ postcss-unique-selectors@^4.0.1: postcss "^7.0.0" uniqs "^2.0.0" -postcss-url@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/postcss-url/-/postcss-url-8.0.0.tgz#7b10059bd12929cdbb1971c60f61a0e5af86b4ca" - integrity sha512-E2cbOQ5aii2zNHh8F6fk1cxls7QVFZjLPSrqvmiza8OuXLzIpErij8BDS5Y3STPfJgpIMNCPEr8JlKQWEoozUw== +postcss-url@^10.1.1: + version "10.1.1" + resolved "https://registry.yarnpkg.com/postcss-url/-/postcss-url-10.1.1.tgz#f58b4ec684a7b662c170357150eddcbc04cefa24" + integrity sha512-cYeRNcXUMiM1sr3UgHkY+zMuqhSmJaLeP3VOZWWqShBDMB10DlrK5KfciLK0LGr7xKDPP5nH7Q2odvDHQSrP9A== dependencies: - mime "^2.3.1" - minimatch "^3.0.4" - mkdirp "^0.5.0" - postcss "^7.0.2" - xxhashjs "^0.2.1" + make-dir "3.1.0" + mime "2.4.6" + minimatch "3.0.4" + xxhashjs "0.2.2" -postcss-value-parser@^3.0.0, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.1: +postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== -postcss-value-parser@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9" - integrity sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ== +postcss-value-parser@^4.0.0, postcss-value-parser@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" + integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== postcss@7.0.21: version "7.0.21" @@ -7422,7 +7913,16 @@ postcss@7.0.21: source-map "^0.6.1" supports-color "^6.1.0" -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.21: +postcss@8.2.4: + version "8.2.4" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.4.tgz#20a98a39cf303d15129c2865a9ec37eda0031d04" + integrity sha512-kRFftRoExRVXZlwUuay9iC824qmXPcQQVzAjbCCgjpXnkdMCJYBu2gTwAaFBzv8ewND6O8xFb3aELmEkh9zTzg== + dependencies: + colorette "^1.2.1" + nanoid "^3.1.20" + source-map "^0.6.1" + +postcss@^7.0.0, postcss@^7.0.1: version "7.0.25" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.25.tgz#dd2a2a753d50b13bed7a2009b4a18ac14d9db21e" integrity sha512-NXXVvWq9icrm/TgQC0O6YVFi4StfJz46M1iNd/h6B26Nvh/HKI+q4YZtFN/EjcInZliEscO/WL10BXnc1E5nwg== @@ -7431,7 +7931,7 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.21: source-map "^0.6.1" supports-color "^6.1.0" -postcss@^7.0.18, postcss@^7.0.2, postcss@^7.0.26, postcss@^7.0.5: +postcss@^7.0.5: version "7.0.26" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.26.tgz#5ed615cfcab35ba9bbb82414a4fa88ea10429587" integrity sha512-IY4oRjpXWYshuTDFxMVkJDtWIk2LhsTlu8bZnbEJA4+bYT16Lvpo8Qv6EvDumhYRgzjZl489pmsY3qVgJQ08nA== @@ -7440,15 +7940,24 @@ postcss@^7.0.18, postcss@^7.0.2, postcss@^7.0.26, postcss@^7.0.5: source-map "^0.6.1" supports-color "^6.1.0" -prepend-http@^1.0.0, prepend-http@^1.0.1: +postcss@^8.1.4, postcss@^8.2.4: + version "8.2.6" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.6.tgz#5d69a974543b45f87e464bc4c3e392a97d6be9fe" + integrity sha512-xpB8qYxgPuly166AGlpRjUdEYtmOWx2iCwGmrv4vqZL9YPVviDVPZPRXxnXr6xPZOdxQ9lp3ZBFCRgWJ7LE3Sg== + dependencies: + colorette "^1.2.1" + nanoid "^3.1.20" + source-map "^0.6.1" + +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= -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= +pretty-bytes@^5.3.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" + integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== pretty-error@^2.0.2: version "2.1.1" @@ -7458,11 +7967,6 @@ pretty-error@^2.0.2: renderkid "^2.0.1" utila "~0.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== - 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" @@ -7491,24 +7995,18 @@ promise-retry@^1.1.1: err-code "^1.0.0" retry "^0.10.0" -promise@^7.1.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" - integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== - dependencies: - asap "~2.0.3" - -protoduck@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/protoduck/-/protoduck-5.0.1.tgz#03c3659ca18007b69a50fd82a7ebcc516261151f" - integrity sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg== +promise-retry@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" + integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== dependencies: - genfun "^5.0.0" + err-code "^2.0.2" + retry "^0.12.0" -protractor@~5.4.0: - version "5.4.2" - resolved "https://registry.yarnpkg.com/protractor/-/protractor-5.4.2.tgz#329efe37f48b2141ab9467799be2d4d12eb48c13" - integrity sha512-zlIj64Cr6IOWP7RwxVeD8O4UskLYPoyIcg0HboWJL9T79F1F0VWtKkGTr/9GN6BKL+/Q/GmM7C9kFVCfDbP5sA== +protractor@~7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/protractor/-/protractor-7.0.0.tgz#c3e263608bd72e2c2dc802b11a772711a4792d03" + integrity sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw== dependencies: "@types/q" "^0.0.32" "@types/selenium-webdriver" "^3.0.0" @@ -7518,13 +8016,13 @@ protractor@~5.4.0: glob "^7.0.3" jasmine "2.8.0" jasminewd2 "^2.1.0" - optimist "~0.6.0" q "1.4.1" saucelabs "^1.5.0" selenium-webdriver "3.6.0" source-map-support "~0.4.0" webdriver-js-extender "2.1.0" - webdriver-manager "^12.0.6" + webdriver-manager "^12.1.7" + yargs "^15.3.1" proxy-addr@~2.0.5: version "2.0.5" @@ -7549,6 +8047,11 @@ psl@^1.1.24: resolved "https://registry.yarnpkg.com/psl/-/psl-1.7.0.tgz#f1c4c47a8ef97167dea5d6bbf4816d736e884a3c" integrity sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ== +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== + public-encrypt@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" @@ -7561,6 +8064,11 @@ public-encrypt@^4.0.0: randombytes "^2.0.1" safe-buffer "^5.1.2" +puka@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/puka/-/puka-1.0.1.tgz#a2df782b7eb4cf9564e4c93a5da422de0dfacc02" + integrity sha512-ssjRZxBd7BT3dte1RR3VoeT2cT/ODH8x+h0rUF1rMqB0srHYf48stSDWfiYakTp5UBZMxroZhB2+ExLDHm7W3g== + pump@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" @@ -7596,7 +8104,7 @@ punycode@^1.2.4, punycode@^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.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== @@ -7611,7 +8119,7 @@ q@^1.1.2, q@^1.4.1: resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= -qjobs@^1.1.4: +qjobs@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== @@ -7626,14 +8134,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== -query-string@^4.1.0: - version "4.3.4" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" - integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= - dependencies: - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" @@ -7649,7 +8149,7 @@ querystringify@^2.1.1: resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== @@ -7664,7 +8164,7 @@ randomfill@^1.0.3: randombytes "^2.0.5" safe-buffer "^5.1.0" -range-parser@^1.2.0, range-parser@^1.2.1, range-parser@~1.2.1: +range-parser@^1.2.1, range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== @@ -7679,15 +8179,15 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" -raw-loader@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-3.1.0.tgz#5e9d399a5a222cc0de18f42c3bc5e49677532b3f" - integrity sha512-lzUVMuJ06HF4rYveaz9Tv0WRlUMxJ0Y1hgSkkgg+50iEdaI0TthyEDe08KIHb0XsF6rn8WYTqPCaGTZg3sX+qA== +raw-loader@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.2.tgz#1aac6b7d1ad1501e66efdac1522c73e59a584eb6" + integrity sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA== dependencies: - loader-utils "^1.1.0" - schema-utils "^2.0.1" + loader-utils "^2.0.0" + schema-utils "^3.0.0" -rc@^1.0.1, rc@^1.1.6, rc@^1.2.8: +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== @@ -7704,44 +8204,21 @@ read-cache@^1.0.0: dependencies: pify "^2.3.0" -read-package-json@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.1.1.tgz#16aa66c59e7d4dad6288f179dd9295fd59bb98f1" - integrity sha512-dAiqGtVc/q5doFz6096CcnXhpYk0ZN8dEKVkGLU0CsASt8SrgF6SF7OTKAYubfvFhWaqofl+Y8HK19GR8jwW+A== - dependencies: - glob "^7.1.1" - json-parse-better-errors "^1.0.1" - normalize-package-data "^2.0.0" - npm-normalize-package-bin "^1.0.0" - optionalDependencies: - graceful-fs "^4.1.2" - -read-package-tree@5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.3.1.tgz#a32cb64c7f31eb8a6f31ef06f9cedf74068fe636" - integrity sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw== - dependencies: - read-package-json "^2.0.0" - readdir-scoped-modules "^1.0.0" - util-promisify "^2.1.0" - -read-pkg-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-5.0.0.tgz#b6a6741cb144ed3610554f40162aa07a6db621b8" - integrity sha512-XBQjqOBtTzyol2CpsQOw8LHV0XbDZVG7xMMjmXAJomlVY03WOBRmYgDJETlvcg0H63AJvPRwT7GFi5rvOzUOKg== +read-package-json-fast@^1.1.3: + version "1.2.2" + resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-1.2.2.tgz#fba77b0b0d66b1ab344e214cb0876577e749c423" + integrity sha512-39DbPJjkltEzfXJXB6D8/Ir3GFOU2YbSKa2HaB/Y3nKrc/zY+0XrALpID6/13ezWyzqvOHrBbR4t4cjQuTdBVQ== dependencies: - find-up "^3.0.0" - read-pkg "^5.0.0" + json-parse-even-better-errors "^2.3.0" + npm-normalize-package-bin "^1.0.1" -read-pkg@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== +read-package-json-fast@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-2.0.2.tgz#2dcb24d9e8dd50fb322042c8c35a954e6cc7ac9e" + integrity sha512-5fyFUyO9B799foVk4n6ylcoAktG/FbE3jwRKxvwaeSrIunaoMc0u81dzXxjeAFKOce7O5KncdfwpGvvs6r5PsQ== dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" + json-parse-even-better-errors "^2.3.0" + npm-normalize-package-bin "^1.0.1" "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.6" @@ -7756,6 +8233,19 @@ read-pkg@^5.0.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" +readable-stream@^2.0.6: + 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" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + readable-stream@^3.0.6, readable-stream@^3.1.1: version "3.4.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" @@ -7765,15 +8255,14 @@ readable-stream@^3.0.6, readable-stream@^3.1.1: string_decoder "^1.1.1" util-deprecate "^1.0.1" -readdir-scoped-modules@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" - integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== +readable-stream@^3.4.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: - debuglog "^1.0.1" - dezalgo "^1.0.0" - graceful-fs "^4.1.2" - once "^1.3.0" + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" readdirp@^2.2.1: version "2.2.1" @@ -7791,15 +8280,22 @@ readdirp@~3.3.0: dependencies: picomatch "^2.0.7" +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" + reflect-metadata@^0.1.2: version "0.1.13" resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== -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" @@ -7808,17 +8304,22 @@ regenerate@^1.2.1, regenerate@^1.4.0: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== -regenerator-runtime@0.13.3: - version "0.13.3" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" - integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== +regenerator-runtime@0.13.7: + 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-runtime@^0.13.4: + version "0.13.6" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.6.tgz#d236043c46ffab2968c1ef651803d8acdea8ed65" + integrity sha512-GmwlGiazQEbOwQWDdbbaP10i15pGtScYWLbMZuu+RKRz0cZ+g8IUONazBnaZqe7j1670IV1HgE4/8iy7CQPf4Q== + +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" @@ -7828,6 +8329,11 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" +regex-parser@^2.2.11: + version "2.2.11" + resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.11.tgz#3b37ec9049e19479806e878cabe7c1ca83ccfe58" + integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q== + regexp.prototype.flags@^1.2.0: version "1.3.0" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" @@ -7845,17 +8351,29 @@ regexpu-core@^1.0.0: regjsgen "^0.2.0" regjsparser "^0.1.4" -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.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" + +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" + unicode-match-property-value-ecmascript "^1.2.0" registry-auth-token@^3.0.1: version "3.4.0" @@ -7865,13 +8383,6 @@ registry-auth-token@^3.0.1: rc "^1.1.6" safe-buffer "^5.0.1" -registry-auth-token@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.1.1.tgz#40a33be1e82539460f94328b0f7f0f84c16d9479" - integrity sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA== - dependencies: - rc "^1.2.8" - registry-url@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" @@ -7879,22 +8390,15 @@ registry-url@^3.0.3: dependencies: rc "^1.0.1" -registry-url@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" - integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== - dependencies: - rc "^1.2.8" - regjsgen@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= -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.1.4: version "0.1.5" @@ -7903,10 +8407,10 @@ regjsparser@^0.1.4: dependencies: jsesc "~0.5.0" -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" @@ -7941,7 +8445,7 @@ repeat-string@^1.6.1: resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= -request@^2.83.0, request@^2.87.0, request@^2.88.0: +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== @@ -7967,15 +8471,41 @@ request@^2.83.0, request@^2.87.0, request@^2.88.0: tunnel-agent "^0.6.0" uuid "^3.3.2" +request@^2.88.2: + 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" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + 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@^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-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== require-main-filename@^2.0.0: version "2.0.0" @@ -7999,31 +8529,61 @@ resolve-from@^3.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" integrity sha1-six699nWiBvItuZTM17rywoYh0g= +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-url-loader@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-3.1.2.tgz#235e2c28e22e3e432ba7a5d4e305c59a58edfc08" + integrity sha512-QEb4A76c8Mi7I3xNKXlRKQSlLBwjUV/ULFMP+G7n3/7tJZ8MG5wsZ3ucxP1Jz8Vevn6fnJsxDx9cIls+utGzPQ== + dependencies: + adjust-sourcemap-loader "3.0.0" + camelcase "5.3.1" + compose-function "3.0.3" + convert-source-map "1.7.0" + es6-iterator "2.0.3" + loader-utils "1.2.3" + postcss "7.0.21" + rework "1.0.1" + rework-visit "1.0.0" + source-map "0.6.1" + 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, resolve@^1.10.0, resolve@^1.3.2: +resolve@1.19.0: + 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" + +resolve@^1.1.7, 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== dependencies: path-parse "^1.0.6" -resolve@^1.11.0, resolve@^1.14.2: - version "1.15.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" - integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== +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" -responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= +resolve@^1.19.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== dependencies: - lowercase-keys "^1.0.0" + is-core-module "^2.2.0" + path-parse "^1.0.6" restore-cursor@^3.1.0: version "3.1.0" @@ -8048,6 +8608,24 @@ retry@^0.12.0: resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rework-visit@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rework-visit/-/rework-visit-1.0.0.tgz#9945b2803f219e2f7aca00adb8bc9f640f842c9a" + integrity sha1-mUWygD8hni96ygCtuLyfZA+ELJo= + +rework@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rework/-/rework-1.0.1.tgz#30806a841342b54510aa4110850cd48534144aa7" + integrity sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc= + dependencies: + convert-source-map "^0.3.3" + css "^2.0.0" + rfdc@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.1.4.tgz#ba72cc1367a0ccd9cf81a870b3b58bd3ad07f8c2" @@ -8063,27 +8641,20 @@ rgba-regex@^1.0.0: resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= -rimraf@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.0.tgz#614176d4b3010b75e5c390eb0ee96f6dc0cebb9b" - integrity sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg== +rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2: + 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" -rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@^2.7.1: +rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.3: 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" -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" @@ -8092,38 +8663,37 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" -rollup-plugin-sourcemaps@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.5.0.tgz#898e8411c9b5b7b524b4d96c3b41d5c43f9da77e" - integrity sha512-xp2vvRvgnYiXydgf/JFFFgYxrqMaQaOrK/g6yZvgwT9R1TSYjD3HKku1pD7iQNjQHkl5yGpokvJLp7cP/lR+aQ== +rollup-plugin-sourcemaps@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.6.3.tgz#bf93913ffe056e414419607f1d02780d7ece84ed" + integrity sha512-paFu+nT1xvuO1tPFYXGe+XnQvg4Hjqv/eIhG8i5EspfYYPBKL57X7iVbfv55aNVASg3dzWvES9dmWsL2KhfByw== dependencies: - "@rollup/pluginutils" "^3.0.1" - source-map-resolve "^0.5.3" + "@rollup/pluginutils" "^3.0.9" + source-map-resolve "^0.6.0" -rollup@1.25.2: - version "1.25.2" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.25.2.tgz#739f508bd8f7ece52bb6c1fcda83466af82b7f6d" - integrity sha512-+7z6Wab/L45QCPcfpuTZKwKiB0tynj05s/+s2U3F2Bi7rOLPr9UcjUwO7/xpjlPNXA/hwnth6jBExFRGyf3tMg== - dependencies: - "@types/estree" "*" - "@types/node" "*" - acorn "^7.1.0" +rollup@2.38.4: + version "2.38.4" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.38.4.tgz#1b84ea8728c73b1a00a6a6e9c630ec8c3fe48cea" + integrity sha512-B0LcJhjiwKkTl79aGVF/u5KdzsH8IylVfV56Ut6c9ouWLJcUK17T83aZBetNYSnZtXf2OHD4+2PbmRW+Fp5ulg== + optionalDependencies: + fsevents "~2.3.1" -rollup@1.31.0: - version "1.31.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.31.0.tgz#e2a87212e96aa7850f3eb53fdd02cf89f2d2fe9a" - integrity sha512-9C6ovSyNeEwvuRuUUmsTpJcXac1AwSL1a3x+O5lpmQKZqi5mmrjauLeqIjvREC+yNRR8fPdzByojDng+af3nVw== - dependencies: - "@types/estree" "*" - "@types/node" "*" - acorn "^7.1.0" +rollup@^2.37.0: + version "2.40.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.40.0.tgz#efc218eaede7ab590954df50f96195188999c304" + integrity sha512-WiOGAPbXoHu+TOz6hyYUxIksOwsY/21TRWoO593jgYt8mvYafYqQl+axaA8y1z2HFazNUUrsMSjahV2A6/2R9A== + optionalDependencies: + fsevents "~2.3.1" -run-async@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" - integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= - dependencies: - is-promise "^2.1.0" +run-async@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +run-parallel@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" + integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" @@ -8132,26 +8702,40 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" -rxjs@6.5.3: - version "6.5.3" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.3.tgz#510e26317f4db91a7eb1de77d9dd9ba0a4899a3a" - integrity sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA== +rxjs@6.6.3: + version "6.6.3" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552" + integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ== dependencies: tslib "^1.9.0" -rxjs@^6.4.0, rxjs@^6.5.0, rxjs@~6.5.0: +rxjs@^6.5.0, rxjs@~6.5.0: version "6.5.4" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz#e0777fe0d184cec7872df147f303572d414e211c" integrity sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q== dependencies: tslib "^1.9.0" +rxjs@^6.5.3: + version "6.6.0" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.0.tgz#af2901eedf02e3a83ffa7f886240ff9018bbec84" + integrity sha512-3HMA8z/Oz61DUHe+SdOiQyzIf4tOx5oQHmMir7IZEu6TMqCLHT4LRcmNaUS0NwOz8VLvmmBduMsoaUvMaIiqzg== + dependencies: + tslib "^1.9.0" + +rxjs@^6.6.0: + version "6.6.6" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.6.tgz#14d8417aa5a07c5e633995b525e1e3c0dec03b70" + integrity sha512-/oTwee4N4iWzAMAL9xdGKjkEHmIwupR3oXbQjCKywF1BeFohswF3vZdogbmEF6pZkOsXTzWkrZszrWpQTByYVg== + dependencies: + tslib "^1.9.0" + safe-buffer@5.1.2, safe-buffer@~5.1.0, 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-buffer@>=5.1.0, 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.1.0, 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: version "5.2.0" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== @@ -8163,33 +8747,33 @@ safe-regex@^1.1.0: 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.2, safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@^2.1.2, 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== -sass-loader@8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-8.0.0.tgz#e7b07a3e357f965e6b03dd45b016b0a9746af797" - integrity sha512-+qeMu563PN7rPdit2+n5uuYVR0SSVwm0JsOUsaJXzgYcClWSlmX0iHDnmeOobPkf5kUglVot3QS6SyLyaQoJ4w== +sass-loader@10.1.1: + version "10.1.1" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.1.1.tgz#4ddd5a3d7638e7949065dd6e9c7c04037f7e663d" + integrity sha512-W6gVDXAd5hR/WHsPicvZdjAWHBcEJ44UahgxcIE196fW2ong0ZHMPO1kZuI5q0VlvMQZh32gpv69PLWQm70qrw== dependencies: - clone-deep "^4.0.1" - loader-utils "^1.2.3" - neo-async "^2.6.1" - schema-utils "^2.1.0" - semver "^6.3.0" + klona "^2.0.4" + loader-utils "^2.0.0" + neo-async "^2.6.2" + schema-utils "^3.0.0" + semver "^7.3.2" -sass@1.23.3: - version "1.23.3" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.23.3.tgz#f07503b9e8d2bcf06ef69e8beea5d085589b1620" - integrity sha512-1DKRZxJMOh4Bme16AbWTyYeJAjTlrvw2+fWshHHaepeJfGq2soFZTnt0YhWit+bohtDu4LdyPoEj6VFD4APHog== +sass@1.32.6: + version "1.32.6" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.32.6.tgz#e3646c8325cd97ff75a8a15226007f3ccd221393" + integrity sha512-1bcDHDcSqeFtMr0JXI3xc/CXX6c4p0wHHivJdru8W7waM7a1WjKMm4m/Z5sY7CbVw4Whi2Chpcw6DFfSWwGLzQ== dependencies: chokidar ">=2.0.0 <4.0.0" -sass@^1.23.0: - version "1.25.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.25.0.tgz#f8bd7dfbb39d6b0305e27704a8ebe637820693f3" - integrity sha512-uQMjye0Y70SEDGO56n0j91tauqS9E1BmpKHtiYNQScXDHeaE9uHwNEqQNFf4Bes/3DHMNinB6u79JsG10XWNyw== +sass@^1.32.5: + version "1.32.8" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.32.8.tgz#f16a9abd8dc530add8834e506878a2808c037bdc" + integrity sha512-Sl6mIeGpzjIUZqvKnKETfMf0iDAswD9TNlv13A7aAF3XZlRPMq4VvJWBC2N2DXbp94MQVdNSFG6LfF/iOXrPHQ== dependencies: chokidar ">=2.0.0 <4.0.0" @@ -8200,7 +8784,7 @@ saucelabs@^1.5.0: dependencies: https-proxy-agent "^2.2.1" -sax@>=0.6.0, sax@~1.2.4: +sax@>=0.6.0, sax@^1.2.4, sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== @@ -8214,21 +8798,23 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" -schema-utils@^2.0.0, schema-utils@^2.0.1, schema-utils@^2.1.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.1.tgz#eb78f0b945c7bcfa2082b3565e8db3548011dc4f" - integrity sha512-0WXHDs1VDJyo+Zqs9TKLKyD/h7yDpHUhEFsM2CzkICFdoX1av+GBq/J2xRTFfsQO5kBfhZzANf2VcIm84jqDbg== +schema-utils@^2.6.5, schema-utils@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" + integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== dependencies: - ajv "^6.10.2" + "@types/json-schema" "^7.0.4" + ajv "^6.12.2" ajv-keywords "^3.4.1" -schema-utils@^2.6.1, schema-utils@^2.6.4: - version "2.6.4" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.4.tgz#a27efbf6e4e78689d91872ee3ccfa57d7bdd0f53" - integrity sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ== +schema-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" + integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== dependencies: - ajv "^6.10.2" - ajv-keywords "^3.4.1" + "@types/json-schema" "^7.0.6" + ajv "^6.12.5" + ajv-keywords "^3.5.2" select-hose@^2.0.0: version "2.0.0" @@ -8245,12 +8831,12 @@ selenium-webdriver@3.6.0, selenium-webdriver@^3.0.1: tmp "0.0.30" xml2js "^0.4.17" -selfsigned@^1.10.7: - version "1.10.7" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.7.tgz#da5819fd049d5574f28e88a9bcc6dbc6e6f3906b" - integrity sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA== +selfsigned@^1.10.8: + version "1.10.8" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.8.tgz#0d17208b7d12c33f8eac85c41835f27fc3d81a30" + integrity sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w== dependencies: - node-forge "0.9.0" + node-forge "^0.10.0" semver-diff@^2.0.0: version "2.1.0" @@ -8259,13 +8845,6 @@ semver-diff@^2.0.0: dependencies: semver "^5.0.3" -semver-diff@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" - integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== - dependencies: - semver "^6.3.0" - semver-dsl@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/semver-dsl/-/semver-dsl-1.0.1.tgz#d3678de5555e8a61f629eed025366ae5f27340a0" @@ -8280,20 +8859,32 @@ semver-intersect@1.4.0: dependencies: semver "^5.0.0" -"semver@2 || 3 || 4 || 5", semver@^5.0.0, semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: +semver@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +semver@7.3.4, semver@^7.3.2, semver@^7.3.4: + version "7.3.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" + integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== + dependencies: + lru-cache "^6.0.0" + +semver@^5.0.0, semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, 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@6.3.0, semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== +semver@^7.0.0, semver@^7.1.1: + version "7.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== send@0.17.1: version "0.17.1" @@ -8314,10 +8905,19 @@ send@0.17.1: range-parser "~1.2.1" statuses "~1.5.0" -serialize-javascript@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" - integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== +serialize-javascript@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-3.1.0.tgz#8bf3a9170712664ef2561b44b691eafe399214ea" + integrity sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg== + dependencies: + randombytes "^2.1.0" + +serialize-javascript@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" + integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== + dependencies: + randombytes "^2.1.0" serve-index@^1.9.1: version "1.9.1" @@ -8342,7 +8942,7 @@ serve-static@1.14.1: parseurl "~1.3.3" send "0.17.1" -set-blocking@^2.0.0: +set-blocking@^2.0.0, 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= @@ -8416,16 +9016,16 @@ simple-swizzle@^0.2.2: dependencies: is-arrayish "^0.3.1" -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= - slash@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + smart-buffer@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba" @@ -8460,110 +9060,92 @@ snapdragon@^0.8.1: source-map "^0.5.6" source-map-resolve "^0.5.0" use "^3.1.0" - -socket.io-adapter@~1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" - integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== - -socket.io-client@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.1.1.tgz#dcb38103436ab4578ddb026638ae2f21b623671f" - integrity sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ== - dependencies: - backo2 "1.0.2" - base64-arraybuffer "0.1.5" - component-bind "1.0.0" - component-emitter "1.2.1" - debug "~3.1.0" - engine.io-client "~3.2.0" - has-binary2 "~1.0.2" - has-cors "1.1.0" - indexof "0.0.1" - object-component "0.0.3" - parseqs "0.0.5" - parseuri "0.0.5" - socket.io-parser "~3.2.0" - to-array "0.1.4" - -socket.io-parser@~3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.2.0.tgz#e7c6228b6aa1f814e6148aea325b51aa9499e077" - integrity sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA== + +socket.io-adapter@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz#edc5dc36602f2985918d631c1399215e97a1b527" + integrity sha512-+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg== + +socket.io-parser@~4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.0.4.tgz#9ea21b0d61508d18196ef04a2c6b9ab630f4c2b0" + integrity sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g== dependencies: - component-emitter "1.2.1" - debug "~3.1.0" - isarray "2.0.1" + "@types/component-emitter" "^1.2.10" + component-emitter "~1.3.0" + debug "~4.3.1" -socket.io@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.1.tgz#a069c5feabee3e6b214a75b40ce0652e1cfb9980" - integrity sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA== +socket.io@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-3.1.2.tgz#06e27caa1c4fc9617547acfbb5da9bc1747da39a" + integrity sha512-JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw== dependencies: - debug "~3.1.0" - engine.io "~3.2.0" - has-binary2 "~1.0.2" - socket.io-adapter "~1.1.0" - socket.io-client "2.1.1" - socket.io-parser "~3.2.0" + "@types/cookie" "^0.4.0" + "@types/cors" "^2.8.8" + "@types/node" ">=10.0.0" + accepts "~1.3.4" + base64id "~2.0.0" + debug "~4.3.1" + engine.io "~4.1.0" + socket.io-adapter "~2.1.0" + socket.io-parser "~4.0.3" -sockjs-client@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5" - integrity sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g== +sockjs-client@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.0.tgz#2f8ff5d4b659e0d092f7aba0b7c386bd2aa20add" + integrity sha512-8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q== dependencies: - debug "^3.2.5" + debug "^3.2.6" eventsource "^1.0.7" - faye-websocket "~0.11.1" - inherits "^2.0.3" - json3 "^3.3.2" - url-parse "^1.4.3" + faye-websocket "^0.11.3" + inherits "^2.0.4" + json3 "^3.3.3" + url-parse "^1.4.7" -sockjs@0.3.19: - version "0.3.19" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" - integrity sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw== +sockjs@^0.3.21: + version "0.3.21" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.21.tgz#b34ffb98e796930b60a0cfa11904d6a339a7d417" + integrity sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw== dependencies: - faye-websocket "^0.10.0" - uuid "^3.0.1" + faye-websocket "^0.11.3" + uuid "^3.4.0" + websocket-driver "^0.7.4" -socks-proxy-agent@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386" - integrity sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg== +socks-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz#7c0f364e7b1cf4a7a437e71253bed72e9004be60" + integrity sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA== dependencies: - agent-base "~4.2.1" - socks "~2.3.2" + agent-base "6" + debug "4" + socks "^2.3.3" -socks@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.3.3.tgz#01129f0a5d534d2b897712ed8aceab7ee65d78e3" - integrity sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA== +socks@^2.3.3: + version "2.5.1" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.5.1.tgz#7720640b6b5ec9a07d556419203baa3f0596df5f" + integrity sha512-oZCsJJxapULAYJaEYBSzMcz8m3jqgGrHaGhkmU/o/PQfFWYWxkAaA0UMGImb6s6tEXfKi959X6VJjMMQ3P6TTQ== dependencies: - ip "1.1.5" + ip "^1.1.5" smart-buffer "^4.1.0" -sort-keys@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" - integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= - dependencies: - is-plain-obj "^1.0.0" - -source-list-map@^2.0.0: +source-list-map@^2.0.0, source-list-map@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== -source-map-loader@0.2.4: - version "0.2.4" - resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-0.2.4.tgz#c18b0dc6e23bf66f6792437557c569a11e072271" - integrity sha512-OU6UJUty+i2JDpTItnizPrlpOIBLmQbWMuBg9q5bVtnHACqw1tn9nNwqJLbv0/00JjnJb/Ee5g5WS5vrRv7zIQ== +source-map-loader@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-1.1.3.tgz#7dbc2fe7ea09d3e43c51fd9fc478b7f016c1f820" + integrity sha512-6YHeF+XzDOrT/ycFJNI53cgEsp/tHTMl37hi7uVyqFAlTXW109JazaQCkbc+jjoL2637qkH1amLi+JzrIpt5lA== dependencies: - async "^2.5.0" - loader-utils "^1.1.0" + abab "^2.0.5" + iconv-lite "^0.6.2" + loader-utils "^2.0.0" + schema-utils "^3.0.0" + source-map "^0.6.1" + whatwg-mimetype "^2.3.0" -source-map-resolve@^0.5.0, source-map-resolve@^0.5.2, source-map-resolve@^0.5.3: +source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: 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== @@ -8574,7 +9156,23 @@ source-map-resolve@^0.5.0, source-map-resolve@^0.5.2, source-map-resolve@^0.5.3: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@0.5.16, source-map-support@^0.5.5, source-map-support@^0.5.6, source-map-support@~0.5.12: +source-map-resolve@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.6.0.tgz#3d9df87e236b53f16d01e58150fc7711138e5ed2" + integrity sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + +source-map-support@0.5.19, source-map-support@~0.5.19: + 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" + +source-map-support@^0.5.5, source-map-support@^0.5.6, source-map-support@~0.5.12: 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== @@ -8594,7 +9192,12 @@ source-map-url@^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.7.3, source-map@^0.7.3: +source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: + 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, source-map@^0.7.3, source-map@~0.7.2: version "0.7.3" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== @@ -8604,41 +9207,15 @@ source-map@^0.5.0, source-map@^0.5.6, source-map@^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, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - sourcemap-codec@^1.4.4: version "1.4.6" resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.6.tgz#e30a74f0402bad09807640d39e971090a08ce1e9" integrity sha512-1ZooVLYFxC448piVLBbtOxFcXwnymH9oUF8nRd3CuYDVvkRBxRl6pB4Mtas5a4drtL+E8LDgFkQNcgIw6tc8Hg== -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== - 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== - -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== - 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== +sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== spdy-transport@^3.0.0: version "3.0.0" @@ -8652,10 +9229,10 @@ spdy-transport@^3.0.0: readable-stream "^3.0.6" wbuf "^1.7.3" -spdy@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.1.tgz#6f12ed1c5db7ea4f24ebb8b89ba58c87c08257f2" - integrity sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA== +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== dependencies: debug "^4.1.0" handle-thing "^2.0.0" @@ -8663,12 +9240,12 @@ spdy@^4.0.1: select-hose "^2.0.0" spdy-transport "^3.0.0" -speed-measure-webpack-plugin@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.1.tgz#69840a5cdc08b4638697dac7db037f595d7f36a0" - integrity sha512-qVIkJvbtS9j/UeZumbdfz0vg+QfG/zxonAjzefZrqzkr7xOncLVXkeGbTpzd1gjCBM4PmVNkWlkeTVhgskAGSQ== +speed-measure-webpack-plugin@1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.4.2.tgz#1608e62d3bdb45f01810010e1b5bfedefedfa58f" + integrity sha512-AtVzD0bnIy2/B0fWqJpJgmhcrfWFhBlduzSo0uwplr/QvB33ZNZj2NEth3NONgdnZJqicK0W0mSxnLSbsVCDbw== dependencies: - chalk "^2.0.1" + chalk "^4.1.0" split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" @@ -8702,19 +9279,18 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" -ssri@^6.0.0, ssri@^6.0.1: +ssri@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== dependencies: figgy-pudding "^3.5.1" -ssri@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-7.1.0.tgz#92c241bf6de82365b5c7fb4bd76e975522e1294d" - integrity sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g== +ssri@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.0.tgz#79ca74e21f8ceaeddfcb4b90143c458b8d988808" + integrity sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA== dependencies: - figgy-pudding "^3.5.1" minipass "^3.1.1" stable@^0.1.8: @@ -8767,21 +9343,14 @@ stream-shift@^1.0.0: resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== -streamroller@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-1.0.6.tgz#8167d8496ed9f19f05ee4b158d9611321b8cacd9" - integrity sha512-3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg== +streamroller@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-2.2.4.tgz#c198ced42db94086a6193608187ce80a5f2b0e53" + integrity sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ== dependencies: - async "^2.6.2" - date-format "^2.0.0" - debug "^3.2.6" - fs-extra "^7.0.1" - lodash "^4.17.14" - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + date-format "^2.1.0" + debug "^4.1.1" + fs-extra "^8.1.0" string-width@^1.0.1: version "1.0.2" @@ -8792,7 +9361,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -string-width@^2.0.0, string-width@^2.1.1: +"string-width@^1.0.2 || 2", 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== @@ -8800,7 +9369,7 @@ string-width@^2.0.0, string-width@^2.1.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string-width@^3.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" integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== @@ -8809,7 +9378,7 @@ string-width@^3.0.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.0.0, string-width@^4.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== @@ -8862,7 +9431,7 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" -strip-ansi@^5.1.0, strip-ansi@^5.2.0: +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== @@ -8876,11 +9445,6 @@ strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" @@ -8891,13 +9455,13 @@ strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= -style-loader@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.0.0.tgz#1d5296f9165e8e2c85d24eee0b7caf9ec8ca1f82" - integrity sha512-B0dOCFwv7/eY31a5PCieNwMgMhVGFe9w+rh7s/Bx8kfFkrth9zfTZquoYvdw8URgiqxObQKcpW51Ugz1HjfdZw== +style-loader@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-2.0.0.tgz#9669602fd4690740eaaec137799a03addbbc393c" + integrity sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ== dependencies: - loader-utils "^1.2.3" - schema-utils "^2.0.1" + loader-utils "^2.0.0" + schema-utils "^3.0.0" stylehacks@^4.0.0: version "4.0.3" @@ -8908,27 +9472,29 @@ stylehacks@^4.0.0: postcss "^7.0.0" postcss-selector-parser "^3.0.0" -stylus-loader@3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-3.0.2.tgz#27a706420b05a38e038e7cacb153578d450513c6" - integrity sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA== +stylus-loader@4.3.3: + version "4.3.3" + resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-4.3.3.tgz#381bb6341272ac50bcdfd0b877707eac99b6b757" + integrity sha512-PpWB5PnCXUzW4WMYhCvNzAHJBjIBPMXwsdfkkKuA9W7k8OQFMl/19/AQvaWsxz2IptxUlCseyJ6TY/eEKJ4+UQ== dependencies: - loader-utils "^1.0.2" - lodash.clonedeep "^4.5.0" - when "~3.6.x" + fast-glob "^3.2.4" + klona "^2.0.4" + loader-utils "^2.0.0" + normalize-path "^3.0.0" + schema-utils "^3.0.0" -stylus@0.54.7, stylus@^0.54.7: - version "0.54.7" - resolved "https://registry.yarnpkg.com/stylus/-/stylus-0.54.7.tgz#c6ce4793965ee538bcebe50f31537bfc04d88cd2" - integrity sha512-Yw3WMTzVwevT6ZTrLCYNHAFmanMxdylelL3hkWNgPMeTCpMwpV3nXjpOHuBXtFv7aiO2xRuQS6OoAdgkNcSNug== +stylus@0.54.8, stylus@^0.54.8: + version "0.54.8" + resolved "https://registry.yarnpkg.com/stylus/-/stylus-0.54.8.tgz#3da3e65966bc567a7b044bfe0eece653e099d147" + integrity sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg== dependencies: css-parse "~2.0.0" debug "~3.1.0" - glob "^7.1.3" - mkdirp "~0.5.x" + glob "^7.1.6" + mkdirp "~1.0.4" safer-buffer "^2.1.2" sax "~1.2.4" - semver "^6.0.0" + semver "^6.3.0" source-map "^0.7.3" supports-color@^2.0.0: @@ -8976,28 +9542,51 @@ svgo@^1.0.0: unquote "~1.1.1" util.promisify "~1.0.0" -symbol-observable@1.2.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== +symbol-observable@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-3.0.0.tgz#eea8f6478c651018e059044268375c408c15c533" + integrity sha512-6tDOXSHiVjuCaasQSWTmHUWn4PuG7qa3+1WT031yTc/swT7+rLiw3GOrFxaH1E3lLP09dH3bVuVDf2gK5rxG3Q== + +sync-rpc@^1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/sync-rpc/-/sync-rpc-1.3.6.tgz#b2e8b2550a12ccbc71df8644810529deb68665a7" + integrity sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw== + dependencies: + get-port "^3.1.0" tapable@^1.0.0, tapable@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== -tar@^4.4.10: - version "4.4.13" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" - integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== +tapable@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b" + integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== + +tar@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.2.tgz#5df17813468a6264ff14f766886c622b84ae2f39" + integrity sha512-Glo3jkRtPcvpDlAs/0+hozav78yoXKFr+c4wgw62NNMO3oo4AaJdCo21Uu7lcwr55h39W2XD1LMERc64wtbItg== dependencies: - chownr "^1.1.1" - fs-minipass "^1.2.5" - minipass "^2.8.6" - minizlib "^1.2.1" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.3" + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.0" + mkdirp "^1.0.3" + yallist "^4.0.0" + +tar@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" + integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== + dependencies: + 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" term-size@^1.2.0: version "1.2.0" @@ -9006,49 +9595,44 @@ term-size@^1.2.0: dependencies: execa "^0.7.0" -term-size@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.0.tgz#1f16adedfe9bdc18800e1776821734086fcc6753" - integrity sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw== - -terser-webpack-plugin@2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.3.3.tgz#b89043168bd414153bab86f4362ac23d537b78b0" - integrity sha512-gWHkaGzGYjmDoYxksFZynWTzvXOAjQ5dd7xuTMYlv4zpWlLSb6v0QLSZjELzP5dMs1ox30O1BIPs9dgqlMHuLQ== - dependencies: - cacache "^13.0.1" - find-cache-dir "^3.2.0" - jest-worker "^25.1.0" - p-limit "^2.2.2" - schema-utils "^2.6.4" - serialize-javascript "^2.1.2" +terser-webpack-plugin@4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz#28daef4a83bd17c1db0297070adc07fc8cfc6a9a" + integrity sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ== + dependencies: + cacache "^15.0.5" + find-cache-dir "^3.3.1" + jest-worker "^26.5.0" + p-limit "^3.0.2" + schema-utils "^3.0.0" + serialize-javascript "^5.0.1" source-map "^0.6.1" - terser "^4.4.3" + terser "^5.3.4" webpack-sources "^1.4.3" -terser-webpack-plugin@^1.4.1: - version "1.4.3" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" - integrity sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA== +terser-webpack-plugin@^1.4.3: + version "1.4.4" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz#2c63544347324baafa9a56baaddf1634c8abfc2f" + integrity sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA== dependencies: cacache "^12.0.2" find-cache-dir "^2.1.0" is-wsl "^1.1.0" schema-utils "^1.0.0" - serialize-javascript "^2.1.2" + serialize-javascript "^3.1.0" source-map "^0.6.1" terser "^4.1.2" webpack-sources "^1.4.0" worker-farm "^1.7.0" -terser@4.5.1: - version "4.5.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.5.1.tgz#63b52d6b6ce344aa6fedcd0ee06a695799eb50bd" - integrity sha512-lH9zLIbX8PRBEFCTvfHGCy0s9HEKnNso1Dx9swSopF3VUnFLB8DpQ61tHxoofovNC/sG0spajJM3EIIRSTByiQ== +terser@5.5.1: + version "5.5.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.5.1.tgz#540caa25139d6f496fdea056e414284886fb2289" + integrity sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ== dependencies: commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" + source-map "~0.7.2" + source-map-support "~0.5.19" terser@^4.1.2: version "4.4.3" @@ -9059,14 +9643,19 @@ terser@^4.1.2: source-map "~0.6.1" source-map-support "~0.5.12" -terser@^4.3.8, terser@^4.4.3: - version "4.6.3" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.3.tgz#e33aa42461ced5238d352d2df2a67f21921f8d87" - integrity sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ== +terser@^5.3.4, terser@^5.5.1: + version "5.6.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.6.0.tgz#138cdf21c5e3100b1b3ddfddf720962f88badcd2" + integrity sha512-vyqLMoqadC1uR0vywqOZzriDYzgEkNJFK4q9GeyOBHIbiECHiWLKcWfbQWAUaPfxkjDhapSlZB9f7fkMrvkVjA== dependencies: commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" + source-map "~0.7.2" + source-map-support "~0.5.19" + +text-table@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= through2@^2.0.0: version "2.0.5" @@ -9076,7 +9665,7 @@ through2@^2.0.0: readable-stream "~2.3.6" xtend "~4.0.1" -"through@>=2.2.7 <3", through@X.X.X, through@^2.3.6: +through@X.X.X, through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= @@ -9110,18 +9699,20 @@ tmp@0.0.30: dependencies: os-tmpdir "~1.0.1" -tmp@0.0.33, tmp@0.0.x, tmp@^0.0.33: +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: + rimraf "^3.0.0" + +tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== dependencies: os-tmpdir "~1.0.2" -to-array@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" - integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= - to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" @@ -9139,11 +9730,6 @@ to-object-path@^0.3.0: dependencies: kind-of "^3.0.2" -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== - 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" @@ -9187,6 +9773,14 @@ tough-cookie@~2.4.3: psl "^1.1.24" punycode "^1.4.1" +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== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + tree-kill@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" @@ -9206,28 +9800,43 @@ ts-node@~7.0.0: source-map-support "^0.5.6" yn "^2.0.0" -tslib@1.10.0, tslib@^1.10.0, tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0: +ts-pnp@^1.1.6: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" + integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== + +tslib@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" + integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== + +tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0: version "1.10.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== -tslint@~5.15.0: - version "5.15.0" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.15.0.tgz#6ffb180986d63afa1e531feb2a134dbf961e27d3" - integrity sha512-6bIEujKR21/3nyeoX2uBnE8s+tMXCQXhqMmaIPJpHmXJoBJPTLcI7/VHRtUwMhnLVdwLqqY3zmd8Dxqa5CVdJA== +tslib@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.0.tgz#18d13fc2dce04051e20f074cc8387fd8089ce4f3" + integrity sha512-lTqkx847PI7xEDYJntxZH89L2/aXInsyF2luSafe/+0fHOMjlBNXdH6th7f70qxLDhul7KZK0zC8V5ZIyHl0/g== + +tslint@~6.1.0: + version "6.1.2" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-6.1.2.tgz#2433c248512cc5a7b2ab88ad44a6b1b34c6911cf" + integrity sha512-UyNrLdK3E0fQG/xWNqAFAC5ugtFyPO4JJR1KyyfQAyzR8W0fTRrC91A8Wej4BntFzcvETdCSDa/4PnNYJQLYiA== dependencies: - babel-code-frame "^6.22.0" + "@babel/code-frame" "^7.0.0" builtin-modules "^1.1.1" chalk "^2.3.0" commander "^2.12.1" - diff "^3.2.0" + diff "^4.0.1" glob "^7.1.1" - js-yaml "^3.13.0" + js-yaml "^3.13.1" minimatch "^3.0.4" - mkdirp "^0.5.1" + mkdirp "^0.5.3" resolve "^1.3.2" semver "^5.3.0" - tslib "^1.8.0" + tslib "^1.10.0" tsutils "^2.29.0" tsutils@^2.29.0: @@ -9254,11 +9863,6 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0: resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - type-fest@^0.8.1: version "0.8.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" @@ -9272,22 +9876,35 @@ type-is@~1.6.17, type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" + integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow== typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@3.6.4, typescript@~3.6.3: - version "3.6.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.6.4.tgz#b18752bb3792bc1a0281335f7f6ebf1bbfc5b91d" - integrity sha512-unoCll1+l+YK4i4F8f22TaNVPRHcD9PA3yCuZ8g5e0qGqlVlJ/8FSateOLLSagn+Yg5+ZwuPkL8LFUc0Jcvksg== +typescript@4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.3.tgz#519d582bd94cba0cf8934c7d8e8467e473f53bb7" + integrity sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg== + +typescript@~4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.5.tgz#123a3b214aaff3be32926f0d8f1f6e704eb89a72" + integrity sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA== + +ua-parser-js@^0.7.23: + version "0.7.24" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.24.tgz#8d3ecea46ed4f1f1d63ec25f17d8568105dc027c" + integrity sha512-yo+miGzQx5gakzVK3QFfN0/L9uVhosXBBO7qmnk7c2iw1IhL212wfA3zbnI54B0obGwC/5NWub/iT9sReMx+Fw== uglify-js@3.4.x: version "3.4.10" @@ -9297,19 +9914,6 @@ uglify-js@3.4.x: commander "~2.19.0" source-map "~0.6.1" -uglify-js@^3.1.4: - version "3.7.3" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.7.3.tgz#f918fce9182f466d5140f24bb0ff35c2d32dcc6a" - integrity sha512-7tINm46/3puUA4hCkKYo4Xdts+JDaVC9ZPRcG8Xw9R4nhO/gZgUM3TENq8IF4Vatk8qCig4MzP/c8G4u2BkVQg== - dependencies: - commander "~2.20.3" - source-map "~0.6.1" - -ultron@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" - integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== - 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" @@ -9323,10 +9927,10 @@ 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" @@ -9374,20 +9978,13 @@ unique-string@^1.0.0: dependencies: crypto-random-string "^1.0.0" -unique-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" - integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== - dependencies: - crypto-random-string "^2.0.0" - -universal-analytics@^0.4.20: - version "0.4.20" - resolved "https://registry.yarnpkg.com/universal-analytics/-/universal-analytics-0.4.20.tgz#d6b64e5312bf74f7c368e3024a922135dbf24b03" - integrity sha512-gE91dtMvNkjO+kWsPstHRtSwHXz0l2axqptGYp5ceg4MsuurloM0PU3pdOfpb5zBXUvyjT4PwhWK2m39uczZuw== +universal-analytics@0.4.23: + version "0.4.23" + resolved "https://registry.yarnpkg.com/universal-analytics/-/universal-analytics-0.4.23.tgz#d915e676850c25c4156762471bdd7cf2eaaca8ac" + integrity sha512-lgMIH7XBI6OgYn1woDEmxhGdj8yDefMKg7GkWdeATAlQZFrMrNyxSkpDzY57iY0/6fdlzTbBV03OawvvzG+q7A== dependencies: - debug "^3.0.0" - request "^2.88.0" + debug "^4.1.1" + request "^2.88.2" uuid "^3.0.0" universalify@^0.1.0: @@ -9439,24 +10036,6 @@ update-notifier@^2.5.0: semver-diff "^2.0.0" xdg-basedir "^3.0.0" -update-notifier@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.0.0.tgz#f344a6f8b03e00e31b323d632a0e632e9f0e0654" - integrity sha512-p9zf71hWt5GVXM4iEBujpUgx8mK9AWiCCapEJm/O1z5ntCim83Z1ATqzZFBHFYqx03laMqv8LiDgs/7ikXjf/g== - dependencies: - boxen "^4.2.0" - chalk "^3.0.0" - configstore "^5.0.0" - has-yarn "^2.1.0" - import-lazy "^2.1.0" - is-ci "^2.0.0" - is-installed-globally "^0.3.1" - is-npm "^4.0.0" - is-yarn-global "^0.3.0" - latest-version "^5.0.0" - semver-diff "^3.1.1" - xdg-basedir "^4.0.0" - upper-case@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" @@ -9481,13 +10060,6 @@ url-parse-lax@^1.0.0: dependencies: prepend-http "^1.0.1" -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= - dependencies: - prepend-http "^2.0.0" - url-parse@^1.4.3: version "1.4.7" resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" @@ -9496,6 +10068,14 @@ url-parse@^1.4.3: querystringify "^2.1.1" requires-port "^1.0.0" +url-parse@^1.4.7: + version "1.5.1" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.1.tgz#d5fa9890af8a5e1f274a2c98376510f6425f6e3b" + integrity sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + url@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" @@ -9509,26 +10089,11 @@ use@^3.1.0: resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== -useragent@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.3.0.tgz#217f943ad540cb2128658ab23fc960f6a88c9972" - integrity sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw== - dependencies: - lru-cache "4.1.x" - tmp "0.0.x" - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: +util-deprecate@^1.0.1, util-deprecate@^1.0.2, 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-promisify@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/util-promisify/-/util-promisify-2.1.0.tgz#3c2236476c4d32c5ff3c47002add7c13b9a82a53" - integrity sha1-PCI2R2xNMsX/PEcAKt18E7moKlM= - dependencies: - object.getownpropertydescriptors "^2.0.3" - util.promisify@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" @@ -9571,18 +10136,20 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@^3.0.0, uuid@^3.0.1, uuid@^3.3.2: +uuid@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +uuid@^3.0.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== -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" +uuid@^3.4.0: + 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-name@^3.0.0: version "3.0.0" @@ -9591,7 +10158,7 @@ validate-npm-package-name@^3.0.0: dependencies: builtins "^1.0.3" -vary@~1.1.2: +vary@^1, vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= @@ -9620,14 +10187,23 @@ void-elements@^2.0.0: resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= -watchpack@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" - integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== +watchpack-chokidar2@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" + integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== + dependencies: + chokidar "^2.1.8" + +watchpack@^1.7.4: + version "1.7.5" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" + integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== dependencies: - chokidar "^2.0.2" graceful-fs "^4.1.2" neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.1" + watchpack-chokidar2 "^2.0.1" wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3" @@ -9651,7 +10227,7 @@ webdriver-js-extender@2.1.0: "@types/selenium-webdriver" "^3.0.0" selenium-webdriver "^3.0.1" -webdriver-manager@^12.0.6: +webdriver-manager@^12.1.7: version "12.1.7" resolved "https://registry.yarnpkg.com/webdriver-manager/-/webdriver-manager-12.1.7.tgz#ed4eaee8f906b33c146e869b55e850553a1b1162" integrity sha512-XINj6b8CYuUYC93SG3xPkxlyUc3IJbD6Vvo75CVGuG9uzsefDzWQrhz0Lq8vbPxtb4d63CZdYophF8k8Or/YiA== @@ -9679,10 +10255,10 @@ webpack-dev-middleware@3.7.2, webpack-dev-middleware@^3.7.2: range-parser "^1.2.1" webpack-log "^2.0.0" -webpack-dev-server@3.9.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.9.0.tgz#27c3b5d0f6b6677c4304465ac817623c8b27b89c" - integrity sha512-E6uQ4kRrTX9URN9s/lIbqTAztwEPdvzVrcmHE8EQ9YnuT9J8Es5Wrd8n9BKg1a0oZ5EgEke/EQFgUsp18dSTBw== +webpack-dev-server@3.11.2: + version "3.11.2" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz#695ebced76a4929f0d5de7fd73fafe185fe33708" + integrity sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ== dependencies: ansi-html "0.0.7" bonjour "^3.5.0" @@ -9692,31 +10268,31 @@ webpack-dev-server@3.9.0: debug "^4.1.1" del "^4.1.1" express "^4.17.1" - html-entities "^1.2.1" + html-entities "^1.3.1" http-proxy-middleware "0.19.1" import-local "^2.0.0" internal-ip "^4.3.0" ip "^1.1.5" is-absolute-url "^3.0.3" killable "^1.0.1" - loglevel "^1.6.4" + loglevel "^1.6.8" opn "^5.5.0" p-retry "^3.0.1" - portfinder "^1.0.25" + portfinder "^1.0.26" schema-utils "^1.0.0" - selfsigned "^1.10.7" + selfsigned "^1.10.8" semver "^6.3.0" serve-index "^1.9.1" - sockjs "0.3.19" - sockjs-client "1.4.0" - spdy "^4.0.1" + sockjs "^0.3.21" + sockjs-client "^1.5.0" + spdy "^4.0.2" strip-ansi "^3.0.1" supports-color "^6.1.0" url "^0.11.0" webpack-dev-middleware "^3.7.2" webpack-log "^2.0.0" ws "^6.2.1" - yargs "12.0.5" + yargs "^13.3.2" webpack-log@^2.0.0: version "2.0.0" @@ -9726,14 +10302,23 @@ webpack-log@^2.0.0: ansi-colors "^3.0.0" uuid "^3.3.2" -webpack-merge@4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" - integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== +webpack-merge@5.7.3: + version "5.7.3" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.7.3.tgz#2a0754e1877a25a8bbab3d2475ca70a052708213" + integrity sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA== + dependencies: + clone-deep "^4.0.1" + wildcard "^2.0.0" + +webpack-sources@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.2.0.tgz#058926f39e3d443193b6c31547229806ffd02bac" + integrity sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w== dependencies: - lodash "^4.17.15" + source-list-map "^2.0.1" + source-map "^0.6.1" -webpack-sources@1.4.3, webpack-sources@^1.1.0, webpack-sources@^1.2.0, webpack-sources@^1.3.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: +webpack-sources@^1.1.0, webpack-sources@^1.2.0, webpack-sources@^1.3.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== @@ -9741,40 +10326,40 @@ webpack-sources@1.4.3, webpack-sources@^1.1.0, webpack-sources@^1.2.0, webpack-s source-list-map "^2.0.0" source-map "~0.6.1" -webpack-subresource-integrity@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/webpack-subresource-integrity/-/webpack-subresource-integrity-1.3.4.tgz#4554e0c622d6787f880eba009cdb73139c107bad" - integrity sha512-6XbGYzjh30cGQT/NsC+9IAkJP8IL7/t47sbwR5DLSsamiD56Rwv4/+hsgEHsviPvrEFZ0JRAQtCRN3UsR2Pw9g== +webpack-subresource-integrity@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/webpack-subresource-integrity/-/webpack-subresource-integrity-1.5.2.tgz#e40b6578d3072e2d24104975249c52c66e9a743e" + integrity sha512-GBWYBoyalbo5YClwWop9qe6Zclp8CIXYGIz12OPclJhIrSplDxs1Ls1JDMH8xBPPrg1T6ISaTW9Y6zOrwEiAzw== dependencies: webpack-sources "^1.3.0" -webpack@4.41.2: - version "4.41.2" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.2.tgz#c34ec76daa3a8468c9b61a50336d8e3303dce74e" - integrity sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A== +webpack@4.44.2: + version "4.44.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.2.tgz#6bfe2b0af055c8b2d1e90ed2cd9363f841266b72" + integrity sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q== dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-module-context" "1.8.5" - "@webassemblyjs/wasm-edit" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - acorn "^6.2.1" + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + acorn "^6.4.1" ajv "^6.10.2" ajv-keywords "^3.4.1" chrome-trace-event "^1.0.2" - enhanced-resolve "^4.1.0" + enhanced-resolve "^4.3.0" eslint-scope "^4.0.3" json-parse-better-errors "^1.0.2" loader-runner "^2.4.0" loader-utils "^1.2.3" memory-fs "^0.4.1" micromatch "^3.1.10" - mkdirp "^0.5.1" + mkdirp "^0.5.3" neo-async "^2.6.1" node-libs-browser "^2.2.1" schema-utils "^1.0.0" tapable "^1.1.3" - terser-webpack-plugin "^1.4.1" - watchpack "^1.6.0" + terser-webpack-plugin "^1.4.3" + watchpack "^1.7.4" webpack-sources "^1.4.1" websocket-driver@>=0.5.1: @@ -9786,28 +10371,51 @@ websocket-driver@>=0.5.1: safe-buffer ">=5.1.0" websocket-extensions ">=0.1.1" +websocket-driver@^0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + websocket-extensions@>=0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg== -when@~3.6.x: - version "3.6.4" - resolved "https://registry.yarnpkg.com/when/-/when-3.6.4.tgz#473b517ec159e2b85005497a13983f095412e34e" - integrity sha1-RztRfsFZ4rhQBUl6E5g/CVQS404= +whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== 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@^1.2.1, which@^1.2.9, which@^1.3.1: +which@^1.2.1, which@^1.2.9: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" +which@^2.0.2: + 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" + +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + widest-line@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" @@ -9815,17 +10423,10 @@ widest-line@^2.0.0: dependencies: string-width "^2.1.1" -widest-line@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" - integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== - dependencies: - string-width "^4.0.0" - -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= +wildcard@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" + integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== worker-farm@^1.7.0: version "1.7.0" @@ -9834,20 +10435,39 @@ worker-farm@^1.7.0: dependencies: errno "~0.1.7" -worker-plugin@3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/worker-plugin/-/worker-plugin-3.2.0.tgz#ddae9f161b76fcbaacf8f54ecd037844584e43e7" - integrity sha512-W5nRkw7+HlbsEt3qRP6MczwDDISjiRj2GYt9+bpe8A2La00TmJdwzG5bpdMXhRt1qcWmwAvl1TiKaHRa+XDS9Q== +worker-plugin@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/worker-plugin/-/worker-plugin-5.0.0.tgz#113b5fe1f4a5d6a957cecd29915bedafd70bb537" + integrity sha512-AXMUstURCxDD6yGam2r4E34aJg6kW85IiaeX72hi+I1cxyaMUtrvVY6sbfpGKAj5e7f68Acl62BjQF5aOOx2IQ== dependencies: loader-utils "^1.1.0" -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= +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.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" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" wrappy@1: version "1.0.2" @@ -9863,16 +10483,6 @@ write-file-atomic@^2.0.0: imurmurhash "^0.1.4" signal-exit "^3.0.2" -write-file-atomic@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.1.tgz#558328352e673b5bb192cf86500d60b230667d4b" - integrity sha512-JPStrIyyVJ6oCSz/691fAjFtefZ6q+fP6tm+OS4Qw6o+TGQxNp1ziY2PgS+X/m0V8OWhZiO/m4xSj+Pr4RrZvw== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - ws@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" @@ -9880,25 +10490,16 @@ ws@^6.2.1: dependencies: async-limiter "~1.0.0" -ws@~3.3.1: - version "3.3.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" - integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== - dependencies: - async-limiter "~1.0.0" - safe-buffer "~5.1.0" - ultron "~1.1.0" +ws@~7.4.2: + version "7.4.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.3.tgz#1f9643de34a543b8edb124bdcbc457ae55a6e5cd" + integrity sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA== 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= -xdg-basedir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" - integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== - xml2js@^0.4.17: version "0.4.23" resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" @@ -9912,34 +10513,34 @@ xmlbuilder@~11.0.0: resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== -xmlhttprequest-ssl@~1.5.4: - version "1.5.5" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" - integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= - xtend@^4.0.0, 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== -xxhashjs@^0.2.1: +xxhashjs@0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/xxhashjs/-/xxhashjs-0.2.2.tgz#8a6251567621a1c46a5ae204da0249c7f8caa9d8" integrity sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw== dependencies: cuint "^0.2.2" -"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== +y18n@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" + integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== + yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= -yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: +yallist@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== @@ -9949,68 +10550,89 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -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== +yaml@^1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" + integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== + +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-parser@^13.0.0: - version "13.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" - integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== +yargs-parser@^18.1.2: + 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@12.0.5: - version "12.0.5" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" - integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== +yargs-parser@^20.2.2: + version "20.2.6" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.6.tgz#69f920addf61aafc0b8b89002f5d66e28f2d8b20" + integrity sha512-AP1+fQIWSM/sMiET8fyayjx/J+JmTPt2Mr0FkrgqB4todtfa53sOsrSAcIrJRD5XS20bKUwaDIuMkWKCEiQLKA== + +yargs@^13.3.2: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== dependencies: - cliui "^4.0.0" - decamelize "^1.2.0" + cliui "^5.0.0" find-up "^3.0.0" - get-caller-file "^1.0.1" - os-locale "^3.0.0" + get-caller-file "^2.0.1" require-directory "^2.1.1" - require-main-filename "^1.0.1" + require-main-filename "^2.0.0" set-blocking "^2.0.0" - string-width "^2.0.0" + string-width "^3.0.0" which-module "^2.0.0" - y18n "^3.2.1 || ^4.0.0" - yargs-parser "^11.1.1" + y18n "^4.0.0" + yargs-parser "^13.1.2" -yargs@13.1.0: - version "13.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.1.0.tgz#b2729ce4bfc0c584939719514099d8a916ad2301" - integrity sha512-1UhJbXfzHiPqkfXNHYhiz79qM/kZqjTE8yGlEjZa85Q+3+OwcV6NRkV7XOV1W2Eom2bzILeUn55pQYffjVOLAg== +yargs@^15.3.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== dependencies: - cliui "^4.0.0" - find-up "^3.0.0" + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" get-caller-file "^2.0.1" - os-locale "^3.1.0" require-directory "^2.1.1" require-main-filename "^2.0.0" set-blocking "^2.0.0" - string-width "^3.0.0" + string-width "^4.2.0" which-module "^2.0.0" y18n "^4.0.0" - yargs-parser "^13.0.0" + yargs-parser "^18.1.2" -yeast@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" - integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= +yargs@^16.1.1: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" yn@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" integrity sha1-5a2ryKz0CPY4X8dklWhMiOavaJo= -zone.js@~0.10.1: - version "0.10.2" - resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.10.2.tgz#67ca084b3116fc33fc40435e0d5ea40a207e392e" - integrity sha512-UAYfiuvxLN4oyuqhJwd21Uxb4CNawrq6fPS/05Su5L4G+1TN+HVDJMUHNMobVQDFJRir2cLAODXwluaOKB7HFg== +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zone.js@~0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.10.3.tgz#3e5e4da03c607c9dcd92e37dd35687a14a140c16" + integrity sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg== diff --git a/examples/angular_view_engine/WORKSPACE b/examples/angular_view_engine/WORKSPACE index 573c9f275e..b0b8f171fc 100644 --- a/examples/angular_view_engine/WORKSPACE +++ b/examples/angular_view_engine/WORKSPACE @@ -16,18 +16,24 @@ 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 = "790af2f3739871fedfb5721263e145e6ca6559c3c90bcaf6f3482a165d411827", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.0-rc.0/rules_nodejs-2.0.0-rc.0.tar.gz"], + sha256 = "1134ec9b7baee008f1d54f0483049a97e53a57cd3913ec9d6db625549c98395a", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.4.0/rules_nodejs-3.4.0.tar.gz"], ) # Fetch sass rules for compiling sass files http_archive( name = "io_bazel_rules_sass", - sha256 = "c78be58f5e0a29a04686b628cf54faaee0094322ae0ac99da5a8a8afca59a647", - strip_prefix = "rules_sass-1.25.0", + patch_args = ["-p1"], + # We need the latest rules_sass to get the --bazel_patch_module_resolver behavior + # However it seems to have a bug, so we patch back to the prior dart-sass version. + # See https://github.com/bazelbuild/rules_sass/issues/127 + # TODO(alexeagle): fix upstream and remove patch + patches = ["@build_bazel_rules_nodejs//:rules_sass.issue127.patch"], + sha256 = "8392cf8910db2b1dc3b488ea18113bfe4fd666037bf8ec30d2a3f08fc602a6d8", + strip_prefix = "rules_sass-1.30.0", urls = [ - "https://github.com/bazelbuild/rules_sass/archive/1.25.0.zip", - "https://mirror.bazel.build/github.com/bazelbuild/rules_sass/archive/1.25.0.zip", + "https://github.com/bazelbuild/rules_sass/archive/1.30.0.zip", + "https://mirror.bazel.build/github.com/bazelbuild/rules_sass/archive/1.30.0.zip", ], ) @@ -41,22 +47,17 @@ yarn_install( yarn_lock = "//:yarn.lock", ) -# Install the @angular/bazel package into @npm_angular_bazel -# Note, this will probably break in a future rules_nodejs release. -# It causes all builds to fetch npm packages even if not needed (eg. only building go code) -load("@npm//:install_bazel_dependencies.bzl", "install_bazel_dependencies") - -install_bazel_dependencies(suppress_warning = True) - # Load @bazel/protractor dependencies load("@npm//@bazel/protractor:package.bzl", "npm_bazel_protractor_dependencies") npm_bazel_protractor_dependencies() -# Load @bazel/karma dependencies -load("@npm//@bazel/karma:package.bzl", "npm_bazel_karma_dependencies") - -npm_bazel_karma_dependencies() +# Load karma dependencies +http_archive( + name = "io_bazel_rules_webtesting", + sha256 = "9bb461d5ef08e850025480bab185fd269242d4e533bca75bfb748001ceb343c3", + urls = ["https://github.com/bazelbuild/rules_webtesting/releases/download/0.3.3/rules_webtesting.tar.gz"], +) # Setup the rules_webtesting toolchain load("@io_bazel_rules_webtesting//web:repositories.bzl", "web_test_repositories") @@ -70,11 +71,6 @@ browser_repositories( firefox = True, ) -# Setup the rules_typescript tooolchain -load("@npm//@bazel/typescript:index.bzl", "ts_setup_workspace") - -ts_setup_workspace() - # Setup the rules_sass toolchain load("@io_bazel_rules_sass//sass:sass_repositories.bzl", "sass_repositories") @@ -86,10 +82,10 @@ sass_repositories() http_archive( name = "bazel_toolchains", - sha256 = "db48eed61552e25d36fe051a65d2a329cc0fb08442627e8f13960c5ab087a44e", - strip_prefix = "bazel-toolchains-3.2.0", + sha256 = "1adf5db506a7e3c465a26988514cfc3971af6d5b3c2218925cd6e71ee443fc3f", + strip_prefix = "bazel-toolchains-4.0.0", 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/4.0.0/bazel-toolchains-4.0.0.tar.gz", + "https://github.com/bazelbuild/bazel-toolchains/releases/download/4.0.0/bazel-toolchains-4.0.0.tar.gz", ], ) diff --git a/examples/angular_view_engine/package.json b/examples/angular_view_engine/package.json index 477be6faed..a93535aa46 100644 --- a/examples/angular_view_engine/package.json +++ b/examples/angular_view_engine/package.json @@ -25,28 +25,30 @@ "zone.js": "0.10.2" }, "devDependencies": { - "@angular/bazel": "9.0.0-rc.10", + "@angular/bazel": "9.0.5", "@angular/cli": "8.3.12", "@angular/compiler": "8.2.14", "@angular/compiler-cli": "8.2.14", "@babel/cli": "^7.6.0", "@babel/core": "^7.6.0", "@babel/preset-env": "^7.6.0", - "@bazel/bazelisk": "^1.5.0", "@bazel/benchmark-runner": "^0.1.0", - "@bazel/buildifier": "^3.3.0", - "@bazel/ibazel": "^0.13.1", - "@bazel/karma": "^2.0.0-rc.0", - "@bazel/protractor": "^2.0.0-rc.0", - "@bazel/rollup": "^2.0.0-rc.0", - "@bazel/terser": "^2.0.0-rc.0", - "@bazel/typescript": "^2.0.0-rc.0", + "@bazel/buildifier": "^4.0.1", + "@bazel/concatjs": "^3.4.0", + "@bazel/ibazel": "^0.15.9", + "@bazel/protractor": "^3.4.0", + "@bazel/rollup": "^3.4.0", + "@bazel/terser": "^3.4.0", + "@bazel/typescript": "^3.4.0", + "@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", "firebase-tools": "7.1.0", "history-server": "^1.3.1", "html-insert-assets": "^0.6.0", + "jasmine": "2.8.0", "karma": "~4.1.0", "karma-chrome-launcher": "2.2.0", "karma-firefox-launcher": "1.1.0", @@ -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/patches/@angular+bazel+9.0.0-rc.10.patch b/examples/angular_view_engine/patches/@angular+bazel+9.0.0-rc.10.patch deleted file mode 100644 index 81766c7757..0000000000 --- a/examples/angular_view_engine/patches/@angular+bazel+9.0.0-rc.10.patch +++ /dev/null @@ -1,70 +0,0 @@ -diff --git a/node_modules/@angular/bazel/src/external.bzl b/node_modules/@angular/bazel/src/external.bzl -index 32b640a..84d37b3 100755 ---- a/node_modules/@angular/bazel/src/external.bzl -+++ b/node_modules/@angular/bazel/src/external.bzl -@@ -2,11 +2,11 @@ - """ - - load( -- "@npm_bazel_typescript//internal:build_defs.bzl", -+ "@npm//@bazel/typescript/internal:build_defs.bzl", - _tsc_wrapped_tsconfig = "tsc_wrapped_tsconfig", - ) - load( -- "@npm_bazel_typescript//internal:common/compilation.bzl", -+ "@npm//@bazel/typescript/internal:common/compilation.bzl", - _COMMON_ATTRIBUTES = "COMMON_ATTRIBUTES", - _COMMON_OUTPUTS = "COMMON_OUTPUTS", - _DEPS_ASPECTS = "DEPS_ASPECTS", -@@ -14,7 +14,7 @@ load( - _ts_providers_dict_to_struct = "ts_providers_dict_to_struct", - ) - load( -- "@npm_bazel_typescript//internal:ts_config.bzl", -+ "@npm//@bazel/typescript/internal:ts_config.bzl", - _TsConfigInfo = "TsConfigInfo", - ) - load( -@@ -19,12 +19,14 @@ load( - ) - load( - "@build_bazel_rules_nodejs//:providers.bzl", -+ _LinkablePackageInfo = "LinkablePackageInfo", - _NpmPackageInfo = "NpmPackageInfo", - _js_ecma_script_module_info = "js_ecma_script_module_info", - _js_named_module_info = "js_named_module_info", - _node_modules_aspect = "node_modules_aspect", - ) - -+LinkablePackageInfo = _LinkablePackageInfo - NpmPackageInfo = _NpmPackageInfo - node_modules_aspect = _node_modules_aspect - -diff --git a/node_modules/@angular/bazel/src/ng_module.bzl b/node_modules/@angular/bazel/src/ng_module.bzl -index 9480c4b..0f67f18 100755 ---- a/node_modules/@angular/bazel/src/ng_module.bzl -+++ b/node_modules/@angular/bazel/src/ng_module.bzl -@@ -13,6 +13,7 @@ load( - "DEFAULT_NG_COMPILER", - "DEFAULT_NG_XI18N", - "DEPS_ASPECTS", -+ "LinkablePackageInfo", - "NpmPackageInfo", - "TsConfigInfo", - "compile_ts", -@@ -631,6 +632,15 @@ def _ng_module_impl(ctx): - # once it is no longer needed. - ]) - -+ if ctx.attr.module_name: -+ path = "/".join([p for p in [ctx.bin_dir.path, ctx.label.workspace_root, ctx.label.package] if p]) -+ ts_providers["providers"].append(LinkablePackageInfo( -+ package_name = ctx.attr.module_name, -+ path = path, -+ files = ts_providers["typescript"]["es5_sources"], -+ _tslibrary = True, -+ )) -+ - return ts_providers_dict_to_struct(ts_providers) - - local_deps_aspects = [node_modules_aspect, _collect_summaries_aspect] diff --git a/examples/angular_view_engine/patches/@angular+bazel+9.0.5.patch b/examples/angular_view_engine/patches/@angular+bazel+9.0.5.patch new file mode 100644 index 0000000000..b657db0fe0 --- /dev/null +++ b/examples/angular_view_engine/patches/@angular+bazel+9.0.5.patch @@ -0,0 +1,913 @@ +diff --git a/node_modules/@angular/bazel/_BUILD.bazel b/node_modules/@angular/bazel/_BUILD.bazel +index 7501525..172d4af 100755 +--- a/node_modules/@angular/bazel/_BUILD.bazel ++++ b/node_modules/@angular/bazel/_BUILD.bazel +@@ -6,12 +6,12 @@ pkg_npm( + ["*"], + exclude = ["yarn.lock"], + ) + [ +- "//src:package_assets", +- "//src/api-extractor:package_assets", +- "//src/builders:package_assets", +- "//src/ng_package:package_assets", +- "//src/ngc-wrapped:package_assets", +- "//src/schematics:package_assets", ++ "//@angular/bazel/src:package_assets", ++ "//@angular/bazel/src/api-extractor:package_assets", ++ "//@angular/bazel/src/builders:package_assets", ++ "//@angular/bazel/src/ng_package:package_assets", ++ "//@angular/bazel/src/ngc-wrapped:package_assets", ++ "//@angular/bazel/src/schematics:package_assets", + "//third_party/github.com/bazelbuild/bazel/src/main/protobuf:package_assets", + ], + nested_packages = [ +@@ -27,11 +27,11 @@ pkg_npm( + # Dependencies on the full npm_package cause long re-builds. + visibility = ["//integration:__pkg__"], + deps = [ +- "//src/api-extractor:lib", +- "//src/builders", +- "//src/ng_package:lib", +- "//src/ngc-wrapped:ngc_lib", +- "//src/schematics/ng-add", +- "//src/schematics/ng-new", ++ "//@angular/bazel/src/api-extractor:lib", ++ "//@angular/bazel/src/builders", ++ "//@angular/bazel/src/ng_package:lib", ++ "//@angular/bazel/src/ngc-wrapped:ngc_lib", ++ "//@angular/bazel/src/schematics/ng-add", ++ "//@angular/bazel/src/schematics/ng-new", + ], + ) +diff --git a/node_modules/@angular/bazel/docs/src/ng_package/ng_package.html b/node_modules/@angular/bazel/docs/src/ng_package/ng_package.html +index ec81d4a..d4e6615 100755 +--- a/node_modules/@angular/bazel/docs/src/ng_package/ng_package.html ++++ b/node_modules/@angular/bazel/docs/src/ng_package/ng_package.html +@@ -1,59 +1,80 @@ +- +- + + + + +- ++ + +- ++ + + Package Angular libraries for npm distribution + +- +- +- ++ ++ ++ + +- ++ + + +-
++
+
+
+- Package Angular libraries for npm distribution ++ Package Angular libraries for npm distribution +
+
+ +@@ -62,120 +83,187 @@ Documentation generated by Skydoc +
+

Package Angular libraries for npm distribution

+ +- +-
++ ++
+

Overview

+-

If all users of an Angular library use Bazel (e.g. internal usage in your company) +-then you should simply add your library to the deps of the consuming application.

+-

These rules exist for compatibility with non-Bazel consumers of your library.

+-

It packages your library following the Angular Package Format, see the +-specification of this format at https://goo.gl/jB3GVv

+- +-
++

++ If all users of an Angular library use Bazel (e.g. internal usage in ++ your company) then you should simply add your library to the ++ deps of the consuming application. ++

++

++ These rules exist for compatibility with non-Bazel consumers of your ++ library. ++

++

++ It packages your library following the Angular Package Format, see ++ the specification of this format at ++ https://goo.gl/jB3GVv ++

++ ++
+ +

primary_entry_point_name

+ +
primary_entry_point_name(name, entry_point, entry_point_name)
+ +

This is not a public API.

+-

Compute the name of the primary entry point in the library.

+-

Returns: +- name of the entry point, which will appear in the name of generated bundles

+- ++

Compute the name of the primary entry point in the library.

++

++ Returns: name of the entry point, which will appear in the name of ++ generated bundles ++

+ +

Attributes

+ +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +-
name +-

Name; Required

+-

the name of the ng_package rule, as a fallback.

+-
entry_point +-

Unknown; Required

+-

The starting point of the application, see rollup_bundle.

+-
entry_point_name +-

Unknown; Required

+-

if set, this is the returned value.

+-
+-
++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++
name ++

++ Name; Required ++

++

++ the name of the ng_package rule, as a fallback. ++

++
entry_point ++

Unknown; Required

++

++ The starting point of the application, see rollup_bundle. ++

++
entry_point_name ++

Unknown; Required

++

if set, this is the returned value.

++
++
+ +

ng_package

+ +
ng_package(name, deps, data, srcs, entry_point, entry_point_name, globals, include_devmode_srcs, license_banner, ng_packager, readme_md, rollup, rollup_config_tmpl, terser, terser_config_file)
+ +-

ng_package produces an npm-ready package from an Angular library.

+- ++

++ ng_package produces an npm-ready package from an Angular library. ++

+ +

Attributes

+ +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++
name +-

Name; Required

+-

A unique name for this rule.

+-
deps +-

List of labels; Optional; Default is []

+-

Other rules that produce JavaScript outputs, such as ts_library.

+-
data +-

List of labels; Optional; Default is []

+-

Additional, non-Angular files to be added to the package, e.g. global CSS assets.

+-
srcs +-

List of labels; Optional; Default is []

+-

JavaScript source files from the workspace. +- These can use ES2015 syntax and ES Modules (import/export)

+-
entry_point +-

Label; Required

+-

The starting point of the application, passed as the --input flag to rollup.

+-
    If the entry JavaScript file belongs to the same package (as the BUILD file),
++          
++            ++              ++              ++            
++            
++              
++                
++                
++              
++              
++                
++                
++              
++              
++                
++                
++              
++              
++                
++                
++              
++              
++                
++                
+-    
+-    
+-      
+-      
+-    
+-    
+-      
+-      
+-    
+-    
+-      
+-      
+-    
+-    
+-      
+-      
+-    
+-    
+-      
+-      
+-    
+-    
+-      
+-      
+-    
+-    
+-      
+-      
+-    
+-    
+-      
+-      
+-    
+-    
+-      
+-      
+-    
+-    
+-      
+-      
+-    
+-  
+-
name ++

++ Name; Required ++

++

A unique name for this rule.

++
deps ++

++ List of ++ labels; Optional; Default is [] ++

++

++ Other rules that produce JavaScript outputs, such as ++ ts_library. ++

++
data ++

++ List of ++ labels; Optional; Default is [] ++

++

++ Additional, non-Angular files to be added to the package, ++ e.g. global CSS assets. ++

++
srcs ++

++ List of ++ labels; Optional; Default is [] ++

++

++ JavaScript source files from the workspace. These can use ++ ES2015 syntax and ES Modules (import/export) ++

++
entry_point ++

++ Label; Required ++

++

++ The starting point of the application, passed as the ++ --input flag to rollup. ++

++
    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:
+ 
+     ```
+@@ -218,93 +306,155 @@ specification of this format at https://goo.gl/j
+     )
+     ```
+ 
+-
entry_point_name +-

String; Optional; Default is ''

+-

Name to use when generating bundle files for the primary entry-point.

+-
globals +-

Dictionary mapping strings to string; Optional; Default is {}

+-

A dict of symbols that reference external scripts. +- The keys are variable names that appear in the program, +- and the values are the symbol to reference at runtime in a global context (UMD bundles). +- For example, a program referencing @angular/core should use ng.core +- as the global reference, so Angular users should include the mapping +- "@angular/core":"ng.core" in the globals.

+-
include_devmode_srcs +-

Boolean; Optional; Default is False

+- +-
license_banner +-

Label; Optional

+-

A .txt file passed to the banner config option of rollup. +- The contents of the file will be copied to the top of the resulting bundles. +- Note that you can replace a version placeholder in the license file, by using +- the special version 9.0.5. See the section on stamping in the README.

+-
ng_packager +-

Label; Optional; Default is @npm//@angular/bazel/bin:packager

+- +-
readme_md +-

Label; Optional

+- +-
rollup +-

Label; Optional; Default is @npm_angular_bazel//src/ng_package:rollup_for_ng_package

+- +-
rollup_config_tmpl +-

Label; Optional; Default is @npm_angular_bazel//src/ng_package:rollup.config.js

+- +-
terser +-

Label; Optional; Default is @npm//terser/bin:terser

+- +-
terser_config_file +-

Label; Optional; Default is @npm_angular_bazel//src/ng_package:terser_config.default.json

+-

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.

+-

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

+-
+- +- ++
entry_point_name ++

String; Optional; Default is ''

++

++ Name to use when generating bundle files for the primary ++ entry-point. ++

++
globals ++

++ Dictionary mapping strings to string; Optional; Default ++ is {} ++

++

++ A dict of symbols that reference external scripts. The keys ++ are variable names that appear in the program, and the ++ values are the symbol to reference at runtime in a global ++ context (UMD bundles). For example, a program referencing ++ @angular/core should use ng.core as the global reference, so ++ Angular users should include the mapping ++ "@angular/core":"ng.core" in the globals. ++

++
include_devmode_srcs ++

Boolean; Optional; Default is False

++
license_banner ++

++ Label; Optional ++

++

++ A .txt file passed to the banner config option ++ of rollup. The contents of the file will be copied to the ++ top of the resulting bundles. Note that you can replace a ++ version placeholder in the license file, by using the ++ special version 9.0.5. See the section on ++ stamping in the README. ++

++
ng_packager ++

++ Label; Optional; Default is ++ @npm//@angular/bazel/bin:packager ++

++
readme_md ++

++ Label; Optional ++

++
rollup ++

++ Label; Optional; Default is ++ @npm_angular_bazel//@angular/bazel/src/ng_package:rollup_for_ng_package ++

++
rollup_config_tmpl ++

++ Label; Optional; Default is ++ @npm_angular_bazel//@angular/bazel/src/ng_package:rollup.config.js ++

++
terser ++

++ Label; Optional; Default is @npm//terser/bin:terser ++

++
terser_config_file ++

++ Label; Optional; Default is ++ @npm_angular_bazel//@angular/bazel/src/ng_package:terser_config.default.json ++

++

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. ++

++

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

++
+
+ +