From b64ba770e2bbd23098e7fc59be619d54a89ff888 Mon Sep 17 00:00:00 2001 From: "Sean R. Abraham" Date: Fri, 9 Feb 2024 16:39:06 -0700 Subject: [PATCH 1/9] docs(golangci-lint): fix the target name (#144) This is what the example setup uses, and it's what I had to use to get this to work in our workspace. https://github.com/aspect-build/rules_lint/blob/ebe8678587abb1f9104abbfc6ca2ee1a8579b4aa/example/tools/lint.bzl#L59-L62 --- docs/golangci-lint.md | 2 +- lint/golangci-lint.bzl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/golangci-lint.md b/docs/golangci-lint.md index 6c11422e..e983b06a 100644 --- a/docs/golangci-lint.md +++ b/docs/golangci-lint.md @@ -6,7 +6,7 @@ API for declaring a golangci-lint lint aspect that visits go_library, go_test, a load("@aspect_rules_lint//lint:golangci-lint.bzl", "golangci_lint_aspect") golangci_lint = golangci_lint_aspect( - binary = "@@//tools:golangci-lint", + binary = "@@//tools:golangci_lint", config = "@@//:.golangci.yaml", ) ``` diff --git a/lint/golangci-lint.bzl b/lint/golangci-lint.bzl index a9e452f2..ae9f2bce 100644 --- a/lint/golangci-lint.bzl +++ b/lint/golangci-lint.bzl @@ -4,7 +4,7 @@ load("@aspect_rules_lint//lint:golangci-lint.bzl", "golangci_lint_aspect") golangci_lint = golangci_lint_aspect( - binary = "@@//tools:golangci-lint", + binary = "@@//tools:golangci_lint", config = "@@//:.golangci.yaml", ) ``` From e9b90bd33140191a63b93e401fbb614d65ca767b Mon Sep 17 00:00:00 2001 From: peter woodman Date: Tue, 13 Feb 2024 12:44:38 -0500 Subject: [PATCH 2/9] collapse common logic into run-format formula (#119) step on the road to parallelizing the formatters --- format/private/format.sh | 244 +++++++++++++---------------------- format/test/format_test.bats | 8 +- 2 files changed, 92 insertions(+), 160 deletions(-) diff --git a/format/private/format.sh b/format/private/format.sh index e5ef4b06..4f13d922 100755 --- a/format/private/format.sh +++ b/format/private/format.sh @@ -14,10 +14,16 @@ cd $BUILD_WORKSPACE_DIRECTORY function on_exit { code=$? - if [[ $code != 0 ]]; then - echo >&2 "FAILED: A formatter tool exited with code $code" - echo >&2 "Try running 'bazel run {{fix_target}}' to fix this." - fi + case "$code" in + # return code 143 is the result of SIGTERM, which isn't failure, so suppress failure suggestion + 0|143) + exit $code; + ;; + *) + echo >&2 "FAILED: A formatter tool exited with code $code" + echo >&2 "Try running 'bazel run {{fix_target}}' to fix this." + ;; + esac } trap on_exit EXIT @@ -61,7 +67,7 @@ function ls-files { exit 1 ;; esac - + if [ "$#" -eq 0 ]; then # When the formatter is run with no arguments, we run over "all files in the repo". # However, we want to ignore anything that is in .gitignore, is marked for delete, etc. @@ -130,160 +136,86 @@ case "$mode" in *) echo >&2 "unknown mode $mode";; esac -# Run each supplied formatter over the files it owns -# TODO: run them concurrently, not serial - -files=$(ls-files Starlark $@) -bin=$(rlocation {{buildifier}}) -if [ -n "$files" ] && [ -n "$bin" ]; then - echo "Formatting Starlark with Buildifier..." - echo "$files" | tr \\n \\0 | xargs -0 $bin -mode="$mode" -fi - -files=$(ls-files Markdown $@) -bin=$(rlocation {{prettier-md}}) -if [ -n "$files" ] && [ -n "$bin" ]; then - echo "Formatting Markdown with Prettier..." - echo "$files" | tr \\n \\0 | xargs -0 $bin $prettiermode -fi - -files=$(ls-files JSON $@) -bin=$(rlocation {{prettier}}) -if [ -n "$files" ] && [ -n "$bin" ]; then - echo "Formatting JSON with Prettier..." - echo "$files" | tr \\n \\0 | xargs -0 $bin $prettiermode -fi - -files=$(ls-files JavaScript $@) -bin=$(rlocation {{prettier}}) -if [ -n "$files" ] && [ -n "$bin" ]; then - echo "Formatting JavaScript with Prettier..." - echo "$files" | tr \\n \\0 | xargs -0 $bin $prettiermode -fi - -files=$(ls-files CSS $@) -bin=$(rlocation {{prettier}}) -if [ -n "$files" ] && [ -n "$bin" ]; then - echo "Formatting CSS with Prettier..." - echo "$files" | tr \\n \\0 | xargs -0 $bin $prettiermode -fi - -files=$(ls-files HTML $@) -bin=$(rlocation {{prettier}}) -if [ -n "$files" ] && [ -n "$bin" ]; then - echo "Formatting HTML with Prettier..." - echo "$files" | tr \\n \\0 | xargs -0 $bin $prettiermode -fi - -files=$(ls-files TypeScript $@) -bin=$(rlocation {{prettier}}) -if [ -n "$files" ] && [ -n "$bin" ]; then - echo "Formatting TypeScript with Prettier..." - echo "$files" | tr \\n \\0 | xargs -0 $bin $prettiermode -fi - -files=$(ls-files TSX $@) -bin=$(rlocation {{prettier}}) -if [ -n "$files" ] && [ -n "$bin" ]; then - echo "Formatting TSX with Prettier..." - echo "$files" | tr \\n \\0 | xargs -0 $bin $prettiermode -fi - -files=$(ls-files SQL $@) -bin=$(rlocation {{prettier-sql}}) -if [ -n "$files" ] && [ -n "$bin" ]; then - echo "Formatting SQL with Prettier..." - echo "$files" | tr \\n \\0 | xargs -0 $bin $prettiermode -fi - -files=$(ls-files Python $@) -bin=$(rlocation {{ruff}}) -if [ -n "$files" ] && [ -n "$bin" ]; then - echo "Formatting Python with Ruff..." - echo "$files" | tr \\n \\0 | xargs -0 $bin $ruffmode -fi - -files=$(ls-files Terraform $@) -bin=$(rlocation {{terraform-fmt}}) -if [ -n "$files" ] && [ -n "$bin" ]; then - echo "Formatting Terraform files with terraform fmt..." - echo "$files" | tr \\n \\0 | xargs -0 $bin fmt $tfmode -fi - -files=$(ls-files Jsonnet $@) -bin=$(rlocation {{jsonnetfmt}}) -if [ -n "$files" ] && [ -n "$bin" ]; then - echo "Formatting Jsonnet with jsonnetfmt..." - echo "$files" | tr \\n \\0 | xargs -0 $bin $jsonnetmode -fi +function time-run { + local files="$1" && shift + local bin="$1" && shift + local lang="$1" && shift + local silent="$1" && shift + local tuser + local tsys -files=$(ls-files Java $@) -bin=$(rlocation {{java-format}}) -if [ -n "$files" ] && [ -n "$bin" ]; then - echo "Formatting Java with java-format..." - # Setting JAVA_RUNFILES to work around https://github.com/bazelbuild/bazel/issues/12348 - echo "$files" | tr \\n \\0 | JAVA_RUNFILES="${RUNFILES_MANIFEST_FILE%_manifest}" xargs -0 $bin $javamode -fi + ( if [ $silent != 0 ] ; then 2>/dev/null ; fi ; echo "$files" | tr \\n \\0 | xargs -0 "$bin" "$@" >&2 ; times ) | ( read _ _ ; read tuser tsys; echo "Formatted ${lang} in ${tuser}" ) -files=$(ls-files Kotlin $@) -bin=$(rlocation {{ktfmt}}) -if [ -n "$files" ] && [ -n "$bin" ]; then - echo "Formatting Kotlin with ktfmt..." - echo "$files" | tr \\n \\0 | xargs -0 $bin $ktmode -fi - -files=$(ls-files Scala $@) -bin=$(rlocation {{scalafmt}}) -if [ -n "$files" ] && [ -n "$bin" ]; then - echo "Formatting Scala with scalafmt..." - # Setting JAVA_RUNFILES to work around https://github.com/bazelbuild/bazel/issues/12348 - echo "$files" | tr \\n \\0 | JAVA_RUNFILES="${RUNFILES_MANIFEST_FILE%_manifest}" xargs -0 $bin $scalamode -fi +} -files=$(ls-files Go $@) -bin=$(rlocation {{gofmt}}) -if [ -n "$files" ] && [ -n "$bin" ]; then - echo "Formatting Go with gofmt..." - # gofmt doesn't produce non-zero exit code so we must check for non-empty output - # https://github.com/golang/go/issues/24230 - if [ "$mode" == "check" ]; then - NEED_FMT=$(echo "$files" | tr \\n \\0 | xargs -0 $bin $gofmtmode) - if [ -n "$NEED_FMT" ]; then - echo "Go files not formatted:" - echo "$NEED_FMT" - exit 1 - fi - else - echo "$files" | tr \\n \\0 | xargs -0 $bin $gofmtmode +function run-format { + local lang="$1" && shift + local fmtname="$1" && shift + local bin="$1" && shift + local args="$1" && shift + local tuser + local tsys + + local files=$(ls-files "$lang" $@) + if [ -n "$files" ] && [ -n "$bin" ]; then + echo "Formatting ${lang} with ${fmtname}..." + case "$lang" in + 'Protocol Buffer') + ( for file in $files; do + "$bin" $args $file >&2 + done ; times ) | ( read _ _; read tuser tsys; echo "Formatted ${lang} in ${tuser}" ) + ;; + Go) + # gofmt doesn't produce non-zero exit code so we must check for non-empty output + # https://github.com/golang/go/issues/24230 + if [ "$mode" == "check" ]; then + GOFMT_OUT=$(mktemp) + (echo "$files" | tr \\n \\0 | xargs -0 "$bin" $args > "$GOFMT_OUT" ; times ) | ( read _ _; read tuser tsys; echo "Formatted ${lang} in ${tuser}" ) + NEED_FMT="$(cat $GOFMT_OUT)" + rm $GOFMT_OUT + if [ -n "$NEED_FMT" ]; then + echo "Go files not formatted:" + echo "$NEED_FMT" + exit 1 + fi + else + time-run "$files" "$bin" "$lang" 0 $args + fi + ;; + Java|Scala) + # Setting JAVA_RUNFILES to work around https://github.com/bazelbuild/bazel/issues/12348 + ( export JAVA_RUNFILES="${RUNFILES_MANIFEST_FILE%_manifest}" ; time-run "$files" "$bin" "$lang" 0 $args ) + ;; + Swift) + # for any formatter that must be silenced + time-run "$files" "$bin" "$lang" 1 $args + ;; + *) + time-run "$files" "$bin" "$lang" 0 $args + ;; + esac fi -fi - -files=$(ls-files C++ $@) -bin=$(rlocation {{clang-format}}) -if [ -n "$files" ] && [ -n "$bin" ]; then - echo "Formatting C/C++ with clang-format..." - echo "$files" | tr \\n \\0 | xargs -0 $bin $clangformatmode -fi - -files=$(ls-files Shell $@) -bin=$(rlocation {{shfmt}}) -if [ -n "$files" ] && [ -n "$bin" ]; then - echo "Formatting Shell with shfmt..." - echo "$files" | tr \\n \\0 | xargs -0 $bin $shfmtmode -fi +} -files=$(ls-files Swift $@) -bin=$(rlocation {{swiftformat}}) -if [ -n "$files" ] && [ -n "$bin" ]; then - # swiftformat itself prints Running SwiftFormat... - echo "$files" | tr \\n \\0 | xargs -0 $bin $swiftmode -fi +# Run each supplied formatter over the files it owns -files=$(ls-files 'Protocol Buffer' $@) -bin=$(rlocation {{buf}}) -if [ -n "$files" ] && [ -n "$bin" ]; then - echo "Formatting Protobuf with buf..." - for file in $files; do - $bin $bufmode $file - done -fi +run-format Starlark Buildifier "$(rlocation {{buildifier}})" "-mode=$mode" $@ +run-format Markdown Prettier "$(rlocation {{prettier-md}})" "$prettiermode" $@ +run-format JSON Prettier "$(rlocation {{prettier}})" "$prettiermode" $@ +run-format JavaScript Prettier "$(rlocation {{prettier}})" "$prettiermode" $@ +run-format CSS Prettier "$(rlocation {{prettier}})" "$prettiermode" $@ +run-format HTML Prettier "$(rlocation {{prettier}})" "$prettiermode" $@ +run-format TypeScript Prettier "$(rlocation {{prettier}})" "$prettiermode" $@ +run-format TSX Prettier "$(rlocation {{prettier}})" "$prettiermode" $@ +run-format SQL Prettier "$(rlocation {{prettier-sql}})" "$prettiermode" $@ +run-format Python Ruff "$(rlocation {{ruff}})" "$ruffmode" $@ +run-format Terraform "terraform fmt" "$(rlocation {{terraform-fmt}})" "fmt $tfmode" $@ +run-format Jsonnet jsonnetfmt "$(rlocation {{jsonnetfmt}})" "$jsonnetmode" $@ +run-format Java java-format "$(rlocation {{java-format}})" "$javamode" $@ +run-format Kotlin ktfmt "$(rlocation {{ktfmt}})" "$ktmode" $@ +run-format Scala scalafmt "$(rlocation {{scalafmt}})" "$scalamode" $@ +run-format Go gofmt "$(rlocation {{gofmt}})" "$gofmtmode" $@ +run-format C++ clang-format "$(rlocation {{clang-format}})" "$clangformatmode" $@ +run-format Shell shfmt "$(rlocation {{shfmt}})" "$shfmtmode" $@ +run-format Swift swiftfmt "$(rlocation {{swiftformat}})" "$swiftmode" $@ +run-format 'Protocol Buffer' buf "$(rlocation {{buf}})" "$bufmode" $@ diff --git a/format/test/format_test.bats b/format/test/format_test.bats index 8e44c73e..f64de4cc 100644 --- a/format/test/format_test.bats +++ b/format/test/format_test.bats @@ -8,7 +8,7 @@ bats_load_library "bats-assert" @test "should run prettier on javascript using git ls-files" { run bazel run //format/test:format_javascript assert_success - + assert_output --partial "Formatting JavaScript with Prettier..." assert_output --partial "+ prettier --write example/.eslintrc.cjs" assert_output --partial "Formatting TypeScript with Prettier..." @@ -69,7 +69,7 @@ bats_load_library "bats-assert" run bazel run //format/test:format_hcl assert_success - assert_output --partial "Formatting Terraform files with terraform fmt..." + assert_output --partial "Formatting Terraform with terraform fmt..." assert_output --partial "+ terraform-fmt fmt example/src/hello.tf" } @@ -117,7 +117,7 @@ bats_load_library "bats-assert" run bazel run //format/test:format_cc assert_success - assert_output --partial "Formatting C/C++ with clang-format..." + assert_output --partial "Formatting C++ with clang-format..." assert_output --partial "+ clang-format -style=file --fallback-style=none -i example/src/hello.cpp" } @@ -141,7 +141,7 @@ bats_load_library "bats-assert" run bazel run //format/test:format_protobuf assert_success - assert_output --partial "Formatting Protobuf with buf..." + assert_output --partial "Formatting Protocol Buffer with buf..." # Buf only formats one file at a time assert_output --partial "+ buf format -w example/src/file.proto" assert_output --partial "+ buf format -w example/src/unused.proto" From 3557a7007f9818eb6f4aa3f725e28851d29728c7 Mon Sep 17 00:00:00 2001 From: Alex Eagle Date: Thu, 15 Feb 2024 09:28:56 -0800 Subject: [PATCH 3/9] fix: pass flag to shfmt to ignore passed files (#146) Fixes #80 --- format/private/format.sh | 3 ++- format/repositories.bzl | 10 +++++----- format/test/format_test.bats | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/format/private/format.sh b/format/private/format.sh index 4f13d922..46935376 100755 --- a/format/private/format.sh +++ b/format/private/format.sh @@ -123,7 +123,8 @@ case "$mode" in # as command-line arguments; see # https://github.com/astral-sh/ruff/discussions/5857#discussioncomment-6583943 ruffmode="format --force-exclude" - shfmtmode="-w" + # NB: apply-ignore added in https://github.com/mvdan/sh/issues/1037 + shfmtmode="-w --apply-ignore" javamode="--replace" ktmode="" gofmtmode="-w" diff --git a/format/repositories.bzl b/format/repositories.bzl index acb0432d..488f077d 100644 --- a/format/repositories.bzl +++ b/format/repositories.bzl @@ -58,13 +58,13 @@ def fetch_jsonnet(): # buildifier: disable=function-docstring def fetch_shfmt(): - shfmt_version = "3.7.0" + shfmt_version = "3.8.0" http_file( name = "shfmt_darwin_x86_64", downloaded_file_path = "shfmt", executable = True, - sha256 = "ae1d1ab961c113fb3dc2ff1150f33c3548983550d91da889b3171a5bcfaab14f", + sha256 = "c0218b47a0301bb006f49fad85d2c08de23df303472834faf5639d04121320f8", urls = ["https://github.com/mvdan/sh/releases/download/v{0}/shfmt_v{0}_darwin_amd64".format(shfmt_version)], ) @@ -72,7 +72,7 @@ def fetch_shfmt(): name = "shfmt_darwin_aarch64", downloaded_file_path = "shfmt", executable = True, - sha256 = "ad7ff6f666adba3d801eb17365a15539f07296718d39fb62cc2fde6b527178aa", + sha256 = "1481240d2a90d4f0b530688d76d4f9117d17a756b6027cfa42b96f0707317f83", urls = ["https://github.com/mvdan/sh/releases/download/v{0}/shfmt_v{0}_darwin_arm64".format(shfmt_version)], ) @@ -80,7 +80,7 @@ def fetch_shfmt(): name = "shfmt_linux_x86_64", downloaded_file_path = "shfmt", executable = True, - sha256 = "0264c424278b18e22453fe523ec01a19805ce3b8ebf18eaf3aadc1edc23f42e3", + sha256 = "27b3c6f9d9592fc5b4856c341d1ff2c88856709b9e76469313642a1d7b558fe0", urls = ["https://github.com/mvdan/sh/releases/download/v{0}/shfmt_v{0}_linux_amd64".format(shfmt_version)], ) @@ -88,7 +88,7 @@ def fetch_shfmt(): name = "shfmt_linux_aarch64", downloaded_file_path = "shfmt", executable = True, - sha256 = "111612560d15bd53d8e8f8f85731176ce12f3b418ec473d39a40ed6bbec772de", + sha256 = "27e1f69b0d57c584bcbf5c882b4c4f78ffcf945d0efef45c1fbfc6692213c7c3", urls = ["https://github.com/mvdan/sh/releases/download/v{0}/shfmt_v{0}_linux_arm64".format(shfmt_version)], ) diff --git a/format/test/format_test.bats b/format/test/format_test.bats index f64de4cc..be1d35f1 100644 --- a/format/test/format_test.bats +++ b/format/test/format_test.bats @@ -126,7 +126,7 @@ bats_load_library "bats-assert" assert_success assert_output --partial "Formatting Shell with shfmt..." - assert_output --partial "+ shfmt -w .github/workflows/release_prep.sh" + assert_output --partial "+ shfmt -w --apply-ignore .github/workflows/release_prep.sh" } @test "should run swiftformat on Swift" { From e2fecbbbb0e5293e4826c709cc6e454909f0481c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 19 Feb 2024 09:44:09 -0800 Subject: [PATCH 4/9] chore: mirror external releases (#147) Co-authored-by: alexeagle --- docs/ruff.md | 2 +- lint/ruff_versions.bzl | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/docs/ruff.md b/docs/ruff.md index 226855a7..eb4591fb 100644 --- a/docs/ruff.md +++ b/docs/ruff.md @@ -51,7 +51,7 @@ A repository macro used from WORKSPACE to fetch ruff binaries | Name | Description | Default Value | | :------------- | :------------- | :------------- | -| tag | a tag of ruff that we have mirrored, e.g. v0.1.0 | "v0.2.1" | +| tag | a tag of ruff that we have mirrored, e.g. v0.1.0 | "v0.2.2" | diff --git a/lint/ruff_versions.bzl b/lint/ruff_versions.bzl index 3d399e50..70f12abe 100644 --- a/lint/ruff_versions.bzl +++ b/lint/ruff_versions.bzl @@ -1,5 +1,23 @@ "This file is automatically updated by mirror_ruff.sh" RUFF_VERSIONS = { + "v0.2.2": { + "aarch64-apple-darwin": "21454a77f0a5ff8ed23a43327f6de9c2f9f6bab1352ebe87fc03866889fa7fae", + "aarch64-pc-windows-msvc": "ab35fd6fc5886cf63541dec00172f41fa03242e53c6c5f1213c3a09d9c9a6c97", + "aarch64-unknown-linux-gnu": "0bd2932f652f72386a0ab837a2cf2933c21883fbf25294caf881f667927c39c9", + "aarch64-unknown-linux-musl": "e73a37f41acf4a4f44cdb9b587316f0f9eb83b51c3c134d1401501e3f8d65dee", + "armv7-unknown-linux-gnueabihf": "e1441779b1996142f081a678cfd93f32bab43f71f62a01103804a3500f747e52", + "armv7-unknown-linux-musleabihf": "09a43e71e601b74b73fa76031c969e2d2e7e0f0103f9c64db8dcdfb3274747b4", + "i686-pc-windows-msvc": "3681f8e404982bc92ae63b8ee85d1f14b378a0fabc96be18dea6a3281bbb46a0", + "i686-unknown-linux-gnu": "39f9b9c9ae4d84ce69c011d72b8870831897888b7d79233bc0710fc374ae59e7", + "i686-unknown-linux-musl": "caadcab0d70e1302c8919e85d635795109cddaada84904a7f4e63d4d5ba2f9df", + "powerpc64-unknown-linux-gnu": "70f2370c32f8d2354a03d380d31fdf9bbbeace401f06089b2cb82d84919a6882", + "powerpc64le-unknown-linux-gnu": "e185d9332ea8633ad8aa79e35d44d3cc2f24e642441db102c5b5a2f8dcfccc03", + "s390x-unknown-linux-gnu": "141e52c9058f5acf6189c06f9758a9eb0bacde7b4b4915bd9ef752a63a03c924", + "x86_64-apple-darwin": "798a2028a783f10f21f11eb59763eabcff9961d4302cdcc37d186ab9f864ca82", + "x86_64-pc-windows-msvc": "e36d3126da1161d3c6228db215cc8fdf315a7503fe09be54004f226019aa5b2a", + "x86_64-unknown-linux-gnu": "86089b6e8654c6ede8fd00766429eb31b18bc2cc56241935d1e3e2df84fafea3", + "x86_64-unknown-linux-musl": "044e4dbd46acc12de78a144c24fd9af86003eaba28e83244546d85076a9c7b04", + }, "v0.2.1": { "aarch64-apple-darwin": "72408f7553884f8b045201dcf31e40b709667758620e020d5957ce7e664be3b1", "aarch64-pc-windows-msvc": "20fe77caa371c9b57e5f1d07dc88a8a38f9797bbfb8b32084eaf5cf27cfa554f", From a9d300ff881c5274319720a46917459e012c321a Mon Sep 17 00:00:00 2001 From: Greg Magolan Date: Wed, 21 Feb 2024 13:05:56 -0800 Subject: [PATCH 5/9] chore: cleanup maybe patterns (#139) --- format/repositories.bzl | 12 ++++++------ lint/BUILD.bazel | 1 + lint/private/BUILD.bazel | 6 ++++++ lint/private/maybe.bzl | 7 +++++++ lint/shellcheck.bzl | 6 ++---- 5 files changed, 22 insertions(+), 10 deletions(-) create mode 100644 lint/private/maybe.bzl diff --git a/format/repositories.bzl b/format/repositories.bzl index 488f077d..d8ab96a9 100644 --- a/format/repositories.bzl +++ b/format/repositories.bzl @@ -6,14 +6,14 @@ Needed until Bazel 7 allows MODULE.bazel to directly call repository rules. load("@bazel_tools//tools/build_defs/repo:http.bzl", _http_archive = "http_archive", _http_file = "http_file", _http_jar = "http_jar") load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") -def http_archive(name, **kwargs): - maybe(_http_archive, name = name, **kwargs) +def http_archive(**kwargs): + maybe(_http_archive, **kwargs) -def http_file(name, **kwargs): - maybe(_http_file, name = name, **kwargs) +def http_file(**kwargs): + maybe(_http_file, **kwargs) -def http_jar(name, **kwargs): - maybe(_http_jar, name = name, **kwargs) +def http_jar(**kwargs): + maybe(_http_jar, **kwargs) def fetch_pmd(): http_archive( diff --git a/lint/BUILD.bazel b/lint/BUILD.bazel index f8144453..43df0838 100644 --- a/lint/BUILD.bazel +++ b/lint/BUILD.bazel @@ -126,6 +126,7 @@ bzl_library( visibility = ["//visibility:public"], deps = [ "//lint/private:lint_aspect", + "//lint/private:maybe", "@bazel_skylib//rules:native_binary", "@bazel_tools//tools/build_defs/repo:http.bzl", "@bazel_tools//tools/build_defs/repo:utils.bzl", diff --git a/lint/private/BUILD.bazel b/lint/private/BUILD.bazel index beddc238..20df0bfb 100644 --- a/lint/private/BUILD.bazel +++ b/lint/private/BUILD.bazel @@ -7,6 +7,12 @@ bzl_library( visibility = ["//lint:__subpackages__"], ) +bzl_library( + name = "maybe", + srcs = ["maybe.bzl"], + visibility = ["//lint:__subpackages__"], +) + js_binary( name = "patcher", entry_point = "patcher.mjs", diff --git a/lint/private/maybe.bzl b/lint/private/maybe.bzl new file mode 100644 index 00000000..b6e89fee --- /dev/null +++ b/lint/private/maybe.bzl @@ -0,0 +1,7 @@ +"maybe utilities" + +load("@bazel_tools//tools/build_defs/repo:http.bzl", _http_archive = "http_archive") +load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") + +def maybe_http_archive(**kwargs): + maybe(_http_archive, **kwargs) diff --git a/lint/shellcheck.bzl b/lint/shellcheck.bzl index 11c7776f..a2ac460a 100644 --- a/lint/shellcheck.bzl +++ b/lint/shellcheck.bzl @@ -17,9 +17,8 @@ shellcheck = shellcheck_aspect( """ load("@bazel_skylib//rules:native_binary.bzl", "native_binary") -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") load("//lint/private:lint_aspect.bzl", "filter_srcs", "report_file") +load("//lint/private:maybe.bzl", http_archive = "maybe_http_archive") _MNEMONIC = "shellcheck" @@ -125,8 +124,7 @@ def fetch_shellcheck(version = SHELLCHECK_VERSIONS.keys()[0]): version: a version of shellcheck that we have mirrored, e.g. `v0.9.0` """ for plat, sha256 in SHELLCHECK_VERSIONS[version].items(): - maybe( - http_archive, + http_archive( name = "shellcheck_{}".format(plat), url = "https://github.com/koalaman/shellcheck/releases/download/{version}/shellcheck-{version}.{plat}.tar.xz".format( version = version, From f1254ed588ffdfe23cc299ca9a02e84dd01caa0d Mon Sep 17 00:00:00 2001 From: Alex Eagle Date: Wed, 21 Feb 2024 23:02:26 -0800 Subject: [PATCH 6/9] feat: add yamlfmt for YAML (#153) * feat: add yamlfmt for YAML Fixes #152 * chore: green up --- README.md | 2 + docs/format.md | 3 +- example/.clang-format | 1 - example/.golangci.yaml | 2 - example/WORKSPACE.bazel | 3 + example/WORKSPACE.bzlmod | 3 + example/pnpm-lock.yaml | 1739 ++++++--------------------- example/src/config.yaml | 5 + example/tools/BUILD | 14 + format/private/format.sh | 4 + format/private/formatter_binary.bzl | 1 + format/repositories.bzl | 22 + format/test/BUILD.bazel | 5 + format/test/format_test.bats | 8 + 14 files changed, 444 insertions(+), 1368 deletions(-) create mode 100644 example/src/config.yaml diff --git a/README.md b/README.md index 752a6a74..398cce7f 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,7 @@ It is also inspired by . | Swift | [SwiftFormat] (1) | | | TSX | [Prettier] | [ESLint] | | TypeScript | [Prettier] | [ESLint] | +| YAML | [yamlfmt] | | [prettier]: https://prettier.io [google-java-format]: https://github.com/google/google-java-format @@ -71,6 +72,7 @@ It is also inspired by . [clang-format]: https://clang.llvm.org/docs/ClangFormat.html [#112]: https://github.com/aspect-build/rules_lint/issues/112 [vale]: https://vale.sh/ +[yamlfmt]: https://github.com/google/yamlfmt 1. Non-hermetic: requires that a swift toolchain is installed on the machine. See https://github.com/bazelbuild/rules_swift#1-install-swift diff --git a/docs/format.md b/docs/format.md index 37932e90..7acfc98f 100644 --- a/docs/format.md +++ b/docs/format.md @@ -38,7 +38,7 @@ multi_formatter_binary(
 multi_formatter_binary(name, cc, go, java, javascript, jsonnet, kotlin, markdown, protobuf, python,
-                       scala, sh, sql, starlark, swift, terraform)
+                       scala, sh, sql, starlark, swift, terraform, yaml)
 
Produces an executable that aggregates the supplied formatter binaries @@ -64,5 +64,6 @@ Produces an executable that aggregates the supplied formatter binaries | starlark | a binary target that runs buildifier (or another tool with compatible CLI arguments) | Label | optional | None | | swift | a binary target that runs swiftformat (or another tool with compatible CLI arguments) | Label | optional | None | | terraform | a binary target that runs terraform-fmt (or another tool with compatible CLI arguments) | Label | optional | None | +| yaml | a binary target that runs yamlfmt (or another tool with compatible CLI arguments) | Label | optional | None | diff --git a/example/.clang-format b/example/.clang-format index 5a595aaf..4e922287 100644 --- a/example/.clang-format +++ b/example/.clang-format @@ -1,4 +1,3 @@ ---- Language: Cpp # BasedOnStyle: Google AccessModifierOffset: -1 diff --git a/example/.golangci.yaml b/example/.golangci.yaml index 6ea514d0..8ee6d83b 100644 --- a/example/.golangci.yaml +++ b/example/.golangci.yaml @@ -3,14 +3,12 @@ run: timeout: 5m - # Prevent non-hermetic behavior. Per the documentation: # > If invoked with -mod=readonly, the go command is disallowed from the implicit # > automatic updating of go.mod described above. Instead, it fails when any changes # > to go.mod are needed. This setting is most useful to check that go.mod does # > not need updates, such as in a continuous integration and testing system. modules-download-mode: readonly - linters: enable: # Default diff --git a/example/WORKSPACE.bazel b/example/WORKSPACE.bazel index 938d5aeb..230029ab 100644 --- a/example/WORKSPACE.bazel +++ b/example/WORKSPACE.bazel @@ -209,6 +209,7 @@ load( "fetch_shfmt", "fetch_swiftformat", "fetch_terraform", + "fetch_yamlfmt", ) fetch_gofumpt() @@ -227,6 +228,8 @@ fetch_shfmt() fetch_swiftformat() +fetch_yamlfmt() + load("@aspect_rules_lint//lint:ruff.bzl", "fetch_ruff") fetch_ruff() diff --git a/example/WORKSPACE.bzlmod b/example/WORKSPACE.bzlmod index b1a0c106..69c372cd 100644 --- a/example/WORKSPACE.bzlmod +++ b/example/WORKSPACE.bzlmod @@ -13,6 +13,7 @@ load( "fetch_shfmt", "fetch_swiftformat", "fetch_terraform", + "fetch_yamlfmt", ) load("@aspect_rules_lint//lint:ruff.bzl", "fetch_ruff") @@ -34,6 +35,8 @@ fetch_swiftformat() fetch_ruff() +fetch_yamlfmt() + load("@aspect_rules_lint//lint:golangci-lint.bzl", "fetch_golangci_lint") fetch_golangci_lint() diff --git a/example/pnpm-lock.yaml b/example/pnpm-lock.yaml index f31f1922..6ffa353d 100644 --- a/example/pnpm-lock.yaml +++ b/example/pnpm-lock.yaml @@ -1,7 +1,5 @@ lockfileVersion: 5.4 - packageExtensionsChecksum: cd04f6dafd8727306c106c8a0b3c7263 - specifiers: "@typescript-eslint/eslint-plugin": "*" "@typescript-eslint/parser": "*" @@ -10,7 +8,6 @@ specifiers: prettier-plugin-sh: ^0.12.8 prettier-plugin-sql: ^0.14.0 typescript: 4.9.5 - devDependencies: "@typescript-eslint/eslint-plugin": 5.59.1_jsr5owskg7irefkzbmq6cipclm "@typescript-eslint/parser": 5.59.1_tbtvr3a5zwdiktqy4vlmx63mqq @@ -19,41 +16,23 @@ devDependencies: prettier-plugin-sh: 0.12.8_prettier@2.8.8 prettier-plugin-sql: 0.14.0_prettier@2.8.8 typescript: 4.9.5 - packages: /@eslint-community/eslint-utils/4.4.0_eslint@8.39.0: - resolution: - { - integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz'} + 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.39.0 eslint-visitor-keys: 3.4.0 dev: true - /@eslint-community/regexpp/4.5.0: - resolution: - { - integrity: sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/@eslint-community/regexpp/-/regexpp-4.5.0.tgz, - } - engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 } - dev: true - + resolution: {integrity: sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/@eslint-community/regexpp/-/regexpp-4.5.0.tgz'} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true /@eslint/eslintrc/2.0.2: - resolution: - { - integrity: sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/@eslint/eslintrc/-/eslintrc-2.0.2.tgz, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/@eslint/eslintrc/-/eslintrc-2.0.2.tgz'} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4 @@ -67,25 +46,13 @@ packages: transitivePeerDependencies: - supports-color dev: true - /@eslint/js/8.39.0: - resolution: - { - integrity: sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/@eslint/js/-/js-8.39.0.tgz, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } - dev: true - + resolution: {integrity: sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/@eslint/js/-/js-8.39.0.tgz'} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true /@humanwhocodes/config-array/0.11.8: - resolution: - { - integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz, - } - engines: { node: ">=10.10.0" } + resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz'} + engines: {node: ">=10.10.0"} dependencies: "@humanwhocodes/object-schema": 1.2.1 debug: 4.3.4 @@ -93,68 +60,34 @@ packages: transitivePeerDependencies: - supports-color dev: true - /@humanwhocodes/module-importer/1.0.1: - resolution: - { - integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz, - } - engines: { node: ">=12.22" } - dev: true - + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz'} + engines: {node: ">=12.22"} + dev: true /@humanwhocodes/object-schema/1.2.1: - resolution: - { - integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz, - } - dev: true - + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz'} + dev: true /@nodelib/fs.scandir/2.1.5: - resolution: - { - integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz, - } - engines: { node: ">= 8" } + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz'} + engines: {node: ">= 8"} dependencies: "@nodelib/fs.stat": 2.0.5 run-parallel: 1.2.0 dev: true - /@nodelib/fs.stat/2.0.5: - resolution: - { - integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz, - } - engines: { node: ">= 8" } - dev: true - + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz'} + engines: {node: ">= 8"} + dev: true /@nodelib/fs.walk/1.2.8: - resolution: - { - integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz, - } - engines: { node: ">= 8" } + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz'} + engines: {node: ">= 8"} dependencies: "@nodelib/fs.scandir": 2.1.5 fastq: 1.15.0 dev: true - /@pkgr/utils/2.4.2: - resolution: - { - integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==, - } - engines: { node: ^12.20.0 || ^14.18.0 || >=16.0.0 } + resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} dependencies: cross-spawn: 7.0.3 fast-glob: 3.3.1 @@ -163,33 +96,15 @@ packages: picocolors: 1.0.0 tslib: 2.6.2 dev: true - /@types/json-schema/7.0.11: - resolution: - { - integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/@types/json-schema/-/json-schema-7.0.11.tgz, - } - dev: true - + resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/@types/json-schema/-/json-schema-7.0.11.tgz'} + dev: true /@types/semver/7.3.13: - resolution: - { - integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/@types/semver/-/semver-7.3.13.tgz, - } - dev: true - + resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/@types/semver/-/semver-7.3.13.tgz'} + dev: true /@typescript-eslint/eslint-plugin/5.59.1_jsr5owskg7irefkzbmq6cipclm: - resolution: - { - integrity: sha512-AVi0uazY5quFB9hlp2Xv+ogpfpk77xzsgsIEWyVS7uK/c7MZ5tw7ZPbapa0SbfkqE0fsAMkz5UwtgMLVk2BQAg==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.1.tgz, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-AVi0uazY5quFB9hlp2Xv+ogpfpk77xzsgsIEWyVS7uK/c7MZ5tw7ZPbapa0SbfkqE0fsAMkz5UwtgMLVk2BQAg==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.1.tgz'} + 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 @@ -214,15 +129,9 @@ packages: transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/5.59.1_tbtvr3a5zwdiktqy4vlmx63mqq: - resolution: - { - integrity: sha512-nzjFAN8WEu6yPRDizIFyzAfgK7nybPodMNFGNH0M9tei2gYnYszRDqVA0xlnRjkl7Hkx2vYrEdb6fP2a21cG1g==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/@typescript-eslint/parser/-/parser-5.59.1.tgz, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-nzjFAN8WEu6yPRDizIFyzAfgK7nybPodMNFGNH0M9tei2gYnYszRDqVA0xlnRjkl7Hkx2vYrEdb6fP2a21cG1g==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/@typescript-eslint/parser/-/parser-5.59.1.tgz'} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 typescript: "*" @@ -239,28 +148,16 @@ packages: transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.59.1: - resolution: - { - integrity: sha512-mau0waO5frJctPuAzcxiNWqJR5Z8V0190FTSqRw1Q4Euop6+zTwHAf8YIXNwDOT29tyUDrQ65jSg9aTU/H0omA==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/@typescript-eslint/scope-manager/-/scope-manager-5.59.1.tgz, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-mau0waO5frJctPuAzcxiNWqJR5Z8V0190FTSqRw1Q4Euop6+zTwHAf8YIXNwDOT29tyUDrQ65jSg9aTU/H0omA==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/@typescript-eslint/scope-manager/-/scope-manager-5.59.1.tgz'} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: "@typescript-eslint/types": 5.59.1 "@typescript-eslint/visitor-keys": 5.59.1 dev: true - /@typescript-eslint/type-utils/5.59.1_tbtvr3a5zwdiktqy4vlmx63mqq: - resolution: - { - integrity: sha512-ZMWQ+Oh82jWqWzvM3xU+9y5U7MEMVv6GLioM3R5NJk6uvP47kZ7YvlgSHJ7ERD6bOY7Q4uxWm25c76HKEwIjZw==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/@typescript-eslint/type-utils/-/type-utils-5.59.1.tgz, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-ZMWQ+Oh82jWqWzvM3xU+9y5U7MEMVv6GLioM3R5NJk6uvP47kZ7YvlgSHJ7ERD6bOY7Q4uxWm25c76HKEwIjZw==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/@typescript-eslint/type-utils/-/type-utils-5.59.1.tgz'} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: "*" typescript: "*" @@ -277,25 +174,13 @@ packages: transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.59.1: - resolution: - { - integrity: sha512-dg0ICB+RZwHlysIy/Dh1SP+gnXNzwd/KS0JprD3Lmgmdq+dJAJnUPe1gNG34p0U19HvRlGX733d/KqscrGC1Pg==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/@typescript-eslint/types/-/types-5.59.1.tgz, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } - dev: true - + resolution: {integrity: sha512-dg0ICB+RZwHlysIy/Dh1SP+gnXNzwd/KS0JprD3Lmgmdq+dJAJnUPe1gNG34p0U19HvRlGX733d/KqscrGC1Pg==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/@typescript-eslint/types/-/types-5.59.1.tgz'} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true /@typescript-eslint/typescript-estree/5.59.1_typescript@4.9.5: - resolution: - { - integrity: sha512-lYLBBOCsFltFy7XVqzX0Ju+Lh3WPIAWxYpmH/Q7ZoqzbscLiCW00LeYCdsUnnfnj29/s1WovXKh2gwCoinHNGA==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.1.tgz, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-lYLBBOCsFltFy7XVqzX0Ju+Lh3WPIAWxYpmH/Q7ZoqzbscLiCW00LeYCdsUnnfnj29/s1WovXKh2gwCoinHNGA==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.1.tgz'} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: "*" peerDependenciesMeta: @@ -313,15 +198,9 @@ packages: transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils/5.59.1_tbtvr3a5zwdiktqy4vlmx63mqq: - resolution: - { - integrity: sha512-MkTe7FE+K1/GxZkP5gRj3rCztg45bEhsd8HYjczBuYm+qFHP5vtZmjx3B0yUCDotceQ4sHgTyz60Ycl225njmA==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/@typescript-eslint/utils/-/utils-5.59.1.tgz, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-MkTe7FE+K1/GxZkP5gRj3rCztg45bEhsd8HYjczBuYm+qFHP5vtZmjx3B0yUCDotceQ4sHgTyz60Ycl225njmA==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/@typescript-eslint/utils/-/utils-5.59.1.tgz'} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: @@ -338,242 +217,118 @@ packages: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys/5.59.1: - resolution: - { - integrity: sha512-6waEYwBTCWryx0VJmP7JaM4FpipLsFl9CvYf2foAE8Qh/Y0s+bxWysciwOs0LTBED4JCaNxTZ5rGadB14M6dwA==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.1.tgz, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-6waEYwBTCWryx0VJmP7JaM4FpipLsFl9CvYf2foAE8Qh/Y0s+bxWysciwOs0LTBED4JCaNxTZ5rGadB14M6dwA==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.1.tgz'} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: "@typescript-eslint/types": 5.59.1 eslint-visitor-keys: 3.4.0 dev: true - /acorn-jsx/5.3.2_acorn@8.8.2: - resolution: - { - integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz, - } + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz'} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: acorn: 8.8.2 dev: true - /acorn/8.8.2: - resolution: - { - integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/acorn/-/acorn-8.8.2.tgz, - } - engines: { node: ">=0.4.0" } + resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/acorn/-/acorn-8.8.2.tgz'} + engines: {node: ">=0.4.0"} hasBin: true dev: true - /ajv/6.12.6: - resolution: - { - integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/ajv/-/ajv-6.12.6.tgz, - } + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/ajv/-/ajv-6.12.6.tgz'} 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: true - /ansi-regex/5.0.1: - resolution: - { - integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/ansi-regex/-/ansi-regex-5.0.1.tgz, - } - engines: { node: ">=8" } - dev: true - + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/ansi-regex/-/ansi-regex-5.0.1.tgz'} + engines: {node: ">=8"} + dev: true /ansi-styles/4.3.0: - resolution: - { - integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/ansi-styles/-/ansi-styles-4.3.0.tgz, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/ansi-styles/-/ansi-styles-4.3.0.tgz'} + engines: {node: ">=8"} dependencies: color-convert: 2.0.1 dev: true - /argparse/2.0.1: - resolution: - { - integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/argparse/-/argparse-2.0.1.tgz, - } - dev: true - + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/argparse/-/argparse-2.0.1.tgz'} + dev: true /array-union/2.1.0: - resolution: - { - integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/array-union/-/array-union-2.1.0.tgz, - } - engines: { node: ">=8" } - dev: true - + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/array-union/-/array-union-2.1.0.tgz'} + engines: {node: ">=8"} + dev: true /balanced-match/1.0.2: - resolution: - { - integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/balanced-match/-/balanced-match-1.0.2.tgz, - } - dev: true - + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/balanced-match/-/balanced-match-1.0.2.tgz'} + dev: true /big-integer/1.6.51: - resolution: - { - integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==, - } - engines: { node: ">=0.6" } + resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} + engines: {node: ">=0.6"} dev: true - /bplist-parser/0.2.0: - resolution: - { - integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==, - } - engines: { node: ">= 5.10.0" } + resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} + engines: {node: ">= 5.10.0"} dependencies: big-integer: 1.6.51 dev: true - /brace-expansion/1.1.11: - resolution: - { - integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/brace-expansion/-/brace-expansion-1.1.11.tgz, - } + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/brace-expansion/-/brace-expansion-1.1.11.tgz'} dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 dev: true - /braces/3.0.2: - resolution: - { - integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/braces/-/braces-3.0.2.tgz, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/braces/-/braces-3.0.2.tgz'} + engines: {node: ">=8"} dependencies: fill-range: 7.0.1 dev: true - /bundle-name/3.0.0: - resolution: - { - integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} + engines: {node: ">=12"} dependencies: run-applescript: 5.0.0 dev: true - /callsites/3.1.0: - resolution: - { - integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/callsites/-/callsites-3.1.0.tgz, - } - engines: { node: ">=6" } - dev: true - + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/callsites/-/callsites-3.1.0.tgz'} + engines: {node: ">=6"} + dev: true /chalk/4.1.2: - resolution: - { - integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/chalk/-/chalk-4.1.2.tgz, - } - engines: { node: ">=10" } + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/chalk/-/chalk-4.1.2.tgz'} + engines: {node: ">=10"} dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 dev: true - /color-convert/2.0.1: - resolution: - { - integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/color-convert/-/color-convert-2.0.1.tgz, - } - engines: { node: ">=7.0.0" } + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/color-convert/-/color-convert-2.0.1.tgz'} + engines: {node: ">=7.0.0"} dependencies: color-name: 1.1.4 dev: true - /color-name/1.1.4: - resolution: - { - integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/color-name/-/color-name-1.1.4.tgz, - } - dev: true - + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/color-name/-/color-name-1.1.4.tgz'} + dev: true /commander/2.20.3: - resolution: - { - integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, - } + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} dev: true - /concat-map/0.0.1: - resolution: - { - integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/concat-map/-/concat-map-0.0.1.tgz, - } - dev: true - + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/concat-map/-/concat-map-0.0.1.tgz'} + dev: true /cross-spawn/7.0.3: - resolution: - { - integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/cross-spawn/-/cross-spawn-7.0.3.tgz, - } - engines: { node: ">= 8" } + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/cross-spawn/-/cross-spawn-7.0.3.tgz'} + engines: {node: ">= 8"} dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 dev: true - /debug/4.3.4: - resolution: - { - integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/debug/-/debug-4.3.4.tgz, - } - engines: { node: ">=6.0" } + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/debug/-/debug-4.3.4.tgz'} + engines: {node: ">=6.0"} peerDependencies: supports-color: "*" peerDependenciesMeta: @@ -582,133 +337,69 @@ packages: dependencies: ms: 2.1.2 dev: true - /deep-is/0.1.4: - resolution: - { - integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/deep-is/-/deep-is-0.1.4.tgz, - } - dev: true - + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/deep-is/-/deep-is-0.1.4.tgz'} + dev: true /default-browser-id/3.0.0: - resolution: - { - integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} + engines: {node: ">=12"} dependencies: bplist-parser: 0.2.0 untildify: 4.0.0 dev: true - /default-browser/4.0.0: - resolution: - { - integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==, - } - engines: { node: ">=14.16" } + resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} + engines: {node: ">=14.16"} dependencies: bundle-name: 3.0.0 default-browser-id: 3.0.0 execa: 7.2.0 titleize: 3.0.0 dev: true - /define-lazy-prop/3.0.0: - resolution: - { - integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: ">=12"} dev: true - /dir-glob/3.0.1: - resolution: - { - integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/dir-glob/-/dir-glob-3.0.1.tgz, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/dir-glob/-/dir-glob-3.0.1.tgz'} + engines: {node: ">=8"} dependencies: path-type: 4.0.0 dev: true - /discontinuous-range/1.0.0: - resolution: - { - integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==, - } + resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==} dev: true - /doctrine/3.0.0: - resolution: - { - integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/doctrine/-/doctrine-3.0.0.tgz, - } - engines: { node: ">=6.0.0" } + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/doctrine/-/doctrine-3.0.0.tgz'} + engines: {node: ">=6.0.0"} dependencies: esutils: 2.0.3 dev: true - /escape-string-regexp/4.0.0: - resolution: - { - integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz, - } - engines: { node: ">=10" } - dev: true - + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz'} + engines: {node: ">=10"} + dev: true /eslint-scope/5.1.1: - resolution: - { - integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/eslint-scope/-/eslint-scope-5.1.1.tgz, - } - engines: { node: ">=8.0.0" } + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/eslint-scope/-/eslint-scope-5.1.1.tgz'} + engines: {node: ">=8.0.0"} dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 dev: true - /eslint-scope/7.2.0: - resolution: - { - integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/eslint-scope/-/eslint-scope-7.2.0.tgz, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/eslint-scope/-/eslint-scope-7.2.0.tgz'} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 dev: true - /eslint-visitor-keys/3.4.0: - resolution: - { - integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } - dev: true - + resolution: {integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz'} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true /eslint/8.39.0: - resolution: - { - integrity: sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/eslint/-/eslint-8.39.0.tgz, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/eslint/-/eslint-8.39.0.tgz'} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: "@eslint-community/eslint-utils": 4.4.0_eslint@8.39.0 @@ -754,81 +445,41 @@ packages: transitivePeerDependencies: - supports-color dev: true - /espree/9.5.1: - resolution: - { - integrity: sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/espree/-/espree-9.5.1.tgz, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/espree/-/espree-9.5.1.tgz'} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.8.2 acorn-jsx: 5.3.2_acorn@8.8.2 eslint-visitor-keys: 3.4.0 dev: true - /esquery/1.5.0: - resolution: - { - integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/esquery/-/esquery-1.5.0.tgz, - } - engines: { node: ">=0.10" } + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/esquery/-/esquery-1.5.0.tgz'} + engines: {node: ">=0.10"} dependencies: estraverse: 5.3.0 dev: true - /esrecurse/4.3.0: - resolution: - { - integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/esrecurse/-/esrecurse-4.3.0.tgz, - } - engines: { node: ">=4.0" } + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/esrecurse/-/esrecurse-4.3.0.tgz'} + engines: {node: ">=4.0"} dependencies: estraverse: 5.3.0 dev: true - /estraverse/4.3.0: - resolution: - { - integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/estraverse/-/estraverse-4.3.0.tgz, - } - engines: { node: ">=4.0" } - dev: true - + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/estraverse/-/estraverse-4.3.0.tgz'} + engines: {node: ">=4.0"} + dev: true /estraverse/5.3.0: - resolution: - { - integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/estraverse/-/estraverse-5.3.0.tgz, - } - engines: { node: ">=4.0" } - dev: true - + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/estraverse/-/estraverse-5.3.0.tgz'} + engines: {node: ">=4.0"} + dev: true /esutils/2.0.3: - resolution: - { - integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/esutils/-/esutils-2.0.3.tgz, - } - engines: { node: ">=0.10.0" } - dev: true - + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/esutils/-/esutils-2.0.3.tgz'} + engines: {node: ">=0.10.0"} + dev: true /execa/5.1.1: - resolution: - { - integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==, - } - engines: { node: ">=10" } + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: ">=10"} dependencies: cross-spawn: 7.0.3 get-stream: 6.0.1 @@ -840,13 +491,9 @@ packages: signal-exit: 3.0.7 strip-final-newline: 2.0.0 dev: true - /execa/7.2.0: - resolution: - { - integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==, - } - engines: { node: ^14.18.0 || ^16.14.0 || >=18.0.0 } + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} dependencies: cross-spawn: 7.0.3 get-stream: 6.0.1 @@ -858,24 +505,12 @@ packages: signal-exit: 3.0.7 strip-final-newline: 3.0.0 dev: true - /fast-deep-equal/3.1.3: - resolution: - { - integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz, - } - dev: true - + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz'} + dev: true /fast-glob/3.2.12: - resolution: - { - integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/fast-glob/-/fast-glob-3.2.12.tgz, - } - engines: { node: ">=8.6.0" } + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/fast-glob/-/fast-glob-3.2.12.tgz'} + engines: {node: ">=8.6.0"} dependencies: "@nodelib/fs.stat": 2.0.5 "@nodelib/fs.walk": 1.2.8 @@ -883,13 +518,9 @@ packages: merge2: 1.4.1 micromatch: 4.0.5 dev: true - /fast-glob/3.3.1: - resolution: - { - integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==, - } - engines: { node: ">=8.6.0" } + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + engines: {node: ">=8.6.0"} dependencies: "@nodelib/fs.stat": 2.0.5 "@nodelib/fs.walk": 1.2.8 @@ -897,151 +528,71 @@ packages: merge2: 1.4.1 micromatch: 4.0.5 dev: true - /fast-json-stable-stringify/2.1.0: - resolution: - { - integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz, - } - dev: true - + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz'} + dev: true /fast-levenshtein/2.0.6: - resolution: - { - integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz, - } - dev: true - + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz'} + dev: true /fastq/1.15.0: - resolution: - { - integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/fastq/-/fastq-1.15.0.tgz, - } + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/fastq/-/fastq-1.15.0.tgz'} dependencies: reusify: 1.0.4 dev: true - /file-entry-cache/6.0.1: - resolution: - { - integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz, - } - engines: { node: ^10.12.0 || >=12.0.0 } + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz'} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.0.4 dev: true - /fill-range/7.0.1: - resolution: - { - integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/fill-range/-/fill-range-7.0.1.tgz, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/fill-range/-/fill-range-7.0.1.tgz'} + engines: {node: ">=8"} dependencies: to-regex-range: 5.0.1 dev: true - /find-up/5.0.0: - resolution: - { - integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/find-up/-/find-up-5.0.0.tgz, - } - engines: { node: ">=10" } + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/find-up/-/find-up-5.0.0.tgz'} + engines: {node: ">=10"} dependencies: locate-path: 6.0.0 path-exists: 4.0.0 dev: true - /flat-cache/3.0.4: - resolution: - { - integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/flat-cache/-/flat-cache-3.0.4.tgz, - } - engines: { node: ^10.12.0 || >=12.0.0 } + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/flat-cache/-/flat-cache-3.0.4.tgz'} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: flatted: 3.2.7 rimraf: 3.0.2 dev: true - /flatted/3.2.7: - resolution: - { - integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/flatted/-/flatted-3.2.7.tgz, - } - dev: true - + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/flatted/-/flatted-3.2.7.tgz'} + dev: true /fs.realpath/1.0.0: - resolution: - { - integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/fs.realpath/-/fs.realpath-1.0.0.tgz, - } - dev: true - + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/fs.realpath/-/fs.realpath-1.0.0.tgz'} + dev: true /get-stdin/8.0.0: - resolution: - { - integrity: sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==, - } - engines: { node: ">=10" } + resolution: {integrity: sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==} + engines: {node: ">=10"} dev: true - /get-stream/6.0.1: - resolution: - { - integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==, - } - engines: { node: ">=10" } + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: ">=10"} dev: true - /glob-parent/5.1.2: - resolution: - { - integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/glob-parent/-/glob-parent-5.1.2.tgz, - } - engines: { node: ">= 6" } + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/glob-parent/-/glob-parent-5.1.2.tgz'} + engines: {node: ">= 6"} dependencies: is-glob: 4.0.3 dev: true - /glob-parent/6.0.2: - resolution: - { - integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/glob-parent/-/glob-parent-6.0.2.tgz, - } - engines: { node: ">=10.13.0" } + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/glob-parent/-/glob-parent-6.0.2.tgz'} + engines: {node: ">=10.13.0"} dependencies: is-glob: 4.0.3 dev: true - /glob/7.2.3: - resolution: - { - integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/glob/-/glob-7.2.3.tgz, - } + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/glob/-/glob-7.2.3.tgz'} dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -1050,27 +601,15 @@ packages: once: 1.4.0 path-is-absolute: 1.0.1 dev: true - /globals/13.20.0: - resolution: - { - integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/globals/-/globals-13.20.0.tgz, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/globals/-/globals-13.20.0.tgz'} + engines: {node: ">=8"} dependencies: type-fest: 0.20.2 dev: true - /globby/11.1.0: - resolution: - { - integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/globby/-/globby-11.1.0.tgz, - } - engines: { node: ">=10" } + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/globby/-/globby-11.1.0.tgz'} + engines: {node: ">=10"} dependencies: array-union: 2.1.0 dir-glob: 3.0.1 @@ -1079,390 +618,178 @@ packages: merge2: 1.4.1 slash: 3.0.0 dev: true - /grapheme-splitter/1.0.4: - resolution: - { - integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz, - } - dev: true - + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz'} + dev: true /has-flag/4.0.0: - resolution: - { - integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/has-flag/-/has-flag-4.0.0.tgz, - } - engines: { node: ">=8" } - dev: true - + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/has-flag/-/has-flag-4.0.0.tgz'} + engines: {node: ">=8"} + dev: true /human-signals/2.1.0: - resolution: - { - integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==, - } - engines: { node: ">=10.17.0" } + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: ">=10.17.0"} dev: true - /human-signals/4.3.1: - resolution: - { - integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==, - } - engines: { node: ">=14.18.0" } + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} + engines: {node: ">=14.18.0"} dev: true - /ignore/5.2.4: - resolution: - { - integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/ignore/-/ignore-5.2.4.tgz, - } - engines: { node: ">= 4" } - dev: true - + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/ignore/-/ignore-5.2.4.tgz'} + engines: {node: ">= 4"} + dev: true /import-fresh/3.3.0: - resolution: - { - integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/import-fresh/-/import-fresh-3.3.0.tgz, - } - engines: { node: ">=6" } + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/import-fresh/-/import-fresh-3.3.0.tgz'} + engines: {node: ">=6"} dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 dev: true - /imurmurhash/0.1.4: - resolution: - { - integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/imurmurhash/-/imurmurhash-0.1.4.tgz, - } - engines: { node: ">=0.8.19" } - dev: true - + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/imurmurhash/-/imurmurhash-0.1.4.tgz'} + engines: {node: ">=0.8.19"} + dev: true /inflight/1.0.6: - resolution: - { - integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/inflight/-/inflight-1.0.6.tgz, - } + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/inflight/-/inflight-1.0.6.tgz'} dependencies: once: 1.4.0 wrappy: 1.0.2 dev: true - /inherits/2.0.4: - resolution: - { - integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/inherits/-/inherits-2.0.4.tgz, - } - dev: true - + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/inherits/-/inherits-2.0.4.tgz'} + dev: true /is-docker/2.2.1: - resolution: - { - integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: ">=8"} hasBin: true dev: true - /is-docker/3.0.0: - resolution: - { - integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} hasBin: true dev: true - /is-extglob/2.1.1: - resolution: - { - integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/is-extglob/-/is-extglob-2.1.1.tgz, - } - engines: { node: ">=0.10.0" } - dev: true - + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/is-extglob/-/is-extglob-2.1.1.tgz'} + engines: {node: ">=0.10.0"} + dev: true /is-glob/4.0.3: - resolution: - { - integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/is-glob/-/is-glob-4.0.3.tgz, - } - engines: { node: ">=0.10.0" } + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/is-glob/-/is-glob-4.0.3.tgz'} + engines: {node: ">=0.10.0"} dependencies: is-extglob: 2.1.1 dev: true - /is-inside-container/1.0.0: - resolution: - { - integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==, - } - engines: { node: ">=14.16" } + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: ">=14.16"} hasBin: true dependencies: is-docker: 3.0.0 dev: true - /is-number/7.0.0: - resolution: - { - integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/is-number/-/is-number-7.0.0.tgz, - } - engines: { node: ">=0.12.0" } - dev: true - + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/is-number/-/is-number-7.0.0.tgz'} + engines: {node: ">=0.12.0"} + dev: true /is-path-inside/3.0.3: - resolution: - { - integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/is-path-inside/-/is-path-inside-3.0.3.tgz, - } - engines: { node: ">=8" } - dev: true - + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/is-path-inside/-/is-path-inside-3.0.3.tgz'} + engines: {node: ">=8"} + dev: true /is-stream/2.0.1: - resolution: - { - integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: ">=8"} dev: true - /is-stream/3.0.0: - resolution: - { - integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /is-wsl/2.2.0: - resolution: - { - integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: ">=8"} dependencies: is-docker: 2.2.1 dev: true - /isexe/2.0.0: - resolution: - { - integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/isexe/-/isexe-2.0.0.tgz, - } - dev: true - + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/isexe/-/isexe-2.0.0.tgz'} + dev: true /js-sdsl/4.4.0: - resolution: - { - integrity: sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/js-sdsl/-/js-sdsl-4.4.0.tgz, - } - dev: true - + resolution: {integrity: sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/js-sdsl/-/js-sdsl-4.4.0.tgz'} + dev: true /js-yaml/4.1.0: - resolution: - { - integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/js-yaml/-/js-yaml-4.1.0.tgz, - } + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/js-yaml/-/js-yaml-4.1.0.tgz'} hasBin: true dependencies: argparse: 2.0.1 dev: true - /json-schema-traverse/0.4.1: - resolution: - { - integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz, - } - dev: true - + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz'} + dev: true /json-stable-stringify-without-jsonify/1.0.1: - resolution: - { - integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz, - } - dev: true - + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz'} + dev: true /levn/0.4.1: - resolution: - { - integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/levn/-/levn-0.4.1.tgz, - } - engines: { node: ">= 0.8.0" } + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/levn/-/levn-0.4.1.tgz'} + engines: {node: ">= 0.8.0"} dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 dev: true - /locate-path/6.0.0: - resolution: - { - integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/locate-path/-/locate-path-6.0.0.tgz, - } - engines: { node: ">=10" } + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/locate-path/-/locate-path-6.0.0.tgz'} + engines: {node: ">=10"} dependencies: p-locate: 5.0.0 dev: true - /lodash.merge/4.6.2: - resolution: - { - integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/lodash.merge/-/lodash.merge-4.6.2.tgz, - } - dev: true - + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/lodash.merge/-/lodash.merge-4.6.2.tgz'} + dev: true /lru-cache/6.0.0: - resolution: - { - integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/lru-cache/-/lru-cache-6.0.0.tgz, - } - engines: { node: ">=10" } + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/lru-cache/-/lru-cache-6.0.0.tgz'} + engines: {node: ">=10"} dependencies: yallist: 4.0.0 dev: true - /merge-stream/2.0.0: - resolution: - { - integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, - } + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} dev: true - /merge2/1.4.1: - resolution: - { - integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/merge2/-/merge2-1.4.1.tgz, - } - engines: { node: ">= 8" } - dev: true - + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/merge2/-/merge2-1.4.1.tgz'} + engines: {node: ">= 8"} + dev: true /micromatch/4.0.5: - resolution: - { - integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/micromatch/-/micromatch-4.0.5.tgz, - } - engines: { node: ">=8.6" } + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/micromatch/-/micromatch-4.0.5.tgz'} + engines: {node: ">=8.6"} dependencies: braces: 3.0.2 picomatch: 2.3.1 dev: true - /mimic-fn/2.1.0: - resolution: - { - integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, - } - engines: { node: ">=6" } + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: ">=6"} dev: true - /mimic-fn/4.0.0: - resolution: - { - integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: ">=12"} dev: true - /minimatch/3.1.2: - resolution: - { - integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/minimatch/-/minimatch-3.1.2.tgz, - } + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/minimatch/-/minimatch-3.1.2.tgz'} dependencies: brace-expansion: 1.1.11 dev: true - /moo/0.5.2: - resolution: - { - integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==, - } + resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==} dev: true - /ms/2.1.2: - resolution: - { - integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/ms/-/ms-2.1.2.tgz, - } - dev: true - + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/ms/-/ms-2.1.2.tgz'} + dev: true /mvdan-sh/0.10.1: - resolution: - { - integrity: sha512-kMbrH0EObaKmK3nVRKUIIya1dpASHIEusM13S4V1ViHFuxuNxCo+arxoa6j/dbV22YBGjl7UKJm9QQKJ2Crzhg==, - } + resolution: {integrity: sha512-kMbrH0EObaKmK3nVRKUIIya1dpASHIEusM13S4V1ViHFuxuNxCo+arxoa6j/dbV22YBGjl7UKJm9QQKJ2Crzhg==} dev: true - /natural-compare-lite/1.4.0: - resolution: - { - integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz, - } - dev: true - + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz'} + dev: true /natural-compare/1.4.0: - resolution: - { - integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/natural-compare/-/natural-compare-1.4.0.tgz, - } - dev: true - + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/natural-compare/-/natural-compare-1.4.0.tgz'} + dev: true /nearley/2.20.1: - resolution: - { - integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==, - } + resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==} hasBin: true dependencies: commander: 2.20.3 @@ -1470,89 +797,53 @@ packages: railroad-diagrams: 1.0.0 randexp: 0.4.6 dev: true - /node-sql-parser/4.11.0: - resolution: - { - integrity: sha512-ElheoPibjc7IVyRdsORgkzJi0DWm3f0LYSsm/eJIeUt3M/csDLTblLDR4zl5Qi7jmVjJ1KpEkPKSbgVGEzU5Xw==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-ElheoPibjc7IVyRdsORgkzJi0DWm3f0LYSsm/eJIeUt3M/csDLTblLDR4zl5Qi7jmVjJ1KpEkPKSbgVGEzU5Xw==} + engines: {node: ">=8"} dependencies: big-integer: 1.6.51 dev: true - /npm-run-path/4.0.1: - resolution: - { - integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: ">=8"} dependencies: path-key: 3.1.1 dev: true - /npm-run-path/5.1.0: - resolution: - { - integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: path-key: 4.0.0 dev: true - /once/1.4.0: - resolution: - { - integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/once/-/once-1.4.0.tgz, - } + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/once/-/once-1.4.0.tgz'} dependencies: wrappy: 1.0.2 dev: true - /onetime/5.1.2: - resolution: - { - integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, - } - engines: { node: ">=6" } + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: ">=6"} dependencies: mimic-fn: 2.1.0 dev: true - /onetime/6.0.0: - resolution: - { - integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: ">=12"} dependencies: mimic-fn: 4.0.0 dev: true - /open/9.1.0: - resolution: - { - integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==, - } - engines: { node: ">=14.16" } + resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} + engines: {node: ">=14.16"} dependencies: default-browser: 4.0.0 define-lazy-prop: 3.0.0 is-inside-container: 1.0.0 is-wsl: 2.2.0 dev: true - /optionator/0.9.1: - resolution: - { - integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/optionator/-/optionator-0.9.1.tgz, - } - engines: { node: ">= 0.8.0" } + resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/optionator/-/optionator-0.9.1.tgz'} + engines: {node: ">= 0.8.0"} dependencies: deep-is: 0.1.4 fast-levenshtein: 2.0.6 @@ -1561,124 +852,58 @@ packages: type-check: 0.4.0 word-wrap: 1.2.3 dev: true - /p-limit/3.1.0: - resolution: - { - integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/p-limit/-/p-limit-3.1.0.tgz, - } - engines: { node: ">=10" } + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/p-limit/-/p-limit-3.1.0.tgz'} + engines: {node: ">=10"} dependencies: yocto-queue: 0.1.0 dev: true - /p-locate/5.0.0: - resolution: - { - integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/p-locate/-/p-locate-5.0.0.tgz, - } - engines: { node: ">=10" } + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/p-locate/-/p-locate-5.0.0.tgz'} + engines: {node: ">=10"} dependencies: p-limit: 3.1.0 dev: true - /parent-module/1.0.1: - resolution: - { - integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/parent-module/-/parent-module-1.0.1.tgz, - } - engines: { node: ">=6" } + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/parent-module/-/parent-module-1.0.1.tgz'} + engines: {node: ">=6"} dependencies: callsites: 3.1.0 dev: true - /path-exists/4.0.0: - resolution: - { - integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/path-exists/-/path-exists-4.0.0.tgz, - } - engines: { node: ">=8" } - dev: true - + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/path-exists/-/path-exists-4.0.0.tgz'} + engines: {node: ">=8"} + dev: true /path-is-absolute/1.0.1: - resolution: - { - integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz, - } - engines: { node: ">=0.10.0" } - dev: true - + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz'} + engines: {node: ">=0.10.0"} + dev: true /path-key/3.1.1: - resolution: - { - integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/path-key/-/path-key-3.1.1.tgz, - } - engines: { node: ">=8" } - dev: true - + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/path-key/-/path-key-3.1.1.tgz'} + engines: {node: ">=8"} + dev: true /path-key/4.0.0: - resolution: - { - integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: ">=12"} dev: true - /path-type/4.0.0: - resolution: - { - integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/path-type/-/path-type-4.0.0.tgz, - } - engines: { node: ">=8" } - dev: true - + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/path-type/-/path-type-4.0.0.tgz'} + engines: {node: ">=8"} + dev: true /picocolors/1.0.0: - resolution: - { - integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, - } + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} dev: true - /picomatch/2.3.1: - resolution: - { - integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/picomatch/-/picomatch-2.3.1.tgz, - } - engines: { node: ">=8.6" } - dev: true - + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/picomatch/-/picomatch-2.3.1.tgz'} + engines: {node: ">=8.6"} + dev: true /prelude-ls/1.2.1: - resolution: - { - integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/prelude-ls/-/prelude-ls-1.2.1.tgz, - } - engines: { node: ">= 0.8.0" } - dev: true - + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/prelude-ls/-/prelude-ls-1.2.1.tgz'} + engines: {node: ">= 0.8.0"} + dev: true /prettier-plugin-sh/0.12.8_prettier@2.8.8: - resolution: - { - integrity: sha512-VOq8h2Gn5UzrCIKm4p/nAScXJbN09HdyFDknAcxt6Qu/tv/juu9bahxSrcnM9XWYA+Spz1F1ANJ4LhfwB7+Q1Q==, - } - engines: { node: ^12.20.0 || ^14.18.0 || >=16.0.0 } + resolution: {integrity: sha512-VOq8h2Gn5UzrCIKm4p/nAScXJbN09HdyFDknAcxt6Qu/tv/juu9bahxSrcnM9XWYA+Spz1F1ANJ4LhfwB7+Q1Q==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} peerDependencies: prettier: ^2.0.0 dependencies: @@ -1687,13 +912,9 @@ packages: sh-syntax: 0.3.7 synckit: 0.8.5 dev: true - /prettier-plugin-sql/0.14.0_prettier@2.8.8: - resolution: - { - integrity: sha512-dRgINgNd3ZhBDuO/+EFalJjSlAqNXvXv9XDtSCeMufXaP6O64HHLBo1Szo+l+cfvXFxwvkTSGrS+sjpEpSchNA==, - } - engines: { node: ^12.20.0 || ^14.18.0 || >=16.0.0 } + resolution: {integrity: sha512-dRgINgNd3ZhBDuO/+EFalJjSlAqNXvXv9XDtSCeMufXaP6O64HHLBo1Szo+l+cfvXFxwvkTSGrS+sjpEpSchNA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} peerDependencies: prettier: ^2.0.0 dependencies: @@ -1702,13 +923,9 @@ packages: sql-formatter: 12.2.4 tslib: 2.6.2 dev: true - /prettier/2.8.8_whkmnyg4gs3djzcukwmxxipg5m: - resolution: - { - integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==, - } - engines: { node: ">=10.13.0" } + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: ">=10.13.0"} hasBin: true peerDependencies: prettier-plugin-sh: "*" @@ -1717,397 +934,191 @@ packages: prettier-plugin-sh: 0.12.8_prettier@2.8.8 prettier-plugin-sql: 0.14.0_prettier@2.8.8 dev: true - /punycode/2.3.0: - resolution: - { - integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/punycode/-/punycode-2.3.0.tgz, - } - engines: { node: ">=6" } - dev: true - + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/punycode/-/punycode-2.3.0.tgz'} + engines: {node: ">=6"} + dev: true /queue-microtask/1.2.3: - resolution: - { - integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/queue-microtask/-/queue-microtask-1.2.3.tgz, - } - dev: true - + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/queue-microtask/-/queue-microtask-1.2.3.tgz'} + dev: true /railroad-diagrams/1.0.0: - resolution: - { - integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==, - } + resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==} dev: true - /randexp/0.4.6: - resolution: - { - integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==, - } - engines: { node: ">=0.12" } + resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==} + engines: {node: ">=0.12"} dependencies: discontinuous-range: 1.0.0 ret: 0.1.15 dev: true - /resolve-from/4.0.0: - resolution: - { - integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/resolve-from/-/resolve-from-4.0.0.tgz, - } - engines: { node: ">=4" } - dev: true - + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/resolve-from/-/resolve-from-4.0.0.tgz'} + engines: {node: ">=4"} + dev: true /ret/0.1.15: - resolution: - { - integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==, - } - engines: { node: ">=0.12" } + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} + engines: {node: ">=0.12"} dev: true - /reusify/1.0.4: - resolution: - { - integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/reusify/-/reusify-1.0.4.tgz, - } - engines: { iojs: ">=1.0.0", node: ">=0.10.0" } - dev: true - + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/reusify/-/reusify-1.0.4.tgz'} + engines: {iojs: ">=1.0.0", node: ">=0.10.0"} + dev: true /rimraf/3.0.2: - resolution: - { - integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/rimraf/-/rimraf-3.0.2.tgz, - } + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/rimraf/-/rimraf-3.0.2.tgz'} hasBin: true dependencies: glob: 7.2.3 dev: true - /run-applescript/5.0.0: - resolution: - { - integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} + engines: {node: ">=12"} dependencies: execa: 5.1.1 dev: true - /run-parallel/1.2.0: - resolution: - { - integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/run-parallel/-/run-parallel-1.2.0.tgz, - } + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/run-parallel/-/run-parallel-1.2.0.tgz'} dependencies: queue-microtask: 1.2.3 dev: true - /semver/7.5.0: - resolution: - { - integrity: sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/semver/-/semver-7.5.0.tgz, - } - engines: { node: ">=10" } + resolution: {integrity: sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/semver/-/semver-7.5.0.tgz'} + engines: {node: ">=10"} hasBin: true dependencies: lru-cache: 6.0.0 dev: true - /sh-syntax/0.3.7: - resolution: - { - integrity: sha512-xIB/uRniZ9urxAuXp1Ouh/BKSI1VK8RSqfwGj7cV57HvGrFo3vHdJfv8Tdp/cVcxJgXQTkmHr5mG5rqJW8r4wQ==, - } - engines: { node: ^12.20.0 || ^14.18.0 || >=16.0.0 } + resolution: {integrity: sha512-xIB/uRniZ9urxAuXp1Ouh/BKSI1VK8RSqfwGj7cV57HvGrFo3vHdJfv8Tdp/cVcxJgXQTkmHr5mG5rqJW8r4wQ==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} dependencies: tslib: 2.6.2 dev: true - /shebang-command/2.0.0: - resolution: - { - integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/shebang-command/-/shebang-command-2.0.0.tgz, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/shebang-command/-/shebang-command-2.0.0.tgz'} + engines: {node: ">=8"} dependencies: shebang-regex: 3.0.0 dev: true - /shebang-regex/3.0.0: - resolution: - { - integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/shebang-regex/-/shebang-regex-3.0.0.tgz, - } - engines: { node: ">=8" } - dev: true - + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/shebang-regex/-/shebang-regex-3.0.0.tgz'} + engines: {node: ">=8"} + dev: true /signal-exit/3.0.7: - resolution: - { - integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, - } + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true - /slash/3.0.0: - resolution: - { - integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/slash/-/slash-3.0.0.tgz, - } - engines: { node: ">=8" } - dev: true - + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/slash/-/slash-3.0.0.tgz'} + engines: {node: ">=8"} + dev: true /sql-formatter/12.2.4: - resolution: - { - integrity: sha512-Qj45LEHSfgrdYDOrAtIkR8SdS10SWcqCIM2WZwQwMKF2v9sM0K2dlThWPS7eYCUrhttZIrU1WwuIwHk7MjsWOw==, - } + resolution: {integrity: sha512-Qj45LEHSfgrdYDOrAtIkR8SdS10SWcqCIM2WZwQwMKF2v9sM0K2dlThWPS7eYCUrhttZIrU1WwuIwHk7MjsWOw==} hasBin: true dependencies: argparse: 2.0.1 get-stdin: 8.0.0 nearley: 2.20.1 dev: true - /strip-ansi/6.0.1: - resolution: - { - integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/strip-ansi/-/strip-ansi-6.0.1.tgz, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/strip-ansi/-/strip-ansi-6.0.1.tgz'} + engines: {node: ">=8"} dependencies: ansi-regex: 5.0.1 dev: true - /strip-final-newline/2.0.0: - resolution: - { - integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==, - } - engines: { node: ">=6" } + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: ">=6"} dev: true - /strip-final-newline/3.0.0: - resolution: - { - integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: ">=12"} dev: true - /strip-json-comments/3.1.1: - resolution: - { - integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz, - } - engines: { node: ">=8" } - dev: true - + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz'} + engines: {node: ">=8"} + dev: true /supports-color/7.2.0: - resolution: - { - integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/supports-color/-/supports-color-7.2.0.tgz, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/supports-color/-/supports-color-7.2.0.tgz'} + engines: {node: ">=8"} dependencies: has-flag: 4.0.0 dev: true - /synckit/0.8.5: - resolution: - { - integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==, - } - engines: { node: ^14.18.0 || >=16.0.0 } + resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} + engines: {node: ^14.18.0 || >=16.0.0} dependencies: "@pkgr/utils": 2.4.2 tslib: 2.6.2 dev: true - /text-table/0.2.0: - resolution: - { - integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/text-table/-/text-table-0.2.0.tgz, - } - dev: true - + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/text-table/-/text-table-0.2.0.tgz'} + dev: true /titleize/3.0.0: - resolution: - { - integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} + engines: {node: ">=12"} dev: true - /to-regex-range/5.0.1: - resolution: - { - integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/to-regex-range/-/to-regex-range-5.0.1.tgz, - } - engines: { node: ">=8.0" } + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/to-regex-range/-/to-regex-range-5.0.1.tgz'} + engines: {node: ">=8.0"} dependencies: is-number: 7.0.0 dev: true - /tslib/1.14.1: - resolution: - { - integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/tslib/-/tslib-1.14.1.tgz, - } - dev: true - + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/tslib/-/tslib-1.14.1.tgz'} + dev: true /tslib/2.6.2: - resolution: - { - integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==, - } + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} dev: true - /tsutils/3.21.0_typescript@4.9.5: - resolution: - { - integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/tsutils/-/tsutils-3.21.0.tgz, - } - engines: { node: ">= 6" } + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/tsutils/-/tsutils-3.21.0.tgz'} + 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: true - /type-check/0.4.0: - resolution: - { - integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/type-check/-/type-check-0.4.0.tgz, - } - engines: { node: ">= 0.8.0" } + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/type-check/-/type-check-0.4.0.tgz'} + engines: {node: ">= 0.8.0"} dependencies: prelude-ls: 1.2.1 dev: true - /type-fest/0.20.2: - resolution: - { - integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/type-fest/-/type-fest-0.20.2.tgz, - } - engines: { node: ">=10" } - dev: true - + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/type-fest/-/type-fest-0.20.2.tgz'} + engines: {node: ">=10"} + dev: true /typescript/4.9.5: - resolution: - { - integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==, - } - engines: { node: ">=4.2.0" } + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} + engines: {node: ">=4.2.0"} hasBin: true dev: true - /untildify/4.0.0: - resolution: - { - integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} + engines: {node: ">=8"} dev: true - /uri-js/4.4.1: - resolution: - { - integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/uri-js/-/uri-js-4.4.1.tgz, - } + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/uri-js/-/uri-js-4.4.1.tgz'} dependencies: punycode: 2.3.0 dev: true - /which/2.0.2: - resolution: - { - integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/which/-/which-2.0.2.tgz, - } - engines: { node: ">= 8" } + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/which/-/which-2.0.2.tgz'} + engines: {node: ">= 8"} hasBin: true dependencies: isexe: 2.0.0 dev: true - /word-wrap/1.2.3: - resolution: - { - integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/word-wrap/-/word-wrap-1.2.3.tgz, - } - engines: { node: ">=0.10.0" } - dev: true - + resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/word-wrap/-/word-wrap-1.2.3.tgz'} + engines: {node: ">=0.10.0"} + dev: true /wrappy/1.0.2: - resolution: - { - integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/wrappy/-/wrappy-1.0.2.tgz, - } - dev: true - + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/wrappy/-/wrappy-1.0.2.tgz'} + dev: true /yallist/4.0.0: - resolution: - { - integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/yallist/-/yallist-4.0.0.tgz, - } - dev: true - + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/yallist/-/yallist-4.0.0.tgz'} + dev: true /yocto-queue/0.1.0: - resolution: - { - integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, - registry: https://registry.npmjs.com/, - tarball: https://registry.npmjs.com/yocto-queue/-/yocto-queue-0.1.0.tgz, - } - engines: { node: ">=10" } + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, registry: 'https://registry.npmjs.com/', tarball: 'https://registry.npmjs.com/yocto-queue/-/yocto-queue-0.1.0.tgz'} + engines: {node: ">=10"} dev: true diff --git a/example/src/config.yaml b/example/src/config.yaml new file mode 100644 index 00000000..4174cabb --- /dev/null +++ b/example/src/config.yaml @@ -0,0 +1,5 @@ +front matter: yes +--- +some-key: + - a + - list diff --git a/example/tools/BUILD b/example/tools/BUILD index 22a8566c..5e788c38 100644 --- a/example/tools/BUILD +++ b/example/tools/BUILD @@ -110,6 +110,19 @@ java_binary( runtime_deps = ["@maven//:org_scalameta_scalafmt_cli_2_13"], ) +native_binary( + name = "yamlfmt", + src = select( + { + "@bazel_tools//src/conditions:linux_x86_64": "@yamlfmt_Linux_x86_64//:yamlfmt", + "@bazel_tools//src/conditions:linux_aarch64": "@yamlfmt_Linux_arm64//:yamlfmt", + "@bazel_tools//src/conditions:darwin_x86_64": "@yamlfmt_Darwin_x86_64//:yamlfmt", + "@bazel_tools//src/conditions:darwin_arm64": "@yamlfmt_Darwin_arm64//:yamlfmt", + }, + ), + out = "yamlfmt", +) + # We can test that it works with: # bazel run :flake8 -- --help py_console_script_binary( @@ -185,4 +198,5 @@ multi_formatter_binary( starlark = "@buildifier_prebuilt//:buildifier", swift = ":swiftformat", terraform = ":terraform", + yaml = ":yamlfmt", ) diff --git a/format/private/format.sh b/format/private/format.sh index 46935376..efd706e4 100755 --- a/format/private/format.sh +++ b/format/private/format.sh @@ -54,6 +54,7 @@ function ls-files { 'Swift') patterns=('*.swift') ;; 'TSX') patterns=('*.tsx') ;; 'TypeScript') patterns=('*.ts' '*.cts' '*.mts') ;; + 'YAML') patterns=('*.yml' '*.yaml' '.clang-format' '.clang-tidy' '.gemrc') ;; # Note: terraform fmt cannot handle all HCL files such as .terraform.lock # "Only .tf and .tfvars files can be processed with terraform fmt" @@ -115,6 +116,7 @@ case "$mode" in jsonnetmode="--test" scalamode="--test" clangformatmode="--style=file --fallback-style=none --dry-run -Werror" + yamlfmtmode="-lint" ;; fix) swiftmode="" @@ -133,6 +135,7 @@ case "$mode" in jsonnetmode="--in-place" scalamode="" clangformatmode="-style=file --fallback-style=none -i" + yamlfmtmode="" ;; *) echo >&2 "unknown mode $mode";; esac @@ -220,3 +223,4 @@ run-format C++ clang-format "$(rlocation {{clang-format}})" "$clangformatmode" $ run-format Shell shfmt "$(rlocation {{shfmt}})" "$shfmtmode" $@ run-format Swift swiftfmt "$(rlocation {{swiftformat}})" "$swiftmode" $@ run-format 'Protocol Buffer' buf "$(rlocation {{buf}})" "$bufmode" $@ +run-format YAML yamlfmt "$(rlocation {{yamlfmt}})" "$yamlfmtmode" $@ \ No newline at end of file diff --git a/format/private/formatter_binary.bzl b/format/private/formatter_binary.bzl index ab55c2ea..f2b5418b 100644 --- a/format/private/formatter_binary.bzl +++ b/format/private/formatter_binary.bzl @@ -19,6 +19,7 @@ TOOLS = { "sh": "shfmt", "protobuf": "buf", "cc": "clang-format", + "yaml": "yamlfmt", } def _formatter_binary_impl(ctx): diff --git a/format/repositories.bzl b/format/repositories.bzl index d8ab96a9..4d4eaf19 100644 --- a/format/repositories.bzl +++ b/format/repositories.bzl @@ -196,3 +196,25 @@ def fetch_gofumpt(): "https://github.com/mvdan/gofumpt/releases/download/v0.5.0/gofumpt_v0.5.0_darwin_arm64", ], ) + +# From https://github.com/google/yamlfmt/releases/download/v0.11.0/checksums.txt +_yamlfmt_shas = { + "8211a9e15f6abfc0bfad621414d3aeeac0d4b6bf4e6b8781fb19fb016c2740b7": "yamlfmt_0.11.0_Darwin_arm64.tar.gz", + "76aaa47bb4778fbd83113453c569c46272c608d9a416f73a237822c78d686af2": "yamlfmt_0.11.0_Darwin_x86_64.tar.gz", + "76da015f98e34f29216eab8b6155e419c0a2b623c466e997299ad5c225207992": "yamlfmt_0.11.0_Linux_arm64.tar.gz", + "8d58cc5baffda8fd3ad0da110c85e93f597403210686d9d3af0bb26ee21519c5": "yamlfmt_0.11.0_Linux_i386.tar.gz", + "8579868c3fbb0deca2573586e07d9912b5f07a302fb2bf26dac10791328c9998": "yamlfmt_0.11.0_Linux_x86_64.tar.gz", + "9ab6e2ad02118daf5f2d570268eba98837a5350e141539f0f844c4f8eed5d2ea": "yamlfmt_0.11.0_Windows_arm64.tar.gz", + "9d2598d90cfcdadb61b9843fb446af72a6ce7e7778ef4682c9a40411b746c3ef": "yamlfmt_0.11.0_Windows_i386.tar.gz", + "ca2327f2fb842b42b0607b4e7da7a85d87380dc8625aad955819c40bed1882e8": "yamlfmt_0.11.0_Windows_x86_64.tar.gz", +} + +def fetch_yamlfmt(): + for sha256, filename in _yamlfmt_shas.items(): + reponame = filename.removesuffix(".tar.gz").replace("0.11.0_", "") + http_archive( + name = reponame, + build_file_content = "exports_files([\"yamlfmt\"])", + sha256 = sha256, + urls = ["https://github.com/google/yamlfmt/releases/download/v0.11.0/{}".format(filename)], + ) diff --git a/format/test/BUILD.bazel b/format/test/BUILD.bazel index ae47525d..71ef5c32 100644 --- a/format/test/BUILD.bazel +++ b/format/test/BUILD.bazel @@ -102,3 +102,8 @@ multi_formatter_binary( name = "format_protobuf", protobuf = ":mock_buf.sh", ) + +multi_formatter_binary( + name = "format_yaml", + yaml = ":mock_yamlfmt.sh", +) diff --git a/format/test/format_test.bats b/format/test/format_test.bats index be1d35f1..23d10a09 100644 --- a/format/test/format_test.bats +++ b/format/test/format_test.bats @@ -146,3 +146,11 @@ bats_load_library "bats-assert" assert_output --partial "+ buf format -w example/src/file.proto" assert_output --partial "+ buf format -w example/src/unused.proto" } + +@test "should run yamlfmt on YAML" { + run bazel run //format/test:format_yaml + assert_success + + assert_output --partial "Formatting YAML with yamlfmt..." + assert_output --partial "+ yamlfmt .bcr/config.yml" +} From 52f1f5159f6bdc5721c8d631c1e192f3aa7c49a6 Mon Sep 17 00:00:00 2001 From: Alex Eagle Date: Thu, 22 Feb 2024 05:53:00 -0800 Subject: [PATCH 7/9] refactor: remove Vale workaround for StylesPath (#148) Thanks @jdkato for the fix in https://github.com/errata-ai/vale/commit/2139c4176a4d2e62d7dfb95dca24b96b9e8b7251 so we no longer need to tell users about copying their configuration file to be relative to the styles folder. --- docs/vale.md | 21 ++++----------------- example/.vale.ini | 6 ------ example/BUILD.bazel | 8 +------- example/tools/lint.bzl | 2 +- lint/mirror_vale.sh | 1 + lint/vale.bzl | 31 +++++++++---------------------- lint/vale_versions.bzl | 10 ++++++++++ 7 files changed, 26 insertions(+), 53 deletions(-) diff --git a/docs/vale.md b/docs/vale.md index 0563d0de..0fcd88e6 100644 --- a/docs/vale.md +++ b/docs/vale.md @@ -42,22 +42,9 @@ copy_to_directory( ) ``` -Now the `.vale.ini` file will have a `StylesPath` entry that points to this folder, for example, - -```ini -StylesPath = tools/vale_styles -``` - -Finally, it's necessary for the `.vale.ini` file to be copied to the bazel-bin folder so that it -is relative to the generated `vale_styles` folder. -Use [`copy_to_bin`](https://docs.aspect.build/rulesets/aspect_bazel_lib/docs/copy_to_bin/) for this: - -```starlark -copy_to_bin( - name = ".vale_ini", - srcs = [".vale.ini"], -) -``` +Note that the `.vale.ini` file may have a `StylesPath` entry. +Under Bazel, we set `VALE_STYLES_PATH` in the environment, so the `StylesPath` is used +only when running Vale outside Bazel, such as in an editor extension. See the example in rules_lint for a fully-working vale setup. @@ -92,7 +79,7 @@ A repository macro used from WORKSPACE to fetch vale binaries | Name | Description | Default Value | | :------------- | :------------- | :------------- | -| tag | a tag of vale that we have mirrored, e.g. v3.0.5 | "v3.0.7" | +| tag | a tag of vale that we have mirrored, e.g. v3.0.5 | "v3.1.0" | diff --git a/example/.vale.ini b/example/.vale.ini index 1393eb1b..3e3b8d3d 100644 --- a/example/.vale.ini +++ b/example/.vale.ini @@ -1,9 +1,3 @@ -# NB: this path doesn't exist in the source tree, it's created by the copy_to_directory rule -# in tools/BUILD.bazel. -# If you want vale to run outside Bazel, such as with an editor extension, -# you could also use `write_source_files` to have the tools/vale_styles folder written into the source tree as well. -StylesPath = tools/vale_styles - MinAlertLevel = warning Packages = Google,write-good diff --git a/example/BUILD.bazel b/example/BUILD.bazel index 68859bdd..09975212 100644 --- a/example/BUILD.bazel +++ b/example/BUILD.bazel @@ -1,4 +1,3 @@ -load("@aspect_bazel_lib//lib:copy_to_bin.bzl", "copy_to_bin") load("@aspect_rules_js//js:defs.bzl", "js_library") load("@npm//:defs.bzl", "npm_link_all_packages") load("@rules_python//python:pip.bzl", "compile_pip_requirements") @@ -20,6 +19,7 @@ exports_files( ".shellcheckrc", ".scalafmt.conf", ".golangci.yaml", + ".vale.ini", ], visibility = ["//visibility:public"], ) @@ -48,9 +48,3 @@ alias( name = "format", actual = "//tools:format", ) - -copy_to_bin( - name = ".vale_ini", - srcs = [".vale.ini"], - visibility = ["//src:__subpackages__"], -) diff --git a/example/tools/lint.bzl b/example/tools/lint.bzl index 30f69658..c0c5c234 100644 --- a/example/tools/lint.bzl +++ b/example/tools/lint.bzl @@ -66,6 +66,6 @@ golangci_lint_test = make_lint_test(aspect = golangci_lint) vale = vale_aspect( binary = "@@//tools:vale", - config = "@@//:.vale_ini", + config = "@@//:.vale.ini", styles = "@@//tools:vale_styles", ) diff --git a/lint/mirror_vale.sh b/lint/mirror_vale.sh index e0ea5727..fea7f423 100755 --- a/lint/mirror_vale.sh +++ b/lint/mirror_vale.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash set -o errexit -o nounset -o pipefail + SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" RELEASES=$(mktemp) RAW=$(mktemp) diff --git a/lint/vale.bzl b/lint/vale.bzl index 873cd444..e9f0c0d7 100644 --- a/lint/vale.bzl +++ b/lint/vale.bzl @@ -40,22 +40,9 @@ copy_to_directory( ) ``` -Now the `.vale.ini` file will have a `StylesPath` entry that points to this folder, for example, - -```ini -StylesPath = tools/vale_styles -``` - -Finally, it's necessary for the `.vale.ini` file to be copied to the bazel-bin folder so that it -is relative to the generated `vale_styles` folder. -Use [`copy_to_bin`](https://docs.aspect.build/rulesets/aspect_bazel_lib/docs/copy_to_bin/) for this: - -```starlark -copy_to_bin( - name = ".vale_ini", - srcs = [".vale.ini"], -) -``` +Note that the `.vale.ini` file may have a `StylesPath` entry. +Under Bazel, we set `VALE_STYLES_PATH` in the environment, so the `StylesPath` is used +only when running Vale outside Bazel, such as in an editor extension. See the example in rules_lint for a fully-working vale setup. @@ -85,16 +72,15 @@ _MNEMONIC = "Vale" # buildifier: disable=function-docstring def vale_action(ctx, executable, srcs, styles, config, report, use_exit_code = False): - # NB: Users must make sure the config file we reference is already in - # bazel-out/arch/bin/my/pkg so that relative reference "tools/styles" correctly resolves - # to the generated styles folder in bazel-out/arch/bin/my/pkg/tools/styles - # We don't try to use copy_file_to_bin_action because the config file is likely not in the same - # package as the aspect is visiting, so we won't be allowed to write to it and will just fail - # in bazel-lib with _file_in_different_package_error_msg inputs = srcs + [config] + env = {} if styles: inputs.append(styles) + # Introduced in https://github.com/errata-ai/vale/commit/2139c4176a4d2e62d7dfb95dca24b96b9e8b7251 + # and released in v3.1.0 + env["VALE_STYLES_PATH"] = styles.path + # Wire command-line options, see output of vale --help args = ctx.actions.args() args.add_all(srcs) @@ -113,6 +99,7 @@ def vale_action(ctx, executable, srcs, styles, config, report, use_exit_code = F vale = executable.path, report = report.path, ), + env = env, arguments = [args], mnemonic = _MNEMONIC, tools = [executable], diff --git a/lint/vale_versions.bzl b/lint/vale_versions.bzl index 4df5e21d..58d8e24e 100644 --- a/lint/vale_versions.bzl +++ b/lint/vale_versions.bzl @@ -1,5 +1,15 @@ "This file is automatically updated by mirror_vale.sh" VALE_VERSIONS = { + "v3.1.0": { + "Linux_386": "81564dde82bf90b3552f0f181fe56803a8ab727c65c350c82290120a9ca47fa3", + "Linux_64-bit": "7c62da29c53dc58f836327bda3a763b7862633d7f957c1abf12e661c2d65a3e0", + "Linux_arm64": "8f83cf1345685f3da9c2a69a7952beab3d38f961b13d7a339156e1187d11f8f5", + "macOS_64-bit": "d00806911d713ee5325cf6aa377a0d48dd44d418c35f66e7527abf113b89cd48", + "macOS_arm64": "78baa52b88fff4bbebd88e0dcc8504932bb750b787a8fb3d2d4966e8e38dac60", + "Windows_386": "bf87bf2718cb425bce7fd201a635b4be3ec6efa4e361aaf64c62b3a90587c33d", + "Windows_64-bit": "8e0bff5ab631bcb2d05dfb01599ff9256a9d46b7163f0dcb75b99321d54fd992", + "Windows_arm64": "ac3111fa52c322cb5aaf3c321dbe170fb1f16977847a2a2329272606f45a806c", + }, "v3.0.7": { "Linux_386": "86128821d5220cca019b05b2fd2470202ed9f6ed7c26baa45efb9f905c94281d", "Linux_64-bit": "103a070f45b36d6c206d1ec0668bd1e1ce63e721022693ed37933b673fdaa45d", From a9def3378c8ddefe46eba660734b6eb3037e8eb9 Mon Sep 17 00:00:00 2001 From: Alex Eagle Date: Thu, 22 Feb 2024 18:32:47 -0800 Subject: [PATCH 8/9] refactor: break up tools/ into tools/format and tools/lint (#159) * refactor: break up tools/ into tools/format and tools/lint Suggested during API review, as this encourages users to have more folders underneath tools/ to avoid eager fetching more than needed for a given target. For our own example, it doesn't really matter. But we want new users to go down a better path. * chore: code review comments --- docs/formatting.md | 6 +- docs/golangci-lint.md | 2 +- docs/lint_test.md | 4 +- docs/linting.md | 10 +-- docs/shellcheck.md | 6 +- docs/vale.md | 4 +- example/.aspect/cli/config.yaml | 12 +-- example/BUILD.bazel | 2 +- example/lint.sh | 2 +- example/test/BUILD.bazel | 2 +- example/tools/{BUILD => format/BUILD.bazel} | 81 +----------------- example/tools/lint/BUILD.bazel | 87 ++++++++++++++++++++ example/tools/{lint.bzl => lint/linters.bzl} | 16 ++-- lint/golangci-lint.bzl | 2 +- lint/lint_test.bzl | 4 +- lint/shellcheck.bzl | 6 +- lint/vale.bzl | 4 +- 17 files changed, 130 insertions(+), 120 deletions(-) rename example/tools/{BUILD => format/BUILD.bazel} (61%) create mode 100644 example/tools/lint/BUILD.bazel rename example/tools/{lint.bzl => lint/linters.bzl} (84%) diff --git a/docs/formatting.md b/docs/formatting.md index d7ee0ef7..a620e603 100644 --- a/docs/formatting.md +++ b/docs/formatting.md @@ -2,9 +2,9 @@ ## Installation -Create a BUILD file that declares the formatter binary, typically at `tools/BUILD.bazel` +Create a BUILD file that declares the formatter binary, typically at `tools/format/BUILD.bazel` -Each formatter should be installed in your repository, see our `example/tools/BUILD` file. +Each formatter should be installed in your repository, see our `example/tools/format/BUILD.bazel` file. A formatter is just an executable target. Then register them on the `formatters` attribute, for example: @@ -24,7 +24,7 @@ Finally, we recommend an alias in the root BUILD file, so that developers can ju ```starlark alias( name = "format", - actual = "//tools:format", + actual = "//tools/format", ) ``` diff --git a/docs/golangci-lint.md b/docs/golangci-lint.md index e983b06a..316a062d 100644 --- a/docs/golangci-lint.md +++ b/docs/golangci-lint.md @@ -6,7 +6,7 @@ API for declaring a golangci-lint lint aspect that visits go_library, go_test, a load("@aspect_rules_lint//lint:golangci-lint.bzl", "golangci_lint_aspect") golangci_lint = golangci_lint_aspect( - binary = "@@//tools:golangci_lint", + binary = "@@//tools/lint:golangci_lint", config = "@@//:.golangci.yaml", ) ``` diff --git a/docs/lint_test.md b/docs/lint_test.md index 78caf2bb..258d2480 100644 --- a/docs/lint_test.md +++ b/docs/lint_test.md @@ -4,7 +4,7 @@ Factory function to make lint test rules. The test will fail when the linter reports any non-empty lint results. -To use this, in your `lint.bzl` where you define the aspect, just create a test that references it. +To use this, in your `linters.bzl` where you define the aspect, just create a test that references it. For example, with `flake8`: @@ -23,7 +23,7 @@ flake8_test = make_lint_test(aspect = flake8) Now in your BUILD files you can add a test: ```starlark -load("//tools:lint.bzl", "flake8_test") +load("//tools/lint:linters.bzl", "flake8_test") py_library( name = "unused_import", diff --git a/docs/linting.md b/docs/linting.md index f6d976e3..ea93754e 100644 --- a/docs/linting.md +++ b/docs/linting.md @@ -9,9 +9,9 @@ You must declare your linters as Bazel aspects. > We want to accept label-typed attributes, so we follow the documentation from > https://bazel.build/extending/aspects#aspect_definition_2 -We suggest creating a `lint.bzl` file in whatever package contains most of your -custom Bazel configuration, commonly in `tools/`. -This `lint.bzl` should contain linter aspect declarations. +We suggest creating a `linters.bzl` file in whatever package contains most of your +custom Bazel configuration, commonly in `tools/lint`. +This `linters.bzl` should contain linter aspect declarations. See the `docs/` folder for "aspect factory functions" that declare your linters. Finally, register those linter aspects in the lint runner. See details below. @@ -38,7 +38,7 @@ The syntax is the same as [aspects declared on the command-line](https://bazel.b lint: aspects: # Format: % - - //tools:lint.bzl%eslint + - //tools/lint:linters.bzl%eslint ``` [![asciicast](https://asciinema.org/a/xQWU1Wc1JINOubeguDDQbBqcq.svg)](https://asciinema.org/a/xQWU1Wc1JINOubeguDDQbBqcq) @@ -66,7 +66,7 @@ This makes the build fail when any lint violations are present. ### 5. Failures during `bazel test` -Add a [make_lint_test](./lint_test.md) call to the `lint.bzl` file, then use the resulting rule in your BUILD files or in a wrapper macro. +Add a [make_lint_test](./lint_test.md) call to the `linters.bzl` file, then use the resulting rule in your BUILD files or in a wrapper macro. See the `example/test/BUILD.bazel` file in this repo for some examples. diff --git a/docs/shellcheck.md b/docs/shellcheck.md index fc79bf1c..2f1ad83b 100644 --- a/docs/shellcheck.md +++ b/docs/shellcheck.md @@ -5,14 +5,14 @@ API for declaring a shellcheck lint aspect that visits sh_library rules. Typical usage: 1. Use [fetch_shellcheck](#fetch_shellcheck) in WORKSPACE to call the `http_archive` calls to download binaries. -2. Use [shellcheck_binary](#shellcheck_binary) in `tools/BUILD.bazel` to declare the shellcheck target -3. Use [shellcheck_aspect](#shellcheck_aspect) in `tools/lint.bzl` to declare the shellcheck linter aspect: +2. Use [shellcheck_binary](#shellcheck_binary) to declare the shellcheck target, typically in in `tools/lint/BUILD.bazel` +3. Use [shellcheck_aspect](#shellcheck_aspect) to declare the shellcheck linter aspect, typically in in `tools/lint/linters.bzl`: ``` load("@aspect_rules_lint//lint:shellcheck.bzl", "shellcheck_aspect") shellcheck = shellcheck_aspect( - binary = "@@//tools:shellcheck", + binary = "@@//tools/lint:shellcheck", config = "@@//:.shellcheckrc", ) ``` diff --git a/docs/vale.md b/docs/vale.md index 0fcd88e6..39d27196 100644 --- a/docs/vale.md +++ b/docs/vale.md @@ -54,12 +54,12 @@ See the example in rules_lint for a fully-working vale setup. load("@aspect_rules_lint//lint:vale.bzl", "vale_aspect") vale = vale_aspect( - binary = "@@//tools:vale", + binary = "@@//tools/lint:vale", # A copy_to_bin rule that places the .vale.ini file into bazel-bin config = "@@//:.vale_ini", # Optional. # A copy_to_directory rule that "installs" custom styles together into a single folder - styles = "@@//tools:vale_styles", + styles = "@@//tools/lint:vale_styles", ) ``` diff --git a/example/.aspect/cli/config.yaml b/example/.aspect/cli/config.yaml index 850860e0..50a0fdcf 100644 --- a/example/.aspect/cli/config.yaml +++ b/example/.aspect/cli/config.yaml @@ -1,8 +1,8 @@ lint: aspects: - - //tools:lint.bzl%eslint - - //tools:lint.bzl%buf - - //tools:lint.bzl%flake8 - - //tools:lint.bzl%pmd - - //tools:lint.bzl%ruff - - //tools:lint.bzl%vale + - //tools/lint:linters.bzl%eslint + - //tools/lint:linters.bzl%buf + - //tools/lint:linters.bzl%flake8 + - //tools/lint:linters.bzl%pmd + - //tools/lint:linters.bzl%ruff + - //tools/lint:linters.bzl%vale diff --git a/example/BUILD.bazel b/example/BUILD.bazel index 09975212..eb01fba7 100644 --- a/example/BUILD.bazel +++ b/example/BUILD.bazel @@ -46,5 +46,5 @@ js_library( # 936 two alias( name = "format", - actual = "//tools:format", + actual = "//tools/format", ) diff --git a/example/lint.sh b/example/lint.sh index 7ab69850..9b81c849 100755 --- a/example/lint.sh +++ b/example/lint.sh @@ -21,7 +21,7 @@ filter='.namedSetOfFiles | values | .files[] | ((.pathPrefix | join("/")) + "/" # NB: perhaps --remote_download_toplevel is needed as well with remote execution? args=( - "--aspects=$(echo //tools:lint.bzl%{buf,eslint,flake8,pmd,ruff,shellcheck,golangci_lint,vale} | tr ' ' ',')" + "--aspects=$(echo //tools/lint:linters.bzl%{buf,eslint,flake8,pmd,ruff,shellcheck,golangci_lint,vale} | tr ' ' ',')" "--build_event_json_file=$buildevents" ) report_args=( diff --git a/example/test/BUILD.bazel b/example/test/BUILD.bazel index 1cccdee4..d14dce1d 100644 --- a/example/test/BUILD.bazel +++ b/example/test/BUILD.bazel @@ -2,7 +2,7 @@ load("@aspect_rules_ts//ts:defs.bzl", "ts_project") load("@bazel_skylib//rules:write_file.bzl", "write_file") -load("//tools:lint.bzl", "eslint_test", "flake8_test", "pmd_test", "ruff_test", "shellcheck_test") +load("//tools/lint:linters.bzl", "eslint_test", "flake8_test", "pmd_test", "ruff_test", "shellcheck_test") write_file( name = "ts_code_generator", diff --git a/example/tools/BUILD b/example/tools/format/BUILD.bazel similarity index 61% rename from example/tools/BUILD rename to example/tools/format/BUILD.bazel index 5e788c38..e74ec77c 100644 --- a/example/tools/BUILD +++ b/example/tools/format/BUILD.bazel @@ -4,15 +4,10 @@ This is in its own package because it has so many loading-time symbols, we don't want to trigger eager fetches of these for builds that don't want to run format. """ -load("@aspect_bazel_lib//lib:copy_to_directory.bzl", "copy_to_directory") load("@aspect_rules_lint//format:defs.bzl", "multi_formatter_binary") -load("@aspect_rules_lint//lint:shellcheck.bzl", "shellcheck_binary") -load("@aspect_rules_lint//lint:vale_library.bzl", "VALE_STYLES") load("@bazel_skylib//rules:native_binary.bzl", "native_binary") -load("@npm//:eslint/package_json.bzl", eslint_bin = "bin") load("@npm//:prettier/package_json.bzl", prettier = "bin") load("@rules_java//java:defs.bzl", "java_binary") -load("@rules_python//python/entry_points:py_console_script_binary.bzl", "py_console_script_binary") package(default_visibility = ["//:__subpackages__"]) @@ -35,21 +30,6 @@ alias( }), ) -alias( - name = "ruff", - actual = select({ - "@bazel_tools//src/conditions:linux_x86_64": "@ruff_x86_64-unknown-linux-gnu//:ruff", - "@bazel_tools//src/conditions:linux_aarch64": "@ruff_aarch64-unknown-linux-gnu//:ruff", - "@bazel_tools//src/conditions:darwin_arm64": "@ruff_aarch64-apple-darwin//:ruff", - "@bazel_tools//src/conditions:darwin_x86_64": "@ruff_x86_64-apple-darwin//:ruff", - }), -) - -alias( - name = "buf", - actual = "@rules_buf_toolchains//:buf", -) - prettier.prettier_binary( name = "prettier", # Allow the binary to be run outside bazel @@ -123,63 +103,6 @@ native_binary( out = "yamlfmt", ) -# We can test that it works with: -# bazel run :flake8 -- --help -py_console_script_binary( - name = "flake8", - pkg = "@pip//flake8:pkg", -) - -eslint_bin.eslint_binary(name = "eslint") - -java_binary( - name = "pmd", - main_class = "net.sourceforge.pmd.PMD", - runtime_deps = ["@net_sourceforge_pmd"], -) - -native_binary( - name = "golangci_lint", - src = select( - { - "@bazel_tools//src/conditions:linux_x86_64": "@golangci_lint_linux_x86_64//:golangci-lint", - "@bazel_tools//src/conditions:linux_aarch64": "@golangci_lint_linux_aarch64//:golangci-lint", - "@bazel_tools//src/conditions:darwin_x86_64": "@golangci_lint_macos_x86_64//:golangci-lint", - "@bazel_tools//src/conditions:darwin_arm64": "@golangci_lint_macos_aarch64//:golangci-lint", - }, - ), - out = "golangci-lint", -) - -native_binary( - name = "vale", - src = select( - { - "@bazel_tools//src/conditions:linux_x86_64": "@vale_Linux_64-bit//:vale", - "@bazel_tools//src/conditions:linux_aarch64": "@vale_Linux_arm64//:vale", - "@bazel_tools//src/conditions:darwin_x86_64": "@vale_macOS_64-bit//:vale", - "@bazel_tools//src/conditions:darwin_arm64": "@vale_macOS_arm64//:vale", - }, - ), - out = "vale", -) - -copy_to_directory( - name = "vale_styles", - srcs = [ - "@vale_{0}//:{0}".format(s) - for s in VALE_STYLES - # Restrict to subset like Google and write-good to avoid GHA cache getting huge and exhasting disk. - # Comment this out to test that our code to fetch them is working. - # Most users should just copy in the styles that are referenced in their .vale.ini file. - if "oo" in s - ], - include_external_repositories = ["vale_*"], -) - -# bazel run :shellcheck -- --help -shellcheck_binary(name = "shellcheck") - multi_formatter_binary( name = "format", cc = "@llvm_toolchain_llvm//:bin/clang-format", @@ -190,8 +113,8 @@ multi_formatter_binary( jsonnet = ":jsonnetfmt", kotlin = ":ktfmt", markdown = ":prettier", - protobuf = ":buf", - python = ":ruff", + protobuf = "//tools/lint:buf", + python = "//tools/lint:ruff", scala = ":scalafmt", sh = ":shfmt", sql = ":prettier", diff --git a/example/tools/lint/BUILD.bazel b/example/tools/lint/BUILD.bazel new file mode 100644 index 00000000..da15f489 --- /dev/null +++ b/example/tools/lint/BUILD.bazel @@ -0,0 +1,87 @@ +"""Definition of the formatter binary + +This is in its own package because it has so many loading-time symbols, +we don't want to trigger eager fetches of these for builds that don't want to run format. +""" + +load("@aspect_bazel_lib//lib:copy_to_directory.bzl", "copy_to_directory") +load("@aspect_rules_lint//lint:shellcheck.bzl", "shellcheck_binary") +load("@aspect_rules_lint//lint:vale_library.bzl", "VALE_STYLES") +load("@bazel_skylib//rules:native_binary.bzl", "native_binary") +load("@npm//:eslint/package_json.bzl", eslint_bin = "bin") +load("@rules_java//java:defs.bzl", "java_binary") +load("@rules_python//python/entry_points:py_console_script_binary.bzl", "py_console_script_binary") + +package(default_visibility = ["//:__subpackages__"]) + +alias( + name = "ruff", + actual = select({ + "@bazel_tools//src/conditions:linux_x86_64": "@ruff_x86_64-unknown-linux-gnu//:ruff", + "@bazel_tools//src/conditions:linux_aarch64": "@ruff_aarch64-unknown-linux-gnu//:ruff", + "@bazel_tools//src/conditions:darwin_arm64": "@ruff_aarch64-apple-darwin//:ruff", + "@bazel_tools//src/conditions:darwin_x86_64": "@ruff_x86_64-apple-darwin//:ruff", + }), +) + +alias( + name = "buf", + actual = "@rules_buf_toolchains//:buf", +) + +# We can test that it works with: +# bazel run :flake8 -- --help +py_console_script_binary( + name = "flake8", + pkg = "@pip//flake8:pkg", +) + +eslint_bin.eslint_binary(name = "eslint") + +java_binary( + name = "pmd", + main_class = "net.sourceforge.pmd.PMD", + runtime_deps = ["@net_sourceforge_pmd"], +) + +native_binary( + name = "golangci_lint", + src = select( + { + "@bazel_tools//src/conditions:linux_x86_64": "@golangci_lint_linux_x86_64//:golangci-lint", + "@bazel_tools//src/conditions:linux_aarch64": "@golangci_lint_linux_aarch64//:golangci-lint", + "@bazel_tools//src/conditions:darwin_x86_64": "@golangci_lint_macos_x86_64//:golangci-lint", + "@bazel_tools//src/conditions:darwin_arm64": "@golangci_lint_macos_aarch64//:golangci-lint", + }, + ), + out = "golangci-lint", +) + +native_binary( + name = "vale", + src = select( + { + "@bazel_tools//src/conditions:linux_x86_64": "@vale_Linux_64-bit//:vale", + "@bazel_tools//src/conditions:linux_aarch64": "@vale_Linux_arm64//:vale", + "@bazel_tools//src/conditions:darwin_x86_64": "@vale_macOS_64-bit//:vale", + "@bazel_tools//src/conditions:darwin_arm64": "@vale_macOS_arm64//:vale", + }, + ), + out = "vale", +) + +copy_to_directory( + name = "vale_styles", + srcs = [ + "@vale_{0}//:{0}".format(s) + for s in VALE_STYLES + # Restrict to subset like Google and write-good to avoid GHA cache getting huge and exhasting disk. + # Comment this out to test that our code to fetch them is working. + # Most users should just copy in the styles that are referenced in their .vale.ini file. + if "oo" in s + ], + include_external_repositories = ["vale_*"], +) + +# bazel run :shellcheck -- --help +shellcheck_binary(name = "shellcheck") diff --git a/example/tools/lint.bzl b/example/tools/lint/linters.bzl similarity index 84% rename from example/tools/lint.bzl rename to example/tools/lint/linters.bzl index c0c5c234..4908c392 100644 --- a/example/tools/lint.bzl +++ b/example/tools/lint/linters.bzl @@ -15,7 +15,7 @@ buf = buf_lint_aspect( ) eslint = eslint_aspect( - binary = "@@//tools:eslint", + binary = "@@//tools/lint:eslint", # We trust that eslint will locate the correct configuration file for a given source file. # See https://eslint.org/docs/latest/use/configure/configuration-files#cascading-and-hierarchy configs = [ @@ -27,21 +27,21 @@ eslint = eslint_aspect( eslint_test = make_lint_test(aspect = eslint) flake8 = flake8_aspect( - binary = "@@//tools:flake8", + binary = "@@//tools/lint:flake8", config = "@@//:.flake8", ) flake8_test = make_lint_test(aspect = flake8) pmd = pmd_aspect( - binary = "@@//tools:pmd", + binary = "@@//tools/lint:pmd", rulesets = ["@@//:pmd.xml"], ) pmd_test = make_lint_test(aspect = pmd) ruff = ruff_aspect( - binary = "@@//tools:ruff", + binary = "@@//tools/lint:ruff", configs = [ "@@//:.ruff.toml", "@@//src/subdir:ruff.toml", @@ -51,21 +51,21 @@ ruff = ruff_aspect( ruff_test = make_lint_test(aspect = ruff) shellcheck = shellcheck_aspect( - binary = "@@//tools:shellcheck", + binary = "@@//tools/lint:shellcheck", config = "@@//:.shellcheckrc", ) shellcheck_test = make_lint_test(aspect = shellcheck) golangci_lint = golangci_lint_aspect( - binary = "@@//tools:golangci_lint", + binary = "@@//tools/lint:golangci_lint", config = "@@//:.golangci.yaml", ) golangci_lint_test = make_lint_test(aspect = golangci_lint) vale = vale_aspect( - binary = "@@//tools:vale", + binary = "@@//tools/lint:vale", config = "@@//:.vale.ini", - styles = "@@//tools:vale_styles", + styles = "@@//tools/lint:vale_styles", ) diff --git a/lint/golangci-lint.bzl b/lint/golangci-lint.bzl index ae9f2bce..55a1e076 100644 --- a/lint/golangci-lint.bzl +++ b/lint/golangci-lint.bzl @@ -4,7 +4,7 @@ load("@aspect_rules_lint//lint:golangci-lint.bzl", "golangci_lint_aspect") golangci_lint = golangci_lint_aspect( - binary = "@@//tools:golangci_lint", + binary = "@@//tools/lint:golangci_lint", config = "@@//:.golangci.yaml", ) ``` diff --git a/lint/lint_test.bzl b/lint/lint_test.bzl index 2d94eb62..c83fa483 100644 --- a/lint/lint_test.bzl +++ b/lint/lint_test.bzl @@ -2,7 +2,7 @@ The test will fail when the linter reports any non-empty lint results. -To use this, in your `lint.bzl` where you define the aspect, just create a test that references it. +To use this, in your `linters.bzl` where you define the aspect, just create a test that references it. For example, with `flake8`: @@ -21,7 +21,7 @@ flake8_test = make_lint_test(aspect = flake8) Now in your BUILD files you can add a test: ```starlark -load("//tools:lint.bzl", "flake8_test") +load("//tools/lint:linters.bzl", "flake8_test") py_library( name = "unused_import", diff --git a/lint/shellcheck.bzl b/lint/shellcheck.bzl index a2ac460a..cccaa032 100644 --- a/lint/shellcheck.bzl +++ b/lint/shellcheck.bzl @@ -3,14 +3,14 @@ Typical usage: 1. Use [fetch_shellcheck](#fetch_shellcheck) in WORKSPACE to call the `http_archive` calls to download binaries. -2. Use [shellcheck_binary](#shellcheck_binary) in `tools/BUILD.bazel` to declare the shellcheck target -3. Use [shellcheck_aspect](#shellcheck_aspect) in `tools/lint.bzl` to declare the shellcheck linter aspect: +2. Use [shellcheck_binary](#shellcheck_binary) to declare the shellcheck target, typically in in `tools/lint/BUILD.bazel` +3. Use [shellcheck_aspect](#shellcheck_aspect) to declare the shellcheck linter aspect, typically in in `tools/lint/linters.bzl`: ``` load("@aspect_rules_lint//lint:shellcheck.bzl", "shellcheck_aspect") shellcheck = shellcheck_aspect( - binary = "@@//tools:shellcheck", + binary = "@@//tools/lint:shellcheck", config = "@@//:.shellcheckrc", ) ``` diff --git a/lint/vale.bzl b/lint/vale.bzl index e9f0c0d7..d339cadf 100644 --- a/lint/vale.bzl +++ b/lint/vale.bzl @@ -52,12 +52,12 @@ See the example in rules_lint for a fully-working vale setup. load("@aspect_rules_lint//lint:vale.bzl", "vale_aspect") vale = vale_aspect( - binary = "@@//tools:vale", + binary = "@@//tools/lint:vale", # A copy_to_bin rule that places the .vale.ini file into bazel-bin config = "@@//:.vale_ini", # Optional. # A copy_to_directory rule that "installs" custom styles together into a single folder - styles = "@@//tools:vale_styles", + styles = "@@//tools/lint:vale_styles", ) ``` """ From c22174195342e4d4f87b258edb4b22a2574a6427 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 1 Mar 2024 08:05:33 -0800 Subject: [PATCH 9/9] chore: mirror external releases (#162) Co-authored-by: alexeagle --- docs/ruff.md | 2 +- lint/ruff_versions.bzl | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/docs/ruff.md b/docs/ruff.md index eb4591fb..7d86a70c 100644 --- a/docs/ruff.md +++ b/docs/ruff.md @@ -51,7 +51,7 @@ A repository macro used from WORKSPACE to fetch ruff binaries | Name | Description | Default Value | | :------------- | :------------- | :------------- | -| tag | a tag of ruff that we have mirrored, e.g. v0.1.0 | "v0.2.2" | +| tag | a tag of ruff that we have mirrored, e.g. v0.1.0 | "v0.3.0" | diff --git a/lint/ruff_versions.bzl b/lint/ruff_versions.bzl index 70f12abe..5326cf7e 100644 --- a/lint/ruff_versions.bzl +++ b/lint/ruff_versions.bzl @@ -1,5 +1,23 @@ "This file is automatically updated by mirror_ruff.sh" RUFF_VERSIONS = { + "v0.3.0": { + "aarch64-apple-darwin": "81bb7124ea94a4d17d664fb87367b057dd5df5602a304afed8d481398856b93a", + "aarch64-pc-windows-msvc": "c38e93d6c5127ca7cb147af78e1faae0c3746837d7819e7d4f4e9b505dc28c86", + "aarch64-unknown-linux-gnu": "82b5e72421b5229b730356007003424e261faf516c1d574198a1e152c6def7a6", + "aarch64-unknown-linux-musl": "4ab59fff8c881d4e8a9ca3a3cffa87f199757e68977248e5dfcf16b6072f8cf3", + "armv7-unknown-linux-gnueabihf": "8494eddd0fafd58ea04a558f366256775b52558bb778d6da410cb6ed30de8413", + "armv7-unknown-linux-musleabihf": "0cbe3cc6aca1f902206010830fb3a7cef9fb6ea644be17c0078bb165a791be4d", + "i686-pc-windows-msvc": "217e729410d6aafddd9df856ab1dfdf0e130c79afb39a0a671f3d1035e79edac", + "i686-unknown-linux-gnu": "24a1ce3dc4feeec4c0d6225bf839cf1ebafe6909a7e5fc2a30a47252ee98671e", + "i686-unknown-linux-musl": "56d7654771b4d56205a63ba703d0a12fb752bdf816886a6e35fa25f07367a86f", + "powerpc64-unknown-linux-gnu": "d5874b3eb0f12ff3d67afb3a0fe13695d0a70c87bf8c5160b770cb4229724098", + "powerpc64le-unknown-linux-gnu": "06f0d5d5bb125e341c6a7aa56d3758e5b5082fc564b8796c0d3f3ccd5e770621", + "s390x-unknown-linux-gnu": "2507fac133db7fe90efdab334c294a78d6a0c2a636c10470c353a779caaac662", + "x86_64-apple-darwin": "4afe6f466a26fae0ab9df915420deb3bc86195b7e3dedc9b263bef4cdeb6bdf4", + "x86_64-pc-windows-msvc": "e28900051a3b835d0e11d86f9139ef484db274b5b8ed2294ddbce3d68caa2205", + "x86_64-unknown-linux-gnu": "0201216ec3f54ddeaed8d301fde322963588ac1d45813e8eca4e660175930aba", + "x86_64-unknown-linux-musl": "ce8c2a429b634362267933c7cdf8b14dc6dbe939625fe7e1dc62eee264300119", + }, "v0.2.2": { "aarch64-apple-darwin": "21454a77f0a5ff8ed23a43327f6de9c2f9f6bab1352ebe87fc03866889fa7fae", "aarch64-pc-windows-msvc": "ab35fd6fc5886cf63541dec00172f41fa03242e53c6c5f1213c3a09d9c9a6c97",