diff --git a/.bazelignore b/.bazelignore new file mode 100644 index 0000000..5225186 --- /dev/null +++ b/.bazelignore @@ -0,0 +1,2 @@ +javascript/examples +kotlin/example \ No newline at end of file diff --git a/.bazelrc b/.bazelrc index e8f8a5a..7d40210 100644 --- a/.bazelrc +++ b/.bazelrc @@ -1,3 +1,31 @@ -# Use embedded JDK -common --repo_env=JAVA_HOME=../bazel_tools/jdk +common --enable_bzlmod common --experimental_google_legacy_api + +build --bes_results_url=https://app.buildbuddy.io/invocation/ +build --bes_backend=grpcs://remote.buildbuddy.io +build --remote_cache=grpcs://remote.buildbuddy.io +build --experimental_remote_cache_compression +build --experimental_remote_cache_async +build --remote_download_toplevel +build --remote_timeout=3600 +build --build_metadata=REPO_URL=https://github.com/player-ui/rules_player.git + +test --bes_results_url=https://app.buildbuddy.io/invocation/ +test --bes_backend=grpcs://remote.buildbuddy.io +test --remote_cache=grpcs://remote.buildbuddy.io +test --experimental_remote_cache_compression +test --experimental_remote_cache_async +test --remote_download_toplevel +test --remote_timeout=3600 +test --build_metadata=REPO_URL=https://github.com/player-ui/rules_player.git + +coverage --bes_results_url=https://app.buildbuddy.io/invocation/ +coverage --bes_backend=grpcs://remote.buildbuddy.io +coverage --remote_cache=grpcs://remote.buildbuddy.io +coverage --experimental_remote_cache_compression +coverage --experimental_remote_cache_async +coverage --remote_download_toplevel +coverage --remote_timeout=3600 +coverage --build_metadata=REPO_URL=https://github.com/player-ui/rules_player.git + +try-import %workspace%/.bazelrc.local diff --git a/.bazelversion b/.bazelversion index 04edabd..c0be8a7 100644 --- a/.bazelversion +++ b/.bazelversion @@ -1 +1 @@ -5.4.1 \ No newline at end of file +6.4.0 \ No newline at end of file diff --git a/.circleci/config.yml b/.circleci/config.yml index dc934cb..1e64615 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -66,6 +66,9 @@ jobs: at: ~/rules_player - run: name: Test + command: bazel test //... + - run: + name: Test Examples command: ./scripts/test.sh release: diff --git a/.gitignore b/.gitignore index 51fdfee..6593307 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,4 @@ user.bazelrc **/node_modules/ **/.DS_Store +.bazelrc.local \ No newline at end of file diff --git a/MODULE.bazel b/MODULE.bazel new file mode 100644 index 0000000..1a5648e --- /dev/null +++ b/MODULE.bazel @@ -0,0 +1,50 @@ +module(name = "rules_player", version = "1.0") + +bazel_dep(name = "aspect_bazel_lib", version = "1.32.0") +bazel_dep(name = "aspect_rules_js", version = "1.33.1") +bazel_dep(name = "aspect_rules_rollup", version = "1.0.0") +bazel_dep(name = "bazel_skylib", version = "1.4.1") +bazel_dep(name = "rules_pkg", version = "0.9.1") +bazel_dep(name = "aspect_rules_ts", version = "2.1.0") +bazel_dep(name = "platforms", version = "0.0.5") + +rules_ts_ext = use_extension( + "@aspect_rules_ts//ts:extensions.bzl", + "ext", + dev_dependency = True, +) + +rules_ts_ext.deps() + +use_repo(rules_ts_ext, "npm_typescript") + +bazel_dep(name = "rules_kotlin", version = "1.9.1") + +bazel_dep(name = "rules_jvm_external", version = "5.3") +maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven") + +maven.install( + name = "rules_player_maven", + artifacts = [ + "com.github.ajalt.clikt:clikt-jvm:3.4.0", + "io.github.gradle-nexus:publish-plugin:1.1.0", + "ch.qos.logback:logback-classic:1.2.11", + "org.junit.jupiter:junit-jupiter-api:5.7.2", + "org.junit.jupiter:junit-jupiter-params:5.7.2", + "org.junit.jupiter:junit-jupiter-engine:5.7.2", + "org.junit.platform:junit-platform-suite-api:1.7.2", + "org.junit.platform:junit-platform-console:1.7.2", + "org.junit.platform:junit-platform-launcher:1.7.2" + ], + fetch_sources = True, + repositories = [ + "https://repo1.maven.org/maven2", + "https://maven.google.com/", + "https://plugins.gradle.org/m2/", + ] +) +use_repo(maven, "rules_player_maven") +## Rule Dependencies +bazel_dep(name = "rules_swift", version = "1.18.0", repo_name = "build_bazel_rules_swift") +bazel_dep(name = "rules_apple", version = "3.5.1", repo_name = "build_bazel_rules_apple") +bazel_dep(name = "rules_ios", version = "4.3.1", repo_name = "build_bazel_rules_ios") diff --git a/WORKSPACE b/WORKSPACE index a660e63..664c747 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -1,85 +1,5 @@ workspace( name = "rules_player", - managed_directories = { - "@npm": ["node_modules"], - }, ) -# Defines all potential dependencies -- loading these deps is done lazily on first access -load(":workspace.bzl", "deps") -deps() - -# Like right here -# load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace") -# bazel_skylib_workspace() -load("//:conf.bzl", "apple", "distribution", "javascript", "skylib", "kotlin") - -skylib() - -# apple() - -distribution() - -javascript() - -kotlin() - -# TODO: This breaks the conf.bzl standard... b/c of the way bzl files -# are required to be structured, we can't consolidate config logic -# to a sinlge .bzl file. This is super frustrating when it comes to -# consolidating and standardizing common workspace configuration for -# Bazel projects and just adds to boilerplate overhead, even if in -# the name of being explicit. -# load("//swift:rules_deps.bzl", "rules_deps") - -# rules_deps() - -# load("//swift:extra_deps.bzl", "extra_deps") - -# extra_deps() - -# load("//apple:support_deps.bzl", "support_deps") - -# support_deps() - - -load("@io_bazel_rules_kotlin//kotlin:core.bzl", "kt_register_toolchains") - -kt_register_toolchains() - -load("@rules_player//junit5:conf.bzl", "junit5") - -junit5() - -###################### -# Maven Dependencies # -###################### -load("@rules_player//distribution:deps.bzl", artifacts = "maven") -load("@rules_jvm_external//:defs.bzl", "maven_install") - -maven_install( - artifacts = artifacts, - fetch_sources = True, - repositories = [ - "https://repo1.maven.org/maven2", - "https://maven.google.com/", - "https://plugins.gradle.org/m2/", - ], -) - -##################### -# Yarn Dependencies # -##################### -load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories", "yarn_install") - -node_repositories( - node_version = "16.12.0", - yarn_version = "1.22.17", -) - -yarn_install( - name = "npm", - package_json = "//:package.json", - yarn_lock = "//:yarn.lock", -) diff --git a/WORKSPACE.bzlmod b/WORKSPACE.bzlmod new file mode 100644 index 0000000..91517d3 --- /dev/null +++ b/WORKSPACE.bzlmod @@ -0,0 +1,3 @@ +android_sdk_repository( + name = "androidsdk", +) \ No newline at end of file diff --git a/android/workspace.bzl b/android/workspace.bzl deleted file mode 100644 index 23599eb..0000000 --- a/android/workspace.bzl +++ /dev/null @@ -1,6 +0,0 @@ -def android( - name = "androidsdk", - api_level = None, - build_tools_version = None -): - native.android_sdk_repository(name = name, api_level = api_level, build_tools_version = build_tools_version) \ No newline at end of file diff --git a/apple/BUILD b/apple/BUILD deleted file mode 100644 index e69de29..0000000 diff --git a/apple/conf.bzl b/apple/conf.bzl deleted file mode 100644 index 6ce3d0d..0000000 --- a/apple/conf.bzl +++ /dev/null @@ -1,3 +0,0 @@ -load("//apple:rules_deps.bzl", "rules_deps") - -apple = rules_deps diff --git a/apple/rules_deps.bzl b/apple/rules_deps.bzl deleted file mode 100644 index 2f06d1e..0000000 --- a/apple/rules_deps.bzl +++ /dev/null @@ -1,22 +0,0 @@ -load( - "@build_bazel_rules_ios//rules:repositories.bzl", - "rules_ios_dependencies" -) -load( - "@build_bazel_rules_apple//apple:repositories.bzl", - "apple_rules_dependencies", -) -load( - "@build_bazel_rules_swift//swift:repositories.bzl", - "swift_rules_dependencies", -) -load( - "@com_google_protobuf//:protobuf_deps.bzl", - "protobuf_deps", -) - -def rules_deps(): - rules_ios_dependencies() - apple_rules_dependencies() - swift_rules_dependencies() - protobuf_deps() diff --git a/apple/support_deps.bzl b/apple/support_deps.bzl deleted file mode 100644 index b3d788a..0000000 --- a/apple/support_deps.bzl +++ /dev/null @@ -1,7 +0,0 @@ -load( - "@build_bazel_apple_support//lib:repositories.bzl", - "apple_support_dependencies", -) - -def support_deps(): - apple_support_dependencies() diff --git a/apple/workspace.bzl b/apple/workspace.bzl deleted file mode 100644 index 98a082a..0000000 --- a/apple/workspace.bzl +++ /dev/null @@ -1,31 +0,0 @@ -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") -load("//internal:maybe.bzl", "maybe") - -def apple(): - maybe( - http_archive, - name = "build_bazel_rules_apple", - sha256 = "36072d4f3614d309d6a703da0dfe48684ec4c65a89611aeb9590b45af7a3e592", - url = "https://github.com/bazelbuild/rules_apple/releases/download/1.0.1/rules_apple.1.0.1.tar.gz", - ) - maybe( - http_archive, - name = "build_bazel_rules_swift", - sha256 = "12057b7aa904467284eee640de5e33853e51d8e31aae50b3fb25d2823d51c6b8", - url = "https://github.com/bazelbuild/rules_swift/releases/download/1.0.0/rules_swift.1.0.0.tar.gz", - ) - maybe( - http_archive, - name = "com_google_protobuf", - sha256 = "bb1ddd8172b745cbdc75f06841bd9e7c9de0b3956397723d883423abfab8e176", - strip_prefix = "protobuf-3.18.0", - urls = ["https://github.com/protocolbuffers/protobuf/archive/refs/tags/v3.18.0.zip"] - ) - maybe( - git_repository, - name = "build_bazel_rules_ios", - remote = "https://github.com/hborawski/rules_ios.git", - commit = "618bb1cc11614a858b97e0baf099449f379cc541", - shallow_since = "1697658491 -0700" - ) diff --git a/bazel/BUILD b/bazel/BUILD deleted file mode 100644 index e69de29..0000000 diff --git a/bazel/conf.bzl b/bazel/conf.bzl deleted file mode 100644 index 73d2a6d..0000000 --- a/bazel/conf.bzl +++ /dev/null @@ -1,7 +0,0 @@ -load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace") - -# Obviously, this a silly abstraction, but it might be worth keeping -# like this to prove out the pattern of workspace.bzl declaration -> -# conf.bzl configuration -def skylib(): - bazel_skylib_workspace() diff --git a/bazel/workspace.bzl b/bazel/workspace.bzl deleted file mode 100644 index 933621c..0000000 --- a/bazel/workspace.bzl +++ /dev/null @@ -1,13 +0,0 @@ -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -load("//internal:maybe.bzl", "maybe") - -def skylib(): - maybe( - http_archive, - name = "bazel_skylib", - urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.0.2/bazel-skylib-1.0.2.tar.gz", - "https://github.com/bazelbuild/bazel-skylib/releases/download/1.0.2/bazel-skylib-1.0.2.tar.gz", - ], - sha256 = "97e70364e9249702246c0e9444bccdc4b847bed1eb03c5a3ece4f83dfe6abc44", - ) diff --git a/cocoapods/BUILD b/cocoapods/BUILD deleted file mode 100644 index 4fec7bf..0000000 --- a/cocoapods/BUILD +++ /dev/null @@ -1,11 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -py_binary( - name = "convert_ios_test_reports", - srcs = ["convert_ios_test_reports.py"], -) - -exports_files([ - "pod_repo_push.sh", - "pod_trunk_push.sh" -]) \ No newline at end of file diff --git a/cocoapods/cocoapod.bzl b/cocoapods/cocoapod.bzl deleted file mode 100644 index 3c0f6db..0000000 --- a/cocoapods/cocoapod.bzl +++ /dev/null @@ -1,196 +0,0 @@ -load("@rules_pkg//:pkg.bzl", "pkg_zip") -load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix") -load("//internal:stamp.bzl", _stamp = "stamp") - -def assemble_pod( - name, - podspec = '', - srcs = [], - data = {} -): - pkg_files( - name = "podspec", - srcs = [podspec], - strip_prefix = strip_prefix.from_pkg(), - ) - - pkg_files( - name = "srcs", - srcs = srcs, - strip_prefix = strip_prefix.from_pkg(), - ) - - data_pkgs = [] - for target in data: - ident = "data_%d" % len(data_pkgs) - pkg_files( - name = ident, - srcs = [target], - strip_prefix = strip_prefix.from_pkg(), - prefix = data[target] - ) - data_pkgs.append(ident) - - pkg_zip( - name = name, - srcs = ["podspec", "srcs"] + data_pkgs - ) - -def _pod_command(repository_ctx): - # split up the command into an array - # that way `pod` works, but so does `bundle exec pod` - return repository_ctx.attr.executable.split(' ') - -def _pod_install_impl(repository_ctx): - repository_ctx.report_progress("Processing Podfile: installing pods and generating BUILD files") - # Need to get the real path to be able to run pod install since it will have relative path - # to the development pod - workspace_root = str(repository_ctx.path(Label('@//:WORKSPACE')).dirname) - path = workspace_root + str(repository_ctx.path(repository_ctx.attr.podfile)) - - if ":" in path: - root = path.split(':')[0] - else: - root = path - - command = _pod_command(repository_ctx) - - repository_ctx.file( - "_pod_check.sh", - content = """#!/usr/bin/env bash -# Immediately exit if any command fails. -set -e -cd "{root}" -'{pod}' {subcommands} -""".format( - root = root, - pod = command[0], - subcommands = " ".join(command[1:]) - ), - executable = True - ) - - # Install pods - pod_result = repository_ctx.execute( - [repository_ctx.path("_pod_check.sh")] - ) - if pod_result.return_code == 0: - repository_ctx.file( - "_pod_install.sh", - content = """#!/usr/bin/env bash - # Immediately exit if any command fails. - set -e - (cd "{root}"; BAZEL_POD_INSTALL=true "{pod}" {subcommands} install {flags} 1>&2) - """.format( - root = root, - pod = command[0], - subcommands = " ".join(command[1:]), - flags = " ".join(repository_ctx.attr.flags) - ), - executable = True - ) - - # Install pods - install_result = repository_ctx.execute( - [repository_ctx.path("_pod_install.sh")] - ) - - if install_result.return_code: - fail("Return: {code} {stderr}".format(code = install_result.return_code, stderr = install_result.stderr)) - - # Symlink pod folders to external/Pods folder if they have a BUILD.bazel file - # Pods directory has more folders than just pods that aren't needed for bazel - for f in repository_ctx.path(root).get_child('Pods').readdir(): - if f.get_child('BUILD.bazel').exists: - repository_ctx.symlink( - f.realpath, - repository_ctx.path(f.basename) - ) - else: - print( - "'{pod} {subcommands}' not found on system, skipping pod install" - .format( - pod = command[0], - subcommands = " ".join(command[1:]) - ) - ) - -pod_install = repository_rule( - implementation=_pod_install_impl, - attrs={ - "podfile": attr.string( - doc = "The podfile to use for install" - ), - "flags": attr.string_list( - doc = "Flags to append to the pod install command" - ), - "executable": attr.string( - default = "pod", - doc = "The command to use for cocoapods" - ), - } -) - -_TEMPLATE_REPO_PUSH = Label("//cocoapods:pod_repo_push.sh") -_TEMPLATE_TRUNK_PUSH = Label("//cocoapods:pod_trunk_push.sh") - -def _pod_push_impl(ctx): - output = ctx.actions.declare_file("push.sh") - - commands = ctx.attr.executable.split(' ') - - ctx.actions.expand_template( - template = ctx.file._templatePrivateRepo if ctx.attr.repository else ctx.file._templateTrunk, - output = output, - is_executable = True, - substitutions = { - '{POD}': commands[0], - '{SUBCOMMANDS}': " ".join(commands[1:]), - '{PUSH_FLAGS}': " ".join(ctx.attr.pushFlags), - '{GLOBAL_FLAGS}': " ".join(ctx.attr.globalFlags), - '{PODSPEC}': ctx.file.podspec.basename, - '{REPOSITORY}': ctx.attr.repository - } - ) - - return DefaultInfo( - executable = output, - runfiles = ctx.runfiles(files = [ctx.file.podspec]) - ) - -pod_push = rule( - implementation = _pod_push_impl, - executable = True, - attrs = { - "podspec": attr.label( - allow_single_file = True, - mandatory = True, - doc = "The podspec to push to a specs repo" - ), - "executable": attr.string( - default = "pod", - doc = "The command to use for cocoapods" - ), - "pushFlags": attr.string_list( - default = [], - doc = "Flags to append to the push command" - ), - "globalFlags": attr.string_list( - default = [], - doc = "Flags to append to all pod commands" - ), - "repository": attr.string( - doc = "A private specs repository to push to. Otherwise pushes to trunk" - ), - "_templatePrivateRepo": attr.label( - default = _TEMPLATE_REPO_PUSH, - allow_single_file = True, - doc = "The repo push script to use as a template for expansion" - ), - "_templateTrunk": attr.label( - default = _TEMPLATE_TRUNK_PUSH, - allow_single_file = True, - doc = "The trunk push script to use as a template for expansion" - ) - } -) \ No newline at end of file diff --git a/cocoapods/conf.bzl b/cocoapods/conf.bzl deleted file mode 100644 index 45daac9..0000000 --- a/cocoapods/conf.bzl +++ /dev/null @@ -1,2 +0,0 @@ -def cocoapods(): - return \ No newline at end of file diff --git a/cocoapods/convert_ios_test_reports.py b/cocoapods/convert_ios_test_reports.py deleted file mode 100755 index fa59652..0000000 --- a/cocoapods/convert_ios_test_reports.py +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env python3 -from sys import argv -from json import loads -from subprocess import run -from os import path, getcwd -from urllib.request import url2pathname -from urllib.parse import urlparse -from argparse import ArgumentParser - -def getTestActionOutput(bep_file, trainer): - with open(bep_file) as f: - zips = [] - for line in f: - zips += getOutputZips(line) - - results = getXcResultPaths(zips) - convertToJunit(results, trainer) - -def getOutputZips(bep_json_string): - zips = [] - jsonObj = loads(bep_json_string) - files = jsonObj.get('testResult', {}).get('testActionOutput', []) - if len(files) > 0: - outputZips = list(filter(lambda x: x['name'] == 'test.outputs__outputs.zip', files)) - for outputZip in outputZips: - path = url2pathname(urlparse(outputZip['uri']).path) - zips.append(path) - return zips - -def getXcResultPaths(zip_paths): - result_paths = [] - for zip_path in zip_paths: - folder = path.dirname(zip_path) - if run(['unzip', '-o', zip_path, '-d', folder]).returncode != 0: - print('error unzipping ' + zip_path) - else: - result_path = path.join(folder, 'test.xcresult') - if path.exists(result_path): - result_paths.append(result_path) - return result_paths - -def convertToJunit(xcresult_paths, command): - for result in xcresult_paths: - run([command, '--path', result]) - -if __name__ == '__main__': - parser = ArgumentParser(description='Run `trainer` xcresult transformer on test outputs') - parser.add_argument('build_event_json', type=str, help='The Build Event Protocol json file from the test run') - parser.add_argument('trainer_executable', type=str, help='Path to the `trainer` executable') - - args = parser.parse_args() - getTestActionOutput(args.build_event_json, args.trainer_executable) \ No newline at end of file diff --git a/cocoapods/pod_repo_push.sh b/cocoapods/pod_repo_push.sh deleted file mode 100644 index 7944cf4..0000000 --- a/cocoapods/pod_repo_push.sh +++ /dev/null @@ -1,7 +0,0 @@ -set -e -echo "{POD} {SUBCOMMANDS} repo add {GLOBAL_FLAGS} bazel_publish_repo {REPOSITORY}" 1>&2 -"{POD}" {SUBCOMMANDS} repo add {GLOBAL_FLAGS} bazel_publish_repo {REPOSITORY} 1>&2 -echo "{POD} {SUBCOMMANDS} repo push {GLOBAL_FLAGS} {PUSH_FLAGS} {REPOSITORY} {PODSPEC}" 1>&2 -"{POD}" {SUBCOMMANDS} repo push {GLOBAL_FLAGS} {PUSH_FLAGS} {REPOSITORY} {PODSPEC} 1>&2 -echo "{POD} {SUBCOMMANDS} repo remove {GLOBAL_FLAGS} bazel_publish_repo" 1>&2 -"{POD}" {SUBCOMMANDS} repo remove {GLOBAL_FLAGS} bazel_publish_repo 1>&2 diff --git a/cocoapods/pod_trunk_push.sh b/cocoapods/pod_trunk_push.sh deleted file mode 100644 index c670277..0000000 --- a/cocoapods/pod_trunk_push.sh +++ /dev/null @@ -1 +0,0 @@ -"{POD}" {SUBCOMMANDS} trunk push {GLOBAL_FLAGS} {PUSH_FLAGS} {PODSPEC} 1>&2 \ No newline at end of file diff --git a/cocoapods/workspace.bzl b/cocoapods/workspace.bzl deleted file mode 100644 index c457080..0000000 --- a/cocoapods/workspace.bzl +++ /dev/null @@ -1,18 +0,0 @@ -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -load("//internal:maybe.bzl", "maybe") -def cocoapods(): - maybe( - http_archive, - name = "rules_python", - url = "https://github.com/bazelbuild/rules_python/releases/download/0.5.0/rules_python-0.5.0.tar.gz", - sha256 = "cd6730ed53a002c56ce4e2f396ba3b3be262fd7cb68339f0377a45e8227fe332", - ) - maybe( - http_archive, - name = "rules_pkg", - urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/releases/download/0.5.1/rules_pkg-0.5.1.tar.gz", - "https://github.com/bazelbuild/rules_pkg/releases/download/0.5.1/rules_pkg-0.5.1.tar.gz", - ], - sha256 = "a89e203d3cf264e564fcb96b6e06dd70bc0557356eb48400ce4b5d97c2c3720d", - ) \ No newline at end of file diff --git a/conf.bzl b/conf.bzl deleted file mode 100644 index 693ef7c..0000000 --- a/conf.bzl +++ /dev/null @@ -1,11 +0,0 @@ -load("//bazel:conf.bzl", _skylib = "skylib") -load("//apple:conf.bzl", _apple = "apple") -load("//javascript:conf.bzl", _javascript = "javascript") -load("//kotlin:conf.bzl", _kotlin = "kotlin") -load("//distribution:conf.bzl", _distribution = "distribution") - -skylib = _skylib -apple = _apple -distribution = _distribution -javascript = _javascript -kotlin = _kotlin diff --git a/distribution/BUILD b/distribution/BUILD index ec58116..2192db5 100644 --- a/distribution/BUILD +++ b/distribution/BUILD @@ -1,16 +1,18 @@ -load("@io_bazel_rules_kotlin//kotlin:jvm.bzl", "kt_jvm_binary") -load("@rules_player//maven:parse_coordinates.bzl", "parse_coordinates") -load(":deps.bzl", "staging_cli") +load("@rules_kotlin//kotlin:jvm.bzl", "kt_jvm_binary") # TODO: We should probably build this for the archive kt_jvm_binary( name = "nexus-staging-cli", srcs = ["NexusStagingCli.kt"], main_class = "com.intuit.player.rules.distribution.NexusStagingCliKt", - deps = parse_coordinates(staging_cli), + deps = [ + "@rules_player_maven//:com_github_ajalt_clikt_clikt_jvm", + "@rules_player_maven//:io_github_gradle_nexus_publish_plugin", + "@rules_player_maven//:ch_qos_logback_logback_classic", + ], ) sh_binary( name = "staged-maven-deploy", srcs = [":staged-maven-deploy.sh"], -) +) \ No newline at end of file diff --git a/distribution/conf.bzl b/distribution/conf.bzl deleted file mode 100644 index d95c0d9..0000000 --- a/distribution/conf.bzl +++ /dev/null @@ -1,2 +0,0 @@ -def distribution(): - pass diff --git a/distribution/deps.bzl b/distribution/deps.bzl deleted file mode 100644 index f6566cc..0000000 --- a/distribution/deps.bzl +++ /dev/null @@ -1,9 +0,0 @@ -load("@vaticle_bazel_distribution//maven:deps.bzl", distribution = "maven_artifacts_with_versions") - -staging_cli = [ - "com.github.ajalt.clikt:clikt-jvm:3.4.0", - "io.github.gradle-nexus:publish-plugin:1.1.0", - "ch.qos.logback:logback-classic:1.2.11", -] - -maven = distribution + staging_cli diff --git a/distribution/index.bzl b/distribution/index.bzl deleted file mode 100644 index 2bd9c6b..0000000 --- a/distribution/index.bzl +++ /dev/null @@ -1,22 +0,0 @@ -load("@rules_player//distribution/tar:stamp_tar_files.bzl", "stamp_tar_files") -load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar") - -def pkg_stamped_tar(name, substitutions = {}, visibility = None, **kwargs): - """ - Creates a tar.gz file in which all files are stamped with the given substitutions. - """ - base_name = "%s_base" % name - base_target = ":%s" % base_name - - pkg_tar( - # TODO: Add visibility here - name = base_name, - **kwargs, - ) - - stamp_tar_files( - name = name, - substitutions = substitutions, - visibility = visibility, - tar = base_target - ) \ No newline at end of file diff --git a/distribution/maven.bzl b/distribution/maven.bzl deleted file mode 100644 index 828e7cd..0000000 --- a/distribution/maven.bzl +++ /dev/null @@ -1,8 +0,0 @@ -load("@rules_jvm_external//:defs.bzl", "maven_install") -load("//distribution:deps.bzl", artifacts = "maven") - -def install(): - maven_install( - artifacts = artifacts, - repositories = ["https://repo1.maven.org/maven2",], - ) \ No newline at end of file diff --git a/distribution/tar/BUILD b/distribution/tar/BUILD deleted file mode 100644 index 88a303b..0000000 --- a/distribution/tar/BUILD +++ /dev/null @@ -1,11 +0,0 @@ -load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary") - -package(default_visibility = ["//visibility:public"]) - -nodejs_binary( - name = "stamp_tar_files", - entry_point = "stamp_tar_files.js", - data = [ - "@npm//tar" - ] -) \ No newline at end of file diff --git a/distribution/tar/stamp_tar_files.bzl b/distribution/tar/stamp_tar_files.bzl deleted file mode 100644 index aa6f4b1..0000000 --- a/distribution/tar/stamp_tar_files.bzl +++ /dev/null @@ -1,50 +0,0 @@ -""" -Module for stamping a tar.gz file and repackaging it -""" -load("@build_bazel_rules_nodejs//:providers.bzl", "run_node", "NODE_CONTEXT_ATTRS", "NodeContextInfo") -load("@bazel_skylib//lib:paths.bzl", "paths") - -_stamp_tar_files = Label("//distribution/tar:stamp_tar_files") - -TAR_STAMP_ATTRS = dict(NODE_CONTEXT_ATTRS, **{ - "tar": attr.label( allow_single_file=True ), - "substitutions": attr.string_dict(), - "_stamp_tar_files": attr.label(default=_stamp_tar_files, executable=True, cfg="host"), -}) - -def _stamp_tar_impl(ctx): - """ - Untar it, stamp the items, and repack - """ - stamped_tar = ctx.actions.declare_file(paths.basename(ctx.attr.name + '.tar.gz')) - - stamp_inputs = [] - stamp = ctx.attr.node_context_data[NodeContextInfo].stamp - - if stamp: - stamp_inputs = [ctx.info_file] - - run_node( - ctx, - inputs = ctx.files.tar + stamp_inputs, - outputs = [stamped_tar], - arguments = [json.encode({ - "input_file": ctx.file.tar.path, - "output_file": stamped_tar.path, - "stamp": ctx.info_file.path if stamp else None, - "substitutions": ctx.attr.substitutions, - })], - executable = "_stamp_tar_files", - mnemonic = "tar", - ) - - return [ - DefaultInfo( - files = depset([stamped_tar]) - ) - ] - -stamp_tar_files = rule( - implementation = _stamp_tar_impl, - attrs = TAR_STAMP_ATTRS, -) \ No newline at end of file diff --git a/distribution/tar/stamp_tar_files.js b/distribution/tar/stamp_tar_files.js deleted file mode 100644 index 5f06969..0000000 --- a/distribution/tar/stamp_tar_files.js +++ /dev/null @@ -1,96 +0,0 @@ -const fs = require("fs"); -const path = require("path"); -const os = require('os'); -const tar = require('tar'); - -async function handleSubstitutions(folderOrFile, substitutions) { - if (Object.keys(substitutions).length === 0) { - return; - } - - if ((await fs.promises.stat(folderOrFile)).isDirectory()) { - const files = await fs.promises.readdir(folderOrFile); - for (const file of files) { - await handleSubstitutions(path.join(folderOrFile, file), substitutions); - } - - return; - } - - let contents = await fs.promises.readFile(folderOrFile, "utf-8"); - const originalContents = contents; - for (const key in substitutions) { - const value = substitutions[key]; - contents = contents.replace(new RegExp(key, "g"), value); - } - - if (contents !== originalContents) { - await fs.promises.writeFile(folderOrFile, contents); - } -} - -const repackageTar = async (input_file, output_file, substitutions) => { - const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'stamping-')); - const tempTar = path.join(tempDir, "temp.tar"); - const tempOutputDir = path.join(tempDir, "output"); - await fs.promises.mkdir(tempOutputDir, { recursive: true }); - - await tar.extract({ - cwd: tempOutputDir, - file: input_file, - }); - - await handleSubstitutions(tempOutputDir, substitutions); - - await tar.create({ - file: output_file, - cwd: tempOutputDir, - gzip: true, - }, ['.']); -}; - -const main = async ([config]) => { - const { input_file, output_file, stamp, substitutions } = JSON.parse(config); - - // Don't do much if we don't have to stamp, just copy it over as is - if (!stamp) { - fs.copyFileSync(input_file, output_file); - return; - } - - // Grab all of the vars to stamp - // untar the file - // Replace what needs to be replaced - // retar it to the new location - const stampFile = fs.readFileSync(stamp, "utf-8"); - - // TODO: Should share this as a common module - stampFile.split("\n").forEach((line) => { - const firstSpace = line.indexOf(" "); - const varName = line.substring(0, firstSpace); - let varVal = line.substring(firstSpace + 1); - - // Using the same match as https://github.com/bazelbuild/rules_nodejs/blob/stable/internal/pkg_npm/packager.js#L139 - if (varName.endsWith('_VERSION')) { - // vscode doesn't let you have `-canary` suffixes - varVal = varVal.replace(/[^\d.]/g, ''); - } - - // Swap out anything referencing the stamped file with the actual value - Object.keys(substitutions).forEach((key) => { - if (substitutions[key] === `{${varName}}`) { - substitutions[key] = varVal; - } - }); - }); - - await repackageTar(input_file, output_file, substitutions); -}; - -if (require.main === module) { - try { - process.exitCode = main(process.argv.slice(2)); - } catch (e) { - console.error(process.argv[1], e); - } -} diff --git a/distribution/workspace.bzl b/distribution/workspace.bzl deleted file mode 100644 index 481ed84..0000000 --- a/distribution/workspace.bzl +++ /dev/null @@ -1,11 +0,0 @@ -load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") -load("//internal:maybe.bzl", "maybe") - -def distribution(): - maybe( - git_repository, - name = "vaticle_bazel_distribution", - remote = "https://github.com/sugarmanz/bazel-distribution", - commit = "ffccd79b47c743aaee70fe1288f39d1c07931824", - shallow_since = "1670883396 -0500" - ) diff --git a/docs/BUILD b/docs/BUILD new file mode 100644 index 0000000..009bc04 --- /dev/null +++ b/docs/BUILD @@ -0,0 +1,8 @@ +load("@aspect_bazel_lib//lib:docs.bzl", "stardoc_with_diff_test", "update_docs") + +stardoc_with_diff_test( + name = "rules", + bzl_library_target = "//javascript:defs", +) + +update_docs(name = "update") diff --git a/docs/rules.md b/docs/rules.md new file mode 100644 index 0000000..4fa2239 --- /dev/null +++ b/docs/rules.md @@ -0,0 +1,176 @@ + + + +Public API for JavaScript based project rules + + + + +## create_package_json + +
+create_package_json(name, base_package_json, custom_entrypoints, dependencies, native_bundle,
+                    peer_dependencies, placeholder_version, root_package_json, stamp, substitutions)
+
+ + + +**ATTRIBUTES** + + +| Name | Description | Type | Mandatory | Default | +| :------------- | :------------- | :------------- | :------------- | :------------- | +| name | A unique name for this target. | Name | required | | +| base_package_json | A .json file to use to add additional properties to the generated package. This can often be a 'package.json' and the entries/outputs/dependencies will be filled in later on. | Label | required | | +| custom_entrypoints | If custom main/module/types entrypoints are specified and shouldn't be overwritten | Boolean | optional | False | +| dependencies | The dependencies of the package. These will be added to the base package.json | List of labels | optional | [] | +| native_bundle | The name for the native bundle if used | String | optional | "" | +| peer_dependencies | The peer dependencies of the package. These will be added to the base package.json | List of labels | optional | [] | +| placeholder_version | The version to use for the local dependencies in the workspace | String | optional | "0.0.0-PLACEHOLDER" | +| root_package_json | The root package.json for the project. Used to get the versions of dependencies and peer-depedencies | Label | required | | +| stamp | Whether to encode build information into the output. Possible values:

- stamp = 1: Always stamp the build information into the output, even in [--nostamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) builds. This setting should be avoided, since it is non-deterministic. It potentially causes remote cache misses for the target and any downstream actions that depend on the result. - stamp = 0: Never stamp, instead replace build information by constant values. This gives good build result caching. - stamp = -1: Embedding of build information is controlled by the [--[no]stamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) flag. Stamped targets are not rebuilt unless their dependencies change. | Integer | optional | -1 | +| substitutions | - | Dictionary: String -> String | optional | {} | + + + + +## eslint_test + +
+eslint_test(name, data, srcs, node_modules, lint_exts, kwargs)
+
+ + A test target that runs eslint on the given sources. + +**PARAMETERS** + + +| Name | Description | Default Value | +| :------------- | :------------- | :------------- | +| name | The name of the target. | none | +| data | A list of targets to include in the test's data. | [] | +| srcs | A list of sources to run eslint on. | [] | +| node_modules | The node_modules target to use for eslint. | "//:node_modules" | +| lint_exts | A list of extensions to pass to eslint's --ext flag. | [".ts", ".js", ".tsx", ".jsx"] | +| kwargs | Additional arguments to pass to the underlying js_test target. | none | + + + + +## js_pipeline + +
+js_pipeline(package_name, name, srcs, package_json, root_package_json, vitest_config, tsup_config,
+            node_modules, deps, native_bundle, private, peer_deps, include_packaging_targets,
+            test_deps, lint_deps, build_deps)
+
+ + The main entry point for any JS/TS project. `js_pipeline` should be the only thing you need in your BUILD file. + +Creates a js_library, npm_package, and test targets for a given package. + + +**PARAMETERS** + + +| Name | Description | Default Value | +| :------------- | :------------- | :------------- | +| package_name | The name of the package including the scope (@test/bar). | none | +| name | The name of the package (defaults to the last part of the package_name). | None | +| srcs | The source files for the package (defaults to src/*). | None | +| package_json | The package.json file for the package (defaults to package.json). | "package.json" | +| root_package_json | The root package.json file for the package (defaults to //:package.json). | "//:package.json" | +| vitest_config | The vitest config for the package (defaults to None). | ":vitest_config" | +| tsup_config | The tsup config for the package (defaults to None). | ":tsup_config" | +| node_modules | The base node_modules to pull dependencies from (defaults to //:node_modules). | "//:node_modules" | +| deps | The dependencies for the package. | [] | +| native_bundle | The name for the native bundle global if defined. | None | +| private | Whether or not the package should be private (skipping an npm release). | False | +| peer_deps | The peer dependencies for the package. | [] | +| include_packaging_targets |

-

| [] | +| test_deps | The test dependencies for the package. | ["//:vitest_config"] | +| lint_deps | The lint dependencies for the package. | ["//:eslint_config"] | +| build_deps | The build dependencies for the package. | ["//:tsup_config", "//:typings"] | + + + + +## oclif_pipeline + +
+oclif_pipeline(package_name, name, srcs, manifest, package_json, root_package_json, vitest_config,
+               node_modules, deps, peer_deps, test_deps, lint_deps, build_deps)
+
+ + A modified version of the `js_pipeline` for building oclif CLIs and CLI plugins. + +Creates a js_library, npm_package, and test targets for a given package. + + +**PARAMETERS** + + +| Name | Description | Default Value | +| :------------- | :------------- | :------------- | +| package_name | The name of the package including the scope (@test/bar). | none | +| name | The name of the package (defaults to the last part of the package_name). | None | +| srcs | The source files for the package (defaults to src/*). | None | +| manifest | If an oclif manifest should be generated as part of the build. Not needed for CLI plugins. | True | +| package_json | The package.json file for the package (defaults to package.json). | "package.json" | +| root_package_json | The root package.json file for the package (defaults to //:package.json). | "//:package.json" | +| vitest_config | The vitest config for the package (defaults to None). | ":vitest_config" | +| node_modules | The base node_modules to pull dependencies from (defaults to //:node_modules). | "//:node_modules" | +| deps | The dependencies for the package. | [] | +| peer_deps | The peer dependencies for the package. | [] | +| test_deps | The test dependencies for the package. | ["//:vitest_config"] | +| lint_deps | The lint dependencies for the package. | ["//:eslint_config"] | +| build_deps | The build dependencies for the package. | ["//:typings"] | + + + + +## tsup_build + +
+tsup_build(name, srcs, config, data, node_modules, substitutions, outs, kwargs)
+
+ +Run a vite test. + +**PARAMETERS** + + +| Name | Description | Default Value | +| :------------- | :------------- | :------------- | +| name | The name of the test. | none | +| srcs | Inputs to the module | [] | +| config | The vite config target. | "tsup.config.ts" | +| data | The list of data dependencies. | ["//:tsup_config"] | +| node_modules | The node_modules target. | "//:node_modules" | +| substitutions | Substitutions to stamp during the build. | {"__VERSION__": "{STABLE_VERSION}"} | +| outs | Any defined outputs | None | +| kwargs | Additional arguments to pass to the test. | none | + + + + +## vitest_test + +
+vitest_test(name, config, data, node_modules, kwargs)
+
+ +Run a vite test. + +**PARAMETERS** + + +| Name | Description | Default Value | +| :------------- | :------------- | :------------- | +| name | The name of the test. | none | +| config | The vite config target. | none | +| data | The list of data dependencies. | [] | +| node_modules | The node_modules target. | "//:node_modules" | +| kwargs | Additional arguments to pass to the test. | none | + + diff --git a/gh-pages/BUILD b/gh-pages/BUILD deleted file mode 100644 index 6c3fc4f..0000000 --- a/gh-pages/BUILD +++ /dev/null @@ -1,9 +0,0 @@ -load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary") - -package(default_visibility = ["//visibility:public"]) - -nodejs_binary( - name = "gh_pages_deploy", - data = [], - entry_point = ":gh-pages.js", -) \ No newline at end of file diff --git a/gh-pages/README.md b/gh-pages/README.md deleted file mode 100644 index 23d4c44..0000000 --- a/gh-pages/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# GH Pages Deployment - -The rules defined here outline a basic pipeline of deploying a folder to an org-level github-pages repo. -It leverages the same `VERSION` file that many of our distribution rules use, and automatically publishes docs to sub-folders based on their release versions - -The repo structure would look something like: - -``` -.github.io/ - 1/ - 2/ - latest/ - next/ -``` - -where numbered folders correspond to the major version of the release, `latest` is an alias for the last main version, and `next` corresponds to the latest canary release. - -You must supply a `GH_TOKEN` environment variable that has push rights to the target repo. - - -To use the rule, define it in your docs folder with the data to be published: - -```python -load("@rules_player//gh-pages:index.bzl", "gh_pages") - -gh_pages( - name="deploy_docs", - source_dir=package_name() + "/src", - repo="/.github.io", - data = glob(["src/**"]) -) -``` - -and run it during your deployment: - -```sh -bazel run //packages/docs:deploy_docs -``` \ No newline at end of file diff --git a/gh-pages/gh-pages.js b/gh-pages/gh-pages.js deleted file mode 100644 index b8ca7f7..0000000 --- a/gh-pages/gh-pages.js +++ /dev/null @@ -1,87 +0,0 @@ -const yargs = require("yargs/yargs"); -const { hideBin } = require("yargs/helpers"); -const fs = require("fs"); -const ghPages = require("gh-pages"); -const path = require("path"); -const tar = require("tar"); - -async function deployPages(dir, config) { - return new Promise((resolve, reject) => { - ghPages.publish(dir, config, (err) => { - if (err) { - reject(err); - } else { - resolve(); - } - }); - }); -} - -async function expandTarball(tarball) { - const tempDir = path.join(__dirname, "temp"); - await fs.promises.mkdir(tempDir, { recursive: true }); - - await tar.extract({ - cwd: tempDir, - file: tarball, - }); - - return tempDir; -} - -const isTarball = (file) => - file.endsWith(".tar.gz") || file.endsWith(".tar") || file.endsWith(".tar.xz"); - -async function main(args) { - const { - srcDir, - repo, - branch, - version: version_file, - gh_user, - gh_email, - dest_dir, - } = args; - - const normalized_dest_dir = String(dest_dir); - - const version = await fs.promises.readFile(version_file, "utf8"); - let cleanup = false; - let upload_root = srcDir; - - if (isTarball(srcDir)) { - cleanup = true; - upload_root = await expandTarball(srcDir); - } - - if (!normalized_dest_dir) { - throw new Error("Unable to upload without a destination directory"); - } - - const config = { - branch, - repo: `https://${process.env.GH_TOKEN}@github.com/${repo}.git`, - dest: normalized_dest_dir, - dotFiles: true, - add: false, - verbose: false, - message: `Deploying docs for ${version}`, - user: { - name: gh_user, - email: gh_email, - }, - }; - - await deployPages(upload_root, config); - - if (cleanup) { - await fs.promises.rm(upload_root, { recursive: true }); - } -} - -const parsed = yargs(hideBin(process.argv)).version(false).parse(); - -main(parsed).catch((err) => { - console.error(err); - process.exitCode = 1; -}); diff --git a/gh-pages/index.bzl b/gh-pages/index.bzl deleted file mode 100644 index 9f78212..0000000 --- a/gh-pages/index.bzl +++ /dev/null @@ -1,19 +0,0 @@ -load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary", "nodejs_test", "npm_package_bin") - -def gh_pages(repo, gh_name = 'intuit-svc', gh_email = 'opensource-svc@intuit.com', source_dir="src", branch = "main", **kwargs): - nodejs_binary( - entry_point = "@rules_player//gh-pages:gh-pages.js", - data = [ - "@npm//gh-pages", - "//:VERSION" - ] + kwargs.pop("data", []), - args = [ - "--srcDir", source_dir, - "--repo", repo, - "--branch", branch, - "--version", "$(location //:VERSION)", - '--gh_user', gh_name, - '--gh_email', gh_email, - ], - **kwargs - ) diff --git a/index.bzl b/index.bzl deleted file mode 100644 index c19660f..0000000 --- a/index.bzl +++ /dev/null @@ -1,3 +0,0 @@ -load("//javascript:js_library_pipeline.bzl", _js_library_pipeline = "js_library_pipeline") - -js_library_pipeline = _js_library_pipeline diff --git a/internal/BUILD b/internal/BUILD index cc23109..df97c04 100644 --- a/internal/BUILD +++ b/internal/BUILD @@ -1,8 +1,10 @@ -load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary") +load("@bazel_skylib//:bzl_library.bzl", "bzl_library") -package(default_visibility = ["//visibility:public"]) +exports_files(["defs.bzl"]) -nodejs_binary( - name = "stamp_replacement", - entry_point = "stamp_replacement.js", -) \ No newline at end of file +bzl_library( + name = "defs", + srcs = ["defs.bzl"], + visibility = ["//visibility:public"], + deps = [], +) diff --git a/internal/defs.bzl b/internal/defs.bzl new file mode 100644 index 0000000..3fe6813 --- /dev/null +++ b/internal/defs.bzl @@ -0,0 +1,7 @@ +""" +Public API for Utility rules +""" + +load("//internal/private:stamp.bzl", _stamp = "stamp") + +stamp = _stamp diff --git a/internal/maybe.bzl b/internal/maybe.bzl deleted file mode 100644 index 2364fdb..0000000 --- a/internal/maybe.bzl +++ /dev/null @@ -1,3 +0,0 @@ -def maybe(rule, name, **kwargs): - if not native.existing_rule(name): - rule(name = name, **kwargs) diff --git a/internal/private/BUILD b/internal/private/BUILD new file mode 100644 index 0000000..b068c5c --- /dev/null +++ b/internal/private/BUILD @@ -0,0 +1,20 @@ +load("@bazel_skylib//:bzl_library.bzl", "bzl_library") +load("@aspect_rules_js//js:defs.bzl", "js_binary") + + +bzl_library( + name = "stamp", + srcs = ["stamp.bzl"], + visibility = [ + "//docs:__subpackages__", + "//internal:__subpackages__", + ], + deps = [ + ], +) + +js_binary( + name = "stamp_replacement_script", + entry_point = "stamp_replacement.js", + visibility = ["//visibility:public"], +) \ No newline at end of file diff --git a/internal/stamp.bzl b/internal/private/stamp.bzl similarity index 53% rename from internal/stamp.bzl rename to internal/private/stamp.bzl index 78e179b..2d25448 100644 --- a/internal/stamp.bzl +++ b/internal/private/stamp.bzl @@ -1,29 +1,39 @@ -load("@build_bazel_rules_nodejs//:providers.bzl", "run_node") +load("@aspect_bazel_lib//lib:stamping.bzl", "STAMP_ATTRS", "maybe_stamp") -_STAMP = Label("//internal:stamp_replacement") +_STAMP = Label("//internal/private:stamp_replacement_script") def _stamp_impl(ctx): - inputs = [ctx.info_file, ctx.version_file] + inputs = [] outputs = [] + for file in ctx.files.files: outputs.append(ctx.actions.declare_file(file.basename)) - run_node( - ctx, + stamp = maybe_stamp(ctx) + args = { + "files": [f.path for f in ctx.files.files], + "outputs": [f.path for f in outputs], + "substitutions": ctx.attr.substitutions, + "stable": ctx.attr.stable + } + + if stamp: + inputs = [stamp.volatile_status_file, stamp.stable_status_file] + args["info_file"] = stamp.stable_status_file.path + args["version_file"] = stamp.volatile_status_file.path + + + ctx.actions.run( inputs = inputs + ctx.files.files, outputs = outputs, arguments = [ - json.encode({ - "info_file": ctx.info_file.path, - "version_file": ctx.version_file.path, - "files": [f.path for f in ctx.files.files], - "outputs": [f.path for f in outputs], - "substitutions": ctx.attr.substitutions, - "stable": ctx.attr.stable - }) + json.encode(args) ], - executable = "_stamp_exec" + env = { + "BAZEL_BINDIR": ctx.bin_dir.path, + }, + executable = ctx.executable._stamp_exec ) return [ @@ -34,7 +44,7 @@ def _stamp_impl(ctx): stamp = rule( implementation = _stamp_impl, - attrs = { + attrs = dict({ "files": attr.label_list( allow_files = True, mandatory = True, @@ -51,7 +61,7 @@ stamp = rule( default = _STAMP, executable = True, doc = "The executable to run the stamping", - cfg = "host" + cfg = "exec" ) - } -) + }, **STAMP_ATTRS) +) \ No newline at end of file diff --git a/internal/stamp_replacement.js b/internal/private/stamp_replacement.js similarity index 65% rename from internal/stamp_replacement.js rename to internal/private/stamp_replacement.js index 574b33d..cec43f9 100644 --- a/internal/stamp_replacement.js +++ b/internal/private/stamp_replacement.js @@ -12,17 +12,25 @@ const main = ([config]) => { outputs = [] } = JSON.parse(config); - const variables = fs.readFileSync(stable ? info_file : version_file) - .toString() - .trim() - .split('\n') - .map(line => line.split(' ')) - .reduce((acc, cv) => ({...acc, ...{[`{${cv[0]}}`]: cv[1]}})) + const fileToRead = stable ? info_file : version_file + + process.chdir(process.env.JS_BINARY__EXECROOT) + + const variables = fileToRead ? + fs.readFileSync(fileToRead) + .toString() + .trim() + .split('\n') + .map(line => line.split(' ')) + .reduce((acc, cv) => ({...acc, ...{[`{${cv[0]}}`]: cv[1]}})) + : {} files.forEach( f => { const outputLocation = outputs.find((o) => o.includes(f)) - if (!outputLocation || !fs.existsSync(f)) { return } + if (outputLocation) { + fs.mkdirSync(path.dirname(outputLocation), { recursive: true}) + } const contents = fs.readFileSync(f).toString() const newContents = Object.keys(substitutions).reduce((acc, cv) => { const subValue = variables[substitutions[cv]] diff --git a/ios/BUILD b/ios/BUILD new file mode 100644 index 0000000..86ab231 --- /dev/null +++ b/ios/BUILD @@ -0,0 +1,12 @@ +load("@bazel_skylib//:bzl_library.bzl", "bzl_library") + +exports_files(["defs.bzl"]) + +bzl_library( + name = "defs", + srcs = ["defs.bzl"], + visibility = ["//visibility:public"], + deps = [ + "//ios/private:common_utils", + ], +) diff --git a/ios/defs.bzl b/ios/defs.bzl new file mode 100644 index 0000000..33014ec --- /dev/null +++ b/ios/defs.bzl @@ -0,0 +1,13 @@ +""" +Public API for Common iOS utils +""" + +load("//ios/private:common_utils.bzl", _assemble_pod = "assemble_pod", _ios_pipeline = "ios_pipeline") + +#export Rule Dependencies here so Player does not need to load dependencies, does not work for rules_ios and rules_apple +load("@build_bazel_rules_swift//swift:swift.bzl", _swift_library = "swift_library") + +assemble_pod = _assemble_pod +ios_pipeline = _ios_pipeline + +swift_library = _swift_library \ No newline at end of file diff --git a/ios/private/BUILD b/ios/private/BUILD new file mode 100644 index 0000000..2de81b9 --- /dev/null +++ b/ios/private/BUILD @@ -0,0 +1,14 @@ +load("@bazel_skylib//:bzl_library.bzl", "bzl_library") + +bzl_library( + name = "common_utils", + srcs = ["common_utils.bzl"], + visibility = [ + "//ios:__subpackages__", + ], +) + +exports_files([ + "ResourceShimTemplate.swift", + "Info.plist" +]) diff --git a/ios/private/Info.plist b/ios/private/Info.plist new file mode 100644 index 0000000..23f4271 --- /dev/null +++ b/ios/private/Info.plist @@ -0,0 +1,41 @@ + + + + + CFBundleIdentifier + com.intuit.ios.player.ReferenceAssets + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ReferenceAssets + CFBundlePackageType + BNDL + CFBundleSignature + ???? + CFBundleVersion + 1 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 20E238 + DTPlatformName + iphonesimulator + DTPlatformVersion + 16.4 + DTSDKBuild + 20E238 + DTSDKName + iphonesimulator16.4 + DTXcode + 1431 + DTXcodeBuild + 14E300c + MinimumOSVersion + 13.0 + UIDeviceFamily + + 1 + 2 + + + \ No newline at end of file diff --git a/ios/private/ResourceShimTemplate.swift b/ios/private/ResourceShimTemplate.swift new file mode 100644 index 0000000..b1bb305 --- /dev/null +++ b/ios/private/ResourceShimTemplate.swift @@ -0,0 +1,32 @@ +#if BAZEL_TARGET +import Foundation + +private class BundleFinder {} + +extension Foundation.Bundle { + /// Returns the resource bundle associated with the current Swift module. + static let module: Bundle = { + let bundleName = "PLACEHOLDER" + + let candidates: [URL?] = [ + // Bundle should be present here when the package is linked into an App. + Bundle.main.resourceURL, + + // Bundle should be present here when the package is linked into a framework. + Bundle(for: BundleFinder.self).resourceURL, + + // For command-line tools. + Bundle.main.bundleURL, + ] + + for candidate in candidates { + let bundlePath = candidate?.appendingPathComponent(bundleName + ".bundle") + if let bundle = bundlePath.flatMap(Bundle.init(url:)) { + return bundle + } + } + + fatalError("unable to find bundle named \(bundleName)") + }() +} +#endif \ No newline at end of file diff --git a/ios/private/common_utils.bzl b/ios/private/common_utils.bzl new file mode 100644 index 0000000..82be595 --- /dev/null +++ b/ios/private/common_utils.bzl @@ -0,0 +1,188 @@ +load("@rules_pkg//:pkg.bzl", "pkg_zip") +load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix") +load("@build_bazel_rules_apple//apple:resources.bzl", "apple_resource_bundle") +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") +load("@build_bazel_rules_ios//rules:test.bzl", "ios_unit_test", "ios_ui_test") + +def ios_bundle_module_shim(name): + native.genrule( + name = name + "ResourceShim", + srcs = ["@rules_player//ios/private:ResourceShimTemplate.swift"], + outs = [name + "ResourceShim.swift"], + cmd = "sed 's/PLACEHOLDER/" + name + "/g' < $< > $@" + ) + + +def assemble_pod( + name, + podspec = '', + srcs = [], + data = {} +): + pkg_files( + name = "podspec", + srcs = [podspec], + strip_prefix = strip_prefix.from_pkg(), + ) + + pkg_files( + name = "srcs", + srcs = srcs, + strip_prefix = strip_prefix.from_pkg(), + ) + + data_pkgs = [] + for target in data: + ident = "data_%d" % len(data_pkgs) + pkg_files( + name = ident, + srcs = [target], + strip_prefix = strip_prefix.from_pkg(), + prefix = data[target] + ) + data_pkgs.append(ident) + + pkg_zip( + name = name, + srcs = ["podspec", "srcs"] + data_pkgs + ) + +def ios_pipeline( + name, + resources, + deps, + test_deps, + hasUnitTests, + hasViewInspectorTests, + test_host, + hasUITests = False, + needsXCTest = False, + bundle_name = None, + +): + """Packages source files, creates swift library and tests for a swift PlayerUI plugin + + Args: + name: The base name of this package + Targets created by this macro prefix the name with 'PlayerUI' + resources: Any resources to include in a resource bundle + This will create a Bundle.module shim as well automatically + deps: Dependencies for the plugin + test_deps: Dependencies for the tests of this plugin + hasUnitTests: Whether or not to generate ios_unit_test tests + hasViewInspectorTests: Whether or not to generate ios_ui_test tests that require ViewInspector + test_host: The target where the tests should run (Demo app target) + hasUITests: Whether or not to generate ios_ui_test tests + needsXCTest: Set the 'testonly' attribute on swift_library + bundle_name: Pptionally override the name used for the resource bundle + """ + + # if we are backed by a JS package, these attributes + # will be populated to add to the sources/resources of the + # swift_library + data = [] + resourceSources = [] + + bundleName = bundle_name if bundle_name != None else name + + if len(resources) > 0: + apple_resource_bundle( + name = name + "ResourceBundle", + bundle_name = bundleName, + bundle_id = "com.intuit.ios.player.resources."+name, + resources = resources, + ) + + ios_bundle_module_shim(bundleName) + data.append(":" + name + "ResourceBundle") + resourceSources.append(":" + bundleName + "ResourceShim") + + # Group up files to be used in swift_library + # and in //:PlayerUI_Pod which builds the zip of sources + pkg_files( + name = name + "_Sources", + srcs = native.glob(["Sources/**/*.swift"]), + strip_prefix = strip_prefix.from_pkg(), + visibility = ["//visibility:public"], + ) + + swift_library( + name = name, + module_name = name, + srcs = [":" + name + "_Sources"] + resourceSources, + visibility = ["//visibility:public"], + testonly = needsXCTest, + deps = deps, + data = data, + # this define makes Bundle.module extension work from ios_bundle_module_shim + defines = ["BAZEL_TARGET"] + ) + + # Packages not specific to SwiftUI don't need ViewInspector + # so it can just be regular unit tests + if hasUnitTests == True: + ios_unit_test( + name = name + "Tests", + srcs = native.glob(["Tests/**/*.swift"]), + minimum_os_version = "14.0", + deps = [ + ":" + name + ] + deps + test_deps, + visibility = ["//visibility:public"] + ) + # ViewInspector has to run as a UI Test to work properly + # Some SwiftUI plugins need ViewInspector + if hasViewInspectorTests == True: + ios_ui_test( + name = name + "ViewInspectorTests", + srcs = native.glob(["ViewInspector/**/*.swift"]), + minimum_os_version = "14.0", + deps = [ + "@swiftpkg_viewinspector//:Sources_ViewInspector", + ":" + name + ] + deps + test_deps, + visibility = ["//visibility:public"], + test_host = test_host + ) + + #Some SwiftUI plugins have UI tests without ViewInspector + if hasUITests == True: + ios_ui_test( + name = name + "UITests", + srcs = native.glob(["UITests/**/*.swift"]), + minimum_os_version = "14.0", + deps = [ + ] + deps + test_deps, + visibility = ["//visibility:public"], + test_host = test_host + ) + + # Runs SwiftLint as a test calling the genrule target which outputs the result of linting + native.sh_test( + name = name + "SwiftLint", + srcs = [":"+ name + "_Lint"], + visibility = ["//visibility:public"], + ) + + # Runs the SwiftLint as part of the build, if lint fails with serious violations defer the results for the test + native.genrule( + name = name + "_Lint", + tools = [ + "@SwiftLint//:swiftlint" + ], + srcs = [":" + name + "_Sources"] + ["//:.swiftlint.yml"], + outs = ["output.sh"], + executable = True, + testonly = True, + visibility = ["//visibility:public"], + cmd=""" + echo `$(location @SwiftLint//:swiftlint) --config $(location //:.swiftlint.yml) $(SRCS) || true` > lint_results.txt + LINT=$$(cat lint_results.txt) + + echo '#!/bin/bash' > $(location output.sh) + echo "echo '$$LINT'" > $(location output.sh) + + LINESWITHERROR=$$(echo grep error lint_results.txt || true) + echo "exit $$(($$LINESWITHERROR) | wc -l)" >> $(location output.sh) + """ + ) \ No newline at end of file diff --git a/javascript/BUILD b/javascript/BUILD index e69de29..5416b01 100644 --- a/javascript/BUILD +++ b/javascript/BUILD @@ -0,0 +1,15 @@ +load("@bazel_skylib//:bzl_library.bzl", "bzl_library") + +exports_files(["defs.bzl"]) + +bzl_library( + name = "defs", + srcs = ["defs.bzl"], + visibility = ["//visibility:public"], + deps = [ + "//javascript/private:eslint", + "//javascript/private:js_pipeline", + "//javascript/private:oclif", + "//javascript/private:vitest", + ], +) diff --git a/javascript/README.md b/javascript/README.md deleted file mode 100644 index c61e9f9..0000000 --- a/javascript/README.md +++ /dev/null @@ -1,101 +0,0 @@ -# Javascript Pipeline - -The JS rules/macros defined here are extension of the [rules_nodejs](https://github.com/bazelbuild/rules_nodejs) provided by `bazel`. -They're intended to make the setup of common development patterns for JS libraries _super_ easy. - -The main integration point is the `js_library_pipeline` macro. It will: - - Generate a `package.json` based on the dependencies provided (pulling versions from a root `package.json`) - - Create the proper outputs for tree-shaking support: - - `dist/index.cjs.js` - CommonJS output file, used in tests/node - - `dist/index.esm.js` - ESM output, used in bundlers (webpack, etc) - - `dist/index.d.ts` - TS type output (if using typescript) - - Add a `:unit` test target using `jest` - - Add a `:lint` test target using `eslint` - -Each of these steps can be customized as needed, but we try to minimize the need for it. - -## How to use the pipeline rule - -### Setup - -There's a bit of setup involved before you're able to leverage this pipeline. - -First add this repo as a target: - -```python -load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") - -git_repository( - name = "player_common", - branch = "main", - remote = "https://github.com/player-ui/rules_player", -) -``` - -Load the dependent libraries - -```python -load("@rules_player//:workspace.bzl", "deps") -deps() -``` -Setup the libraries that we just loaded - -```python -load("@rules_player//:conf.bzl", "javascript") - -javascript() -``` - -See the `ts-monorepo` example for all the files needed to get up and running - - - -## Rules - -### create_package_json - -Used to generate a `package.json` for a module, including automatically pulling in the correct versions of any dependent libraries. - -To extend the generated `package.json` there's 2 options: - -- Pass a `base_package_json` label to a `.json` file. This will be used to override/extend anything defined by the generated file. -- Pass the `additional_properties` attribute, which is a JSON string of a similar set of features. - -The generation and precedence can be though of as: - -```js -{ - ...generated, - ...base_package_json, - ...additional_properties -} -``` - -### create_contributors - -The `create_contributors` rule generates the `package.json` formatted contributors list from an `.all-contributorsrc` file - -```python -load("@rules_player//javascript/package_json:index.bzl", "create_contributors") - -create_contributors( - name = "pkg_json_contrib", - all_contributors = "//:.all-contributorsrc", -) -``` - -### merge_json - -The `merge_json` rule will merge together properties from multiple JSON files into one. This can be used as an input to the `base_package_json` attribute. - -```python -load("@rules_player//javascript/package_json:index.bzl", "merge_json") - -merge_json( - name = "pkg_json_template", - srcs = [ - "package-template.json", - ":pkg_json_contrib", - ] -) -``` \ No newline at end of file diff --git a/javascript/conf.bzl b/javascript/conf.bzl deleted file mode 100644 index ccd761f..0000000 --- a/javascript/conf.bzl +++ /dev/null @@ -1,4 +0,0 @@ -load("//distribution:conf.bzl", "distribution") - -def javascript(): - distribution() diff --git a/javascript/defs.bzl b/javascript/defs.bzl new file mode 100644 index 0000000..1528ba5 --- /dev/null +++ b/javascript/defs.bzl @@ -0,0 +1,17 @@ +""" +Public API for JavaScript based project rules +""" + +load("//javascript/private:js_pipeline.bzl", _js_pipeline = "js_pipeline") +load("//javascript/private:eslint.bzl", _eslint_test = "eslint_test") +load("//javascript/private:vitest.bzl", _vitest_test = "vitest_test") +load("//javascript/private:package_json.bzl", _create_package_json = "create_package_json") +load("//javascript/private:tsup.bzl", _tsup_build = "tsup_build") +load("//javascript/private:oclif.bzl", _oclif_pipeline = "oclif_pipeline") + +js_pipeline = _js_pipeline +eslint_test = _eslint_test +vitest_test = _vitest_test +tsup_build = _tsup_build +create_package_json = _create_package_json +oclif_pipeline = _oclif_pipeline diff --git a/javascript/examples/ts-monorepo/.bazelignore b/javascript/examples/ts-monorepo/.bazelignore index cab4566..5989ddc 100644 --- a/javascript/examples/ts-monorepo/.bazelignore +++ b/javascript/examples/ts-monorepo/.bazelignore @@ -1,2 +1,4 @@ .cache -node_modules \ No newline at end of file +node_modules +packages/module-a/node_modules +packages/module-b/node_modules \ No newline at end of file diff --git a/javascript/examples/ts-monorepo/.bazelrc b/javascript/examples/ts-monorepo/.bazelrc index af87cbb..dcef39a 100644 --- a/javascript/examples/ts-monorepo/.bazelrc +++ b/javascript/examples/ts-monorepo/.bazelrc @@ -1 +1,6 @@ -build:release --stamp --workspace_status_command=./scripts/bazel-stamp-vars.sh \ No newline at end of file +common --enable_bzlmod +build:release --stamp --workspace_status_command=$(pwd)/workspace_status.sh + +build --@aspect_rules_ts//ts:skipLibCheck=always +fetch --@aspect_rules_ts//ts:skipLibCheck=always +query --@aspect_rules_ts//ts:skipLibCheck=always \ No newline at end of file diff --git a/javascript/examples/ts-monorepo/.bazelversion b/javascript/examples/ts-monorepo/.bazelversion new file mode 100644 index 0000000..c0be8a7 --- /dev/null +++ b/javascript/examples/ts-monorepo/.bazelversion @@ -0,0 +1 @@ +6.4.0 \ No newline at end of file diff --git a/javascript/examples/ts-monorepo/.eslintrc.js b/javascript/examples/ts-monorepo/.eslintrc.js index c29c252..050c090 100644 --- a/javascript/examples/ts-monorepo/.eslintrc.js +++ b/javascript/examples/ts-monorepo/.eslintrc.js @@ -1,13 +1,7 @@ module.exports = { - env: { jest: true, browser: true }, - - parser: '@babel/eslint-parser', - - extends: [ - 'eslint:recommended' - ], - - plugins: [ - 'jest', - ], -} \ No newline at end of file + extends: ['plugin:@typescript-eslint/recommended'], + parser: '@typescript-eslint/parser', + ignorePatterns: ['node_modules', 'dist', '__snapshots__'], + plugins: ['@typescript-eslint'], + root: true, +}; diff --git a/javascript/examples/ts-monorepo/BUILD b/javascript/examples/ts-monorepo/BUILD index c78c97f..00c9492 100644 --- a/javascript/examples/ts-monorepo/BUILD +++ b/javascript/examples/ts-monorepo/BUILD @@ -1,8 +1,58 @@ +load("@npm//:defs.bzl", "npm_link_all_packages") +load("@aspect_rules_js//js:defs.bzl", "js_library") + +package(default_visibility = ["//visibility:public"]) + +npm_link_all_packages( + name = "node_modules", +) + exports_files([ "package.json", - "tsconfig.json", - "jest.config.js", - "babel.config.js", - ".eslintrc.js", "VERSION", ]) + +js_library( + name = "typings", + srcs = [], + visibility = ["//visibility:public"], + deps = [], +) + +js_library( + name = "vitest_config", + testonly = True, + srcs = [ + "vitest.config.ts", + ], + visibility = ["//visibility:public"], + deps = [ + "//:node_modules/vitest", + ], +) + +js_library( + name = "eslint_config", + testonly = True, + srcs = [ + ".eslintrc.js", + ], + visibility = ["//visibility:public"], + deps = [ + ":node_modules/@typescript-eslint/eslint-plugin", + ":node_modules/@typescript-eslint/parser", + ":node_modules/eslint", + ], +) + +js_library( + name = "tsup_config", + srcs = [ + "tsup.config.ts", + ], + visibility = ["//visibility:public"], + deps = [ + ":node_modules/tsup", + ":node_modules/typescript", + ], +) diff --git a/javascript/examples/ts-monorepo/MODULE.bazel b/javascript/examples/ts-monorepo/MODULE.bazel new file mode 100644 index 0000000..41bc5a4 --- /dev/null +++ b/javascript/examples/ts-monorepo/MODULE.bazel @@ -0,0 +1,36 @@ +module(name = "ts-monorepo-example") + +bazel_dep(name = "rules_player") +local_path_override(module_name = "rules_player", path = "../../..") + +bazel_dep(name = "bazel_skylib", version = "1.4.1") +bazel_dep(name = "aspect_rules_js", version = "1.33.1") +bazel_dep(name = "aspect_rules_rollup", version = "1.0.0") +bazel_dep(name = "rules_nodejs", version = "5.8.2") +bazel_dep(name = "aspect_rules_ts", version = "2.1.0") + +rules_ts_ext = use_extension( + "@aspect_rules_ts//ts:extensions.bzl", + "ext", + dev_dependency = True, +) + +rules_ts_ext.deps() + +use_repo(rules_ts_ext, "npm_typescript") + +node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node") +node.toolchain(node_version = "16.4.2") + +npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm") + +npm.npm_translate_lock( + name = "npm", + pnpm_lock = "//:pnpm-lock.yaml", + data = [ + "//:package.json", + ], + verify_node_modules_ignored = "//:.bazelignore", +) + +use_repo(npm, "npm") diff --git a/javascript/examples/ts-monorepo/WORKSPACE b/javascript/examples/ts-monorepo/WORKSPACE index 692d9bd..21078e7 100644 --- a/javascript/examples/ts-monorepo/WORKSPACE +++ b/javascript/examples/ts-monorepo/WORKSPACE @@ -1,34 +1 @@ -workspace( - name = "javascript", - managed_directories = { - "@npm": ["./node_modules"], - }, -) - -local_repository( - name = "rules_player", - path = "../../..", -) - -load("@rules_player//bazel:workspace.bzl", "skylib") -skylib() - -load("@rules_player//javascript:workspace.bzl", deps = "javascript") -deps() - -load("@rules_player//javascript:conf.bzl", "javascript") -javascript() - -load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories", "yarn_install") - -node_repositories( - node_version = "16.12.0", - yarn_version = "1.22.17", -) - -yarn_install( - name = "npm", - package_json = "//:package.json", - strict_visibility = False, - yarn_lock = "//:yarn.lock", -) +workspace(name = "ts-monorepo-example") \ No newline at end of file diff --git a/javascript/examples/ts-monorepo/babel.config.js b/javascript/examples/ts-monorepo/babel.config.js deleted file mode 100644 index fb96047..0000000 --- a/javascript/examples/ts-monorepo/babel.config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = (api) => ({ - presets: [ - ['@babel/preset-env', { modules: api.env('module') ? false : 'auto' }], - require.resolve('@babel/preset-typescript'), - ] -}) \ No newline at end of file diff --git a/javascript/examples/ts-monorepo/index.bzl b/javascript/examples/ts-monorepo/index.bzl deleted file mode 100644 index 9ccf2ff..0000000 --- a/javascript/examples/ts-monorepo/index.bzl +++ /dev/null @@ -1,35 +0,0 @@ -load("@rules_player//:index.bzl", _js_library_pipeline = "js_library_pipeline") - -DATA = [] -TEST_DATA = [ - "//:babel.config.js", - "@npm//@babel/preset-typescript", - "@npm//@babel/preset-env", -] -BUILD_DATA = [] -LINT_DATA = [ - "//:.eslintrc.js", - "@npm//eslint-plugin-jest", - "@npm//@babel/eslint-parser" -] - -def js_library_pipeline( - name, - srcs, - entry, - dependencies = [], - peer_dependencies = [], - **kwargs): - _js_library_pipeline( - name = name, - srcs = srcs, - entry = entry, - dependencies = dependencies, - peer_dependencies = peer_dependencies, - eslint_config = None, - data = DATA, - test_data = TEST_DATA, - build_data = BUILD_DATA, - lint_data = LINT_DATA, - **kwargs - ) diff --git a/javascript/examples/ts-monorepo/jest.config.js b/javascript/examples/ts-monorepo/jest.config.js deleted file mode 100644 index e7779ea..0000000 --- a/javascript/examples/ts-monorepo/jest.config.js +++ /dev/null @@ -1,16 +0,0 @@ -const path = require('path'); - -module.exports = { - moduleFileExtensions: ['js', 'jsx', 'json', 'ts', 'tsx'], - haste: { - enableSymlinks: true, - }, - watchman: false, - passWithNoTests: true, - transform: { - '^.+\\.[jt]sx?$': [ - 'babel-jest', - { configFile: path.join(__dirname, 'babel.config.js') }, - ], - }, -} \ No newline at end of file diff --git a/javascript/examples/ts-monorepo/package.json b/javascript/examples/ts-monorepo/package.json index 66c86b2..452a025 100644 --- a/javascript/examples/ts-monorepo/package.json +++ b/javascript/examples/ts-monorepo/package.json @@ -1,22 +1,17 @@ { "dependencies": { - "@babel/eslint-parser": "^7.15.8", - "@babel/preset-env": "^7.16.4", - "@babel/preset-typescript": "^7.16.0", - "@rollup/plugin-image": "^2.1.1", - "@rollup/plugin-json": "^4.1.0", - "babel-jest": "^27.4.0", - "esbuild": "^0.14.0", - "eslint": "^8.3.0", - "eslint-plugin-jest": "^25.2.2", - "jest": "^27.4.0", - "rollup": "^2.60.1", - "rollup-plugin-dts": "^4.0.1", - "rollup-plugin-esbuild": "^4.7.2", - "rollup-plugin-styles": "^4.0.0", - "typescript": "^4.5.2" + "@types/node": "^20.11.18", + "@typescript-eslint/eslint-plugin": "^5.1.0", + "@typescript-eslint/parser": "^5.1.0", + "eslint": "^8.54.0", + "tslib": "^2.6.2", + "tsup": "^8.0.1", + "typescript": "^4.5.2", + "vitest": "^0.34.6" }, - "volta": { - "node": "14.18.3" - } + "engines": { + "node": "^16.14.0", + "pnpm": "^8.9.2" + }, + "packageManager": "pnpm@8.9.2" } diff --git a/javascript/examples/ts-monorepo/packages/module-a/BUILD b/javascript/examples/ts-monorepo/packages/module-a/BUILD index 58d12bb..73b2ca9 100644 --- a/javascript/examples/ts-monorepo/packages/module-a/BUILD +++ b/javascript/examples/ts-monorepo/packages/module-a/BUILD @@ -1,17 +1,10 @@ -load("@build_bazel_rules_nodejs//:index.bzl", "generated_file_test") -load("//:index.bzl", "js_library_pipeline") +load("@rules_player//javascript:defs.bzl", "js_pipeline") -js_library_pipeline( - name = "@test/module-a", - srcs = glob(["src/*"]) + ["README.md"], - entry = "./src/index.ts", - peer_dependencies = [ - "@npm//typescript", +js_pipeline( + package_name = "@test/module-a", + tsup_config = "tsup.config.ts", + vitest_config = "vitest.config.ts", + deps = [ + "//:node_modules/@types/node", ], ) - -generated_file_test( - name = "package-json-test", - src = "package.test.json", - generated = ":@test/module-a-package_json", -) diff --git a/javascript/examples/ts-monorepo/packages/module-a/package.json b/javascript/examples/ts-monorepo/packages/module-a/package.json new file mode 100644 index 0000000..f5d9dcc --- /dev/null +++ b/javascript/examples/ts-monorepo/packages/module-a/package.json @@ -0,0 +1,20 @@ +{ + "name": "@test/module-a", + "version": "0.0.0-PLACEHOLDER", + "main": "dist/cjs/index.cjs", + "module": "dist/index.legacy-esm.js", + "types": "dist/index.d.ts", + "sideEffects": false, + "exports": { + "./package.json": "./package.json", + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "default": "./dist/cjs/index.cjs" + } + }, + "files": [ + "dist", + "src" + ] +} diff --git a/javascript/examples/ts-monorepo/packages/module-a/package.test.json b/javascript/examples/ts-monorepo/packages/module-a/package.test.json deleted file mode 100644 index 76916e6..0000000 --- a/javascript/examples/ts-monorepo/packages/module-a/package.test.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "@test/module-a", - "version": "0.0.0-PLACEHOLDER", - "private": false, - "publishConfig": { - "registry": "https://registry.npmjs.org" - }, - "peerDependencies": { - "typescript": "^4.5.2" - }, - "dependencies": {}, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", - "typings": "dist/index.d.ts" -} \ No newline at end of file diff --git a/javascript/examples/ts-monorepo/packages/module-a/src/index.test.ts b/javascript/examples/ts-monorepo/packages/module-a/src/index.test.ts index 5297f8b..2818c0a 100644 --- a/javascript/examples/ts-monorepo/packages/module-a/src/index.test.ts +++ b/javascript/examples/ts-monorepo/packages/module-a/src/index.test.ts @@ -1,3 +1,4 @@ +import { test, expect } from "vitest"; import { helloWorld } from "."; test("expect return", () => { diff --git a/javascript/examples/ts-monorepo/packages/module-a/src/index.ts b/javascript/examples/ts-monorepo/packages/module-a/src/index.ts index 3753f09..47fbb03 100644 --- a/javascript/examples/ts-monorepo/packages/module-a/src/index.ts +++ b/javascript/examples/ts-monorepo/packages/module-a/src/index.ts @@ -1,4 +1,11 @@ -export const TEST = "__VERSION__"; +declare global { + const __VERSION__: string; +} + +export const TEST_sub = + typeof __VERSION__ !== "undefined" ? __VERSION__ : "__Placeholder__"; +export const TEST_process = process.env.STABLE_VERSION; + export function helloWorld() { return "hello world"; } diff --git a/javascript/examples/ts-monorepo/packages/module-a/tsup.config.ts b/javascript/examples/ts-monorepo/packages/module-a/tsup.config.ts new file mode 100644 index 0000000..a4ebb2b --- /dev/null +++ b/javascript/examples/ts-monorepo/packages/module-a/tsup.config.ts @@ -0,0 +1,3 @@ +import { createConfig } from "../../tsup.config"; + +export default createConfig(); diff --git a/javascript/examples/ts-monorepo/packages/module-a/vitest.config.ts b/javascript/examples/ts-monorepo/packages/module-a/vitest.config.ts new file mode 100644 index 0000000..867e18b --- /dev/null +++ b/javascript/examples/ts-monorepo/packages/module-a/vitest.config.ts @@ -0,0 +1,9 @@ +import { defineConfig, mergeConfig } from 'vitest/config'; +import baseConfig from '../../vitest.config'; + +export default mergeConfig( + baseConfig, + defineConfig({ + test: {}, + }) +); diff --git a/javascript/examples/ts-monorepo/packages/module-b/BUILD b/javascript/examples/ts-monorepo/packages/module-b/BUILD index 18cd609..31d3d43 100644 --- a/javascript/examples/ts-monorepo/packages/module-b/BUILD +++ b/javascript/examples/ts-monorepo/packages/module-b/BUILD @@ -1,18 +1,13 @@ -load("@build_bazel_rules_nodejs//:index.bzl", "generated_file_test") -load("//:index.bzl", "js_library_pipeline") +load("@rules_player//javascript:defs.bzl", "js_pipeline") +load("@npm//:defs.bzl", "npm_link_all_packages") -js_library_pipeline( - name = "@test/module-b", - srcs = glob(["files/**"]), - bin_entry = "./files/cli.ts", - dependencies = [ - "//packages/module-a:@test/module-a", - ], - entry = "./files/entry.ts", -) +npm_link_all_packages(name = "node_modules") -generated_file_test( - name = "package-json-test", - src = "package.test.json", - generated = ":@test/module-b-package_json", +js_pipeline( + package_name = "@test/module-b", + tsup_config = "tsup.config.ts", + vitest_config = "vitest.config.ts", + deps = [ + ":node_modules/@test/module-a", + ], ) diff --git a/javascript/examples/ts-monorepo/packages/module-b/package.json b/javascript/examples/ts-monorepo/packages/module-b/package.json new file mode 100644 index 0000000..5e66bc4 --- /dev/null +++ b/javascript/examples/ts-monorepo/packages/module-b/package.json @@ -0,0 +1,23 @@ +{ + "name": "@test/module-b", + "version": "0.0.0-PLACEHOLDER", + "main": "dist/cjs/index.cjs", + "module": "dist/index.legacy-esm.js", + "types": "dist/index.d.ts", + "sideEffects": false, + "exports": { + "./package.json": "./package.json", + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "default": "./dist/cjs/index.cjs" + } + }, + "files": [ + "dist", + "src" + ], + "dependencies": { + "@test/module-a": "workspace:*" + } +} diff --git a/javascript/examples/ts-monorepo/packages/module-b/files/__tests__/entry.test.ts b/javascript/examples/ts-monorepo/packages/module-b/src/__tests__/entry.test.ts similarity index 74% rename from javascript/examples/ts-monorepo/packages/module-b/files/__tests__/entry.test.ts rename to javascript/examples/ts-monorepo/packages/module-b/src/__tests__/entry.test.ts index e135e0f..2e0fff2 100644 --- a/javascript/examples/ts-monorepo/packages/module-b/files/__tests__/entry.test.ts +++ b/javascript/examples/ts-monorepo/packages/module-b/src/__tests__/entry.test.ts @@ -1,3 +1,4 @@ +import { test, expect } from "vitest"; import { sayHi } from "../entry"; test("works", () => { diff --git a/javascript/examples/ts-monorepo/packages/module-b/files/cli.ts b/javascript/examples/ts-monorepo/packages/module-b/src/cli.ts similarity index 100% rename from javascript/examples/ts-monorepo/packages/module-b/files/cli.ts rename to javascript/examples/ts-monorepo/packages/module-b/src/cli.ts diff --git a/javascript/examples/ts-monorepo/packages/module-b/files/entry.ts b/javascript/examples/ts-monorepo/packages/module-b/src/entry.ts similarity index 65% rename from javascript/examples/ts-monorepo/packages/module-b/files/entry.ts rename to javascript/examples/ts-monorepo/packages/module-b/src/entry.ts index b7ec215..9dfd0f1 100644 --- a/javascript/examples/ts-monorepo/packages/module-b/files/entry.ts +++ b/javascript/examples/ts-monorepo/packages/module-b/src/entry.ts @@ -1,5 +1,5 @@ import { helloWorld } from "@test/module-a"; -export const sayHi = (name: string) => { +export function sayHi(name: string) { return `${name}: ${helloWorld()}`; -}; +} diff --git a/android/BUILD b/javascript/examples/ts-monorepo/packages/module-b/src/index.ts similarity index 100% rename from android/BUILD rename to javascript/examples/ts-monorepo/packages/module-b/src/index.ts diff --git a/javascript/examples/ts-monorepo/packages/module-b/tsup.config.ts b/javascript/examples/ts-monorepo/packages/module-b/tsup.config.ts new file mode 100644 index 0000000..a4ebb2b --- /dev/null +++ b/javascript/examples/ts-monorepo/packages/module-b/tsup.config.ts @@ -0,0 +1,3 @@ +import { createConfig } from "../../tsup.config"; + +export default createConfig(); diff --git a/javascript/examples/ts-monorepo/packages/module-b/vitest.config.ts b/javascript/examples/ts-monorepo/packages/module-b/vitest.config.ts new file mode 100644 index 0000000..867e18b --- /dev/null +++ b/javascript/examples/ts-monorepo/packages/module-b/vitest.config.ts @@ -0,0 +1,9 @@ +import { defineConfig, mergeConfig } from 'vitest/config'; +import baseConfig from '../../vitest.config'; + +export default mergeConfig( + baseConfig, + defineConfig({ + test: {}, + }) +); diff --git a/javascript/examples/ts-monorepo/pnpm-lock.yaml b/javascript/examples/ts-monorepo/pnpm-lock.yaml new file mode 100644 index 0000000..3a1a66b --- /dev/null +++ b/javascript/examples/ts-monorepo/pnpm-lock.yaml @@ -0,0 +1,2066 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@types/node': + specifier: ^20.11.18 + version: 20.11.18 + '@typescript-eslint/eslint-plugin': + specifier: ^5.1.0 + version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.54.0)(typescript@4.9.5) + '@typescript-eslint/parser': + specifier: ^5.1.0 + version: 5.62.0(eslint@8.54.0)(typescript@4.9.5) + eslint: + specifier: ^8.54.0 + version: 8.54.0 + tslib: + specifier: ^2.6.2 + version: 2.6.2 + tsup: + specifier: ^8.0.1 + version: 8.0.1(typescript@4.9.5) + typescript: + specifier: ^4.5.2 + version: 4.9.5 + vitest: + specifier: ^0.34.6 + version: 0.34.6 + + packages/module-a: {} + + packages/module-b: + dependencies: + '@test/module-a': + specifier: workspace:* + version: link:../module-a + +packages: + + /@aashutoshrathi/word-wrap@1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + dev: false + + /@esbuild/android-arm64@0.19.7: + resolution: {integrity: sha512-YEDcw5IT7hW3sFKZBkCAQaOCJQLONVcD4bOyTXMZz5fr66pTHnAet46XAtbXAkJRfIn2YVhdC6R9g4xa27jQ1w==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@esbuild/android-arm@0.19.7: + resolution: {integrity: sha512-YGSPnndkcLo4PmVl2tKatEn+0mlVMr3yEpOOT0BeMria87PhvoJb5dg5f5Ft9fbCVgtAz4pWMzZVgSEGpDAlww==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@esbuild/android-x64@0.19.7: + resolution: {integrity: sha512-jhINx8DEjz68cChFvM72YzrqfwJuFbfvSxZAk4bebpngGfNNRm+zRl4rtT9oAX6N9b6gBcFaJHFew5Blf6CvUw==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@esbuild/darwin-arm64@0.19.7: + resolution: {integrity: sha512-dr81gbmWN//3ZnBIm6YNCl4p3pjnabg1/ZVOgz2fJoUO1a3mq9WQ/1iuEluMs7mCL+Zwv7AY5e3g1hjXqQZ9Iw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@esbuild/darwin-x64@0.19.7: + resolution: {integrity: sha512-Lc0q5HouGlzQEwLkgEKnWcSazqr9l9OdV2HhVasWJzLKeOt0PLhHaUHuzb8s/UIya38DJDoUm74GToZ6Wc7NGQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@esbuild/freebsd-arm64@0.19.7: + resolution: {integrity: sha512-+y2YsUr0CxDFF7GWiegWjGtTUF6gac2zFasfFkRJPkMAuMy9O7+2EH550VlqVdpEEchWMynkdhC9ZjtnMiHImQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + + /@esbuild/freebsd-x64@0.19.7: + resolution: {integrity: sha512-CdXOxIbIzPJmJhrpmJTLx+o35NoiKBIgOvmvT+jeSadYiWJn0vFKsl+0bSG/5lwjNHoIDEyMYc/GAPR9jxusTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-arm64@0.19.7: + resolution: {integrity: sha512-inHqdOVCkUhHNvuQPT1oCB7cWz9qQ/Cz46xmVe0b7UXcuIJU3166aqSunsqkgSGMtUCWOZw3+KMwI6otINuC9g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-arm@0.19.7: + resolution: {integrity: sha512-Y+SCmWxsJOdQtjcBxoacn/pGW9HDZpwsoof0ttL+2vGcHokFlfqV666JpfLCSP2xLxFpF1lj7T3Ox3sr95YXww==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-ia32@0.19.7: + resolution: {integrity: sha512-2BbiL7nLS5ZO96bxTQkdO0euGZIUQEUXMTrqLxKUmk/Y5pmrWU84f+CMJpM8+EHaBPfFSPnomEaQiG/+Gmh61g==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-loong64@0.19.7: + resolution: {integrity: sha512-BVFQla72KXv3yyTFCQXF7MORvpTo4uTA8FVFgmwVrqbB/4DsBFWilUm1i2Oq6zN36DOZKSVUTb16jbjedhfSHw==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-mips64el@0.19.7: + resolution: {integrity: sha512-DzAYckIaK+pS31Q/rGpvUKu7M+5/t+jI+cdleDgUwbU7KdG2eC3SUbZHlo6Q4P1CfVKZ1lUERRFP8+q0ob9i2w==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-ppc64@0.19.7: + resolution: {integrity: sha512-JQ1p0SmUteNdUaaiRtyS59GkkfTW0Edo+e0O2sihnY4FoZLz5glpWUQEKMSzMhA430ctkylkS7+vn8ziuhUugQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-riscv64@0.19.7: + resolution: {integrity: sha512-xGwVJ7eGhkprY/nB7L7MXysHduqjpzUl40+XoYDGC4UPLbnG+gsyS1wQPJ9lFPcxYAaDXbdRXd1ACs9AE9lxuw==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-s390x@0.19.7: + resolution: {integrity: sha512-U8Rhki5PVU0L0nvk+E8FjkV8r4Lh4hVEb9duR6Zl21eIEYEwXz8RScj4LZWA2i3V70V4UHVgiqMpszXvG0Yqhg==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-x64@0.19.7: + resolution: {integrity: sha512-ZYZopyLhm4mcoZXjFt25itRlocKlcazDVkB4AhioiL9hOWhDldU9n38g62fhOI4Pth6vp+Mrd5rFKxD0/S+7aQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/netbsd-x64@0.19.7: + resolution: {integrity: sha512-/yfjlsYmT1O3cum3J6cmGG16Fd5tqKMcg5D+sBYLaOQExheAJhqr8xOAEIuLo8JYkevmjM5zFD9rVs3VBcsjtQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: false + optional: true + + /@esbuild/openbsd-x64@0.19.7: + resolution: {integrity: sha512-MYDFyV0EW1cTP46IgUJ38OnEY5TaXxjoDmwiTXPjezahQgZd+j3T55Ht8/Q9YXBM0+T9HJygrSRGV5QNF/YVDQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: false + optional: true + + /@esbuild/sunos-x64@0.19.7: + resolution: {integrity: sha512-JcPvgzf2NN/y6X3UUSqP6jSS06V0DZAV/8q0PjsZyGSXsIGcG110XsdmuWiHM+pno7/mJF6fjH5/vhUz/vA9fw==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: false + optional: true + + /@esbuild/win32-arm64@0.19.7: + resolution: {integrity: sha512-ZA0KSYti5w5toax5FpmfcAgu3ZNJxYSRm0AW/Dao5up0YV1hDVof1NvwLomjEN+3/GMtaWDI+CIyJOMTRSTdMw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@esbuild/win32-ia32@0.19.7: + resolution: {integrity: sha512-CTOnijBKc5Jpk6/W9hQMMvJnsSYRYgveN6O75DTACCY18RA2nqka8dTZR+x/JqXCRiKk84+5+bRKXUSbbwsS0A==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@esbuild/win32-x64@0.19.7: + resolution: {integrity: sha512-gRaP2sk6hc98N734luX4VpF318l3w+ofrtTu9j5L8EQXF+FzQKV6alCOHMVoJJHvVK/mGbwBXfOL1HETQu9IGQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@eslint-community/eslint-utils@4.4.0(eslint@8.54.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.54.0 + eslint-visitor-keys: 3.4.3 + dev: false + + /@eslint-community/regexpp@4.10.0: + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: false + + /@eslint/eslintrc@2.1.3: + resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.23.0 + ignore: 5.3.0 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@eslint/js@8.54.0: + resolution: {integrity: sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: false + + /@humanwhocodes/config-array@0.11.13: + resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 2.0.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: false + + /@humanwhocodes/object-schema@2.0.1: + resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} + dev: false + + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': 0.27.8 + dev: false + + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.20 + dev: false + + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + dev: false + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + dev: false + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: false + + /@jridgewell/trace-mapping@0.3.20: + resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: false + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: false + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: false + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + dev: false + + /@rollup/rollup-android-arm-eabi@4.5.0: + resolution: {integrity: sha512-OINaBGY+Wc++U0rdr7BLuFClxcoWaVW3vQYqmQq6B3bqQ/2olkaoz+K8+af/Mmka/C2yN5j+L9scBkv4BtKsDA==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-android-arm64@4.5.0: + resolution: {integrity: sha512-UdMf1pOQc4ZmUA/NTmKhgJTBimbSKnhPS2zJqucqFyBRFPnPDtwA8MzrGNTjDeQbIAWfpJVAlxejw+/lQyBK/w==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-darwin-arm64@4.5.0: + resolution: {integrity: sha512-L0/CA5p/idVKI+c9PcAPGorH6CwXn6+J0Ys7Gg1axCbTPgI8MeMlhA6fLM9fK+ssFhqogMHFC8HDvZuetOii7w==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-darwin-x64@4.5.0: + resolution: {integrity: sha512-QZCbVqU26mNlLn8zi/XDDquNmvcr4ON5FYAHQQsyhrHx8q+sQi/6xduoznYXwk/KmKIXG5dLfR0CvY+NAWpFYQ==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.5.0: + resolution: {integrity: sha512-VpSQ+xm93AeV33QbYslgf44wc5eJGYfYitlQzAi3OObu9iwrGXEnmu5S3ilkqE3Pr/FkgOiJKV/2p0ewf4Hrtg==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.5.0: + resolution: {integrity: sha512-OrEyIfpxSsMal44JpEVx9AEcGpdBQG1ZuWISAanaQTSMeStBW+oHWwOkoqR54bw3x8heP8gBOyoJiGg+fLY8qQ==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-arm64-musl@4.5.0: + resolution: {integrity: sha512-1H7wBbQuE6igQdxMSTjtFfD+DGAudcYWhp106z/9zBA8OQhsJRnemO4XGavdzHpGhRtRxbgmUGdO3YQgrWf2RA==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-x64-gnu@4.5.0: + resolution: {integrity: sha512-FVyFI13tXw5aE65sZdBpNjPVIi4Q5mARnL/39UIkxvSgRAIqCo5sCpCELk0JtXHGee2owZz5aNLbWNfBHzr71Q==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-x64-musl@4.5.0: + resolution: {integrity: sha512-eBPYl2sLpH/o8qbSz6vPwWlDyThnQjJfcDOGFbNjmjb44XKC1F5dQfakOsADRVrXCNzM6ZsSIPDG5dc6HHLNFg==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.5.0: + resolution: {integrity: sha512-xaOHIfLOZypoQ5U2I6rEaugS4IYtTgP030xzvrBf5js7p9WI9wik07iHmsKaej8Z83ZDxN5GyypfoyKV5O5TJA==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.5.0: + resolution: {integrity: sha512-Al6quztQUrHwcOoU2TuFblUQ5L+/AmPBXFR6dUvyo4nRj2yQRK0WIUaGMF/uwKulvRcXkpHe3k9A8Vf93VDktA==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-win32-x64-msvc@4.5.0: + resolution: {integrity: sha512-8kdW+brNhI/NzJ4fxDufuJUjepzINqJKLGHuxyAtpPG9bMbn8P5mtaCcbOm0EzLJ+atg+kF9dwg8jpclkVqx5w==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + dev: false + + /@types/chai-subset@1.3.5: + resolution: {integrity: sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==} + dependencies: + '@types/chai': 4.3.11 + dev: false + + /@types/chai@4.3.11: + resolution: {integrity: sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ==} + dev: false + + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + dev: false + + /@types/node@20.11.18: + resolution: {integrity: sha512-ABT5VWnnYneSBcNWYSCuR05M826RoMyMSGiFivXGx6ZUIsXb9vn4643IEwkg2zbEOSgAiSogtapN2fgc4mAPlw==} + dependencies: + undici-types: 5.26.5 + dev: false + + /@types/semver@7.5.6: + resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} + dev: false + + /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.54.0)(typescript@4.9.5): + resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 5.62.0(eslint@8.54.0)(typescript@4.9.5) + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/type-utils': 5.62.0(eslint@8.54.0)(typescript@4.9.5) + '@typescript-eslint/utils': 5.62.0(eslint@8.54.0)(typescript@4.9.5) + debug: 4.3.4 + eslint: 8.54.0 + graphemer: 1.4.0 + ignore: 5.3.0 + natural-compare-lite: 1.4.0 + semver: 7.5.4 + tsutils: 3.21.0(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: false + + /@typescript-eslint/parser@5.62.0(eslint@8.54.0)(typescript@4.9.5): + resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) + debug: 4.3.4 + eslint: 8.54.0 + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: false + + /@typescript-eslint/scope-manager@5.62.0: + resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + dev: false + + /@typescript-eslint/type-utils@5.62.0(eslint@8.54.0)(typescript@4.9.5): + resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) + '@typescript-eslint/utils': 5.62.0(eslint@8.54.0)(typescript@4.9.5) + debug: 4.3.4 + eslint: 8.54.0 + tsutils: 3.21.0(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: false + + /@typescript-eslint/types@5.62.0: + resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: false + + /@typescript-eslint/typescript-estree@5.62.0(typescript@4.9.5): + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + tsutils: 3.21.0(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: false + + /@typescript-eslint/utils@5.62.0(eslint@8.54.0)(typescript@4.9.5): + resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.6 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) + eslint: 8.54.0 + eslint-scope: 5.1.1 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: false + + /@typescript-eslint/visitor-keys@5.62.0: + resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.62.0 + eslint-visitor-keys: 3.4.3 + dev: false + + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + dev: false + + /@vitest/expect@0.34.6: + resolution: {integrity: sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw==} + dependencies: + '@vitest/spy': 0.34.6 + '@vitest/utils': 0.34.6 + chai: 4.3.10 + dev: false + + /@vitest/runner@0.34.6: + resolution: {integrity: sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==} + dependencies: + '@vitest/utils': 0.34.6 + p-limit: 4.0.0 + pathe: 1.1.1 + dev: false + + /@vitest/snapshot@0.34.6: + resolution: {integrity: sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==} + dependencies: + magic-string: 0.30.5 + pathe: 1.1.1 + pretty-format: 29.7.0 + dev: false + + /@vitest/spy@0.34.6: + resolution: {integrity: sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==} + dependencies: + tinyspy: 2.2.0 + dev: false + + /@vitest/utils@0.34.6: + resolution: {integrity: sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==} + dependencies: + diff-sequences: 29.6.3 + loupe: 2.3.7 + pretty-format: 29.7.0 + dev: false + + /acorn-jsx@5.3.2(acorn@8.11.2): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.11.2 + dev: false + + /acorn-walk@8.3.0: + resolution: {integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==} + engines: {node: '>=0.4.0'} + dev: false + + /acorn@8.11.2: + resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: false + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: false + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: false + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: false + + /ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + dev: false + + /any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + dev: false + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: false + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: false + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: false + + /assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + dev: false + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: false + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: false + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: false + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: false + + /bundle-require@4.0.2(esbuild@0.19.7): + resolution: {integrity: sha512-jwzPOChofl67PSTW2SGubV9HBQAhhR2i6nskiOThauo9dzwDUgOWQScFVaJkjEfYX+UXiD+LEx8EblQMc2wIag==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.17' + dependencies: + esbuild: 0.19.7 + load-tsconfig: 0.2.5 + dev: false + + /cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + dev: false + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: false + + /chai@4.3.10: + resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==} + engines: {node: '>=4'} + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.3 + deep-eql: 4.1.3 + get-func-name: 2.0.2 + loupe: 2.3.7 + pathval: 1.1.1 + type-detect: 4.0.8 + dev: false + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: false + + /check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + dependencies: + get-func-name: 2.0.2 + dev: false + + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + dev: false + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: false + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: false + + /commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + dev: false + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: false + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: false + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: false + + /deep-eql@4.1.3: + resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + engines: {node: '>=6'} + dependencies: + type-detect: 4.0.8 + dev: false + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: false + + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: false + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: false + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: false + + /esbuild@0.19.7: + resolution: {integrity: sha512-6brbTZVqxhqgbpqBR5MzErImcpA0SQdoKOkcWK/U30HtQxnokIpG3TX2r0IJqbFUzqLjhU/zC1S5ndgakObVCQ==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.19.7 + '@esbuild/android-arm64': 0.19.7 + '@esbuild/android-x64': 0.19.7 + '@esbuild/darwin-arm64': 0.19.7 + '@esbuild/darwin-x64': 0.19.7 + '@esbuild/freebsd-arm64': 0.19.7 + '@esbuild/freebsd-x64': 0.19.7 + '@esbuild/linux-arm': 0.19.7 + '@esbuild/linux-arm64': 0.19.7 + '@esbuild/linux-ia32': 0.19.7 + '@esbuild/linux-loong64': 0.19.7 + '@esbuild/linux-mips64el': 0.19.7 + '@esbuild/linux-ppc64': 0.19.7 + '@esbuild/linux-riscv64': 0.19.7 + '@esbuild/linux-s390x': 0.19.7 + '@esbuild/linux-x64': 0.19.7 + '@esbuild/netbsd-x64': 0.19.7 + '@esbuild/openbsd-x64': 0.19.7 + '@esbuild/sunos-x64': 0.19.7 + '@esbuild/win32-arm64': 0.19.7 + '@esbuild/win32-ia32': 0.19.7 + '@esbuild/win32-x64': 0.19.7 + dev: false + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: false + + /eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: false + + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: false + + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: false + + /eslint@8.54.0: + resolution: {integrity: sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@eslint-community/regexpp': 4.10.0 + '@eslint/eslintrc': 2.1.3 + '@eslint/js': 8.54.0 + '@humanwhocodes/config-array': 0.11.13 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.23.0 + graphemer: 1.4.0 + ignore: 5.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.3 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: false + + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.11.2 + acorn-jsx: 5.3.2(acorn@8.11.2) + eslint-visitor-keys: 3.4.3 + dev: false + + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: false + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: false + + /estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + dev: false + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: false + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: false + + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: false + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: false + + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: false + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: false + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: false + + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + dependencies: + reusify: 1.0.4 + dev: false + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.2.0 + dev: false + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: false + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: false + + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.2.9 + keyv: 4.5.4 + rimraf: 3.0.2 + dev: false + + /flatted@3.2.9: + resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + dev: false + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: false + + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + dev: false + + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: false + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: false + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: false + + /glob@7.1.6: + resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: false + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: false + + /globals@13.23.0: + resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: false + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.0 + merge2: 1.4.1 + slash: 3.0.0 + dev: false + + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: false + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: false + + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: false + + /ignore@5.3.0: + resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} + engines: {node: '>= 4'} + dev: false + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: false + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: false + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: false + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: false + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: false + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: false + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: false + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: false + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: false + + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: false + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: false + + /joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + dev: false + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: false + + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: false + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: false + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: false + + /jsonc-parser@3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + dev: false + + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + dependencies: + json-buffer: 3.0.1 + dev: false + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: false + + /lilconfig@3.0.0: + resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} + engines: {node: '>=14'} + dev: false + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: false + + /load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false + + /local-pkg@0.4.3: + resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} + engines: {node: '>=14'} + dev: false + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: false + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: false + + /lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + dev: false + + /loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + dependencies: + get-func-name: 2.0.2 + dev: false + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: false + + /magic-string@0.30.5: + resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: false + + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: false + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: false + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: false + + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: false + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: false + + /mlly@1.4.2: + resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} + dependencies: + acorn: 8.11.2 + pathe: 1.1.1 + pkg-types: 1.0.3 + ufo: 1.3.2 + dev: false + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: false + + /mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: false + + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: false + + /natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + dev: false + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: false + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: false + + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: false + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: false + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: false + + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: false + + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} + dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: false + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: false + + /p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + yocto-queue: 1.0.0 + dev: false + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: false + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: false + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: false + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: false + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: false + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: false + + /pathe@1.1.1: + resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} + dev: false + + /pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + dev: false + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: false + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: false + + /pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + dev: false + + /pkg-types@1.0.3: + resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} + dependencies: + jsonc-parser: 3.2.0 + mlly: 1.4.2 + pathe: 1.1.1 + dev: false + + /postcss-load-config@4.0.2: + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 3.0.0 + yaml: 2.3.4 + dev: false + + /postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: false + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: false + + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.2.0 + dev: false + + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + dev: false + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: false + + /react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + dev: false + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: false + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: false + + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: false + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: false + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: false + + /rollup@4.5.0: + resolution: {integrity: sha512-41xsWhzxqjMDASCxH5ibw1mXk+3c4TNI2UjKbLxe6iEzrSQnqOzmmK8/3mufCPbzHNJ2e04Fc1ddI35hHy+8zg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.5.0 + '@rollup/rollup-android-arm64': 4.5.0 + '@rollup/rollup-darwin-arm64': 4.5.0 + '@rollup/rollup-darwin-x64': 4.5.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.5.0 + '@rollup/rollup-linux-arm64-gnu': 4.5.0 + '@rollup/rollup-linux-arm64-musl': 4.5.0 + '@rollup/rollup-linux-x64-gnu': 4.5.0 + '@rollup/rollup-linux-x64-musl': 4.5.0 + '@rollup/rollup-win32-arm64-msvc': 4.5.0 + '@rollup/rollup-win32-ia32-msvc': 4.5.0 + '@rollup/rollup-win32-x64-msvc': 4.5.0 + fsevents: 2.3.3 + dev: false + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: false + + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: false + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: false + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: false + + /siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + dev: false + + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: false + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: false + + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: false + + /source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + dependencies: + whatwg-url: 7.1.0 + dev: false + + /stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + dev: false + + /std-env@3.5.0: + resolution: {integrity: sha512-JGUEaALvL0Mf6JCfYnJOTcobY+Nc7sG/TemDRBqCA0wEr4DER7zDchaaixTlmOxAjG1uRJmX82EQcxwTQTkqVA==} + dev: false + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: false + + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: false + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: false + + /strip-literal@1.3.0: + resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} + dependencies: + acorn: 8.11.2 + dev: false + + /sucrase@3.34.0: + resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} + engines: {node: '>=8'} + hasBin: true + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + commander: 4.1.1 + glob: 7.1.6 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + dev: false + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: false + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: false + + /thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + dev: false + + /thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + dev: false + + /tinybench@2.5.1: + resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==} + dev: false + + /tinypool@0.7.0: + resolution: {integrity: sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==} + engines: {node: '>=14.0.0'} + dev: false + + /tinyspy@2.2.0: + resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} + engines: {node: '>=14.0.0'} + dev: false + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: false + + /tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + dependencies: + punycode: 2.3.1 + dev: false + + /tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + dev: false + + /ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + dev: false + + /tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: false + + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + dev: false + + /tsup@8.0.1(typescript@4.9.5): + resolution: {integrity: sha512-hvW7gUSG96j53ZTSlT4j/KL0q1Q2l6TqGBFc6/mu/L46IoNWqLLUzLRLP1R8Q7xrJTmkDxxDoojV5uCVs1sVOg==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + '@microsoft/api-extractor': ^7.36.0 + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.5.0' + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + dependencies: + bundle-require: 4.0.2(esbuild@0.19.7) + cac: 6.7.14 + chokidar: 3.5.3 + debug: 4.3.4 + esbuild: 0.19.7 + execa: 5.1.1 + globby: 11.1.0 + joycon: 3.1.1 + postcss-load-config: 4.0.2 + resolve-from: 5.0.0 + rollup: 4.5.0 + source-map: 0.8.0-beta.0 + sucrase: 3.34.0 + tree-kill: 1.2.2 + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + - ts-node + dev: false + + /tsutils@3.21.0(typescript@4.9.5): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 4.9.5 + dev: false + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: false + + /type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + dev: false + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: false + + /typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: false + + /ufo@1.3.2: + resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} + dev: false + + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + dev: false + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.1 + dev: false + + /vite-node@0.34.6(@types/node@20.11.18): + resolution: {integrity: sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==} + engines: {node: '>=v14.18.0'} + hasBin: true + dependencies: + cac: 6.7.14 + debug: 4.3.4 + mlly: 1.4.2 + pathe: 1.1.1 + picocolors: 1.0.0 + vite: 5.0.2(@types/node@20.11.18) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: false + + /vite@5.0.2(@types/node@20.11.18): + resolution: {integrity: sha512-6CCq1CAJCNM1ya2ZZA7+jS2KgnhbzvxakmlIjN24cF/PXhRMzpM/z8QgsVJA/Dm5fWUWnVEsmtBoMhmerPxT0g==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 20.11.18 + esbuild: 0.19.7 + postcss: 8.4.31 + rollup: 4.5.0 + optionalDependencies: + fsevents: 2.3.3 + dev: false + + /vitest@0.34.6: + resolution: {integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==} + engines: {node: '>=v14.18.0'} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@vitest/browser': '*' + '@vitest/ui': '*' + happy-dom: '*' + jsdom: '*' + playwright: '*' + safaridriver: '*' + webdriverio: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + playwright: + optional: true + safaridriver: + optional: true + webdriverio: + optional: true + dependencies: + '@types/chai': 4.3.11 + '@types/chai-subset': 1.3.5 + '@types/node': 20.11.18 + '@vitest/expect': 0.34.6 + '@vitest/runner': 0.34.6 + '@vitest/snapshot': 0.34.6 + '@vitest/spy': 0.34.6 + '@vitest/utils': 0.34.6 + acorn: 8.11.2 + acorn-walk: 8.3.0 + cac: 6.7.14 + chai: 4.3.10 + debug: 4.3.4 + local-pkg: 0.4.3 + magic-string: 0.30.5 + pathe: 1.1.1 + picocolors: 1.0.0 + std-env: 3.5.0 + strip-literal: 1.3.0 + tinybench: 2.5.1 + tinypool: 0.7.0 + vite: 5.0.2(@types/node@20.11.18) + vite-node: 0.34.6(@types/node@20.11.18) + why-is-node-running: 2.2.2 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: false + + /webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + dev: false + + /whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + dev: false + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: false + + /why-is-node-running@2.2.2: + resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + engines: {node: '>=8'} + hasBin: true + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + dev: false + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: false + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: false + + /yaml@2.3.4: + resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} + engines: {node: '>= 14'} + dev: false + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: false + + /yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + dev: false diff --git a/javascript/examples/ts-monorepo/pnpm-workspace.yaml b/javascript/examples/ts-monorepo/pnpm-workspace.yaml new file mode 100644 index 0000000..4340350 --- /dev/null +++ b/javascript/examples/ts-monorepo/pnpm-workspace.yaml @@ -0,0 +1,2 @@ +packages: + - 'packages/*' \ No newline at end of file diff --git a/javascript/examples/ts-monorepo/tsconfig.json b/javascript/examples/ts-monorepo/tsconfig.json index 5679481..90881c3 100644 --- a/javascript/examples/ts-monorepo/tsconfig.json +++ b/javascript/examples/ts-monorepo/tsconfig.json @@ -1,101 +1,10 @@ { "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ - - /* Projects */ - // "incremental": true, /* Enable incremental compilation */ - // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ - // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ - // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ - - /* Language and Environment */ "target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ - // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ - // "jsx": "preserve", /* Specify what JSX code is generated. */ - // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ - // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ - // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ - // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ - // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ - // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ - - /* Modules */ "module": "commonjs", /* Specify what module code is generated. */ - // "rootDir": "./", /* Specify the root folder within your source files. */ - // "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ - // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ - // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ - // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ - // "types": [], /* Specify type package names to be included without being referenced in a source file. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "resolveJsonModule": true, /* Enable importing .json files */ - // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ - - /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ - // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ - - /* Emit */ - // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ - // "declarationMap": true, /* Create sourcemaps for d.ts files. */ - // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ - // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ - // "outDir": "./", /* Specify an output folder for all emitted files. */ - // "removeComments": true, /* Disable emitting comments. */ - // "noEmit": true, /* Disable emitting files from a compilation. */ - // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ - // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ - // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ - // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ - // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ - // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ - // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ - // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ - // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ - - /* Interop Constraints */ - // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ - // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */ - // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ - - /* Type Checking */ "strict": true, /* Enable all strict type-checking options. */ - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ - // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ - // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ - // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ - // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ - // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ - // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ - // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ - // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ - // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ - // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ - // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ - - /* Completeness */ - // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ "skipLibCheck": true /* Skip type checking all .d.ts files. */ } } diff --git a/javascript/examples/ts-monorepo/tsup.config.ts b/javascript/examples/ts-monorepo/tsup.config.ts new file mode 100644 index 0000000..f06da77 --- /dev/null +++ b/javascript/examples/ts-monorepo/tsup.config.ts @@ -0,0 +1,110 @@ +import { defineConfig, Options } from "tsup"; +import path from "path"; +import fs from "fs"; + +// Using the work from mark +// https://github.com/reduxjs/redux/blob/c9e06506f88926e252daf5275495eba0c04bf8e3/tsup.config.ts#L2 +// https://blog.isquaredsoftware.com/2023/08/esm-modernization-lessons/ + +/** Adds support for replacing process.env.* references with stamped values from bazel */ +function getStampedSubstitutions(): Record { + const contextDir = path.join( + process.env.BAZEL_BINDIR ?? "", + process.env.BAZEL_PACKAGE ?? "" + ); + const contextDirRelative = contextDir.split(path.sep).map(() => ".."); + const rootDir = path.join(process.cwd(), ...contextDirRelative); + + if ( + !process.env.BAZEL_STABLE_STATUS_FILE || + !process.env.BAZEL_VOLATILE_STATUS_FILE + ) { + return {}; + } + + const stableStatusFile = path.join( + rootDir, + process.env.BAZEL_STABLE_STATUS_FILE + ); + + const volatileStatusFile = path.join( + rootDir, + process.env.BAZEL_VOLATILE_STATUS_FILE + ); + + const customSubstitutions = JSON.parse( + process.env.STAMP_SUBSTITUTIONS ?? "{}" + ); + + const substitutions: Record = {}; + + [stableStatusFile, volatileStatusFile].forEach((statusFile) => { + if (!fs.existsSync(statusFile)) { + return; + } + + const contents = fs.readFileSync(statusFile, "utf-8"); + + contents.split("\n").forEach((statusLine) => { + if (!statusLine.trim()) { + return; + } + + const firstSpace = statusLine.indexOf(" "); + const varName = statusLine.substring(0, firstSpace); + const varVal = statusLine.substring(firstSpace + 1); + + substitutions[`process.env.${varName}`] = JSON.stringify(varVal); + + Object.entries(customSubstitutions).forEach(([key, value]) => { + if (value === `{${varName}}`) { + substitutions[key] = JSON.stringify(varVal); + } + }); + }); + }); + + return substitutions; +} + +export function createConfig() { + return defineConfig((options: Options) => { + const defaultOptions: Options = { + entry: ["src/index.ts"], + dts: true, + sourcemap: true, + define: getStampedSubstitutions(), + ...options, + }; + + return [ + { + ...defaultOptions, + format: ["esm"], + outExtension: () => ({ js: ".mjs" }), + dts: true, + clean: true, + onSuccess() { + // Support Webpack 4 by pointing `"module"` to a file with a `.js` extension + fs.copyFileSync("dist/index.mjs", "dist/index.legacy-esm.js"); + }, + }, + // Browser-ready ESM, production + minified + { + ...defaultOptions, + define: { + ...defaultOptions.define, + "process.env.NODE_ENV": JSON.stringify("production"), + }, + format: ["esm"], + outExtension: () => ({ js: ".mjs" }), + }, + { + ...defaultOptions, + format: "cjs", + outDir: "./dist/cjs/", + outExtension: () => ({ js: ".cjs" }), + }, + ]; + }); +} diff --git a/javascript/examples/ts-monorepo/vitest.config.ts b/javascript/examples/ts-monorepo/vitest.config.ts new file mode 100644 index 0000000..de462b9 --- /dev/null +++ b/javascript/examples/ts-monorepo/vitest.config.ts @@ -0,0 +1,26 @@ +import { defineConfig } from 'vitest/config'; +import path from 'node:path'; + +const COVERAGE_OUTPUT_FILE = path.relative( + process.cwd(), + process.env.COVERAGE_OUTPUT_FILE ?? 'coverage.dat' +); + +export default defineConfig({ + test: { + reporters: ['default', 'junit'], + outputFile: { + junit: process.env.XML_OUTPUT_FILE ?? 'test-results.xml', + }, + + passWithNoTests: true, + + coverage: { + enabled: Boolean(process.env.COVERAGE_OUTPUT_FILE), + reportOnFailure: true, + provider: 'v8', + reportsDirectory: 'coverage_test', + reporter: ['text', 'html', ['lcovonly', { file: COVERAGE_OUTPUT_FILE }]], + }, + }, +}); diff --git a/javascript/examples/ts-monorepo/workspace_status.sh b/javascript/examples/ts-monorepo/workspace_status.sh new file mode 100755 index 0000000..1526798 --- /dev/null +++ b/javascript/examples/ts-monorepo/workspace_status.sh @@ -0,0 +1 @@ +echo 'STABLE_VERSION 1.1.1' \ No newline at end of file diff --git a/javascript/examples/ts-monorepo/yarn.lock b/javascript/examples/ts-monorepo/yarn.lock deleted file mode 100644 index 8ec8112..0000000 --- a/javascript/examples/ts-monorepo/yarn.lock +++ /dev/null @@ -1,4798 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/code-frame@^7.0.0": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" - integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== - dependencies: - "@babel/highlight" "^7.16.7" - -"@babel/code-frame@^7.12.13", "@babel/code-frame@^7.14.5", "@babel/code-frame@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.0.tgz#0dfc80309beec8411e65e706461c408b0bb9b431" - integrity sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA== - dependencies: - "@babel/highlight" "^7.16.0" - -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.0", "@babel/compat-data@^7.16.4": - version "7.16.4" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.4.tgz#081d6bbc336ec5c2435c6346b2ae1fb98b5ac68e" - integrity sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q== - -"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.2", "@babel/core@^7.7.5": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.0.tgz#c4ff44046f5fe310525cc9eb4ef5147f0c5374d4" - integrity sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ== - dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/generator" "^7.16.0" - "@babel/helper-compilation-targets" "^7.16.0" - "@babel/helper-module-transforms" "^7.16.0" - "@babel/helpers" "^7.16.0" - "@babel/parser" "^7.16.0" - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.0" - "@babel/types" "^7.16.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" - source-map "^0.5.0" - -"@babel/eslint-parser@^7.15.8": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz#eabb24ad9f0afa80e5849f8240d0e5facc2d90d6" - integrity sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA== - dependencies: - eslint-scope "^5.1.1" - eslint-visitor-keys "^2.1.0" - semver "^6.3.0" - -"@babel/generator@^7.16.0", "@babel/generator@^7.7.2": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.0.tgz#d40f3d1d5075e62d3500bccb67f3daa8a95265b2" - integrity sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew== - dependencies: - "@babel/types" "^7.16.0" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/helper-annotate-as-pure@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.0.tgz#9a1f0ebcda53d9a2d00108c4ceace6a5d5f1f08d" - integrity sha512-ItmYF9vR4zA8cByDocY05o0LGUkp1zhbTQOH1NFyl5xXEqlTJQCEJjieriw+aFpxo16swMxUnUiKS7a/r4vtHg== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.0.tgz#f1a686b92da794020c26582eb852e9accd0d7882" - integrity sha512-9KuleLT0e77wFUku6TUkqZzCEymBdtuQQ27MhEKzf9UOOJu3cYj98kyaDAzxpC7lV6DGiZFuC8XqDsq8/Kl6aQ== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.16.0" - "@babel/types" "^7.16.0" - -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.0", "@babel/helper-compilation-targets@^7.16.3": - version "7.16.3" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz#5b480cd13f68363df6ec4dc8ac8e2da11363cbf0" - integrity sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA== - dependencies: - "@babel/compat-data" "^7.16.0" - "@babel/helper-validator-option" "^7.14.5" - browserslist "^4.17.5" - semver "^6.3.0" - -"@babel/helper-create-class-features-plugin@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.0.tgz#090d4d166b342a03a9fec37ef4fd5aeb9c7c6a4b" - integrity sha512-XLwWvqEaq19zFlF5PTgOod4bUA+XbkR4WLQBct1bkzmxJGB0ZEJaoKF4c8cgH9oBtCDuYJ8BP5NB9uFiEgO5QA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - "@babel/helper-function-name" "^7.16.0" - "@babel/helper-member-expression-to-functions" "^7.16.0" - "@babel/helper-optimise-call-expression" "^7.16.0" - "@babel/helper-replace-supers" "^7.16.0" - "@babel/helper-split-export-declaration" "^7.16.0" - -"@babel/helper-create-regexp-features-plugin@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.0.tgz#06b2348ce37fccc4f5e18dcd8d75053f2a7c44ff" - integrity sha512-3DyG0zAFAZKcOp7aVr33ddwkxJ0Z0Jr5V99y3I690eYLpukJsJvAbzTy1ewoCqsML8SbIrjH14Jc/nSQ4TvNPA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - regexpu-core "^4.7.1" - -"@babel/helper-define-polyfill-provider@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz#c5b10cf4b324ff840140bb07e05b8564af2ae971" - integrity sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg== - dependencies: - "@babel/helper-compilation-targets" "^7.13.0" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/traverse" "^7.13.0" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - semver "^6.1.2" - -"@babel/helper-explode-assignable-expression@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.0.tgz#753017337a15f46f9c09f674cff10cee9b9d7778" - integrity sha512-Hk2SLxC9ZbcOhLpg/yMznzJ11W++lg5GMbxt1ev6TXUiJB0N42KPC+7w8a+eWGuqDnUYuwStJoZHM7RgmIOaGQ== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-function-name@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz#b7dd0797d00bbfee4f07e9c4ea5b0e30c8bb1481" - integrity sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog== - dependencies: - "@babel/helper-get-function-arity" "^7.16.0" - "@babel/template" "^7.16.0" - "@babel/types" "^7.16.0" - -"@babel/helper-get-function-arity@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz#0088c7486b29a9cb5d948b1a1de46db66e089cfa" - integrity sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-hoist-variables@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz#4c9023c2f1def7e28ff46fc1dbcd36a39beaa81a" - integrity sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-member-expression-to-functions@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz#29287040efd197c77636ef75188e81da8bccd5a4" - integrity sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz#90538e60b672ecf1b448f5f4f5433d37e79a3ec3" - integrity sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-module-transforms@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz#1c82a8dd4cb34577502ebd2909699b194c3e9bb5" - integrity sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA== - dependencies: - "@babel/helper-module-imports" "^7.16.0" - "@babel/helper-replace-supers" "^7.16.0" - "@babel/helper-simple-access" "^7.16.0" - "@babel/helper-split-export-declaration" "^7.16.0" - "@babel/helper-validator-identifier" "^7.15.7" - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.0" - "@babel/types" "^7.16.0" - -"@babel/helper-optimise-call-expression@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz#cecdb145d70c54096b1564f8e9f10cd7d193b338" - integrity sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" - integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== - -"@babel/helper-remap-async-to-generator@^7.16.0", "@babel/helper-remap-async-to-generator@^7.16.4": - version "7.16.4" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.4.tgz#5d7902f61349ff6b963e07f06a389ce139fbfe6e" - integrity sha512-vGERmmhR+s7eH5Y/cp8PCVzj4XEjerq8jooMfxFdA5xVtAk9Sh4AQsrWgiErUEBjtGrBtOFKDUcWQFW4/dFwMA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - "@babel/helper-wrap-function" "^7.16.0" - "@babel/types" "^7.16.0" - -"@babel/helper-replace-supers@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz#73055e8d3cf9bcba8ddb55cad93fedc860f68f17" - integrity sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.16.0" - "@babel/helper-optimise-call-expression" "^7.16.0" - "@babel/traverse" "^7.16.0" - "@babel/types" "^7.16.0" - -"@babel/helper-simple-access@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz#21d6a27620e383e37534cf6c10bba019a6f90517" - integrity sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-skip-transparent-expression-wrappers@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09" - integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-split-export-declaration@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz#29672f43663e936df370aaeb22beddb3baec7438" - integrity sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-validator-identifier@^7.15.7": - version "7.15.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" - integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== - -"@babel/helper-validator-identifier@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" - integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== - -"@babel/helper-validator-option@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" - integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== - -"@babel/helper-wrap-function@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.0.tgz#b3cf318afce774dfe75b86767cd6d68f3482e57c" - integrity sha512-VVMGzYY3vkWgCJML+qVLvGIam902mJW0FvT7Avj1zEe0Gn7D93aWdLblYARTxEw+6DhZmtzhBM2zv0ekE5zg1g== - dependencies: - "@babel/helper-function-name" "^7.16.0" - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.0" - "@babel/types" "^7.16.0" - -"@babel/helpers@^7.16.0": - version "7.16.3" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.3.tgz#27fc64f40b996e7074dc73128c3e5c3e7f55c43c" - integrity sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w== - dependencies: - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.3" - "@babel/types" "^7.16.0" - -"@babel/highlight@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.0.tgz#6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a" - integrity sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g== - dependencies: - "@babel/helper-validator-identifier" "^7.15.7" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/highlight@^7.16.7": - version "7.16.10" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" - integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw== - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.0", "@babel/parser@^7.16.3", "@babel/parser@^7.7.2": - version "7.16.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.4.tgz#d5f92f57cf2c74ffe9b37981c0e72fee7311372e" - integrity sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng== - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.2": - version "7.16.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2.tgz#2977fca9b212db153c195674e57cfab807733183" - integrity sha512-h37CvpLSf8gb2lIJ2CgC3t+EjFbi0t8qS7LCS1xcJIlEXE4czlofwaW7W1HA8zpgOCzI9C1nmoqNR1zWkk0pQg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0.tgz#358972eaab006f5eb0826183b0c93cbcaf13e1e2" - integrity sha512-4tcFwwicpWTrpl9qjf7UsoosaArgImF85AxqCRZlgc3IQDvkUHjJpruXAL58Wmj+T6fypWTC/BakfEkwIL/pwA== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - "@babel/plugin-proposal-optional-chaining" "^7.16.0" - -"@babel/plugin-proposal-async-generator-functions@^7.16.4": - version "7.16.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.4.tgz#e606eb6015fec6fa5978c940f315eae4e300b081" - integrity sha512-/CUekqaAaZCQHleSK/9HajvcD/zdnJiKRiuUFq8ITE+0HsPzquf53cpFiqAwl/UfmJbR6n5uGPQSPdrmKOvHHg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-remap-async-to-generator" "^7.16.4" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-proposal-class-properties@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.0.tgz#c029618267ddebc7280fa286e0f8ca2a278a2d1a" - integrity sha512-mCF3HcuZSY9Fcx56Lbn+CGdT44ioBMMvjNVldpKtj8tpniETdLjnxdHI1+sDWXIM1nNt+EanJOZ3IG9lzVjs7A== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-proposal-class-static-block@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.0.tgz#5296942c564d8144c83eea347d0aa8a0b89170e7" - integrity sha512-mAy3sdcY9sKAkf3lQbDiv3olOfiLqI51c9DR9b19uMoR2Z6r5pmGl7dfNFqEvqOyqbf1ta4lknK4gc5PJn3mfA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - -"@babel/plugin-proposal-dynamic-import@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.0.tgz#783eca61d50526202f9b296095453977e88659f1" - integrity sha512-QGSA6ExWk95jFQgwz5GQ2Dr95cf7eI7TKutIXXTb7B1gCLTCz5hTjFTQGfLFBBiC5WSNi7udNwWsqbbMh1c4yQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-proposal-export-namespace-from@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.0.tgz#9c01dee40b9d6b847b656aaf4a3976a71740f222" - integrity sha512-CjI4nxM/D+5wCnhD11MHB1AwRSAYeDT+h8gCdcVJZ/OK7+wRzFsf7PFPWVpVpNRkHMmMkQWAHpTq+15IXQ1diA== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-proposal-json-strings@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.0.tgz#cae35a95ed1d2a7fa29c4dc41540b84a72e9ab25" - integrity sha512-kouIPuiv8mSi5JkEhzApg5Gn6hFyKPnlkO0a9YSzqRurH8wYzSlf6RJdzluAsbqecdW5pBvDJDfyDIUR/vLxvg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-proposal-logical-assignment-operators@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.0.tgz#a711b8ceb3ffddd3ef88d3a49e86dbd3cc7db3fd" - integrity sha512-pbW0fE30sVTYXXm9lpVQQ/Vc+iTeQKiXlaNRZPPN2A2VdlWyAtsUrsQ3xydSlDW00TFMK7a8m3cDTkBF5WnV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.0.tgz#44e1cce08fe2427482cf446a91bb451528ed0596" - integrity sha512-3bnHA8CAFm7cG93v8loghDYyQ8r97Qydf63BeYiGgYbjKKB/XP53W15wfRC7dvKfoiJ34f6Rbyyx2btExc8XsQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-proposal-numeric-separator@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.0.tgz#5d418e4fbbf8b9b7d03125d3a52730433a373734" - integrity sha512-FAhE2I6mjispy+vwwd6xWPyEx3NYFS13pikDBWUAFGZvq6POGs5eNchw8+1CYoEgBl9n11I3NkzD7ghn25PQ9Q== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.0.tgz#5fb32f6d924d6e6712810362a60e12a2609872e6" - integrity sha512-LU/+jp89efe5HuWJLmMmFG0+xbz+I2rSI7iLc1AlaeSMDMOGzWlc5yJrMN1d04osXN4sSfpo4O+azkBNBes0jg== - dependencies: - "@babel/compat-data" "^7.16.0" - "@babel/helper-compilation-targets" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.16.0" - -"@babel/plugin-proposal-optional-catch-binding@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.0.tgz#5910085811ab4c28b00d6ebffa4ab0274d1e5f16" - integrity sha512-kicDo0A/5J0nrsCPbn89mTG3Bm4XgYi0CZtvex9Oyw7gGZE3HXGD0zpQNH+mo+tEfbo8wbmMvJftOwpmPy7aVw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.0.tgz#56dbc3970825683608e9efb55ea82c2a2d6c8dc0" - integrity sha512-Y4rFpkZODfHrVo70Uaj6cC1JJOt3Pp0MdWSwIKtb8z1/lsjl9AmnB7ErRFV+QNGIfcY1Eruc2UMx5KaRnXjMyg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -"@babel/plugin-proposal-private-methods@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.0.tgz#b4dafb9c717e4301c5776b30d080d6383c89aff6" - integrity sha512-IvHmcTHDFztQGnn6aWq4t12QaBXTKr1whF/dgp9kz84X6GUcwq9utj7z2wFCUfeOup/QKnOlt2k0zxkGFx9ubg== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-proposal-private-property-in-object@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.0.tgz#69e935b2c5c79d2488112d886f0c4e2790fee76f" - integrity sha512-3jQUr/HBbMVZmi72LpjQwlZ55i1queL8KcDTQEkAHihttJnAPrcvG9ZNXIfsd2ugpizZo595egYV6xy+pv4Ofw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - "@babel/helper-create-class-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - -"@babel/plugin-proposal-unicode-property-regex@^7.16.0", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.0.tgz#890482dfc5ea378e42e19a71e709728cabf18612" - integrity sha512-ti7IdM54NXv29cA4+bNNKEMS4jLMCbJgl+Drv+FgYy0erJLAxNAIXcNjNjrRZEcWq0xJHsNVwQezskMFpF8N9g== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - -"@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-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": - 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.12.13" - -"@babel/plugin-syntax-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" - integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@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-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.8.3" - -"@babel/plugin-syntax-import-meta@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@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-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - 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.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": - 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.10.4" - -"@babel/plugin-syntax-object-rest-spread@^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== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^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== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" - integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-typescript@^7.16.0", "@babel/plugin-syntax-typescript@^7.7.2": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.0.tgz#2feeb13d9334cc582ea9111d3506f773174179bb" - integrity sha512-Xv6mEXqVdaqCBfJFyeab0fH2DnUoMsDmhamxsSi4j8nLd4Vtw213WMJr55xxqipC/YVWyPY3K0blJncPYji+dQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-arrow-functions@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.0.tgz#951706f8b449c834ed07bd474c0924c944b95a8e" - integrity sha512-vIFb5250Rbh7roWARvCLvIJ/PtAU5Lhv7BtZ1u24COwpI9Ypjsh+bZcKk6rlIyalK+r0jOc1XQ8I4ovNxNrWrA== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-async-to-generator@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.0.tgz#df12637f9630ddfa0ef9d7a11bc414d629d38604" - integrity sha512-PbIr7G9kR8tdH6g8Wouir5uVjklETk91GMVSUq+VaOgiinbCkBP6Q7NN/suM/QutZkMJMvcyAriogcYAdhg8Gw== - dependencies: - "@babel/helper-module-imports" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-remap-async-to-generator" "^7.16.0" - -"@babel/plugin-transform-block-scoped-functions@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.0.tgz#c618763233ad02847805abcac4c345ce9de7145d" - integrity sha512-V14As3haUOP4ZWrLJ3VVx5rCnrYhMSHN/jX7z6FAt5hjRkLsb0snPCmJwSOML5oxkKO4FNoNv7V5hw/y2bjuvg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-block-scoping@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.0.tgz#bcf433fb482fe8c3d3b4e8a66b1c4a8e77d37c16" - integrity sha512-27n3l67/R3UrXfizlvHGuTwsRIFyce3D/6a37GRxn28iyTPvNXaW4XvznexRh1zUNLPjbLL22Id0XQElV94ruw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-classes@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.0.tgz#54cf5ff0b2242c6573d753cd4bfc7077a8b282f5" - integrity sha512-HUxMvy6GtAdd+GKBNYDWCIA776byUQH8zjnfjxwT1P1ARv/wFu8eBDpmXQcLS/IwRtrxIReGiplOwMeyO7nsDQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - "@babel/helper-function-name" "^7.16.0" - "@babel/helper-optimise-call-expression" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-replace-supers" "^7.16.0" - "@babel/helper-split-export-declaration" "^7.16.0" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.0.tgz#e0c385507d21e1b0b076d66bed6d5231b85110b7" - integrity sha512-63l1dRXday6S8V3WFY5mXJwcRAnPYxvFfTlt67bwV1rTyVTM5zrp0DBBb13Kl7+ehkCVwIZPumPpFP/4u70+Tw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-destructuring@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.0.tgz#ad3d7e74584ad5ea4eadb1e6642146c590dee33c" - integrity sha512-Q7tBUwjxLTsHEoqktemHBMtb3NYwyJPTJdM+wDwb0g8PZ3kQUIzNvwD5lPaqW/p54TXBc/MXZu9Jr7tbUEUM8Q== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-dotall-regex@^7.16.0", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.0.tgz#50bab00c1084b6162d0a58a818031cf57798e06f" - integrity sha512-FXlDZfQeLILfJlC6I1qyEwcHK5UpRCFkaoVyA1nk9A1L1Yu583YO4un2KsLBsu3IJb4CUbctZks8tD9xPQubLw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-duplicate-keys@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.0.tgz#8bc2e21813e3e89e5e5bf3b60aa5fc458575a176" - integrity sha512-LIe2kcHKAZOJDNxujvmp6z3mfN6V9lJxubU4fJIGoQCkKe3Ec2OcbdlYP+vW++4MpxwG0d1wSDOJtQW5kLnkZQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-exponentiation-operator@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.0.tgz#a180cd2881e3533cef9d3901e48dad0fbeff4be4" - integrity sha512-OwYEvzFI38hXklsrbNivzpO3fh87skzx8Pnqi4LoSYeav0xHlueSoCJrSgTPfnbyzopo5b3YVAJkFIcUpK2wsw== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-for-of@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.0.tgz#f7abaced155260e2461359bbc7c7248aca5e6bd2" - integrity sha512-5QKUw2kO+GVmKr2wMYSATCTTnHyscl6sxFRAY+rvN7h7WB0lcG0o4NoV6ZQU32OZGVsYUsfLGgPQpDFdkfjlJQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-function-name@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.0.tgz#02e3699c284c6262236599f751065c5d5f1f400e" - integrity sha512-lBzMle9jcOXtSOXUpc7tvvTpENu/NuekNJVova5lCCWCV9/U1ho2HH2y0p6mBg8fPm/syEAbfaaemYGOHCY3mg== - dependencies: - "@babel/helper-function-name" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-literals@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.0.tgz#79711e670ffceb31bd298229d50f3621f7980cac" - integrity sha512-gQDlsSF1iv9RU04clgXqRjrPyyoJMTclFt3K1cjLmTKikc0s/6vE3hlDeEVC71wLTRu72Fq7650kABrdTc2wMQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-member-expression-literals@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.0.tgz#5251b4cce01eaf8314403d21aedb269d79f5e64b" - integrity sha512-WRpw5HL4Jhnxw8QARzRvwojp9MIE7Tdk3ez6vRyUk1MwgjJN0aNpRoXainLR5SgxmoXx/vsXGZ6OthP6t/RbUg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-modules-amd@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.0.tgz#09abd41e18dcf4fd479c598c1cef7bd39eb1337e" - integrity sha512-rWFhWbCJ9Wdmzln1NmSCqn7P0RAD+ogXG/bd9Kg5c7PKWkJtkiXmYsMBeXjDlzHpVTJ4I/hnjs45zX4dEv81xw== - dependencies: - "@babel/helper-module-transforms" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-commonjs@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.0.tgz#add58e638c8ddc4875bd9a9ecb5c594613f6c922" - integrity sha512-Dzi+NWqyEotgzk/sb7kgQPJQf7AJkQBWsVp1N6JWc1lBVo0vkElUnGdr1PzUBmfsCCN5OOFya3RtpeHk15oLKQ== - dependencies: - "@babel/helper-module-transforms" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-simple-access" "^7.16.0" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-systemjs@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.0.tgz#a92cf240afeb605f4ca16670453024425e421ea4" - integrity sha512-yuGBaHS3lF1m/5R+6fjIke64ii5luRUg97N2wr+z1sF0V+sNSXPxXDdEEL/iYLszsN5VKxVB1IPfEqhzVpiqvg== - dependencies: - "@babel/helper-hoist-variables" "^7.16.0" - "@babel/helper-module-transforms" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-validator-identifier" "^7.15.7" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-umd@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.0.tgz#195f26c2ad6d6a391b70880effce18ce625e06a7" - integrity sha512-nx4f6no57himWiHhxDM5pjwhae5vLpTK2zCnDH8+wNLJy0TVER/LJRHl2bkt6w9Aad2sPD5iNNoUpY3X9sTGDg== - dependencies: - "@babel/helper-module-transforms" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.0.tgz#d3db61cc5d5b97986559967cd5ea83e5c32096ca" - integrity sha512-LogN88uO+7EhxWc8WZuQ8vxdSyVGxhkh8WTC3tzlT8LccMuQdA81e9SGV6zY7kY2LjDhhDOFdQVxdGwPyBCnvg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.0" - -"@babel/plugin-transform-new-target@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.0.tgz#af823ab576f752215a49937779a41ca65825ab35" - integrity sha512-fhjrDEYv2DBsGN/P6rlqakwRwIp7rBGLPbrKxwh7oVt5NNkIhZVOY2GRV+ULLsQri1bDqwDWnU3vhlmx5B2aCw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-object-super@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.0.tgz#fb20d5806dc6491a06296ac14ea8e8d6fedda72b" - integrity sha512-fds+puedQHn4cPLshoHcR1DTMN0q1V9ou0mUjm8whx9pGcNvDrVVrgw+KJzzCaiTdaYhldtrUps8DWVMgrSEyg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-replace-supers" "^7.16.0" - -"@babel/plugin-transform-parameters@^7.16.0", "@babel/plugin-transform-parameters@^7.16.3": - version "7.16.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.3.tgz#fa9e4c874ee5223f891ee6fa8d737f4766d31d15" - integrity sha512-3MaDpJrOXT1MZ/WCmkOFo7EtmVVC8H4EUZVrHvFOsmwkk4lOjQj8rzv8JKUZV4YoQKeoIgk07GO+acPU9IMu/w== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-property-literals@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.0.tgz#a95c552189a96a00059f6776dc4e00e3690c78d1" - integrity sha512-XLldD4V8+pOqX2hwfWhgwXzGdnDOThxaNTgqagOcpBgIxbUvpgU2FMvo5E1RyHbk756WYgdbS0T8y0Cj9FKkWQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-regenerator@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.0.tgz#eaee422c84b0232d03aea7db99c97deeaf6125a4" - integrity sha512-JAvGxgKuwS2PihiSFaDrp94XOzzTUeDeOQlcKzVAyaPap7BnZXK/lvMDiubkPTdotPKOIZq9xWXWnggUMYiExg== - dependencies: - regenerator-transform "^0.14.2" - -"@babel/plugin-transform-reserved-words@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.0.tgz#fff4b9dcb19e12619394bda172d14f2d04c0379c" - integrity sha512-Dgs8NNCehHSvXdhEhln8u/TtJxfVwGYCgP2OOr5Z3Ar+B+zXicEOKNTyc+eca2cuEOMtjW6m9P9ijOt8QdqWkg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-shorthand-properties@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.0.tgz#090372e3141f7cc324ed70b3daf5379df2fa384d" - integrity sha512-iVb1mTcD8fuhSv3k99+5tlXu5N0v8/DPm2mO3WACLG6al1CGZH7v09HJyUb1TtYl/Z+KrM6pHSIJdZxP5A+xow== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-spread@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.0.tgz#d21ca099bbd53ab307a8621e019a7bd0f40cdcfb" - integrity sha512-Ao4MSYRaLAQczZVp9/7E7QHsCuK92yHRrmVNRe/SlEJjhzivq0BSn8mEraimL8wizHZ3fuaHxKH0iwzI13GyGg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - -"@babel/plugin-transform-sticky-regex@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.0.tgz#c35ea31a02d86be485f6aa510184b677a91738fd" - integrity sha512-/ntT2NljR9foobKk4E/YyOSwcGUXtYWv5tinMK/3RkypyNBNdhHUaq6Orw5DWq9ZcNlS03BIlEALFeQgeVAo4Q== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-template-literals@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.0.tgz#a8eced3a8e7b8e2d40ec4ec4548a45912630d302" - integrity sha512-Rd4Ic89hA/f7xUSJQk5PnC+4so50vBoBfxjdQAdvngwidM8jYIBVxBZ/sARxD4e0yMXRbJVDrYf7dyRtIIKT6Q== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-typeof-symbol@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.0.tgz#8b19a244c6f8c9d668dca6a6f754ad6ead1128f2" - integrity sha512-++V2L8Bdf4vcaHi2raILnptTBjGEFxn5315YU+e8+EqXIucA+q349qWngCLpUYqqv233suJ6NOienIVUpS9cqg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-typescript@^7.16.0": - version "7.16.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.1.tgz#cc0670b2822b0338355bc1b3d2246a42b8166409" - integrity sha512-NO4XoryBng06jjw/qWEU2LhcLJr1tWkhpMam/H4eas/CDKMX/b2/Ylb6EI256Y7+FVPCawwSM1rrJNOpDiz+Lg== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-typescript" "^7.16.0" - -"@babel/plugin-transform-unicode-escapes@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.0.tgz#1a354064b4c45663a32334f46fa0cf6100b5b1f3" - integrity sha512-VFi4dhgJM7Bpk8lRc5CMaRGlKZ29W9C3geZjt9beuzSUrlJxsNwX7ReLwaL6WEvsOf2EQkyIJEPtF8EXjB/g2A== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-unicode-regex@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.0.tgz#293b80950177c8c85aede87cef280259fb995402" - integrity sha512-jHLK4LxhHjvCeZDWyA9c+P9XH1sOxRd1RO9xMtDVRAOND/PczPqizEtVdx4TQF/wyPaewqpT+tgQFYMnN/P94A== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/preset-env@^7.16.4": - version "7.16.4" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.4.tgz#4f6ec33b2a3fe72d6bfdcdf3859500232563a2e3" - integrity sha512-v0QtNd81v/xKj4gNKeuAerQ/azeNn/G1B1qMLeXOcV8+4TWlD2j3NV1u8q29SDFBXx/NBq5kyEAO+0mpRgacjA== - dependencies: - "@babel/compat-data" "^7.16.4" - "@babel/helper-compilation-targets" "^7.16.3" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-validator-option" "^7.14.5" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.2" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.0" - "@babel/plugin-proposal-async-generator-functions" "^7.16.4" - "@babel/plugin-proposal-class-properties" "^7.16.0" - "@babel/plugin-proposal-class-static-block" "^7.16.0" - "@babel/plugin-proposal-dynamic-import" "^7.16.0" - "@babel/plugin-proposal-export-namespace-from" "^7.16.0" - "@babel/plugin-proposal-json-strings" "^7.16.0" - "@babel/plugin-proposal-logical-assignment-operators" "^7.16.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.0" - "@babel/plugin-proposal-numeric-separator" "^7.16.0" - "@babel/plugin-proposal-object-rest-spread" "^7.16.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.16.0" - "@babel/plugin-proposal-optional-chaining" "^7.16.0" - "@babel/plugin-proposal-private-methods" "^7.16.0" - "@babel/plugin-proposal-private-property-in-object" "^7.16.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.16.0" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.16.0" - "@babel/plugin-transform-async-to-generator" "^7.16.0" - "@babel/plugin-transform-block-scoped-functions" "^7.16.0" - "@babel/plugin-transform-block-scoping" "^7.16.0" - "@babel/plugin-transform-classes" "^7.16.0" - "@babel/plugin-transform-computed-properties" "^7.16.0" - "@babel/plugin-transform-destructuring" "^7.16.0" - "@babel/plugin-transform-dotall-regex" "^7.16.0" - "@babel/plugin-transform-duplicate-keys" "^7.16.0" - "@babel/plugin-transform-exponentiation-operator" "^7.16.0" - "@babel/plugin-transform-for-of" "^7.16.0" - "@babel/plugin-transform-function-name" "^7.16.0" - "@babel/plugin-transform-literals" "^7.16.0" - "@babel/plugin-transform-member-expression-literals" "^7.16.0" - "@babel/plugin-transform-modules-amd" "^7.16.0" - "@babel/plugin-transform-modules-commonjs" "^7.16.0" - "@babel/plugin-transform-modules-systemjs" "^7.16.0" - "@babel/plugin-transform-modules-umd" "^7.16.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.0" - "@babel/plugin-transform-new-target" "^7.16.0" - "@babel/plugin-transform-object-super" "^7.16.0" - "@babel/plugin-transform-parameters" "^7.16.3" - "@babel/plugin-transform-property-literals" "^7.16.0" - "@babel/plugin-transform-regenerator" "^7.16.0" - "@babel/plugin-transform-reserved-words" "^7.16.0" - "@babel/plugin-transform-shorthand-properties" "^7.16.0" - "@babel/plugin-transform-spread" "^7.16.0" - "@babel/plugin-transform-sticky-regex" "^7.16.0" - "@babel/plugin-transform-template-literals" "^7.16.0" - "@babel/plugin-transform-typeof-symbol" "^7.16.0" - "@babel/plugin-transform-unicode-escapes" "^7.16.0" - "@babel/plugin-transform-unicode-regex" "^7.16.0" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.16.0" - babel-plugin-polyfill-corejs2 "^0.3.0" - babel-plugin-polyfill-corejs3 "^0.4.0" - babel-plugin-polyfill-regenerator "^0.3.0" - core-js-compat "^3.19.1" - semver "^6.3.0" - -"@babel/preset-modules@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" - integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== - dependencies: - "@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/preset-typescript@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.16.0.tgz#b0b4f105b855fb3d631ec036cdc9d1ffd1fa5eac" - integrity sha512-txegdrZYgO9DlPbv+9QOVpMnKbOtezsLHWsnsRF4AjbSIsVaujrq1qg8HK0mxQpWv0jnejt0yEoW1uWpvbrDTg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-validator-option" "^7.14.5" - "@babel/plugin-transform-typescript" "^7.16.0" - -"@babel/runtime@^7.8.4": - version "7.16.3" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.3.tgz#b86f0db02a04187a3c17caa77de69840165d42d5" - integrity sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@^7.16.0", "@babel/template@^7.3.3": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.0.tgz#d16a35ebf4cd74e202083356fab21dd89363ddd6" - integrity sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A== - dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/parser" "^7.16.0" - "@babel/types" "^7.16.0" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.16.0", "@babel/traverse@^7.16.3", "@babel/traverse@^7.7.2": - version "7.16.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.3.tgz#f63e8a938cc1b780f66d9ed3c54f532ca2d14787" - integrity sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag== - dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/generator" "^7.16.0" - "@babel/helper-function-name" "^7.16.0" - "@babel/helper-hoist-variables" "^7.16.0" - "@babel/helper-split-export-declaration" "^7.16.0" - "@babel/parser" "^7.16.3" - "@babel/types" "^7.16.0" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.16.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.0.tgz#db3b313804f96aadd0b776c4823e127ad67289ba" - integrity sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg== - dependencies: - "@babel/helper-validator-identifier" "^7.15.7" - to-fast-properties "^2.0.0" - -"@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== - -"@eslint/eslintrc@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.0.4.tgz#dfe0ff7ba270848d10c5add0715e04964c034b31" - integrity sha512-h8Vx6MdxwWI2WM8/zREHMoqdgLNXEL4QX3MWSVMdyNJGvXVOs+6lp+m2hc3FnuMHDc4poxFNI20vCk0OmI4G0Q== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.0.0" - globals "^13.9.0" - ignore "^4.0.6" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.0.4" - strip-json-comments "^3.1.1" - -"@humanwhocodes/config-array@^0.6.0": - version "0.6.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.6.0.tgz#b5621fdb3b32309d2d16575456cbc277fa8f021a" - integrity sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A== - dependencies: - "@humanwhocodes/object-schema" "^1.2.0" - debug "^4.1.1" - minimatch "^3.0.4" - -"@humanwhocodes/object-schema@^1.2.0": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== - -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jest/console@^27.4.0": - version "27.4.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.4.0.tgz#7b3fd8de361da5366357ecda3c4d966dfdf03374" - integrity sha512-2m7Xwcd1zTWtai5DCl+b0TAfoH8p5uqUoKmfzJCAfCrIwoJAf3xB+4nx3eKEGoyNfg5oavrh3gjbZ1n5z5eh4Q== - dependencies: - "@jest/types" "^27.4.0" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^27.4.0" - jest-util "^27.4.0" - slash "^3.0.0" - -"@jest/core@^27.4.0": - version "27.4.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.4.0.tgz#99df49f41c3941a0f602e902cba939cfbcc96efc" - integrity sha512-P6eoNIbE0OeenvCxrwdj0jRgeZg8r4eXNCS2zMgAS8EADzdp03mKe7TNwCsEPr460QIYCBwJo4W8wqai3UPXOA== - dependencies: - "@jest/console" "^27.4.0" - "@jest/reporters" "^27.4.0" - "@jest/test-result" "^27.4.0" - "@jest/transform" "^27.4.0" - "@jest/types" "^27.4.0" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.8.1" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-changed-files "^27.4.0" - jest-config "^27.4.0" - jest-haste-map "^27.4.0" - jest-message-util "^27.4.0" - jest-regex-util "^27.4.0" - jest-resolve "^27.4.0" - jest-resolve-dependencies "^27.4.0" - jest-runner "^27.4.0" - jest-runtime "^27.4.0" - jest-snapshot "^27.4.0" - jest-util "^27.4.0" - jest-validate "^27.4.0" - jest-watcher "^27.4.0" - micromatch "^4.0.4" - rimraf "^3.0.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - -"@jest/environment@^27.4.0": - version "27.4.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.4.0.tgz#3d7c162904d8ec5e5020c17d1276943d36402562" - integrity sha512-7HJ1c6lVNuxrj9PT5AD4yVDDqFt9B0lLsshxZJXShL/LOkLnBO4MoZMH3w1lXQJY3zxk3/l1yg2j7uRKpxF4yw== - dependencies: - "@jest/fake-timers" "^27.4.0" - "@jest/types" "^27.4.0" - "@types/node" "*" - jest-mock "^27.4.0" - -"@jest/fake-timers@^27.4.0": - version "27.4.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.4.0.tgz#541638975bad78e90fe2aed9f9e9d43709972410" - integrity sha512-oyMxDKlj/ThRms9eS0xFkxmUvjJ8lHsNS4gNErDRFSruTER1/OQi2L5N0sJav+/AcBoY/Pa313CpB6RgdDacGA== - dependencies: - "@jest/types" "^27.4.0" - "@sinonjs/fake-timers" "^8.0.1" - "@types/node" "*" - jest-message-util "^27.4.0" - jest-mock "^27.4.0" - jest-util "^27.4.0" - -"@jest/globals@^27.4.0": - version "27.4.0" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.4.0.tgz#2daa3ad0cb7e44ae7845b4de053866a6f0e051e8" - integrity sha512-jIkd2RSV18wvOqFx5climVkwONuxqNKD8jHMvIumj8+E0qqWqymBcWymidjbxmJ3L3Zr60l0lAJGKw0BstREeQ== - dependencies: - "@jest/environment" "^27.4.0" - "@jest/types" "^27.4.0" - expect "^27.4.0" - -"@jest/reporters@^27.4.0": - version "27.4.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.4.0.tgz#27d93c81f85f118d5fc08c5e7d5bfd5be44aa00e" - integrity sha512-QqIdI9WBH5tBwSHZ81FEZkt3h8fvw+zdV0YQrUtdEbJEBGV/AHgRsIP23sdD/ybLfRFpjZJEyWT+7dM4mxnPYQ== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^27.4.0" - "@jest/test-result" "^27.4.0" - "@jest/transform" "^27.4.0" - "@jest/types" "^27.4.0" - "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.2" - graceful-fs "^4.2.4" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^4.0.3" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.0.2" - jest-haste-map "^27.4.0" - jest-resolve "^27.4.0" - jest-util "^27.4.0" - jest-worker "^27.4.0" - slash "^3.0.0" - source-map "^0.6.0" - string-length "^4.0.1" - terminal-link "^2.0.0" - v8-to-istanbul "^8.1.0" - -"@jest/source-map@^27.4.0": - version "27.4.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.4.0.tgz#2f0385d0d884fb3e2554e8f71f8fa957af9a74b6" - integrity sha512-Ntjx9jzP26Bvhbm93z/AKcPRj/9wrkI88/gK60glXDx1q+IeI0rf7Lw2c89Ch6ofonB0On/iRDreQuQ6te9pgQ== - dependencies: - callsites "^3.0.0" - graceful-fs "^4.2.4" - source-map "^0.6.0" - -"@jest/test-result@^27.4.0": - version "27.4.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.4.0.tgz#5a42153c270e0c3988557c13e72517186a6c7bcb" - integrity sha512-/RiwMUC9pKK1E85CEflPvb4uE4Zo9JK2Iq3RbkbBoj4FkEASb/Zsqta8WGot2J1GxOk3rqdW513tfSDYQQJVpA== - dependencies: - "@jest/console" "^27.4.0" - "@jest/types" "^27.4.0" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^27.4.0": - version "27.4.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.4.0.tgz#c42e2bdaadf5d197a107bd36a6316320cecca651" - integrity sha512-yKu+sjFgelc5zUf0kcbbsO86qV0NIMPyYFFRaWTaEsq+j7aueX/Zev+NcX+bm7BCwCMWeK7V5AUE6HUOblylHA== - dependencies: - "@jest/test-result" "^27.4.0" - graceful-fs "^4.2.4" - jest-haste-map "^27.4.0" - jest-runtime "^27.4.0" - -"@jest/transform@^27.4.0": - version "27.4.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.4.0.tgz#060bf842d3ac162c50c684e8422f3bfce6c824c1" - integrity sha512-/8Cb8kEoCtXN/Co5lvv+jG0zv4Uj3ruIvffYUzxNGRGmM7qqaHtOBZ3WbH0T1Nvjya5utTA4YtwbInZVS6Zt9A== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^27.4.0" - babel-plugin-istanbul "^6.0.0" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.4" - jest-haste-map "^27.4.0" - jest-regex-util "^27.4.0" - jest-util "^27.4.0" - micromatch "^4.0.4" - pirates "^4.0.1" - slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" - -"@jest/types@^27.4.0": - version "27.4.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.4.0.tgz#ac5c04d29ce47e0b96439dfd44ec3cd930fc9f86" - integrity sha512-jIsLdASXMf8GS7P7oGFGwobNse/6Ewq3GBPHoo0i6XRmja+NrUoDqJm4a1ffF2bHGleKJizxokcp1sCqSktP3g== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^16.0.0" - chalk "^4.0.0" - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@rollup/plugin-image@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@rollup/plugin-image/-/plugin-image-2.1.1.tgz#898d6b59ac0025d7971ef45640ab330cb0663b0c" - integrity sha512-AgP4U85zuQJdUopLUCM+hTf45RepgXeTb8EJsleExVy99dIoYpt3ZlDYJdKmAc2KLkNntCDg6BPJvgJU3uGF+g== - dependencies: - "@rollup/pluginutils" "^3.1.0" - mini-svg-data-uri "^1.2.3" - -"@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/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" - -"@rollup/pluginutils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.1.1.tgz#1d4da86dd4eded15656a57d933fda2b9a08d47ec" - integrity sha512-clDjivHqWGXi7u+0d2r2sBi4Ie6VLEAzWMIkvJLnDmxoOhBYOTfzGbOQBA32THHm11/LiJbd01tJUpJsbshSWQ== - dependencies: - estree-walker "^2.0.1" - picomatch "^2.2.2" - -"@rollup/pluginutils@^4.1.2": - version "4.1.2" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.1.2.tgz#ed5821c15e5e05e32816f5fb9ec607cdf5a75751" - integrity sha512-ROn4qvkxP9SyPeHaf7uQC/GPFY6L/OWy9+bd9AwcjOAWQwxRscoEyAUD8qCY5o5iL4jqQwoLk2kaTKJPb/HwzQ== - dependencies: - estree-walker "^2.0.1" - picomatch "^2.2.2" - -"@sinonjs/commons@^1.7.0": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" - integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^8.0.1": - version "8.1.0" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz#3fdc2b6cb58935b21bfb8d1625eb1300484316e7" - integrity sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg== - dependencies: - "@sinonjs/commons" "^1.7.0" - -"@tootallnate/once@1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" - integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== - -"@trysound/sax@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" - integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== - -"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": - version "7.1.16" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.16.tgz#bc12c74b7d65e82d29876b5d0baf5c625ac58702" - integrity sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.3" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.3.tgz#f456b4b2ce79137f768aa130d2423d2f0ccfaba5" - integrity sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.2.tgz#ffcd470bbb3f8bf30481678fb5502278ca833a43" - integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== - dependencies: - "@babel/types" "^7.3.0" - -"@types/cssnano@^5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@types/cssnano/-/cssnano-5.0.0.tgz#9463679a7f11ea375e0ed4ada46c04de6c908ef0" - integrity sha512-z98V7ICNAojxj9YV9+Q8qV+F7fW0poLWJRjed9tu7KNdYzHwAvLOAsTMI8xWjkOY9yzO+HmMxRRixlIvRsZwXg== - dependencies: - postcss "^8" - -"@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/graceful-fs@^4.1.2": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" - integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== - dependencies: - "@types/node" "*" - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@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/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/jsdom@^16.2.4": - version "16.2.13" - resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-16.2.13.tgz#126c8b7441b159d6234610a48de77b6066f1823f" - integrity sha512-8JQCjdeAidptSsOcRWk2iTm9wCcwn9l+kRG6k5bzUacrnm1ezV4forq0kWjUih/tumAeoG+OspOvQEbbRucBTw== - dependencies: - "@types/node" "*" - "@types/parse5" "*" - "@types/tough-cookie" "*" - -"@types/json-schema@^7.0.9": - version "7.0.9" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" - integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== - -"@types/node@*": - version "16.11.11" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.11.tgz#6ea7342dfb379ea1210835bada87b3c512120234" - integrity sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw== - -"@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/parse5@*": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-6.0.3.tgz#705bb349e789efa06f43f128cef51240753424cb" - integrity sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g== - -"@types/prettier@^2.1.5": - version "2.4.2" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.2.tgz#4c62fae93eb479660c3bd93f9d24d561597a8281" - integrity sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA== - -"@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== - -"@types/tough-cookie@*": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.1.tgz#8f80dd965ad81f3e1bc26d6f5c727e132721ff40" - integrity sha512-Y0K95ThC3esLEYD6ZuqNek29lNX2EM1qxV8y2FTLUB0ff5wWrk7az+mLrnNFUnaXcgKye22+sFBRXOgpPILZNg== - -"@types/yargs-parser@*": - version "20.2.1" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" - integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== - -"@types/yargs@^16.0.0": - version "16.0.4" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977" - integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw== - dependencies: - "@types/yargs-parser" "*" - -"@typescript-eslint/experimental-utils@^5.0.0": - version "5.10.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.10.2.tgz#dbb541e2070c7bd6e63d3e3a55b58be73a8fbb34" - integrity sha512-stRnIlxDduzxtaVLtEohESoXI1k7J6jvJHGyIkOT2pvXbg5whPM6f9tzJ51bJJxaJTdmvwgVFDNCopFRb2F5Gw== - dependencies: - "@typescript-eslint/utils" "5.10.2" - -"@typescript-eslint/scope-manager@5.10.2": - version "5.10.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.10.2.tgz#92c0bc935ec00f3d8638cdffb3d0e70c9b879639" - integrity sha512-39Tm6f4RoZoVUWBYr3ekS75TYgpr5Y+X0xLZxXqcZNDWZdJdYbKd3q2IR4V9y5NxxiPu/jxJ8XP7EgHiEQtFnw== - dependencies: - "@typescript-eslint/types" "5.10.2" - "@typescript-eslint/visitor-keys" "5.10.2" - -"@typescript-eslint/types@5.10.2": - version "5.10.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.10.2.tgz#604d15d795c4601fffba6ecb4587ff9fdec68ce8" - integrity sha512-Qfp0qk/5j2Rz3p3/WhWgu4S1JtMcPgFLnmAKAW061uXxKSa7VWKZsDXVaMXh2N60CX9h6YLaBoy9PJAfCOjk3w== - -"@typescript-eslint/typescript-estree@5.10.2": - version "5.10.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.10.2.tgz#810906056cd3ddcb35aa333fdbbef3713b0fe4a7" - integrity sha512-WHHw6a9vvZls6JkTgGljwCsMkv8wu8XU8WaYKeYhxhWXH/atZeiMW6uDFPLZOvzNOGmuSMvHtZKd6AuC8PrwKQ== - dependencies: - "@typescript-eslint/types" "5.10.2" - "@typescript-eslint/visitor-keys" "5.10.2" - debug "^4.3.2" - globby "^11.0.4" - is-glob "^4.0.3" - semver "^7.3.5" - tsutils "^3.21.0" - -"@typescript-eslint/utils@5.10.2": - version "5.10.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.10.2.tgz#1fcd37547c32c648ab11aea7173ec30060ee87a8" - integrity sha512-vuJaBeig1NnBRkf7q9tgMLREiYD7zsMrsN1DA3wcoMDvr3BTFiIpKjGiYZoKPllfEwN7spUjv7ZqD+JhbVjEPg== - dependencies: - "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.10.2" - "@typescript-eslint/types" "5.10.2" - "@typescript-eslint/typescript-estree" "5.10.2" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - -"@typescript-eslint/visitor-keys@5.10.2": - version "5.10.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.10.2.tgz#fdbf272d8e61c045d865bd6c8b41bea73d222f3d" - integrity sha512-zHIhYGGGrFJvvyfwHk5M08C5B5K4bewkm+rrvNTKk1/S15YHR+SA/QUF8ZWscXSfEaB8Nn2puZj+iHcoxVOD/Q== - dependencies: - "@typescript-eslint/types" "5.10.2" - eslint-visitor-keys "^3.0.0" - -abab@^2.0.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== - -acorn-globals@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" - integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== - dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" - -acorn-jsx@^5.3.1: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn-walk@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" - integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== - -acorn@^7.1.1: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.2.4, acorn@^8.6.0: - version "8.6.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.6.0.tgz#e3692ba0eb1a0c83eaa4f37f5fa7368dd7142895" - integrity sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw== - -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" - -ajv@^6.10.0, ajv@^6.12.4: - 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" - -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== - -ansi-escapes@^4.2.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -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.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - -anymatch@^3.0.3: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -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== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -babel-jest@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.4.0.tgz#ba78a2e19260a0009206f4e717ee2b78ee759781" - integrity sha512-4855S+YT4Hx0OiXFDBOWhrMj1Y9zYE7StlchuZtr1vbo1LEDBIkt8U6+7cse8jkpJSV98w3nBVDrPgol5Ab/cQ== - dependencies: - "@jest/transform" "^27.4.0" - "@jest/types" "^27.4.0" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^27.4.0" - chalk "^4.0.0" - graceful-fs "^4.2.4" - slash "^3.0.0" - -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" - -babel-plugin-istanbul@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-plugin-jest-hoist@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.4.0.tgz#d7831fc0f93573788d80dee7e682482da4c730d6" - integrity sha512-Jcu7qS4OX5kTWBc45Hz7BMmgXuJqRnhatqpUhnzGC3OBYpOmf2tv6jFNwZpwM7wU7MUuv2r9IPS/ZlYOuburVw== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.0.0" - "@types/babel__traverse" "^7.0.6" - -babel-plugin-polyfill-corejs2@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz#407082d0d355ba565af24126fb6cb8e9115251fd" - integrity sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA== - dependencies: - "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.3.0" - semver "^6.1.1" - -babel-plugin-polyfill-corejs3@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.4.0.tgz#0b571f4cf3d67f911512f5c04842a7b8e8263087" - integrity sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.0" - core-js-compat "^3.18.0" - -babel-plugin-polyfill-regenerator@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz#9ebbcd7186e1a33e21c5e20cae4e7983949533be" - integrity sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.0" - -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - -babel-preset-jest@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.4.0.tgz#70d0e676a282ccb200fbabd7f415db5fdf393bca" - integrity sha512-NK4jGYpnBvNxcGo7/ZpZJr51jCGT+3bwwpVIDY2oNfTxJJldRtB4VAcYdgp1loDE50ODuTu+yBjpMAswv5tlpg== - dependencies: - babel-plugin-jest-hoist "^27.4.0" - babel-preset-current-node-syntax "^1.0.0" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -boolbase@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= - -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@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browser-process-hrtime@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" - integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== - -browserslist@^4.0.0, browserslist@^4.16.6: - version "4.19.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3" - integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A== - dependencies: - caniuse-lite "^1.0.30001286" - electron-to-chromium "^1.4.17" - escalade "^3.1.1" - node-releases "^2.0.1" - picocolors "^1.0.0" - -browserslist@^4.17.5, browserslist@^4.18.1: - version "4.18.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.18.1.tgz#60d3920f25b6860eb917c6c7b185576f4d8b017f" - integrity sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ== - dependencies: - caniuse-lite "^1.0.30001280" - electron-to-chromium "^1.3.896" - escalade "^3.1.1" - node-releases "^2.0.1" - picocolors "^1.0.0" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -call-bind@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@^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.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.1.tgz#250fd350cfd555d0d2160b1d51510eaf8326e86e" - integrity sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA== - -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001286: - version "1.0.30001304" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001304.tgz#38af55ed3fc8220cb13e35e6e7309c8c65a05559" - integrity sha512-bdsfZd6K6ap87AGqSHJP/s1V+U6Z5lyrcbBu3ovbCCf8cSYpwTtGrCBObMpJqwxfTbLW6YTIdbb1jEeTelcpYQ== - -caniuse-lite@^1.0.30001280: - version "1.0.30001283" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001283.tgz#8573685bdae4d733ef18f78d44ba0ca5fe9e896b" - integrity sha512-9RoKo841j1GQFSJz/nCXOj0sD7tHBtlowjYlrqIUS812x9/emfBLBt6IyMz1zIaYc/eRL8Cs6HPUVi2Hzq4sIg== - -chalk@^2.0.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - -ci-info@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.0.tgz#b4ed1fb6818dea4803a55c623041f9165d2066b2" - integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw== - -cjs-module-lexer@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" - integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== - -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" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= - -collect-v8-coverage@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" - integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -colord@^2.9.1: - version "2.9.2" - resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.2.tgz#25e2bacbbaa65991422c07ea209e2089428effb1" - integrity sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ== - -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== - -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.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" - integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== - dependencies: - safe-buffer "~5.1.1" - -core-js-compat@^3.18.0, core-js-compat@^3.19.1: - version "3.19.2" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.19.2.tgz#18066a3404a302433cb0aa8be82dd3d75c76e5c4" - integrity sha512-ObBY1W5vx/LFFMaL1P5Udo4Npib6fu+cMokeziWkA8Tns4FcDemKF5j9JvaI5JhdkW8EQJQGJN1EcrzmEwuAqQ== - dependencies: - browserslist "^4.18.1" - semver "7.0.0" - -cosmiconfig@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" - integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== - dependencies: - "@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" - -cross-spawn@^7.0.2, cross-spawn@^7.0.3: - 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" - -css-declaration-sorter@^6.0.3: - version "6.1.4" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.1.4.tgz#b9bfb4ed9a41f8dcca9bf7184d849ea94a8294b4" - integrity sha512-lpfkqS0fctcmZotJGhnxkIyJWvBXgpyi2wsFd4J8VB7wzyrT6Ch/3Q+FMNJpjK4gu1+GN5khOnpU2ZVKrLbhCw== - dependencies: - timsort "^0.3.0" - -css-select@^4.1.3: - version "4.2.1" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.2.1.tgz#9e665d6ae4c7f9d65dbe69d0316e3221fb274cdd" - integrity sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ== - dependencies: - boolbase "^1.0.0" - css-what "^5.1.0" - domhandler "^4.3.0" - domutils "^2.8.0" - nth-check "^2.0.1" - -css-tree@^1.1.2, css-tree@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" - integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== - dependencies: - mdn-data "2.0.14" - source-map "^0.6.1" - -css-what@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" - integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== - -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@^5.1.11: - version "5.1.11" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.11.tgz#db10fb1ecee310e8285c5aca45bd8237be206828" - integrity sha512-ETet5hqHxmzQq2ynXMOQofKuLm7VOjMiOB7E2zdtm/hSeCKlD9fabzIUV4GoPcRyJRHi+4kGf0vsfGYbQ4nmPw== - dependencies: - css-declaration-sorter "^6.0.3" - cssnano-utils "^3.0.1" - postcss-calc "^8.2.0" - postcss-colormin "^5.2.4" - postcss-convert-values "^5.0.3" - postcss-discard-comments "^5.0.2" - postcss-discard-duplicates "^5.0.2" - postcss-discard-empty "^5.0.2" - postcss-discard-overridden "^5.0.3" - postcss-merge-longhand "^5.0.5" - postcss-merge-rules "^5.0.5" - postcss-minify-font-values "^5.0.3" - postcss-minify-gradients "^5.0.5" - postcss-minify-params "^5.0.4" - postcss-minify-selectors "^5.1.2" - postcss-normalize-charset "^5.0.2" - postcss-normalize-display-values "^5.0.2" - postcss-normalize-positions "^5.0.3" - postcss-normalize-repeat-style "^5.0.3" - postcss-normalize-string "^5.0.3" - postcss-normalize-timing-functions "^5.0.2" - postcss-normalize-unicode "^5.0.3" - postcss-normalize-url "^5.0.4" - postcss-normalize-whitespace "^5.0.3" - postcss-ordered-values "^5.0.4" - postcss-reduce-initial "^5.0.2" - postcss-reduce-transforms "^5.0.3" - postcss-svgo "^5.0.3" - postcss-unique-selectors "^5.0.3" - -cssnano-utils@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.0.1.tgz#d3cc0a142d3d217f8736837ec0a2ccff6a89c6ea" - integrity sha512-VNCHL364lh++/ono+S3j9NlUK+d97KNkxI77NlqZU2W3xd2/qmyN61dsa47pTpb55zuU4G4lI7qFjAXZJH1OAQ== - -cssnano@^5.0.15: - version "5.0.16" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.16.tgz#4ee97d30411693f3de24cef70b36f7ae2a843e04" - integrity sha512-ryhRI9/B9VFCwPbb1z60LLK5/ldoExi7nwdnJzpkLZkm2/r7j2X3jfY+ZvDVJhC/0fPZlrAguYdHNFg0iglPKQ== - dependencies: - cssnano-preset-default "^5.1.11" - lilconfig "^2.0.3" - yaml "^1.10.2" - -csso@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" - integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== - dependencies: - css-tree "^1.1.2" - -cssom@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" - integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== - -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssstyle@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" - integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== - dependencies: - cssom "~0.3.6" - -data-urls@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" - integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== - dependencies: - abab "^2.0.3" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.0.0" - -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2: - version "4.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" - integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== - dependencies: - ms "2.1.2" - -decimal.js@^10.2.1: - version "10.3.1" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" - integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== - -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= - -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= - -deep-is@^0.1.3, deep-is@~0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -detect-newline@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - -diff-sequences@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.4.0.tgz#d783920ad8d06ec718a060d00196dfef25b132a5" - integrity sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww== - -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 "^4.0.0" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -dom-serializer@^1.0.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" - integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.2.0" - entities "^2.0.0" - -domelementtype@^2.0.1, domelementtype@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" - integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== - -domexception@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" - integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== - dependencies: - webidl-conversions "^5.0.0" - -domhandler@^4.2.0, domhandler@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.0.tgz#16c658c626cf966967e306f966b431f77d4a5626" - integrity sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g== - dependencies: - domelementtype "^2.2.0" - -domutils@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" - integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== - dependencies: - dom-serializer "^1.0.1" - domelementtype "^2.2.0" - domhandler "^4.2.0" - -electron-to-chromium@^1.3.896: - version "1.4.5" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.5.tgz#912e8fd1645edee2f0f212558f40916eb538b1f9" - integrity sha512-YKaB+t8ul5crdh6OeqT2qXdxJGI0fAYb6/X8pDIyye+c3a7ndOCk5gVeKX+ABwivCGNS56vOAif3TN0qJMpEHw== - -electron-to-chromium@^1.4.17: - version "1.4.57" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.57.tgz#2b2766df76ac8dbc0a1d41249bc5684a31849892" - integrity sha512-FNC+P5K1n6pF+M0zIK+gFCoXcJhhzDViL3DRIGy2Fv5PohuSES1JHR7T+GlwxSxlzx4yYbsuzCZvHxcBSRCIOw== - -emittery@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" - integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== - -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== - -enquirer@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== - dependencies: - ansi-colors "^4.1.1" - -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -esbuild-android-arm64@0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.0.tgz#fac7e9a207714a699283578e1c8106689e52fad9" - integrity sha512-X7BjFiRRNfxPNg1aT5zw4xK1vbvX2IvDPcEp4bv0CEXgR39UzuOMUsQoG92aZgj8JGs8jxQAZc8k9dVJ1WL2BA== - -esbuild-darwin-64@0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.0.tgz#83bde8f68dd26ec4cbbbe4fd966eb1f4ce40a9d8" - integrity sha512-43vtt407jMp1kEXiaY0dEIGjOREax9F1+qMI0+F9tJyr06EHAofnbLL6cTmLgdPy/pMhltSvOJ8EddJrrOBgpQ== - -esbuild-darwin-arm64@0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.0.tgz#644efb31fb27e291465e24757b3194d36aa2eb7d" - integrity sha512-hMbT5YiBrFL763mnwR9BqNtq9XtJgJRxYs7Ad++KUd+ZhMoVE0Rs/YLe1oor9uBGhHLqQsZuJ2dUHjCsfT/iDg== - -esbuild-freebsd-64@0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.0.tgz#c74755b5f8a8a9a2acf19d49236ac7c18c548f71" - integrity sha512-mx68HRYIZo6ZiHbWk5Md+mDJoDw779yWkJQAaBnXwOkGbDeA3JmPZjp6IPfy2P+n3emK9z6g4pKiebp1tQGVoQ== - -esbuild-freebsd-arm64@0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.0.tgz#b778a66b4fc6a0d0b91e2e2333620658724b45ef" - integrity sha512-iM8u+zTagh0WGn2FTTxi7DII/ycVzYyuf2Df6eP2ZX+vlx2FjaduhagRkpyhjfmEyhfJOrYSAR5R1biNPcA+VA== - -esbuild-linux-32@0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.0.tgz#64bfaa635a8f4d6f2fea62cc8c2466f5a926b221" - integrity sha512-dWHotI2qlXWZyza7n85UubBj0asjpM7FTtQYDaRQKxoCJpCnSzq3aD55IJthiggZHXj2tAML9Bc5xjVLsBJR0w== - -esbuild-linux-64@0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.0.tgz#0e2714bd90cfc4afffcfee896d67763a03410d61" - integrity sha512-7buo31kp1/yKWPm9vU44FEUwkeIROrIgnCDV9KLMLSbOjGEHBZXYJ2L0p4ZnB7Z+m5YiW7F/AfJu0/1E87nOeQ== - -esbuild-linux-arm64@0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.0.tgz#008ddc7c37e9bfc0cc8902310a728f8b8bfdf002" - integrity sha512-9LBtCH2RkhDBwoAYksTtXljN6hlxxoL6a3ymNfXJG9JxFUQddOfhajXZdObFn/hgGkAFwx8dXqw+FnPm0FCzSg== - -esbuild-linux-arm@0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.0.tgz#f8e3f91797eb291e7f8c1c867826e408804ece75" - integrity sha512-fgybXQwPRT4Io01+aD+yphcLOLRVGqbSdhvaDK3qBwqUvspFsq4QkI7PeeYpuQdBZWiRKLoi9v5r90l7JO/s+g== - -esbuild-linux-mips64le@0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.0.tgz#e2e3a2f3b4adf3ec64bcc43e21dd19105ff5ccab" - integrity sha512-Xz7soOqWeCWcLp15biPM08To+s0k1E/2q0pQZNQ+SY9S5H2vU4ujDXqKjxFc24G9CrOeUNEOXTkh+JldBGbTCA== - -esbuild-linux-ppc64le@0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.0.tgz#8a13f6e5257e19b62e7c28762f3cc742d56f3e1c" - integrity sha512-fuBXTyUaZKxpmp43Nf0M1uI1OmZv/COcME9PG7NQ/EniwC680Xj5xQFhEBDVnvQQ+6xOnXdfPSojJq7gQxrORQ== - -esbuild-netbsd-64@0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.0.tgz#e76051ea739efa5be7a5979f212882c8d9e1b7db" - integrity sha512-pQaECTKr/iCXtn1qjwih+cvoZzbZ+P3NwLQo4uo/IesklbPTR5eF4d85L1vPFVgff+itBMxbbB7aoRznSglN3A== - -esbuild-openbsd-64@0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.0.tgz#2d8c0689731605c68da816ac40095a1685c12e11" - integrity sha512-HiaqQX9HMb9u3eYvKZ86+m/paQwASJSIjXiRTFpFusypjtU2NJqWb/LiRvhfmwC6rb7YHwCSPx+juSM7M+20bA== - -esbuild-sunos-64@0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.0.tgz#62b2a27cdc8d0ac150d4d15857e764652960d2b6" - integrity sha512-TkMQOSiSU3fHLV3M+OKUgLZt5L7TpcBcMRvtFw1cTxAnX8eT+1qkWVLiDM8ow1C3P7PW3bkGY3LW8vOs8o/jBA== - -esbuild-windows-32@0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.0.tgz#364a1d1558b0a2351997c1aa7fd4408428eb78ab" - integrity sha512-0h7E50JHgyLd7TkqSIH0VzBhngWspxPHuq/crDAMnh4s4tW8zWCMLIz2c1HVwHfZsh7d5+C4/yBaQeJTHXGvIA== - -esbuild-windows-64@0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.0.tgz#e0db336f5c614f1b8dfacc0720cb0d30e118b36d" - integrity sha512-RxnovPOoQS5Id4mbdIUm96L0GIg+ZME4FthbErw1kZZabLi9eLp1gR3vSwkZXKbK8Z76uDkSW0EN74i1XWVpiQ== - -esbuild-windows-arm64@0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.0.tgz#5ddc6134e766da3c7b62a9a463e91ad3127483b5" - integrity sha512-66KsVlT6lGDWgDKQsAlojxgUhZkkjVeosMVRdb913OwtcOjszceg6zFD748jzp9CUgAseHCNJqFmYOyBzneSEQ== - -esbuild@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.0.tgz#9a3d21c9876b280e3b0186e36d372354ade51938" - integrity sha512-UOnSKRAyZondxdLrOXnI/mesUmU/GvDTcajCvxoIaObzMeQcn0HyoGtvbfATnazlx799ZqFSyIZGLXFszkjy3A== - optionalDependencies: - esbuild-android-arm64 "0.14.0" - esbuild-darwin-64 "0.14.0" - esbuild-darwin-arm64 "0.14.0" - esbuild-freebsd-64 "0.14.0" - esbuild-freebsd-arm64 "0.14.0" - esbuild-linux-32 "0.14.0" - esbuild-linux-64 "0.14.0" - esbuild-linux-arm "0.14.0" - esbuild-linux-arm64 "0.14.0" - esbuild-linux-mips64le "0.14.0" - esbuild-linux-ppc64le "0.14.0" - esbuild-netbsd-64 "0.14.0" - esbuild-openbsd-64 "0.14.0" - esbuild-sunos-64 "0.14.0" - esbuild-windows-32 "0.14.0" - esbuild-windows-64 "0.14.0" - esbuild-windows-arm64 "0.14.0" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -escodegen@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" - integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -eslint-plugin-jest@^25.2.2: - version "25.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz#ff4ac97520b53a96187bad9c9814e7d00de09a6a" - integrity sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ== - dependencies: - "@typescript-eslint/experimental-utils" "^5.0.0" - -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.0.tgz#c1f6ea30ac583031f203d65c73e723b01298f153" - integrity sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint-visitor-keys@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz#6fbb166a6798ee5991358bc2daa1ba76cc1254a1" - integrity sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ== - -eslint-visitor-keys@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz#eee4acea891814cda67a7d8812d9647dd0179af2" - integrity sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA== - -eslint@^8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.3.0.tgz#a3c2409507403c1c7f6c42926111d6cbefbc3e85" - integrity sha512-aIay56Ph6RxOTC7xyr59Kt3ewX185SaGnAr8eWukoPLeriCrvGjvAubxuvaXOfsxhtwV5g0uBOsyhAom4qJdww== - dependencies: - "@eslint/eslintrc" "^1.0.4" - "@humanwhocodes/config-array" "^0.6.0" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - enquirer "^2.3.5" - escape-string-regexp "^4.0.0" - eslint-scope "^7.1.0" - eslint-utils "^3.0.0" - eslint-visitor-keys "^3.1.0" - espree "^9.1.0" - esquery "^1.4.0" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^6.0.1" - globals "^13.6.0" - ignore "^4.0.6" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.0.4" - natural-compare "^1.4.0" - optionator "^0.9.1" - progress "^2.0.0" - regexpp "^3.2.0" - semver "^7.2.1" - strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" - text-table "^0.2.0" - v8-compile-cache "^2.0.3" - -espree@^9.0.0, espree@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.1.0.tgz#ba9d3c9b34eeae205724124e31de4543d59fbf74" - integrity sha512-ZgYLvCS1wxOczBYGcQT9DDWgicXwJ4dbocr9uYN+/eresBAUuBu+O4WzB21ufQ/JqQT8gyp7hJ3z8SHii32mTQ== - dependencies: - acorn "^8.6.0" - acorn-jsx "^5.3.1" - eslint-visitor-keys "^3.1.0" - -esprima@^4.0.0, esprima@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -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== - -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" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -eventemitter3@^4.0.4: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= - -expect@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-27.4.0.tgz#694ec548044e2342a86f9f8091589eea3ead9b0a" - integrity sha512-3V4Nq5E5dS7bzFfinUThG0OnOnNIDdEPC0KG1pBgB1Z7ZTDVuuyvSBTOQewi0z0vaGKWPaJ880tGI+pPm+5aCg== - dependencies: - "@jest/types" "^27.4.0" - ansi-styles "^5.0.0" - jest-get-type "^27.4.0" - jest-matcher-utils "^27.4.0" - jest-message-util "^27.4.0" - jest-regex-util "^27.4.0" - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - 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.2.9: - version "3.2.11" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" - integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -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== - -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== - dependencies: - reusify "^1.0.4" - -fb-watchman@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" - integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== - dependencies: - bser "2.1.1" - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -filter-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" - integrity sha1-mzERErxsYSehbgFsbF1/GeCAXFs= - -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flatted@^3.1.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.4.tgz#28d9969ea90661b5134259f312ab6aa7929ac5e2" - integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw== - -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -fs-extra@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" - integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^2.3.2, fsevents@~2.3.2: - 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== - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - -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.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-intrinsic@^1.0.2: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -glob-parent@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - 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" - -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== - -globals@^13.6.0, globals@^13.9.0: - version "13.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.12.0.tgz#4d733760304230a0082ed96e21e5c565f898089e" - integrity sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg== - dependencies: - type-fest "^0.20.2" - -globby@^11.0.4: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - -graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.9" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" - integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== - -graceful-fs@^4.2.4: - version "4.2.8" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" - integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -html-encoding-sniffer@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" - integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== - dependencies: - whatwg-encoding "^1.0.5" - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -http-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: - "@tootallnate/once" "1" - agent-base "6" - debug "4" - -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" - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -iconv-lite@0.4.24: - 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" - -icss-utils@^5.0.0, icss-utils@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" - integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== - -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -ignore@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== - -import-fresh@^3.0.0, 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: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-local@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.3.tgz#4d51c2c495ca9393da259ec66b62e022920211e0" - integrity sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -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-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-core-module@^2.2.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" - integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== - dependencies: - has "^1.0.3" - -is-core-module@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" - integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== - dependencies: - has "^1.0.3" - -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-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-potential-custom-element-name@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" - integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -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= - -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= - -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== - -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" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" - semver "^6.3.0" - -istanbul-lib-instrument@^5.0.4: - version "5.1.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a" - integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.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@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.0.2: - version "3.0.5" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.5.tgz#a2580107e71279ea6d661ddede929ffc6d693384" - integrity sha512-5+19PlhnGabNWB7kOFnuxT8H3T/iIyQzIbQMxXsURmmvKg86P2sbkrGOT77VnHw0Qr0gc2XzRaRfMZYYbSQCJQ== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -jest-changed-files@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.4.0.tgz#b2fada5f9952e3cb8af83e89338a089964b55ea5" - integrity sha512-TacYni8ZumaB10L/fGRH92MbLYkn+MF2KtgHeAOcwnOzfmt+S6CDmJeslZuLOpnRUQKkV/Vr4qPAlrBTE5r67A== - dependencies: - "@jest/types" "^27.4.0" - execa "^5.0.0" - throat "^6.0.1" - -jest-circus@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.4.0.tgz#865c4428b00de301398ab4ffff017b68a4e45826" - integrity sha512-WYmHSsuH82HZqOHPU1vD2AKyzUp5t/0R7jT1XJ8ga+hIGR5Ddv6PUQeMJvjnftyLC0izSm3tZaIYB+H6FfYqZA== - dependencies: - "@jest/environment" "^27.4.0" - "@jest/test-result" "^27.4.0" - "@jest/types" "^27.4.0" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^0.7.0" - expect "^27.4.0" - is-generator-fn "^2.0.0" - jest-each "^27.4.0" - jest-matcher-utils "^27.4.0" - jest-message-util "^27.4.0" - jest-runtime "^27.4.0" - jest-snapshot "^27.4.0" - jest-util "^27.4.0" - pretty-format "^27.4.0" - slash "^3.0.0" - stack-utils "^2.0.3" - throat "^6.0.1" - -jest-cli@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.4.0.tgz#d55a1465d6e8502a32e47831497ce3f72892265d" - integrity sha512-cTL2ORt/ha+x6KJfVp0oTAyPmHVw7IJ+lA3kmT/kNcWoCiKa+t/JlF5x+nJ0UfL3/IQLV+ysYgu8MjGM8WXH+w== - dependencies: - "@jest/core" "^27.4.0" - "@jest/test-result" "^27.4.0" - "@jest/types" "^27.4.0" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.4" - import-local "^3.0.2" - jest-config "^27.4.0" - jest-util "^27.4.0" - jest-validate "^27.4.0" - prompts "^2.0.1" - yargs "^16.2.0" - -jest-config@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.4.0.tgz#afbcf97dbf310e6c0d1287d3e163ff9a9bab141c" - integrity sha512-4ZDJd0HLX4snqDNOQYswMjQj7d7I2Bm8+TYIytDcRSAy7mkneQCKHBJu2NtIuzXxAoS2Sy+sjZ1UX/9L06zZCQ== - dependencies: - "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^27.4.0" - "@jest/types" "^27.4.0" - babel-jest "^27.4.0" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.1" - graceful-fs "^4.2.4" - jest-circus "^27.4.0" - jest-environment-jsdom "^27.4.0" - jest-environment-node "^27.4.0" - jest-get-type "^27.4.0" - jest-jasmine2 "^27.4.0" - jest-regex-util "^27.4.0" - jest-resolve "^27.4.0" - jest-runner "^27.4.0" - jest-util "^27.4.0" - jest-validate "^27.4.0" - micromatch "^4.0.4" - pretty-format "^27.4.0" - slash "^3.0.0" - -jest-diff@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.4.0.tgz#d31269e4c070cd794cff756e39ecb4a4010be5cb" - integrity sha512-fdXgpnyQH4LNSnYgRfHN/g413bqbPspWIAZPlXrdNISehDih1VNDtuRvlzGQJ4Go+fur1HKB2IyI25t6cWi5EA== - dependencies: - chalk "^4.0.0" - diff-sequences "^27.4.0" - jest-get-type "^27.4.0" - pretty-format "^27.4.0" - -jest-docblock@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.4.0.tgz#06c78035ca93cbbb84faf8fce64deae79a59f69f" - integrity sha512-7TBazUdCKGV7svZ+gh7C8esAnweJoG+SvcF6Cjqj4l17zA2q1cMwx2JObSioubk317H+cjcHgP+7fTs60paulg== - dependencies: - detect-newline "^3.0.0" - -jest-each@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.4.0.tgz#ac84f91334d101c864864ccaf693281652c8a2ec" - integrity sha512-dq6r/Uf6Q7sI/gND7WyCmQ7Z13p1CSusMkHEC//+schTrhTRe+ubPO2GtejHlWV+BldH6aMAAmtlEZgBroNrNg== - dependencies: - "@jest/types" "^27.4.0" - chalk "^4.0.0" - jest-get-type "^27.4.0" - jest-util "^27.4.0" - pretty-format "^27.4.0" - -jest-environment-jsdom@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.4.0.tgz#9dc626b5f24121a3fc8206d285caaf17efd88ea0" - integrity sha512-fgM6g4WftTTpRA8dB5FnmS3n+PthwjTdMwl/Lcq2QlCo0I5smyD+t82bzO9tX5w6ygxbCbnP4VkSWWYdqO4j+w== - dependencies: - "@jest/environment" "^27.4.0" - "@jest/fake-timers" "^27.4.0" - "@jest/types" "^27.4.0" - "@types/jsdom" "^16.2.4" - "@types/node" "*" - jest-mock "^27.4.0" - jest-util "^27.4.0" - jsdom "^16.6.0" - -jest-environment-node@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.4.0.tgz#df801e7c6d5f643f85deb164401d1f7e7645a150" - integrity sha512-VG3jLukpPhpffd7dUiC7+usyTG8Omytg4NOjGQtv88208O2AAMwcqpOAl1/uVOhUvbiegtVztyd3ZzAQtBxifA== - dependencies: - "@jest/environment" "^27.4.0" - "@jest/fake-timers" "^27.4.0" - "@jest/types" "^27.4.0" - "@types/node" "*" - jest-mock "^27.4.0" - jest-util "^27.4.0" - -jest-get-type@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.4.0.tgz#7503d2663fffa431638337b3998d39c5e928e9b5" - integrity sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ== - -jest-haste-map@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.4.0.tgz#d07e0db356bbaa2996f922facf23e85f53e6c3b7" - integrity sha512-xTXw1/JBJvdvTEsnTlRj9u9AAg2t23r5GHbtc5eC6AuEIRPfGWV02Y67U0p4K1KpEWLsk9Pb3b6Kfde/5a3C5A== - dependencies: - "@jest/types" "^27.4.0" - "@types/graceful-fs" "^4.1.2" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.4" - jest-regex-util "^27.4.0" - jest-serializer "^27.4.0" - jest-util "^27.4.0" - jest-worker "^27.4.0" - micromatch "^4.0.4" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.3.2" - -jest-jasmine2@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.4.0.tgz#756f504f15c42c6052d7a0a1ef6106453dedd00d" - integrity sha512-yvfWhQM/ZoxXfBZJdiKXCQxt18pOrciQUDqkT+EXtzhpKPIsbPdWCVv53NOqeWnRQR4HVhNgKK/fYD6BUXCxzA== - dependencies: - "@babel/traverse" "^7.1.0" - "@jest/environment" "^27.4.0" - "@jest/source-map" "^27.4.0" - "@jest/test-result" "^27.4.0" - "@jest/types" "^27.4.0" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - expect "^27.4.0" - is-generator-fn "^2.0.0" - jest-each "^27.4.0" - jest-matcher-utils "^27.4.0" - jest-message-util "^27.4.0" - jest-runtime "^27.4.0" - jest-snapshot "^27.4.0" - jest-util "^27.4.0" - pretty-format "^27.4.0" - throat "^6.0.1" - -jest-leak-detector@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.4.0.tgz#f1379e537a8e6c87e7775f6e4d2b7052f55385f2" - integrity sha512-d7QeqzIOVQeMI6VROLPNeYagcxPCvqYD6A34Ol9D+vPzs72omGXsGbuuJrChD51zuA4ESXcLYZ81L9JHr1VYGw== - dependencies: - jest-get-type "^27.4.0" - pretty-format "^27.4.0" - -jest-matcher-utils@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.4.0.tgz#0c9fee411f0450f045f9b49ec52aba231528b1fc" - integrity sha512-vBy1tEyuKiItYgV9x9ubccyadOy5xAAmDBgXk8dMppXBXG4glggrGcZvE+8l1r+te477bRcFLB/hRyGm5Tdxzw== - dependencies: - chalk "^4.0.0" - jest-diff "^27.4.0" - jest-get-type "^27.4.0" - pretty-format "^27.4.0" - -jest-message-util@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.4.0.tgz#8961c47cf8974590fa1a94dbf30953e2cb047576" - integrity sha512-2KmfpnxFwt+5CF0YST6U1IwFomX9gx2dmcAV/ZjzF9/4tlmieExl7Ch7D36l94mIxWTXhDuPji4XOvxRBdswrQ== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^27.4.0" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.4" - micromatch "^4.0.4" - pretty-format "^27.4.0" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-mock@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.4.0.tgz#b777dae3d761cd704895fab62f5cbbba0a18ae1b" - integrity sha512-hQMpGIFEjhb6rtOz4JZcZaMdQytXjm54tBif9rpXfdzbEgYZ9+JGOUNqdtu3n09KG95/zEVwRI07HAuoSV1Dxw== - dependencies: - "@jest/types" "^27.4.0" - "@types/node" "*" - -jest-pnp-resolver@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" - integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== - -jest-regex-util@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.4.0.tgz#e4c45b52653128843d07ad94aec34393ea14fbca" - integrity sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg== - -jest-resolve-dependencies@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.4.0.tgz#a86c941353047ace99758a4adbd950e049c67d9d" - integrity sha512-D+Ean4nLgbRqhWCSKJIWpC36O7itmZbVQjnHWLF4brAP0r2sGATXjjhERIaiBCt/V2IhCDcH0EvS+PA7gSrf5g== - dependencies: - "@jest/types" "^27.4.0" - jest-regex-util "^27.4.0" - jest-snapshot "^27.4.0" - -jest-resolve@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.4.0.tgz#1afbdf5938f9ad4808ed6ab31a9cf77c0f4b58f1" - integrity sha512-XF54RYG9a9fHTlovCwC5U49TVAfCkHLoJnMhgaT2AYif4E5BechlKUAlhYE4fkbr1J5LzP7O9qfgRA5JSR8HzQ== - dependencies: - "@jest/types" "^27.4.0" - chalk "^4.0.0" - graceful-fs "^4.2.4" - jest-haste-map "^27.4.0" - jest-pnp-resolver "^1.2.2" - jest-util "^27.4.0" - jest-validate "^27.4.0" - resolve "^1.20.0" - resolve.exports "^1.1.0" - slash "^3.0.0" - -jest-runner@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.4.0.tgz#bc08973f3ab9f5716505f538367a992dd9ef1cb2" - integrity sha512-ncnnOVQlqDorBAMNTuA2Htg3XJlnwAySpUBDmlJy4+WEwb5zB2cDLA3roPSMe0lVn8mGGXccl1/a8xwvE6txiQ== - dependencies: - "@jest/console" "^27.4.0" - "@jest/environment" "^27.4.0" - "@jest/test-result" "^27.4.0" - "@jest/transform" "^27.4.0" - "@jest/types" "^27.4.0" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.8.1" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-docblock "^27.4.0" - jest-environment-jsdom "^27.4.0" - jest-environment-node "^27.4.0" - jest-haste-map "^27.4.0" - jest-leak-detector "^27.4.0" - jest-message-util "^27.4.0" - jest-resolve "^27.4.0" - jest-runtime "^27.4.0" - jest-util "^27.4.0" - jest-worker "^27.4.0" - source-map-support "^0.5.6" - throat "^6.0.1" - -jest-runtime@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.4.0.tgz#1c923f55f10477f3a1adc410bd37e8a11b6c32a0" - integrity sha512-8IcQQFhVWWNq45wuDYooIDNdmhOVebOsIDOfXN/Xbw4h/6G1qy9+i5OND7Qmb4g+cSawK5C2tAdHcdR8Q9eSew== - dependencies: - "@jest/console" "^27.4.0" - "@jest/environment" "^27.4.0" - "@jest/globals" "^27.4.0" - "@jest/source-map" "^27.4.0" - "@jest/test-result" "^27.4.0" - "@jest/transform" "^27.4.0" - "@jest/types" "^27.4.0" - "@types/yargs" "^16.0.0" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - execa "^5.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.4" - jest-haste-map "^27.4.0" - jest-message-util "^27.4.0" - jest-mock "^27.4.0" - jest-regex-util "^27.4.0" - jest-resolve "^27.4.0" - jest-snapshot "^27.4.0" - jest-util "^27.4.0" - jest-validate "^27.4.0" - slash "^3.0.0" - strip-bom "^4.0.0" - yargs "^16.2.0" - -jest-serializer@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.4.0.tgz#34866586e1cae2388b7d12ffa2c7819edef5958a" - integrity sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ== - dependencies: - "@types/node" "*" - graceful-fs "^4.2.4" - -jest-snapshot@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.4.0.tgz#d9aa84bea524f0e6658bdcdbc6896e4ff33b108d" - integrity sha512-iOisfzB00tQE/rk+LzLzjbjElT4Lq26ZrYHX/1OfhVb7IZbu/2i4bkS7YK3fimfw3zleWRTleUMCmWGi+GCjpQ== - dependencies: - "@babel/core" "^7.7.2" - "@babel/generator" "^7.7.2" - "@babel/parser" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.0.0" - "@jest/transform" "^27.4.0" - "@jest/types" "^27.4.0" - "@types/babel__traverse" "^7.0.4" - "@types/prettier" "^2.1.5" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^27.4.0" - graceful-fs "^4.2.4" - jest-diff "^27.4.0" - jest-get-type "^27.4.0" - jest-haste-map "^27.4.0" - jest-matcher-utils "^27.4.0" - jest-message-util "^27.4.0" - jest-resolve "^27.4.0" - jest-util "^27.4.0" - natural-compare "^1.4.0" - pretty-format "^27.4.0" - semver "^7.3.2" - -jest-util@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.4.0.tgz#7b803e8a7da99728c7b1a7af74c33cb225df94d5" - integrity sha512-9HL5h/IWeg2u2dt0UIiseVRCnadh7CMPD4B9AeoEO23/NofaEfcPzIfl8dw45CpGHjP+xenw1viQYMd25DWquA== - dependencies: - "@jest/types" "^27.4.0" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.4" - picomatch "^2.2.3" - -jest-validate@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.4.0.tgz#911f6b681bbe4d13cf9b8411f3e84fe1b4a9ee05" - integrity sha512-Gsfh/KtS7fXDNzz3oKmB1F8dFVqWwqOwhUqEHhKM8Y0R0bJK8R2HLiuqKfnqfbuybdiGiVdzqaK5c0poZaQAew== - dependencies: - "@jest/types" "^27.4.0" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^27.4.0" - leven "^3.1.0" - pretty-format "^27.4.0" - -jest-watcher@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.4.0.tgz#1d38eb7a7cd3f488363e0757fa8a4934f5887817" - integrity sha512-0ZXzsp/NArW6IXxo4g7DP/nCJqS/OLCZyl08qzd8ANGSEoTsliivBumjUK5/0gvx/K4Oc60APNyTMfJJ6WENcg== - dependencies: - "@jest/test-result" "^27.4.0" - "@jest/types" "^27.4.0" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - jest-util "^27.4.0" - string-length "^4.0.1" - -jest-worker@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.4.0.tgz#fa10dddc611cbb47a4153543dd16a0c7e7fd745c" - integrity sha512-4WuKcUxtzxBoKOUFbt1MtTY9fJwPVD4aN/4Cgxee7OLetPZn5as2bjfZz98XSf2Zq1JFfhqPZpS+43BmWXKgCA== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-27.4.0.tgz#defb188c80e5f99d8f43398d334f97164a9a7aec" - integrity sha512-54SYE6EmGRoHS+9/OCspbb7tAD2WYAvBBXmny2Zp39/QgnNIWZD4KujhAZyRXHWASTBa9/WfXM2oekNBIOFV2A== - dependencies: - "@jest/core" "^27.4.0" - import-local "^3.0.2" - jest-cli "^27.4.0" - -joycon@^3.0.1: - version "3.1.0" - resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.1.0.tgz#33bb2b6b5a6849a1e251bed623bdf610f477d49f" - integrity sha512-5Y/YJghKF/IzaUXTut0JtbQyHfBShTaIsH7hHhGXEzYO07zWdWZm5hr3Q6miqhrwsRqqm3mgOnUEZdn+1aRxKQ== - -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-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -jsdom@^16.6.0: - version "16.7.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" - integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== - dependencies: - abab "^2.0.5" - acorn "^8.2.4" - acorn-globals "^6.0.0" - cssom "^0.4.4" - cssstyle "^2.3.0" - data-urls "^2.0.0" - decimal.js "^10.2.1" - domexception "^2.0.1" - escodegen "^2.0.0" - form-data "^3.0.0" - html-encoding-sniffer "^2.0.1" - http-proxy-agent "^4.0.1" - https-proxy-agent "^5.0.0" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.0" - parse5 "6.0.1" - saxes "^5.0.1" - symbol-tree "^3.2.4" - tough-cookie "^4.0.0" - w3c-hr-time "^1.0.2" - w3c-xmlserializer "^2.0.0" - webidl-conversions "^6.1.0" - whatwg-encoding "^1.0.5" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.5.0" - ws "^7.4.6" - xml-name-validator "^3.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -json-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-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= - -json5@^2.1.2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== - 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@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -lilconfig@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.4.tgz#f4507d043d7058b380b6a8f5cb7bcd4b34cee082" - integrity sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA== - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= - -lodash@^4.7.0: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -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: - 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" - -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" - -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - -mdn-data@2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" - integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== - dependencies: - braces "^3.0.1" - picomatch "^2.2.3" - -mime-db@1.51.0: - version "1.51.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" - integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== - -mime-types@^2.1.12, mime-types@^2.1.34: - version "2.1.34" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" - integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== - dependencies: - mime-db "1.51.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== - -mini-svg-data-uri@^1.2.3: - version "1.4.4" - resolved "https://registry.yarnpkg.com/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz#8ab0aabcdf8c29ad5693ca595af19dd2ead09939" - integrity sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg== - -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@^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== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -nanoid@^3.1.30: - version "3.2.0" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.2.0.tgz#62667522da6673971cca916a6d3eff3f415ff80c" - integrity sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= - -node-modules-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" - integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= - -node-releases@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" - integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== - -normalize-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-url@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" - integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== - -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -nth-check@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" - integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== - dependencies: - boolbase "^1.0.0" - -nwsapi@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" - integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== - -object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.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" - -onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.3" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-queue@^6.6.2: - version "6.6.2" - resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" - integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== - dependencies: - eventemitter3 "^4.0.4" - p-timeout "^3.2.0" - -p-timeout@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" - integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== - dependencies: - p-finally "^1.0.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== - -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-json@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parse5@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - -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.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.6, path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -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== - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.2, picomatch@^2.2.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== - -pirates@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" - integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== - dependencies: - node-modules-regexp "^1.0.0" - -pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -postcss-calc@^8.2.0: - version "8.2.3" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.2.3.tgz#53b95ce93de19213c2a5fdd71277a81690ef41d0" - integrity sha512-EGM2EBBWqP57N0E7N7WOLT116PJ39dwHVU01WO4XPPQLJfkL2xVgkMZ+TZvCfapj/uJH07UEfKHQNPHzSw/14Q== - dependencies: - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" - -postcss-colormin@^5.2.4: - version "5.2.4" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.2.4.tgz#7726d3f3d24f111d39faff50a6500688225d5324" - integrity sha512-rYlC5015aNqVQt/B6Cy156g7sH5tRUJGmT9xeagYthtKehetbKx7jHxhyLpulP4bs4vbp8u/B2rac0J7S7qPQg== - dependencies: - browserslist "^4.16.6" - caniuse-api "^3.0.0" - colord "^2.9.1" - postcss-value-parser "^4.2.0" - -postcss-convert-values@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.0.3.tgz#492db08a28af84d57651f10edc8f6c8fb2f6df40" - integrity sha512-fVkjHm2T0PSMqXUCIhHNWVGjhB9mHEWX2GboVs7j3iCgr6FpIl9c/IdXy0PHWZSQ9LFTRgmj98amxJE6KOnlsA== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-discard-comments@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.0.2.tgz#811ed34e2b6c40713daab0beb4d7a04125927dcd" - integrity sha512-6VQ3pYTsJHEsN2Bic88Aa7J/Brn4Bv8j/rqaFQZkH+pcVkKYwxCIvoMQkykEW7fBjmofdTnQgcivt5CCBJhtrg== - -postcss-discard-duplicates@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.2.tgz#61076f3d256351bdaac8e20aade730fef0609f44" - integrity sha512-LKY81YjUjc78p6rbXIsnppsaFo8XzCoMZkXVILJU//sK0DgPkPSpuq/cZvHss3EtdKvWNYgWzQL+wiJFtEET4g== - -postcss-discard-empty@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.0.2.tgz#0676a9bcfc44bb00d338352a45ab80845a31d8f0" - integrity sha512-SxBsbTjlsKUvZLL+dMrdWauuNZU8TBq5IOL/DHa6jBUSXFEwmDqeXRfTIK/FQpPTa8MJMxEHjSV3UbiuyLARPQ== - -postcss-discard-overridden@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.0.3.tgz#004b9818cabb407e60616509267567150b327a3f" - integrity sha512-yRTXknIZA4k8Yo4FiF1xbsLj/VBxfXEWxJNIrtIy6HC9KQ4xJxcPtoaaskh6QptCGrrcGnhKsTsENTRPZOBu4g== - -postcss-merge-longhand@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.0.5.tgz#cbc217ca22fb5a3e6ee22a6a1aa6920ec1f3c628" - integrity sha512-R2BCPJJ/U2oh1uTWEYn9CcJ7MMcQ1iIbj9wfr2s/zHu5om5MP/ewKdaunpfJqR1WYzqCsgnXuRoVXPAzxdqy8g== - dependencies: - postcss-value-parser "^4.2.0" - stylehacks "^5.0.2" - -postcss-merge-rules@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.0.5.tgz#2a18669ec214019884a60f0a0d356803a8138366" - integrity sha512-3Oa26/Pb9VOFVksJjFG45SNoe4nhGvJ2Uc6TlRimqF8uhfOCEhVCaJ3rvEat5UFOn2UZqTY5Da8dFgCh3Iq0Ug== - dependencies: - browserslist "^4.16.6" - caniuse-api "^3.0.0" - cssnano-utils "^3.0.1" - postcss-selector-parser "^6.0.5" - -postcss-minify-font-values@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.0.3.tgz#48c455c4cd980ecd07ac9bf3fc58e9d8a2ae4168" - integrity sha512-bC45rVzEwsLhv/cL1eCjoo2OOjbSk9I7HKFBYnBvtyuIZlf7uMipMATXtA0Fc3jwPo3wuPIW1jRJWKzflMh1sA== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-minify-gradients@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.0.5.tgz#a5572b9c98ed52cbd7414db24b873f8b9e418290" - integrity sha512-/YjvXs8PepsoiZAIpjstOO4IHKwFAqYNqbA1yVdqklM84tbUUneh6omJxGlRlF3mi6K5Pa067Mg6IwqEnYC8Zg== - dependencies: - colord "^2.9.1" - cssnano-utils "^3.0.1" - postcss-value-parser "^4.2.0" - -postcss-minify-params@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.0.4.tgz#230a4d04456609e614db1d48c2eebc21f6490a45" - integrity sha512-Z0vjod9lRZEmEPfEmA2sCfjbfEEFKefMD3RDIQSUfXK4LpCyWkX1CniUgyNvnjJFLDPSxtgKzozhHhPHKoeGkg== - dependencies: - browserslist "^4.16.6" - cssnano-utils "^3.0.1" - postcss-value-parser "^4.2.0" - -postcss-minify-selectors@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.1.2.tgz#bc9698f713b9dab7f44f1ec30643fcbad9a043c0" - integrity sha512-gpn1nJDMCf3g32y/7kl+jsdamhiYT+/zmEt57RoT9GmzlixBNRPohI7k8UIHelLABhdLf3MSZhtM33xuH5eQOQ== - dependencies: - postcss-selector-parser "^6.0.5" - -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@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.0.2.tgz#eb6130c8a8e950ce25f9ea512de1d9d6a6f81439" - integrity sha512-fEMhYXzO8My+gC009qDc/3bgnFP8Fv1Ic8uw4ec4YTlhIOw63tGPk1YFd7fk9bZUf1DAbkhiL/QPWs9JLqdF2g== - -postcss-normalize-display-values@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.2.tgz#8b5273c6c7d0a445e6ef226b8a5bb3204a55fb99" - integrity sha512-RxXoJPUR0shSjkMMzgEZDjGPrgXUVYyWA/YwQRicb48H15OClPuaDR7tYokLAlGZ2tCSENEN5WxjgxSD5m4cUw== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-positions@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.0.3.tgz#b63fcc4ff5fbf65934fafaf83270b2da214711d1" - integrity sha512-U+rmhjrNBvIGYqr/1tD4wXPFFMKUbXsYXvlUCzLi0tOCUS6LoeEAnmVXXJY/MEB/1CKZZwBSs2tmzGawcygVBA== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-repeat-style@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.3.tgz#488c0ad8aac0fa4f66ef56cc8d604b3fd9bf705f" - integrity sha512-uk1+xYx0AMbA3nLSNhbDrqbf/rx+Iuq5tVad2VNyaxxJzx79oGieJ6D9F6AfOL2GtiIbP7vTYlpYHtG+ERFXTg== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-string@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.0.3.tgz#49e0a1d58a119d5435ef21893ad03136a6e8f0e6" - integrity sha512-Mf2V4JbIDboNGQhW6xW0YREDiYXoX3WrD3EjKkjvnpAJ6W4qqjLnK/c9aioyVFaWWHVdP5zVRw/9DI5S3oLDFw== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-timing-functions@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.2.tgz#db4f4f49721f47667afd1fdc5edb032f8d9cdb2e" - integrity sha512-Ao0PP6MoYsRU1LxeVUW740ioknvdIUmfr6uAA3xWlQJ9s69/Tupy8qwhuKG3xWfl+KvLMAP9p2WXF9cwuk/7Bg== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-unicode@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.3.tgz#10f0d30093598a58c48a616491cc7fa53256dd43" - integrity sha512-uNC7BmS/7h6to2UWa4RFH8sOTzu2O9dVWPE/F9Vm9GdhONiD/c1kNaCLbmsFHlKWcEx7alNUChQ+jH/QAlqsQw== - dependencies: - browserslist "^4.16.6" - postcss-value-parser "^4.2.0" - -postcss-normalize-url@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.0.4.tgz#3b0322c425e31dd275174d0d5db0e466f50810fb" - integrity sha512-cNj3RzK2pgQQyNp7dzq0dqpUpQ/wYtdDZM3DepPmFjCmYIfceuD9VIAcOdvrNetjIU65g1B4uwdP/Krf6AFdXg== - dependencies: - normalize-url "^6.0.1" - postcss-value-parser "^4.2.0" - -postcss-normalize-whitespace@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.3.tgz#fb6bcc9ff2f834448b802657c7acd0956f4591d1" - integrity sha512-333JWRnX655fSoUbufJ10HJop3c8mrpKkCCUnEmgz/Cb/QEtW+/TMZwDAUt4lnwqP6tCCk0x0b58jqvDgiQm/A== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-ordered-values@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.0.4.tgz#f799dca87a7f17526d31a20085e61768d0b00534" - integrity sha512-taKtGDZtyYUMVYkg+MuJeBUiTF6cGHZmo/qcW7ibvW79UlyKuSHbo6dpCIiqI+j9oJsXWzP+ovIxoyLDOeQFdw== - dependencies: - cssnano-utils "^3.0.1" - postcss-value-parser "^4.2.0" - -postcss-reduce-initial@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.0.2.tgz#fa424ce8aa88a89bc0b6d0f94871b24abe94c048" - integrity sha512-v/kbAAQ+S1V5v9TJvbGkV98V2ERPdU6XvMcKMjqAlYiJ2NtsHGlKYLPjWWcXlaTKNxooId7BGxeraK8qXvzKtw== - dependencies: - browserslist "^4.16.6" - caniuse-api "^3.0.0" - -postcss-reduce-transforms@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.3.tgz#df60fab34698a43073e8b87938c71df7a3b040ac" - integrity sha512-yDnTUab5i7auHiNwdcL1f+pBnqQFf+7eC4cbC7D8Lc1FkvNZhtpkdad+9U4wDdFb84haupMf0rA/Zc5LcTe/3A== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5: - version "6.0.9" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz#ee71c3b9ff63d9cd130838876c13a2ec1a992b2f" - integrity sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-svgo@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.0.3.tgz#d945185756e5dfaae07f9edb0d3cae7ff79f9b30" - integrity sha512-41XZUA1wNDAZrQ3XgWREL/M2zSw8LJPvb5ZWivljBsUQAGoEKMYm6okHsTjJxKYI4M75RQEH4KYlEM52VwdXVA== - dependencies: - postcss-value-parser "^4.1.0" - svgo "^2.7.0" - -postcss-unique-selectors@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.0.3.tgz#07fd116a8fbd9202e7030f7c4952e7b52c26c63d" - integrity sha512-V5tX2hadSSn+miVCluuK1IDGy+7jAXSOfRZ2DQ+s/4uQZb/orDYBjH0CHgFrXsRw78p4QTuEFA9kI6C956UnHQ== - dependencies: - postcss-selector-parser "^6.0.5" - -postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" - integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== - -postcss@^8, postcss@^8.4.5: - version "8.4.5" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.5.tgz#bae665764dfd4c6fcc24dc0fdf7e7aa00cc77f95" - integrity sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg== - dependencies: - nanoid "^3.1.30" - picocolors "^1.0.0" - source-map-js "^1.0.1" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= - -pretty-format@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.4.0.tgz#440a7b86612a18b0865831a6d8585d989a5420e9" - integrity sha512-n0QR6hMREfp6nLzfVksXMAfIxk1ffOOfbb/FzKHFmRtn9iJKaZXB8WMzLr8a72IASShEAhqK06nlwp1gVWgqKg== - dependencies: - "@jest/types" "^27.4.0" - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^17.0.1" - -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -prompts@^2.0.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -psl@^1.1.33: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -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== - -query-string@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-7.1.0.tgz#96b88f27b39794f97b8c8ccd060bc900495078ef" - integrity sha512-wnJ8covk+S9isYR5JIXPt93kFUmI2fQ4R/8130fuq+qwLiGVTurg7Klodgfw4NSz/oe7xnyi09y3lSrogUeM3g== - dependencies: - decode-uri-component "^0.2.0" - filter-obj "^1.1.0" - split-on-first "^1.0.0" - strict-uri-encode "^2.0.0" - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -react-is@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== - -regenerate-unicode-properties@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz#54d09c7115e1f53dc2314a974b32c1c344efe326" - integrity sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA== - dependencies: - regenerate "^1.4.2" - -regenerate@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== - -regenerator-runtime@^0.13.4: - version "0.13.9" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" - integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== - -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: - "@babel/runtime" "^7.8.4" - -regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - -regexpu-core@^4.7.1: - version "4.8.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.8.0.tgz#e5605ba361b67b1718478501327502f4479a98f0" - integrity sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg== - dependencies: - regenerate "^1.4.2" - regenerate-unicode-properties "^9.0.0" - regjsgen "^0.5.2" - regjsparser "^0.7.0" - unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.0.0" - -regjsgen@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" - integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== - -regjsparser@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.7.0.tgz#a6b667b54c885e18b52554cb4960ef71187e9968" - integrity sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ== - dependencies: - jsesc "~0.5.0" - -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-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -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-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve.exports@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" - integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== - -resolve@^1.14.2, resolve@^1.20.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== - dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" - -resolve@^1.21.0: - version "1.22.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" - integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== - dependencies: - is-core-module "^2.8.1" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -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== - -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" - -rollup-plugin-dts@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/rollup-plugin-dts/-/rollup-plugin-dts-4.0.1.tgz#930cbd5aaaa64a55e895ecd6ae8234e1a5467710" - integrity sha512-DNv5F8pro/r0Hkx3JWKRtJZocDnqXfgypoajeiaNq134rYaFcEIl/oas5PogD1qexMadVijsHyVko1Chig0OOQ== - dependencies: - magic-string "^0.25.7" - optionalDependencies: - "@babel/code-frame" "^7.14.5" - -rollup-plugin-esbuild@^4.7.2: - version "4.7.2" - resolved "https://registry.yarnpkg.com/rollup-plugin-esbuild/-/rollup-plugin-esbuild-4.7.2.tgz#1a496a9f96257cdf5ed800e818932859232471f8" - integrity sha512-rBS2hTedtG+wL/yyIWQ84zju5rtfF15gkaCLN0vsWGmBdRd0UPm52meAwkmrsPQf3mB/H2o+k9Q8Ce8A66SE5A== - dependencies: - "@rollup/pluginutils" "^4.1.1" - joycon "^3.0.1" - jsonc-parser "^3.0.0" - -rollup-plugin-styles@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-styles/-/rollup-plugin-styles-4.0.0.tgz#472f104d33edda27fb089b63a315e31531611826" - integrity sha512-A2K2sao84OsTmDxXG83JTCdXWrmgvQkkI38XDat46rdtpGMRm9tSYqeCdlwwGDJF4kKIafhV1mUidqu8MxUGig== - dependencies: - "@rollup/pluginutils" "^4.1.2" - "@types/cssnano" "^5.0.0" - cosmiconfig "^7.0.1" - cssnano "^5.0.15" - fs-extra "^10.0.0" - icss-utils "^5.1.0" - mime-types "^2.1.34" - p-queue "^6.6.2" - postcss "^8.4.5" - 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.2.0" - query-string "^7.1.0" - resolve "^1.21.0" - source-map-js "^1.0.1" - tslib "^2.3.1" - -rollup@^2.60.1: - version "2.60.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.60.1.tgz#4b34cd247f09b421f10a3c9286eda2ecf9972079" - integrity sha512-akwfnpjY0rXEDSn1UTVfKXJhPsEBu+imi1gqBA1ZkHGydUnkV/fWCC90P7rDaLEW8KTwBcS1G3N4893Ndz+jwg== - optionalDependencies: - fsevents "~2.3.2" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -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== - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -saxes@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" - integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== - dependencies: - xmlchars "^2.2.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@^6.0.0, semver@^6.1.1, semver@^6.1.2, 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.2.1, semver@^7.3.2, semver@^7.3.5: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== - dependencies: - lru-cache "^6.0.0" - -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, signal-exit@^3.0.3: - version "3.0.6" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af" - integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ== - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -source-map-js@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== - -source-map-support@^0.5.6: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.5.0: - 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, source-map@^0.6.1, 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: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - -sourcemap-codec@^1.4.4: - version "1.4.8" - resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" - integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== - -split-on-first@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" - integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - -stack-utils@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" - integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== - dependencies: - escape-string-regexp "^2.0.0" - -strict-uri-encode@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" - integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= - -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" - -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -stylehacks@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.0.2.tgz#fa10e5181c6e8dc0bddb4a3fb372e9ac42bba2ad" - integrity sha512-114zeJdOpTrbQYRD4OU5UWJ99LKUaqCPJTU1HQ/n3q3BwmllFN8kHENaLnOeqVq6AhXrWfxHNZTl33iJ4oy3cQ== - dependencies: - browserslist "^4.16.6" - postcss-selector-parser "^6.0.4" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.0, supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-hyperlinks@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" - integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -svgo@^2.7.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" - integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== - dependencies: - "@trysound/sax" "0.2.0" - commander "^7.2.0" - css-select "^4.1.3" - css-tree "^1.1.3" - csso "^4.2.0" - picocolors "^1.0.0" - stable "^0.1.8" - -symbol-tree@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== - -terminal-link@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" - integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== - dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.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" - -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= - -throat@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" - integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== - -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= - -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -tough-cookie@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" - integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.1.2" - -tr46@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" - integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== - dependencies: - punycode "^2.1.1" - -tslib@^1.8.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" - integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== - -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= - dependencies: - prelude-ls "~1.1.2" - -type-detect@4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -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" - -typescript@^4.5.2: - version "4.5.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.2.tgz#8ac1fba9f52256fdb06fb89e4122fa6a346c2998" - integrity sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw== - -unicode-canonical-property-names-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" - integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== - -unicode-match-property-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" - integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== - dependencies: - unicode-canonical-property-names-ecmascript "^2.0.0" - unicode-property-aliases-ecmascript "^2.0.0" - -unicode-match-property-value-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714" - integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== - -unicode-property-aliases-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" - integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== - -universalify@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -util-deprecate@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -v8-compile-cache@^2.0.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== - -v8-to-istanbul@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz#0aeb763894f1a0a1676adf8a8b7612a38902446c" - integrity sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - source-map "^0.7.3" - -w3c-hr-time@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" - integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== - dependencies: - browser-process-hrtime "^1.0.0" - -w3c-xmlserializer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" - integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== - dependencies: - xml-name-validator "^3.0.0" - -walker@^1.0.7: - version "1.0.8" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - -webidl-conversions@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" - integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== - -webidl-conversions@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" - integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== - -whatwg-encoding@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" - integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== - dependencies: - iconv-lite "0.4.24" - -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== - -whatwg-url@^8.0.0, whatwg-url@^8.5.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" - integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== - dependencies: - lodash "^4.7.0" - tr46 "^2.1.0" - webidl-conversions "^6.1.0" - -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" - -word-wrap@^1.2.3, word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -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= - -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -ws@^7.4.6: - version "7.5.6" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b" - integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== - -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" - integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== - -xmlchars@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yaml@^1.10.0, yaml@^1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" - integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== - -yargs-parser@^20.2.2: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs@^16.2.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" diff --git a/javascript/js_library_pipeline.bzl b/javascript/js_library_pipeline.bzl deleted file mode 100644 index 1f59f4c..0000000 --- a/javascript/js_library_pipeline.bzl +++ /dev/null @@ -1,147 +0,0 @@ -load("//javascript/package_json:package_json.bzl", "create_package_json") -load("//javascript/rollup:rollup_build.bzl", "rollup_bin_build", "rollup_build") -load("@build_bazel_rules_nodejs//:index.bzl", "js_library", "pkg_npm") -load("@npm//jest-cli:index.bzl", "jest_test") -load("@npm//eslint:index.bzl", "eslint_test") -load(":utils.bzl", "filter_empty", "include_exts", "remove_duplicates", "without_tests") - -BUILD_DATA = [ - "@npm//rollup-plugin-dts", - "@npm//rollup-plugin-esbuild", - "@npm//rollup-plugin-styles", - "@npm//@rollup/plugin-json", - "@npm//@rollup/plugin-image", -] - -PLACEHOLDER_VERSION = "0.0.0-PLACEHOLDER" - -def js_library_pipeline( - name, - srcs, - entry, - bin_entry = None, - bin_name = None, - out_dir = "dist", - bundle = False, - dependencies = [], - peer_dependencies = [], - data = [], - build_data = [], - build_label = None, - test_data = [], - lint_data = [], - lint_exts = [".ts", ".js", ".tsx", ".jsx"], - js_library_data = [], - test_env = {}, - create_package_json_opts = {}, - placeholder_version = PLACEHOLDER_VERSION, - registry = "https://registry.npmjs.org", - version_file = "//:VERSION", - root_package_json = "//:package.json", - typings = [], - private = False, - test_file_pattern = [ - "_tests_", - ".test.", - ], - ts_config = "//:tsconfig.json", - jest_config = "//:jest.config.js", - eslint_config = "//:.eslintrc.js"): - create_package_json_name = "%s-package_json" % name - js_build_name = build_label if build_label else "%s-js_build" % name - js_bin_build_name = "%s-js_bin_build" % name if bin_entry else None - - create_package_json( - name = create_package_json_name, - package_name = name, - entry = entry, - private = private, - bin_entry = bin_entry, - bin_name = bin_name, - out_dir = out_dir, - registry = registry, - placeholder_version = placeholder_version, - dependencies = dependencies, - peer_dependencies = peer_dependencies, - root_package_json = root_package_json, - **create_package_json_opts - ) - - all_build_data = remove_duplicates(filter_empty(data + BUILD_DATA + build_data + dependencies + peer_dependencies + [":%s" % create_package_json_name, ts_config] + typings)) - - if not build_label: - rollup_build( - name = js_build_name, - entry = entry, - out_dir = out_dir, - srcs = srcs, - data = all_build_data, - ) - - for t in ["cjs", "esm", "types"]: - native.filegroup( - name = "%s-%s" % (name, t), - srcs = [":%s" % js_build_name], - output_group = t, - ) - - if bin_entry: - rollup_bin_build( - name = js_bin_build_name, - entry = bin_entry, - out_dir = out_dir, - bin_name = bin_name, - srcs = srcs, - data = all_build_data, - ) - - js_library( - visibility = ["//visibility:public"], - name = name, - srcs = without_tests(srcs, test_file_pattern), - package_name = name, - deps = remove_duplicates(filter_empty([ - ":%s" % create_package_json_name, - ":%s" % js_build_name, - (":%s" % js_bin_build_name) if bin_entry else None, - ] + dependencies + peer_dependencies + js_library_data)), - ) - - eslint_test( - name = "%s-lint" % name, - data = remove_duplicates(filter_empty([eslint_config] + data + lint_data + test_data + dependencies + peer_dependencies + srcs)), - args = [ - "--ext", - ",".join(lint_exts), - ] + ["$(execpath %s)" % (f) for f in include_exts(srcs, lint_exts)], - ) - - jest_test( - name = "%s-unit" % name, - env = dict(test_env, **{ - "JEST_JUNIT_OUTPUT_FILE": "$XML_OUTPUT_FILE", - # Unset the coverage_dir so the default rules don't try to gather coverage - "COVERAGE_DIR": "", - }), - args = [ - "--no-cache", - "--ci", - "--colors", - ], - data = remove_duplicates(filter_empty([jest_config] + data + test_data + dependencies + peer_dependencies + srcs)), - ) - - pkg_npm( - name = "pkg_npm", - package_name = name, - deps = [":%s" % name], - tags = filter_empty([ - "do-not-publish" if private else None, - ]), - substitutions = { - "__VERSION__": "{STABLE_VERSION}", - "0.0.0-PLACEHOLDER": "{STABLE_VERSION}", - "__GIT_COMMIT__": "{STABLE_GIT_COMMIT}", - }, - validate = False, - ) diff --git a/javascript/next/BUILD b/javascript/next/BUILD deleted file mode 100644 index 891a344..0000000 --- a/javascript/next/BUILD +++ /dev/null @@ -1,11 +0,0 @@ -load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary") - -package(default_visibility = ["//visibility:public"]) - -nodejs_binary( - name = "next_build", - data = [ - "@npm//next", - ], - entry_point = ":next.build.js", -) diff --git a/javascript/next/next.build.js b/javascript/next/next.build.js deleted file mode 100644 index bea20af..0000000 --- a/javascript/next/next.build.js +++ /dev/null @@ -1,77 +0,0 @@ -const nextBuild = require("next/dist/build").default; -const nextExport = require('next/dist/export').default; -const { trace } = require('next/dist/trace'); - -const fse = require('fs-extra'); -const path = require("path"); - -main(process.argv.slice(2)).catch((err) => { - console.error(err); - process.exitCode = 1; -}); - -async function handleSubstitutions(folderOrFile, substitutions) { - if (Object.keys(substitutions).length === 0) { - return; - } - - if (await fse.statSync(folderOrFile).isDirectory()) { - const files = await fse.readdir(folderOrFile); - for (const file of files) { - await handleSubstitutions(path.join(folderOrFile, file), substitutions); - } - - return; - } - - let contents = await fse.readFile(folderOrFile, 'utf-8'); - const originalContents = contents; - for (const key in substitutions) { - const value = substitutions[key]; - contents = contents.replace(new RegExp(key, 'g'), value); - } - - // If the contents didn't change (i.e. no substitutions were made), don't write it out - // This will also fix non-utf8 files from changing - if (contents !== originalContents) { - await fse.writeFile(folderOrFile, contents); - } -} - -async function main(argv) { - const [_1, srcDir, _2, outDir, _3, sub, _4, statusFile, ] = argv; - - const substitutions = JSON.parse(sub); - - if (statusFile) { - (await fse.readFile(statusFile, 'utf-8')).split('\n').forEach(line => { - const firstSpace = line.indexOf(' '); - const varName = line.substring(0, firstSpace); - const varVal = line.substring(firstSpace + 1); - process.env[varName] = varVal; - - // Swap out anything referencing the stamped file with the actual value - Object.keys(substitutions).forEach(key => { - if (substitutions[key] === varName) { - substitutions[key] = varVal; - } - }); - }) - } - - const rootDir = path.resolve(srcDir); - const distDir = path.resolve(outDir); - - await nextBuild(rootDir, null, false, true, false); - - await nextExport(rootDir, { - threads: 6, - outdir: path.join(rootDir, 'out') - }, trace('bazel-export')); - - await fse.move(path.join(rootDir, 'out'), distDir, { - overwrite: true - }); - - await handleSubstitutions(distDir, substitutions); -} \ No newline at end of file diff --git a/javascript/next/next_build.bzl b/javascript/next/next_build.bzl deleted file mode 100644 index 8a38848..0000000 --- a/javascript/next/next_build.bzl +++ /dev/null @@ -1,57 +0,0 @@ -load("@build_bazel_rules_nodejs//:providers.bzl", "node_modules_aspect", "run_node", "NODE_CONTEXT_ATTRS", "NodeContextInfo") -load("@build_bazel_rules_nodejs//internal/linker:link_node_modules.bzl", "module_mappings_aspect") -load("@rules_player//javascript:utils.bzl", "get_dep_files") - -NEXT_ATTRS = dict(NODE_CONTEXT_ATTRS, **{ - # Dependencies needed to build the pkg - "data": attr.label_list( - default = [], - aspects = [module_mappings_aspect, node_modules_aspect], - allow_files = True, - ), - "env": attr.string_dict(), - "substitutions": attr.string_dict(), - "srcs": attr.label_list(default = [], allow_files = True), - "_next": attr.label(default = Label("//javascript/next:next_build"), executable = True, cfg = "host"), -}) - -def _next_export(ctx): - next_dir = ctx.actions.declare_directory(ctx.label.name) - deps_inputs = get_dep_files(ctx.attr.data) - - stamp = ctx.attr.node_context_data[NodeContextInfo].stamp - - stamp_args = [] - stamp_inputs = [] - - if stamp: - stamp_args = ['--stamp-file', ctx.info_file.path] - stamp_inputs = [ctx.info_file] - - run_node( - ctx, - inputs = ctx.files.srcs + deps_inputs + stamp_inputs, - outputs = [next_dir], - env = ctx.attr.env, - arguments = [ - "--root-dir", - ctx.label.package, - "--out_dir", - next_dir.path, - "--substitutions", - json.encode(ctx.attr.substitutions), - ] + stamp_args, - executable = "_next", - mnemonic = "Next", - ) - - return [ - DefaultInfo( - files = depset([next_dir]), - ), - ] - -next_export = rule( - implementation = _next_export, - attrs = NEXT_ATTRS, -) diff --git a/javascript/package_json/BUILD b/javascript/package_json/BUILD deleted file mode 100644 index cdf4302..0000000 --- a/javascript/package_json/BUILD +++ /dev/null @@ -1,18 +0,0 @@ -load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary") - -package(default_visibility = ["//visibility:public"]) - -nodejs_binary( - name = "create_package_json", - entry_point = "create_package_json.js", -) - -nodejs_binary( - name = "merge_json", - entry_point = "merge_json.js", -) - -nodejs_binary( - name = "contributors", - entry_point = "contributors.js", -) \ No newline at end of file diff --git a/javascript/package_json/contributors.bzl b/javascript/package_json/contributors.bzl deleted file mode 100644 index 61e52f0..0000000 --- a/javascript/package_json/contributors.bzl +++ /dev/null @@ -1,40 +0,0 @@ -""" -Module for building a contributor information about a directory. -""" - -load("@build_bazel_rules_nodejs//:providers.bzl", "node_modules_aspect", "run_node") - -_CREATE_CONTRIBUTORS_JSON = Label("//javascript/package_json:contributors") - -create_contribUTORS_ATTRS = { - # All contrib src file - "all_contributors": attr.label(allow_single_file = [".all-contributorsrc"], ), - - # Internal reference to script to generate the contributors - "_create_contributors": attr.label(default = _CREATE_CONTRIBUTORS_JSON, executable = True, cfg = "host"), -} - -def _create_contributors_impl(ctx): - contrib_json = ctx.actions.declare_file("_contributors.json") - - run_node( - ctx, - inputs = ctx.files.all_contributors, - outputs = [contrib_json], - arguments = [json.encode({ - "output_file": contrib_json.path, - "all_contributors": ctx.file.all_contributors.path, - })], - executable = "_create_contributors", - ) - - return [ - DefaultInfo( - files = depset([contrib_json]), - ), - ] - -create_contributors = rule( - implementation = _create_contributors_impl, - attrs = create_contribUTORS_ATTRS, -) diff --git a/javascript/package_json/contributors.js b/javascript/package_json/contributors.js deleted file mode 100644 index 51025ab..0000000 --- a/javascript/package_json/contributors.js +++ /dev/null @@ -1,25 +0,0 @@ -const fs = require("fs"); -const { execSync } = require("child_process"); - -const main = ([config]) => { - const { output_file, all_contributors } = JSON.parse(config); - const allContrib = JSON.parse(fs.readFileSync(all_contributors, "utf-8")); - const contributors = []; - - allContrib.contributors.forEach(contrib => { - contributors.push({ - name: contrib.name, - url: contrib.profile - }) - }) - - fs.writeFileSync(output_file, JSON.stringify({ contributors }, null, 2)); -}; - -if (require.main === module) { - try { - process.exitCode = main(process.argv.slice(2)); - } catch (e) { - console.error(process.argv[1], e); - } -} diff --git a/javascript/package_json/create_package_json.js b/javascript/package_json/create_package_json.js deleted file mode 100644 index c0abee1..0000000 --- a/javascript/package_json/create_package_json.js +++ /dev/null @@ -1,84 +0,0 @@ -const fs = require("fs"); -const process = require("process"); -const path = require('path') - -const main = ([config]) => { - const { - name, - peer_dependencies, - dependencies, - local_deps, - output_file, - bin_name, - bin_entry, - placeholder_version, - root_package_json, - base_package_json, - additional_properties, - out_dir, - registry, - private - } = JSON.parse(config); - - const rootPackageJson = JSON.parse(fs.readFileSync(root_package_json, 'utf-8')); - const createDependencyObject = deps => { - return Object.fromEntries(deps.map(depName => { - if (local_deps.includes(depName)) { - return [depName, placeholder_version] - } - - if (rootPackageJson.dependencies[depName]) { - return [depName, rootPackageJson.dependencies[depName]] - } - - throw new Error(`Unable to resolve version for ${depName}`); - })) - } - - let base_package_json_props = {}; - if (base_package_json) { - base_package_json_props = JSON.parse(fs.readFileSync(base_package_json, 'utf-8')); - } - - let bin_props = {}; - - if (bin_entry) { - const bin_path = path.join(out_dir, bin_entry); - - bin_props = { - "bin": bin_name ? { [bin_name]: bin_path } : bin_path - } - } - - let publishConfig = undefined; - - if (registry) { - publishConfig = { - "registry": registry, - } - } - - fs.writeFileSync(output_file, JSON.stringify({ - name, - version: placeholder_version, - private, - publishConfig, - peerDependencies: createDependencyObject(peer_dependencies), - dependencies: createDependencyObject(dependencies), - main: path.join(out_dir, 'index.cjs.js'), - module: path.join(out_dir, 'index.esm.js'), - typings: path.join(out_dir, 'index.d.ts'), - ...bin_props, - ...base_package_json_props, - ...JSON.parse(additional_properties), - }, null, 2)) - -} - -if (require.main === module) { - try { - process.exitCode = main(process.argv.slice(2)); - } catch (e) { - console.error(process.argv[1], e); - } -} \ No newline at end of file diff --git a/javascript/package_json/index.bzl b/javascript/package_json/index.bzl deleted file mode 100644 index d621d57..0000000 --- a/javascript/package_json/index.bzl +++ /dev/null @@ -1,7 +0,0 @@ -load(":merge_json.bzl", _merge_json = "merge_json") -load(":package_json.bzl", _create_package_json = "create_package_json") -load(":contributors.bzl", _create_contributors = "create_contributors") - -merge_json = _merge_json -create_package_json = _create_package_json -create_contributors = _create_contributors \ No newline at end of file diff --git a/javascript/package_json/merge_json.bzl b/javascript/package_json/merge_json.bzl deleted file mode 100644 index 8273917..0000000 --- a/javascript/package_json/merge_json.bzl +++ /dev/null @@ -1,41 +0,0 @@ -""" -Module for merging multiple JSON files together into one -""" - -load("@build_bazel_rules_nodejs//:providers.bzl", "node_modules_aspect", "run_node") - -_MERGE_JSON = Label("//javascript/package_json:merge_json") - -MERGE_JSON_ATTRS = { - # List of files to merge -- later files will override earlier ones - "srcs": attr.label_list(default = [], allow_files = True), - - # Internal reference to script to merge attributes and files together - "_merge_json": attr.label(default = _MERGE_JSON, executable = True, cfg = "host"), -} - - -def _merge_json_impl(ctx): - merged_json = ctx.actions.declare_file("merged.json") - - run_node( - ctx, - inputs = ctx.files.srcs, - outputs = [merged_json], - arguments = [json.encode({ - "output_file": merged_json.path, - "input_files": [f.path for f in ctx.files.srcs], - })], - executable = "_merge_json", - ) - - return [ - DefaultInfo( - files = depset([merged_json]), - ), - ] - -merge_json = rule( - implementation = _merge_json_impl, - attrs = MERGE_JSON_ATTRS, -) diff --git a/javascript/package_json/merge_json.js b/javascript/package_json/merge_json.js deleted file mode 100644 index 5bd1d9f..0000000 --- a/javascript/package_json/merge_json.js +++ /dev/null @@ -1,24 +0,0 @@ -const fs = require('fs'); - -const main = ([config]) => { - const { input_files, output_file } = JSON.parse(config); - let merged_json = {}; - - input_files.forEach(file => { - const json = JSON.parse(fs.readFileSync(file, 'utf-8')); - merged_json = { - ...merged_json, - ...json, - } - }); - - fs.writeFileSync(output_file, JSON.stringify(merged_json, null, 2)); -}; - -if (require.main === module) { - try { - process.exitCode = main(process.argv.slice(2)); - } catch (e) { - console.error(process.argv[1], e); - } -} diff --git a/javascript/package_json/package_json.bzl b/javascript/package_json/package_json.bzl deleted file mode 100644 index 15c30af..0000000 --- a/javascript/package_json/package_json.bzl +++ /dev/null @@ -1,122 +0,0 @@ -""" -Module for generating a package_json based on a BUILD invocation -""" - -load("@build_bazel_rules_nodejs//:providers.bzl", "node_modules_aspect", "run_node") -load("@build_bazel_rules_nodejs//internal/linker:link_node_modules.bzl", "LinkerPackageMappingInfo", "module_mappings_aspect") -load("@rules_player//javascript:utils.bzl", "filter_empty") - -_CREATE_PKG_JSON = Label("//javascript/package_json:create_package_json") - -PACKGE_JSON_ATTRS = { - # The name of the package "@foo/bar" - "package_name": attr.string(mandatory = True), - - # The entry file, used to calculate the name of the output src/index.ts -> dist/index.cjs.js - "entry": attr.string(), - - # An entry file for any `bin` script - "bin_entry": attr.string(), - - # The name for a bin entry - "bin_name": attr.string(), - - # If the package should skipped being published to npm - "private": attr.bool(default = False), - - # The npm registry to publish to - "registry": attr.string(), - - # A .json file to use to add additional properties to the generated package. - # This can often be a 'package.json' and the entries/outputs/dependencies will be filled in later on - "base_package_json": attr.label(allow_single_file = [".json"]), - - # A JSON string of additional things to add to the generated package.json - # For when you don't want/have a template file to pull from - "additional_properties": attr.string(default = "{}"), - - # The output directory, used to calculate the output file - "out_dir": attr.string(mandatory = True), - - # The list of dependencies - "dependencies": attr.label_list( - default = [], - aspects = [module_mappings_aspect, node_modules_aspect], - ), - - # List of peer dependencies - "peer_dependencies": attr.label_list( - default = [], - aspects = [module_mappings_aspect, node_modules_aspect], - ), - "placeholder_version": attr.string(default = "0.0.0-PLACEHOLDER"), - - # The root package.json for the project. Used to get the versions of dependencies and peer-depedencies - "root_package_json": attr.label(mandatory = True, allow_single_file = ["package.json"]), - - # Internal reference to script to create package.json file - "_create_pkg_json": attr.label(default = _CREATE_PKG_JSON, executable = True, cfg = "host"), -} - -def _get_pkg_name(dep): - if LinkerPackageMappingInfo in dep: - mappings = dep[LinkerPackageMappingInfo].mappings.items() - if (len(mappings) > 0): - package_name = mappings[-1][0].split(":")[0] - return package_name - - return dep.label.package - -def _create_package_json_impl(ctx): - pkg_json = ctx.actions.declare_file("package.json") - - local_deps = [] - - for dep in ctx.attr.dependencies + ctx.attr.peer_dependencies: - if LinkerPackageMappingInfo in dep: - for key, value in dep[LinkerPackageMappingInfo].mappings.items(): - # key is of format "package_name:package_path" - package_name = key.split(":")[0] - local_deps.append(package_name) - - bin_file_name = None - - if ctx.attr.bin_entry: - if not ctx.attr.bin_name: - bin_file_name = "cli.js" - else: - bin_file_name = ctx.attr.bin_name + ".js" - - run_node( - ctx, - inputs = filter_empty([ctx.file.root_package_json, ctx.file.base_package_json]), - outputs = [pkg_json], - arguments = [json.encode({ - "name": ctx.attr.package_name, - "bin_entry": bin_file_name, - "bin_name": ctx.attr.bin_name, - "root_package_json": ctx.file.root_package_json.path, - "base_package_json": ctx.file.base_package_json.path if ctx.file.base_package_json else None, - "placeholder_version": ctx.attr.placeholder_version, - "additional_properties": ctx.attr.additional_properties, - "output_file": pkg_json.path, - "out_dir": ctx.attr.out_dir, - "peer_dependencies": [_get_pkg_name(dep) for dep in ctx.attr.peer_dependencies], - "dependencies": [_get_pkg_name(dep) for dep in ctx.attr.dependencies], - "local_deps": local_deps, - "private": ctx.attr.private, - "registry": ctx.attr.registry, - })], - executable = "_create_pkg_json", - ) - - return [ - DefaultInfo( - files = depset([pkg_json]), - ), - ] - -create_package_json = rule( - implementation = _create_package_json_impl, - attrs = PACKGE_JSON_ATTRS, -) diff --git a/javascript/private/BUILD b/javascript/private/BUILD new file mode 100644 index 0000000..58e4b54 --- /dev/null +++ b/javascript/private/BUILD @@ -0,0 +1,116 @@ +load("@bazel_skylib//:bzl_library.bzl", "bzl_library") +load("@aspect_rules_js//js:defs.bzl", "js_binary") + +exports_files( + glob(["*.bzl"]), + visibility = ["//docs:__pkg__"], +) + +exports_files( + ["tsconfig.json.tmpl"], + visibility = ["//visibility:public"], +) + +js_binary( + name = "create_package_json", + entry_point = "create_package_json.mjs", + visibility = ["//visibility:public"], +) + +bzl_library( + name = "js_pipeline", + srcs = ["js_pipeline.bzl"], + visibility = [ + "//docs:__subpackages__", + "//javascript:__subpackages__", + ], + deps = [ + ":eslint", + ":package_json", + ":tsup", + ":utils", + ":vitest", + "@aspect_rules_js//js:defs", + "@aspect_rules_js//npm:defs", + "@aspect_rules_ts//ts:defs", + "@bazel_skylib//rules:expand_template", + ], +) + +bzl_library( + name = "vitest", + srcs = ["vitest.bzl"], + visibility = [ + "//docs:__subpackages__", + "//javascript:__subpackages__", + ], + deps = [ + "@aspect_bazel_lib//lib:directory_path", + "@aspect_rules_js//js:defs", + ], +) + +bzl_library( + name = "eslint", + srcs = ["eslint.bzl"], + visibility = [ + "//docs:__subpackages__", + "//javascript:__subpackages__", + ], + deps = [ + ":utils", + "@aspect_bazel_lib//lib:directory_path", + "@aspect_rules_js//js:defs", + ], +) + +bzl_library( + name = "utils", + srcs = ["utils.bzl"], + visibility = [ + "//docs:__subpackages__", + "//javascript:__subpackages__", + ], + deps = [ + "@aspect_rules_js//js:providers", + ], +) + +bzl_library( + name = "package_json", + srcs = ["package_json.bzl"], + visibility = [ + "//docs:__subpackages__", + "//javascript:__subpackages__", + ], + deps = [ + ":utils", + "@aspect_rules_js//js:defs", + ], +) + +bzl_library( + name = "tsup", + srcs = ["tsup.bzl"], + visibility = [ + "//docs:__subpackages__", + "//javascript:__subpackages__", + ], + deps = [ + "@aspect_bazel_lib//lib:directory_path", + "@aspect_rules_js//js:defs", + ], +) + +bzl_library( + name = "oclif", + srcs = ["oclif.bzl"], + visibility = [ + "//docs:__subpackages__", + "//javascript:__subpackages__", + ], + deps = [ + "@aspect_bazel_lib//lib:directory_path", + "@aspect_rules_js//js:defs", + ], +) diff --git a/javascript/private/create_package_json.mjs b/javascript/private/create_package_json.mjs new file mode 100644 index 0000000..9fc7ee2 --- /dev/null +++ b/javascript/private/create_package_json.mjs @@ -0,0 +1,230 @@ +import path from "node:path"; +import fs from "node:fs"; + +function replaceWorkspaceReferenceWithVersion(deps, version) { + return Object.entries(deps).reduce((acc, [key, value]) => { + if (value.startsWith("workspace:")) { + acc[key] = version; + } else { + acc[key] = value; + } + return acc; + }, {}); +} + +/** Adds support for replacing process.env.* references with stamped values from bazel */ +function getStampedSubstitutions( + customSubstitutions, + stableStatusFile, + volatileStatusFile +) { + const substitutions = {}; + + [stableStatusFile, volatileStatusFile].forEach((statusFile) => { + if (!fs.existsSync(statusFile)) { + return; + } + + const contents = fs.readFileSync(statusFile, "utf-8"); + + contents.split("\n").forEach((statusLine) => { + if (!statusLine.trim()) { + return; + } + + const firstSpace = statusLine.indexOf(" "); + const varName = statusLine.substring(0, firstSpace); + const varVal = statusLine.substring(firstSpace + 1); + + Object.entries(customSubstitutions).forEach(([key, value]) => { + if (value === `{${varName}}`) { + substitutions[key] = varVal; + } + }); + }); + }); + + return substitutions; +} + +function createStampHandler({ + substitutions, + BAZEL_STABLE_STATUS_FILE, + BAZEL_VOLATILE_STATUS_FILE, +}) { + if ( + Object.keys(substitutions).length === 0 || + !BAZEL_STABLE_STATUS_FILE || + !BAZEL_VOLATILE_STATUS_FILE + ) { + return (obj) => obj; + } + + const stableStatusFile = path.join( + process.env.JS_BINARY__EXECROOT, + BAZEL_STABLE_STATUS_FILE + ); + const volatileStatusFile = path.join( + process.env.JS_BINARY__EXECROOT, + BAZEL_VOLATILE_STATUS_FILE + ); + + if (!fs.existsSync(stableStatusFile) || !fs.existsSync(volatileStatusFile)) { + return (obj) => obj; + } + + const customSubstitutions = getStampedSubstitutions( + substitutions, + stableStatusFile, + volatileStatusFile + ); + + return (obj) => stampObject(obj, customSubstitutions); +} + +function stampObject(obj, customSubstitutions) { + if (typeof obj !== "object" || obj === null) { + return obj; + } + + return Object.fromEntries( + Object.entries(obj).map(([key, value]) => { + if (Array.isArray(value)) { + return [key, value.map((v) => stampObject(v, customSubstitutions))]; + } + + if (typeof value === "object" && value !== null) { + return [key, stampObject(value, customSubstitutions)]; + } + + if ( + typeof value === "string" && + customSubstitutions[value] !== undefined + ) { + return [key, customSubstitutions[value]]; + } + + return [key, value]; + }) + ); +} + +async function main(args) { + const { JS_BINARY__EXECROOT } = process.env; + const { + output_file, + root_package_json, + base_package_json, + dependencies, + peer_dependencies, + native_bundle, + substitutions, + custom_entrypoints, + BAZEL_STABLE_STATUS_FILE, + BAZEL_VOLATILE_STATUS_FILE, + } = args; + + const parsedBasePackageJson = JSON.parse( + await fs.promises.readFile( + path.join(JS_BINARY__EXECROOT, base_package_json), + "utf-8" + ) + ); + const parsedRootPackageJson = JSON.parse( + await fs.promises.readFile( + path.join(JS_BINARY__EXECROOT, root_package_json), + "utf-8" + ) + ); + + const dependenciesMap = new Map(); + Object.entries({ + ...(parsedRootPackageJson.dependencies ?? {}), + ...(parsedRootPackageJson.devDependencies ?? {}), + ...(parsedRootPackageJson.peerDependencies ?? {}), + }).forEach(([key, value]) => { + dependenciesMap.set(key, value); + }); + + const versionedDependencies = dependencies.reduce((acc, key) => { + if (!dependenciesMap.has(key)) { + if (parsedBasePackageJson.dependencies[key] !== undefined) { + return acc; + } + + throw new Error(`Unable to determine version for dependency: ${key}`); + } + acc[key] = dependenciesMap.get(key); + return acc; + }, parsedBasePackageJson.dependencies ?? {}); + + const versionedPeerDependencies = peer_dependencies.reduce((acc, key) => { + if (!dependenciesMap.has(key)) { + if (parsedBasePackageJson.peerDependencies[key] !== undefined) { + return acc; + } + + throw new Error(`Unable to determine version for dependency: ${key}`); + } + acc[key] = dependenciesMap.get(key); + return acc; + }, parsedBasePackageJson.peerDependencies ?? {}); + + const packageJson = { + ...parsedBasePackageJson, + ...(!custom_entrypoints + ? { + main: "dist/cjs/index.cjs", + module: "dist/index.legacy-esm.js", + types: "types/index.d.ts", + } + : {}), + ...(native_bundle + ? { + bundle: `dist/${native_bundle}.native.js`, + } + : {}), + sideEffects: false, + ...(!custom_entrypoints + ? { + exports: { + "./package.json": "./package.json", + "./dist/index.css": "./dist/index.css", + ".": { + types: "./types/index.d.ts", + import: "./dist/index.mjs", + default: "./dist/cjs/index.cjs", + }, + }, + } + : {}), + files: ["dist", "src", "types"], + dependencies: replaceWorkspaceReferenceWithVersion( + versionedDependencies, + "0.0.0-PLACEHOLDER" + ), + peerDependencies: replaceWorkspaceReferenceWithVersion( + versionedPeerDependencies, + "0.0.0-PLACEHOLDER" + ), + }; + + const stamper = createStampHandler({ + substitutions, + BAZEL_STABLE_STATUS_FILE, + BAZEL_VOLATILE_STATUS_FILE, + }); + + const stampedPkgJson = stamper(packageJson); + + await fs.promises.mkdir(path.dirname(output_file), { recursive: true }); + await fs.promises.writeFile( + output_file, + JSON.stringify(stampedPkgJson, null, 2) + ); +} + +main(JSON.parse(process.argv[2])).catch((e) => { + console.error(e); + process.exit(1); +}); diff --git a/javascript/private/eslint.bzl b/javascript/private/eslint.bzl new file mode 100644 index 0000000..41c2fee --- /dev/null +++ b/javascript/private/eslint.bzl @@ -0,0 +1,44 @@ +load("@aspect_bazel_lib//lib:directory_path.bzl", "directory_path") +load("@aspect_rules_js//js:defs.bzl", "js_test") +load(":utils.bzl", "include_exts") + +def eslint_test( + name, + data = [], + srcs = [], + node_modules = "//:node_modules", + lint_exts = [".ts", ".js", ".tsx", ".jsx"], + **kwargs): + """ + A test target that runs eslint on the given sources. + + Args: + name: The name of the target. + data: A list of targets to include in the test's data. + srcs: A list of sources to run eslint on. + node_modules: The node_modules target to use for eslint. + lint_exts: A list of extensions to pass to eslint's --ext flag. + **kwargs: Additional arguments to pass to the underlying js_test target. + """ + + eslint_cli_entry = "{}_eslint_entrypoint".format(name) + + directory_path( + name = eslint_cli_entry, + directory = "{}/eslint/dir".format(node_modules), + path = "bin/eslint.js", + ) + + js_test( + name = name, + size = "small", + entry_point = ":{}".format(eslint_cli_entry), + args = [ + "--color", + "--quiet", + "--ext", + ",".join(lint_exts), + ] + ["$(execpath %s)" % (f) for f in include_exts(srcs, lint_exts)], + data = data, + **kwargs + ) diff --git a/javascript/private/js_pipeline.bzl b/javascript/private/js_pipeline.bzl new file mode 100644 index 0000000..144056e --- /dev/null +++ b/javascript/private/js_pipeline.bzl @@ -0,0 +1,181 @@ +load("@aspect_rules_js//npm:defs.bzl", "npm_package") +load("@aspect_rules_js//js:defs.bzl", "js_binary", "js_library") +load("@aspect_rules_ts//ts:defs.bzl", "ts_project") +load("@bazel_skylib//rules:expand_template.bzl", "expand_template") +load(":vitest.bzl", "vitest_test") +load(":eslint.bzl", "eslint_test") +load(":tsup.bzl", "tsup_build", "tsup_native_build") +load(":package_json.bzl", "create_package_json") +load(":utils.bzl", "filter_empty", "without_tests") + +test_file_pattern = [ + "_tests_", + ".test.", +] + +def js_pipeline( + package_name, + name = None, + srcs = None, + package_json = "package.json", + root_package_json = "//:package.json", + vitest_config = ":vitest_config", + tsup_config = ":tsup_config", + node_modules = "//:node_modules", + deps = [], + native_bundle = None, + private = False, + peer_deps = [], + include_packaging_targets = [], + test_deps = ["//:vitest_config"], + lint_deps = ["//:eslint_config"], + build_deps = ["//:tsup_config", "//:typings"]): + """ + The main entry point for any JS/TS project. `js_pipeline` should be the only thing you need in your BUILD file. + + Creates a js_library, npm_package, and test targets for a given package. + + Args: + package_name: The name of the package including the scope (@test/bar). + srcs: The source files for the package (defaults to src/*). + name: The name of the package (defaults to the last part of the package_name). + package_json: The package.json file for the package (defaults to package.json). + root_package_json: The root package.json file for the package (defaults to //:package.json). + vitest_config: The vitest config for the package (defaults to None). + tsup_config: The tsup config for the package (defaults to None). + node_modules: The base node_modules to pull dependencies from (defaults to //:node_modules). + deps: The dependencies for the package. + native_bundle: The name for the native bundle global if defined. + private: Whether or not the package should be private (skipping an npm release). + peer_deps: The peer dependencies for the package. + test_deps: The test dependencies for the package. + lint_deps: The lint dependencies for the package. + build_deps: The build dependencies for the package. + """ + + tslib_ref = "{}/tslib".format(node_modules) + + if tslib_ref not in deps: + deps = deps + [tslib_ref] + + if srcs == None: + srcs = native.glob(["src/**/*"]) + + if name == None: + # name = package_name.split("/")[-1] + name = native.package_name().split("/")[-1] + + tsup_build_name = name + "_tsup_build" + tsup_build_target = ":" + tsup_build_name + + tsup_build( + name = tsup_build_name, + srcs = srcs, + config = tsup_config, + data = deps + build_deps + peer_deps + [package_json], + node_modules = node_modules, + ) + + native_bundle_target_dep = [] + + if native_bundle != None: + native_bundle_name = name + "_native_bundle" + native_bundle_target = ":" + native_bundle_name + native_bundle_target_dep = [native_bundle_target] + + tsup_native_build( + name = native_bundle_name, + native_bundle = native_bundle, + srcs = srcs, + config = tsup_config, + data = deps + build_deps + peer_deps + [package_json], + node_modules = node_modules, + ) + + tsconfig = "{}_tsconfig".format(name) + prefix = "../" * len(native.package_name().split("/")) + + expand_template( + name = tsconfig, + out = "tsconfig.json", + substitutions = { + "%PREFIX%": prefix, + }, + template = "@rules_player//javascript/private:tsconfig.json.tmpl", + ) + + ts_types = "{}_ts_types".format(name) + ts_types_target = ":" + ts_types + ts_project( + name = ts_types, + srcs = without_tests(srcs + [package_json], test_file_pattern), + deps = deps + build_deps + peer_deps, + validate = False, + declaration = True, + declaration_dir = ts_types, + emit_declaration_only = True, + tsconfig = ":{}".format(tsconfig), + ) + + vitest_test( + name = name + "_vitest", + config = vitest_config, + node_modules = node_modules, + data = srcs + deps + test_deps + peer_deps, + ) + + eslint_test( + name = name + "_eslint", + srcs = srcs, + node_modules = node_modules, + data = srcs + deps + lint_deps, + ) + + package_json_name = name + "_package_json" + package_json_target = ":" + package_json_name + + create_package_json( + name = package_json_name, + root_package_json = root_package_json, + base_package_json = package_json, + dependencies = deps, + peer_dependencies = peer_deps, + native_bundle = native_bundle, + stamp = -1, + substitutions = { + "0.0.0-PLACEHOLDER": "{STABLE_VERSION}", + }, + ) + + js_library_name = name + "_js_library" + js_library_target = ":" + js_library_name + + js_library( + name = js_library_name, + srcs = srcs + [tsup_build_target, package_json_target, ts_types_target] + native_bundle_target_dep, + deps = deps, + ) + + replacements = {} + replacements[package_json_name] = "package" + replacements[ts_types + "/src"] = "types" + + npm_package( + name = name, + visibility = ["//visibility:public"], + package = package_name, + srcs = [js_library_target, tsup_build_target] + include_packaging_targets, + tags = filter_empty([ + "do-not-publish" if private else None, + ]), + replace_prefixes = replacements, + ) + + js_binary( + name = name + ".npm-publish", + chdir = native.package_name() + "/" + name, + data = [":" + name], + entry_point = "@aspect_rules_js//npm/private:npm_publish_mjs", + # required to make npm to be available in PATH + include_npm = True, + ) diff --git a/javascript/private/oclif.bzl b/javascript/private/oclif.bzl new file mode 100644 index 0000000..209b085 --- /dev/null +++ b/javascript/private/oclif.bzl @@ -0,0 +1,205 @@ +load("@aspect_rules_js//npm:defs.bzl", "npm_package") +load("@aspect_bazel_lib//lib:directory_path.bzl", "directory_path") +load("@aspect_rules_js//js:defs.bzl", "js_binary", "js_run_binary", "js_library") +load("@aspect_rules_ts//ts:defs.bzl", "ts_config", "ts_project") +load("@bazel_skylib//rules:expand_template.bzl", "expand_template") +load(":vitest.bzl", "vitest_test") +load(":eslint.bzl", "eslint_test") +load(":tsup.bzl", "tsup_build", "tsup_native_build") +load(":package_json.bzl", "create_package_json") +load(":utils.bzl", "filter_empty", "without_tests") + +test_file_pattern = [ + "_tests_", + ".test.", +] + +def oclif_pipeline( + package_name, + name = None, + srcs = None, + manifest = True, + package_json = "package.json", + root_package_json = "//:package.json", + vitest_config = ":vitest_config", + node_modules = "//:node_modules", + deps = [], + peer_deps = [], + test_deps = ["//:vitest_config"], + lint_deps = ["//:eslint_config"], + build_deps = ["//:typings"] + ): + """ + A modified version of the `js_pipeline` for building oclif CLIs and CLI plugins. + + Creates a js_library, npm_package, and test targets for a given package. + + Args: + package_name: The name of the package including the scope (@test/bar). + srcs: The source files for the package (defaults to src/*). + manifest: If an oclif manifest should be generated as part of the build. Not needed for CLI plugins. + name: The name of the package (defaults to the last part of the package_name). + package_json: The package.json file for the package (defaults to package.json). + root_package_json: The root package.json file for the package (defaults to //:package.json). + vitest_config: The vitest config for the package (defaults to None). + node_modules: The base node_modules to pull dependencies from (defaults to //:node_modules). + deps: The dependencies for the package. + native_bundle: The name for the native bundle global if defined. + private: Whether or not the package should be private (skipping an npm release). + peer_deps: The peer dependencies for the package. + test_deps: The test dependencies for the package. + lint_deps: The lint dependencies for the package. + build_deps: The build dependencies for the package. + """ + + tslib_ref = "{}/tslib".format(node_modules) + + if tslib_ref not in deps: + deps = deps + [tslib_ref] + + if srcs == None: + srcs = native.glob(["src/**/*"]) + + if name == None: + # name = package_name.split("/")[-1] + name = native.package_name().split("/")[-1] + + all_deps = deps + peer_deps + build_deps + + ts_config_name = name + "_ts_config" + ts_config_target = ":" + ts_config_name + + ts_config( + name = ts_config_name, + src = "tsconfig.json", + deps = [ + "//:tsconfig", + ], + ) + + tsc_build_name = name + "_tsc_build" + tsc_build_target = ":" + tsc_build_name + + ts_project( + name = tsc_build_name, + srcs = native.glob( + [ + "bin/**/*", + "src/**/*", + ], + exclude = [ + "**/__tests__/*", + "**/*.test.*", + ], + ), + declaration = True, + out_dir = "dist", + root_dir = "src", + transpiler = "tsc", + tsconfig = ts_config_target, + validate = False, + deps = all_deps, + ) + + package_json_name = name + "_package_json" + package_json_target = ":" + package_json_name + + create_package_json( + name = package_json_name, + base_package_json = "package.json", + dependencies = deps, + peer_dependencies = peer_deps, + root_package_json = "//:package.json", + substitutions = { + "0.0.0-PLACEHOLDER": "{STABLE_VERSION}", + }, + custom_entrypoints = True, + ) + + manifest_target = [] + + if manifest == True : + manifest_name = name + "_manifest" + manifest_target = [":" + manifest_name] + + oclif_cli_entry = "{}_oclif_entrypoint".format(name) + oclif_bin = "{}_oclif_bin".format(name) + + directory_path( + name = oclif_cli_entry, + directory = "{}/oclif/dir".format(node_modules), + path = "bin/run.js", + ) + + js_binary( + name = oclif_bin, + data = ["{}/oclif".format(node_modules)], + entry_point = ":{}".format(oclif_cli_entry), + ) + + js_run_binary( + name = manifest_name, + tool = ":{}".format(oclif_bin), + stamp = -1, + srcs = [ + "package.json", + tsc_build_target, + package_json_target, + ], + outs = ["oclif.manifest.json"], + args = ["manifest"], + chdir = native.package_name(), + ) + + bundle_name = name + "_bundle" + bundle_target = ":" + bundle_name + + js_library( + name = bundle_name, + srcs = [ + tsc_build_target, + package_json_target, + ] + native.glob(["bin/*"]) + + manifest_target, + deps = all_deps, + ) + + vitest_test( + name = name + "_unit", + config = ":vitest_config", + data = native.glob(["src/**/*"]) + all_deps + ["//:vitest_config"], + node_modules = "//:node_modules", + ) + + eslint_test( + name = name + "_lint", + srcs = native.glob(["src/**/*"]), + data = native.glob(["src/**/*"]) + all_deps + ["//:eslint_config"], + node_modules = "//:node_modules", + ) + + package_name = name + package_target = ":" + package_name + + npm_package( + name = package_name, + srcs = [ + "README.md", + bundle_target, + ], + allow_overwrites = True, + package = package_name, + replace_prefixes = { + package_json_name : "package", + }, + visibility = ["//visibility:public"], + ) + + js_binary( + name = name + ".npm-publish", + chdir = native.package_name() + "/" + package_name, + data = [package_target], + entry_point = "@aspect_rules_js//npm/private:npm_publish_mjs", + # required to make npm to be available in PATH + include_npm = True, + ) diff --git a/javascript/private/package_json.bzl b/javascript/private/package_json.bzl new file mode 100644 index 0000000..27750c5 --- /dev/null +++ b/javascript/private/package_json.bzl @@ -0,0 +1,82 @@ +""" +Populate all the required fields for a package.json file needed for a full build +""" + +load("@aspect_rules_js//js:providers.bzl", "JsInfo") +load("@aspect_bazel_lib//lib:stamping.bzl", "STAMP_ATTRS", "maybe_stamp") +load(":utils.bzl", "get_js_npm_name") + +def _package_json_impl(ctx): + """Implementation of package_json.""" + output_file = ctx.actions.declare_file("%s.json" % ctx.label.name) + stamp = maybe_stamp(ctx) + + stamp_inputs = [] + + args = { + "output_file": output_file.short_path, + "substitutions": ctx.attr.substitutions, + "root_package_json": ctx.file.root_package_json.short_path, + "base_package_json": ctx.file.base_package_json.short_path, + "native_bundle": ctx.attr.native_bundle, + "dependencies": [get_js_npm_name(dep) for dep in ctx.attr.dependencies], + "peer_dependencies": [get_js_npm_name(dep) for dep in ctx.attr.peer_dependencies], + "custom_entrypoints": ctx.attr.custom_entrypoints, + } + + if stamp: + stamp_inputs = [stamp.volatile_status_file, stamp.stable_status_file] + args["BAZEL_STABLE_STATUS_FILE"] = stamp.stable_status_file.path + args["BAZEL_VOLATILE_STATUS_FILE"] = stamp.volatile_status_file.path + + ctx.actions.run( + inputs = stamp_inputs + ctx.files.root_package_json + ctx.files.base_package_json, + env = { + "BAZEL_BINDIR": ctx.bin_dir.path, + }, + arguments = [json.encode(args)], + outputs = [output_file], + executable = ctx.executable._create_package_json, + ) + + return [ + DefaultInfo( + files = depset([output_file]), + ), + ] + +create_package_json = rule( + implementation = _package_json_impl, + attrs = dict({ + "root_package_json": attr.label( + mandatory = True, + doc = "The root package.json for the project. Used to get the versions of dependencies and peer-depedencies", + allow_single_file = ["package.json"], + ), + "base_package_json": attr.label( + mandatory = True, + doc = """A .json file to use to add additional properties to the generated package. + This can often be a 'package.json' and the entries/outputs/dependencies will be filled in later on.""", + allow_single_file = ["package.json"], + ), + "native_bundle": attr.string(doc = "The name for the native bundle if used"), + "placeholder_version": attr.string(default = "0.0.0-PLACEHOLDER", doc = "The version to use for the local dependencies in the workspace"), + "custom_entrypoints": attr.bool(default = False, doc = "If custom main/module/types entrypoints are specified and shouldn't be overwritten"), + "dependencies": attr.label_list( + doc = "The dependencies of the package. These will be added to the base package.json", + default = [], + providers = [JsInfo], + ), + "peer_dependencies": attr.label_list( + doc = "The peer dependencies of the package. These will be added to the base package.json", + default = [], + providers = [JsInfo], + ), + "substitutions": attr.string_dict(default = {}), + "_create_package_json": attr.label( + executable = True, + cfg = "exec", + default = "//javascript/private:create_package_json", + ), + }, **STAMP_ATTRS), +) diff --git a/javascript/private/tsconfig.json.tmpl b/javascript/private/tsconfig.json.tmpl new file mode 100644 index 0000000..dff6937 --- /dev/null +++ b/javascript/private/tsconfig.json.tmpl @@ -0,0 +1,25 @@ +{ + "include": ["src/**/*.ts", "src/**/*.tsx", "%PREFIX%typings/**/*", "%PREFIX%node_modules/@types/*"], + "exclude": ["**/__tests__/*", "*.test.*"], + "compilerOptions": { + "jsx": "react", + "emitDeclarationOnly": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "skipLibCheck": true, + "downlevelIteration": true, + "target": "ESNext", + "module": "commonjs", + "allowJs": false, + "moduleResolution": "node", + "sourceMap": true, + "declaration": true, + "declarationMap": true, + "skipDefaultLibCheck": true, + "noErrorTruncation": true, + "importHelpers": true, + "resolveJsonModule": true, + "lib": ["DOM", "ESNext"] + } +} diff --git a/javascript/private/tsup.bzl b/javascript/private/tsup.bzl new file mode 100644 index 0000000..6290157 --- /dev/null +++ b/javascript/private/tsup.bzl @@ -0,0 +1,100 @@ +load("@aspect_bazel_lib//lib:directory_path.bzl", "directory_path") +load("@aspect_rules_js//js:defs.bzl", "js_binary", "js_run_binary") +load(":utils.bzl", "is_test_file") + +def tsup_build( + name, + srcs = [], + config = "tsup.config.ts", + data = ["//:tsup_config"], + node_modules = "//:node_modules", + substitutions = { + "__VERSION__": "{STABLE_VERSION}", + }, + outs = None, + **kwargs): + """Run a vite test. + + Args: + name: The name of the test. + srcs: Inputs to the module + config: The vite config target. + data: The list of data dependencies. + node_modules: The node_modules target. + substitutions: Substitutions to stamp during the build. + outs: Any defined outputs + **kwargs: Additional arguments to pass to the test. + """ + + tsup_cli_entry = "{}_tsup_entrypoint".format(name) + tsup_bin = "{}_tsup_bin".format(name) + + directory_path( + name = tsup_cli_entry, + directory = "{}/tsup/dir".format(node_modules), + path = "dist/cli-node.js", + ) + + js_binary( + name = tsup_bin, + data = ["{}/tsup".format(node_modules)] + data, + entry_point = ":{}".format(tsup_cli_entry), + ) + + has_css_file = False + + for f in srcs: + if is_test_file(f, [".css"]): + has_css_file = True + + tsup_outs = outs + + if tsup_outs == None: + tsup_outs = [ + "dist/index.mjs", + "dist/index.mjs.map", + "dist/cjs/index.cjs", + "dist/cjs/index.cjs.map", + "dist/index.legacy-esm.js", + ] + + if has_css_file: + tsup_outs.append("dist/index.css") + + js_run_binary( + name = name, + chdir = native.package_name(), + tool = ":{}".format(tsup_bin), + stamp = -1, + args = [], + srcs = srcs + [config], + outs = kwargs.get("outs", tsup_outs), + env = dict( + { + "STAMP_SUBSTITUTIONS": json.encode(substitutions), + }, + **kwargs.get("env", {}) + ), + visibility = kwargs.get("visibility", []), + ) + +def tsup_native_build( + name, + native_bundle, + srcs = [], + config = "tsup.config.ts", + data = ["//:tsup_config"], + node_modules = "//:node_modules", + **kwargs): + tsup_build( + name = name, + visibility = ["//visibility:public"], + srcs = srcs, + config = config, + data = data, + node_modules = node_modules, + env = { + "PLAYER_NATIVE_BUNDLE": native_bundle, + }, + outs = ["dist/{}.native.js".format(native_bundle), "dist/{}.native.js.map".format(native_bundle)], + ) diff --git a/javascript/private/utils.bzl b/javascript/private/utils.bzl new file mode 100644 index 0000000..945c005 --- /dev/null +++ b/javascript/private/utils.bzl @@ -0,0 +1,47 @@ +""" +General utils for working in JS projects +""" + +load("@aspect_rules_js//js:providers.bzl", "JsInfo") + +def filter_empty(things): + new_things = [] + for f in things: + if f != None: + new_things.append(f) + return new_things + +def remove_duplicates(data): + filtered = [] + for d in data: + if d in filtered: + continue + filtered.append(d) + return filtered + +def is_test_file(file, test_file_pattern): + for p in test_file_pattern: + if p in file: + return True + return False + +def filter_false(arr): + filtered = [] + for f in arr: + if f: + filtered.append(f) + + return filtered + +def include_exts(files, file_patterns): + return filter_false([f if is_test_file(f, file_patterns) else None for f in files]) + +def get_js_npm_name(dep): + linked_list = dep[JsInfo].npm_linked_packages.to_list() + if len(linked_list) > 1: + fail("Package {} has more than one linked package".format(dep)) + + return linked_list[0].package + +def without_tests(files, test_file_pattern): + return filter_false([f if not is_test_file(f, test_file_pattern) else None for f in files]) diff --git a/javascript/private/vitest.bzl b/javascript/private/vitest.bzl new file mode 100644 index 0000000..709c778 --- /dev/null +++ b/javascript/private/vitest.bzl @@ -0,0 +1,35 @@ +load("@aspect_bazel_lib//lib:directory_path.bzl", "directory_path") +load("@aspect_rules_js//js:defs.bzl", "js_test") + +def vitest_test( + name, + config, + data = [], + node_modules = "//:node_modules", + **kwargs): + """Run a vite test. + + Args: + name: The name of the test. + config: The vite config target. + data: The list of data dependencies. + node_modules: The node_modules target. + **kwargs: Additional arguments to pass to the test. + """ + + vitest_cli_entry = "{}_vitest_entrypoint".format(name) + + directory_path( + name = vitest_cli_entry, + directory = "{}/vitest/dir".format(node_modules), + path = "vitest.mjs", + ) + + js_test( + name = name, + size = "small", + entry_point = ":{}".format(vitest_cli_entry), + args = ["run", "--color"], + data = data + [config], + **kwargs + ) diff --git a/javascript/rollup/BUILD b/javascript/rollup/BUILD deleted file mode 100644 index ee00916..0000000 --- a/javascript/rollup/BUILD +++ /dev/null @@ -1,5 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -exports_files([ - "rollup.config.template.js", -]) diff --git a/javascript/rollup/rollup.config.template.js b/javascript/rollup/rollup.config.template.js deleted file mode 100644 index 919bfb7..0000000 --- a/javascript/rollup/rollup.config.template.js +++ /dev/null @@ -1,66 +0,0 @@ -import path from 'path'; -import dts from 'rollup-plugin-dts' -import esbuild from 'rollup-plugin-esbuild' -import styles from "rollup-plugin-styles"; -import json from '@rollup/plugin-json'; -import image from '@rollup/plugin-image'; - -const isBinBuild = "TMPL_build_target_type" === 'CLI'; - -const bundle = config => ({ - ...config, - input: 'TMPL_entry', - external: id => !/^[./]/.test(id), -}) - -let builds = []; - -if (isBinBuild) { - builds = [ - bundle({ - plugins: [esbuild()], - output: [ - { - file: path.join('TMPL_out_dir', 'TMPL_bin_name'), - format: 'cjs', - sourcemap: true - } - ] - }) - ] -} else { - builds = [ - bundle({ - plugins: [esbuild(), styles({ - modules: true, - }), json(), image()], - output: [ - { - file: path.join('TMPL_out_dir', 'index.cjs.js'), - format: 'cjs', - sourcemap: true, - assetFileNames: "[name]-[hash][extname]", - }, - { - file: path.join('TMPL_out_dir', 'index.esm.js'), - format: 'es', - sourcemap: true, - assetFileNames: "[name]-[hash][extname]", - }, - ], - }), - bundle({ - plugins: [dts({ - compilerOptions: { - paths: TMPL_ts_paths - } - })], - output: { - file: path.join('TMPL_out_dir', 'index.d.ts'), - format: 'es', - }, - }), - ] -} - -export default builds; diff --git a/javascript/rollup/rollup_build.bzl b/javascript/rollup/rollup_build.bzl deleted file mode 100644 index bdff80a..0000000 --- a/javascript/rollup/rollup_build.bzl +++ /dev/null @@ -1,104 +0,0 @@ -load("@bazel_skylib//lib:paths.bzl", "paths") -load("@build_bazel_rules_nodejs//:providers.bzl", "JSModuleInfo", "node_modules_aspect", "run_node") -load("@build_bazel_rules_nodejs//internal/linker:link_node_modules.bzl", "module_mappings_aspect") -load("@rules_player//javascript:utils.bzl", "get_dep_files", "get_path_mappings") - -ROLLUP_ATTRS = { - # Dependencies needed to build the pkg - "data": attr.label_list( - default = [], - aspects = [module_mappings_aspect, node_modules_aspect], - allow_files = True, - ), - - # The entry file, used to calculate the name of the output src/index.ts -> dist/index.cjs.js - "entry": attr.string(mandatory = True), - - # The output directory, used to calculate the output file - "out_dir": attr.string(mandatory = True), - "srcs": attr.label_list(default = [], allow_files = True), - "_rollup": attr.label(default = Label("@npm//rollup/bin:rollup"), executable = True, cfg = "host"), - "_rollup_config_template": attr.label(default = Label("//javascript/rollup:rollup.config.template.js"), allow_single_file = True), -} - -ROLLUP_BIN_ATTRS = dict(ROLLUP_ATTRS, **{ - "bin_name": attr.string(default = "cli"), -}) - -def _rollup_build(ctx): - is_bin_build = hasattr(ctx.attr, "bin_name") - file_outputs = [] - output_group = None - - if is_bin_build: - cjs_out = ctx.actions.declare_file(paths.join(ctx.attr.out_dir, "%s.js" % ctx.attr.bin_name)) - file_outputs = [cjs_out] - output_group = OutputGroupInfo( - cjs = depset([cjs_out]), - ) - - else: - cjs_out = ctx.actions.declare_file(paths.join(ctx.attr.out_dir, "index.cjs.js")) - esm_out = ctx.actions.declare_file(paths.join(ctx.attr.out_dir, "index.esm.js")) - dts_out = ctx.actions.declare_file(paths.join(ctx.attr.out_dir, "index.d.ts")) - file_outputs = [cjs_out, esm_out, dts_out] - output_group = OutputGroupInfo( - cjs = depset([cjs_out]), - esm = depset([esm_out]), - types = depset([dts_out]), - ) - - out_dir = paths.dirname(file_outputs[0].path) - deps_inputs = get_dep_files(ctx.attr.data) - - rollup_config = ctx.actions.declare_file("rollup.config%s.js" % (".bin" if is_bin_build else "")) - path_alias_mappings = get_path_mappings(ctx.attr.data, paths.dirname(rollup_config.path)) - - ctx.actions.expand_template( - output = rollup_config, - template = ctx.file._rollup_config_template, - substitutions = { - "TMPL_build_target_type": "CLI" if is_bin_build else "LIB", - "TMPL_entry": paths.join(ctx.label.package, ctx.attr.entry), - "TMPL_out_dir": out_dir, - "TMPL_bin_name": paths.basename(file_outputs[0].path), - "TMPL_ts_paths": json.encode(path_alias_mappings), - }, - ) - - run_node( - ctx, - inputs = ctx.files.srcs + [rollup_config] + deps_inputs, - outputs = file_outputs, - arguments = [ - "--silent", - "--preserveSymlinks", - "-c", - rollup_config.path, - ], - executable = "_rollup", - mnemonic = "Rollup", - ) - - output_depset = depset(file_outputs) - - return [ - DefaultInfo( - files = output_depset, - ), - JSModuleInfo( - direct_sources = output_depset, - sources = output_depset, - ), - output_group, - ] - -rollup_build = rule( - implementation = _rollup_build, - attrs = ROLLUP_ATTRS, -) - -rollup_bin_build = rule( - implementation = _rollup_build, - attrs = ROLLUP_BIN_ATTRS, -) diff --git a/javascript/utils.bzl b/javascript/utils.bzl deleted file mode 100644 index ecb7bea..0000000 --- a/javascript/utils.bzl +++ /dev/null @@ -1,96 +0,0 @@ -load("@bazel_skylib//rules/private:copy_file_private.bzl", "copy_bash") -load("@bazel_skylib//lib:paths.bzl", "paths") -load("@build_bazel_rules_nodejs//:providers.bzl", "DeclarationInfo", "ExternalNpmPackageInfo", "JSEcmaScriptModuleInfo", "JSModuleInfo") -load("@build_bazel_rules_nodejs//internal/linker:link_node_modules.bzl", "LinkerPackageMappingInfo") - -def filter_empty(things): - new_things = [] - for f in things: - if f != None: - new_things.append(f) - return new_things - -def get_relative_path(source, target): - # Get a directory split of them - source_split = source.split("/") - target_split = target.split("/") - - path_prefix = "" - for i in range(len(source_split)): - if source_split[i] == target_split[i]: - path_prefix = paths.join(path_prefix, source_split[i]) - else: - break - - return paths.join("../" * len(paths.relativize(source, path_prefix).split("/")), paths.relativize(target, path_prefix)) - -def get_dep_files(data): - deps_depsets = [] - for dep in data: - if JSEcmaScriptModuleInfo in dep: - deps_depsets.append(dep[JSEcmaScriptModuleInfo].sources) - if DeclarationInfo in dep: - deps_depsets.append(dep[DeclarationInfo].transitive_declarations) - - if DefaultInfo in dep: - deps_depsets.append(dep[DefaultInfo].data_runfiles.files) - - if JSModuleInfo in dep: - deps_depsets.append(dep[JSModuleInfo].sources) - elif hasattr(dep, "files"): - deps_depsets.append(dep.files) - - # Also include files from npm deps as inputs. - # These deps are identified by the ExternalNpmPackageInfo provider. - if ExternalNpmPackageInfo in dep: - deps_depsets.append(dep[ExternalNpmPackageInfo].sources) - - return depset(transitive = deps_depsets).to_list() - -def get_path_mappings(data, output_relative_dir): - path_alias_mappings = dict() - - for dep in data: - if LinkerPackageMappingInfo in dep: - for key, value in dep[LinkerPackageMappingInfo].mappings.items(): - # key is of format "package_name:package_path" - package_name = key.split(":")[0] - path_alias_mappings[package_name] = [get_relative_path(output_relative_dir, value)] - -def copy_to_bin(ctx, srcs): - outs = [] - - for src in srcs: - out = ctx.actions.declare_file(src.basename, sibling = src) - copy_bash(ctx, src, out) - outs.append(out) - - return outs - -def is_test_file(file, test_file_pattern): - for p in test_file_pattern: - if p in file: - return True - return False - -def filter_false(arr): - filtered = [] - for f in arr: - if f: - filtered.append(f) - - return filtered - -def include_exts(files, file_patterns): - return filter_false([f if is_test_file(f, file_patterns) else None for f in files]) - -def without_tests(files, test_file_pattern): - return filter_false([f if not is_test_file(f, test_file_pattern) else None for f in files]) - -def remove_duplicates(data): - filtered = [] - for d in data: - if d in filtered: - continue - filtered.append(d) - return filtered \ No newline at end of file diff --git a/javascript/workspace.bzl b/javascript/workspace.bzl deleted file mode 100644 index ba38a25..0000000 --- a/javascript/workspace.bzl +++ /dev/null @@ -1,10 +0,0 @@ -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -load("//internal:maybe.bzl", "maybe") - -def javascript(): - maybe( - http_archive, - name = "build_bazel_rules_nodejs", - sha256 = "3aa6296f453ddc784e1377e0811a59e1e6807da364f44b27856e34f5042043fe", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.2/rules_nodejs-4.4.2.tar.gz"], - ) diff --git a/junit5/BUILD b/junit5/BUILD deleted file mode 100644 index e69de29..0000000 diff --git a/junit5/conf.bzl b/junit5/conf.bzl deleted file mode 100644 index a252be6..0000000 --- a/junit5/conf.bzl +++ /dev/null @@ -1,5 +0,0 @@ -load("@junit//junit5-jupiter-starter-bazel:junit5.bzl", "junit_jupiter_java_repositories", "junit_platform_java_repositories") - -def junit5(juptier_version = "5.7.2", platform_version = "1.7.2"): - junit_jupiter_java_repositories(version = juptier_version) - junit_platform_java_repositories(version = platform_version) diff --git a/junit5/workspace.bzl b/junit5/workspace.bzl deleted file mode 100644 index f3a4191..0000000 --- a/junit5/workspace.bzl +++ /dev/null @@ -1,11 +0,0 @@ -load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") -load("//internal:maybe.bzl", "maybe") - -def junit5(): - maybe( - git_repository, - name = "junit", - remote = "https://github.com/sugarmanz/junit5-samples", - commit = "2617a5e6fb5b858894f1c9ede486498e70becf99", - shallow_since = "1648584808 -0400" - ) diff --git a/kotlin/BUILD b/kotlin/BUILD index e69de29..ede7d99 100644 --- a/kotlin/BUILD +++ b/kotlin/BUILD @@ -0,0 +1,14 @@ +load("@bazel_skylib//:bzl_library.bzl", "bzl_library") + +exports_files(["defs.bzl"]) + +bzl_library( + name = "defs", + srcs = ["defs.bzl"], + visibility = ["//visibility:public"], + deps = [ + "//kotlin/private:lint", + "//kotlin/private:distribution", + "//kotlin/private:kt_jvm" + ], +) \ No newline at end of file diff --git a/kotlin/README.md b/kotlin/README.md deleted file mode 100644 index 750e425..0000000 --- a/kotlin/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# Kotlin Rules - -https://bazelbuild.github.io/rules_kotlin/kotlin.html - -## Define Kotlin rules - -### Loading default rules - -```python -load("@rules_player//:workspace.bzl", "deps") -deps() -``` - -### Loading rules from HTTP archive - -By default, the workspace declaration is configured to work with Player modules. You can override the location of the remote archive by specifying a `tag`, `sha`, `name`, or `baseUrl`: - -`$baseUrl/$tag/$name` - -```python -load("@rules_player//kotlin:workspace.bzl", "kotlin") -kotlin( - # Defaults - tag = "v1.7.1", - sha256 = "fd92a98bd8a8f0e1cdcb490b93f5acef1f1727ed992571232d33de42395ca9b3", - baseUrl = "https://github.com/bazelbuild/rules_kotlin/releases/download", -) -``` - -### Loading rules from GIT repository - -```python -load("@rules_player//kotlin:workspace.bzl", "kotlin_repository") -kotlin_repository( - remote = "https://github.com/bazelbuild/rules_kotlin.git", - branch = "master", -) - -load("@rules_player//kotlin:repository.bzl", "archive") -archive() -``` - -### Loading rules manually - -If neither of those macros work for your use case, you can always declare the Kotlin ruleset repository yourself as shown in the Kotlin rules documentation: -https://github.com/bazelbuild/rules_kotlin#workspace - -## Configure Kotlin repositories - -```python -load("@rules_player//kotlin:conf.bzl", kotlin_conf = "kotlin") -kotlin_conf() -``` - -## Configure Kotlin toolchain - -In order to compile Kotlin code, you must register a Kotlin toolchain, which can be done manually, or by registering the default toolchain: - -```python -load("@io_bazel_rules_kotlin//kotlin:core.bzl", "kt_register_toolchains") -kt_register_toolchains() -``` - -## Using JUnit 5 - -```python -load("@rules_player//junit5:conf.bzl", "junit5") -junit5() -``` diff --git a/kotlin/conf.bzl b/kotlin/conf.bzl deleted file mode 100644 index f065f8b..0000000 --- a/kotlin/conf.bzl +++ /dev/null @@ -1,5 +0,0 @@ -load("@io_bazel_rules_kotlin//kotlin:repositories.bzl", "kotlin_repositories") - -def kotlin(): - kotlin_repositories() - \ No newline at end of file diff --git a/kotlin/defs.bzl b/kotlin/defs.bzl new file mode 100644 index 0000000..0bded77 --- /dev/null +++ b/kotlin/defs.bzl @@ -0,0 +1,13 @@ +""" +Public API for Kotlin based project rules +""" + +load("//kotlin/private:kt_jvm.bzl", _kt_jvm = "kt_jvm") +load("//kotlin/private:distribution.bzl", _distribution = "distribution") +load("//kotlin/private:lint.bzl", _lint = "lint") +load("//kotlin/private:junit_test.bzl", _kt_jvm_junit5_test = "kt_jvm_junit5_test") + +kt_jvm = _kt_jvm +distribution = _distribution +lint = _lint +kt_jvm_junit5_test = _kt_jvm_junit5_test diff --git a/kotlin/example/.bazelrc b/kotlin/example/.bazelrc new file mode 100644 index 0000000..0c36346 --- /dev/null +++ b/kotlin/example/.bazelrc @@ -0,0 +1 @@ +common --enable_bzlmod \ No newline at end of file diff --git a/kotlin/example/.bazelversion b/kotlin/example/.bazelversion new file mode 100644 index 0000000..c0be8a7 --- /dev/null +++ b/kotlin/example/.bazelversion @@ -0,0 +1 @@ +6.4.0 \ No newline at end of file diff --git a/kotlin/example/BUILD b/kotlin/example/BUILD new file mode 100644 index 0000000..e0d49e1 --- /dev/null +++ b/kotlin/example/BUILD @@ -0,0 +1,11 @@ +load("@rules_player//kotlin:defs.bzl", "kt_jvm") + +kt_jvm( + name = "kt_lib", + main_srcs = ["lib.kt"], + test_srcs = ["libtest.kt"], + test_package = "com.intuit.bazel.kotlin", + test_deps = [] +) + + diff --git a/kotlin/example/MODULE.bazel b/kotlin/example/MODULE.bazel new file mode 100644 index 0000000..fc3b523 --- /dev/null +++ b/kotlin/example/MODULE.bazel @@ -0,0 +1,27 @@ +module( + name = "kotlin_example" +) + +bazel_dep(name = "rules_player") +local_path_override(module_name = "rules_player", path = "../..") + +bazel_dep(name = "rules_jvm_external", version = "5.3") +maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven") + +maven.install( + artifacts = [ + "org.junit.jupiter:junit-jupiter-api:5.7.2", + "org.junit.jupiter:junit-jupiter-params:5.7.2", + "org.junit.jupiter:junit-jupiter-engine:5.7.2", + "org.junit.platform:junit-platform-suite-api:1.7.2", + "org.junit.platform:junit-platform-console:1.7.2", + "org.junit.platform:junit-platform-launcher:1.7.2" + ], + fetch_sources = True, + repositories = [ + "https://repo1.maven.org/maven2", + "https://maven.google.com/", + "https://plugins.gradle.org/m2/", + ] +) +use_repo(maven, "maven") diff --git a/kotlin/example/WORKSPACE b/kotlin/example/WORKSPACE new file mode 100644 index 0000000..22ea4a9 --- /dev/null +++ b/kotlin/example/WORKSPACE @@ -0,0 +1,3 @@ +workspace( + name = "kotlin_example", +) \ No newline at end of file diff --git a/kotlin/examples/kotlin-repository/lib.kt b/kotlin/example/lib.kt similarity index 55% rename from kotlin/examples/kotlin-repository/lib.kt rename to kotlin/example/lib.kt index 5ecd8b2..cf5e13f 100644 --- a/kotlin/examples/kotlin-repository/lib.kt +++ b/kotlin/example/lib.kt @@ -1,3 +1,3 @@ package com.intuit.bazel.kotlin -const val HELLO = "world" +const val HELLO = "world" \ No newline at end of file diff --git a/kotlin/examples/kotlin-repository/lib.test.kt b/kotlin/example/libtest.kt similarity index 60% rename from kotlin/examples/kotlin-repository/lib.test.kt rename to kotlin/example/libtest.kt index 3561297..6917936 100644 --- a/kotlin/examples/kotlin-repository/lib.test.kt +++ b/kotlin/example/libtest.kt @@ -5,8 +5,8 @@ import org.junit.jupiter.api.Test class Tests { - @Test fun `test`() { - Assertions.assertEquals("world", HELLO) - } + @Test fun `test`() { + Assertions.assertEquals("world", HELLO) + } -} +} \ No newline at end of file diff --git a/kotlin/examples/kotlin-archive/BUILD b/kotlin/examples/kotlin-archive/BUILD deleted file mode 100644 index c6daccb..0000000 --- a/kotlin/examples/kotlin-archive/BUILD +++ /dev/null @@ -1,7 +0,0 @@ -load("@rules_player//kotlin:build.bzl", "kt_jvm_library_and_test") -kt_jvm_library_and_test( - name = "lib", - main_srcs = ["lib.kt"], - test_srcs = ["lib.test.kt"], - test_package = "com.intuit.bazel.kotlin" -) diff --git a/kotlin/examples/kotlin-archive/WORKSPACE b/kotlin/examples/kotlin-archive/WORKSPACE deleted file mode 100644 index 96798fb..0000000 --- a/kotlin/examples/kotlin-archive/WORKSPACE +++ /dev/null @@ -1,23 +0,0 @@ -local_repository( - name = "rules_player", - path = "../../..", -) - -load("@rules_player//kotlin:workspace.bzl", "kotlin") -kotlin( - tag = "v1.5.0", - sha256 = "12d22a3d9cbcf00f2e2d8f0683ba87d3823cb8c7f6837568dd7e48846e023307", - baseUrl = "https://github.com/bazelbuild/rules_kotlin/releases/download", -) - -load("@rules_player//:workspace.bzl", "deps") -deps() - -load("@rules_player//:conf.bzl", kotlin_conf = "kotlin") -kotlin_conf() - -load("@io_bazel_rules_kotlin//kotlin:core.bzl", "kt_register_toolchains") -kt_register_toolchains() - -load("@rules_player//junit5:conf.bzl", junit5 = "junit5") -junit5() diff --git a/kotlin/examples/kotlin-archive/lib.kt b/kotlin/examples/kotlin-archive/lib.kt deleted file mode 100644 index 5ecd8b2..0000000 --- a/kotlin/examples/kotlin-archive/lib.kt +++ /dev/null @@ -1,3 +0,0 @@ -package com.intuit.bazel.kotlin - -const val HELLO = "world" diff --git a/kotlin/examples/kotlin-archive/lib.test.kt b/kotlin/examples/kotlin-archive/lib.test.kt deleted file mode 100644 index 3561297..0000000 --- a/kotlin/examples/kotlin-archive/lib.test.kt +++ /dev/null @@ -1,12 +0,0 @@ -package com.intuit.bazel.kotlin - -import org.junit.jupiter.api.Assertions -import org.junit.jupiter.api.Test - -class Tests { - - @Test fun `test`() { - Assertions.assertEquals("world", HELLO) - } - -} diff --git a/kotlin/examples/kotlin-defaults/BUILD b/kotlin/examples/kotlin-defaults/BUILD deleted file mode 100644 index c6daccb..0000000 --- a/kotlin/examples/kotlin-defaults/BUILD +++ /dev/null @@ -1,7 +0,0 @@ -load("@rules_player//kotlin:build.bzl", "kt_jvm_library_and_test") -kt_jvm_library_and_test( - name = "lib", - main_srcs = ["lib.kt"], - test_srcs = ["lib.test.kt"], - test_package = "com.intuit.bazel.kotlin" -) diff --git a/kotlin/examples/kotlin-defaults/WORKSPACE b/kotlin/examples/kotlin-defaults/WORKSPACE deleted file mode 100644 index 76a6664..0000000 --- a/kotlin/examples/kotlin-defaults/WORKSPACE +++ /dev/null @@ -1,16 +0,0 @@ -local_repository( - name = "rules_player", - path = "../../..", -) - -load("@rules_player//:workspace.bzl", "deps") -deps() - -load("@rules_player//:conf.bzl", "kotlin") -kotlin() - -load("@io_bazel_rules_kotlin//kotlin:core.bzl", "kt_register_toolchains") -kt_register_toolchains() - -load("@rules_player//junit5:conf.bzl", "junit5") -junit5() diff --git a/kotlin/examples/kotlin-defaults/lib.kt b/kotlin/examples/kotlin-defaults/lib.kt deleted file mode 100644 index 5ecd8b2..0000000 --- a/kotlin/examples/kotlin-defaults/lib.kt +++ /dev/null @@ -1,3 +0,0 @@ -package com.intuit.bazel.kotlin - -const val HELLO = "world" diff --git a/kotlin/examples/kotlin-defaults/lib.test.kt b/kotlin/examples/kotlin-defaults/lib.test.kt deleted file mode 100644 index 3561297..0000000 --- a/kotlin/examples/kotlin-defaults/lib.test.kt +++ /dev/null @@ -1,12 +0,0 @@ -package com.intuit.bazel.kotlin - -import org.junit.jupiter.api.Assertions -import org.junit.jupiter.api.Test - -class Tests { - - @Test fun `test`() { - Assertions.assertEquals("world", HELLO) - } - -} diff --git a/kotlin/examples/kotlin-repository/BUILD b/kotlin/examples/kotlin-repository/BUILD deleted file mode 100644 index c6daccb..0000000 --- a/kotlin/examples/kotlin-repository/BUILD +++ /dev/null @@ -1,7 +0,0 @@ -load("@rules_player//kotlin:build.bzl", "kt_jvm_library_and_test") -kt_jvm_library_and_test( - name = "lib", - main_srcs = ["lib.kt"], - test_srcs = ["lib.test.kt"], - test_package = "com.intuit.bazel.kotlin" -) diff --git a/kotlin/examples/kotlin-repository/WORKSPACE b/kotlin/examples/kotlin-repository/WORKSPACE deleted file mode 100644 index 61ea665..0000000 --- a/kotlin/examples/kotlin-repository/WORKSPACE +++ /dev/null @@ -1,24 +0,0 @@ -local_repository( - name = "rules_player", - path = "../../..", -) - -load("@rules_player//kotlin:workspace.bzl", "kotlin_repository") -kotlin_repository( - remote = "https://github.com/bazelbuild/rules_kotlin.git", - # pre bzlmod flag in their .bazelrc - commit = "6e3339770551881f63d657c1f7b8bbdcd3d23c2c", - shallow_since = "1654891732 -0400" -) - -load("@rules_player//kotlin:repository.bzl", "archive") -archive() - -load("@rules_player//kotlin:conf.bzl", kotlin_conf = "kotlin") -kotlin_conf() - -load("@io_bazel_rules_kotlin//kotlin:core.bzl", "kt_register_toolchains") -kt_register_toolchains() - -load("@rules_player//junit5:conf.bzl", junit5 = "junit5") -junit5() diff --git a/kotlin/private/BUILD b/kotlin/private/BUILD new file mode 100644 index 0000000..bd012e6 --- /dev/null +++ b/kotlin/private/BUILD @@ -0,0 +1,46 @@ +load("@bazel_skylib//:bzl_library.bzl", "bzl_library") + +bzl_library( + name = "lint", + srcs = ["lint.bzl"], + visibility = [ + "//kotlin:__subpackages__", + ], + deps = [ + ":scope_name" + ] +) + +bzl_library( + name = "distribution", + srcs = ["distribution.bzl"], + visibility = [ + "//kotlin:__subpackages__", + ], + deps = [ + ":scope_name", + "@rules_jvm_external//:defs.bzl", + ] +) + +bzl_library( + name = "kt_jvm", + srcs = ["kt_jvm.bzl"], + visibility = [ + "//kotlin:__subpackages__", + ], + deps = [ + ":lint", + ":distribution", + ":kt_jvm_library_and_test.bzl", + ] +) + +bzl_library( + name = "scope_name", + srcs = ["scope_name.bzl"], + visibility = [ + "//kotlin:__subpackages__", + ], + deps = [], +) \ No newline at end of file diff --git a/kotlin/private/distribution.bzl b/kotlin/private/distribution.bzl new file mode 100644 index 0000000..0742506 --- /dev/null +++ b/kotlin/private/distribution.bzl @@ -0,0 +1,15 @@ +load("@rules_jvm_external//:defs.bzl", "maven_export") +load(":scope_name.bzl", "scope_name") + +def distribution( + *, + name, + maven_coordinates, + lib_name = None, + **kwargs): + maven_export( + name = scope_name(name, "export"), + lib_name = lib_name if lib_name else name, + maven_coordinates = maven_coordinates, + **kwargs + ) diff --git a/kotlin/private/junit5.bzl b/kotlin/private/junit5.bzl new file mode 100644 index 0000000..cf16b2b --- /dev/null +++ b/kotlin/private/junit5.bzl @@ -0,0 +1,5 @@ +load("//kotlin/private:junit_test.bzl", "junit_jupiter_java_repositories", "junit_platform_java_repositories") + +def junit5(jupter_version = "5.7.2", platform_version = "1.7.2"): + junit_jupiter_java_repositories(version = jupter_version) + junit_platform_java_repositories(version = platform_version) \ No newline at end of file diff --git a/kotlin/private/junit_test.bzl b/kotlin/private/junit_test.bzl new file mode 100644 index 0000000..d0aa8ef --- /dev/null +++ b/kotlin/private/junit_test.bzl @@ -0,0 +1,144 @@ +load("@bazel_tools//tools/build_defs/repo:jvm.bzl", "jvm_maven_import_external") +load("@rules_kotlin//kotlin:jvm.bzl", "kt_jvm_test") + +JUNIT_JUPITER_GROUP_ID = "org.junit.jupiter" +JUNIT_JUPITER_ARTIFACT_ID_LIST = [ + "junit-jupiter-api", + "junit-jupiter-engine", + "junit-jupiter-params", +] + +JUNIT_PLATFORM_GROUP_ID = "org.junit.platform" +JUNIT_PLATFORM_ARTIFACT_ID_LIST = [ + "junit-platform-commons", + "junit-platform-console", + "junit-platform-engine", + "junit-platform-launcher", + "junit-platform-suite-api", +] + +JUNIT_EXTRA_DEPENDENCIES = [ + ("org.apiguardian", "apiguardian-api", "1.0.0"), + ("org.opentest4j", "opentest4j", "1.1.1"), +] + +def junit_jupiter_java_repositories( + version = "5.7.2"): + """Imports dependencies for JUnit Jupiter""" + for artifact_id in JUNIT_JUPITER_ARTIFACT_ID_LIST: + jvm_maven_import_external( + name = _format_maven_jar_name(JUNIT_JUPITER_GROUP_ID, artifact_id), + artifact = "%s:%s:%s" % ( + JUNIT_JUPITER_GROUP_ID, + artifact_id, + version, + ), + server_urls = ["https://repo1.maven.org/maven2"], + licenses = ["notice"], # EPL 2.0 License + ) + + for t in JUNIT_EXTRA_DEPENDENCIES: + jvm_maven_import_external( + name = _format_maven_jar_name(t[0], t[1]), + artifact = "%s:%s:%s" % t, + server_urls = ["https://repo1.maven.org/maven2"], + licenses = ["notice"], # EPL 2.0 License + ) + +def junit_platform_java_repositories( + version = "1.7.2"): + """Imports dependencies for JUnit Platform""" + for artifact_id in JUNIT_PLATFORM_ARTIFACT_ID_LIST: + jvm_maven_import_external( + name = _format_maven_jar_name(JUNIT_PLATFORM_GROUP_ID, artifact_id), + artifact = "%s:%s:%s" % ( + JUNIT_PLATFORM_GROUP_ID, + artifact_id, + version, + ), + server_urls = ["https://repo1.maven.org/maven2"], + licenses = ["notice"], # EPL 2.0 License + ) + +def java_junit5_test(name, srcs, test_package, deps = [], runtime_deps = [], **kwargs): + FILTER_KWARGS = [ + "main_class", + "use_testrunner", + "args", + ] + + for arg in FILTER_KWARGS: + if arg in kwargs.keys(): + kwargs.pop(arg) + + junit_console_args = [] + if test_package: + junit_console_args += ["--select-package", test_package] + else: + fail("must specify 'test_package'") + + native.java_test( + name = name, + srcs = srcs, + use_testrunner = False, + main_class = "org.junit.platform.console.ConsoleLauncher", + args = junit_console_args, + deps = deps + [ + _format_maven_jar_dep_name(JUNIT_JUPITER_GROUP_ID, artifact_id) + for artifact_id in JUNIT_JUPITER_ARTIFACT_ID_LIST + ] + [ + _format_maven_jar_dep_name(JUNIT_PLATFORM_GROUP_ID, "junit-platform-suite-api"), + ] + [ + _format_maven_jar_dep_name(t[0], t[1]) + for t in JUNIT_EXTRA_DEPENDENCIES + ], + runtime_deps = (runtime_deps if runtime_deps else []) + [ + _format_maven_jar_dep_name(JUNIT_PLATFORM_GROUP_ID, artifact_id) + for artifact_id in JUNIT_PLATFORM_ARTIFACT_ID_LIST + ], + **kwargs + ) + +def kt_jvm_junit5_test(name, srcs, test_package, deps = [], runtime_deps = [], **kwargs): + FILTER_KWARGS = [ + "main_class", + "use_testrunner", + "args", + ] + + for arg in FILTER_KWARGS: + if arg in kwargs.keys(): + kwargs.pop(arg) + + junit_console_args = [] + if test_package: + junit_console_args += ["--select-package", test_package] + else: + fail("must specify 'test_package'") + + kt_jvm_test( + name = name, + srcs = srcs, + main_class = "org.junit.platform.console.ConsoleLauncher", + args = junit_console_args, + deps = deps + [ + _format_maven_jar_dep_name(JUNIT_JUPITER_GROUP_ID, artifact_id) + for artifact_id in JUNIT_JUPITER_ARTIFACT_ID_LIST + ] + [ + _format_maven_jar_dep_name(JUNIT_PLATFORM_GROUP_ID, "junit-platform-suite-api"), + ] + [ + _format_maven_jar_dep_name(t[0], t[1]) + for t in JUNIT_EXTRA_DEPENDENCIES + ], + runtime_deps = (runtime_deps if runtime_deps else []) + [ + _format_maven_jar_dep_name(JUNIT_PLATFORM_GROUP_ID, artifact_id) + for artifact_id in JUNIT_PLATFORM_ARTIFACT_ID_LIST + ], + **kwargs + ) + +def _format_maven_jar_name(group_id, artifact_id): + return ("%s_%s" % (group_id, artifact_id)).replace(".", "_").replace("-", "_") + +def _format_maven_jar_dep_name(group_id, artifact_id): + return "@maven//:%s" % _format_maven_jar_name(group_id, artifact_id) \ No newline at end of file diff --git a/kotlin/kt_jvm.bzl b/kotlin/private/kt_jvm.bzl similarity index 99% rename from kotlin/kt_jvm.bzl rename to kotlin/private/kt_jvm.bzl index d13a171..8797ddb 100644 --- a/kotlin/kt_jvm.bzl +++ b/kotlin/private/kt_jvm.bzl @@ -1,4 +1,4 @@ -load(":build.bzl", "kt_jvm_library_and_test") +load(":kt_jvm_library_and_test.bzl", "kt_jvm_library_and_test") load(":lint.bzl", "lint") load(":distribution.bzl", "distribution") diff --git a/kotlin/build.bzl b/kotlin/private/kt_jvm_library_and_test.bzl similarity index 90% rename from kotlin/build.bzl rename to kotlin/private/kt_jvm_library_and_test.bzl index 01fe4cb..22aa853 100644 --- a/kotlin/build.bzl +++ b/kotlin/private/kt_jvm_library_and_test.bzl @@ -1,6 +1,6 @@ -load("@io_bazel_rules_kotlin//kotlin:jvm.bzl", "kt_jvm_library") -load("@junit//junit5-jupiter-starter-bazel:junit5.bzl", "kt_jvm_junit5_test") -load("//internal:scope_name.bzl", "scope_name") +load("@rules_kotlin//kotlin:jvm.bzl", "kt_jvm_library") +load(":junit_test.bzl", "kt_jvm_junit5_test") +load(":scope_name.bzl", "scope_name") # No project specific defaults here def kt_jvm_library_and_test( @@ -71,4 +71,4 @@ def kt_jvm_library_and_test( test_package = test_package, deps = test_deps, runtime_deps = test_runtime_deps, - ) + ) \ No newline at end of file diff --git a/kotlin/lint.bzl b/kotlin/private/lint.bzl similarity index 69% rename from kotlin/lint.bzl rename to kotlin/private/lint.bzl index 640ad24..f540414 100644 --- a/kotlin/lint.bzl +++ b/kotlin/private/lint.bzl @@ -1,5 +1,5 @@ -load("@io_bazel_rules_kotlin//kotlin:lint.bzl", "ktlint_fix", "ktlint_test") -load("//internal:scope_name.bzl", "scope_name") +load("@rules_kotlin//kotlin:lint.bzl", "ktlint_fix", "ktlint_test") +load(":scope_name.bzl", "scope_name") def lint( *, @@ -18,5 +18,4 @@ def lint( name = scope_name(name, "lint-fix"), srcs = srcs, config = lint_config, - ) - \ No newline at end of file + ) \ No newline at end of file diff --git a/internal/scope_name.bzl b/kotlin/private/scope_name.bzl similarity index 72% rename from internal/scope_name.bzl rename to kotlin/private/scope_name.bzl index a67a1eb..97463a0 100644 --- a/internal/scope_name.bzl +++ b/kotlin/private/scope_name.bzl @@ -2,4 +2,4 @@ def scope_name(name, suffix): if name == native.package_name().split("/")[-1]: return suffix - return "{}-{}".format(name, suffix) + return "{}-{}".format(name, suffix) \ No newline at end of file diff --git a/kotlin/repository.bzl b/kotlin/repository.bzl deleted file mode 100644 index ce132a2..0000000 --- a/kotlin/repository.bzl +++ /dev/null @@ -1,7 +0,0 @@ -load("@io_bazel_rules_kotlin_repo//src/main/starlark/release_archive:repository.bzl", "archive_repository") - -def archive(): - archive_repository( - name = "io_bazel_rules_kotlin", - source_repository_name = "io_bazel_rules_kotlin_repo", - ) diff --git a/kotlin/workspace.bzl b/kotlin/workspace.bzl deleted file mode 100644 index 3eb8831..0000000 --- a/kotlin/workspace.bzl +++ /dev/null @@ -1,32 +0,0 @@ -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") -load("//junit5:workspace.bzl", "junit5") -load("//internal:maybe.bzl", "maybe") - -# Load Kotlin rules from remote artifact -def kotlin( - tag = "v1.7.1", - sha256 = "fd92a98bd8a8f0e1cdcb490b93f5acef1f1727ed992571232d33de42395ca9b3", - baseUrl = "https://github.com/bazelbuild/rules_kotlin/releases/download", - name = "rules_kotlin_release.tgz", -): - maybe( - http_archive, - name = "io_bazel_rules_kotlin", - urls = ["%s/%s/%s" % (baseUrl, tag, name)], - sha256 = sha256, - ) - junit5() - -# Load Kotlin rules from git -def kotlin_repository( - remote = "https://github.com/bazelbuild/rules_kotlin.git", - **kwargs, -): - maybe( - git_repository, - name = "io_bazel_rules_kotlin_repo", - remote = remote, - **kwargs, - ) - junit5() diff --git a/maven/BUILD b/maven/BUILD deleted file mode 100644 index e69de29..0000000 diff --git a/maven/parse_coordinates.bzl b/maven/parse_coordinates.bzl deleted file mode 100644 index 0267b11..0000000 --- a/maven/parse_coordinates.bzl +++ /dev/null @@ -1,7 +0,0 @@ -load("@rules_jvm_external//:defs.bzl", "artifact") - -def parse_coordinates(maven): - targets = [] - for coordinate in maven: - targets.append(artifact(coordinate)) - return targets diff --git a/maven/workspace.bzl b/maven/workspace.bzl deleted file mode 100644 index bcd35c0..0000000 --- a/maven/workspace.bzl +++ /dev/null @@ -1,25 +0,0 @@ -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") -load("//internal:maybe.bzl", "maybe") - -def maven(tag = "5.3", sha = "d31e369b854322ca5098ea12c69d7175ded971435e55c18dd9dd5f29cc5249ac"): - maybe( - http_archive, - name = "rules_jvm_external", - strip_prefix = "rules_jvm_external-%s" % tag, - sha256 = sha, - url = "https://github.com/bazelbuild/rules_jvm_external/archive/%s.zip" % tag, - ) - -# Load maven rules from git -def maven_repository( - remote = "https://github.com/sugarmanz/rules_jvm_external.git", - branch = "maven-export-aar", - **kwargs): - maybe( - git_repository, - name = "rules_jvm_external", - remote = remote, - branch = branch, - **kwargs - ) diff --git a/player/BUILD b/player/BUILD new file mode 100644 index 0000000..2d4d6eb --- /dev/null +++ b/player/BUILD @@ -0,0 +1,12 @@ +load("@bazel_skylib//:bzl_library.bzl", "bzl_library") + +exports_files(["defs.bzl"]) + +bzl_library( + name = "defs", + srcs = ["defs.bzl"], + visibility = ["//visibility:public"], + deps = [ + "//player/private:dsl", + ], +) diff --git a/player/README.md b/player/README.md deleted file mode 100644 index 2cca878..0000000 --- a/player/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# Player Specific Rules/Macros -The rules in this folder are a bit more specific for player use-cases. - - -## VSCE - -The VSCE rules aid with bundling, stamping, and publishing vscode extensions. - -```python -load("@rules_player//player/vsce:index.bzl", "vsce") - -vsce( - name = "vscode-ext", - substitutions = { - "__VERSION__": "{STABLE_VERSION}", - "0.0.0-PLACEHOLDER": "{STABLE_VERSION}", - "__GIT_COMMIT__": "{STABLE_GIT_COMMIT}", - }, - data = [ - "package.json", - ".vscodeignore" - ] + glob(["syntaxes/*"]) -) -``` - -Then to build publish the extension: - -```sh -bazel build //packages/vscode:vscode-ext -bazel run //packages/vscode:vscode-ext.publish -``` - diff --git a/player/bundle/BUILD b/player/bundle/BUILD deleted file mode 100644 index ffd0fb0..0000000 --- a/player/bundle/BUILD +++ /dev/null @@ -1 +0,0 @@ -package(default_visibility = ["//visibility:public"]) diff --git a/player/bundle/bundle.bzl b/player/bundle/bundle.bzl deleted file mode 100644 index 41fa6e2..0000000 --- a/player/bundle/bundle.bzl +++ /dev/null @@ -1,48 +0,0 @@ -load("@npm//webpack-cli:index.bzl", _webpack = "webpack_cli") - -PROD = "prod" -DEV = "dev" - -PRODUCTION = "production" -DEVELOPMENT = "development" - -MODES = { - PROD: PRODUCTION, - DEV: DEVELOPMENT, -} - -def webpack(name, dist, deps, mode_shorthand, visibility, bundle_name = None, bundle_entry = None, **kwargs): - output_name = bundle_name if bundle_name != None else name - _webpack( - name = "%s_bundle_%s" % (name, mode_shorthand), - outs = ["dist/%s.%s.js" % (bundle_name, mode_shorthand)], - args = [ - "--mode %s" % MODES[mode_shorthand], - bundle_entry if bundle_entry else "./$(RULEDIR)", - "--config", - "webpack.config.js", - "-o", - "./$@", - ], - data = dist + deps, - visibility = visibility, - **kwargs - ) - -""" -Creates dev and prod bundles from cjs code -""" - -def bundle(name, dist, deps, visibility, bundle_name = None, bundle_entry = None, **kwargs): - """Wrapper to create dev and prod bundles from a ts_package""" - webpack(name, dist, deps, DEV, visibility, bundle_name, bundle_entry, **kwargs) - webpack(name, dist, deps, PROD, visibility, bundle_name, bundle_entry, **kwargs) - - native.filegroup( - name = name, - srcs = [ - "%s_bundle_prod" % name, - "%s_bundle_dev" % name, - ], - visibility = visibility, - ) diff --git a/player/bundle/workspace.bzl b/player/bundle/workspace.bzl deleted file mode 100644 index 5a271d2..0000000 --- a/player/bundle/workspace.bzl +++ /dev/null @@ -1,4 +0,0 @@ -load("//javascript:workspace.bzl", "javascript") - -def bundle(): - javascript() diff --git a/player/cli/BUILD b/player/cli/BUILD deleted file mode 100644 index a26f925..0000000 --- a/player/cli/BUILD +++ /dev/null @@ -1 +0,0 @@ -package(default_visibility = ["//visibility:public"]) \ No newline at end of file diff --git a/player/cli/workspace.bzl b/player/cli/workspace.bzl deleted file mode 100644 index 5a271d2..0000000 --- a/player/cli/workspace.bzl +++ /dev/null @@ -1,4 +0,0 @@ -load("//javascript:workspace.bzl", "javascript") - -def bundle(): - javascript() diff --git a/player/cli/xlr.bzl b/player/cli/xlr.bzl deleted file mode 100644 index 2c110dd..0000000 --- a/player/cli/xlr.bzl +++ /dev/null @@ -1,80 +0,0 @@ -load("@bazel_skylib//lib:paths.bzl", "paths") -load("@build_bazel_rules_nodejs//:providers.bzl", "JSModuleInfo", "node_modules_aspect", "run_node") -load("@build_bazel_rules_nodejs//internal/linker:link_node_modules.bzl", "module_mappings_aspect") -load("@rules_player//javascript:utils.bzl", "get_dep_files") - -XLR_COMPILE_ATTRS = { - # Dependencies needed to build the pkg - "data": attr.label_list( - default = [], - aspects = [module_mappings_aspect, node_modules_aspect], - allow_files = True, - ), - - # Files to compile to XLR - "srcs": attr.label_list(default = [], allow_files = True), - - # What compilation mode should be used (plugin/types) - "mode": attr.string(default = "plugin"), - - # Input Root - "input_root": attr.string(default = "src"), - - # Output Directory - "output_root": attr.string(default = "dist"), - - # Player CLI executable - "_player_cli": attr.label(default = Label("@npm//@player-tools/cli/bin:player"), executable = True, cfg = "host"), -} - -def _xlr_compile(ctx): - xlr_output = ctx.actions.declare_directory(paths.join(ctx.attr.output_root, "xlr")) - manifest_json = ctx.actions.declare_file(paths.join(ctx.attr.output_root, "xlr", "manifest.json")) - manifest_js = ctx.actions.declare_file(paths.join(ctx.attr.output_root, "xlr", "manifest.js")) - file_outputs = [manifest_json, manifest_js, xlr_output] - output_group = OutputGroupInfo( - json = depset([manifest_json]), - js = depset([manifest_js]), - xlr = depset([xlr_output]) - ) - - deps_inputs = get_dep_files(ctx.attr.data) - output_root = paths.dirname(xlr_output.path) - in_dir = paths.join(ctx.label.package, ctx.attr.input_root) - - run_node( - ctx, - inputs = ctx.files.srcs + deps_inputs, - outputs = file_outputs, - arguments = [ - "xlr", - "compile", - "-m", - ctx.attr.mode, - "-o", - output_root, - "-i", - in_dir, - ], - executable = "_player_cli", - mnemonic = "PlayerCLI", - ) - - output_depset = depset(file_outputs) - - return [ - DefaultInfo( - files = output_depset, - ), - JSModuleInfo( - direct_sources = output_depset, - sources = output_depset, - ), - output_group, - ] - - -xlr_compile = rule( - implementation = _xlr_compile, - attrs = XLR_COMPILE_ATTRS, -) \ No newline at end of file diff --git a/player/defs.bzl b/player/defs.bzl new file mode 100644 index 0000000..cc21e12 --- /dev/null +++ b/player/defs.bzl @@ -0,0 +1,14 @@ +""" +Public API for player Bazel rules. +""" + +load("//player/private:dsl.bzl", _compile = "compile") +load("//player/private:xlr.bzl", _xlr_compile = "xlr_compile") +load("//player/private:config.bzl", _create_base_config = "create_base_config") +load("//player/private:js_xlr_pipeline.bzl", _js_xlr_pipeline = "js_xlr_pipeline") + +compile = _compile +dsl_compile = _compile +xlr_compile = _xlr_compile +create_base_config = _create_base_config +js_xlr_pipeline = _js_xlr_pipeline diff --git a/player/private/BUILD b/player/private/BUILD new file mode 100644 index 0000000..1a2b8c1 --- /dev/null +++ b/player/private/BUILD @@ -0,0 +1,23 @@ +load("@bazel_skylib//:bzl_library.bzl", "bzl_library") + +bzl_library( + name = "dsl", + srcs = ["dsl.bzl"], + visibility = ["//player:__subpackages__"], +) + +bzl_library( + name = "xlr", + srcs = ["xlr.bzl"], + visibility = ["//player:__subpackages__"], +) + +bzl_library( + name = "config", + srcs = ["config.bzl"], + visibility = ["//player:__subpackages__"], +) + +exports_files([ + "player.config.js.template", +]) diff --git a/player/private/config.bzl b/player/private/config.bzl new file mode 100644 index 0000000..d44aecb --- /dev/null +++ b/player/private/config.bzl @@ -0,0 +1,71 @@ +""" +A rule for creating player cli configs +""" + +load("@aspect_rules_js//js:providers.bzl", "JsInfo") + +_config_attrs = { + "plugins": attr.label_list( + default = [], + providers = [JsInfo], + allow_files = True, + allow_empty = True, + ), + "presets": attr.label_list( + default = [], + providers = [JsInfo], + allow_files = True, + allow_empty = True, + ), + "_config_template": attr.label( + allow_single_file = True, + default = Label("//player/private:player.config.js.template"), + ), +} + +def _create_base_config_impl(ctx): + """ + Implementation for player cli config + """ + + tmpl_plugins = [] + tmpl_presets = [] + + for plugin in ctx.attr.plugins: + linked_list = plugin[JsInfo].npm_linked_packages.to_list() + if len(linked_list) > 1: + fail("Plugin {} has more than one linked package".format(plugin)) + + tmpl_plugins.append(linked_list[0].package) + + for plugin in ctx.attr.presets: + linked_list = plugin[JsInfo].npm_linked_packages.to_list() + if len(linked_list) > 1: + fail("Plugin {} has more than one linked package".format(plugin)) + + tmpl_presets.append(linked_list[0].package) + + output_file = ctx.actions.declare_file("{}.player.config.js".format(ctx.label.name)) + + ctx.actions.expand_template( + template = ctx.file._config_template, + output = output_file, + substitutions = { + "_TMPL_PLUGINS": json.encode(tmpl_plugins), + "_TMPL_PRESETS": json.encode(tmpl_presets), + }, + ) + + output_sources = [output_file] + output_sources_depset = depset(output_sources) + + return [ + DefaultInfo( + files = output_sources_depset, + ), + ] + +create_base_config = rule( + implementation = _create_base_config_impl, + attrs = _config_attrs, +) diff --git a/player/private/dsl.bzl b/player/private/dsl.bzl new file mode 100644 index 0000000..a8a9bc6 --- /dev/null +++ b/player/private/dsl.bzl @@ -0,0 +1,70 @@ +""" +A rule for compiling player flows. +""" + +load("@aspect_bazel_lib//lib:directory_path.bzl", "directory_path") +load("@aspect_rules_js//js:defs.bzl", "js_binary", "js_run_binary", "js_test") +load("@bazel_skylib//lib:paths.bzl", "paths") + +def compile(name, node_modules = "//:node_modules", srcs = None, input_dir = "src", output_dir = None, data = [], config = None, skip_test = False, **kwargs): + """Run the src or src_dir through the player compiler. + Args: + name: The name of the target. + srcs: The source files to compile. + node_modules: The node_modules target to use. + """ + + player_cli_entrypoint = "{}_entrypoint".format(name) + + directory_path( + name = player_cli_entrypoint, + directory = "{}/@player-tools/cli/dir".format(node_modules), + path = "bin/run", + ) + + js_bin_name = "{}_binary".format(name) + js_test_bin_name = "{}_test_binary".format(name) + + js_binary( + name = js_bin_name, + data = ["{}/@player-tools/cli".format(node_modules)], + entry_point = ":{}".format(player_cli_entrypoint), + ) + + output_dir = output_dir if output_dir else "{}_dist".format(name) + outputs = [paths.join(output_dir, paths.relativize(paths.replace_extension(src, ".json"), input_dir)) for src in srcs] + + js_run_binary( + name = name, + tool = js_bin_name, + srcs = data + srcs + [config], + visibility = ["//:__subpackages__"], + args = [ + "dsl", + "compile", + "--skip-validation", + "-o", + "{}/{}".format(native.package_name(), output_dir), + "-i", + "{}/{}".format(native.package_name(), input_dir), + "-c", + "$(rootpath {})".format(config), + ], + outs = outputs, + **kwargs + ) + + if skip_test != True: + js_test( + name = js_test_bin_name, + data = data + [":" + name, "{}/@player-tools/cli".format(node_modules), config], + entry_point = ":{}".format(player_cli_entrypoint), + args = [ + "json", + "validate", + "-c", + "$(rootpath {})".format(config), + "-f", + "$(locations {})".format(":" + name), + ], + ) diff --git a/player/private/js_xlr_pipeline.bzl b/player/private/js_xlr_pipeline.bzl new file mode 100644 index 0000000..d919e72 --- /dev/null +++ b/player/private/js_xlr_pipeline.bzl @@ -0,0 +1,34 @@ +load("//javascript:defs.bzl", "js_pipeline") +load("xlr.bzl", "xlr_compile") + +def js_xlr_pipeline(name = None, xlr_mode = "plugin", xlr_input_dir = "src", srcs = None, **kwargs): + """A rule for compiling player flows with xlr mode. + Args: + name: The name of the target. + xlr_mode: The mode to use when compiling with XLR. Defaults to "plugin". + """ + + if name == None: + # name = package_name.split("/")[-1] + name = native.package_name().split("/")[-1] + + if srcs == None: + srcs = native.glob(["src/**/*"]) + + xlr_compile( + name = name + "_xlr", + srcs = srcs, + mode = xlr_mode, + input_dir = xlr_input_dir, + data = [ + "//:node_modules/dlv", + ] + kwargs.get("deps", []) + kwargs.get("peer_deps", []), + ) + + js_pipeline( + name = name, + include_packaging_targets = [ + ":" + name + "_xlr", + ], + **kwargs + ) diff --git a/player/private/player.config.js.template b/player/private/player.config.js.template new file mode 100644 index 0000000..c00c311 --- /dev/null +++ b/player/private/player.config.js.template @@ -0,0 +1,4 @@ +module.exports = { + "plugins": _TMPL_PLUGINS.map(r => require.resolve(r)), + "presets": _TMPL_PRESETS.map(r => require.resolve(r)) +} \ No newline at end of file diff --git a/player/private/xlr.bzl b/player/private/xlr.bzl new file mode 100644 index 0000000..35b5cda --- /dev/null +++ b/player/private/xlr.bzl @@ -0,0 +1,60 @@ +""" +A rule for compiling player flows. +""" + +load("@aspect_bazel_lib//lib:directory_path.bzl", "directory_path") +load("@aspect_rules_js//js:defs.bzl", "js_binary", "js_run_binary") +load("config.bzl", "create_base_config") +load("@bazel_skylib//lib:paths.bzl", "paths") + +def xlr_compile( + name, + node_modules = "//:node_modules", + srcs = None, + data = [], + config = None, + input_dir = "src", + mode = "plugin", + **kwargs): + player_cli_entrypoint = "{}_entrypoint".format(name) + + if (config == None): + create_base_config( + name = "{}_config".format(name), + ) + config = ":{}_config".format(name) + + directory_path( + name = player_cli_entrypoint, + directory = "{}/@player-tools/cli/dir".format(node_modules), + path = "bin/run", + ) + + js_bin_name = "{}_binary".format(name) + + js_binary( + name = js_bin_name, + data = ["{}/@player-tools/cli".format(node_modules)], + entry_point = ":{}".format(player_cli_entrypoint), + ) + + js_run_binary( + name = name, + tool = js_bin_name, + srcs = data + srcs + [config], + visibility = ["//:__subpackages__"], + args = [ + "xlr", + "compile", + "-o", + paths.join(native.package_name(), "dist"), + "-i", + paths.join(native.package_name(), input_dir), + "-c", + "$(rootpath {})".format(config), + "-m", + mode, + ], + out_dirs = [paths.join("dist", "xlr")], + **kwargs + ) diff --git a/player/vsce/BUILD b/player/vsce/BUILD deleted file mode 100644 index 86eea19..0000000 --- a/player/vsce/BUILD +++ /dev/null @@ -1,12 +0,0 @@ -load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary") - -package(default_visibility = ["//visibility:public"]) - -nodejs_binary( - name = "vsce_stamp", - entry_point = "vsce_stamp.js", - data = [ - "@npm//extract-zip", - "@npm//zip-folder" - ] -) \ No newline at end of file diff --git a/player/vsce/index.bzl b/player/vsce/index.bzl deleted file mode 100644 index f6fbbc4..0000000 --- a/player/vsce/index.bzl +++ /dev/null @@ -1,47 +0,0 @@ -load("@npm//vsce:index.bzl", _vsce = "vsce") -load(":vsce_stamp.bzl", "vsce_stamp") - -COMMON_ARGS = [ - "--no-git-tag-version", - "--no-update-package-json", - "--yarn" -] - -def vsce(name, data, substitutions = {}): - _package_segments = len(native.package_name().split("/")) - # ../.. segments to re-relative paths from the chdir back to workspace root - out_path = "/".join([".."] * _package_segments + ["$@"]) - - default_target = ":%s" % name - stamped_name = "%s_stamp" % name - stamped_target = ":%s" % stamped_name - - _vsce( - name = name, - args = [ - "package", - "--out", - out_path, - ] + COMMON_ARGS, - chdir = native.package_name(), - outs = ["%s.vsix" % name], - data = data - ) - - vsce_stamp( - name = stamped_name, - vsix = default_target, - substitutions = substitutions - ) - - _vsce( - name = "%s.publish" % name, - data = [ - stamped_target - ], - args = [ - "publish", - "--packagePath", - "$(location %s)" % stamped_target, - ] + COMMON_ARGS - ) diff --git a/player/vsce/vsce_stamp.bzl b/player/vsce/vsce_stamp.bzl deleted file mode 100644 index 62e06ba..0000000 --- a/player/vsce/vsce_stamp.bzl +++ /dev/null @@ -1,50 +0,0 @@ -""" -Module for stamping a vsix vscode-extension package -""" -load("@build_bazel_rules_nodejs//:providers.bzl", "run_node", "NODE_CONTEXT_ATTRS", "NodeContextInfo") -load("@bazel_skylib//lib:paths.bzl", "paths") - -_VSCE_STAMP_JS = Label("//player/vsce:vsce_stamp") - -VSCE_STAMP_ATTRS = dict(NODE_CONTEXT_ATTRS, **{ - "vsix": attr.label( allow_single_file=True ), - "substitutions": attr.string_dict(), - "_vsce_stamp_js": attr.label(default=_VSCE_STAMP_JS, executable=True, cfg="host"), -}) - -def _vsce_stamp_impl(ctx): - """ - A .vsix file is just a fancy zip. Unzip it, stamp the items, and repack - """ - stamped_vsix = ctx.actions.declare_file("stamped_%s" % (paths.basename(ctx.file.vsix.path))) - - stamp_inputs = [] - stamp = ctx.attr.node_context_data[NodeContextInfo].stamp - - if stamp: - stamp_inputs = [ctx.info_file] - - run_node( - ctx, - inputs = ctx.files.vsix + stamp_inputs, - outputs = [stamped_vsix], - arguments = [json.encode({ - "input_file": ctx.file.vsix.path, - "output_file": stamped_vsix.path, - "stamp": ctx.info_file.path if stamp else None, - "substitutions": ctx.attr.substitutions, - })], - executable = "_vsce_stamp_js", - mnemonic = "VSCEStamp", - ) - - return [ - DefaultInfo( - files = depset([stamped_vsix]) - ) - ] - -vsce_stamp = rule( - implementation = _vsce_stamp_impl, - attrs = VSCE_STAMP_ATTRS, -) \ No newline at end of file diff --git a/player/vsce/vsce_stamp.js b/player/vsce/vsce_stamp.js deleted file mode 100644 index d90eedb..0000000 --- a/player/vsce/vsce_stamp.js +++ /dev/null @@ -1,97 +0,0 @@ -const fs = require("fs"); -const path = require("path"); -const extract = require("extract-zip"); -const zipFolder = require("zip-folder"); - -async function handleSubstitutions(folderOrFile, substitutions) { - if (Object.keys(substitutions).length === 0) { - return; - } - - if ((await fs.promises.stat(folderOrFile)).isDirectory()) { - const files = await fs.promises.readdir(folderOrFile); - for (const file of files) { - await handleSubstitutions(path.join(folderOrFile, file), substitutions); - } - - return; - } - - let contents = await fs.promises.readFile(folderOrFile, "utf-8"); - const originalContents = contents; - for (const key in substitutions) { - const value = substitutions[key]; - contents = contents.replace(new RegExp(key, "g"), value); - } - - if (contents !== originalContents) { - await fs.promises.writeFile(folderOrFile, contents); - } -} - -const repackageVSIX = async (input_file, output_file, substitutions) => { - const tempDir = path.join(__dirname, "temp"); - await fs.promises.mkdir(tempDir, { recursive: true }); - - await extract(input_file, { dir: tempDir }); - await handleSubstitutions(tempDir, substitutions); - - await new Promise((resolve, reject) => { - zipFolder(tempDir, output_file, (err) => { - if (err) { - return reject(err); - } - - resolve(); - }); - }); - - await fs.promises.rm(tempDir, { recursive: true }); -}; - -const main = async ([config]) => { - const { input_file, output_file, stamp, substitutions, version_key } = JSON.parse(config); - - // Don't do much if we don't have to stamp, just copy it over as is - if (!stamp) { - fs.copyFileSync(input_file, output_file); - return; - } - - // Grab all of the vars to stamp - // Unzip the file - // Replace what needs to be replaced - // Rezip it to the new location - - const stampFile = fs.readFileSync(stamp, "utf-8"); - - // TODO: Should share this as a common module - stampFile.split("\n").forEach((line) => { - const firstSpace = line.indexOf(" "); - const varName = line.substring(0, firstSpace); - let varVal = line.substring(firstSpace + 1); - - // Using the same match as https://github.com/bazelbuild/rules_nodejs/blob/stable/internal/pkg_npm/packager.js#L139 - if (varName.endsWith('_VERSION')) { - // vscode doesn't let you have `-canary` suffixes - varVal = varVal.replace(/[^\d.]/g, ''); - } - - // Swap out anything referencing the stamped file with the actual value - Object.keys(substitutions).forEach((key) => { - if (substitutions[key] === `{${varName}}`) { - substitutions[key] = varVal; - } - }); - }); - - await repackageVSIX(input_file, output_file, substitutions); -}; - -if (require.main === module) { - try { - process.exitCode = main(process.argv.slice(2)); - } catch (e) { - console.error(process.argv[1], e); - } -} diff --git a/player/vsce/workspace.bzl b/player/vsce/workspace.bzl deleted file mode 100644 index 6b54f98..0000000 --- a/player/vsce/workspace.bzl +++ /dev/null @@ -1,4 +0,0 @@ -load("//javascript:workspace.bzl", "javascript") - -def vsce(): - javascript() diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..2e2eeb7 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,2090 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +devDependencies: + '@auto-it/git-tag': + specifier: ^10.37.1 + version: registry.npmjs.org/@auto-it/git-tag@10.46.0(@types/node@20.9.3)(typescript@5.3.2) + '@auto-it/released': + specifier: ^10.37.1 + version: registry.npmjs.org/@auto-it/released@10.46.0(@types/node@20.9.3)(typescript@5.3.2) + auto: + specifier: ^10.37.1 + version: registry.npmjs.org/auto@10.46.0(@types/node@20.9.3)(typescript@5.3.2) + +packages: + + registry.npmjs.org/@auto-it/bot-list@10.46.0: + resolution: {integrity: sha512-QkkBgQVi1g/1Tpxcs3Hm3zTzaaM0xjiIRt5xEA6TRM/ULdgEqY+Jk/w1fJZe9GVF+53mwRfqGtQeJirilMBH6g==, tarball: https://registry.npmjs.org/@auto-it/bot-list/-/bot-list-10.46.0.tgz} + name: '@auto-it/bot-list' + version: 10.46.0 + engines: {node: '>=10.x'} + dev: true + + registry.npmjs.org/@auto-it/core@10.46.0(@types/node@20.9.3)(typescript@5.3.2): + resolution: {integrity: sha512-68jWcUuQBFCjgUvEWa64ENeRPULFYiaFpo37H6SUuLcZ2XBD+Bt4Y0yqHWjs6F5g19S7pzOYe25SxWf+U0J4LQ==, tarball: https://registry.npmjs.org/@auto-it/core/-/core-10.46.0.tgz} + id: registry.npmjs.org/@auto-it/core/10.46.0 + name: '@auto-it/core' + version: 10.46.0 + peerDependencies: + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@auto-it/bot-list': registry.npmjs.org/@auto-it/bot-list@10.46.0 + '@endemolshinegroup/cosmiconfig-typescript-loader': registry.npmjs.org/@endemolshinegroup/cosmiconfig-typescript-loader@3.0.2(cosmiconfig@7.0.0)(typescript@5.3.2) + '@octokit/core': registry.npmjs.org/@octokit/core@3.6.0 + '@octokit/plugin-enterprise-compatibility': registry.npmjs.org/@octokit/plugin-enterprise-compatibility@1.3.0 + '@octokit/plugin-retry': registry.npmjs.org/@octokit/plugin-retry@3.0.9 + '@octokit/plugin-throttling': registry.npmjs.org/@octokit/plugin-throttling@3.7.0(@octokit/core@3.6.0) + '@octokit/rest': registry.npmjs.org/@octokit/rest@18.12.0 + '@types/node': registry.npmjs.org/@types/node@20.9.3 + await-to-js: registry.npmjs.org/await-to-js@3.0.0 + chalk: registry.npmjs.org/chalk@4.1.2 + cosmiconfig: registry.npmjs.org/cosmiconfig@7.0.0 + deepmerge: registry.npmjs.org/deepmerge@4.3.1 + dotenv: registry.npmjs.org/dotenv@8.6.0 + endent: registry.npmjs.org/endent@2.1.0 + enquirer: registry.npmjs.org/enquirer@2.4.1 + env-ci: registry.npmjs.org/env-ci@5.5.0 + fast-glob: registry.npmjs.org/fast-glob@3.3.2 + fp-ts: registry.npmjs.org/fp-ts@2.16.1 + fromentries: registry.npmjs.org/fromentries@1.3.2 + gitlog: registry.npmjs.org/gitlog@4.0.8 + https-proxy-agent: registry.npmjs.org/https-proxy-agent@5.0.1 + import-cwd: registry.npmjs.org/import-cwd@3.0.0 + import-from: registry.npmjs.org/import-from@3.0.0 + io-ts: registry.npmjs.org/io-ts@2.2.20(fp-ts@2.16.1) + lodash.chunk: registry.npmjs.org/lodash.chunk@4.2.0 + log-symbols: registry.npmjs.org/log-symbols@4.1.0 + node-fetch: registry.npmjs.org/node-fetch@2.6.7 + parse-author: registry.npmjs.org/parse-author@2.0.0 + parse-github-url: registry.npmjs.org/parse-github-url@1.0.2 + pretty-ms: registry.npmjs.org/pretty-ms@7.0.1 + requireg: registry.npmjs.org/requireg@0.2.2 + semver: registry.npmjs.org/semver@7.5.4 + signale: registry.npmjs.org/signale@1.4.0 + tapable: registry.npmjs.org/tapable@2.2.1 + terminal-link: registry.npmjs.org/terminal-link@2.1.1 + tinycolor2: registry.npmjs.org/tinycolor2@1.6.0 + ts-node: registry.npmjs.org/ts-node@10.9.1(@types/node@20.9.3)(typescript@5.3.2) + tslib: registry.npmjs.org/tslib@2.1.0 + type-fest: registry.npmjs.org/type-fest@0.21.3 + typescript: registry.npmjs.org/typescript@5.3.2 + typescript-memoize: registry.npmjs.org/typescript-memoize@1.1.1 + url-join: registry.npmjs.org/url-join@4.0.1 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - encoding + - supports-color + dev: true + + registry.npmjs.org/@auto-it/git-tag@10.46.0(@types/node@20.9.3)(typescript@5.3.2): + resolution: {integrity: sha512-2Yo+D8sa/2Zc6nbpWdus18EGYzVvsCTUVRfMYrbMjuE8YqBtv78KlGquLuVvPU1TTdiQTxN2UFTtQt7/66tsUQ==, tarball: https://registry.npmjs.org/@auto-it/git-tag/-/git-tag-10.46.0.tgz} + id: registry.npmjs.org/@auto-it/git-tag/10.46.0 + name: '@auto-it/git-tag' + version: 10.46.0 + dependencies: + '@auto-it/core': registry.npmjs.org/@auto-it/core@10.46.0(@types/node@20.9.3)(typescript@5.3.2) + semver: registry.npmjs.org/semver@7.5.4 + tslib: registry.npmjs.org/tslib@2.1.0 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - encoding + - supports-color + - typescript + dev: true + + registry.npmjs.org/@auto-it/npm@10.46.0(@types/node@20.9.3)(typescript@5.3.2): + resolution: {integrity: sha512-hvwXxRJE70ay4/CMEDtILZvefXqmo+jp/w8FEu4Bo1Kq96AREfH9cO+mgj1nPon5yg353SCcupGV3OyoZt18iw==, tarball: https://registry.npmjs.org/@auto-it/npm/-/npm-10.46.0.tgz} + id: registry.npmjs.org/@auto-it/npm/10.46.0 + name: '@auto-it/npm' + version: 10.46.0 + dependencies: + '@auto-it/core': registry.npmjs.org/@auto-it/core@10.46.0(@types/node@20.9.3)(typescript@5.3.2) + '@auto-it/package-json-utils': registry.npmjs.org/@auto-it/package-json-utils@10.46.0 + await-to-js: registry.npmjs.org/await-to-js@3.0.0 + endent: registry.npmjs.org/endent@2.1.0 + env-ci: registry.npmjs.org/env-ci@5.5.0 + fp-ts: registry.npmjs.org/fp-ts@2.16.1 + get-monorepo-packages: registry.npmjs.org/get-monorepo-packages@1.2.0 + io-ts: registry.npmjs.org/io-ts@2.2.20(fp-ts@2.16.1) + registry-url: registry.npmjs.org/registry-url@5.1.0 + semver: registry.npmjs.org/semver@7.5.4 + tslib: registry.npmjs.org/tslib@2.1.0 + typescript-memoize: registry.npmjs.org/typescript-memoize@1.1.1 + url-join: registry.npmjs.org/url-join@4.0.1 + user-home: registry.npmjs.org/user-home@2.0.0 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - encoding + - supports-color + - typescript + dev: true + + registry.npmjs.org/@auto-it/package-json-utils@10.46.0: + resolution: {integrity: sha512-dl0VW3oJ/JfyuXlVucLlsBaQH69GTkTXLSq9JZ723hT55/owcywDpSlD4YH158hm7Lv5CdHw2u3z60XUlqa6xQ==, tarball: https://registry.npmjs.org/@auto-it/package-json-utils/-/package-json-utils-10.46.0.tgz} + name: '@auto-it/package-json-utils' + version: 10.46.0 + engines: {node: '>=10.x'} + dependencies: + parse-author: registry.npmjs.org/parse-author@2.0.0 + parse-github-url: registry.npmjs.org/parse-github-url@1.0.2 + dev: true + + registry.npmjs.org/@auto-it/released@10.46.0(@types/node@20.9.3)(typescript@5.3.2): + resolution: {integrity: sha512-U0XYvkcPoO4c4WiJz6PQ8jUOMEH1EjxXRGyvaaZWfZOtr2vquvGDIAs6ntekURcNs75H780K49es18mTLgz9/g==, tarball: https://registry.npmjs.org/@auto-it/released/-/released-10.46.0.tgz} + id: registry.npmjs.org/@auto-it/released/10.46.0 + name: '@auto-it/released' + version: 10.46.0 + dependencies: + '@auto-it/bot-list': registry.npmjs.org/@auto-it/bot-list@10.46.0 + '@auto-it/core': registry.npmjs.org/@auto-it/core@10.46.0(@types/node@20.9.3)(typescript@5.3.2) + deepmerge: registry.npmjs.org/deepmerge@4.3.1 + fp-ts: registry.npmjs.org/fp-ts@2.16.1 + io-ts: registry.npmjs.org/io-ts@2.2.20(fp-ts@2.16.1) + tslib: registry.npmjs.org/tslib@2.1.0 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - encoding + - supports-color + - typescript + dev: true + + registry.npmjs.org/@auto-it/version-file@10.46.0(@types/node@20.9.3)(typescript@5.3.2): + resolution: {integrity: sha512-V5HEQyGHPCFzH8Fj7RlBebgZ83P0QYXpNTtzPF6az4NLoNvaeZmqkirhx7WEasggVvyfX56GlM6df5jwXXfi7g==, tarball: https://registry.npmjs.org/@auto-it/version-file/-/version-file-10.46.0.tgz} + id: registry.npmjs.org/@auto-it/version-file/10.46.0 + name: '@auto-it/version-file' + version: 10.46.0 + dependencies: + '@auto-it/core': registry.npmjs.org/@auto-it/core@10.46.0(@types/node@20.9.3)(typescript@5.3.2) + fp-ts: registry.npmjs.org/fp-ts@2.16.1 + io-ts: registry.npmjs.org/io-ts@2.2.20(fp-ts@2.16.1) + semver: registry.npmjs.org/semver@7.5.4 + tslib: registry.npmjs.org/tslib@1.10.0 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - encoding + - supports-color + - typescript + dev: true + + registry.npmjs.org/@babel/code-frame@7.23.4: + resolution: {integrity: sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==, tarball: https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.4.tgz} + name: '@babel/code-frame' + version: 7.23.4 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': registry.npmjs.org/@babel/highlight@7.23.4 + chalk: registry.npmjs.org/chalk@2.4.2 + dev: true + + registry.npmjs.org/@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==, tarball: https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz} + name: '@babel/helper-validator-identifier' + version: 7.22.20 + engines: {node: '>=6.9.0'} + dev: true + + registry.npmjs.org/@babel/highlight@7.23.4: + resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==, tarball: https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz} + name: '@babel/highlight' + version: 7.23.4 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': registry.npmjs.org/@babel/helper-validator-identifier@7.22.20 + chalk: registry.npmjs.org/chalk@2.4.2 + js-tokens: registry.npmjs.org/js-tokens@4.0.0 + dev: true + + registry.npmjs.org/@cspotcode/source-map-support@0.8.1: + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==, tarball: https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz} + name: '@cspotcode/source-map-support' + version: 0.8.1 + engines: {node: '>=12'} + dependencies: + '@jridgewell/trace-mapping': registry.npmjs.org/@jridgewell/trace-mapping@0.3.9 + dev: true + + registry.npmjs.org/@endemolshinegroup/cosmiconfig-typescript-loader@3.0.2(cosmiconfig@7.0.0)(typescript@5.3.2): + resolution: {integrity: sha512-QRVtqJuS1mcT56oHpVegkKBlgtWjXw/gHNWO3eL9oyB5Sc7HBoc2OLG/nYpVfT/Jejvo3NUrD0Udk7XgoyDKkA==, tarball: https://registry.npmjs.org/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz} + id: registry.npmjs.org/@endemolshinegroup/cosmiconfig-typescript-loader/3.0.2 + name: '@endemolshinegroup/cosmiconfig-typescript-loader' + version: 3.0.2 + engines: {node: '>=10.0.0'} + peerDependencies: + cosmiconfig: '>=6' + dependencies: + cosmiconfig: registry.npmjs.org/cosmiconfig@7.0.0 + lodash.get: registry.npmjs.org/lodash.get@4.4.2 + make-error: registry.npmjs.org/make-error@1.3.6 + ts-node: registry.npmjs.org/ts-node@9.1.1(typescript@5.3.2) + tslib: registry.npmjs.org/tslib@2.1.0 + transitivePeerDependencies: + - typescript + dev: true + + registry.npmjs.org/@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==, tarball: https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz} + name: '@jridgewell/resolve-uri' + version: 3.1.1 + engines: {node: '>=6.0.0'} + dev: true + + registry.npmjs.org/@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==, tarball: https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz} + name: '@jridgewell/sourcemap-codec' + version: 1.4.15 + dev: true + + registry.npmjs.org/@jridgewell/trace-mapping@0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==, tarball: https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz} + name: '@jridgewell/trace-mapping' + version: 0.3.9 + dependencies: + '@jridgewell/resolve-uri': registry.npmjs.org/@jridgewell/resolve-uri@3.1.1 + '@jridgewell/sourcemap-codec': registry.npmjs.org/@jridgewell/sourcemap-codec@1.4.15 + dev: true + + registry.npmjs.org/@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, tarball: https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz} + name: '@nodelib/fs.scandir' + version: 2.1.5 + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': registry.npmjs.org/@nodelib/fs.stat@2.0.5 + run-parallel: registry.npmjs.org/run-parallel@1.2.0 + dev: true + + registry.npmjs.org/@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, tarball: https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz} + name: '@nodelib/fs.stat' + version: 2.0.5 + engines: {node: '>= 8'} + dev: true + + registry.npmjs.org/@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, tarball: https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz} + name: '@nodelib/fs.walk' + version: 1.2.8 + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': registry.npmjs.org/@nodelib/fs.scandir@2.1.5 + fastq: registry.npmjs.org/fastq@1.15.0 + dev: true + + registry.npmjs.org/@octokit/auth-token@2.5.0: + resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==, tarball: https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz} + name: '@octokit/auth-token' + version: 2.5.0 + dependencies: + '@octokit/types': registry.npmjs.org/@octokit/types@6.41.0 + dev: true + + registry.npmjs.org/@octokit/core@3.6.0: + resolution: {integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==, tarball: https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz} + name: '@octokit/core' + version: 3.6.0 + dependencies: + '@octokit/auth-token': registry.npmjs.org/@octokit/auth-token@2.5.0 + '@octokit/graphql': registry.npmjs.org/@octokit/graphql@4.8.0 + '@octokit/request': registry.npmjs.org/@octokit/request@5.6.3 + '@octokit/request-error': registry.npmjs.org/@octokit/request-error@2.1.0 + '@octokit/types': registry.npmjs.org/@octokit/types@6.41.0 + before-after-hook: registry.npmjs.org/before-after-hook@2.2.3 + universal-user-agent: registry.npmjs.org/universal-user-agent@6.0.1 + transitivePeerDependencies: + - encoding + dev: true + + registry.npmjs.org/@octokit/endpoint@6.0.12: + resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==, tarball: https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz} + name: '@octokit/endpoint' + version: 6.0.12 + dependencies: + '@octokit/types': registry.npmjs.org/@octokit/types@6.41.0 + is-plain-object: registry.npmjs.org/is-plain-object@5.0.0 + universal-user-agent: registry.npmjs.org/universal-user-agent@6.0.1 + dev: true + + registry.npmjs.org/@octokit/graphql@4.8.0: + resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==, tarball: https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz} + name: '@octokit/graphql' + version: 4.8.0 + dependencies: + '@octokit/request': registry.npmjs.org/@octokit/request@5.6.3 + '@octokit/types': registry.npmjs.org/@octokit/types@6.41.0 + universal-user-agent: registry.npmjs.org/universal-user-agent@6.0.1 + transitivePeerDependencies: + - encoding + dev: true + + registry.npmjs.org/@octokit/openapi-types@12.11.0: + resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==, tarball: https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz} + name: '@octokit/openapi-types' + version: 12.11.0 + dev: true + + registry.npmjs.org/@octokit/plugin-enterprise-compatibility@1.3.0: + resolution: {integrity: sha512-h34sMGdEOER/OKrZJ55v26ntdHb9OPfR1fwOx6Q4qYyyhWA104o11h9tFxnS/l41gED6WEI41Vu2G2zHDVC5lQ==, tarball: https://registry.npmjs.org/@octokit/plugin-enterprise-compatibility/-/plugin-enterprise-compatibility-1.3.0.tgz} + name: '@octokit/plugin-enterprise-compatibility' + version: 1.3.0 + dependencies: + '@octokit/request-error': registry.npmjs.org/@octokit/request-error@2.1.0 + '@octokit/types': registry.npmjs.org/@octokit/types@6.41.0 + dev: true + + registry.npmjs.org/@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0): + resolution: {integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==, tarball: https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz} + id: registry.npmjs.org/@octokit/plugin-paginate-rest/2.21.3 + name: '@octokit/plugin-paginate-rest' + version: 2.21.3 + peerDependencies: + '@octokit/core': '>=2' + dependencies: + '@octokit/core': registry.npmjs.org/@octokit/core@3.6.0 + '@octokit/types': registry.npmjs.org/@octokit/types@6.41.0 + dev: true + + registry.npmjs.org/@octokit/plugin-request-log@1.0.4(@octokit/core@3.6.0): + resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==, tarball: https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz} + id: registry.npmjs.org/@octokit/plugin-request-log/1.0.4 + name: '@octokit/plugin-request-log' + version: 1.0.4 + peerDependencies: + '@octokit/core': '>=3' + dependencies: + '@octokit/core': registry.npmjs.org/@octokit/core@3.6.0 + dev: true + + registry.npmjs.org/@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0): + resolution: {integrity: sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==, tarball: https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz} + id: registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/5.16.2 + name: '@octokit/plugin-rest-endpoint-methods' + version: 5.16.2 + peerDependencies: + '@octokit/core': '>=3' + dependencies: + '@octokit/core': registry.npmjs.org/@octokit/core@3.6.0 + '@octokit/types': registry.npmjs.org/@octokit/types@6.41.0 + deprecation: registry.npmjs.org/deprecation@2.3.1 + dev: true + + registry.npmjs.org/@octokit/plugin-retry@3.0.9: + resolution: {integrity: sha512-r+fArdP5+TG6l1Rv/C9hVoty6tldw6cE2pRHNGmFPdyfrc696R6JjrQ3d7HdVqGwuzfyrcaLAKD7K8TX8aehUQ==, tarball: https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-3.0.9.tgz} + name: '@octokit/plugin-retry' + version: 3.0.9 + dependencies: + '@octokit/types': registry.npmjs.org/@octokit/types@6.41.0 + bottleneck: registry.npmjs.org/bottleneck@2.19.5 + dev: true + + registry.npmjs.org/@octokit/plugin-throttling@3.7.0(@octokit/core@3.6.0): + resolution: {integrity: sha512-qrKT1Yl/KuwGSC6/oHpLBot3ooC9rq0/ryDYBCpkRtoj+R8T47xTMDT6Tk2CxWopFota/8Pi/2SqArqwC0JPow==, tarball: https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-3.7.0.tgz} + id: registry.npmjs.org/@octokit/plugin-throttling/3.7.0 + name: '@octokit/plugin-throttling' + version: 3.7.0 + peerDependencies: + '@octokit/core': ^3.5.0 + dependencies: + '@octokit/core': registry.npmjs.org/@octokit/core@3.6.0 + '@octokit/types': registry.npmjs.org/@octokit/types@6.41.0 + bottleneck: registry.npmjs.org/bottleneck@2.19.5 + dev: true + + registry.npmjs.org/@octokit/request-error@2.1.0: + resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==, tarball: https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz} + name: '@octokit/request-error' + version: 2.1.0 + dependencies: + '@octokit/types': registry.npmjs.org/@octokit/types@6.41.0 + deprecation: registry.npmjs.org/deprecation@2.3.1 + once: registry.npmjs.org/once@1.4.0 + dev: true + + registry.npmjs.org/@octokit/request@5.6.3: + resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==, tarball: https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz} + name: '@octokit/request' + version: 5.6.3 + dependencies: + '@octokit/endpoint': registry.npmjs.org/@octokit/endpoint@6.0.12 + '@octokit/request-error': registry.npmjs.org/@octokit/request-error@2.1.0 + '@octokit/types': registry.npmjs.org/@octokit/types@6.41.0 + is-plain-object: registry.npmjs.org/is-plain-object@5.0.0 + node-fetch: registry.npmjs.org/node-fetch@2.6.7 + universal-user-agent: registry.npmjs.org/universal-user-agent@6.0.1 + transitivePeerDependencies: + - encoding + dev: true + + registry.npmjs.org/@octokit/rest@18.12.0: + resolution: {integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==, tarball: https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz} + name: '@octokit/rest' + version: 18.12.0 + dependencies: + '@octokit/core': registry.npmjs.org/@octokit/core@3.6.0 + '@octokit/plugin-paginate-rest': registry.npmjs.org/@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0) + '@octokit/plugin-request-log': registry.npmjs.org/@octokit/plugin-request-log@1.0.4(@octokit/core@3.6.0) + '@octokit/plugin-rest-endpoint-methods': registry.npmjs.org/@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0) + transitivePeerDependencies: + - encoding + dev: true + + registry.npmjs.org/@octokit/types@6.41.0: + resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==, tarball: https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz} + name: '@octokit/types' + version: 6.41.0 + dependencies: + '@octokit/openapi-types': registry.npmjs.org/@octokit/openapi-types@12.11.0 + dev: true + + registry.npmjs.org/@tsconfig/node10@1.0.9: + resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==, tarball: https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz} + name: '@tsconfig/node10' + version: 1.0.9 + dev: true + + registry.npmjs.org/@tsconfig/node12@1.0.11: + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==, tarball: https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz} + name: '@tsconfig/node12' + version: 1.0.11 + dev: true + + registry.npmjs.org/@tsconfig/node14@1.0.3: + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==, tarball: https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz} + name: '@tsconfig/node14' + version: 1.0.3 + dev: true + + registry.npmjs.org/@tsconfig/node16@1.0.4: + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==, tarball: https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz} + name: '@tsconfig/node16' + version: 1.0.4 + dev: true + + registry.npmjs.org/@types/command-line-args@5.2.3: + resolution: {integrity: sha512-uv0aG6R0Y8WHZLTamZwtfsDLVRnOa+n+n5rEvFWL5Na5gZ8V2Teab/duDPFzIIIhs9qizDpcavCusCLJZu62Kw==, tarball: https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.3.tgz} + name: '@types/command-line-args' + version: 5.2.3 + dev: true + + registry.npmjs.org/@types/command-line-usage@5.0.4: + resolution: {integrity: sha512-BwR5KP3Es/CSht0xqBcUXS3qCAUVXwpRKsV2+arxeb65atasuXG9LykC9Ab10Cw3s2raH92ZqOeILaQbsB2ACg==, tarball: https://registry.npmjs.org/@types/command-line-usage/-/command-line-usage-5.0.4.tgz} + name: '@types/command-line-usage' + version: 5.0.4 + dev: true + + registry.npmjs.org/@types/node@20.9.3: + resolution: {integrity: sha512-nk5wXLAXGBKfrhLB0cyHGbSqopS+nz0BUgZkUQqSHSSgdee0kssp1IAqlQOu333bW+gMNs2QREx7iynm19Abxw==, tarball: https://registry.npmjs.org/@types/node/-/node-20.9.3.tgz} + name: '@types/node' + version: 20.9.3 + dependencies: + undici-types: registry.npmjs.org/undici-types@5.26.5 + dev: true + + registry.npmjs.org/@types/parse-json@4.0.2: + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==, tarball: https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz} + name: '@types/parse-json' + version: 4.0.2 + dev: true + + registry.npmjs.org/acorn-walk@8.3.0: + resolution: {integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==, tarball: https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz} + name: acorn-walk + version: 8.3.0 + engines: {node: '>=0.4.0'} + dev: true + + registry.npmjs.org/acorn@8.11.2: + resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==, tarball: https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz} + name: acorn + version: 8.11.2 + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + registry.npmjs.org/agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==, tarball: https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz} + name: agent-base + version: 6.0.2 + engines: {node: '>= 6.0.0'} + dependencies: + debug: registry.npmjs.org/debug@4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmjs.org/ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==, tarball: https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz} + name: ansi-colors + version: 4.1.3 + engines: {node: '>=6'} + dev: true + + registry.npmjs.org/ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==, tarball: https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz} + name: ansi-escapes + version: 4.3.2 + engines: {node: '>=8'} + dependencies: + type-fest: registry.npmjs.org/type-fest@0.21.3 + dev: true + + registry.npmjs.org/ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, tarball: https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz} + name: ansi-regex + version: 5.0.1 + engines: {node: '>=8'} + dev: true + + registry.npmjs.org/ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, tarball: https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz} + name: ansi-styles + version: 3.2.1 + engines: {node: '>=4'} + dependencies: + color-convert: registry.npmjs.org/color-convert@1.9.3 + dev: true + + registry.npmjs.org/ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, tarball: https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz} + name: ansi-styles + version: 4.3.0 + engines: {node: '>=8'} + dependencies: + color-convert: registry.npmjs.org/color-convert@2.0.1 + dev: true + + registry.npmjs.org/arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==, tarball: https://registry.npmjs.org/arg/-/arg-4.1.3.tgz} + name: arg + version: 4.1.3 + dev: true + + registry.npmjs.org/array-back@3.1.0: + resolution: {integrity: sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==, tarball: https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz} + name: array-back + version: 3.1.0 + engines: {node: '>=6'} + dev: true + + registry.npmjs.org/array-back@4.0.2: + resolution: {integrity: sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==, tarball: https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz} + name: array-back + version: 4.0.2 + engines: {node: '>=8'} + dev: true + + registry.npmjs.org/array-union@1.0.2: + resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==, tarball: https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz} + name: array-union + version: 1.0.2 + engines: {node: '>=0.10.0'} + dependencies: + array-uniq: registry.npmjs.org/array-uniq@1.0.3 + dev: true + + registry.npmjs.org/array-uniq@1.0.3: + resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==, tarball: https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz} + name: array-uniq + version: 1.0.3 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmjs.org/author-regex@1.0.0: + resolution: {integrity: sha512-KbWgR8wOYRAPekEmMXrYYdc7BRyhn2Ftk7KWfMUnQ43hFdojWEFRxhhRUm3/OFEdPa1r0KAvTTg9YQK57xTe0g==, tarball: https://registry.npmjs.org/author-regex/-/author-regex-1.0.0.tgz} + name: author-regex + version: 1.0.0 + engines: {node: '>=0.8'} + dev: true + + registry.npmjs.org/auto@10.46.0(@types/node@20.9.3)(typescript@5.3.2): + resolution: {integrity: sha512-LUsn5SWyM6Qdz2i1h4YyDpBYlOUQ0Z+ZcQhDTu8DLLoUuUP4cGf79MCdpRpM1LQVbkqZ2WWi8s/QM4it/FmRjw==, tarball: https://registry.npmjs.org/auto/-/auto-10.46.0.tgz} + id: registry.npmjs.org/auto/10.46.0 + name: auto + version: 10.46.0 + engines: {node: '>=10.x'} + hasBin: true + dependencies: + '@auto-it/core': registry.npmjs.org/@auto-it/core@10.46.0(@types/node@20.9.3)(typescript@5.3.2) + '@auto-it/npm': registry.npmjs.org/@auto-it/npm@10.46.0(@types/node@20.9.3)(typescript@5.3.2) + '@auto-it/released': registry.npmjs.org/@auto-it/released@10.46.0(@types/node@20.9.3)(typescript@5.3.2) + '@auto-it/version-file': registry.npmjs.org/@auto-it/version-file@10.46.0(@types/node@20.9.3)(typescript@5.3.2) + await-to-js: registry.npmjs.org/await-to-js@3.0.0 + chalk: registry.npmjs.org/chalk@4.1.2 + command-line-application: registry.npmjs.org/command-line-application@0.10.1 + endent: registry.npmjs.org/endent@2.1.0 + module-alias: registry.npmjs.org/module-alias@2.2.3 + signale: registry.npmjs.org/signale@1.4.0 + terminal-link: registry.npmjs.org/terminal-link@2.1.1 + tslib: registry.npmjs.org/tslib@2.1.0 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - encoding + - supports-color + - typescript + dev: true + + registry.npmjs.org/await-to-js@3.0.0: + resolution: {integrity: sha512-zJAaP9zxTcvTHRlejau3ZOY4V7SRpiByf3/dxx2uyKxxor19tpmpV2QRsTKikckwhaPmr2dVpxxMr7jOCYVp5g==, tarball: https://registry.npmjs.org/await-to-js/-/await-to-js-3.0.0.tgz} + name: await-to-js + version: 3.0.0 + engines: {node: '>=6.0.0'} + dev: true + + registry.npmjs.org/balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, tarball: https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz} + name: balanced-match + version: 1.0.2 + dev: true + + registry.npmjs.org/before-after-hook@2.2.3: + resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==, tarball: https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz} + name: before-after-hook + version: 2.2.3 + dev: true + + registry.npmjs.org/bottleneck@2.19.5: + resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==, tarball: https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz} + name: bottleneck + version: 2.19.5 + dev: true + + registry.npmjs.org/brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, tarball: https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz} + name: brace-expansion + version: 1.1.11 + dependencies: + balanced-match: registry.npmjs.org/balanced-match@1.0.2 + concat-map: registry.npmjs.org/concat-map@0.0.1 + dev: true + + registry.npmjs.org/braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, tarball: https://registry.npmjs.org/braces/-/braces-3.0.2.tgz} + name: braces + version: 3.0.2 + engines: {node: '>=8'} + dependencies: + fill-range: registry.npmjs.org/fill-range@7.0.1 + dev: true + + registry.npmjs.org/buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, tarball: https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz} + name: buffer-from + version: 1.1.2 + dev: true + + registry.npmjs.org/callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, tarball: https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz} + name: callsites + version: 3.1.0 + engines: {node: '>=6'} + dev: true + + registry.npmjs.org/chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, tarball: https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz} + name: chalk + version: 2.4.2 + engines: {node: '>=4'} + dependencies: + ansi-styles: registry.npmjs.org/ansi-styles@3.2.1 + escape-string-regexp: registry.npmjs.org/escape-string-regexp@1.0.5 + supports-color: registry.npmjs.org/supports-color@5.5.0 + dev: true + + registry.npmjs.org/chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, tarball: https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz} + name: chalk + version: 4.1.2 + engines: {node: '>=10'} + dependencies: + ansi-styles: registry.npmjs.org/ansi-styles@4.3.0 + supports-color: registry.npmjs.org/supports-color@7.2.0 + dev: true + + registry.npmjs.org/color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, tarball: https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz} + name: color-convert + version: 1.9.3 + dependencies: + color-name: registry.npmjs.org/color-name@1.1.3 + dev: true + + registry.npmjs.org/color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, tarball: https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz} + name: color-convert + version: 2.0.1 + engines: {node: '>=7.0.0'} + dependencies: + color-name: registry.npmjs.org/color-name@1.1.4 + dev: true + + registry.npmjs.org/color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, tarball: https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz} + name: color-name + version: 1.1.3 + dev: true + + registry.npmjs.org/color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, tarball: https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz} + name: color-name + version: 1.1.4 + dev: true + + registry.npmjs.org/command-line-application@0.10.1: + resolution: {integrity: sha512-PWZ4nRkz09MbBRocqEe/Fil3RjTaMNqw0didl1n/i3flDcw/vecVfvsw3r+ZHhGs4BOuW7sk3cEYSdfM3Wv5/Q==, tarball: https://registry.npmjs.org/command-line-application/-/command-line-application-0.10.1.tgz} + name: command-line-application + version: 0.10.1 + dependencies: + '@types/command-line-args': registry.npmjs.org/@types/command-line-args@5.2.3 + '@types/command-line-usage': registry.npmjs.org/@types/command-line-usage@5.0.4 + chalk: registry.npmjs.org/chalk@2.4.2 + command-line-args: registry.npmjs.org/command-line-args@5.2.1 + command-line-usage: registry.npmjs.org/command-line-usage@6.1.3 + meant: registry.npmjs.org/meant@1.0.3 + remove-markdown: registry.npmjs.org/remove-markdown@0.3.0 + tslib: registry.npmjs.org/tslib@1.10.0 + dev: true + + registry.npmjs.org/command-line-args@5.2.1: + resolution: {integrity: sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==, tarball: https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz} + name: command-line-args + version: 5.2.1 + engines: {node: '>=4.0.0'} + dependencies: + array-back: registry.npmjs.org/array-back@3.1.0 + find-replace: registry.npmjs.org/find-replace@3.0.0 + lodash.camelcase: registry.npmjs.org/lodash.camelcase@4.3.0 + typical: registry.npmjs.org/typical@4.0.0 + dev: true + + registry.npmjs.org/command-line-usage@6.1.3: + resolution: {integrity: sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==, tarball: https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz} + name: command-line-usage + version: 6.1.3 + engines: {node: '>=8.0.0'} + dependencies: + array-back: registry.npmjs.org/array-back@4.0.2 + chalk: registry.npmjs.org/chalk@2.4.2 + table-layout: registry.npmjs.org/table-layout@1.0.2 + typical: registry.npmjs.org/typical@5.2.0 + dev: true + + registry.npmjs.org/concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, tarball: https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz} + name: concat-map + version: 0.0.1 + dev: true + + registry.npmjs.org/cosmiconfig@7.0.0: + resolution: {integrity: sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==, tarball: https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz} + name: cosmiconfig + version: 7.0.0 + engines: {node: '>=10'} + dependencies: + '@types/parse-json': registry.npmjs.org/@types/parse-json@4.0.2 + import-fresh: registry.npmjs.org/import-fresh@3.3.0 + parse-json: registry.npmjs.org/parse-json@5.2.0 + path-type: registry.npmjs.org/path-type@4.0.0 + yaml: registry.npmjs.org/yaml@1.10.2 + dev: true + + registry.npmjs.org/create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==, tarball: https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz} + name: create-require + version: 1.1.1 + dev: true + + registry.npmjs.org/cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, tarball: https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz} + name: cross-spawn + version: 7.0.3 + engines: {node: '>= 8'} + dependencies: + path-key: registry.npmjs.org/path-key@3.1.1 + shebang-command: registry.npmjs.org/shebang-command@2.0.0 + which: registry.npmjs.org/which@2.0.2 + dev: true + + registry.npmjs.org/debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, tarball: https://registry.npmjs.org/debug/-/debug-4.3.4.tgz} + name: debug + version: 4.3.4 + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: registry.npmjs.org/ms@2.1.2 + dev: true + + registry.npmjs.org/dedent@0.7.0: + resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==, tarball: https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz} + name: dedent + version: 0.7.0 + dev: true + + registry.npmjs.org/deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==, tarball: https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz} + name: deep-extend + version: 0.6.0 + engines: {node: '>=4.0.0'} + dev: true + + registry.npmjs.org/deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==, tarball: https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz} + name: deepmerge + version: 4.3.1 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmjs.org/deprecation@2.3.1: + resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==, tarball: https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz} + name: deprecation + version: 2.3.1 + dev: true + + registry.npmjs.org/diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==, tarball: https://registry.npmjs.org/diff/-/diff-4.0.2.tgz} + name: diff + version: 4.0.2 + engines: {node: '>=0.3.1'} + dev: true + + registry.npmjs.org/dir-glob@2.2.2: + resolution: {integrity: sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==, tarball: https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz} + name: dir-glob + version: 2.2.2 + engines: {node: '>=4'} + dependencies: + path-type: registry.npmjs.org/path-type@3.0.0 + dev: true + + registry.npmjs.org/dotenv@8.6.0: + resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==, tarball: https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz} + name: dotenv + version: 8.6.0 + engines: {node: '>=10'} + dev: true + + registry.npmjs.org/endent@2.1.0: + resolution: {integrity: sha512-r8VyPX7XL8U01Xgnb1CjZ3XV+z90cXIJ9JPE/R9SEC9vpw2P6CfsRPJmp20DppC5N7ZAMCmjYkJIa744Iyg96w==, tarball: https://registry.npmjs.org/endent/-/endent-2.1.0.tgz} + name: endent + version: 2.1.0 + dependencies: + dedent: registry.npmjs.org/dedent@0.7.0 + fast-json-parse: registry.npmjs.org/fast-json-parse@1.0.3 + objectorarray: registry.npmjs.org/objectorarray@1.0.5 + dev: true + + registry.npmjs.org/enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==, tarball: https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz} + name: enquirer + version: 2.4.1 + engines: {node: '>=8.6'} + dependencies: + ansi-colors: registry.npmjs.org/ansi-colors@4.1.3 + strip-ansi: registry.npmjs.org/strip-ansi@6.0.1 + dev: true + + registry.npmjs.org/env-ci@5.5.0: + resolution: {integrity: sha512-o0JdWIbOLP+WJKIUt36hz1ImQQFuN92nhsfTkHHap+J8CiI8WgGpH/a9jEGHh4/TU5BUUGjlnKXNoDb57+ne+A==, tarball: https://registry.npmjs.org/env-ci/-/env-ci-5.5.0.tgz} + name: env-ci + version: 5.5.0 + engines: {node: '>=10.17'} + dependencies: + execa: registry.npmjs.org/execa@5.1.1 + fromentries: registry.npmjs.org/fromentries@1.3.2 + java-properties: registry.npmjs.org/java-properties@1.0.2 + dev: true + + registry.npmjs.org/error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, tarball: https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz} + name: error-ex + version: 1.3.2 + dependencies: + is-arrayish: registry.npmjs.org/is-arrayish@0.2.1 + dev: true + + registry.npmjs.org/escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, tarball: https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz} + name: escape-string-regexp + version: 1.0.5 + engines: {node: '>=0.8.0'} + dev: true + + registry.npmjs.org/execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==, tarball: https://registry.npmjs.org/execa/-/execa-5.1.1.tgz} + name: execa + version: 5.1.1 + engines: {node: '>=10'} + dependencies: + cross-spawn: registry.npmjs.org/cross-spawn@7.0.3 + get-stream: registry.npmjs.org/get-stream@6.0.1 + human-signals: registry.npmjs.org/human-signals@2.1.0 + is-stream: registry.npmjs.org/is-stream@2.0.1 + merge-stream: registry.npmjs.org/merge-stream@2.0.0 + npm-run-path: registry.npmjs.org/npm-run-path@4.0.1 + onetime: registry.npmjs.org/onetime@5.1.2 + signal-exit: registry.npmjs.org/signal-exit@3.0.7 + strip-final-newline: registry.npmjs.org/strip-final-newline@2.0.0 + dev: true + + registry.npmjs.org/fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==, tarball: https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz} + name: fast-glob + version: 3.3.2 + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': registry.npmjs.org/@nodelib/fs.stat@2.0.5 + '@nodelib/fs.walk': registry.npmjs.org/@nodelib/fs.walk@1.2.8 + glob-parent: registry.npmjs.org/glob-parent@5.1.2 + merge2: registry.npmjs.org/merge2@1.4.1 + micromatch: registry.npmjs.org/micromatch@4.0.5 + dev: true + + registry.npmjs.org/fast-json-parse@1.0.3: + resolution: {integrity: sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw==, tarball: https://registry.npmjs.org/fast-json-parse/-/fast-json-parse-1.0.3.tgz} + name: fast-json-parse + version: 1.0.3 + dev: true + + registry.npmjs.org/fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==, tarball: https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz} + name: fastq + version: 1.15.0 + dependencies: + reusify: registry.npmjs.org/reusify@1.0.4 + dev: true + + registry.npmjs.org/figures@2.0.0: + resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==, tarball: https://registry.npmjs.org/figures/-/figures-2.0.0.tgz} + name: figures + version: 2.0.0 + engines: {node: '>=4'} + dependencies: + escape-string-regexp: registry.npmjs.org/escape-string-regexp@1.0.5 + dev: true + + registry.npmjs.org/fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, tarball: https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz} + name: fill-range + version: 7.0.1 + engines: {node: '>=8'} + dependencies: + to-regex-range: registry.npmjs.org/to-regex-range@5.0.1 + dev: true + + registry.npmjs.org/find-replace@3.0.0: + resolution: {integrity: sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==, tarball: https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz} + name: find-replace + version: 3.0.0 + engines: {node: '>=4.0.0'} + dependencies: + array-back: registry.npmjs.org/array-back@3.1.0 + dev: true + + registry.npmjs.org/find-up@2.1.0: + resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==, tarball: https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz} + name: find-up + version: 2.1.0 + engines: {node: '>=4'} + dependencies: + locate-path: registry.npmjs.org/locate-path@2.0.0 + dev: true + + registry.npmjs.org/fp-ts@2.16.1: + resolution: {integrity: sha512-by7U5W8dkIzcvDofUcO42yl9JbnHTEDBrzu3pt5fKT+Z4Oy85I21K80EYJYdjQGC2qum4Vo55Ag57iiIK4FYuA==, tarball: https://registry.npmjs.org/fp-ts/-/fp-ts-2.16.1.tgz} + name: fp-ts + version: 2.16.1 + dev: true + + registry.npmjs.org/fromentries@1.3.2: + resolution: {integrity: sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==, tarball: https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz} + name: fromentries + version: 1.3.2 + dev: true + + registry.npmjs.org/fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, tarball: https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz} + name: fs.realpath + version: 1.0.0 + dev: true + + registry.npmjs.org/get-monorepo-packages@1.2.0: + resolution: {integrity: sha512-aDP6tH+eM3EuVSp3YyCutOcFS4Y9AhRRH9FAd+cjtR/g63Hx+DCXdKoP1ViRPUJz5wm+BOEXB4FhoffGHxJ7jQ==, tarball: https://registry.npmjs.org/get-monorepo-packages/-/get-monorepo-packages-1.2.0.tgz} + name: get-monorepo-packages + version: 1.2.0 + dependencies: + globby: registry.npmjs.org/globby@7.1.1 + load-json-file: registry.npmjs.org/load-json-file@4.0.0 + dev: true + + registry.npmjs.org/get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==, tarball: https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz} + name: get-stream + version: 6.0.1 + engines: {node: '>=10'} + dev: true + + registry.npmjs.org/gitlog@4.0.8: + resolution: {integrity: sha512-FcTLP7Rc0H1vWXD+J/aj5JS1uiCEBblcYXlcacRAT73N26OMYFFzrBXYmDozmWlV2K7zwK5PrH16/nuRNhqSlQ==, tarball: https://registry.npmjs.org/gitlog/-/gitlog-4.0.8.tgz} + name: gitlog + version: 4.0.8 + engines: {node: '>= 10.x'} + dependencies: + debug: registry.npmjs.org/debug@4.3.4 + tslib: registry.npmjs.org/tslib@2.6.2 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmjs.org/glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, tarball: https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz} + name: glob-parent + version: 5.1.2 + engines: {node: '>= 6'} + dependencies: + is-glob: registry.npmjs.org/is-glob@4.0.3 + dev: true + + registry.npmjs.org/glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, tarball: https://registry.npmjs.org/glob/-/glob-7.2.3.tgz} + name: glob + version: 7.2.3 + dependencies: + fs.realpath: registry.npmjs.org/fs.realpath@1.0.0 + inflight: registry.npmjs.org/inflight@1.0.6 + inherits: registry.npmjs.org/inherits@2.0.4 + minimatch: registry.npmjs.org/minimatch@3.1.2 + once: registry.npmjs.org/once@1.4.0 + path-is-absolute: registry.npmjs.org/path-is-absolute@1.0.1 + dev: true + + registry.npmjs.org/globby@7.1.1: + resolution: {integrity: sha512-yANWAN2DUcBtuus5Cpd+SKROzXHs2iVXFZt/Ykrfz6SAXqacLX25NZpltE+39ceMexYF4TtEadjuSTw8+3wX4g==, tarball: https://registry.npmjs.org/globby/-/globby-7.1.1.tgz} + name: globby + version: 7.1.1 + engines: {node: '>=4'} + dependencies: + array-union: registry.npmjs.org/array-union@1.0.2 + dir-glob: registry.npmjs.org/dir-glob@2.2.2 + glob: registry.npmjs.org/glob@7.2.3 + ignore: registry.npmjs.org/ignore@3.3.10 + pify: registry.npmjs.org/pify@3.0.0 + slash: registry.npmjs.org/slash@1.0.0 + dev: true + + registry.npmjs.org/graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, tarball: https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz} + name: graceful-fs + version: 4.2.11 + dev: true + + registry.npmjs.org/has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, tarball: https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz} + name: has-flag + version: 3.0.0 + engines: {node: '>=4'} + dev: true + + registry.npmjs.org/has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, tarball: https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz} + name: has-flag + version: 4.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmjs.org/https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==, tarball: https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz} + name: https-proxy-agent + version: 5.0.1 + engines: {node: '>= 6'} + dependencies: + agent-base: registry.npmjs.org/agent-base@6.0.2 + debug: registry.npmjs.org/debug@4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmjs.org/human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==, tarball: https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz} + name: human-signals + version: 2.1.0 + engines: {node: '>=10.17.0'} + dev: true + + registry.npmjs.org/ignore@3.3.10: + resolution: {integrity: sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==, tarball: https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz} + name: ignore + version: 3.3.10 + dev: true + + registry.npmjs.org/import-cwd@3.0.0: + resolution: {integrity: sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==, tarball: https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz} + name: import-cwd + version: 3.0.0 + engines: {node: '>=8'} + dependencies: + import-from: registry.npmjs.org/import-from@3.0.0 + dev: true + + registry.npmjs.org/import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, tarball: https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz} + name: import-fresh + version: 3.3.0 + engines: {node: '>=6'} + dependencies: + parent-module: registry.npmjs.org/parent-module@1.0.1 + resolve-from: registry.npmjs.org/resolve-from@4.0.0 + dev: true + + registry.npmjs.org/import-from@3.0.0: + resolution: {integrity: sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==, tarball: https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz} + name: import-from + version: 3.0.0 + engines: {node: '>=8'} + dependencies: + resolve-from: registry.npmjs.org/resolve-from@5.0.0 + dev: true + + registry.npmjs.org/inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, tarball: https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz} + name: inflight + version: 1.0.6 + dependencies: + once: registry.npmjs.org/once@1.4.0 + wrappy: registry.npmjs.org/wrappy@1.0.2 + dev: true + + registry.npmjs.org/inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, tarball: https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz} + name: inherits + version: 2.0.4 + dev: true + + registry.npmjs.org/ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==, tarball: https://registry.npmjs.org/ini/-/ini-1.3.8.tgz} + name: ini + version: 1.3.8 + dev: true + + registry.npmjs.org/io-ts@2.2.20(fp-ts@2.16.1): + resolution: {integrity: sha512-Rq2BsYmtwS5vVttie4rqrOCIfHCS9TgpRLFpKQCM1wZBBRY9nWVGmEvm2FnDbSE2un1UE39DvFpTR5UL47YDcA==, tarball: https://registry.npmjs.org/io-ts/-/io-ts-2.2.20.tgz} + id: registry.npmjs.org/io-ts/2.2.20 + name: io-ts + version: 2.2.20 + peerDependencies: + fp-ts: ^2.5.0 + dependencies: + fp-ts: registry.npmjs.org/fp-ts@2.16.1 + dev: true + + registry.npmjs.org/is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, tarball: https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz} + name: is-arrayish + version: 0.2.1 + dev: true + + registry.npmjs.org/is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, tarball: https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz} + name: is-extglob + version: 2.1.1 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmjs.org/is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, tarball: https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz} + name: is-glob + version: 4.0.3 + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: registry.npmjs.org/is-extglob@2.1.1 + dev: true + + registry.npmjs.org/is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, tarball: https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz} + name: is-number + version: 7.0.0 + engines: {node: '>=0.12.0'} + dev: true + + registry.npmjs.org/is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==, tarball: https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz} + name: is-plain-object + version: 5.0.0 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmjs.org/is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, tarball: https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz} + name: is-stream + version: 2.0.1 + engines: {node: '>=8'} + dev: true + + registry.npmjs.org/is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==, tarball: https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz} + name: is-unicode-supported + version: 0.1.0 + engines: {node: '>=10'} + dev: true + + registry.npmjs.org/isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, tarball: https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz} + name: isexe + version: 2.0.0 + dev: true + + registry.npmjs.org/java-properties@1.0.2: + resolution: {integrity: sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==, tarball: https://registry.npmjs.org/java-properties/-/java-properties-1.0.2.tgz} + name: java-properties + version: 1.0.2 + engines: {node: '>= 0.6.0'} + dev: true + + registry.npmjs.org/js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, tarball: https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz} + name: js-tokens + version: 4.0.0 + dev: true + + registry.npmjs.org/json-parse-better-errors@1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==, tarball: https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz} + name: json-parse-better-errors + version: 1.0.2 + dev: true + + registry.npmjs.org/json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, tarball: https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz} + name: json-parse-even-better-errors + version: 2.3.1 + dev: true + + registry.npmjs.org/lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, tarball: https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz} + name: lines-and-columns + version: 1.2.4 + dev: true + + registry.npmjs.org/load-json-file@4.0.0: + resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==, tarball: https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz} + name: load-json-file + version: 4.0.0 + engines: {node: '>=4'} + dependencies: + graceful-fs: registry.npmjs.org/graceful-fs@4.2.11 + parse-json: registry.npmjs.org/parse-json@4.0.0 + pify: registry.npmjs.org/pify@3.0.0 + strip-bom: registry.npmjs.org/strip-bom@3.0.0 + dev: true + + registry.npmjs.org/locate-path@2.0.0: + resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==, tarball: https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz} + name: locate-path + version: 2.0.0 + engines: {node: '>=4'} + dependencies: + p-locate: registry.npmjs.org/p-locate@2.0.0 + path-exists: registry.npmjs.org/path-exists@3.0.0 + dev: true + + registry.npmjs.org/lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==, tarball: https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz} + name: lodash.camelcase + version: 4.3.0 + dev: true + + registry.npmjs.org/lodash.chunk@4.2.0: + resolution: {integrity: sha512-ZzydJKfUHJwHa+hF5X66zLFCBrWn5GeF28OHEr4WVWtNDXlQ/IjWKPBiikqKo2ne0+v6JgCgJ0GzJp8k8bHC7w==, tarball: https://registry.npmjs.org/lodash.chunk/-/lodash.chunk-4.2.0.tgz} + name: lodash.chunk + version: 4.2.0 + dev: true + + registry.npmjs.org/lodash.get@4.4.2: + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==, tarball: https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz} + name: lodash.get + version: 4.4.2 + dev: true + + registry.npmjs.org/log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==, tarball: https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz} + name: log-symbols + version: 4.1.0 + engines: {node: '>=10'} + dependencies: + chalk: registry.npmjs.org/chalk@4.1.2 + is-unicode-supported: registry.npmjs.org/is-unicode-supported@0.1.0 + dev: true + + registry.npmjs.org/lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, tarball: https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz} + name: lru-cache + version: 6.0.0 + engines: {node: '>=10'} + dependencies: + yallist: registry.npmjs.org/yallist@4.0.0 + dev: true + + registry.npmjs.org/make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==, tarball: https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz} + name: make-error + version: 1.3.6 + dev: true + + registry.npmjs.org/meant@1.0.3: + resolution: {integrity: sha512-88ZRGcNxAq4EH38cQ4D85PM57pikCwS8Z99EWHODxN7KBY+UuPiqzRTtZzS8KTXO/ywSWbdjjJST2Hly/EQxLw==, tarball: https://registry.npmjs.org/meant/-/meant-1.0.3.tgz} + name: meant + version: 1.0.3 + dev: true + + registry.npmjs.org/merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, tarball: https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz} + name: merge-stream + version: 2.0.0 + dev: true + + registry.npmjs.org/merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, tarball: https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz} + name: merge2 + version: 1.4.1 + engines: {node: '>= 8'} + dev: true + + registry.npmjs.org/micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, tarball: https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz} + name: micromatch + version: 4.0.5 + engines: {node: '>=8.6'} + dependencies: + braces: registry.npmjs.org/braces@3.0.2 + picomatch: registry.npmjs.org/picomatch@2.3.1 + dev: true + + registry.npmjs.org/mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, tarball: https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz} + name: mimic-fn + version: 2.1.0 + engines: {node: '>=6'} + dev: true + + registry.npmjs.org/minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, tarball: https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz} + name: minimatch + version: 3.1.2 + dependencies: + brace-expansion: registry.npmjs.org/brace-expansion@1.1.11 + dev: true + + registry.npmjs.org/minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, tarball: https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz} + name: minimist + version: 1.2.8 + dev: true + + registry.npmjs.org/module-alias@2.2.3: + resolution: {integrity: sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q==, tarball: https://registry.npmjs.org/module-alias/-/module-alias-2.2.3.tgz} + name: module-alias + version: 2.2.3 + dev: true + + registry.npmjs.org/ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, tarball: https://registry.npmjs.org/ms/-/ms-2.1.2.tgz} + name: ms + version: 2.1.2 + dev: true + + registry.npmjs.org/nested-error-stacks@2.0.1: + resolution: {integrity: sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==, tarball: https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz} + name: nested-error-stacks + version: 2.0.1 + dev: true + + registry.npmjs.org/node-fetch@2.6.7: + resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==, tarball: https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz} + name: node-fetch + version: 2.6.7 + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: registry.npmjs.org/whatwg-url@5.0.0 + dev: true + + registry.npmjs.org/npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==, tarball: https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz} + name: npm-run-path + version: 4.0.1 + engines: {node: '>=8'} + dependencies: + path-key: registry.npmjs.org/path-key@3.1.1 + dev: true + + registry.npmjs.org/objectorarray@1.0.5: + resolution: {integrity: sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg==, tarball: https://registry.npmjs.org/objectorarray/-/objectorarray-1.0.5.tgz} + name: objectorarray + version: 1.0.5 + dev: true + + registry.npmjs.org/once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, tarball: https://registry.npmjs.org/once/-/once-1.4.0.tgz} + name: once + version: 1.4.0 + dependencies: + wrappy: registry.npmjs.org/wrappy@1.0.2 + dev: true + + registry.npmjs.org/onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, tarball: https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz} + name: onetime + version: 5.1.2 + engines: {node: '>=6'} + dependencies: + mimic-fn: registry.npmjs.org/mimic-fn@2.1.0 + dev: true + + registry.npmjs.org/os-homedir@1.0.2: + resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==, tarball: https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz} + name: os-homedir + version: 1.0.2 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmjs.org/p-limit@1.3.0: + resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==, tarball: https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz} + name: p-limit + version: 1.3.0 + engines: {node: '>=4'} + dependencies: + p-try: registry.npmjs.org/p-try@1.0.0 + dev: true + + registry.npmjs.org/p-locate@2.0.0: + resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==, tarball: https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz} + name: p-locate + version: 2.0.0 + engines: {node: '>=4'} + dependencies: + p-limit: registry.npmjs.org/p-limit@1.3.0 + dev: true + + registry.npmjs.org/p-try@1.0.0: + resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==, tarball: https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz} + name: p-try + version: 1.0.0 + engines: {node: '>=4'} + dev: true + + registry.npmjs.org/parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, tarball: https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz} + name: parent-module + version: 1.0.1 + engines: {node: '>=6'} + dependencies: + callsites: registry.npmjs.org/callsites@3.1.0 + dev: true + + registry.npmjs.org/parse-author@2.0.0: + resolution: {integrity: sha512-yx5DfvkN8JsHL2xk2Os9oTia467qnvRgey4ahSm2X8epehBLx/gWLcy5KI+Y36ful5DzGbCS6RazqZGgy1gHNw==, tarball: https://registry.npmjs.org/parse-author/-/parse-author-2.0.0.tgz} + name: parse-author + version: 2.0.0 + engines: {node: '>=0.10.0'} + dependencies: + author-regex: registry.npmjs.org/author-regex@1.0.0 + dev: true + + registry.npmjs.org/parse-github-url@1.0.2: + resolution: {integrity: sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==, tarball: https://registry.npmjs.org/parse-github-url/-/parse-github-url-1.0.2.tgz} + name: parse-github-url + version: 1.0.2 + engines: {node: '>=0.10.0'} + hasBin: true + dev: true + + registry.npmjs.org/parse-json@4.0.0: + resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==, tarball: https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz} + name: parse-json + version: 4.0.0 + engines: {node: '>=4'} + dependencies: + error-ex: registry.npmjs.org/error-ex@1.3.2 + json-parse-better-errors: registry.npmjs.org/json-parse-better-errors@1.0.2 + dev: true + + registry.npmjs.org/parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, tarball: https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz} + name: parse-json + version: 5.2.0 + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': registry.npmjs.org/@babel/code-frame@7.23.4 + error-ex: registry.npmjs.org/error-ex@1.3.2 + json-parse-even-better-errors: registry.npmjs.org/json-parse-even-better-errors@2.3.1 + lines-and-columns: registry.npmjs.org/lines-and-columns@1.2.4 + dev: true + + registry.npmjs.org/parse-ms@2.1.0: + resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==, tarball: https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz} + name: parse-ms + version: 2.1.0 + engines: {node: '>=6'} + dev: true + + registry.npmjs.org/path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==, tarball: https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz} + name: path-exists + version: 3.0.0 + engines: {node: '>=4'} + dev: true + + registry.npmjs.org/path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, tarball: https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz} + name: path-is-absolute + version: 1.0.1 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmjs.org/path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, tarball: https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz} + name: path-key + version: 3.1.1 + engines: {node: '>=8'} + dev: true + + registry.npmjs.org/path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, tarball: https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz} + name: path-parse + version: 1.0.7 + dev: true + + registry.npmjs.org/path-type@3.0.0: + resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==, tarball: https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz} + name: path-type + version: 3.0.0 + engines: {node: '>=4'} + dependencies: + pify: registry.npmjs.org/pify@3.0.0 + dev: true + + registry.npmjs.org/path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, tarball: https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz} + name: path-type + version: 4.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmjs.org/picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, tarball: https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz} + name: picomatch + version: 2.3.1 + engines: {node: '>=8.6'} + dev: true + + registry.npmjs.org/pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==, tarball: https://registry.npmjs.org/pify/-/pify-3.0.0.tgz} + name: pify + version: 3.0.0 + engines: {node: '>=4'} + dev: true + + registry.npmjs.org/pkg-conf@2.1.0: + resolution: {integrity: sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==, tarball: https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz} + name: pkg-conf + version: 2.1.0 + engines: {node: '>=4'} + dependencies: + find-up: registry.npmjs.org/find-up@2.1.0 + load-json-file: registry.npmjs.org/load-json-file@4.0.0 + dev: true + + registry.npmjs.org/pretty-ms@7.0.1: + resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==, tarball: https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz} + name: pretty-ms + version: 7.0.1 + engines: {node: '>=10'} + dependencies: + parse-ms: registry.npmjs.org/parse-ms@2.1.0 + dev: true + + registry.npmjs.org/queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, tarball: https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz} + name: queue-microtask + version: 1.2.3 + dev: true + + registry.npmjs.org/rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==, tarball: https://registry.npmjs.org/rc/-/rc-1.2.8.tgz} + name: rc + version: 1.2.8 + hasBin: true + dependencies: + deep-extend: registry.npmjs.org/deep-extend@0.6.0 + ini: registry.npmjs.org/ini@1.3.8 + minimist: registry.npmjs.org/minimist@1.2.8 + strip-json-comments: registry.npmjs.org/strip-json-comments@2.0.1 + dev: true + + registry.npmjs.org/reduce-flatten@2.0.0: + resolution: {integrity: sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==, tarball: https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz} + name: reduce-flatten + version: 2.0.0 + engines: {node: '>=6'} + dev: true + + registry.npmjs.org/registry-url@5.1.0: + resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==, tarball: https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz} + name: registry-url + version: 5.1.0 + engines: {node: '>=8'} + dependencies: + rc: registry.npmjs.org/rc@1.2.8 + dev: true + + registry.npmjs.org/remove-markdown@0.3.0: + resolution: {integrity: sha512-5392eIuy1mhjM74739VunOlsOYKjsH82rQcTBlJ1bkICVC3dQ3ksQzTHh4jGHQFnM+1xzLzcFOMH+BofqXhroQ==, tarball: https://registry.npmjs.org/remove-markdown/-/remove-markdown-0.3.0.tgz} + name: remove-markdown + version: 0.3.0 + dev: true + + registry.npmjs.org/requireg@0.2.2: + resolution: {integrity: sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==, tarball: https://registry.npmjs.org/requireg/-/requireg-0.2.2.tgz} + name: requireg + version: 0.2.2 + engines: {node: '>= 4.0.0'} + dependencies: + nested-error-stacks: registry.npmjs.org/nested-error-stacks@2.0.1 + rc: registry.npmjs.org/rc@1.2.8 + resolve: registry.npmjs.org/resolve@1.7.1 + dev: true + + registry.npmjs.org/resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, tarball: https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz} + name: resolve-from + version: 4.0.0 + engines: {node: '>=4'} + dev: true + + registry.npmjs.org/resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==, tarball: https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz} + name: resolve-from + version: 5.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmjs.org/resolve@1.7.1: + resolution: {integrity: sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==, tarball: https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz} + name: resolve + version: 1.7.1 + dependencies: + path-parse: registry.npmjs.org/path-parse@1.0.7 + dev: true + + registry.npmjs.org/reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, tarball: https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz} + name: reusify + version: 1.0.4 + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + registry.npmjs.org/run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, tarball: https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz} + name: run-parallel + version: 1.2.0 + dependencies: + queue-microtask: registry.npmjs.org/queue-microtask@1.2.3 + dev: true + + registry.npmjs.org/semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==, tarball: https://registry.npmjs.org/semver/-/semver-7.5.4.tgz} + name: semver + version: 7.5.4 + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: registry.npmjs.org/lru-cache@6.0.0 + dev: true + + registry.npmjs.org/shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, tarball: https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz} + name: shebang-command + version: 2.0.0 + engines: {node: '>=8'} + dependencies: + shebang-regex: registry.npmjs.org/shebang-regex@3.0.0 + dev: true + + registry.npmjs.org/shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, tarball: https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz} + name: shebang-regex + version: 3.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmjs.org/signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, tarball: https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz} + name: signal-exit + version: 3.0.7 + dev: true + + registry.npmjs.org/signale@1.4.0: + resolution: {integrity: sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==, tarball: https://registry.npmjs.org/signale/-/signale-1.4.0.tgz} + name: signale + version: 1.4.0 + engines: {node: '>=6'} + dependencies: + chalk: registry.npmjs.org/chalk@2.4.2 + figures: registry.npmjs.org/figures@2.0.0 + pkg-conf: registry.npmjs.org/pkg-conf@2.1.0 + dev: true + + registry.npmjs.org/slash@1.0.0: + resolution: {integrity: sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==, tarball: https://registry.npmjs.org/slash/-/slash-1.0.0.tgz} + name: slash + version: 1.0.0 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmjs.org/source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, tarball: https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz} + name: source-map-support + version: 0.5.21 + dependencies: + buffer-from: registry.npmjs.org/buffer-from@1.1.2 + source-map: registry.npmjs.org/source-map@0.6.1 + dev: true + + registry.npmjs.org/source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, tarball: https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz} + name: source-map + version: 0.6.1 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmjs.org/strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, tarball: https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz} + name: strip-ansi + version: 6.0.1 + engines: {node: '>=8'} + dependencies: + ansi-regex: registry.npmjs.org/ansi-regex@5.0.1 + dev: true + + registry.npmjs.org/strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==, tarball: https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz} + name: strip-bom + version: 3.0.0 + engines: {node: '>=4'} + dev: true + + registry.npmjs.org/strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==, tarball: https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz} + name: strip-final-newline + version: 2.0.0 + engines: {node: '>=6'} + dev: true + + registry.npmjs.org/strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==, tarball: https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz} + name: strip-json-comments + version: 2.0.1 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmjs.org/supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, tarball: https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz} + name: supports-color + version: 5.5.0 + engines: {node: '>=4'} + dependencies: + has-flag: registry.npmjs.org/has-flag@3.0.0 + dev: true + + registry.npmjs.org/supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, tarball: https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz} + name: supports-color + version: 7.2.0 + engines: {node: '>=8'} + dependencies: + has-flag: registry.npmjs.org/has-flag@4.0.0 + dev: true + + registry.npmjs.org/supports-hyperlinks@2.3.0: + resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==, tarball: https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz} + name: supports-hyperlinks + version: 2.3.0 + engines: {node: '>=8'} + dependencies: + has-flag: registry.npmjs.org/has-flag@4.0.0 + supports-color: registry.npmjs.org/supports-color@7.2.0 + dev: true + + registry.npmjs.org/table-layout@1.0.2: + resolution: {integrity: sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==, tarball: https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz} + name: table-layout + version: 1.0.2 + engines: {node: '>=8.0.0'} + dependencies: + array-back: registry.npmjs.org/array-back@4.0.2 + deep-extend: registry.npmjs.org/deep-extend@0.6.0 + typical: registry.npmjs.org/typical@5.2.0 + wordwrapjs: registry.npmjs.org/wordwrapjs@4.0.1 + dev: true + + registry.npmjs.org/tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, tarball: https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz} + name: tapable + version: 2.2.1 + engines: {node: '>=6'} + dev: true + + registry.npmjs.org/terminal-link@2.1.1: + resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==, tarball: https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz} + name: terminal-link + version: 2.1.1 + engines: {node: '>=8'} + dependencies: + ansi-escapes: registry.npmjs.org/ansi-escapes@4.3.2 + supports-hyperlinks: registry.npmjs.org/supports-hyperlinks@2.3.0 + dev: true + + registry.npmjs.org/tinycolor2@1.6.0: + resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==, tarball: https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz} + name: tinycolor2 + version: 1.6.0 + dev: true + + registry.npmjs.org/to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, tarball: https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz} + name: to-regex-range + version: 5.0.1 + engines: {node: '>=8.0'} + dependencies: + is-number: registry.npmjs.org/is-number@7.0.0 + dev: true + + registry.npmjs.org/tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==, tarball: https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz} + name: tr46 + version: 0.0.3 + dev: true + + registry.npmjs.org/ts-node@10.9.1(@types/node@20.9.3)(typescript@5.3.2): + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==, tarball: https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz} + id: registry.npmjs.org/ts-node/10.9.1 + name: ts-node + version: 10.9.1 + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': registry.npmjs.org/@cspotcode/source-map-support@0.8.1 + '@tsconfig/node10': registry.npmjs.org/@tsconfig/node10@1.0.9 + '@tsconfig/node12': registry.npmjs.org/@tsconfig/node12@1.0.11 + '@tsconfig/node14': registry.npmjs.org/@tsconfig/node14@1.0.3 + '@tsconfig/node16': registry.npmjs.org/@tsconfig/node16@1.0.4 + '@types/node': registry.npmjs.org/@types/node@20.9.3 + acorn: registry.npmjs.org/acorn@8.11.2 + acorn-walk: registry.npmjs.org/acorn-walk@8.3.0 + arg: registry.npmjs.org/arg@4.1.3 + create-require: registry.npmjs.org/create-require@1.1.1 + diff: registry.npmjs.org/diff@4.0.2 + make-error: registry.npmjs.org/make-error@1.3.6 + typescript: registry.npmjs.org/typescript@5.3.2 + v8-compile-cache-lib: registry.npmjs.org/v8-compile-cache-lib@3.0.1 + yn: registry.npmjs.org/yn@3.1.1 + dev: true + + registry.npmjs.org/ts-node@9.1.1(typescript@5.3.2): + resolution: {integrity: sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==, tarball: https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz} + id: registry.npmjs.org/ts-node/9.1.1 + name: ts-node + version: 9.1.1 + engines: {node: '>=10.0.0'} + hasBin: true + peerDependencies: + typescript: '>=2.7' + dependencies: + arg: registry.npmjs.org/arg@4.1.3 + create-require: registry.npmjs.org/create-require@1.1.1 + diff: registry.npmjs.org/diff@4.0.2 + make-error: registry.npmjs.org/make-error@1.3.6 + source-map-support: registry.npmjs.org/source-map-support@0.5.21 + typescript: registry.npmjs.org/typescript@5.3.2 + yn: registry.npmjs.org/yn@3.1.1 + dev: true + + registry.npmjs.org/tslib@1.10.0: + resolution: {integrity: sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==, tarball: https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz} + name: tslib + version: 1.10.0 + dev: true + + registry.npmjs.org/tslib@2.1.0: + resolution: {integrity: sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==, tarball: https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz} + name: tslib + version: 2.1.0 + dev: true + + registry.npmjs.org/tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==, tarball: https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz} + name: tslib + version: 2.6.2 + dev: true + + registry.npmjs.org/type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==, tarball: https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz} + name: type-fest + version: 0.21.3 + engines: {node: '>=10'} + dev: true + + registry.npmjs.org/typescript-memoize@1.1.1: + resolution: {integrity: sha512-GQ90TcKpIH4XxYTI2F98yEQYZgjNMOGPpOgdjIBhaLaWji5HPWlRnZ4AeA1hfBxtY7bCGDJsqDDHk/KaHOl5bA==, tarball: https://registry.npmjs.org/typescript-memoize/-/typescript-memoize-1.1.1.tgz} + name: typescript-memoize + version: 1.1.1 + dev: true + + registry.npmjs.org/typescript@5.3.2: + resolution: {integrity: sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==, tarball: https://registry.npmjs.org/typescript/-/typescript-5.3.2.tgz} + name: typescript + version: 5.3.2 + engines: {node: '>=14.17'} + hasBin: true + dev: true + + registry.npmjs.org/typical@4.0.0: + resolution: {integrity: sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==, tarball: https://registry.npmjs.org/typical/-/typical-4.0.0.tgz} + name: typical + version: 4.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmjs.org/typical@5.2.0: + resolution: {integrity: sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==, tarball: https://registry.npmjs.org/typical/-/typical-5.2.0.tgz} + name: typical + version: 5.2.0 + engines: {node: '>=8'} + dev: true + + registry.npmjs.org/undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==, tarball: https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz} + name: undici-types + version: 5.26.5 + dev: true + + registry.npmjs.org/universal-user-agent@6.0.1: + resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==, tarball: https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz} + name: universal-user-agent + version: 6.0.1 + dev: true + + registry.npmjs.org/url-join@4.0.1: + resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==, tarball: https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz} + name: url-join + version: 4.0.1 + dev: true + + registry.npmjs.org/user-home@2.0.0: + resolution: {integrity: sha512-KMWqdlOcjCYdtIJpicDSFBQ8nFwS2i9sslAd6f4+CBGcU4gist2REnr2fxj2YocvJFxSF3ZOHLYLVZnUxv4BZQ==, tarball: https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz} + name: user-home + version: 2.0.0 + engines: {node: '>=0.10.0'} + dependencies: + os-homedir: registry.npmjs.org/os-homedir@1.0.2 + dev: true + + registry.npmjs.org/v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==, tarball: https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz} + name: v8-compile-cache-lib + version: 3.0.1 + dev: true + + registry.npmjs.org/webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==, tarball: https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz} + name: webidl-conversions + version: 3.0.1 + dev: true + + registry.npmjs.org/whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==, tarball: https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz} + name: whatwg-url + version: 5.0.0 + dependencies: + tr46: registry.npmjs.org/tr46@0.0.3 + webidl-conversions: registry.npmjs.org/webidl-conversions@3.0.1 + dev: true + + registry.npmjs.org/which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, tarball: https://registry.npmjs.org/which/-/which-2.0.2.tgz} + name: which + version: 2.0.2 + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: registry.npmjs.org/isexe@2.0.0 + dev: true + + registry.npmjs.org/wordwrapjs@4.0.1: + resolution: {integrity: sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==, tarball: https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz} + name: wordwrapjs + version: 4.0.1 + engines: {node: '>=8.0.0'} + dependencies: + reduce-flatten: registry.npmjs.org/reduce-flatten@2.0.0 + typical: registry.npmjs.org/typical@5.2.0 + dev: true + + registry.npmjs.org/wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, tarball: https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz} + name: wrappy + version: 1.0.2 + dev: true + + registry.npmjs.org/yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, tarball: https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz} + name: yallist + version: 4.0.0 + dev: true + + registry.npmjs.org/yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==, tarball: https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz} + name: yaml + version: 1.10.2 + engines: {node: '>= 6'} + dev: true + + registry.npmjs.org/yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==, tarball: https://registry.npmjs.org/yn/-/yn-3.1.1.tgz} + name: yn + version: 3.1.1 + engines: {node: '>=6'} + dev: true diff --git a/swift/BUILD b/swift/BUILD deleted file mode 100644 index e69de29..0000000 diff --git a/swift/conf.bzl b/swift/conf.bzl deleted file mode 100644 index 0bb0c1c..0000000 --- a/swift/conf.bzl +++ /dev/null @@ -1,3 +0,0 @@ -load("//swift:rules_deps.bzl", "rules_deps") - -swift = rules_deps diff --git a/swift/extra_deps.bzl b/swift/extra_deps.bzl deleted file mode 100644 index c5204dd..0000000 --- a/swift/extra_deps.bzl +++ /dev/null @@ -1,7 +0,0 @@ -load( - "@build_bazel_rules_swift//swift:extras.bzl", - "swift_rules_extra_dependencies", -) - -def extra_deps(): - swift_rules_extra_dependencies() diff --git a/swift/rules_deps.bzl b/swift/rules_deps.bzl deleted file mode 100644 index 696bd03..0000000 --- a/swift/rules_deps.bzl +++ /dev/null @@ -1,7 +0,0 @@ -load( - "@build_bazel_rules_swift//swift:repositories.bzl", - "swift_rules_dependencies", -) - -def rules_deps(): - swift_rules_dependencies() diff --git a/swift/workspace.bzl b/swift/workspace.bzl deleted file mode 100644 index 59884e3..0000000 --- a/swift/workspace.bzl +++ /dev/null @@ -1,9 +0,0 @@ -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -load("//internal:maybe.bzl", "maybe") - -def swift(): - http_archive( - name = "build_bazel_rules_swift", - sha256 = "f872c0388808c3f8de67e0c6d39b0beac4a65d7e07eff3ced123d0b102046fb6", - url = "https://github.com/bazelbuild/rules_swift/releases/download/0.21.0/rules_swift.0.21.0.tar.gz", - ) diff --git a/workspace.bzl b/workspace.bzl deleted file mode 100644 index 7a4a1e3..0000000 --- a/workspace.bzl +++ /dev/null @@ -1,23 +0,0 @@ -load("//android:workspace.bzl", "android") -load("//apple:workspace.bzl", "apple") -load("//bazel:workspace.bzl", "skylib") -load("//cocoapods:workspace.bzl", "cocoapods") -load("//distribution:workspace.bzl", "distribution") -load("//junit5:workspace.bzl", "junit5") -load("//kotlin:workspace.bzl", "kotlin") -load("//maven:workspace.bzl", "maven_repository") -load("//javascript:workspace.bzl", "javascript") - -def deps( - android_api_version = None, - android_build_tools_version = None -): - android(api_level = android_api_version, build_tools_version = android_build_tools_version) - apple() - skylib() - distribution() - junit5() - kotlin() - maven_repository() - javascript() - cocoapods()